import type { ReactNode } from 'react'; /** Editorial section: kicker, serif title, optional description and right-aligned actions. */ export function Section({ id, kicker, title, description, actions, children, className = '', level = 2, }: { id?: string; kicker?: string; title: ReactNode; description?: ReactNode; actions?: ReactNode; children: ReactNode; className?: string; level?: 2 | 3; }) { const H = level === 3 ? 'h3' : 'h2'; return (
{kicker ?

{kicker}

: null} {title} {description ?

{description}

: null}
{actions ?
{actions}
: null}
{children}
); } export function PageHeader({ kicker, title, lede, children, className = '' }: { kicker?: string; title: ReactNode; lede?: ReactNode; children?: ReactNode; className?: string }) { return (
{kicker ?

{kicker}

: null}

{title}

{lede ?

{lede}

: null} {children}
); } /** Definition list in two columns, dense. */ export function KV({ items, className = '' }: { items: Array<{ k: ReactNode; v: ReactNode }>; className?: string }) { const rows = items.filter((i) => i.v !== null && i.v !== undefined && i.v !== ''); if (rows.length === 0) return null; return (
{rows.map((r, i) => (
{r.k}
{r.v}
))}
); } export function Note({ children, tone = 'neutral' }: { children: ReactNode; tone?: 'neutral' | 'warn' }) { return

{children}

; }