Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | import { cn } from '../../lib/utils'; type BadgeVariant = 'default' | 'primary' | 'success' | 'warning' | 'error' | 'info'; interface BadgeProps { children: React.ReactNode; variant?: BadgeVariant; className?: string; } const variantStyles: Record<BadgeVariant, string> = { default: 'bg-gray-100 text-gray-600 dark:bg-gray-700 dark:text-gray-300', primary: 'bg-primary-light text-primary', success: 'bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400', warning: 'bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-400', error: 'bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400', info: 'bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400', }; export function Badge({ children, variant = 'default', className }: BadgeProps) { return ( <span className={cn( 'inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium', variantStyles[variant], className )} > {children} </span> ); } |