{# Macro stat_card — tarjeta de KPI con icono, valor, medidor opcional y pista. Uso: {% from "core/components/stat.html" import stat_card %}
{{ stat_card("Referencias colocadas", "96,3", unit="%", icon="package", tone="brand", meter=96.3, hint="1.214 de 1.260 referencias") }}
value → ya formateado por la app (separadores y decimales del dominio). meter → 0–100; se recorta a ese rango. Sin meter no se pinta la barra. hint → texto bajo el valor; admite Markup si la app quiere resaltar cifras. attrs → atributos extra para la tarjeta (data-*, id…), sin escapar. #} {% from "core/components/icon.html" import icon_tile as _icon_tile %} {% macro stat_card(label, value, icon=none, tone="neutral", unit="", hint="", meter=none, meter_label="", attrs="") %}
{%- if icon %}{{ _icon_tile(icon, tone=tone, size="sm") }}{% endif %} {{ label }}
{{ value }}{% if unit %}{{ unit }}{% endif %}
{#- NaN no es igual a sí mismo: un medidor no numérico no pinta barra. #} {%- if meter is not none and (meter|float) == (meter|float) %} {%- set _pct = [[meter|float, 0.0]|max, 100.0]|min %}
{%- endif %} {%- if hint %}
{{ hint }}
{%- endif %}
{%- endmacro %}