@props([
'href' => null,
'type' => 'button',
'size' => 'md', // sm|md
'variant' => 'primary', // primary|secondary|ghost|danger
])
@php
$base = 'inline-flex items-center justify-center gap-2 rounded-xl font-semibold transition focus:outline-none focus:ring-4 disabled:cursor-not-allowed disabled:opacity-60';
$sizes = [
'sm' => 'px-3 py-2 text-sm',
'md' => 'px-4 py-2.5 text-sm',
][$size] ?? 'px-4 py-2.5 text-sm';
$variants = [
'primary' => 'bg-ink-700 text-white shadow-sm hover:bg-ink-800 focus:ring-ink-200',
'secondary' => 'bg-brand-600 text-white shadow-sm hover:bg-brand-700 focus:ring-brand-200',
'ghost' => 'border border-slate-200 bg-white text-slate-700 shadow-sm hover:bg-slate-50 focus:ring-brand-200',
'danger' => 'bg-rose-600 text-white shadow-sm hover:bg-rose-700 focus:ring-rose-200',
][$variant] ?? 'bg-ink-700 text-white shadow-sm hover:bg-ink-800 focus:ring-ink-200';
$classes = trim($base.' '.$sizes.' '.$variants);
@endphp
@if ($href)
merge(['class' => $classes]) }}>
{{ $slot }}
@else
@endif