import Link from 'next/link'; import type { ReactNode } from 'react'; import { cn } from '@/lib/format'; import { StatStrip } from './primitives'; export interface Crumb { label: string; href?: string; } export function Breadcrumbs({ items, className }: { items: Crumb[]; className?: string }) { if (!items.length) return null; return ( ); } /** * Consistent page header: breadcrumb → kicker → title → one-line context → meta row → optional KPI strip. */ export function PageHeader({ title, description, crumbs, actions, meta, className, compact, kicker, stats }: { title: ReactNode; description?: ReactNode; crumbs?: Crumb[]; actions?: ReactNode; meta?: ReactNode; className?: string; compact?: boolean; kicker?: ReactNode; stats?: Array<{ label: ReactNode; value: ReactNode; sub?: ReactNode; href?: string }> }) { return (
{kicker}
: null}{description}
: null} {meta ?