{{-- Tarjeta indicador (KPI) del kit ui-ctc: título, valor "de total", porcentaje, barra de avance y alerta. Es un botón: el filtro que aplica va en los atributos (wire:click…). Props: titulo, valor, total (opcional), porcentaje (número 0–100, opcional), color (hex de la barra), alerta (número; si > 0 sale el contador rojo), activo (bool: filtro aplicado), barra (bool), estatico (bool: solo muestra un dato, sin acción; se pinta como
), ayuda (texto bajo el valor, opcional), ayudaAviso (bool: la ayuda en ámbar, para una advertencia), href (la tarjeta es un enlace a otra pantalla), insignia (bool: muestra el % como insignia verde/ámbar de avance; false cuando el % es una proporción y solo va la barra). Slot opcional: enlaces o texto al pie (con estatico, para no anidar enlaces). --}} @props(['titulo', 'valor', 'total' => null, 'porcentaje' => null, 'color' => null, 'alerta' => 0, 'activo' => false, 'barra' => true, 'estatico' => false, 'ayuda' => null, 'ayudaAviso' => false, 'href' => null, 'insignia' => true]) @php $pct = $porcentaje === null ? null : max(0, min(100, (float) $porcentaje)); $color = $color ?: 'var(--acento)'; @endphp @php $etiqueta = $estatico ? 'div' : ($href ? 'a' : 'button'); @endphp <{{ $etiqueta }} @if ($etiqueta === 'button') type="button" data-indicador aria-pressed="{{ $activo ? 'true' : 'false' }}" @elseif ($href) href="{{ $href }}" data-indicador @endif {{ $attributes->merge(['class' => 'relative flex min-h-[124px] flex-col gap-2.5 rounded-xl border bg-[var(--superficie)] p-4 pb-3.5 text-left transition focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--acento)] ' . ($activo ? 'border-[var(--acento)] shadow-[0_0_0_3px_var(--acento-suave)]' : 'border-[var(--borde)] shadow-sm' . ($estatico ? '' : ' hover:border-[var(--acento-borde)]'))]) }}> {{ $titulo }} @if ($alerta > 0) {{ $alerta }} @endif {{ is_numeric($valor) ? number_format((float) $valor, 0, ',', '.') : $valor }} @if ($total !== null)de {{ is_numeric($total) ? number_format((float) $total, 0, ',', '.') : $total }}@endif @if ($pct !== null && $insignia) {{ number_format($pct, 1, ',', '.') }}% @endif @if ($ayuda){{ $ayuda }}@endif @if (trim($slot) !== ''){{ $slot }}@endif @if ($barra && $pct !== null) @endif