import { AnimatedNumber } from "@/components/AnimatedNumber"; import { Skeleton } from "@/components/ui/skeleton"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import { cn } from "@/lib/utils"; import { fmt } from "@/lib/format"; import type { BatchSummary } from "@/lib/api"; /** * Colored kind badge — 837p in cool blue, 835 in warm amber. The colors * are deliberately not the project-wide `--accent` electric blue (that's * reserved for active nav + primary CTAs) so the rows scan as a * two-flavor instrument instead of a uniform accent. * * Voice mirrors `AckCodeBadge` in `src/pages/Acks.tsx` (uppercase, * wide tracking, hairline border, low-opacity fill). */ function KindBadge({ kind }: { kind: BatchSummary["kind"] }) { const color = kind === "837p" ? "text-sky-300 border-sky-400/30 bg-sky-400/10" : "text-amber-300 border-amber-400/30 bg-amber-400/10"; return ( {kind} ); } /** * Skeleton rows for the batches table. Mirrors the row count used in * `Acks.tsx` (5 placeholders) so the loading density matches the rest * of the app. */ export function BatchesListSkeleton() { return (