@props([ 'variant' => 'primary', 'size' => 'md', 'type' => 'button', 'href' => null, 'icon' => null, 'iconRight' => null, 'loading' => false, 'block' => false, 'disabled' => false, ]) @php $variantClass = match($variant) { 'primary' => 'btn-primary', 'secondary' => 'btn-secondary', 'success' => 'btn-success', 'danger' => 'btn-danger', 'warning' => 'btn-warning', 'info' => 'btn-info', 'light' => 'btn-light', 'dark' => 'btn-dark', 'ghost' => 'btn-ghost', 'link' => 'btn-link', 'outline' => 'btn-outline-primary', default => 'btn-primary', }; $sizeClass = match($size) { 'xs' => 'btn-xs', 'sm' => 'btn-sm', 'md' => '', 'lg' => 'btn-lg', default => '', }; $classes = trim("btn {$variantClass} {$sizeClass}" . ($block ? ' w-100' : '') . ($loading ? ' is-loading' : '')); @endphp @if ($href) merge(['class' => $classes]) }} @if($disabled) aria-disabled="true" tabindex="-1" @endif> @if($loading)@endif @if($icon){!! icon($icon) !!}@endif {{ $slot }} @if($iconRight){!! icon($iconRight) !!}@endif @else @endif