{#- chirp-ui: ASCII Toggle
Switch controls rendered with box-drawing characters and Unicode glyphs.
Horizontal (default):
from "chirpui/ascii_toggle.html" import ascii_toggle
ascii_toggle("dark_mode", label="Dark Mode")
ascii_toggle("notifications", checked=true, variant="success")
Vertical breaker switch:
from "chirpui/ascii_toggle.html" import ascii_switch
ascii_switch("power", label="Power")
ascii_switch("debug", checked=true, label="Debug", variant="danger")
Variants: default, success, danger, accent.
Sizes: sm, md (default), lg.
Horizontal visual:
OFF: ╶───○ ON: ●───╴
Vertical visual:
OFF: ┌───┐ ON: ┌───┐
│░░░│ │███│
│░░░│ │███│
│███│ │░░░│
│███│ │░░░│
└───┘ └───┘
-#}
{% def ascii_toggle(name, checked=false, label=none, variant="", size="",
disabled=false, cls="") %}
{% set variant = variant | validate_variant(("", "default", "success", "danger", "accent"), "") %}
{% set size_class = " chirpui-ascii-toggle--" ~ size if size in ("sm", "lg") else "" %}
{% set variant_class = " chirpui-ascii-toggle--" ~ variant if variant and variant != "default" else "" %}
{% end %}
{% def ascii_switch(name, checked=false, label=none, variant="", size="",
disabled=false, cls="") %}
{% set variant = variant | validate_variant(("", "default", "success", "danger", "accent"), "") %}
{% set size_class = " chirpui-ascii-switch--" ~ size if size in ("sm", "lg") else "" %}
{% set variant_class = " chirpui-ascii-switch--" ~ variant if variant and variant != "default" else "" %}
{% end %}