import Link from "next/link"; import { COVERAGE_STATUS_LABEL, COVERAGE_STATUS_TONE, TIER_LABEL, TIER_TARGET } from "@/lib/coverage"; import { cx } from "@/lib/format"; import type { InstrumentCoverage } from "@/lib/types"; /** "N / T independent sources" + tier chip + coverage status. Works in server and client components. */ export function CoverageBadge({ coverage: c, className, compact }: { coverage: InstrumentCoverage; className?: string; compact?: boolean }) { const met = c.families >= c.target.families; return ( {c.families} / {c.target.families} independent source{c.target.families === 1 ? "" : "s"} tier {c.tier} {!compact && {COVERAGE_STATUS_LABEL[c.status]}} {!compact && (c.proxies > 0 || c.validators > 0) && ( {c.proxies > 0 ? `+${c.proxies} prox${c.proxies === 1 ? "y" : "ies"}` : ""} {c.proxies > 0 && c.validators > 0 ? " · " : ""} {c.validators > 0 ? `+${c.validators} validator${c.validators === 1 ? "" : "s"}` : ""} )} ); }