Files
better-auth/docs/components/sidebar-content.tsx
Bereket Engida 9f2e45b8c7 chore: cleanup
2025-01-06 14:30:39 +03:00

1261 lines
62 KiB
TypeScript

import {
CircleHelp,
Key,
LucideAArrowDown,
LucideIcon,
Mail,
Mailbox,
Phone,
ScanFace,
ShieldCheck,
UserCircle,
Users2,
UserSquare2,
} from "lucide-react";
import { ReactNode, SVGProps } from "react";
import { Icons } from "./icons";
interface Content {
title: string;
href?: string;
Icon: ((props?: SVGProps<any>) => ReactNode) | LucideIcon;
list: {
title: string;
href: string;
icon: ((props?: SVGProps<any>) => ReactNode) | LucideIcon;
group?: boolean;
}[];
}
export const contents: Content[] = [
{
title: "Get Started",
Icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.4em"
height="1.4em"
viewBox="0 0 24 24"
>
<path
fill="currentColor"
d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10s10-4.48 10-10S17.52 2 12 2m-1 14H9V8h2zm1 0V8l5 4z"
/>
</svg>
),
list: [
{
title: "Introduction",
href: "/docs/introduction",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 256 256"
>
<path
fill="currentColor"
d="M232 48h-64a32 32 0 0 0-32 32v87.73a8.17 8.17 0 0 1-7.47 8.25a8 8 0 0 1-8.53-8V80a32 32 0 0 0-32-32H24a8 8 0 0 0-8 8v144a8 8 0 0 0 8 8h72a24 24 0 0 1 24 23.94a7.9 7.9 0 0 0 5.12 7.55A8 8 0 0 0 136 232a24 24 0 0 1 24-24h72a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8m-24 120h-39.73a8.17 8.17 0 0 1-8.25-7.47a8 8 0 0 1 8-8.53h39.73a8.17 8.17 0 0 1 8.25 7.47a8 8 0 0 1-8 8.53m0-32h-39.73a8.17 8.17 0 0 1-8.25-7.47a8 8 0 0 1 8-8.53h39.73a8.17 8.17 0 0 1 8.25 7.47a8 8 0 0 1-8 8.53m0-32h-39.73a8.17 8.17 0 0 1-8.27-7.47a8 8 0 0 1 8-8.53h39.73a8.17 8.17 0 0 1 8.27 7.47a8 8 0 0 1-8 8.53"
/>
</svg>
),
},
{
title: "Comparison",
href: "/docs/comparison",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 24 24"
>
<path
fill="currentColor"
fillRule="evenodd"
d="M13 2a1 1 0 1 0-2 0v1H6a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3h5v1a1 1 0 0 0 2 0v-1a1 1 0 0 0 0-2V5a1 1 0 1 0 0-2zm4 1a1 1 0 1 0 0 2h1a1 1 0 0 1 1 1v1a1 1 0 1 0 2 0V6a3 3 0 0 0-3-3zm4 8a1 1 0 1 0-2 0v2a1 1 0 0 0 2 0zm0 6a1 1 0 1 0-2 0v1a1 1 0 0 1-1 1h-1a1 1 0 1 0 0 2h1a3 3 0 0 0 3-3z"
clipRule="evenodd"
></path>
</svg>
),
},
{
title: "Installation",
href: "/docs/installation",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 24 24"
>
<path
fill="currentColor"
fillRule="evenodd"
d="M2 12c0-4.714 0-7.071 1.464-8.536C4.93 2 7.286 2 12 2c4.714 0 7.071 0 8.535 1.464C22 4.93 22 7.286 22 12c0 4.714 0 7.071-1.465 8.535C19.072 22 16.714 22 12 22s-7.071 0-8.536-1.465C2 19.072 2 16.714 2 12m10-5.75a.75.75 0 0 1 .75.75v5.19l1.72-1.72a.75.75 0 1 1 1.06 1.06l-3 3a.75.75 0 0 1-1.06 0l-3-3a.75.75 0 1 1 1.06-1.06l1.72 1.72V7a.75.75 0 0 1 .75-.75m-4 10a.75.75 0 0 0 0 1.5h8a.75.75 0 0 0 0-1.5z"
clipRule="evenodd"
/>
</svg>
),
},
{
title: "Basic Usage",
href: "/docs/basic-usage",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 16 16"
>
<path
fill="currentColor"
d="M2 3.75C2 2.784 2.784 2 3.75 2h8.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25zM6 6.5a.5.5 0 0 0-1 0v4a.5.5 0 0 0 1 0zM8 8a.5.5 0 0 0-.5.5v2a.5.5 0 0 0 1 0v-2A.5.5 0 0 0 8 8m3-2.5a.5.5 0 0 0-1 0v5a.5.5 0 0 0 1 0z"
></path>
</svg>
),
},
],
},
{
title: "Concepts",
list: [
{
href: "/docs/concepts/api",
title: "API",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 24 24"
>
<path
className="fill-current"
fillRule="evenodd"
d="M2.6 13.25a1.35 1.35 0 0 0-1.35 1.35v6.8c0 .746.604 1.35 1.35 1.35h18.8a1.35 1.35 0 0 0 1.35-1.35v-6.8a1.35 1.35 0 0 0-1.35-1.35zm3.967 5.25a.75.75 0 0 0-1.114-1.003l-.01.011a.75.75 0 0 0 1.114 1.004zM2.6 1.25A1.35 1.35 0 0 0 1.25 2.6v6.8c0 .746.604 1.35 1.35 1.35h18.8a1.35 1.35 0 0 0 1.35-1.35V2.6a1.35 1.35 0 0 0-1.35-1.35zM6.567 6.5a.75.75 0 0 0-1.114-1.003l-.01.011a.75.75 0 1 0 1.114 1.004z"
clipRule="evenodd"
></path>
</svg>
),
},
{
title: "CLI",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 256 256"
>
<path
fill="currentColor"
d="M216 40H40a16 16 0 0 0-16 16v144a16 16 0 0 0 16 16h176a16 16 0 0 0 16-16V56a16 16 0 0 0-16-16m-91 94.25l-40 32a8 8 0 1 1-10-12.5L107.19 128L75 102.25a8 8 0 1 1 10-12.5l40 32a8 8 0 0 1 0 12.5M176 168h-40a8 8 0 0 1 0-16h40a8 8 0 0 1 0 16"
></path>
</svg>
),
href: "/docs/concepts/cli",
},
{
title: "Client",
href: "/docs/concepts/client",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 24 24"
>
<path
fill="currentColor"
d="M4 8h4V4H4zm6 12h4v-4h-4zm-6 0h4v-4H4zm0-6h4v-4H4zm6 0h4v-4h-4zm6-10v4h4V4zm-6 4h4V4h-4zm6 6h4v-4h-4zm0 6h4v-4h-4z"
></path>
</svg>
),
},
{
title: "Cookies",
href: "/docs/concepts/cookies",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 16 16"
>
<path
fill="currentColor"
d="M8 1a7 7 0 1 0 6.926 5.978a.5.5 0 0 0-.781-.338a2 2 0 0 1-3.111-1.273a.5.5 0 0 0-.401-.4A2 2 0 0 1 9.36 1.854a.5.5 0 0 0-.338-.78A7 7 0 0 0 8 1m0 7.75a.75.75 0 1 1 0-1.5a.75.75 0 0 1 0 1.5m-2 2a.75.75 0 1 1-1.5 0a.75.75 0 0 1 1.5 0M4.75 7a.75.75 0 1 1 0-1.5a.75.75 0 0 1 0 1.5m5.75 4.25a.75.75 0 1 1-1.5 0a.75.75 0 0 1 1.5 0"
></path>
</svg>
),
},
{
title: "Database",
icon: (props?: SVGProps<any>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 16 16"
>
<g fill="currentColor">
<path d="M3.904 1.777C4.978 1.289 6.427 1 8 1s3.022.289 4.096.777C13.125 2.245 14 2.993 14 4s-.875 1.755-1.904 2.223C11.022 6.711 9.573 7 8 7s-3.022-.289-4.096-.777C2.875 5.755 2 5.007 2 4s.875-1.755 1.904-2.223"></path>
<path d="M2 6.161V7c0 1.007.875 1.755 1.904 2.223C4.978 9.71 6.427 10 8 10s3.022-.289 4.096-.777C13.125 8.755 14 8.007 14 7v-.839c-.457.432-1.004.751-1.49.972C11.278 7.693 9.682 8 8 8s-3.278-.307-4.51-.867c-.486-.22-1.033-.54-1.49-.972"></path>
<path d="M2 9.161V10c0 1.007.875 1.755 1.904 2.223C4.978 12.711 6.427 13 8 13s3.022-.289 4.096-.777C13.125 11.755 14 11.007 14 10v-.839c-.457.432-1.004.751-1.49.972c-1.232.56-2.828.867-4.51.867s-3.278-.307-4.51-.867c-.486-.22-1.033-.54-1.49-.972"></path>
<path d="M2 12.161V13c0 1.007.875 1.755 1.904 2.223C4.978 15.711 6.427 16 8 16s3.022-.289 4.096-.777C13.125 14.755 14 14.007 14 13v-.839c-.457.432-1.004.751-1.49.972c-1.232.56-2.828.867-4.51.867s-3.278-.307-4.51-.867c-.486-.22-1.033-.54-1.49-.972"></path>
</g>
</svg>
),
href: "/docs/concepts/database",
},
{
href: "/docs/concepts/email",
title: "Email",
icon: (props?: SVGProps<any>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 512 512"
>
<path
d="M67 148.7c11 5.8 163.8 89.1 169.5 92.1 5.7 3 11.5 4.4 20.5 4.4s14.8-1.4 20.5-4.4c5.7-3 158.5-86.3 169.5-92.1 4.1-2.1 11-5.9 12.5-10.2 2.6-7.6-.2-10.5-11.3-10.5H65.8c-11.1 0-13.9 3-11.3 10.5 1.5 4.4 8.4 8.1 12.5 10.2z"
fill="currentColor"
></path>
<path
d="M455.7 153.2c-8.2 4.2-81.8 56.6-130.5 88.1l82.2 92.5c2 2 2.9 4.4 1.8 5.6-1.2 1.1-3.8.5-5.9-1.4l-98.6-83.2c-14.9 9.6-25.4 16.2-27.2 17.2-7.7 3.9-13.1 4.4-20.5 4.4s-12.8-.5-20.5-4.4c-1.9-1-12.3-7.6-27.2-17.2L110.7 338c-2 2-4.7 2.6-5.9 1.4-1.2-1.1-.3-3.6 1.7-5.6l82.1-92.5c-48.7-31.5-123.1-83.9-131.3-88.1-8.8-4.5-9.3.8-9.3 4.9v205c0 9.3 13.7 20.9 23.5 20.9h371c9.8 0 21.5-11.7 21.5-20.9v-205c0-4.2.6-9.4-8.3-4.9z"
fill="currentColor"
></path>
</svg>
),
},
{
href: "/docs/concepts/hooks",
title: "Hooks",
icon: (props?: SVGProps<any>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 65 64"
fill="currentColor"
>
<path
fill="currentColor"
fillRule="evenodd"
d="M30.719 27.2c-6.18-3.098-8.44-7.209-6.946-12.241c1.316-4.435 5.752-7.337 10.27-6.655c2.253.34 4.235 1.263 5.78 3.023c2.337 2.667 2.865 5.78 2.151 9.246l2.135.579l3.201.868c2.273-6.234-.393-13.518-6.214-17.258c-6.061-3.893-13.914-3.071-19.062 2c-2.687 2.649-4.158 5.88-4.5 9.62c-.483 5.29 1.703 9.558 5.375 13.21l-5.84 9.793q-.283.02-.502.033c-.269.016-.48.029-.688.058c-3.839.544-6.54 3.958-5.895 7.44c.73 3.933 4.309 6.348 7.983 5.385c3.896-1.02 5.97-4.78 4.5-8.644c-.532-1.398-.203-2.294.463-3.394c1.877-3.101 3.727-6.219 5.61-9.394zm13.222 4.686l-5.647-9.96q.14-.349.272-.665v-.001c.185-.448.354-.858.495-1.277c.747-2.21.296-4.228-1.122-6.02c-1.736-2.194-4.764-2.991-7.345-2.004c-2.605.997-4.272 3.554-4.158 6.383c.115 2.86 2.034 5.414 5.008 5.929c1.78.308 2.652 1.154 3.442 2.61c1.68 3.1 3.42 6.165 5.162 9.233v.001q1.033 1.817 2.061 3.64c5.832-3.888 10.657-3.764 14.26.285c3.12 3.51 3.186 8.854.153 12.438c-3.557 4.201-8.348 4.368-13.826.82l-4.352 3.642c5.546 5.536 13.463 6.272 19.723 1.963c6.099-4.199 8.222-12.258 5.116-19.063c-2.57-5.633-9.737-10.895-19.242-7.954m-12.623 16.99H42.76q.238.321.455.63c.303.428.592.834.928 1.195c2.424 2.592 6.516 2.72 9.106.315c2.685-2.492 2.807-6.68.27-9.281c-2.483-2.547-6.725-2.79-9.03-.094c-1.4 1.639-2.835 1.831-4.694 1.802c-3.397-.052-6.795-.042-10.193-.032q-2.045.007-4.088.008c.309 6.695-2.222 10.867-7.242 11.858c-4.916.97-9.443-1.538-11.037-6.114c-1.81-5.2.428-9.359 6.898-12.66c-.487-1.763-.98-3.548-1.466-5.315C5.617 32.724.327 39.565.872 47.26c.483 6.793 5.963 12.827 12.665 13.907c3.64.588 7.06-.022 10.233-1.822c4.082-2.316 6.451-5.958 7.548-10.47"
clipRule="evenodd"
></path>
</svg>
),
},
{
href: "/docs/concepts/plugins",
title: "Plugins",
icon: (props?: SVGProps<any>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 20 20"
>
<path
fill="currentColor"
d="M20 14v4a2 2 0 0 1-2 2h-4v-2a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2H6a2 2 0 0 1-2-2v-4H2a2 2 0 0 1-2-2a2 2 0 0 1 2-2h2V6c0-1.1.9-2 2-2h4V2a2 2 0 0 1 2-2a2 2 0 0 1 2 2v2h4a2 2 0 0 1 2 2v4h-2a2 2 0 0 0-2 2a2 2 0 0 0 2 2z"
></path>
</svg>
),
},
{
title: "OAuth",
href: "/docs/concepts/oauth",
icon: (props?: SVGProps<any>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 128 128"
>
<path
fill="currentColor"
d="M64.6 0a78 78 0 0 0-5.19.188C52.012.698 43.6 2.903 38.6 5.117c-4.012 1.773-8.565 4.44-12.321 7.115c-9.334 6.664-16.905 16.301-21.354 27.38c-.923 2.304-2.093 4.775-2.738 7.118c-2.743 9.996-2.515 21.649-.545 30.664c4.914 22.532 18.131 35.526 35.32 44.63c15.427 8.172 38.988 7.939 55.851-.55c10.083-5.077 18.136-12.813 24.365-22.176c6.057-9.112 10.704-21.527 10.677-35.865c-.023-13.2-5.3-26.044-10.677-34.497C107.124 13.12 90.013-.033 64.6 0m.31 3.072c18.993-.022 33.828 8.963 43.235 19.292c2.656 2.92 5.31 5.816 7.116 8.762c3.346 5.45 5.486 11.89 7.121 18.07c6.115 23.117-3.076 45.042-14.514 56.946c-8.545 8.897-19.037 14.915-32.854 17.521c-15.547 2.937-30.462-.889-41.069-6.844C23.05 110.7 15.331 102.006 9.581 90.81C4.037 80.014 1.457 62.841 5.474 48.645c3.61-12.754 9.772-23.344 19.439-30.935c6.703-5.262 14.41-10.146 24.914-12.867c3.772-.979 7.258-1.39 11.227-1.643a59 59 0 0 1 3.855-.128zm-1.465 2.686a50 50 0 0 0-3.763.18C43.397 7.327 31.96 14.632 23.268 23.187C17.18 29.177 12.604 36.515 9.58 45.09c-1.964 5.565-3.002 11.577-3.122 17.657c-.006.202 0 .405 0 .607l-.002.001c-.017 1.873.056 3.75.214 5.622l.004.06c.473 5.577 1.705 11.107 3.727 16.299c4.256 10.918 11.223 19.732 21.082 26.554c7.279 5.042 17.055 9.178 28.155 10.115c.22.016.44.043.659.057l.002.002a55.6 55.6 0 0 0 8.004 0l.002-.002c.214-.014.427-.023.642-.04l-.001.003l.045-.002c18.195-1.539 31.51-10.875 40.247-21.632c2.234-2.751 4.456-5.86 5.75-9.582c1.266-2.678 1.885-4.501 2.461-5.473c2.235-5.009 3.494-10.282 3.99-16.044l.03-.396l.002-.002c.03-.361.065-.718.089-1.084a66 66 0 0 0 .101-4.939l-.007-.005c0-.207-.002-.409-.007-.616c-.386-16.868-7.398-30.22-16.791-39.613c-5.033-5.034-11.223-9.57-18.616-12.322c-6.246-2.32-13.17-4.32-21.046-4.518l.004.004c-.206-.004-.41-.013-.62-.013l-.006-.007c-.379-.005-.745-.028-1.128-.024zm-3.574 3.925l2.59.01l-.023 5.111c-.002 1.327.664 1.96 1.688 1.965c1.03.005 1.697-.598 1.706-1.886l.018-5.178l2.588.009l-.017 5.098c-.013 2.973-1.715 4.269-4.33 4.256c-2.615-.009-4.25-1.346-4.242-4.22zm15.93 1.32l7.72 2.354l-.651 2.137l-2.642-.804l-2.031 6.66l-2.44-.744l2.031-6.664l-2.638-.804zM49.08 11.8l6.559 7.627l-2.603.835l-1.143-1.361l-3.376 1.084l-.123 1.767l-2.554.818l.897-10.017zm-.268 3.258l-.19 2.808l1.965-.627zm41.6 1.28l2.124 1.41l-1.908 2.866l2.725 1.816l1.908-2.867l2.118 1.412l-5.094 7.657l-2.123-1.41l1.939-2.91l-2.726-1.816l-1.939 2.914l-2.117-1.415zm-54.76 2.381a4.66 4.66 0 0 1 4.047 1.935l.018.022c1.556 2.132 1.1 5.116-1.195 6.792c-2.291 1.67-5.236 1.204-6.792-.933l-.017-.023c-1.556-2.131-1.1-5.114 1.19-6.79c.862-.623 1.812-.954 2.748-1.001zm-.053 2.422a2.3 2.3 0 0 0-1.359.454c-1.125.821-1.213 2.285-.43 3.357l.013.023c.782 1.072 2.241 1.44 3.367.619c1.134-.83 1.222-2.295.439-3.367l-.013-.017c-.493-.673-1.244-1.069-2.017-1.069m28.013 2.317q.303-.001.607.005l.084.083l.083-.083c.202 0 .403-.005.602 0l-.383.382l4.356 4.36l3.72-3.718c.163.039.33.075.492.114l-3.908 3.907l4.356 4.356l4.36-4.354l-3.587-3.588c.28.075.56.15.836.233l3.05 3.05l1.447-1.445l.422.184l-1.564 1.564l4.36 4.356l2.98-2.98c.127.08.24.158.365.237l-3.047 3.047l4.361 4.356l3.248-3.248l.299.303l-3.249 3.25l4.36 4.354l3.236-3.234l.304.304l-3.235 3.234l4.356 4.36l2.312-2.316l.21.395l-2.219 2.22l4.355 4.361l.612-.615c.057.15.114.294.167.443l-.475.47l.936.937q.133.428.251.857l-1.49-1.49l-4.356 4.36l4.355 4.357l2.42-2.417l.07.53l-2.186 2.19l2.462 2.462c0 .193-.022.382-.027.58l-2.738-2.743l-4.356 4.36l4.355 4.356l2.515-2.514c-.026.233-.062.466-.092.695l-2.119 2.123l1.486 1.486c-.039.168-.07.33-.11.497l-1.679-1.68l-4.356 4.356l3.842 3.843c-.06.14-.12.284-.18.422l-3.965-3.961l-4.36 4.356l4.36 4.36l3.15-3.156c-.192.382-.368.774-.58 1.148l-.03.07l-2.237 2.238l.796.799c-.075.128-.14.26-.216.387l-.883-.884l-4.36 4.356l1.44 1.446q-.137.159-.28.318l-1.46-1.46l-4.36 4.36l1.357 1.359c-.109.088-.216.18-.33.272l-1.327-1.331l-4.36 4.36l.51.51c-.127.07-.263.136-.391.21l-.422-.421l-1.35 1.35q-.567.28-1.147.545l2.198-2.195l-4.36-4.36l-4.356 4.36l3.432 3.434c-.148.052-.298.1-.448.154l-3.288-3.288l-4.356 4.36l.628.63q-.263.038-.527.074l-.405-.4l-.505.5c-.224.027-.448.057-.676.08l.877-.884l-4.354-4.36l-4.361 4.36l.953.95q-.331-.024-.664-.056l-.588-.594l-.47.47c-.176-.023-.344-.059-.518-.084l.685-.686l-4.356-4.36l-3.424 3.424c-.15-.048-.3-.106-.45-.154l3.57-3.569l-4.356-4.361l-4.36 4.361l2.645 2.646c-.36-.15-.711-.307-1.063-.461l-1.886-1.886l-.65.655c-.132-.071-.264-.137-.396-.206l.748-.749l-4.36-4.359l-1.693 1.696c-.115-.088-.24-.167-.353-.255l1.746-1.74l-4.36-4.36l-1.957 1.955c-.096-.101-.198-.203-.294-.307l1.95-1.953l-4.36-4.355l-1.44 1.44c-.084-.117-.16-.24-.239-.364l1.381-1.38l-4.36-4.355l-.023.022c-.227-.532-.298-.726-.452-1.1l.475.471l4.36-4.357l-4.36-4.36l-2.057 2.06c-.032-.175-.068-.337-.093-.513l1.846-1.846l-2.307-2.312c-.018-.212-.014-.422-.027-.628l2.638 2.636l4.36-4.355l-4.36-4.361l-2.74 2.739c0-.207.014-.409.014-.616l2.422-2.426l-2.163-2.163c.018-.184.026-.373.048-.553l2.419 2.417l4.36-4.36l-4.36-4.357l-1.605 1.605c.067-.272.132-.546.207-.81l1.094-1.099l-.558-.562q.078-.215.163-.44l.698.704l4.361-4.36l-2.343-2.343c.071-.132.136-.265.206-.396l2.435 2.435l4.36-4.355l-3.318-3.32c.088-.11.185-.22.273-.33l3.345 3.346l4.36-4.356l-3.493-3.495c.104-.097.202-.203.307-.295l3.49 3.486l4.355-4.356l-2.93-2.932q.186-.117.373-.229l2.861 2.859l4.356-4.358l-1.432-1.432c.146-.062.28-.124.426-.18l1.31 1.31l2.694-2.7l.897-.289l-3.292 3.291l4.36 4.356l4.357-4.354l-3.781-3.786l.47-.132l3.614 3.613l4.356-4.36zm.69.69l-4.355 4.36l4.354 4.356l4.362-4.354zm-13.978 4.659l-4.36 4.361l4.36 4.356l4.356-4.356l-4.356-4.36zm9.319 0l-4.356 4.361l4.356 4.356l4.356-4.356l-4.355-4.36zm9.318 0l-4.355 4.361l4.355 4.356l4.36-4.356l-4.36-4.36zm9.324 0l-4.36 4.361l4.36 4.356l4.355-4.356l-4.355-4.36zm-32.62 4.66l-4.361 4.361l4.36 4.355l4.356-4.355zm9.319 0l-4.362 4.361l4.362 4.355l.058-.059c-.175.336-.33.687-.45 1.058l-3.97 3.965l2.064 2.063l-.144.457l-2.218-2.217l-4.36 4.355l4.36 4.36l.244-.242l-.279.88l-4.325 4.327l2.25 2.246l-.145.461l-2.407-2.408l-4.36 4.36l4.36 4.355l.608-.607l-.28.884l-.026.027l.013.014l-.143.454l-.169-.169l-4.361 4.36l2.437 2.437l-.145.458l-2.595-2.591l-4.356 4.356L41 84.128l1.03-1.028a7 7 0 0 0-.147.747l-.58.58l.533.532c.007.213.005.426.03.635L41 84.73l-4.355 4.356L41 93.446l3.381-3.377c.113.09.237.163.356.244l-3.432 3.433l4.355 4.36l4.36-4.36l-2.355-2.352a7 7 0 0 0 .713.113l1.946 1.94l4.356-4.36l-.57-.57a7 7 0 0 0 .22-.383l.653.653l4.357-4.36l-2.693-2.692l.143-.46l2.853 2.853l4.356-4.36l-1.407-1.407h.608l1.103 1.103l1.102-1.103h.608l-1.407 1.407l4.355 4.36l3.365-3.369l.15.457l-3.21 3.212l4.355 4.36l1.063-1.064q.099.202.208.396l-.968.967l4.357 4.36l1.94-1.936c.18.014.357.042.539.042l.024-.002l-2.2 2.2l4.356 4.356l4.36-4.36l-3.117-3.118c.126-.073.23-.171.35-.252l3.071 3.07l4.355-4.36l-4.355-4.356l-.124.123c.004-.29.016-.577-.019-.869l.143.143l4.355-4.36l-4.355-4.356l-2.132 2.126l-.15-.452l1.978-1.978l-3.947-3.947l-.356-1.074l4.3-4.298l-4.358-4.36l-2.116 2.119l-.149-.455l1.967-1.962l-3.923-3.924l-.37-1.108l4.293-4.293l-4.36-4.355l-2.106 2.105l-.15-.453l1.957-1.955l-3.9-3.895l-.039-.12a6.4 6.4 0 0 0-.402-.967l4.34-4.337l-4.36-4.36l-4.356 4.36l1.404 1.404a7 7 0 0 0-1.01-.41l-.698-.696l-.443.447a7 7 0 0 0-.556-.046l.701-.699l-4.36-4.36l-4.356 4.36l.7.701a6 6 0 0 0-.56.044l-.444-.442l-.692.692a7 7 0 0 0-1.031.424l1.42-1.419zm27.96 0l-4.36 4.361l4.36 4.355l4.356-4.355l-4.355-4.36zm-41.94 4.66l-4.359 4.36l4.36 4.356l4.355-4.355l-4.354-4.362zm9.32 0l-4.36 4.36l4.36 4.356l4.356-4.355zm27.961.004l-4.36 4.356l4.355 4.36l4.361-4.36zm9.318 0l-4.36 4.356l4.361 4.36l4.355-4.36l-4.355-4.355zM60.996 39.78h6.639c2.306 0 4.474 1.517 5.195 3.75l13.13 39.54c.936 2.882-.58 5.986-3.464 6.927a5.7 5.7 0 0 1-1.736.276c-2.304 0-4.44-1.432-5.192-3.74l-3.098-9.456H56.742l-2.888 9.38a5.51 5.51 0 0 1-5.231 3.807a5.6 5.6 0 0 1-1.697-.267c-2.883-.867-4.47-3.97-3.605-6.858l12.48-39.535c.72-2.237 2.813-3.824 5.195-3.824m-24.655 3.012l-4.356 4.355l4.356 4.361l4.36-4.36zm9.323 0l-4.36 4.355l4.36 4.361l4.356-4.36l-4.355-4.356zm37.281 0l-4.361 4.355l4.36 4.361l4.356-4.36zm9.318 0l-4.36 4.355l4.36 4.361l4.356-4.36zM31.68 47.45l-4.355 4.356l4.355 4.36l4.36-4.36l-4.36-4.355zm9.32 0l-4.356 4.356L41 56.166l4.362-4.36zm46.603 0l-4.36 4.356l4.36 4.36l4.355-4.36l-4.355-4.355zm9.319 0l-4.361 4.356l4.36 4.36l4.357-4.36l-4.356-4.355zm-60.584 4.66l-4.354 4.356l4.355 4.36l4.36-4.36zm9.323 0l-4.36 4.356l4.362 4.36l4.355-4.36zm37.282 0l-4.36 4.36l4.355 4.357l4.359-4.36zm9.318 0L87.9 56.466l4.363 4.36l4.355-4.355l-4.358-4.36zM31.68 56.77l-4.355 4.357l4.355 4.36l4.36-4.36l-4.36-4.356zm9.321 0l-4.356 4.362L41 65.485l4.362-4.359zm46.603 0l-4.36 4.362l4.36 4.354l4.354-4.354l-4.355-4.361zm9.317 0l-4.361 4.36l4.36 4.354l4.356-4.354zm-60.583 4.66l-4.356 4.361l4.356 4.356l4.36-4.354zm55.921 0L87.9 65.79l4.363 4.356l4.354-4.354zm-60.578 4.66l-4.355 4.361l4.355 4.355l4.36-4.355l-4.36-4.36zm9.321 0l-4.356 4.361l4.355 4.355l4.362-4.355l-4.36-4.36zm46.603 0l-4.36 4.361l4.36 4.355l4.354-4.355l-4.355-4.36zm9.318 0l-4.363 4.36l4.36 4.355l4.356-4.355l-4.354-4.36zM36.34 70.747l-4.355 4.36l4.356 4.358l4.36-4.357l-4.36-4.36zm55.922.005l-4.36 4.356l4.36 4.357l4.356-4.357zm-60.58 4.66l-4.356 4.356l4.355 4.36l4.36-4.36zm4.66 4.658l-4.357 4.359l4.356 4.36l4.36-4.36l-4.36-4.356zm27.96 0l-4.36 4.358l4.36 4.36l4.355-4.36l-4.354-4.356zm27.96 0l-4.36 4.358l4.36 4.36l4.357-4.36l-4.355-4.356zm-32.62 4.66l-4.36 4.356l4.36 4.36L64 89.087l-4.355-4.355zm9.32 0l-4.356 4.356l4.355 4.36l4.36-4.36zm-13.979 4.66l-4.362 4.357l4.362 4.36l4.355-4.36zm9.317 0l-4.359 4.357l4.36 4.36l4.355-4.355l-4.354-4.36zm9.32 0l-4.356 4.362l4.356 4.356l4.36-4.356l-4.36-4.36zm-13.978 4.66l-4.36 4.361l4.36 4.355l4.356-4.355zm9.318 0l-4.355 4.361l4.355 4.355l4.36-4.355zm25.412 4.212a4.66 4.66 0 0 1 3.534 1.792l.018.023c1.64 2.075 1.297 5.073-.932 6.835c-2.229 1.759-5.187 1.402-6.827-.672l-.018-.018c-1.635-2.075-1.29-5.077.938-6.835a5.13 5.13 0 0 1 2.703-1.108a5 5 0 0 1 .585-.017zm-57.06 2.237l2.185 1.314l-1.799 2.998l2.81 1.679l1.797-2.998l2.185 1.31l-4.73 7.89l-2.184-1.31l1.766-2.953l-2.804-1.68l-1.771 2.955l-2.185-1.315zm56.512.21a2.27 2.27 0 0 0-1.337.498c-1.104.87-1.135 2.338-.313 3.38l.018.017c.821 1.042 2.291 1.358 3.394.484c1.095-.862 1.125-2.325.304-3.367l-.02-.023c-.515-.651-1.279-1.019-2.047-.989zm-9.847 3.874l-.458 10.048l-2.307.852l-6.889-7.326l2.563-.95l1.2 1.305l3.328-1.231l.048-1.767zm-32.27 2.597l2.462.664l-1.815 6.726l2.664.72l-.58 2.155l-7.79-2.102l.58-2.159l2.664.722zm14.181 1.688c2.61-.113 4.312 1.138 4.44 4.014l.225 5.16l-2.585.114l-.225-5.108c-.061-1.327-.757-1.924-1.78-1.881c-1.025.045-1.666.677-1.613 1.966l.228 5.173l-2.584.114l-.226-5.095c-.13-2.966 1.505-4.343 4.12-4.456zm15.512.536l-1.934.717l1.868 2.097l.068-2.814z"
></path>
</svg>
),
},
{
title: "Rate Limit",
icon: () => {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 24 24"
>
<path
className="fill-current"
d="M13 12.6V9q0-.425-.288-.712T12 8t-.712.288T11 9v3.975q0 .2.075.388t.225.337l2.8 2.8q.275.275.7.275t.7-.275t.275-.7t-.275-.7zM12 22q-1.875 0-3.512-.712t-2.85-1.925t-1.925-2.85T3 13t.713-3.512t1.924-2.85t2.85-1.925T12 4t3.513.713t2.85 1.925t1.925 2.85T21 13t-.712 3.513t-1.925 2.85t-2.85 1.925T12 22M2.05 7.3q-.275-.275-.275-.7t.275-.7L4.9 3.05q.275-.275.7-.275t.7.275t.275.7t-.275.7L3.45 7.3q-.275.275-.7.275t-.7-.275m19.9 0q-.275.275-.7.275t-.7-.275L17.7 4.45q-.275-.275-.275-.7t.275-.7t.7-.275t.7.275l2.85 2.85q.275.275.275.7t-.275.7"
></path>
</svg>
);
},
href: "/docs/concepts/rate-limit",
},
{
title: "Sessions",
href: "/docs/concepts/session-management",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 24 24"
>
<path
className="fill-current"
fillRule="evenodd"
d="M3 10.417c0-3.198 0-4.797.378-5.335c.377-.537 1.88-1.052 4.887-2.081l.573-.196C10.405 2.268 11.188 2 12 2s1.595.268 3.162.805l.573.196c3.007 1.029 4.51 1.544 4.887 2.081C21 5.62 21 7.22 21 10.417v1.574c0 5.638-4.239 8.375-6.899 9.536C13.38 21.842 13.02 22 12 22s-1.38-.158-2.101-.473C7.239 20.365 3 17.63 3 11.991zM14 9a2 2 0 1 1-4 0a2 2 0 0 1 4 0m-2 8c4 0 4-.895 4-2s-1.79-2-4-2s-4 .895-4 2s0 2 4 2"
clipRule="evenodd"
></path>
</svg>
),
},
{
title: "Typescript",
href: "/docs/concepts/typescript",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1em"
height="1em"
viewBox="0 0 128 128"
>
<path
className="fill-current"
d="M2 63.91v62.5h125v-125H2zm100.73-5a15.56 15.56 0 0 1 7.82 4.5a20.6 20.6 0 0 1 3 4c0 .16-5.4 3.81-8.69 5.85c-.12.08-.6-.44-1.13-1.23a7.09 7.09 0 0 0-5.87-3.53c-3.79-.26-6.23 1.73-6.21 5a4.6 4.6 0 0 0 .54 2.34c.83 1.73 2.38 2.76 7.24 4.86c8.95 3.85 12.78 6.39 15.16 10c2.66 4 3.25 10.46 1.45 15.24c-2 5.2-6.9 8.73-13.83 9.9a38.3 38.3 0 0 1-9.52-.1A23 23 0 0 1 80 109.19c-1.15-1.27-3.39-4.58-3.25-4.82a9 9 0 0 1 1.15-.73l4.6-2.64l3.59-2.08l.75 1.11a16.8 16.8 0 0 0 4.74 4.54c4 2.1 9.46 1.81 12.16-.62a5.43 5.43 0 0 0 .69-6.92c-1-1.39-3-2.56-8.59-5c-6.45-2.78-9.23-4.5-11.77-7.24a16.5 16.5 0 0 1-3.43-6.25a25 25 0 0 1-.22-8c1.33-6.23 6-10.58 12.82-11.87a31.7 31.7 0 0 1 9.49.26zm-29.34 5.24v5.12H57.16v46.23H45.65V69.26H29.38v-5a49 49 0 0 1 .14-5.16c.06-.08 10-.12 22-.1h21.81z"
></path>
</svg>
),
},
{
title: "Users & Accounts",
href: "/docs/concepts/users-accounts",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 24 24"
>
<path
className="fill-current"
d="M17 15q-1.05 0-1.775-.725T14.5 12.5t.725-1.775T17 10t1.775.725t.725 1.775t-.725 1.775T17 15m-4 5q-.425 0-.712-.288T12 19v-.4q0-.6.313-1.112t.887-.738q.9-.375 1.863-.562T17 16t1.938.188t1.862.562q.575.225.888.738T22 18.6v.4q0 .425-.288.713T21 20zm-3-8q-1.65 0-2.825-1.175T6 8t1.175-2.825T10 4t2.825 1.175T14 8t-1.175 2.825T10 12m-8 5.2q0-.85.425-1.562T3.6 14.55q1.5-.75 3.113-1.15T10 13q.875 0 1.75.15t1.75.35l-1.7 1.7q-.625.625-1.213 1.275T10 18v.975q0 .3.113.563t.362.462H4q-.825 0-1.412-.587T2 18z"
></path>
</svg>
),
},
],
Icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.4em"
height="1.4em"
viewBox="0 0 24 24"
>
<path
fill="currentColor"
fillRule="evenodd"
d="M14.25 4.48v3.057c0 .111 0 .27.021.406a.94.94 0 0 0 .444.683a.96.96 0 0 0 .783.072c.13-.04.272-.108.378-.159L17 8.005l1.124.534c.106.05.248.119.378.16a.96.96 0 0 0 .783-.073a.94.94 0 0 0 .444-.683c.022-.136.021-.295.021-.406V3.031q.17-.008.332-.013C21.154 2.98 22 3.86 22 4.933v11.21c0 1.112-.906 2.01-2.015 2.08c-.97.06-2.108.179-2.985.41c-1.082.286-2.373.904-3.372 1.436q-.422.224-.878.323V5.174a3.6 3.6 0 0 0 .924-.371q.277-.162.576-.323m5.478 8.338a.75.75 0 0 1-.546.91l-4 1a.75.75 0 1 1-.364-1.456l4-1a.75.75 0 0 1 .91.546M11.25 5.214a3.4 3.4 0 0 1-.968-.339C9.296 4.354 8.05 3.765 7 3.487c-.887-.233-2.041-.352-3.018-.412C2.886 3.008 2 3.9 2 4.998v11.146c0 1.11.906 2.01 2.015 2.079c.97.06 2.108.179 2.985.41c1.081.286 2.373.904 3.372 1.436q.422.224.878.324zM4.273 8.818a.75.75 0 0 1 .91-.546l4 1a.75.75 0 1 1-.365 1.456l-4-1a.75.75 0 0 1-.545-.91m.91 3.454a.75.75 0 1 0-.365 1.456l4 1a.75.75 0 0 0 .364-1.456z"
clipRule="evenodd"
></path>
<path
className="fill-foreground"
d="M18.25 3.151c-.62.073-1.23.18-1.75.336a8 8 0 0 0-.75.27v3.182l.75-.356l.008-.005a1.1 1.1 0 0 1 .492-.13q.072 0 .138.01c.175.029.315.1.354.12l.009.005l.75.356V3.15"
></path>
</svg>
),
},
{
title: "Authentication",
Icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.4em"
height="1.4em"
viewBox="0 0 24 24"
>
<path
className="fill-foreground"
fillRule="evenodd"
d="M10 4h4c3.771 0 5.657 0 6.828 1.172C22 6.343 22 8.229 22 12c0 3.771 0 5.657-1.172 6.828C19.657 20 17.771 20 14 20h-4c-3.771 0-5.657 0-6.828-1.172C2 17.657 2 15.771 2 12c0-3.771 0-5.657 1.172-6.828C4.343 4 6.229 4 10 4m3.25 5a.75.75 0 0 1 .75-.75h5a.75.75 0 0 1 0 1.5h-5a.75.75 0 0 1-.75-.75m1 3a.75.75 0 0 1 .75-.75h4a.75.75 0 0 1 0 1.5h-4a.75.75 0 0 1-.75-.75m1 3a.75.75 0 0 1 .75-.75h3a.75.75 0 0 1 0 1.5h-3a.75.75 0 0 1-.75-.75M11 9a2 2 0 1 1-4 0a2 2 0 0 1 4 0m-2 8c4 0 4-.895 4-2s-1.79-2-4-2s-4 .895-4 2s0 2 4 2"
clipRule="evenodd"
/>
</svg>
),
list: [
{
title: "Email & Password",
href: "/docs/authentication/email-password",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 24 24"
>
<path
fill="currentColor"
fillRule="evenodd"
d="M3.172 5.172C2 6.343 2 8.229 2 12c0 3.771 0 5.657 1.172 6.828C4.343 20 6.229 20 10 20h4c3.771 0 5.657 0 6.828-1.172C22 17.657 22 15.771 22 12c0-3.771 0-5.657-1.172-6.828C19.657 4 17.771 4 14 4h-4C6.229 4 4.343 4 3.172 5.172M8 13a1 1 0 1 0 0-2a1 1 0 0 0 0 2m5-1a1 1 0 1 1-2 0a1 1 0 0 1 2 0m3 1a1 1 0 1 0 0-2a1 1 0 0 0 0 2"
clipRule="evenodd"
/>
</svg>
),
},
{
title: "Social Sign-On",
group: true,
icon: LucideAArrowDown,
href: "/",
},
{
title: "Apple",
href: "/docs/authentication/apple",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 20 20"
>
<path
fill="currentColor"
fillRule="evenodd"
d="M14.122 4.682c1.35 0 2.781.743 3.8 2.028c-3.34 1.851-2.797 6.674.578 7.963c-.465 1.04-.687 1.505-1.285 2.426c-.835 1.284-2.01 2.884-3.469 2.898c-1.295.012-1.628-.853-3.386-.843c-1.758.01-2.125.858-3.42.846c-1.458-.014-2.573-1.458-3.408-2.743C1.198 13.665.954 9.45 2.394 7.21C3.417 5.616 5.03 4.683 6.548 4.683c1.545 0 2.516.857 3.794.857c1.24 0 1.994-.858 3.78-.858M13.73 0c.18 1.215-.314 2.405-.963 3.247c-.695.902-1.892 1.601-3.05 1.565c-.21-1.163.332-2.36.99-3.167C11.43.755 12.67.074 13.73 0"
/>
</svg>
),
},
{
title: "Discord",
href: "/docs/authentication/discord",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 24 24"
>
<path
fill="currentColor"
d="M18.59 5.89c-1.23-.57-2.54-.99-3.92-1.23c-.17.3-.37.71-.5 1.04c-1.46-.22-2.91-.22-4.34 0c-.14-.33-.34-.74-.51-1.04c-1.38.24-2.69.66-3.92 1.23c-2.48 3.74-3.15 7.39-2.82 10.98c1.65 1.23 3.24 1.97 4.81 2.46c.39-.53.73-1.1 1.03-1.69c-.57-.21-1.11-.48-1.62-.79c.14-.1.27-.21.4-.31c3.13 1.46 6.52 1.46 9.61 0c.13.11.26.21.4.31c-.51.31-1.06.57-1.62.79c.3.59.64 1.16 1.03 1.69c1.57-.49 3.17-1.23 4.81-2.46c.39-4.17-.67-7.78-2.82-10.98Zm-9.75 8.78c-.94 0-1.71-.87-1.71-1.94s.75-1.94 1.71-1.94s1.72.87 1.71 1.94c0 1.06-.75 1.94-1.71 1.94m6.31 0c-.94 0-1.71-.87-1.71-1.94s.75-1.94 1.71-1.94s1.72.87 1.71 1.94c0 1.06-.75 1.94-1.71 1.94"
/>
</svg>
),
},
{
title: "Facebook",
href: "/docs/authentication/facebook",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 24 24"
>
<g fill="none">
<path d="M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"></path>
<path
fill="currentColor"
d="M13.5 21.888C18.311 21.164 22 17.013 22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 5.013 3.689 9.165 8.5 9.888V15H9a1.5 1.5 0 0 1 0-3h1.5v-2A3.5 3.5 0 0 1 14 6.5h.5a1.5 1.5 0 0 1 0 3H14a.5.5 0 0 0-.5.5v2H15a1.5 1.5 0 0 1 0 3h-1.5z"
></path>
</g>
</svg>
),
},
{
title: "GitHub",
href: "/docs/authentication/github",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1em"
height="1em"
viewBox="0 0 15 15"
>
<path
fill="currentColor"
fillRule="evenodd"
d="M7.5.25a7.25 7.25 0 0 0-2.292 14.13c.363.066.495-.158.495-.35c0-.172-.006-.628-.01-1.233c-2.016.438-2.442-.972-2.442-.972c-.33-.838-.805-1.06-.805-1.06c-.658-.45.05-.441.05-.441c.728.051 1.11.747 1.11.747c.647 1.108 1.697.788 2.11.602c.066-.468.254-.788.46-.969c-1.61-.183-3.302-.805-3.302-3.583a2.8 2.8 0 0 1 .747-1.945c-.075-.184-.324-.92.07-1.92c0 0 .61-.194 1.994.744A6.963 6.963 0 0 1 7.5 3.756A6.97 6.97 0 0 1 9.315 4c1.384-.938 1.992-.743 1.992-.743c.396.998.147 1.735.072 1.919c.465.507.745 1.153.745 1.945c0 2.785-1.695 3.398-3.31 3.577c.26.224.492.667.492 1.343c0 .97-.009 1.751-.009 1.989c0 .194.131.42.499.349A7.25 7.25 0 0 0 7.499.25"
clipRule="evenodd"
/>
</svg>
),
},
{
title: "Google",
href: "/docs/authentication/google",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1em"
height="1em"
viewBox="0 0 56 56"
>
<path
fill="currentColor"
fillRule="evenodd"
d="M28.458 5c6.167 0 11.346 2.2 15.368 5.804l.323.295l-6.62 6.464c-1.695-1.59-4.666-3.493-9.07-3.493c-6.204 0-11.47 4.093-13.372 9.749c-.47 1.46-.756 3.023-.756 4.64c0 1.615.287 3.18.782 4.639c1.877 5.656 7.142 9.748 13.345 9.748c3.347 0 5.928-.886 7.881-2.176l.251-.17l.307-.222c2.813-2.108 4.144-5.084 4.46-7.169l.03-.22h-12.93v-8.705h22.025c.339 1.46.495 2.867.495 4.795c0 7.142-2.554 13.163-6.985 17.255c-3.884 3.597-9.201 5.682-15.535 5.682c-9.031 0-16.85-5.102-20.772-12.57l-.184-.358l-.222-.457A23.45 23.45 0 0 1 5 28.458c0-3.6.827-7.01 2.28-10.073l.222-.457l.184-.357C11.608 10.1 19.426 5 28.458 5"
/>
</svg>
),
},
{
title: "Microsoft",
href: "/docs/authentication/microsoft",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 24 24"
>
<path
fill="currentColor"
d="M2 3h9v9H2zm9 19H2v-9h9zM21 3v9h-9V3zm0 19h-9v-9h9z"
></path>
</svg>
),
},
{
title: "Twitch",
href: "/docs/authentication/twitch",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1em"
height="1em"
viewBox="0 0 24 24"
>
<path
fill="currentColor"
fillRule="evenodd"
d="M3.9 2.5a.9.9 0 0 0-.9.9v14.194a.9.9 0 0 0 .9.9h4.116v3.03a.7.7 0 0 0 1.194.494l3.525-3.524h4.643a.9.9 0 0 0 .636-.264l2.722-2.722a.9.9 0 0 0 .264-.636V3.4a.9.9 0 0 0-.9-.9zm7.319 5.2a.75.75 0 0 0-1.5 0v4.272a.75.75 0 1 0 1.5 0zm5.016 0a.75.75 0 0 0-1.5 0v4.272a.75.75 0 1 0 1.5 0z"
clipRule="evenodd"
></path>
</svg>
),
},
{
title: "Twitter (X)",
href: "/docs/authentication/twitter",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="0.88em"
height="1em"
viewBox="0 0 448 512"
>
<path
fill="currentColor"
d="M64 32C28.7 32 0 60.7 0 96v320c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zm297.1 84L257.3 234.6L379.4 396h-95.6L209 298.1L123.3 396H75.8l111-126.9L69.7 116h98l67.7 89.5l78.2-89.5zm-37.8 251.6L153.4 142.9h-28.3l171.8 224.7h26.3z"
></path>
</svg>
),
},
{
title: "Dropbox",
href: "/docs/authentication/dropbox",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 528 512"
>
<path
className="fill-current"
fillRule="evenodd"
d="M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z"
/>
</svg>
),
},
{
title: "LinkedIn",
href: "/docs/authentication/linkedin",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 448 512"
fill="currentColor"
>
<path
d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"
fill="currentColor"
/>
</svg>
),
},
{
title: "GitLab",
href: "/docs/authentication/gitlab",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 32 32"
>
<path
fill="currentColor"
d="m28.568 12.893l-.037-.094l-3.539-9.235a.92.92 0 0 0-.364-.439a.95.95 0 0 0-1.083.058a.95.95 0 0 0-.314.477l-2.39 7.31h-9.675l-2.39-7.31a.93.93 0 0 0-.313-.478a.95.95 0 0 0-1.083-.058a.93.93 0 0 0-.365.438L3.47 12.794l-.035.093a6.57 6.57 0 0 0 2.18 7.595l.011.01l.033.022l5.39 4.037l2.668 2.019l1.624 1.226c.39.297.931.297 1.322 0l1.624-1.226l2.667-2.019l5.424-4.061l.013-.01a6.574 6.574 0 0 0 2.177-7.588Z"
/>
</svg>
),
},
{
title: "Reddit",
href: "/docs/authentication/reddit",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 32 32"
>
<path
d="M29.9999 12.0001C29.9998 11.2336 29.7793 10.4832 29.3649 9.8384C28.9505 9.19356 28.3595 8.68139 27.6623 8.36282C26.9652 8.04425 26.1911 7.93271 25.4324 8.04148C24.6736 8.15024 23.9621 8.47473 23.3824 8.97633C21.2887 7.86383 18.7874 7.19132 16.1749 7.03507L16.8237 3.13883L19.0387 3.47883C19.1511 4.17754 19.5068 4.81402 20.0431 5.27579C20.5794 5.73757 21.2616 5.99489 21.9693 6.00228C22.6769 6.00967 23.3644 5.76665 23.9102 5.31618C24.456 4.86571 24.825 4.23679 24.952 3.54058C25.0789 2.84437 24.9556 2.1257 24.604 1.51158C24.2523 0.897463 23.6948 0.427445 23.0301 0.184601C22.3654 -0.0582438 21.6362 -0.0582795 20.9715 0.1845C20.3067 0.42728 19.7492 0.897242 19.3974 1.51133L16.1474 1.01133C15.8874 0.971236 15.6221 1.03522 15.409 1.18941C15.1958 1.34361 15.052 1.57558 15.0087 1.83508L14.1499 7.02008C11.4199 7.13758 8.79744 7.81757 6.61744 8.97633C5.82132 8.30379 4.79416 7.96851 3.75457 8.04187C2.71499 8.11523 1.74508 8.59143 1.0513 9.36911C0.357515 10.1468 -0.00535957 11.1645 0.0399123 12.2057C0.0851841 13.2469 0.535027 14.2293 1.29369 14.9438C1.09926 15.612 1.00036 16.3042 0.999944 17.0001C0.999944 19.7413 2.49994 22.2938 5.23869 24.1863C7.85994 26.0001 11.3262 27.0001 14.9999 27.0001C18.6737 27.0001 22.1399 26.0001 24.7612 24.1863C27.4999 22.2938 28.9999 19.7413 28.9999 17.0001C28.9995 16.3042 28.9006 15.612 28.7062 14.9438C29.1128 14.5686 29.4376 14.1135 29.6602 13.6069C29.8828 13.1004 29.9985 12.5534 29.9999 12.0001ZM7.99994 15.0001C7.99994 14.6045 8.11724 14.2178 8.337 13.8889C8.55677 13.56 8.86912 13.3037 9.23458 13.1523C9.60003 13.0009 10.0022 12.9613 10.3901 13.0385C10.7781 13.1157 11.1345 13.3062 11.4142 13.5859C11.6939 13.8656 11.8843 14.2219 11.9615 14.6099C12.0387 14.9979 11.9991 15.4 11.8477 15.7654C11.6963 16.1309 11.44 16.4433 11.1111 16.663C10.7822 16.8828 10.3955 17.0001 9.99994 17.0001C9.46951 17.0001 8.9608 16.7894 8.58573 16.4143C8.21066 16.0392 7.99994 15.5305 7.99994 15.0001ZM19.4687 21.8838C18.0927 22.6151 16.5582 22.9975 14.9999 22.9975C13.4417 22.9975 11.9072 22.6151 10.5312 21.8838C10.4151 21.8223 10.3123 21.7385 10.2287 21.6372C10.145 21.5359 10.0821 21.4191 10.0436 21.2935C10.005 21.1679 9.99162 21.036 10.0041 20.9052C10.0165 20.7744 10.0546 20.6474 10.1162 20.5313C10.1778 20.4153 10.2616 20.3125 10.3628 20.2288C10.4641 20.1451 10.5809 20.0822 10.7065 20.0437C10.8321 20.0052 10.964 19.9918 11.0948 20.0042C11.2256 20.0167 11.3526 20.0548 11.4687 20.1163C12.556 20.6944 13.7685 20.9967 14.9999 20.9967C16.2313 20.9967 17.4439 20.6944 18.5312 20.1163C18.6472 20.0548 18.7743 20.0167 18.9051 20.0042C19.0358 19.9918 19.1678 20.0052 19.2934 20.0437C19.419 20.0822 19.5358 20.1451 19.637 20.2288C19.7383 20.3125 19.8221 20.4153 19.8837 20.5313C19.9453 20.6474 19.9833 20.7744 19.9958 20.9052C20.0083 21.036 19.9948 21.1679 19.9563 21.2935C19.9178 21.4191 19.8549 21.5359 19.7712 21.6372C19.6875 21.7385 19.5847 21.8223 19.4687 21.8838ZM19.9999 17.0001C19.6044 17.0001 19.2177 16.8828 18.8888 16.663C18.5599 16.4433 18.3036 16.1309 18.1522 15.7654C18.0008 15.4 17.9612 14.9979 18.0384 14.6099C18.1155 14.2219 18.306 13.8656 18.5857 13.5859C18.8654 13.3062 19.2218 13.1157 19.6098 13.0385C19.9977 12.9613 20.3999 13.0009 20.7653 13.1523C21.1308 13.3037 21.4431 13.56 21.6629 13.8889C21.8826 14.2178 21.9999 14.6045 21.9999 15.0001C21.9999 15.5305 21.7892 16.0392 21.4142 16.4143C21.0391 16.7894 20.5304 17.0001 19.9999 17.0001Z"
fill="currentColor"
/>
</svg>
),
},
],
},
{
title: "Integrations",
Icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.3em"
height="1.3em"
viewBox="0 0 48 48"
>
<path
fill="currentColor"
stroke="currentColor"
strokeLinejoin="round"
strokeWidth="4"
d="M18 6H8a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2Zm0 22H8a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V30a2 2 0 0 0-2-2ZM40 6H30a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2Zm0 22H30a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V30a2 2 0 0 0-2-2Z"
></path>
</svg>
),
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",
},
{
title: "TanStack Start",
icon: Icons.tanstack,
href: "/docs/integrations/tanstack",
},
{
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: "Elysia",
icon: Icons.elysia,
href: "/docs/integrations/elysia",
},
{
title: "Nitro",
icon: Icons.nitro,
href: "/docs/integrations/nitro",
},
{
group: true,
title: "Mobile & Desktop",
href: "/docs/integrations",
icon: LucideAArrowDown,
},
{
title: "Expo",
icon: Icons.expo,
href: "/docs/integrations/expo",
},
],
},
{
title: "Plugins",
Icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.4em"
height="1.4em"
viewBox="0 0 24 24"
>
<g fill="none">
<path d="M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035c-.01-.004-.019-.001-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427c-.002-.01-.009-.017-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093c.012.004.023 0 .029-.008l.004-.014l-.034-.614c-.003-.012-.01-.02-.02-.022m-.715.002a.023.023 0 0 0-.027.006l-.006.014l-.034.614c0 .012.007.02.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z" />
<path
fill="currentColor"
d="M15 20a1 1 0 1 1 0 2H9a1 1 0 1 1 0-2zm0-18a1 1 0 0 1 .993.883L16 3v3h2a2 2 0 0 1 1.995 1.85L20 8v5a6 6 0 0 1-5.775 5.996L14 19h-4a6 6 0 0 1-5.996-5.775L4 13V8a2 2 0 0 1 1.85-1.995L6 6h2V3a1 1 0 0 1 1.993-.117L10 3v3h4V3a1 1 0 0 1 1-1"
/>
</g>
</svg>
),
list: [
{
title: "Authentication",
group: true,
href: "/docs/plugins/1st-party-plugins",
icon: () => <LucideAArrowDown className="w-4 h-4" />,
},
{
title: "Two Factor",
icon: () => <ScanFace className="w-4 h-4" />,
href: "/docs/plugins/2fa",
},
{
title: "Username",
icon: () => <UserSquare2 className="w-4 h-4" />,
href: "/docs/plugins/username",
},
{
title: "Anonymous",
icon: () => <UserCircle className="w-4 h-4" />,
href: "/docs/plugins/anonymous",
},
{
title: "Phone Number",
icon: () => <Phone className="w-4 h-4" />,
href: "/docs/plugins/phone-number",
},
{
title: "Magic Link",
href: "/docs/plugins/magic-link",
icon: () => <Mailbox className="w-4 h-4" />,
},
{
title: "Email OTP",
href: "/docs/plugins/email-otp",
icon: () => <Mail className="w-4 h-4" />,
},
{
title: "Passkey",
href: "/docs/plugins/passkey",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 24 24"
>
<path
className="fill-foreground"
d="M3.25 9.65q-.175-.125-.213-.312t.113-.388q1.55-2.125 3.888-3.3t4.987-1.175q2.65 0 5 1.138T20.95 8.9q.175.225.113.4t-.213.3q-.15.125-.35.113t-.35-.213q-1.375-1.95-3.537-2.987t-4.588-1.038q-2.425 0-4.55 1.038T3.95 9.5q-.15.225-.35.25t-.35-.1m11.6 12.325q-2.6-.65-4.25-2.588T8.95 14.65q0-1.25.9-2.1t2.175-.85q1.275 0 2.175.85t.9 2.1q0 .825.625 1.388t1.475.562q.85 0 1.45-.562t.6-1.388q0-2.9-2.125-4.875T12.05 7.8q-2.95 0-5.075 1.975t-2.125 4.85q0 .6.113 1.5t.537 2.1q.075.225-.012.4t-.288.25q-.2.075-.387-.012t-.263-.288q-.375-.975-.537-1.937T3.85 14.65q0-3.325 2.413-5.575t5.762-2.25q3.375 0 5.8 2.25t2.425 5.575q0 1.25-.887 2.087t-2.163.838q-1.275 0-2.187-.837T14.1 14.65q0-.825-.612-1.388t-1.463-.562q-.85 0-1.463.563T9.95 14.65q0 2.425 1.438 4.05t3.712 2.275q.225.075.3.25t.025.375q-.05.175-.2.3t-.375.075M6.5 4.425q-.2.125-.4.063t-.3-.263q-.1-.2-.05-.362T6 3.575q1.4-.75 2.925-1.15t3.1-.4q1.6 0 3.125.388t2.95 1.112q.225.125.263.3t-.038.35q-.075.175-.25.275t-.425-.025q-1.325-.675-2.738-1.037t-2.887-.363q-1.45 0-2.85.338T6.5 4.425m2.95 17.2q-1.475-1.55-2.262-3.162T6.4 14.65q0-2.275 1.65-3.838t3.975-1.562q2.325 0 4 1.563T17.7 14.65q0 .225-.137.363t-.363.137q-.2 0-.35-.137t-.15-.363q0-1.875-1.388-3.137t-3.287-1.263q-1.9 0-3.262 1.263T7.4 14.65q0 2.025.7 3.438t2.05 2.837q.15.15.15.35t-.15.35q-.15.15-.35.15t-.35-.15m7.55-1.7q-2.225 0-3.863-1.5T11.5 14.65q0-.2.138-.35t.362-.15q.225 0 .363.15t.137.35q0 1.875 1.35 3.075t3.15 1.2q.15 0 .425-.025t.575-.075q.225-.05.388.063t.212.337q.05.2-.075.35t-.325.2q-.45.125-.787.138t-.413.012"
></path>
</svg>
),
},
{
title: "Generic OAuth",
href: "/docs/plugins/generic-oauth",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 24 24"
>
<g
fill="none"
stroke="currentColor"
strokeLinecap="round"
strokeLinejoin="round"
strokeWidth="2"
>
<path d="M2 12a10 10 0 1 0 20 0a10 10 0 1 0-20 0"></path>
<path d="M12.556 6c.65 0 1.235.373 1.508.947l2.839 7.848a1.646 1.646 0 0 1-1.01 2.108a1.673 1.673 0 0 1-2.068-.851L13.365 15h-2.73l-.398.905A1.67 1.67 0 0 1 8.26 16.95l-.153-.047a1.647 1.647 0 0 1-1.056-1.956l2.824-7.852a1.66 1.66 0 0 1 1.409-1.087z"></path>
</g>
</svg>
),
},
{
title: "One Tap",
href: "/docs/plugins/one-tap",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 14 14"
>
<path
fill="currentColor"
fillRule="evenodd"
d="M3.254 4.361a2.861 2.861 0 1 1 5.647.651a.75.75 0 0 0 1.461.34a4.361 4.361 0 1 0-8.495 0a.75.75 0 0 0 1.461-.34a3 3 0 0 1-.074-.651m1.63 5.335V4.26a1.26 1.26 0 0 1 2.518 0v4.077h2.464a2.573 2.573 0 0 1 2.573 2.573V13a1 1 0 0 1-1 1H4.83a1 1 0 0 1-.823-.433l-.764-1.11a1.715 1.715 0 0 1 1.097-2.66l.543-.102Z"
clipRule="evenodd"
></path>
</svg>
),
},
{
title: "Authorization",
group: true,
href: "/docs/plugins/1st-party-plugins",
icon: () => <LucideAArrowDown className="w-4 h-4" />,
},
{
title: "Admin",
href: "/docs/plugins/admin",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 24 24"
>
<path
className="fill-current"
d="M12 23C6.443 21.765 2 16.522 2 11V5l10-4l10 4v6c0 5.524-4.443 10.765-10 12M4 6v5a10.58 10.58 0 0 0 8 10a10.58 10.58 0 0 0 8-10V6l-8-3Z"
></path>
<circle cx="12" cy="8.5" r="2.5" className="fill-current"></circle>
<path
className="fill-current"
d="M7 15a5.78 5.78 0 0 0 5 3a5.78 5.78 0 0 0 5-3c-.025-1.896-3.342-3-5-3c-1.667 0-4.975 1.104-5 3"
></path>
</svg>
),
},
{
title: "Organization",
icon: () => <Users2 className="w-4 h-4" />,
href: "/docs/plugins/organization",
},
{
title: "Enterprise",
group: true,
href: "/docs/plugins/1st-party-plugins",
icon: () => <LucideAArrowDown className="w-4 h-4" />,
},
{
title: "OIDC Provider",
href: "/docs/plugins/oidc-provider",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 32 32"
>
<path
fill="currentColor"
d="M16 2a8 8 0 1 0 8 8a8.01 8.01 0 0 0-8-8m5.91 7h-2.438a15.3 15.3 0 0 0-.791-4.36A6.01 6.01 0 0 1 21.91 9m-5.888 6.999h-.008c-.38-.12-1.309-1.821-1.479-4.999h2.93c-.17 3.176-1.094 4.877-1.443 4.999M14.535 9c.17-3.176 1.094-4.877 1.443-4.999h.008c.38.12 1.309 1.821 1.479 4.999zM13.32 4.64A15.3 15.3 0 0 0 12.528 9H10.09a6.01 6.01 0 0 1 3.23-4.36M10.09 11h2.437a15.3 15.3 0 0 0 .792 4.36A6.01 6.01 0 0 1 10.09 11m8.59 4.36a15.3 15.3 0 0 0 .792-4.36h2.438a6.01 6.01 0 0 1-3.23 4.36M28 30H4a2 2 0 0 1-2-2v-6a2 2 0 0 1 2-2h24a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2M4 22v6h24v-6z"
></path>
<circle cx="7" cy="25" r="1" fill="currentColor"></circle>
</svg>
),
},
{
title: "SSO",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 32 32"
>
<path
fill="currentColor"
d="M8 8h2v4H8zm0 6h2v4H8zm6-6h2v4h-2zm0 6h2v4h-2zm-6 6h2v4H8zm6 0h2v4h-2z"
></path>
<path
fill="currentColor"
d="M30 14a2 2 0 0 0-2-2h-6V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v26h28ZM4 4h16v24H4Zm18 24V14h6v14Z"
></path>
</svg>
),
href: "/docs/plugins/sso",
},
{
title: "Utility",
group: true,
href: "/docs/plugins/1st-party-plugins",
icon: () => <LucideAArrowDown className="w-4 h-4" />,
},
{
title: "Bearer",
icon: () => <Key className="w-4 h-4" />,
href: "/docs/plugins/bearer",
},
{
title: "Multi Session",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 24 24"
>
<path
fill="currentColor"
d="M16.885 13.616q-.82 0-1.41-.591t-.59-1.41t.59-1.41t1.41-.59q.819 0 1.41.59q.59.591.59 1.41q0 .82-.59 1.41q-.591.59-1.41.59m-4.5 5v-.9q0-.465.232-.843q.232-.379.66-.545q.845-.356 1.748-.534q.904-.177 1.86-.177q.916 0 1.821.177q.905.178 1.786.534q.428.166.66.545q.232.378.232.844v.9zm-2.77-7.23q-1.237 0-2.118-.882t-.881-2.118t.88-2.12t2.12-.88t2.118.88t.882 2.12t-.882 2.118t-2.118.882m-7 7.23V16.97q0-.648.357-1.192q.358-.544.973-.804q1.327-.673 2.756-1.015t2.914-.342q.605 0 1.211.063t1.212.167l-.427.446l-.427.447q-.393-.077-.785-.1t-.784-.023q-1.354 0-2.675.292t-2.518.942q-.327.183-.567.456t-.24.663v.646h6v1zm7-8.23q.825 0 1.412-.588t.588-1.412t-.588-1.413t-1.412-.587t-1.413.587t-.587 1.413t.587 1.412t1.413.588"
></path>
</svg>
),
href: "/docs/plugins/multi-session",
},
{
title: "OAuth Proxy",
href: "/docs/plugins/oauth-proxy",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 32 32"
>
<path
fill="currentColor"
d="M6 30h20a2 2 0 0 0 2-2v-6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2m0-8h20v6H6Z"
></path>
<circle cx="9" cy="25" r="1" fill="currentColor"></circle>
<path
fill="currentColor"
d="m26 2l-1.41 1.41L27.17 6h-4.855A6.984 6.984 0 0 0 9.08 10H4.83l2.58-2.59L6 6l-5 5l5 5l1.41-1.41L4.83 12h4.855A6.984 6.984 0 0 0 22.92 8h4.25l-2.58 2.59L26 12l5-5Zm-5 7a4.983 4.983 0 0 1-8.974 3H16v-2h-4.899a4.985 4.985 0 0 1 8.874-4H16v2h4.899A5 5 0 0 1 21 9"
></path>
</svg>
),
},
{
title: "Open API",
href: "/docs/plugins/open-api",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.1em"
height="1.1em"
viewBox="0 0 32 32"
>
<path
fill="currentColor"
d="M16 0C7.177 0 0 7.177 0 16s7.177 16 16 16s16-7.177 16-16S24.823 0 16 0m0 1.527c7.995 0 14.473 6.479 14.473 14.473S23.994 30.473 16 30.473S1.527 23.994 1.527 16S8.006 1.527 16 1.527m-4.839 6.296c-.188-.005-.375 0-.568.005c-1.307.079-2.093.693-2.312 1.964c-.151.891-.125 1.796-.188 2.692a9 9 0 0 1-.156 1.38c-.177.813-.525 1.068-1.353 1.109q-.167.018-.324.057v1.948c1.5.073 1.704.605 1.823 2.172c.048.573-.015 1.147.021 1.719q.042.816.208 1.6c.344 1.432 1.745 1.911 3.433 1.624V22.38c-.272 0-.511.005-.74 0c-.579-.016-.792-.161-.844-.713c-.079-.713-.057-1.437-.099-2.156c-.089-1.339-.235-2.651-1.541-3.5c.672-.495 1.161-1.084 1.312-1.865c.109-.547.177-1.099.219-1.651s-.025-1.12.021-1.667c.077-.885.135-1.249 1.197-1.213c.161 0 .317-.021.495-.036V7.834c-.213 0-.411-.005-.604-.011m10.126.016a5.4 5.4 0 0 0-1.089.079v1.697c.329 0 .584 0 .833.005c.439.005.772.177.813.661c.041.443.041.891.083 1.339c.089.896.136 1.796.292 2.677c.136.724.636 1.265 1.255 1.713c-1.088.729-1.411 1.776-1.463 2.953c-.032.801-.052 1.615-.093 2.427c-.037.74-.297.979-1.043.995c-.208.011-.411.027-.64.041v1.74c.432 0 .833.027 1.235 0c1.239-.073 1.995-.677 2.239-1.885a15 15 0 0 0 .183-2.005c.041-.615.036-1.235.099-1.844c.093-.953.532-1.349 1.484-1.411q.133-.018.267-.057v-1.953c-.161-.021-.271-.037-.391-.041c-.713-.032-1.068-.272-1.251-.948a6.6 6.6 0 0 1-.197-1.324c-.052-.823-.047-1.656-.099-2.479c-.109-1.588-1.063-2.339-2.516-2.38zm-9.188 7.036c-1.432 0-1.536 2.109-.115 2.245h.079a1.103 1.103 0 0 0 1.167-1.037v-.061a1.13 1.13 0 0 0-1.104-1.147zm3.88 0a1.083 1.083 0 0 0-1.115 1.043c0 .036 0 .067.005.104c0 .672.459 1.099 1.147 1.099c.677 0 1.104-.443 1.104-1.136c-.005-.672-.459-1.115-1.141-1.109zm3.948 0a1.15 1.15 0 0 0-1.167 1.115c0 .625.505 1.131 1.136 1.131h.011c.567.099 1.135-.448 1.172-1.104c.031-.609-.521-1.141-1.152-1.141z"
></path>
</svg>
),
},
{
title: "JWT",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1em"
height="1em"
viewBox="0 0 256 257"
>
<path
className="fill-foreground opacity-70"
d="M147.386 69.071L147.129 0h-38.515l.257 69.071l19.257 26.448zm-38.515 118.371v69.328h38.515v-69.328l-19.258-26.447z"
></path>
<path
className="fill-foreground opacity-70"
d="m147.386 187.442l40.57 55.976l31.069-22.596l-40.57-55.975l-31.069-10.015zM108.871 69.071L68.044 13.095L36.975 35.691l40.57 55.976l31.326 10.014z"
></path>
<path
className="fill-foreground opacity-70"
d="M77.545 91.667L11.811 70.355L0 106.816l65.733 21.569l31.069-10.271zm81.653 46.732l19.257 26.448l65.734 21.311L256 149.697l-65.733-21.312z"
></path>
<path
className="fill-foreground"
d="M190.267 128.385L256 106.816l-11.811-36.461l-65.734 21.312l-19.257 26.447zm-124.534 0L0 149.697l11.811 36.461l65.734-21.311l19.257-26.448z"
></path>
<path
className="fill-foreground"
d="m77.545 164.847l-40.57 55.975l31.069 22.596l40.827-55.976v-32.61zm100.91-73.18l40.57-55.976l-31.069-22.596l-40.57 55.976v32.61z"
></path>
</svg>
),
href: "/docs/plugins/jwt",
},
{
title: "Other",
group: true,
href: "/docs/plugins/1st-party-plugins",
icon: () => <LucideAArrowDown className="w-4 h-4" />,
},
{
title: "Community Plugins",
href: "/docs/plugins/community-plugins",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1em"
height="1em"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
className="lucide lucide-users"
>
<path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" />
<circle cx="9" cy="7" r="4" />
<path d="M22 21v-2a4 4 0 0 0-3-3.87" />
<path d="M16 3.13a4 4 0 0 1 0 7.75" />
</svg>
),
},
],
},
{
title: "Guides",
href: "/docs/guides",
Icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.4em"
height="1.4em"
viewBox="0 0 20 20"
>
<path
fill="currentColor"
d="M6.819 17.259q.111.408.335.74h-.156c-1.104 0-2-.895-2.001-2l-.005-5.535zM4 16.499q0 .228.04.446l-.056-.015a2 2 0 0 1-1.416-2.45l1.426-5.34zm3.655.018a2 2 0 0 0 2.451 1.414l5.416-1.451a2 2 0 0 0 1.413-2.45L14.099 3.482a2 2 0 0 0-2.451-1.413l-5.416 1.45a2 2 0 0 0-1.413 2.449zM9 6.25a.75.75 0 1 1-1.5 0a.75.75 0 0 1 1.5 0"
></path>
</svg>
),
list: [
{
title: "Next Auth Migration Guide",
href: "/docs/guides/next-auth-migration-guide",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1em"
height="1em"
viewBox="0 0 48 48"
>
<g
fill="none"
stroke="currentColor"
strokeLinejoin="round"
strokeWidth="4"
>
<path strokeLinecap="round" d="M24 4v37"></path>
<path
fill="currentColor"
d="M24 8h15.545L42 12l-2.455 4H24zm0 14H8.455L6 26l2.455 4H24z"
></path>
<path strokeLinecap="round" d="M16 42h16"></path>
</g>
</svg>
),
},
{
title: "Create Your First Plugin",
href: "/docs/guides/your-first-plugin",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1em"
height="1em"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
className="lucide lucide-pencil-ruler"
>
<path d="M13 7 8.7 2.7a2.41 2.41 0 0 0-3.4 0L2.7 5.3a2.41 2.41 0 0 0 0 3.4L7 13" />
<path d="m8 6 2-2" />
<path d="m18 16 2-2" />
<path d="m17 11 4.3 4.3c.94.94.94 2.46 0 3.4l-2.6 2.6c-.94.94-2.46.94-3.4 0L11 17" />
<path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z" />
<path d="m15 5 4 4" />
</svg>
),
},
{
title: "Browser Extension Guide",
href: "/docs/guides/browser-extension-guide",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 512 512"
>
<path
fill="none"
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="32"
d="M413.66 246.1H386a2 2 0 0 1-2-2v-77.24A38.86 38.86 0 0 0 345.14 128H267.9a2 2 0 0 1-2-2V98.34c0-27.14-21.5-49.86-48.64-50.33a49.53 49.53 0 0 0-50.4 49.51V126a2 2 0 0 1-2 2H87.62A39.74 39.74 0 0 0 48 167.62V238a2 2 0 0 0 2 2h26.91c29.37 0 53.68 25.48 54.09 54.85c.42 29.87-23.51 57.15-53.29 57.15H50a2 2 0 0 0-2 2v70.38A39.74 39.74 0 0 0 87.62 464H158a2 2 0 0 0 2-2v-20.93c0-30.28 24.75-56.35 55-57.06c30.1-.7 57 20.31 57 50.28V462a2 2 0 0 0 2 2h71.14A38.86 38.86 0 0 0 384 425.14v-78a2 2 0 0 1 2-2h28.48c27.63 0 49.52-22.67 49.52-50.4s-23.2-48.64-50.34-48.64"
></path>
</svg>
),
},
],
},
{
title: "Reference",
Icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.3em"
height="1.3em"
viewBox="0 0 20 20"
>
<path
fill="currentColor"
d="M0 3v16h5V3zm4 12H1v-1h3zm0-3H1v-1h3zm2-9v16h5V3zm4 12H7v-1h3zm0-3H7v-1h3zm1-8.5l4.1 15.4l4.8-1.3l-4-15.3zm7 10.6l-2.9.8l-.3-1l2.9-.8zm-.8-2.9l-2.9.8l-.2-1l2.9-.8z"
></path>
</svg>
),
list: [
{
title: "Options",
href: "/docs/reference/options",
icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.2em"
height="1.2em"
viewBox="0 0 24 24"
>
<path
fill="currentColor"
d="M6.5 16q1.175 0 2.288.263T11 17.05V7.2q-1.025-.6-2.175-.9T6.5 6q-.9 0-1.788.175T3 6.7v9.9q.875-.3 1.738-.45T6.5 16m6.5 1.05q1.1-.525 2.213-.787T17.5 16q.9 0 1.763.15T21 16.6V6.7q-.825-.35-1.713-.525T17.5 6q-1.175 0-2.325.3T13 7.2zm-1 2.425q-.35 0-.663-.087t-.587-.238q-.975-.575-2.05-.862T6.5 18q-1.05 0-2.062.275T2.5 19.05q-.525.275-1.012-.025T1 18.15V6.1q0-.275.138-.525T1.55 5.2q1.15-.6 2.4-.9T6.5 4q1.45 0 2.838.375T12 5.5q1.275-.75 2.663-1.125T17.5 4q1.3 0 2.55.3t2.4.9q.275.125.413.375T23 6.1v12.05q0 .575-.487.875t-1.013.025q-.925-.5-1.937-.775T17.5 18q-1.125 0-2.2.288t-2.05.862q-.275.15-.587.238t-.663.087m2-10.7q0-.225.163-.462T14.525 8q.725-.25 1.45-.375T17.5 7.5q.5 0 .988.063t.962.162q.225.05.388.25t.162.45q0 .425-.275.625t-.7.1q-.35-.075-.737-.112T17.5 9q-.65 0-1.275.125t-1.2.325q-.45.175-.737-.025T14 8.775m0 5.5q0-.225.163-.462t.362-.313q.725-.25 1.45-.375T17.5 13q.5 0 .988.063t.962.162q.225.05.388.25t.162.45q0 .425-.275.625t-.7.1q-.35-.075-.737-.112T17.5 14.5q-.65 0-1.275.113t-1.2.312q-.45.175-.737-.012T14 14.275m0-2.75q0-.225.163-.462t.362-.313q.725-.25 1.45-.375t1.525-.125q.5 0 .988.063t.962.162q.225.05.388.25t.162.45q0 .425-.275.625t-.7.1q-.35-.075-.737-.112t-.788-.038q-.65 0-1.275.125t-1.2.325q-.45.175-.737-.025t-.288-.65"
></path>
</svg>
),
},
{
title: "Security",
href: "/docs/reference/security",
icon: () => <ShieldCheck className="w-4 h-4 text-current" />,
},
{
title: "FAQ",
href: "/docs/reference/faq",
icon: () => <CircleHelp className="w-4 h-4 text-current" />,
},
],
},
];
export const examples: Content[] = [
{
title: "Examples",
href: "/docs/examples/next",
Icon: () => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1.4em"
height="1.4em"
viewBox="0 0 24 24"
>
<path
fill="currentColor"
d="M2 6.95c0-.883 0-1.324.07-1.692A4 4 0 0 1 5.257 2.07C5.626 2 6.068 2 6.95 2c.386 0 .58 0 .766.017a4 4 0 0 1 2.18.904c.144.119.28.255.554.529L11 4c.816.816 1.224 1.224 1.712 1.495a4 4 0 0 0 .848.352C14.098 6 14.675 6 15.828 6h.374c2.632 0 3.949 0 4.804.77q.119.105.224.224c.77.855.77 2.172.77 4.804V14c0 3.771 0 5.657-1.172 6.828S17.771 22 14 22h-4c-3.771 0-5.657 0-6.828-1.172S2 17.771 2 14z"
opacity=".5"
></path>
<path
fill="currentColor"
d="M20 6.238c0-.298-.005-.475-.025-.63a3 3 0 0 0-2.583-2.582C17.197 3 16.965 3 16.5 3H9.988c.116.104.247.234.462.45L11 4c.816.816 1.224 1.224 1.712 1.495a4 4 0 0 0 .849.352C14.098 6 14.675 6 15.829 6h.373c1.78 0 2.957 0 3.798.238"
></path>
<path
fill="currentColor"
fillRule="evenodd"
d="M12.25 10a.75.75 0 0 1 .75-.75h5a.75.75 0 0 1 0 1.5h-5a.75.75 0 0 1-.75-.75"
clipRule="evenodd"
></path>
</svg>
),
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,
},
],
},
];