@props([
'href' => null,
'variant' => 'primary', // primary | secondary | danger | ghost
'size' => 'md', // sm | md
])
@php
$base = 'inline-flex items-center justify-center gap-2 font-medium transition focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500 focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none';
$sizes = [
'sm' => 'h-9 px-3 text-sm rounded-xl',
'md' => 'h-10 px-4 text-sm rounded-xl',
];
$variants = [
'primary' => 'bg-indigo-600 text-white hover:bg-indigo-700 shadow-sm',
'secondary' => 'bg-white text-zinc-900 ring-1 ring-zinc-950/10 hover:bg-zinc-50',
'danger' => 'bg-rose-600 text-white hover:bg-rose-700 shadow-sm',
'ghost' => 'bg-transparent text-zinc-700 hover:bg-zinc-100',
];
$classes = trim($base.' '.($sizes[$size] ?? $sizes['md']).' '.($variants[$variant] ?? $variants['primary']));
@endphp
@if ($href)
merge(['class' => $classes]) }}>
{{ $slot }}
@else
@endif