{# Macro badge Uso: {% from "core/components/badge.html" import badge, status_badge, status_pill %} {{ badge("running", variant="success") }} {{ status_badge(app.live_status) }} {{ status_pill("Ejecutando", tone="info", icon="loader-circle", spin=true) }} status_pill no interpreta el estado: la app decide etiqueta, tono e icono (cada dominio da a "running" o "pending" un significado distinto). tone: neutral | brand | action | success | warning | danger | info #} {% from "core/components/icon.html" import icon as _icon %} {%- set STATUS_MAP = { "running": "success", "stopped": "neutral", "error": "danger", "failed": "danger", "building": "muted", "pending": "info", "built": "success", "approved": "success", "pending-approval": "muted", "none": "neutral" } -%} {% macro badge(label, variant="neutral", extra_class="") %} {{ label }} {%- endmacro %} {% macro status_badge(status, prefix="") %} {%- set _variant = STATUS_MAP.get(status, "neutral") -%} {{ prefix ~ status }} {%- endmacro %} {% macro status_pill(label, tone="neutral", icon=none, spin=false) %} {%- if icon %}{{ _icon(icon, class="dg-status-icon" ~ (" animate-spin" if spin else "")) }}{% endif -%} {{ label -}} {%- endmacro %}