import { Badge } from './Badge'; import { Box } from './Box'; import { StatusDot } from './StatusDot'; import { Text } from './Text'; export { Badge }; export interface StatusIndicatorProps { status?: 'live' | 'upcoming' | 'completed' | 'cancelled' | 'pending'; variant?: string; // Alias for status label?: string; subLabel?: string; size?: 'sm' | 'md' | 'lg'; icon?: any; // Alias for status dot } export const StatusIndicator = ({ status, variant, label, subLabel, size = 'md', icon }: StatusIndicatorProps) => { const activeStatus = (status || variant || 'pending') as any; const configMap: any = { live: { intent: 'success' as const, pulse: true, text: 'Live', }, upcoming: { intent: 'primary' as const, pulse: false, text: 'Upcoming', }, completed: { intent: 'telemetry' as const, pulse: false, text: 'Completed', }, cancelled: { intent: 'critical' as const, pulse: false, text: 'Cancelled', }, pending: { intent: 'warning' as const, pulse: false, text: 'Pending', }, success: { intent: 'success' as const, pulse: false, text: 'Success', }, danger: { intent: 'critical' as const, pulse: false, text: 'Danger', }, warning: { intent: 'warning' as const, pulse: false, text: 'Warning', }, }; const config = configMap[activeStatus] || configMap.pending; return ( {label || config.text} {subLabel && {subLabel}} ); }; export const StatRow = ({ label, value, subLabel, variant, valueColor, valueFont }: { label: string, value: string, subLabel?: string, variant?: string, valueColor?: string, valueFont?: string }) => ( {label} {subLabel && {subLabel}} {value} );