{#- chirp-ui: Toggle Group Grouped toggle buttons for single or multiple selection. Usage: from "chirpui/toggle_group.html" import toggle_group {{ toggle_group( items=[ {"label": "Bold", "value": "bold", "pressed": true}, {"label": "Italic", "value": "italic"}, ], name="format", type="multiple", ) }} -#} {% def toggle_group(items, name="toggle", type="single", value=none, size="", orientation="horizontal", variant="", disabled=false, cls="", attrs_map=none) %} {% set size = size | validate_size("toggle-group", "") %} {% set _type = "multiple" if type == "multiple" else "single" %} {% set _orientation = "vertical" if orientation == "vertical" else "horizontal" %} {% set _values = value if value is iterable and value is not string else ([value] if value else []) %} {% set size_class = " chirpui-toggle-group--" ~ size if size else "" %} {% set variant_class = " chirpui-toggle-group--outline" if variant == "outline" else "" %}
{% for item in items %} {% set _value = item.get("value", item.get("label", "")) %} {% set _pressed = item.get("pressed", false) or item.get("active", false) or _value in _values %} {% set _disabled = disabled or item.get("disabled", false) %} {% set _id = item.get("id", name ~ "-" ~ _value) %} {% end %}
{% end %}