@props(['variant' => 'primary', 'type' => 'submit', 'href' => null, 'size' => 'md']) @php $base = 'inline-flex items-center justify-center gap-2 rounded-lg font-medium transition focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-60'; $sizes = ['sm' => 'px-3 py-1.5 text-xs', 'md' => 'px-4 py-2 text-sm']; $variants = [ 'primary' => 'bg-indigo-600 text-white shadow-sm hover:bg-indigo-500 focus-visible:ring-indigo-500', 'secondary' => 'border border-slate-300 bg-white text-slate-700 shadow-xs hover:bg-slate-50 focus-visible:ring-indigo-500', 'danger' => 'bg-red-600 text-white shadow-sm hover:bg-red-500 focus-visible:ring-red-500', 'ghost' => 'text-slate-600 hover:bg-slate-100 hover:text-slate-900 focus-visible:ring-indigo-500', 'danger-ghost' => 'text-red-600 hover:bg-red-50 focus-visible:ring-red-500', ]; $classes = $base.' '.$sizes[$size].' '.$variants[$variant]; @endphp @if ($href) merge(['class' => $classes]) }}>{{ $slot }} @else @endif