import { Meter, type MeterTone } from "@/components/base/meter/meter"; import { formatUsd } from "@/app/lib/units"; /** Success under 85%, warning up to 100%, error over budget. */ function budgetTone(spent: number, budget: number): { tone: MeterTone; text: string; label: string } { const ratio = budget > 0 ? spent / budget : 0; if (ratio > 1) return { tone: "error", text: "text-status-danger", label: "Over budget" }; if (ratio > 0.85) return { tone: "warning", text: "text-status-warn", label: "Close to budget" }; return { tone: "success", text: "text-status-ok", label: "Under budget" }; } interface BudgetMeterProps { spent: number; budget: number; compact?: boolean; } export function BudgetMeter({ spent, budget, compact = false }: BudgetMeterProps) { const tone = budgetTone(spent, budget); return (