@props([ 'status' => 'ok', // ok|warn|bad|unknown 'label' => null, 'detail' => null, 'pulse' => true, ]) @php $map = [ 'ok' => ['dot' => 'bg-emerald-500', 'text' => 'text-emerald-600 dark:text-emerald-400', 'ring' => 'bg-emerald-500/40'], 'warn' => ['dot' => 'bg-amber-500', 'text' => 'text-amber-600 dark:text-amber-400', 'ring' => 'bg-amber-500/40'], 'bad' => ['dot' => 'bg-red-500', 'text' => 'text-red-600 dark:text-red-400', 'ring' => 'bg-red-500/40'], 'unknown' => ['dot' => 'bg-slate-400', 'text' => 'text-slate-500 dark:text-slate-400', 'ring' => 'bg-slate-400/40'], ]; $s = $map[$status] ?? $map['unknown']; @endphp merge(['class' => 'inline-flex items-center gap-2']) }}> @if ($label) {{ $label }} @endif @if ($detail) {{ $detail }} @endif {{-- Screen readers get the state in words, not just colour. --}} status: {{ $label ?? $status }}{{ $detail ? ', '.$detail : '' }}