{#- chirp-ui: Filter chips — radiogroup + pill chips (named colors / HTMX) Not the same as filter_bar.html (form + action_strip for table filters). This module is for faceted chip rows. See docs/COMPONENT-OPTIONS.md (filter_bar vs filter_chips). Usage: from "chirpui/filter_chips.html" import filter_group, filter_chip {% call filter_group(name="Type") %} {{ filter_chip("All", href="/", active=true) }} {{ filter_chip("Grass", color="#78c850", href="/g") }} {% end %} -#} {% def filter_group(name, param="type", value="", cls="") %}
{% slot %}
{% end %} {% def filter_chip(label, value="", color=none, active=false, href=none, cls="", hx_target=none, hx_push_url=false, hx_swap="innerHTML", hx_select=none) %} {% set resolved = color | resolve_color %} {% set badge_variant = ("custom-solid" if (resolved and active) else ("custom" if resolved else ("primary" if active else "muted"))) %} {% set style_attr = ("--chirpui-badge-color: " ~ resolved ~ ("; --chirpui-badge-text: " ~ (resolved | contrast_text) if active else "")) if resolved else "" %} {% set chip_cls = ("chirpui-filter-chip" ~ (" chirpui-filter-chip--active" if active else "") ~ (" " ~ cls if cls else "")).strip() %} {% set badge_class = "badge" | bem(variant=badge_variant, cls=chip_cls) %} {% if href %} {{ label }} {% else %} {{ label }} {% end %} {% end %}