@php // typeColor resource (primary/info/success/warning/gray) → kelas literal per nada // (literal agar terdeteksi scanner Tailwind v4; tak ada warna `info` → secondary). $tones = [ 'primary' => ['ic' => 'bg-primary/10 text-primary', 'amt' => 'text-primary', 'dot' => 'group-has-checked:border-primary group-has-checked:bg-primary', 'card' => 'has-checked:border-primary/50 has-checked:bg-primary/5 has-checked:ring-primary/10 hover:border-primary/40'], 'secondary' => ['ic' => 'bg-secondary/10 text-secondary', 'amt' => 'text-secondary', 'dot' => 'group-has-checked:border-secondary group-has-checked:bg-secondary', 'card' => 'has-checked:border-secondary/50 has-checked:bg-secondary/5 has-checked:ring-secondary/10 hover:border-secondary/40'], 'success' => ['ic' => 'bg-success/10 text-success', 'amt' => 'text-success', 'dot' => 'group-has-checked:border-success group-has-checked:bg-success', 'card' => 'has-checked:border-success/50 has-checked:bg-success/5 has-checked:ring-success/10 hover:border-success/40'], 'warning' => ['ic' => 'bg-warning/10 text-warning', 'amt' => 'text-warning', 'dot' => 'group-has-checked:border-warning group-has-checked:bg-warning', 'card' => 'has-checked:border-warning/50 has-checked:bg-warning/5 has-checked:ring-warning/10 hover:border-warning/40'], 'muted' => ['ic' => 'bg-muted/10 text-muted', 'amt' => 'text-muted', 'dot' => 'group-has-checked:border-muted group-has-checked:bg-muted', 'card' => 'has-checked:border-muted/50 has-checked:bg-muted/5 has-checked:ring-muted/10 hover:border-muted/40'], ]; $toneFor = fn (string $c) => $tones[match ($c) { 'primary' => 'primary', 'info' => 'secondary', 'success' => 'success', 'warning' => 'warning', default => 'muted', }]; @endphp
Catat beberapa jenis simpanan sekaligus untuk satu anggota dalam satu proses.