@props([ 'status' => 'neutral', // success | info | warning | danger | neutral 'label' => null, ]) @php $variant = match ($status) { 'active', 'success', 'approved', 'executed' => ['bg' => 'bg-success-fill', 'text' => 'text-success-text', 'border' => 'border-success-border', 'dot' => 'bg-success-text', 'name' => $label ?? ucfirst($status)], 'contacted', 'info', 'running' => ['bg' => 'bg-info-fill', 'text' => 'text-info-text', 'border' => 'border-info-border', 'dot' => 'bg-info-text', 'name' => $label ?? ucfirst($status)], 'draft', 'warning', 'pending', 'awaiting_approval' => ['bg' => 'bg-warning-fill', 'text' => 'text-warning-text', 'border' => 'border-warning-border', 'dot' => 'bg-warning-text', 'name' => $label ?? ucfirst(str_replace('_', ' ', $status))], 'rejected', 'failed', 'expired', 'danger' => ['bg' => 'bg-danger-fill', 'text' => 'text-danger-text', 'border' => 'border-danger-border', 'dot' => 'bg-danger-text', 'name' => $label ?? ucfirst($status)], default => ['bg' => 'bg-neutral-fill', 'text' => 'text-neutral-text', 'border' => 'border-neutral-border', 'dot' => 'bg-neutral-text', 'name' => $label ?? ucfirst($status)], }; @endphp merge([ 'class' => "inline-flex items-center gap-1.5 px-2 py-0.5 rounded-sm text-micro font-medium {$variant['bg']} {$variant['text']}", 'role' => 'status', ]) }}> {{ $slot->isEmpty() ? $variant['name'] : $slot }}