{#- chirp-ui: Icon Button Square icon-only button for toolbars and dense UIs. Usage: from "chirpui/icon_btn.html" import icon_btn icon_btn("✕", aria_label="Close") icon_btn("⚙", variant="ghost", size="lg", href="/settings", aria_label="Settings") -#} {% def icon_btn(icon, variant="", size="", href=none, aria_label="", disabled=false, type="button", cls="", hx_get=none, hx_post=none, hx_target=none, hx_swap=none) %} {% set _bar_size = consume("_bar_density", "") %} {% set _busy = consume("_suspense_busy", "") %} {% set _variant = variant | validate_variant(("", "default", "primary", "ghost", "danger"), "") %} {% set _size = (size or _bar_size or "") | validate_variant(("", "sm", "md", "lg"), "") %} {% set _disabled = disabled or (_busy == "true") %} {% set variant_class = " chirpui-icon-btn--" ~ _variant if _variant else "" %} {% set size_class = " chirpui-icon-btn--" ~ _size if _size else "" %} {% set base = "chirpui-icon-btn" ~ variant_class ~ size_class ~ (" " ~ cls if cls else "") %} {% if href %} {{ icon | icon }} {% else %} {% end %} {% end %}