chore: format

This commit is contained in:
2025-10-10 16:43:21 +02:00
parent f0aabd63b6
commit 75c29e0ba4
551 changed files with 433948 additions and 94145 deletions

View File

@@ -6,11 +6,11 @@ const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const compat = new FlatCompat({
baseDirectory: __dirname,
baseDirectory: __dirname,
});
const eslintConfig = [
...compat.extends("next/core-web-vitals", "next/typescript"),
...compat.extends("next/core-web-vitals", "next/typescript"),
];
export default eslintConfig;

View File

@@ -1,8 +1,8 @@
import type { NextConfig } from "next"
import nextra from "nextra"
import type { NextConfig } from "next";
import nextra from "nextra";
const withNextra = nextra({})
const withNextra = nextra({});
const nextConfig: NextConfig = {}
const nextConfig: NextConfig = {};
export default withNextra(nextConfig)
export default withNextra(nextConfig);

View File

@@ -1,33 +1,33 @@
{
"name": "docs",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev -p 3001",
"build": "next build",
"postbuild": "pagefind --site .next/server/app --output-path public/_pagefind",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"@repo/shared": "workspace:*",
"next": "15.1.7",
"nextra": "^4.2.11",
"nextra-theme-docs": "^4.2.11",
"react": "^19.0.0",
"react-dom": "^19.0.0"
},
"devDependencies": {
"@eslint/eslintrc": "^3",
"@tailwindcss/postcss": "^4.0.6",
"@types/node": "^22.13.4",
"@types/react": "^19",
"@types/react-dom": "^19",
"eslint": "^9",
"eslint-config-next": "15.1.7",
"pagefind": "^1.3.0",
"postcss": "^8.5.1",
"tailwindcss": "^4.0.6",
"typescript": "^5.8.3"
}
"name": "docs",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev -p 3001",
"build": "next build",
"postbuild": "pagefind --site .next/server/app --output-path public/_pagefind",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"@repo/shared": "workspace:*",
"next": "15.1.7",
"nextra": "^4.2.11",
"nextra-theme-docs": "^4.2.11",
"react": "^19.0.0",
"react-dom": "^19.0.0"
},
"devDependencies": {
"@eslint/eslintrc": "^3",
"@tailwindcss/postcss": "^4.0.6",
"@types/node": "^22.13.4",
"@types/react": "^19",
"@types/react-dom": "^19",
"eslint": "^9",
"eslint-config-next": "15.1.7",
"pagefind": "^1.3.0",
"postcss": "^8.5.1",
"tailwindcss": "^4.0.6",
"typescript": "^5.8.3"
}
}

View File

@@ -1,8 +1,8 @@
/** @type {import('postcss-load-config').Config} */
const config = {
plugins: {
"@tailwindcss/postcss": {},
},
}
plugins: {
"@tailwindcss/postcss": {},
},
};
export default config
export default config;

View File

@@ -1,22 +1,22 @@
import type { MetaRecord } from "nextra"
import type { MetaRecord } from "nextra";
const meta: MetaRecord = {
index: "Introduction",
"getting-started": "Getting Started",
api: "API Reference",
placeholders: "Placeholders",
todo: "To-Do List",
"---": {
type: "separator",
},
contributions: "Contributing",
// "support-us": {
// title: "Support Us ❤️",
// },
github: {
title: "GitHub",
href: "https://github.com/dcodesdev/letterspace",
},
}
index: "Introduction",
"getting-started": "Getting Started",
api: "API Reference",
placeholders: "Placeholders",
todo: "To-Do List",
"---": {
type: "separator",
},
contributions: "Contributing",
// "support-us": {
// title: "Support Us ❤️",
// },
github: {
title: "GitHub",
href: "https://github.com/dcodesdev/letterspace",
},
};
export default meta
export default meta;

View File

@@ -1,7 +1,7 @@
import type { MetaRecord } from "nextra"
import type { MetaRecord } from "nextra";
const meta: MetaRecord = {
configuration: "Configuration",
}
configuration: "Configuration",
};
export default meta
export default meta;

View File

@@ -1,136 +1,136 @@
import "./globals.css"
import { Footer, Layout, Navbar } from "nextra-theme-docs"
import { Head } from "nextra/components"
import { getPageMap } from "nextra/page-map"
import "nextra-theme-docs/style.css"
import Link from "next/link"
import Image from "next/image"
import type { Metadata } from "next"
import { Analytics } from "@/components"
import "./globals.css";
import { Footer, Layout, Navbar } from "nextra-theme-docs";
import { Head } from "nextra/components";
import { getPageMap } from "nextra/page-map";
import "nextra-theme-docs/style.css";
import Link from "next/link";
import Image from "next/image";
import type { Metadata } from "next";
import { Analytics } from "@/components";
export const metadata: Metadata = {
title: "LetterSpace Documentation | Self-hosted Newsletter Platform",
description:
"Official documentation for LetterSpace - the open source newsletter platform for managing subscribers and sending emails, all self-hosted.",
keywords: [
"newsletter docs",
"LetterSpace documentation",
"self-hosted",
"open source",
"email marketing guide",
],
authors: [{ name: "LetterSpace Team" }],
creator: "LetterSpace",
publisher: "LetterSpace",
metadataBase: new URL("https://docs.letterspace.app"),
alternates: {
canonical: "/",
},
robots: {
index: true,
follow: true,
},
openGraph: {
type: "website",
title: "LetterSpace Documentation | Self-hosted Newsletter Platform",
description:
"Official documentation for LetterSpace - the open source newsletter platform for managing subscribers and sending emails, all self-hosted.",
siteName: "LetterSpace Docs",
images: [
{
url: "/cover.png",
width: 1200,
height: 630,
alt: "LetterSpace Documentation",
},
],
},
twitter: {
card: "summary_large_image",
title: "LetterSpace Documentation | Self-hosted Newsletter Platform",
description:
"Official documentation for LetterSpace - the open source newsletter platform for managing subscribers and sending emails, all self-hosted.",
images: ["/cover.png"],
creator: "@letterspace",
},
viewport: {
width: "device-width",
initialScale: 1,
maximumScale: 1,
},
applicationName: "LetterSpace Docs",
category: "Documentation",
}
title: "LetterSpace Documentation | Self-hosted Newsletter Platform",
description:
"Official documentation for LetterSpace - the open source newsletter platform for managing subscribers and sending emails, all self-hosted.",
keywords: [
"newsletter docs",
"LetterSpace documentation",
"self-hosted",
"open source",
"email marketing guide",
],
authors: [{ name: "LetterSpace Team" }],
creator: "LetterSpace",
publisher: "LetterSpace",
metadataBase: new URL("https://docs.letterspace.app"),
alternates: {
canonical: "/",
},
robots: {
index: true,
follow: true,
},
openGraph: {
type: "website",
title: "LetterSpace Documentation | Self-hosted Newsletter Platform",
description:
"Official documentation for LetterSpace - the open source newsletter platform for managing subscribers and sending emails, all self-hosted.",
siteName: "LetterSpace Docs",
images: [
{
url: "/cover.png",
width: 1200,
height: 630,
alt: "LetterSpace Documentation",
},
],
},
twitter: {
card: "summary_large_image",
title: "LetterSpace Documentation | Self-hosted Newsletter Platform",
description:
"Official documentation for LetterSpace - the open source newsletter platform for managing subscribers and sending emails, all self-hosted.",
images: ["/cover.png"],
creator: "@letterspace",
},
viewport: {
width: "device-width",
initialScale: 1,
maximumScale: 1,
},
applicationName: "LetterSpace Docs",
category: "Documentation",
};
const navbar = (
<Navbar
logo={
<Link className="flex items-center gap-2" href="https://letterspace.app">
<Image
src="/android-chrome-192x192.png"
alt="LetterSpace"
className="rounded-full shadow-md shadow-[#5bd1c8] hover:shadow-md hover:shadow-[#5bd1c8]/40 transition-all"
width={32}
height={32}
/>
<div className="text-lg font-bold">
Letter<span className="text-[#5bd1c8]">Space</span>
</div>
</Link>
}
// ... Your additional navbar options
/>
)
<Navbar
logo={
<Link className="flex items-center gap-2" href="https://letterspace.app">
<Image
src="/android-chrome-192x192.png"
alt="LetterSpace"
className="rounded-full shadow-md shadow-[#5bd1c8] hover:shadow-md hover:shadow-[#5bd1c8]/40 transition-all"
width={32}
height={32}
/>
<div className="text-lg font-bold">
Letter<span className="text-[#5bd1c8]">Space</span>
</div>
</Link>
}
// ... Your additional navbar options
/>
);
const footer = (
<Footer>
<div>
<p>MIT {new Date().getFullYear()} © LetterSpace</p>
<small>
Powered by{" "}
<Link
className="underline"
target="_blank"
rel="nofollow"
href="https://nextra.site"
>
Nextra
</Link>
</small>
</div>
</Footer>
)
<Footer>
<div>
<p>MIT {new Date().getFullYear()} © LetterSpace</p>
<small>
Powered by{" "}
<Link
className="underline"
target="_blank"
rel="nofollow"
href="https://nextra.site"
>
Nextra
</Link>
</small>
</div>
</Footer>
);
export default async function RootLayout({
children,
children,
}: {
children: React.ReactNode
children: React.ReactNode;
}) {
return (
<html
// Not required, but good for SEO
lang="en"
// Required to be set
dir="ltr"
// Suggested by `next-themes` package https://github.com/pacocoursey/next-themes#with-app
suppressHydrationWarning
>
<Head
// ... Your additional head options
>
{/* Your additional tags should be passed as `children` of `<Head>` element */}
</Head>
<body>
<Layout
navbar={navbar}
pageMap={await getPageMap()}
docsRepositoryBase="https://github.com/dcodesdev/letterspace/tree/main/apps/docs"
footer={footer}
// ... Your additional layout options
>
{children}
<Analytics />
</Layout>
</body>
</html>
)
return (
<html
// Not required, but good for SEO
lang="en"
// Required to be set
dir="ltr"
// Suggested by `next-themes` package https://github.com/pacocoursey/next-themes#with-app
suppressHydrationWarning
>
<Head
// ... Your additional head options
>
{/* Your additional tags should be passed as `children` of `<Head>` element */}
</Head>
<body>
<Layout
navbar={navbar}
pageMap={await getPageMap()}
docsRepositoryBase="https://github.com/dcodesdev/letterspace/tree/main/apps/docs"
footer={footer}
// ... Your additional layout options
>
{children}
<Analytics />
</Layout>
</body>
</html>
);
}

View File

@@ -1,13 +1,13 @@
import Script from "next/script"
import Script from "next/script";
export function Analytics() {
return (
<Script
id="plausible-script"
strategy="afterInteractive"
defer
data-domain="letterspace.app"
src="https://analytics.letterspace.app/js/script.js"
/>
)
return (
<Script
id="plausible-script"
strategy="afterInteractive"
defer
data-domain="letterspace.app"
src="https://analytics.letterspace.app/js/script.js"
/>
);
}

View File

@@ -1 +1 @@
export * from "./analytics"
export * from "./analytics";

View File

@@ -1,13 +1,13 @@
import "./app/globals.css"
import { useMDXComponents as getThemeComponents } from "nextra-theme-docs"
import "./app/globals.css";
import { useMDXComponents as getThemeComponents } from "nextra-theme-docs";
const themeComponents = getThemeComponents()
const themeComponents = getThemeComponents();
export function useMDXComponents(
components: Record<string, React.ComponentType<unknown>>
components: Record<string, React.ComponentType<unknown>>,
) {
return {
...themeComponents,
...components,
}
return {
...themeComponents,
...components,
};
}

View File

@@ -1,19 +1,19 @@
import type { Config } from "tailwindcss"
import type { Config } from "tailwindcss";
export default {
content: [
"./src/pages/**/*.{js,ts,jsx,tsx,mdx}",
"./src/components/**/*.{js,ts,jsx,tsx,mdx}",
"./src/app/**/*.{js,ts,jsx,tsx,mdx}",
"./src/mdx-components.tsx",
],
theme: {
extend: {
colors: {
background: "var(--background)",
foreground: "var(--foreground)",
},
},
},
plugins: [],
} satisfies Config
content: [
"./src/pages/**/*.{js,ts,jsx,tsx,mdx}",
"./src/components/**/*.{js,ts,jsx,tsx,mdx}",
"./src/app/**/*.{js,ts,jsx,tsx,mdx}",
"./src/mdx-components.tsx",
],
theme: {
extend: {
colors: {
background: "var(--background)",
foreground: "var(--foreground)",
},
},
},
plugins: [],
} satisfies Config;

View File

@@ -1,33 +1,33 @@
{
"compilerOptions": {
"target": "ES2017",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"incremental": true,
"plugins": [
{
"name": "next"
}
],
"paths": {
"@/*": ["./src/*"]
}
},
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
"**/*.mdx",
".next/types/**/*.ts"
],
"exclude": ["node_modules"]
"compilerOptions": {
"target": "ES2017",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"incremental": true,
"plugins": [
{
"name": "next"
}
],
"paths": {
"@/*": ["./src/*"]
}
},
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
"**/*.mdx",
".next/types/**/*.ts"
],
"exclude": ["node_modules"]
}

View File

@@ -1,3 +1,3 @@
{
"ignoreCommand": "git diff --quiet HEAD^ HEAD ./ && git diff --quiet HEAD^ HEAD ../../package.json"
"ignoreCommand": "git diff --quiet HEAD^ HEAD ./ && git diff --quiet HEAD^ HEAD ../../package.json"
}