import { Loader2 } from "lucide-react"; import type * as React from "react"; import { cn } from "@/lib/cn"; type PageHeaderProps = { eyebrow: string; title: React.ReactNode; description?: React.ReactNode; leading?: React.ReactNode; actions?: React.ReactNode; className?: string; }; export function PageShell({ className, ...props }: React.ComponentProps<"div">) { return
; } export function PageHeader({ eyebrow, title, description, leading, actions, className, }: PageHeaderProps) { return (
{leading}
{eyebrow}

{title}

{description &&

{description}

}
{actions}
); } type StatePanelProps = React.ComponentProps<"div"> & { title: React.ReactNode; description?: React.ReactNode; icon?: React.ReactNode; action?: React.ReactNode; tone?: "default" | "error"; loading?: boolean; }; export function StatePanel({ title, description, icon, action, tone = "default", loading = false, className, ...props }: StatePanelProps) { return (
{loading ? ( ) : ( icon &&
{icon}
)}

{title}

{description &&
{description}
} {action &&
{action}
}
); } export function FullScreenLoader({ label }: { label?: string }) { return (
{label && ( {label} )}
); }