@props([
'type' => 'button',
'variant' => 'primary',
'size' => 'md',
'icon' => null,
'loading' => false,
'disabled' => false,
'href' => null,
'target' => null,
'onclick' => null,
'class' => '',
'id' => null,
'data' => []
])
@php
$baseClasses = 'btn';
// Variantes
$variantClasses = [
'primary' => 'btn-primary text-white',
'secondary' => 'btn-outline-secondary',
'success' => 'btn-success text-white',
'warning' => 'btn-warning text-white',
'danger' => 'btn-danger text-white',
'info' => 'btn-info text-white',
'light' => 'btn-light',
'dark' => 'btn-dark text-white',
'outline-primary' => 'btn-outline-primary',
'outline-success' => 'btn-outline-success',
'outline-warning' => 'btn-outline-warning',
'outline-danger' => 'btn-outline-danger',
'outline-info' => 'btn-outline-info',
];
// TamaƱos
$sizeClasses = [
'sm' => 'btn-sm',
'md' => '',
'lg' => 'btn-lg',
'xl' => 'btn-lg px-4 py-3'
];
$classes = $baseClasses . ' ' . $variantClasses[$variant] . ' ' . $sizeClasses[$size];
if ($loading) {
$classes .= ' btn-loading';
}
if ($disabled) {
$classes .= ' disabled';
}
$classes .= ' ' . $class;
// Atributos de datos
$dataAttributes = '';
foreach ($data as $key => $value) {
$dataAttributes .= " data-{$key}=\"{$value}\"";
}
@endphp
@if($href)
@if($icon)
@endif
{{ $slot }}
@else
@endif