@props([ 'value' => null, 'label' => null, 'tone' => null, ]) @php if ($value instanceof \BackedEnum) { $valueString = (string) $value->value; } elseif ($value instanceof \UnitEnum) { $valueString = $value->name; } elseif (is_null($value)) { $valueString = ''; } else { $valueString = (string) $value; } $normalized = strtolower(str_replace([' ', '-'], '_', $valueString)); $labelText = $label ?? ( $value instanceof \BackedEnum && method_exists($value, 'label') ? $value->label() : ucwords(str_replace('_', ' ', $normalized)) ); $tone = $tone ?: match ($normalized) { 'completed', 'approved', 'active', 'closed' => 'success', 'in_progress', 'ready' => 'info', 'pending', 'not_started', 'on_hold', 'rework', 'rework_required' => 'warning', 'rejected', 'inactive', 'blocked' => 'danger', default => 'neutral', }; $classes = match ($tone) { 'success' => 'bg-emerald-100 text-emerald-700 ring-emerald-200', 'info' => 'bg-blue-100 text-blue-700 ring-blue-200', 'warning' => 'bg-amber-100 text-amber-700 ring-amber-200', 'danger' => 'bg-rose-100 text-rose-700 ring-rose-200', default => 'bg-slate-100 text-slate-700 ring-slate-200', }; @endphp class([ 'inline-flex items-center rounded-full px-2.5 py-1 text-xs font-semibold ring-1 ring-inset', $classes ]) }}> {{ $labelText }}