{#- 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 %}