{# ============================================================ Agent Wasp — Jinja2 Macro Library Usage: {% from "macros.html" import pill, empty_state, ... %} ============================================================ #} {# ---------------------------------------------------------------- pill(text, variant, size, dot) variant: success | warning | danger | info | primary | secondary | neutral size: xs | sm | md dot: boolean — show animated pulse dot ---------------------------------------------------------------- #} {% macro pill(text, variant="neutral", size="sm", dot=false) -%} {%- if dot %}{% endif -%} {{- text -}} {%- endmacro %} {# ---------------------------------------------------------------- empty_state(title, hint, icon_path) ---------------------------------------------------------------- #} {% macro empty_state(title, hint="", icon_path="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2") %}

{{ title }}

{% if hint %}

{{ hint }}

{% endif %}
{% endmacro %} {# ---------------------------------------------------------------- risk_indicator(level, show_label) level: safe | file | network | system ---------------------------------------------------------------- #} {% macro risk_indicator(level, show_label=true) %} {% set labels = {"safe": "Safe", "file": "File I/O", "network": "Network", "system": "System"} %} {% if show_label %}{{ labels.get(level, level) }}{% endif %} {% endmacro %} {# ---------------------------------------------------------------- sparkline(values_json, color, width, height) values_json: a JSON-serialized list e.g. "[10,20,15]" color: success | warning | danger | info | primary | neutral ---------------------------------------------------------------- #} {% macro sparkline(values_json, color="primary", width=80, height=28) %} {% endmacro %} {# ---------------------------------------------------------------- kpi_card(value, label, hint, color, sparkline_values, sparkline_color) ---------------------------------------------------------------- #} {% macro kpi_card(value, label, hint="", color="text-primary", spark="", spark_color="primary") %}
{{ label }}
{{ value }}
{% if hint %}
{{ hint }}
{% endif %} {% if spark %}
{{ sparkline(spark, spark_color, 100, 24) }}
{% endif %}
{% endmacro %} {# ---------------------------------------------------------------- section_header(title, icon_path, badge_text, badge_variant, actions_html) ---------------------------------------------------------------- #} {% macro section_header(title, icon_path="", badge_text="", badge_variant="primary") %}
{% if icon_path %} {% endif %}

{{ title }}

{% if badge_text %} {{ pill(badge_text, badge_variant, "xs") }} {% endif %}
{% endmacro %} {# ---------------------------------------------------------------- status_pill(value, size) Standardized status display ---------------------------------------------------------------- #} {% macro status_pill(value, size="sm") %} {%- if value == true or value == "ok" or value == "healthy" or value == "active" -%} {{ pill("OK", "success", size, dot=true) }} {%- elif value == "paused" -%} {{ pill("PAUSED", "warning", size) }} {%- elif value == "warn" or value == "warning" or value == "degraded" -%} {{ pill("WARN", "warning", size) }} {%- elif value == false or value == "error" or value == "fail" or value == "down" -%} {{ pill("FAIL", "danger", size) }} {%- elif value == "idle" -%} {{ pill("IDLE", "neutral", size) }} {%- else -%} {{ pill(value | upper, "neutral", size) }} {%- endif %} {% endmacro %}