@props([ 'value' => null, // note sur 5 (float|int|null) 'label' => null, // libellé optionnel au-dessus de la barre 'delta' => null, // écart signé vs référence précédente (float|null) 'size' => 'md', // 'sm' | 'md' ]) @php $pct = $value !== null ? max(0, min(100, round(((float) $value / 5) * 100))) : 0; // Couleur de la barre alignée sur la grille de notation générique // (Criterion::GENERIC_SCALE) : rouge sous la moyenne, ambre autour du // "conforme", sarcelle au-dessus — un simple coup d'œil sur la couleur // donne déjà le sens, avant même de lire le chiffre. $barColor = $value === null ? 'var(--np-slate)' : ($value < 2.5 ? 'var(--np-red)' : ($value < 3.5 ? 'var(--np-amber)' : 'var(--np-signal)')); $height = $size === 'sm' ? '6px' : '10px'; @endphp
@if($label)
{{ $label }}
@endif
{{ $value !== null ? number_format((float) $value, 1) : '—' }}/5 @if($delta !== null) @php $deltaColor = $delta > 0 ? 'var(--np-green)' : ($delta < 0 ? 'var(--np-red)' : 'var(--np-ink-faint)'); $deltaSign = $delta > 0 ? '+' : ''; $deltaArrow = $delta > 0 ? '↑' : ($delta < 0 ? '↓' : ''); @endphp {!! $deltaArrow !!} {{ $deltaSign }}{{ number_format($delta, 1) }} @endif