import { Grid } from '@/ui/Grid'; import { Icon } from '@/ui/Icon'; import { Stack } from '@/ui/Stack'; import { Text } from '@/ui/Text'; import { LucideIcon } from 'lucide-react'; interface BillingStatProps { label: string; value: string | number; subValue?: string; icon: LucideIcon; variant?: 'default' | 'success' | 'warning' | 'danger' | 'info'; } function BillingStat({ label, value, subValue, icon, variant = 'default' }: BillingStatProps) { const colorMap = { default: 'text-white', success: 'text-performance-green', warning: 'text-warning-amber', danger: 'text-racing-red', info: 'text-primary-blue', }; const bgMap = { default: 'bg-iron-gray/50', success: 'bg-performance-green/10', warning: 'bg-warning-amber/10', danger: 'bg-racing-red/10', info: 'bg-primary-blue/10', }; return ( {label} {value} {subValue && ( {subValue} )} ); } interface BillingSummaryPanelProps { stats: BillingStatProps[]; } /** * BillingSummaryPanel * * A semantic panel for displaying billing metrics. * Dense, grid-based layout for financial data. */ export function BillingSummaryPanel({ stats }: BillingSummaryPanelProps) { return ( {stats.map((stat, index) => ( ))} ); }