{#- chirp-ui: Toast component htmx OOB toast notifications with stacking, swipe-dismiss, and server-driven loading→success/error updates (sonner-grade feedback). Usage: from "chirpui/toast.html" import toast, toast_container, toast_pending, toast_resolve Place the container once in your base template: toast_container() Return a toast from any htmx response (OOB swap): toast("Item saved successfully!", variant="success") toast("Something went wrong.", variant="error", dismissible=true) Server-driven status flow (HTMX-native promise pattern): # 1) POST handler returns pending toast with stable id toast_pending("Saving…", id="save-item-42") # 2) follow-up response replaces the same toast by id toast_resolve("Saved!", id="save-item-42", variant="success") toast_resolve("Save failed.", id="save-item-42", variant="error") -#} {% def toast_container(id="chirpui-toasts", cls="", limit=5) %}