{"$schema":"https://ui.shadcn.com/schema/registry-item.json","name":"auth-page","type":"registry:ui","title":"Auth page","description":"A centred sign-in or sign-up page with a brand header and legal links.","dependencies":["clsx","tailwind-merge"],"registryDependencies":["https://caliperui.site/r/styles.json"],"files":[{"path":"ui/auth-page.tsx","type":"registry:ui","target":"components/ui/auth-page.tsx","content":"import type { ReactNode } from \"react\";\nimport { cn } from \"./lib/cn\";\n\n/** A centered page for sign in, sign up and reset flows: a brand mark, one card, and quiet links below. */\nexport function AuthPage({\n  brand,\n  children,\n  footer,\n  className,\n}: {\n  brand?: ReactNode;\n  children: ReactNode;\n  /** Small links under the card, such as Terms and Privacy. */\n  footer?: ReactNode;\n  className?: string;\n}) {\n  return (\n    <main data-slot=\"auth-page\" className={cn(\"grid min-h-[inherit] w-full place-items-center px-4 py-10\", className)}>\n      <div className=\"grid w-full max-w-sm gap-6\">\n        {brand && <div className=\"flex justify-center text-foreground\">{brand}</div>}\n        <div data-slot=\"auth-card\" className=\"rounded-overlay border border-border bg-surface p-6 shadow-resting sm:p-8\">\n          {children}\n        </div>\n        {footer && <div className=\"text-center text-xs text-muted-foreground\">{footer}</div>}\n      </div>\n    </main>\n  );\n}\n"},{"path":"ui/lib/cn.ts","type":"registry:ui","target":"components/ui/lib/cn.ts","content":"import { clsx, type ClassValue } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\nconst twMerge = extendTailwindMerge({\n  extend: { theme: { radius: [\"control\", \"surface\", \"overlay\"], shadow: [\"overlay\"] } },\n});\n\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs));\n}\n"}],"categories":["free-account"],"meta":{"tier":"free","license":"MIT","family":"account-entry","docs":"/docs/components/auth-page"}}