@props(['variant' => 'primary', 'size' => 'md', 'type' => 'button', 'class' => '']) @php $baseClasses = 'inline-flex items-center justify-center rounded-md font-medium focus:outline-none focus:ring-2 focus:ring-offset-2 transition-colors'; $variantClasses = [ 'primary' => 'bg-blue-600 text-white hover:bg-blue-700 focus:ring-blue-500', 'secondary' => 'bg-gray-600 text-white hover:bg-gray-700 focus:ring-gray-500', 'outline' => 'border border-gray-300 bg-white text-gray-700 hover:bg-gray-50 focus:ring-blue-500', 'danger' => 'bg-red-600 text-white hover:bg-red-700 focus:ring-red-500', ]; $sizeClasses = [ 'sm' => 'px-3 py-1.5 text-sm', 'md' => 'px-4 py-2 text-sm', 'lg' => 'px-6 py-3 text-base', ]; $classes = $baseClasses . ' ' . ($variantClasses[$variant] ?? $variantClasses['primary']) . ' ' . ($sizeClasses[$size] ?? $sizeClasses['md']) . ' ' . $class; @endphp @if(isset($attributes['href'])) merge(['class' => $classes]) }}> {{ $slot }} @else @endif