import Link from "next/link"; import { ChevronRight, Check } from "lucide-react"; // Reports breadcrumb: always rooted at "Reports", then the section and any // drill/detail crumbs. A crumb with an href is a link; the last is the current. export function ReportBreadcrumb({ trail }: { trail: { label: string; href?: string }[] }) { return ( ); } // Server-rendered segmented control: each option is a link that re-renders the // page with the new value in the query string (used for tier / break-down / top-N). export function SegLink({ label, options, current, hrefFor, }: { label: string; options: { value: string; label: string }[]; current: string; hrefFor: (v: string) => string; }) { return (
{label}
{options.map((o) => ( {o.label} ))}
); } // A checkbox rendered as a navigation link — toggles this row's id in the // `?sel=` custom-comparison selection (keeps the report fully server-rendered). export function SelectCheckbox({ checked, href, title }: { checked: boolean; href: string; title?: string }) { return ( {checked && } ); } // Sticky banner shown while rows are selected: jump to the custom comparison or clear. export function CompareBar({ count, compareHref, clearHref }: { count: number; compareHref: string; clearHref: string }) { return (
{count} selected
Compare selected Clear
); } export function ReportTitle({ title, subtitle, badge }: { title: string; subtitle?: string; badge?: React.ReactNode }) { return (

{title}

{badge}
{subtitle &&

{subtitle}

}
); }