import Link from 'next/link'; import type { ReactNode } from 'react'; import { cn } from '@/lib/cn'; /** Editorial page header: optional breadcrumb + eyebrow, display title, lede, right-side actions. */ export function PageHeader({ title, lede, eyebrow, crumbs, actions, meta, className, }: { title: ReactNode; lede?: ReactNode; eyebrow?: ReactNode; crumbs?: Array<{ href: string; label: ReactNode }>; actions?: ReactNode; meta?: ReactNode; className?: string; }) { return (
{crumbs?.length ? ( ) : null}
{eyebrow ?
{eyebrow}
: null}

{title}

{lede ?

{lede}

: null} {meta ?
{meta}
: null}
{actions ?
{actions}
: null}
); } /** Quiet secondary action link/button look shared by the explore pages. */ export const ACTION_CLS = 'inline-flex min-h-[44px] items-center gap-1.5 rounded-sm border border-rule px-3 text-sm text-ink hover:bg-surface-2 md:min-h-[36px]'; export const PRIMARY_ACTION_CLS = 'inline-flex min-h-[44px] items-center gap-1.5 rounded-sm bg-ink px-3 text-sm font-medium text-paper hover:bg-accent hover:text-accent-ink md:min-h-[36px]';