@props([ 'variant' => 'primary', 'type' => 'button', 'href' => null, ]) @php $baseClasses = 'inline-flex items-center justify-center px-4 py-2 border text-sm font-medium rounded-lg shadow-sm focus:outline-none focus:ring-2 focus:ring-offset-2 transition-colors duration-200 disabled:opacity-50 disabled:cursor-not-allowed'; $variants = [ 'primary' => 'border-transparent text-white bg-indigo-600 hover:bg-indigo-700 focus:ring-indigo-500', 'secondary' => 'border-transparent text-white bg-slate-600 hover:bg-slate-700 focus:ring-slate-500', 'success' => 'border-transparent text-white bg-emerald-600 hover:bg-emerald-700 focus:ring-emerald-500', 'danger' => 'border-transparent text-white bg-red-600 hover:bg-red-700 focus:ring-red-500', 'warning' => 'border-transparent text-white bg-amber-500 hover:bg-amber-600 focus:ring-amber-500', 'info' => 'border-transparent text-white bg-sky-500 hover:bg-sky-600 focus:ring-sky-500', 'light' => 'border-gray-300 text-gray-700 bg-white hover:bg-gray-50 focus:ring-indigo-500', ]; $classes = $baseClasses . ' ' . ($variants[$variant] ?? $variants['primary']); @endphp @if($href) merge(['class' => $classes]) }}> @if(isset($icon)) {{ $icon }} @endif {{ $slot }} @else @endif