'use client' import { ButtonHTMLAttributes, forwardRef } from 'react' type Variant = 'primary' | 'secondary' | 'danger' | 'ghost' type Size = 'sm' | 'md' | 'lg' interface ButtonProps extends ButtonHTMLAttributes { variant?: Variant; size?: Size; loading?: boolean } const v: Record = { primary: 'bg-blue-600 hover:bg-blue-700 text-white shadow-sm disabled:opacity-50 disabled:cursor-not-allowed', secondary: 'bg-slate-100 hover:bg-slate-200 text-slate-700 dark:bg-slate-800 dark:hover:bg-slate-700 dark:text-slate-300', danger: 'bg-red-600 hover:bg-red-700 text-white disabled:opacity-50 disabled:cursor-not-allowed', ghost: 'text-slate-600 hover:bg-slate-100 dark:text-slate-400 dark:hover:bg-slate-800', } const s: Record = { sm: 'px-3 py-1.5 text-xs', md: 'px-4 py-2 text-sm', lg: 'px-6 py-2.5 text-base' } const Button = forwardRef(({ variant = 'primary', size = 'md', loading, children, className = '', disabled, ...props }, ref) => ( )) Button.displayName = 'Button' export default Button