@props([ 'type' => 'submit', // Tipo del botón 'variant' => 'primary', // Variantes: primary, success, warning, danger, neutral 'href' => null, // Ruta para los enlaces 'loading' => false, // Estado de carga ]) @php // Clases base para todos los botones $baseClasses = 'inline-block font-bold py-2 px-6 rounded-lg shadow-md transition duration-300 ease-in-out flex items-center justify-center '; // Clases específicas según la variante $variantClasses = match ($variant) { 'danger' => 'bg-red-600 hover:bg-red-800 text-white', // Rojo oscuro 'warning' => 'bg-yellow-400 hover:bg-yellow-600 text-white', // Amarillo 'success' => 'bg-blue-500 hover:bg-blue-600 text-white', // Azul marino 'neutral' => 'bg-gray-400 bg-opacity-90 hover:bg-gray-700 hover:bg-opacity-75 text-white', default => 'bg-blue-500 hover:bg-blue-600 text-white', // Primary (default as azul eléctrico) }; // Combinar clases $buttonClasses = $baseClasses . $variantClasses; @endphp

Cargando, por favor espera...

@if ($href) merge(['class' => $buttonClasses]) }} @click="loading = true"> {{ $slot }} @else @endif