@props([ 'variant' => 'primary', // primary, secondary, danger, ghost 'type' => 'button', 'size' => 'md', // sm, md, lg ]) @php $baseClasses = 'inline-flex items-center justify-center font-medium rounded-lg focus:outline-none focus:ring-4 transition-colors'; $variantClasses = [ 'primary' => 'text-white bg-blue-600 hover:bg-blue-700 focus:ring-blue-300', 'secondary' => 'text-gray-900 bg-white border border-gray-300 hover:bg-gray-100 focus:ring-gray-200', 'danger' => 'text-white bg-red-600 hover:bg-red-700 focus:ring-red-300', 'ghost' => 'text-gray-700 bg-transparent hover:bg-gray-100 focus:ring-gray-200', ]; $sizeClasses = [ 'sm' => 'px-3 py-1.5 text-sm', 'md' => 'px-4 py-2 text-sm', 'lg' => 'px-5 py-2.5 text-base', ]; $classes = $baseClasses . ' ' . ($variantClasses[$variant] ?? $variantClasses['primary']) . ' ' . ($sizeClasses[$size] ?? $sizeClasses['md']); @endphp