@props([ 'status' => null, 'label' => null, ]) @php if ($status instanceof \BackedEnum) { $key = strtolower($status->value); $displayLabel = $label ?? (method_exists($status, 'libelle') ? $status->libelle() : $status->value); } else { $key = strtolower((string) $status); $displayLabel = $label ?? (string) $status; } $tone = match (true) { in_array($key, ['actif', 'valide', 'validee', 'approuve', 'paye', 'ram_actif']) => 'green', in_array($key, ['en_attente_activation', 'en_attente_paiement', 'soumis', 'soumis_caisse', 'en_cours_de_finalisation', 'enquete_en_cours', 'commission_intermin', 'en_cours_conventionnement', 'en_cours_agrement', 'ram_a_reevaluer']) => 'gold', in_array($key, ['rejete', 'suspendu', 'annulee', 'ram_rejete', 'inactif']) => 'red', in_array($key, ['brouillon', 'brouillon_ram', 'cloture']) => 'gray', in_array($key, ['actif_en_retard', 'retourne_pour_complement', 'approuve_partiellement']) => 'orange', default => 'gray', }; $toneClasses = match ($tone) { 'green' => 'bg-cmu-green-50 text-cmu-green-800 border-cmu-green-200', 'gold' => 'bg-cmu-gold-50 text-cmu-gold-700 border-cmu-gold-200', 'red' => 'bg-cmu-red-100 text-cmu-red-700 border-cmu-red-600/30', 'orange' => 'bg-cmu-gold-100 text-cmu-gold-700 border-cmu-gold-400/40', default => 'bg-gray-100 text-cmu-ink border-gray-200', }; $dotClasses = match ($tone) { 'green' => 'bg-cmu-green-600', 'gold' => 'bg-cmu-gold-500', 'red' => 'bg-cmu-red-600', 'orange' => 'bg-cmu-gold-600', default => 'bg-gray-400', }; @endphp merge(['class' => 'inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-semibold border '.$toneClasses]) }}> {{ $displayLabel }}