import { Key, LucideAArrowDown, LucideIcon, Mailbox, Phone, ScanFace, Users2, UserSquare2, } from "lucide-react"; import { ReactNode, SVGProps } from "react"; import { Icons } from "./icons"; interface Content { title: string; href?: string; Icon: ((props?: SVGProps) => ReactNode) | LucideIcon; list: { title: string; href: string; icon: ((props?: SVGProps) => ReactNode) | LucideIcon; group?: boolean; }[]; } export const contents: Content[] = [ { title: "Get Started", Icon: () => ( ), list: [ { title: "Introduction", href: "/docs/introduction", icon: () => ( ), }, { title: "Installation", href: "/docs/installation", icon: () => ( ), }, { title: "Basic Usage", href: "/docs/basic-usage", icon: () => ( ), }, ], }, { title: "Concepts", list: [ { href: "/docs/concepts/api", title: "API", icon: () => ( ), }, { title: "Client", href: "/docs/concepts/client", icon: () => ( ), }, { title: "CLI", icon: () => ( ), href: "/docs/concepts/cli", }, { title: "Cookies", href: "/docs/concepts/cookies", icon: () => ( ), }, { title: "Database", icon: (props?: SVGProps) => ( ), href: "/docs/concepts/database", }, { href: "/docs/concepts/plugins", title: "Plugins", icon: (props?: SVGProps) => ( ), }, { title: "Rate Limit", icon: () => { return ( ); }, href: "/docs/concepts/rate-limit", }, { title: "Session Management", href: "/docs/concepts/session-management", icon: () => ( ), }, { title: "Typescript", href: "/docs/concepts/typescript", icon: () => ( ), }, { title: "Users & Accounts", href: "/docs/concepts/users-accounts", icon: () => ( ), }, ], Icon: () => ( ), }, { title: "Authentication", Icon: () => ( ), list: [ { title: "Email & Password", href: "/docs/authentication/email-password", icon: () => ( ), }, { title: "Social Sign-On", group: true, icon: LucideAArrowDown, href: "/", }, { title: "Apple", href: "/docs/authentication/apple", icon: () => ( ), }, { title: "Discord", href: "/docs/authentication/discord", icon: () => ( ), }, { title: "Facebook", href: "/docs/authentication/facebook", icon: () => ( ), }, { title: "Github", href: "/docs/authentication/github", icon: () => ( ), }, { title: "Google", href: "/docs/authentication/google", icon: () => ( ), }, { title: "Twitch", href: "/docs/authentication/twitch", icon: () => ( ), }, { title: "X (Twitter)", href: "/docs/authentication/twitter", icon: () => ( ), }, ], }, { title: "Integrations", Icon: () => ( ), list: [ { group: true, title: "Full Stack", href: "/docs/integrations", icon: LucideAArrowDown, }, { title: "Astro", icon: Icons.astro, href: "/docs/integrations/astro", }, { title: "Remix", icon: Icons.remix, href: "/docs/integrations/remix", }, { title: "Next", icon: Icons.nextJS, href: "/docs/integrations/next", }, { title: "Nuxt", icon: Icons.nuxt, href: "/docs/integrations/nuxt", }, { title: "Svelte Kit", icon: Icons.svelteKit, href: "/docs/integrations/svelte-kit", }, { title: "Solid Start", icon: Icons.solidStart, href: "/docs/integrations/solid-start", }, { group: true, title: "Backend", href: "/docs/integrations", icon: LucideAArrowDown, }, { title: "Hono", icon: Icons.hono, href: "/docs/integrations/hono", }, { title: "Node", icon: Icons.node, href: "/docs/integrations/node", }, ], }, { title: "Plugins", Icon: () => ( ), list: [ { title: "Authentication", group: true, href: "/docs/plugins/1st-party-plugins", icon: LucideAArrowDown, }, { title: "Two Factor", icon: ScanFace, href: "/docs/plugins/2fa", }, { title: "Username", icon: UserSquare2, href: "/docs/plugins/username", }, { title: "Phone Number", icon: Phone, href: "/docs/plugins/phone-number", }, { title: "Magic Link", href: "/docs/plugins/magic-link", icon: Mailbox, }, { title: "Passkey", href: "/docs/plugins/passkey", icon: () => ( ), }, { title: "Authorization", group: true, href: "/docs/plugins/1st-party-plugins", icon: LucideAArrowDown, }, { title: "Organization", icon: Users2, href: "/docs/plugins/organization", }, { title: "Utility", group: true, href: "/docs/plugins/1st-party-plugins", icon: LucideAArrowDown, }, { title: "Bearer", icon: Key, href: "/docs/plugins/bearer", }, ], }, { title: "Reference", Icon: () => ( ), list: [ { title: "Options", href: "/docs/reference/options", icon: () => ( ), }, ], }, ]; export const examples: Content[] = [ { title: "Examples", href: "/docs/examples/next", Icon: () => ( ), list: [ { title: "Astro + SolidJs", href: "/docs/examples/astro", icon: Icons.astro, }, { title: "Remix", href: "/docs/examples/remix", icon: Icons.remix, }, { title: "Next JS", href: "/docs/examples/next-js", icon: Icons.nextJS, }, { title: "Nuxt", href: "/docs/examples/nuxt", icon: Icons.nuxt, }, { title: "Svelte Kit", href: "/docs/examples/svelte-kit", icon: Icons.svelteKit, }, ], }, ];