interface ButtonProps extends React.ButtonHTMLAttributes { children: React.ReactNode; isLoading?: boolean; variant?: 'primary' | 'secondary' | 'outline'; size?: 'sm' | 'md' | 'lg'; } export function Button({ children, className = "", isLoading = false, variant = 'primary', size = 'md', ...props }: ButtonProps) { const baseClasses = "btn"; const variantClasses = { primary: "btn-primary", secondary: "btn-secondary", outline: "btn-outline" }; const sizeClasses = { sm: "px-3 py-1.5 text-xs", md: "px-4 py-2 text-sm", lg: "px-6 py-3 text-base" }; const fullWidthClasses = "w-full max-w-xs mx-auto block"; const combinedClasses = [ baseClasses, variantClasses[variant], sizeClasses[size], fullWidthClasses, className ].join(' '); return ( ); }