import { forwardRef } from 'react'; const SIZE_CLASSES = { sm: 'px-3 py-1.5 text-sm rounded-lg', md: 'px-4 py-2 text-base rounded-xl', lg: 'px-5 py-3 text-base rounded-xl', }; const Button = forwardRef(function Button( { variant = 'primary', size = 'md', type = 'button', loading = false, leadingIcon, trailingIcon, disabled, className = '', style, children, ...rest }, ref ) { const isDisabled = disabled || loading; const sizeCls = SIZE_CLASSES[size] ?? SIZE_CLASSES.md; let variantStyle = {}; let variantClass = ''; if (variant === 'primary') { variantStyle = { background: 'linear-gradient(135deg, var(--accent-ember) 0%, var(--accent-flame) 100%)', color: '#ffffff', boxShadow: 'var(--rim-light-inner), var(--ember-rim-pronounced)', }; variantClass = 'font-medium transition-transform duration-200 hover:scale-[1.02] active:scale-[0.98]'; } else if (variant === 'secondary') { variantStyle = { background: 'var(--glass-surface-high)', backdropFilter: 'blur(var(--glass-blur-low)) saturate(var(--glass-saturate))', WebkitBackdropFilter: 'blur(var(--glass-blur-low)) saturate(var(--glass-saturate))', color: 'var(--text-primary)', boxShadow: 'var(--rim-light-inner), var(--rim-light-outer)', }; variantClass = 'font-medium transition-all duration-200 hover:bg-[var(--glass-surface-mid)]'; } else if (variant === 'danger') { variantStyle = { backgroundColor: '#dc2626', color: '#ffffff', boxShadow: 'var(--rim-light-inner)', }; variantClass = 'font-medium transition-all duration-200 hover:bg-[#b91c1c]'; } else if (variant === 'ghost') { variantStyle = { background: 'transparent', color: 'var(--text-primary)', }; variantClass = 'font-medium transition-colors duration-200 hover:bg-[rgba(var(--ember-rim-color),0.08)]'; } return ( ); }); export default Button;