{#- chirp-ui: ASCII Breaker Panel A framed set of breaker switches with title, status indicators, and optional master switch. Usage: from "chirpui/ascii_breaker_panel.html" import breaker_panel, breaker call breaker_panel(title="Services") breaker("api", label="API", checked=true, variant="success") breaker("db", label="DB", checked=true, variant="success") breaker("cache", label="Cache", variant="danger") breaker("queue", label="Queue") end With master switch (controls all): call breaker_panel(title="Production", master="main_power") breaker("web", label="Web", checked=true) breaker("worker", label="Worker", checked=true) end Variants: default, heavy, double. Size: sm, md (default). Visual: ╔══════════════════════╗ ║ PRODUCTION SYSTEMS ║ ╠══════════════════════╣ ║ ┌───┐ ┌───┐ ┌───┐ ║ ║ │███│ │███│ │░░░│ ║ ║ │███│ │███│ │░░░│ ║ ║ │░░░│ │░░░│ │███│ ║ ║ │░░░│ │░░░│ │███│ ║ ║ └───┘ └───┘ └───┘ ║ ║ API DB Cache ║ ║ ■ ON ■ ON ■ OFF ║ ╚══════════════════════╝ -#} {% from "chirpui/ascii_toggle.html" import ascii_switch %} {% def breaker_panel(title=none, variant="double", size="", master=none, cls="") %} {% set variant = variant | validate_variant(("", "default", "double", "heavy"), "double") %} {% set frame = "double" if variant in ("double", "") else variant %} {% set size_class = " chirpui-ascii-breaker-panel--" ~ size if size in ("sm",) else "" %}