@props([ 'variant' => 'primary', // primary, secondary, destructive, ghost 'size' => 'md', // sm, md, lg 'type' => 'button', 'href' => null, 'icon' => null, 'iconPosition' => 'left', 'loading' => false, 'disabled' => false, ]) @php $baseClasses = 'inline-flex items-center justify-center gap-2 font-medium rounded-xl transition-all duration-200 focus:outline-none disabled:opacity-50 disabled:cursor-not-allowed'; $variants = [ 'primary' => 'glass-button-primary text-white', 'secondary' => 'glass-button text-db-text-secondary hover:text-db-text-primary', 'destructive' => 'glass-button border-red-500/20 hover:border-red-500/40 text-red-400 hover:shadow-[0_0_20px_rgba(239,68,68,0.2)]', 'ghost' => 'bg-transparent hover:bg-white/5 text-db-text-muted hover:text-db-text-primary', ]; $sizes = [ 'sm' => 'px-3 py-1.5 text-xs', 'md' => 'px-4 py-2.5 text-sm', 'lg' => 'px-6 py-3 text-sm', ]; $classes = $baseClasses . ' ' . ($variants[$variant] ?? $variants['primary']) . ' ' . ($sizes[$size] ?? $sizes['md']); @endphp @if($href && !$disabled) merge(['class' => $classes]) }}> @if($icon && $iconPosition === 'left') {!! $icon !!} @endif {{ $slot }} @if($icon && $iconPosition === 'right') {!! $icon !!} @endif @else @endif