import type { ButtonHTMLAttributes, PropsWithChildren } from 'react'; type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger'; type ButtonSize = 'md' | 'sm'; interface ButtonProps extends ButtonHTMLAttributes { variant?: ButtonVariant; size?: ButtonSize; fullWidth?: boolean; loading?: boolean; } export function Button({ children, variant = 'primary', size = 'md', fullWidth = false, loading = false, className = '', disabled, ...rest }: PropsWithChildren) { const hasChildren = children !== null && children !== undefined && children !== false; const classes = [ 'btn', `btn-${variant}`, size === 'sm' ? 'btn-sm' : '', fullWidth ? 'btn-full' : '', className ] .filter(Boolean) .join(' '); return ( ); }