@props(['variant' => 'primary', 'href' => null, 'type' => 'submit', 'size' => 'md'])
@php
$classes = 'inline-flex select-none items-center justify-center gap-2 whitespace-nowrap rounded-lg font-medium transition duration-150 active:scale-[0.98] focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 '
.($size === 'sm' ? 'px-3 py-1.5 text-xs ' : 'px-4 py-2.5 text-sm ')
.match ($variant) {
'secondary' => 'border border-slate-300 bg-white text-slate-700 shadow-sm hover:border-slate-400 hover:bg-slate-50 focus-visible:ring-slate-400',
'danger' => 'bg-red-600 text-white shadow-sm shadow-red-600/20 hover:bg-red-700 focus-visible:ring-red-500',
'ghost' => 'text-slate-600 hover:bg-slate-100 hover:text-slate-900 focus-visible:ring-slate-400',
default => 'bg-brand-600 text-white shadow-sm shadow-brand-600/25 hover:bg-brand-700 focus-visible:ring-brand-500',
};
@endphp
@if ($href)
merge(['class' => $classes]) }}>{{ $slot }}
@else
@endif