{# Feedback Components Macros: badge, severity_badge, status_badge, alert, empty_state, loading_spinner, progress_bar, tooltip, modal, confirmation_dialog #} {% macro badge(text, variant="info") %} {% set variants = { "critical": "bg-red-500/20 text-red-400", "high": "bg-orange-500/20 text-orange-400", "medium": "bg-yellow-500/20 text-yellow-400", "low": "bg-blue-500/20 text-blue-400", "info": "bg-gray-500/20 text-gray-400", "safe": "bg-green-500/20 text-green-400", "success": "bg-green-500/20 text-green-400", "warning": "bg-yellow-500/20 text-yellow-400", "error": "bg-red-500/20 text-red-400", "primary": "bg-blue-500/20 text-blue-400" } %} {{ text }} {% endmacro %} {% macro severity_badge(severity) %} {# Convenience macro for severity levels #} {% set severity_lower = severity | lower %} {% if severity_lower == "critical" %} {{ badge(severity | upper, "critical") }} {% elif severity_lower == "high" %} {{ badge(severity | upper, "high") }} {% elif severity_lower == "medium" %} {{ badge(severity | upper, "medium") }} {% elif severity_lower == "low" %} {{ badge(severity | upper, "low") }} {% elif severity_lower in ["safe", "ok", "good"] %} {{ badge(severity | upper, "safe") }} {% else %} {{ badge(severity, "info") }} {% endif %} {% endmacro %} {% macro status_badge(status) %} {# Convenience macro for status indicators #} {% set status_lower = status | lower %} {% if status_lower in ["active", "running", "online", "connected", "healthy"] %} {{ badge(status, "success") }} {% elif status_lower in ["pending", "waiting", "queued"] %} {{ badge(status, "warning") }} {% elif status_lower in ["error", "failed", "offline", "disconnected", "unhealthy"] %} {{ badge(status, "error") }} {% elif status_lower in ["paused", "stopped", "inactive"] %} {{ badge(status, "info") }} {% else %} {{ badge(status, "info") }} {% endif %} {% endmacro %} {% macro alert(message, variant="info", dismissible=false, icon="") %} {% set variants = { "info": "bg-blue-500/10 border-blue-500/30 text-blue-400", "success": "bg-green-500/10 border-green-500/30 text-green-400", "warning": "bg-yellow-500/10 border-yellow-500/30 text-yellow-400", "error": "bg-red-500/10 border-red-500/30 text-red-400" } %} {% set default_icons = { "info": "info", "success": "check-circle", "warning": "alert-triangle", "error": "circle-x" } %}
{{ message }}