import Image from "next/image"; import type { ReactNode } from "react"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { cn } from "@/lib/utils"; // temetro logo + wordmark, centered. export function AuthBrand() { return (
{/* White fox mark — inverted to black in light mode. */} temetro temetro
); } // Centered page wrapper for every auth screen: brand on top, content below. export function AuthLayout({ children }: { children: ReactNode }) { return (
{children}
); } // Card-based shell for the non-block auth pages (onboarding, verify, reset, // forgot-password, accept-invite). export function AuthShell({ title, subtitle, children, footer, }: { title: string; subtitle?: ReactNode; children: ReactNode; footer?: ReactNode; }) { return ( {title} {subtitle && {subtitle}} {children} {footer && (
{footer}
)}
); } export function Field({ label, htmlFor, hint, children, }: { label: string; htmlFor: string; hint?: ReactNode; children: ReactNode; }) { return (
{children} {hint &&

{hint}

}
); } export function FormAlert({ tone = "error", children, }: { tone?: "error" | "success"; children: ReactNode; }) { return (

{children}

); }