From 4ea7794fdc9771f8a095c6c12c34d03045b4a5a8 Mon Sep 17 00:00:00 2001 From: Rainnny7 Date: Sun, 6 Oct 2024 15:51:56 -0400 Subject: [PATCH] Initial Commit --- .eslintrc.json | 6 + .gitattributes | 1 + .gitea/workflows/deploy.yml | 31 +++++ .gitignore | 13 ++ .prettierrc | 4 + Dockerfile | 45 +++++++ README.md | 3 + bun.lockb | Bin 0 -> 244410 bytes components.json | 20 +++ docs/bob/hello.md | 7 + docs/bob/hey.md | 7 + docs/bob/hi.md | 7 + docs/home.md | 8 ++ next.config.mjs | 14 ++ package.json | 44 +++++++ postcss.config.mjs | 8 ++ public/favicon.ico | Bin 0 -> 168849 bytes public/media/discord.svg | 4 + public/media/github.svg | 5 + public/media/logo.png | Bin 0 -> 3335 bytes renovate.json | 3 + src/app/[[...slug]]/page.tsx | 35 +++++ src/app/layout.tsx | 63 +++++++++ src/app/styles/globals.css | 80 +++++++++++ src/app/types/mdx.ts | 46 +++++++ src/components/mdx.tsx | 103 +++++++++++++++ src/components/navbar.tsx | 71 ++++++++++ src/components/sidebar/sidebar-links.tsx | 161 +++++++++++++++++++++++ src/components/sidebar/sidebar.tsx | 24 ++++ src/components/theme-provider.tsx | 9 ++ src/components/ui/button.tsx | 57 ++++++++ src/components/ui/collapsible.tsx | 11 ++ src/components/ui/input.tsx | 25 ++++ src/components/ui/separator.tsx | 31 +++++ src/lib/mdx.ts | 106 +++++++++++++++ src/lib/utils.ts | 6 + tailwind.config.ts | 70 ++++++++++ tsconfig.json | 40 ++++++ 38 files changed, 1168 insertions(+) create mode 100644 .eslintrc.json create mode 100644 .gitattributes create mode 100644 .gitea/workflows/deploy.yml create mode 100644 .gitignore create mode 100644 .prettierrc create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 bun.lockb create mode 100644 components.json create mode 100644 docs/bob/hello.md create mode 100644 docs/bob/hey.md create mode 100644 docs/bob/hi.md create mode 100644 docs/home.md create mode 100644 next.config.mjs create mode 100644 package.json create mode 100644 postcss.config.mjs create mode 100644 public/favicon.ico create mode 100644 public/media/discord.svg create mode 100644 public/media/github.svg create mode 100644 public/media/logo.png create mode 100644 renovate.json create mode 100644 src/app/[[...slug]]/page.tsx create mode 100644 src/app/layout.tsx create mode 100644 src/app/styles/globals.css create mode 100644 src/app/types/mdx.ts create mode 100644 src/components/mdx.tsx create mode 100644 src/components/navbar.tsx create mode 100644 src/components/sidebar/sidebar-links.tsx create mode 100644 src/components/sidebar/sidebar.tsx create mode 100644 src/components/theme-provider.tsx create mode 100644 src/components/ui/button.tsx create mode 100644 src/components/ui/collapsible.tsx create mode 100644 src/components/ui/input.tsx create mode 100644 src/components/ui/separator.tsx create mode 100644 src/lib/mdx.ts create mode 100644 src/lib/utils.ts create mode 100644 tailwind.config.ts create mode 100644 tsconfig.json diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..6b10a5b --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,6 @@ +{ + "extends": [ + "next/core-web-vitals", + "next/typescript" + ] +} diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..cc672fe --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.lockb binary diff=lockb \ No newline at end of file diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..5767e1b --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,31 @@ +name: Deploy + +on: + push: + branches: [ "master" ] + paths-ignore: + - README.md + - LICENSE + +jobs: + deploy: + strategy: + matrix: + arch: [ "ubuntu-latest" ] + git-version: [ "2.44.0" ] + runs-on: ${{ matrix.arch }} + + # Steps to run + steps: + # Checkout the repo + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + # Deploy to Dokku + - name: Deploy to Dokku + uses: dokku/github-action@master + with: + git_remote_url: "ssh://dokku@10.10.70.73:22/docs" + ssh_private_key: ${{ secrets.DOKKU_SSH_PRIVATE_KEY }} \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..acaf3a3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +node_modules +.idea/ +.vscode/ +.VSCodeCounter/ +.next/ +.env*.local +next-env.d.ts +.sentryclirc +.env +sw.* +workbox-* +swe-worker-* +dist/ \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..5f9f341 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,4 @@ +{ + "trailingComma": "es5", + "tabWidth": 4 +} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..822f7dc --- /dev/null +++ b/Dockerfile @@ -0,0 +1,45 @@ +FROM imbios/bun-node AS base + + +# Install dependencies +FROM base AS depends +WORKDIR /usr/src/app +COPY package.json* bun.lockb* ./ +RUN bun install --frozen-lockfile --quiet + + +# Build the app +FROM base AS builder +WORKDIR /usr/src/app +COPY --from=depends /usr/src/app/node_modules ./node_modules +COPY . . +ENV NEXT_TELEMETRY_DISABLED 1 +RUN bun run build + + +# Run the app +FROM base AS runner +WORKDIR /usr/src/app + +RUN addgroup --system --gid 1007 nextjs +RUN adduser --system --uid 1007 nextjs + +RUN mkdir .next +RUN chown nextjs:nextjs .next + +COPY --from=builder --chown=nextjs:nextjs /usr/src/app/.next/standalone ./ +COPY --from=builder --chown=nextjs:nextjs /usr/src/app/.next ./.next +COPY --from=builder --chown=nextjs:nextjs /usr/src/app/public ./public +COPY --from=builder --chown=nextjs:nextjs /usr/src/app/next.config.mjs ./next.config.mjs +COPY --from=builder --chown=nextjs:nextjs /usr/src/app/package.json ./package.json + +ENV NODE_ENV production + +# Exposting on port 80 so we can +# access via a reverse proxy for Dokku +ENV HOSTNAME "0.0.0.0" +EXPOSE 80 +ENV PORT 80 + +USER nextjs +CMD node server.js \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..d483af3 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# docs + +The public documentation for Pulse App. \ No newline at end of file diff --git a/bun.lockb b/bun.lockb new file mode 100644 index 0000000000000000000000000000000000000000..dddc95f22049467589be74a4e3a0f6514a6380d4 GIT binary patch literal 244410 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 literal 0 HcmV?d00001 diff --git a/components.json b/components.json new file mode 100644 index 0000000..7a63543 --- /dev/null +++ b/components.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": true, + "tsx": true, + "tailwind": { + "config": "tailwind.config.ts", + "css": "src/app/globals.css", + "baseColor": "zinc", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + } +} \ No newline at end of file diff --git a/docs/bob/hello.md b/docs/bob/hello.md new file mode 100644 index 0000000..ee2a454 --- /dev/null +++ b/docs/bob/hello.md @@ -0,0 +1,7 @@ +--- +title: 'Hello' +published: '10-06-2024' +summary: 'petentium usu tota noluisse errem elaboraret auctor.' +--- + +# hello \ No newline at end of file diff --git a/docs/bob/hey.md b/docs/bob/hey.md new file mode 100644 index 0000000..6e1bd62 --- /dev/null +++ b/docs/bob/hey.md @@ -0,0 +1,7 @@ +--- +title: 'Hey' +published: '10-06-2024' +summary: 'petentium usu tota noluisse errem elaboraret auctor.' +--- + +# hey \ No newline at end of file diff --git a/docs/bob/hi.md b/docs/bob/hi.md new file mode 100644 index 0000000..865dda5 --- /dev/null +++ b/docs/bob/hi.md @@ -0,0 +1,7 @@ +--- +title: 'Hi' +published: '10-06-2024' +summary: 'petentium usu tota noluisse errem elaboraret auctor.' +--- + +# hi \ No newline at end of file diff --git a/docs/home.md b/docs/home.md new file mode 100644 index 0000000..b583eae --- /dev/null +++ b/docs/home.md @@ -0,0 +1,8 @@ +--- +title: 'Home' +published: '10-06-2024' +summary: 'petentium usu tota noluisse errem elaboraret auctor.' +--- + +# Get started with Pulse App! +petentium usu tota noluisse errem elaboraret auctor. \ No newline at end of file diff --git a/next.config.mjs b/next.config.mjs new file mode 100644 index 0000000..e29c5be --- /dev/null +++ b/next.config.mjs @@ -0,0 +1,14 @@ +/** @type {import("next").NextConfig} */ +const nextConfig = { + output: "standalone", + images: { + remotePatterns: [ + { + protocol: "https", + hostname: "cdn.pulseapp.cc", + }, + ], + }, +}; + +export default nextConfig; diff --git a/package.json b/package.json new file mode 100644 index 0000000..d502c75 --- /dev/null +++ b/package.json @@ -0,0 +1,44 @@ +{ + "name": "docs", + "version": "1.0.0", + "author": { + "name": "Braydon (Rainnny)", + "url": "https://rainnny.club", + "email": "braydonrainnny@gmail.com" + }, + "private": true, + "scripts": { + "dev": "next dev --turbo", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "@radix-ui/react-collapsible": "^1.1.1", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/react-separator": "^1.1.0", + "@radix-ui/react-slot": "^1.1.0", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "framer-motion": "^11.11.1", + "lucide-react": "^0.447.0", + "next": "^15.0.0-canary.179", + "next-themes": "^0.3.0", + "react": "^19.0.0-rc-1460d67c-20241003", + "react-dom": "^19.0.0-rc-1460d67c-20241003", + "remark-gfm": "^4.0.0", + "remote-mdx": "^0.0.8", + "tailwind-merge": "^2.5.3", + "tailwindcss-animate": "^1.0.7" + }, + "devDependencies": { + "typescript": "^5", + "@types/node": "^20", + "@types/react": "^18", + "@types/react-dom": "^18", + "postcss": "^8", + "tailwindcss": "^3.4.1", + "eslint": "^8", + "eslint-config-next": "14.2.8" + } +} \ No newline at end of file diff --git a/postcss.config.mjs b/postcss.config.mjs new file mode 100644 index 0000000..e30ba03 --- /dev/null +++ b/postcss.config.mjs @@ -0,0 +1,8 @@ +/** @type {import("postcss-load-config").Config} */ +const config = { + plugins: { + tailwindcss: {}, + }, +}; + +export default config; diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ad3987c37ec047a7a084ad54ee36268c57034204 GIT binary patch literal 168849 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 literal 0 HcmV?d00001 diff --git a/public/media/discord.svg b/public/media/discord.svg new file mode 100644 index 0000000..64571aa --- /dev/null +++ b/public/media/discord.svg @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/public/media/github.svg b/public/media/github.svg new file mode 100644 index 0000000..ac671ba --- /dev/null +++ b/public/media/github.svg @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/public/media/logo.png b/public/media/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..504600461ba98fd374a010d03387155fbd19c390 GIT binary patch literal 3335 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 +}): Promise => { + const slug: string = (((await params).slug as string[]) || undefined)?.join( + "/" + ); + + // Get the content to display based on the provided slug + const content: DocsContentMetadata | undefined = getDocsContent().find( + (metadata: DocsContentMetadata): boolean => + metadata.slug === (slug || "home") + ); + if (!content) { + notFound(); + } + + return ( +
+ +
+ ); +}; +export default DocsPage; diff --git a/src/app/layout.tsx b/src/app/layout.tsx new file mode 100644 index 0000000..64bb77a --- /dev/null +++ b/src/app/layout.tsx @@ -0,0 +1,63 @@ +import type { Metadata, Viewport } from "next"; +import "./styles/globals.css"; +import { ReactElement, ReactNode } from "react"; +import { ThemeProvider } from "@/components/theme-provider"; +import Navbar from "@/components/navbar"; +import Sidebar from "@/components/sidebar/sidebar"; + +/** + * The metadata for this app. + */ +export const metadata: Metadata = { + title: { + default: "Pulse App Docs", + template: "%s • Pulse App Docs", + }, + description: + "A lightweight service monitoring solution for tracking the availability of whatever service your heart desires!", + openGraph: { + images: [ + { + url: "https://pulseapp.cc/media/logo.png", + width: 128, + height: 128, + }, + ], + }, + twitter: { + card: "summary", + }, +}; +export const viewport: Viewport = { + themeColor: "#A855F7", +}; + +/** + * The primary layout for this app. + */ +const RootLayout = ({ + children, +}: Readonly<{ + children: ReactNode; +}>): ReactElement => ( + + + +
+ +
+ + {children} +
+
+
+ + +); +export default RootLayout; diff --git a/src/app/styles/globals.css b/src/app/styles/globals.css new file mode 100644 index 0000000..fdc9e42 --- /dev/null +++ b/src/app/styles/globals.css @@ -0,0 +1,80 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +body { + font-family: Arial, Helvetica, sans-serif; +} + +@layer utilities { + .text-balance { + text-wrap: balance; + } +} + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 240 10% 3.9%; + --card: 0 0% 100%; + --card-foreground: 240 10% 3.9%; + --popover: 0 0% 100%; + --popover-foreground: 240 10% 3.9%; + --primary: 240 5.9% 10%; + --primary-foreground: 0 0% 98%; + --secondary: 240 4.8% 95.9%; + --secondary-foreground: 240 5.9% 10%; + --muted: 240 4.8% 95.9%; + --muted-foreground: 240 3.8% 46.1%; + --accent: 240 4.8% 95.9%; + --accent-foreground: 240 5.9% 10%; + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 0 0% 98%; + --border: 240 5.9% 90%; + --input: 240 5.9% 90%; + --ring: 240 10% 3.9%; + --chart-1: 12 76% 61%; + --chart-2: 173 58% 39%; + --chart-3: 197 37% 24%; + --chart-4: 43 74% 66%; + --chart-5: 27 87% 67%; + --radius: 0.5rem; + } + + .dark { + --background: 240 10% 3.9%; + --foreground: 0 0% 98%; + --card: 240 10% 3.9%; + --card-foreground: 0 0% 98%; + --popover: 240 10% 3.9%; + --popover-foreground: 0 0% 98%; + --primary: 271 91% 65%; + --primary-foreground: 240 5.9% 10%; + --secondary: 272 72% 47%; + --secondary-foreground: 0 0% 98%; + --muted: 240 3.7% 15.9%; + --muted-foreground: 240 5% 64.9%; + --accent: 240 3.7% 15.9%; + --accent-foreground: 0 0% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 0% 98%; + --border: 240 3.7% 15.9%; + --input: 240 3.7% 15.9%; + --ring: 240 4.9% 83.9%; + --chart-1: 220 70% 50%; + --chart-2: 160 60% 45%; + --chart-3: 30 80% 55%; + --chart-4: 280 65% 60%; + --chart-5: 340 75% 55%; + } +} + +@layer base { + * { + @apply border-border; + } + + body { + @apply bg-background text-foreground; + } +} diff --git a/src/app/types/mdx.ts b/src/app/types/mdx.ts new file mode 100644 index 0000000..4ac0934 --- /dev/null +++ b/src/app/types/mdx.ts @@ -0,0 +1,46 @@ +/** + * Metadata for documentation content. + */ +type DocsContentMetadata = MDXMetadata & { + /** + * The title of this content. + */ + title: string; + + /** + * The date this content was published. + */ + published: string; + + /** + * The summary of this content. + */ + summary: string; +}; + +/** + * Metadata for an MDX file. + */ +type MDXMetadata = { + /** + * The slug of the file, defined once read. + */ + slug?: string | undefined; + + /** + * The extension of the file, defined once read. + */ + extension?: string | undefined; + + /** + * The metadata of the file. + */ + metadata: { + [key: string]: string; + }; + + /** + * The content of the file. + */ + content: string; +}; diff --git a/src/components/mdx.tsx b/src/components/mdx.tsx new file mode 100644 index 0000000..66be54d --- /dev/null +++ b/src/components/mdx.tsx @@ -0,0 +1,103 @@ +import { ReactElement, ReactNode } from "react"; +import { MDXRemote } from "remote-mdx/rsc"; +import { cn } from "@/lib/utils"; +import remarkGfm from "remark-gfm"; + +/** + * The MDX components to style. + */ +const components = { + h1: ({ children }: { children: ReactNode }): ReactElement => ( + + {children} + + ), + h2: ({ children }: { children: ReactNode }): ReactElement => ( + + {children} + + ), + h3: ({ children }: { children: ReactNode }): ReactElement => ( + + {children} + + ), + h4: ({ children }: { children: ReactNode }): ReactElement => ( + + {children} + + ), + h5: ({ children }: { children: ReactNode }): ReactElement => ( + + {children} + + ), + h6: ({ children }: { children: ReactNode }): ReactElement => ( + + {children} + + ), + a: ({ + href, + children, + }: { + href: string; + children: ReactNode; + }): ReactElement => ( + + {children} + + ), + p: ({ children }: { children: ReactNode }): ReactElement => ( +

{children}

+ ), + ul: ({ children }: { children: ReactNode }): ReactElement => ( +
    {children}
+ ), +}; + +/** + * The custom render for MDX. + * + * @param props the props for the MDX + * @return the custom mdx + */ +export const CustomMDX = (props): ReactElement => ( + +); + +/** + * A heading component. + * + * @param className the class name of the heading + * @param size the size of the heading + * @param children the children within the heading + * @return the heading jsx + */ +const Heading = ({ + className, + size, + children, +}: { + className: string; + size: number; + children: ReactNode; +}): ReactElement => ( +

= 2 && "pt-7", className)}> + {children} +

+); diff --git a/src/components/navbar.tsx b/src/components/navbar.tsx new file mode 100644 index 0000000..61b5657 --- /dev/null +++ b/src/components/navbar.tsx @@ -0,0 +1,71 @@ +import { ReactElement } from "react"; +import Link from "next/link"; +import Image from "next/image"; +import { cn } from "@/lib/utils"; +import { Input } from "@/components/ui/input"; + +const Navbar = (): ReactElement => ( + +); + +const SocialLink = ({ + name, + link, + icon, +}: { + name: string; + link: string; + icon: string; +}): ReactElement => ( +
+ + {`${name} + +
+); + +export default Navbar; diff --git a/src/components/sidebar/sidebar-links.tsx b/src/components/sidebar/sidebar-links.tsx new file mode 100644 index 0000000..e4842d0 --- /dev/null +++ b/src/components/sidebar/sidebar-links.tsx @@ -0,0 +1,161 @@ +"use client"; + +import { ReactElement, useMemo, useState } from "react"; +import { + Collapsible, + CollapsibleContent, + CollapsibleTrigger, +} from "@/components/ui/collapsible"; +import { Button } from "@/components/ui/button"; +import Link from "next/link"; +import { ChevronRight } from "lucide-react"; +import { usePathname } from "next/navigation"; +import { cn } from "@/lib/utils"; +import { AnimatePresence, motion } from "framer-motion"; + +const SidebarLinks = ({ + pages, +}: { + pages: DocsContentMetadata[]; +}): ReactElement => { + const tree = useMemo(() => buildTree(pages), [pages]); + return ( + <> + {Object.values(tree).map((node: TreeNode) => ( + + ))} + + ); +}; + +type TreeNode = { + title: string; + slug: string; + isFolder: boolean; + children: Record; +}; + +const CategoryItem = ({ + node, + depth = 0, + isLast = true, +}: { + node: TreeNode; + depth?: number; + isLast?: boolean; +}) => { + const path = usePathname(); + const active = + (path === "/" && node.slug === "home") || path === `/${node.slug}`; + const [isOpen, setIsOpen] = useState(true); + const hasChildren = Object.keys(node.children).length > 0; + + return ( +
0 ? "ml-4" : ""}`}> + {/* Indentation */} + {depth > 0 && ( +
+ )} + + + {/* Trigger */} + + + + + + + {/* Content */} + + {hasChildren && isOpen && ( + + + {Object.values(node.children).map( + (child, index, array) => ( + + ) + )} + + + )} + + +
+ ); +}; + +const buildTree = (pages: DocsContentMetadata[]): Record => { + const tree: Record = {}; + + pages.forEach((page) => { + const parts: string[] | undefined = page.slug?.split("/"); + let currentLevel = tree; + + parts?.forEach((part: string, index: number) => { + if (!currentLevel[part]) { + currentLevel[part] = { + title: part, + slug: parts.slice(0, index + 1).join("/"), + isFolder: index < parts.length - 1, + children: {}, + }; + } + if (index === parts.length - 1) { + currentLevel[part].title = page.title; + currentLevel[part].isFolder = false; + } + currentLevel = currentLevel[part].children; + }); + }); + return tree; +}; + +export default SidebarLinks; diff --git a/src/components/sidebar/sidebar.tsx b/src/components/sidebar/sidebar.tsx new file mode 100644 index 0000000..aecdf36 --- /dev/null +++ b/src/components/sidebar/sidebar.tsx @@ -0,0 +1,24 @@ +import { ReactElement } from "react"; +import { Separator } from "@/components/ui/separator"; +import { getDocsContent } from "@/lib/mdx"; +import SidebarLinks from "@/components/sidebar/sidebar-links"; + +const Sidebar = (): ReactElement => { + const pages: DocsContentMetadata[] = getDocsContent(); + return ( +
+ {/* Links */} +
+ +
+ + {/* Theme Switcher */} +
+ + Theme Switcher +
+
+ ); +}; + +export default Sidebar; diff --git a/src/components/theme-provider.tsx b/src/components/theme-provider.tsx new file mode 100644 index 0000000..9417fc0 --- /dev/null +++ b/src/components/theme-provider.tsx @@ -0,0 +1,9 @@ +"use client"; + +import * as React from "react"; +import { ThemeProvider as NextThemesProvider } from "next-themes"; +import { type ThemeProviderProps } from "next-themes/dist/types"; + +export const ThemeProvider = ({ children, ...props }: ThemeProviderProps) => { + return {children}; +}; diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx new file mode 100644 index 0000000..0270f64 --- /dev/null +++ b/src/components/ui/button.tsx @@ -0,0 +1,57 @@ +import * as React from "react" +import { Slot } from "@radix-ui/react-slot" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const buttonVariants = cva( + "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50", + { + variants: { + variant: { + default: + "bg-primary text-primary-foreground shadow hover:bg-primary/90", + destructive: + "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90", + outline: + "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground", + secondary: + "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80", + ghost: "hover:bg-accent hover:text-accent-foreground", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-9 px-4 py-2", + sm: "h-8 rounded-md px-3 text-xs", + lg: "h-10 rounded-md px-8", + icon: "h-9 w-9", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + } +) + +export interface ButtonProps + extends React.ButtonHTMLAttributes, + VariantProps { + asChild?: boolean +} + +const Button = React.forwardRef( + ({ className, variant, size, asChild = false, ...props }, ref) => { + const Comp = asChild ? Slot : "button" + return ( + + ) + } +) +Button.displayName = "Button" + +export { Button, buttonVariants } diff --git a/src/components/ui/collapsible.tsx b/src/components/ui/collapsible.tsx new file mode 100644 index 0000000..9fa4894 --- /dev/null +++ b/src/components/ui/collapsible.tsx @@ -0,0 +1,11 @@ +"use client" + +import * as CollapsiblePrimitive from "@radix-ui/react-collapsible" + +const Collapsible = CollapsiblePrimitive.Root + +const CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger + +const CollapsibleContent = CollapsiblePrimitive.CollapsibleContent + +export { Collapsible, CollapsibleTrigger, CollapsibleContent } diff --git a/src/components/ui/input.tsx b/src/components/ui/input.tsx new file mode 100644 index 0000000..5af26b2 --- /dev/null +++ b/src/components/ui/input.tsx @@ -0,0 +1,25 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +export interface InputProps + extends React.InputHTMLAttributes {} + +const Input = React.forwardRef( + ({ className, type, ...props }, ref) => { + return ( + + ) + } +) +Input.displayName = "Input" + +export { Input } diff --git a/src/components/ui/separator.tsx b/src/components/ui/separator.tsx new file mode 100644 index 0000000..12d81c4 --- /dev/null +++ b/src/components/ui/separator.tsx @@ -0,0 +1,31 @@ +"use client" + +import * as React from "react" +import * as SeparatorPrimitive from "@radix-ui/react-separator" + +import { cn } from "@/lib/utils" + +const Separator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>( + ( + { className, orientation = "horizontal", decorative = true, ...props }, + ref + ) => ( + + ) +) +Separator.displayName = SeparatorPrimitive.Root.displayName + +export { Separator } diff --git a/src/lib/mdx.ts b/src/lib/mdx.ts new file mode 100644 index 0000000..98b9dac --- /dev/null +++ b/src/lib/mdx.ts @@ -0,0 +1,106 @@ +import * as fs from "node:fs"; +import { Stats } from "node:fs"; +import path from "node:path"; + +/** + * The regex to match for metadata. + */ +const METADATA_REGEX: RegExp = /---\s*([\s\S]*?)\s*---/; + +/** + * The directory docs are stored in. + */ +const DOCS_DIR: string = path.join(process.cwd(), "docs"); + +/** + * Get the content to + * display in the docs. + */ +export const getDocsContent = (): DocsContentMetadata[] => { + const content: DocsContentMetadata[] = []; + for (const directory of getRecursiveDirectories(DOCS_DIR)) { + content.push(...getMetadata(DOCS_DIR, directory)); + } + return content; +}; + +/** + * Get the metadata of mdx + * files in the given directory. + * + * @param parent the parent directory to search + * @param directory the directory to search + */ +const getMetadata = ( + parent: string, + directory: string +): T[] => { + const files: string[] = fs + .readdirSync(directory) + .filter((file: string): boolean => { + const extension: string = path.extname(file); // The file extension + return extension === ".md" || extension === ".mdx"; + }); // Read the MDX files + return files.map((file: string): T => { + const filePath: string = path.join(directory, file); // The path of the file + return { + slug: filePath + .replace(parent, "") + .replace(/\\/g, "/") // Normalize the path + .replace(/\.mdx?$/, "") + .substring(1), + extension: path.extname(file), + ...parseMetadata(fs.readFileSync(filePath, "utf-8")), + }; // Map each file to its metadata + }); +}; + +/** + * Parse the metadata from + * the given content. + * + * @param content the content to parse + * @returns the metadata and content + * @template T the type of metadata + */ +const parseMetadata = (content: string): T => { + const metadataBlock: string = METADATA_REGEX.exec(content)![1]; // Get the block of metadata + content = content.replace(METADATA_REGEX, "").trim(); // Remove the metadata block from the content + const metadata: Partial<{ + [key: string]: string; + }> = {}; // The metadata to return + + // Parse the metadata block as a key-value pair + metadataBlock + .trim() // Trim any leading or trailing whitespace + .split("\n") // Get each line + .forEach((line: string): void => { + const split: string[] = line.split(": "); // Split the metadata by the colon + let value: string = split[1].trim(); // The value of the metadata + value = value.replace(/^['"](.*)['"]$/, "$1"); // Remove quotes + metadata[split[0].trim()] = value; // Add the metadata to the object + }); + + // Return the metadata and content. The initial + // slug is empty, and is defined later on. + return { ...metadata, content } as T; +}; + +/** + * Get directories recursively + * in the given directory. + * + * @param directory the directory to search + * @return the directories + */ +const getRecursiveDirectories = (directory: string): string[] => { + const directories: string[] = [directory]; // The directories to return + for (const sub of fs.readdirSync(directory)) { + const subDirPath: string = path.join(directory, sub); // The sub dir path + const stats: Stats = fs.statSync(subDirPath); // Get file stats + if (stats.isDirectory()) { + directories.push(...getRecursiveDirectories(subDirPath)); // Recursively get directories + } + } + return directories; +}; diff --git a/src/lib/utils.ts b/src/lib/utils.ts new file mode 100644 index 0000000..30bb919 --- /dev/null +++ b/src/lib/utils.ts @@ -0,0 +1,6 @@ +import { type ClassValue, clsx } from "clsx"; +import { twMerge } from "tailwind-merge"; + +export const cn = (...inputs: ClassValue[]) => { + return twMerge(clsx(inputs)); +}; diff --git a/tailwind.config.ts b/tailwind.config.ts new file mode 100644 index 0000000..750f8ca --- /dev/null +++ b/tailwind.config.ts @@ -0,0 +1,70 @@ +import type { Config } from "tailwindcss"; + +// eslint-disable-next-line @typescript-eslint/no-var-requires +const defaultTheme = require("tailwindcss/defaultTheme"); + +const config: Config = { + darkMode: ["class"], + content: [ + "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", + "./src/components/**/*.{js,ts,jsx,tsx,mdx}", + "./src/app/**/*.{js,ts,jsx,tsx,mdx}", + ], + theme: { + screens: { + xs: "475px", + ...defaultTheme.screens, + }, + extend: { + colors: { + background: "hsl(var(--background))", + foreground: "hsl(var(--foreground))", + card: { + DEFAULT: "hsl(var(--card))", + foreground: "hsl(var(--card-foreground))", + }, + popover: { + DEFAULT: "hsl(var(--popover))", + foreground: "hsl(var(--popover-foreground))", + }, + primary: { + DEFAULT: "hsl(var(--primary))", + foreground: "hsl(var(--primary-foreground))", + }, + secondary: { + DEFAULT: "hsl(var(--secondary))", + foreground: "hsl(var(--secondary-foreground))", + }, + muted: { + DEFAULT: "hsl(var(--muted))", + foreground: "hsl(var(--muted-foreground))", + }, + accent: { + DEFAULT: "hsl(var(--accent))", + foreground: "hsl(var(--accent-foreground))", + }, + destructive: { + DEFAULT: "hsl(var(--destructive))", + foreground: "hsl(var(--destructive-foreground))", + }, + border: "hsl(var(--border))", + input: "hsl(var(--input))", + ring: "hsl(var(--ring))", + chart: { + "1": "hsl(var(--chart-1))", + "2": "hsl(var(--chart-2))", + "3": "hsl(var(--chart-3))", + "4": "hsl(var(--chart-4))", + "5": "hsl(var(--chart-5))", + }, + }, + borderRadius: { + lg: "var(--radius)", + md: "calc(var(--radius) - 2px)", + sm: "calc(var(--radius) - 4px)", + }, + }, + }, + plugins: [require("tailwindcss-animate")], +}; +export default config; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..f48e7ee --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,40 @@ +{ + "compilerOptions": { + "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/*" + ] + }, + "target": "ES2017" + }, + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts" + ], + "exclude": [ + "node_modules" + ] +}