import { clsx } from 'clsx/lite'; export default function Badge({ children, className, type = 'large', dimContent, contrast = 'low', uppercase, interactive, }: { children: React.ReactNode className?: string type?: 'large' | 'small' | 'text-only' dimContent?: boolean contrast?: 'low' | 'medium' | 'high' | 'frosted' uppercase?: boolean interactive?: boolean }) { const stylesForType = () => { switch (type) { case 'large': return clsx( 'px-1.5 h-[26px]', 'rounded-md', 'bg-gray-100/40 dark:bg-gray-900/60', 'border border-medium', ); case 'small': return clsx( 'px-[5px] h-[17px] md:h-[18px]', 'text-[0.7rem] font-medium rounded-[0.25rem]', contrast === 'high' ? 'text-invert bg-invert' : contrast === 'frosted' ? 'text-black bg-neutral-100/30 border border-neutral-200/40' : 'text-medium bg-gray-300/30 dark:bg-gray-700/50', interactive && (contrast === 'high' ? 'hover:opacity-70' : contrast === 'frosted' ? 'hover:text-black dark:hover:text-black' : 'hover:text-gray-900 dark:hover:text-gray-100'), interactive && (contrast === 'high' ? 'active:opacity-90' : contrast === 'frosted' ? 'active:bg-neutral-100/50 dark:active:bg-neutral-900/10' : 'active:bg-gray-200 dark:active:bg-gray-700/60'), ); } }; return ( {children} ); }