import type { CSSProperties, ReactNode } from 'react'; import { X } from 'lucide-react'; function classNames(...values: Array): string { return values.filter(Boolean).join(' '); } export interface BadgeProps { children?: ReactNode; tone?: 'neutral' | 'accent' | 'ok' | 'warn' | 'error'; solid?: boolean; dot?: boolean; style?: CSSProperties; } export function Badge({ children, tone = 'neutral', solid = false, dot = false, style }: BadgeProps) { return ( {dot && } {children} ); } export interface StatusDotProps { status?: 'live' | 'ok' | 'warn' | 'error' | 'idle'; pulse?: boolean; size?: number; label?: string; style?: CSSProperties; } const statusColors: Record, string> = { live: 'var(--status-live)', ok: 'var(--status-ok)', warn: 'var(--status-warn)', error: 'var(--status-error)', idle: 'var(--text-disabled)' }; export function StatusDot({ status = 'idle', pulse = false, size = 8, label, style }: StatusDotProps) { const color = statusColors[status]; const shouldPulse = pulse || status === 'live'; return (