{#- chirp-ui: Drag-drop primitives Behavior-ready row and board variants for sortable lists and kanban layouts. Composes existing sortable structure; Alpine/HTMX wiring is left to the consumer. Row variant (ordered lists: chains, todo, setup targets): from "chirpui/dnd.html" import dnd_list, dnd_item, dnd_handle, dnd_drop_indicator call dnd_list() for item in items call dnd_item() call dnd_handle() call dnd_drop_indicator() ...content... end end end Board variant (kanban lanes with cross-column movement): from "chirpui/dnd.html" import dnd_board, dnd_column, dnd_card call dnd_board() for col in columns call dnd_column(title=col.name) for card in col.cards call dnd_card() ...card content... end end end end end -#} {% def dnd_list(cls="", attrs="") %}
{% slot %}
{% end %} {% def dnd_item(cls="", attrs="") %}
{% slot %}
{% end %} {% def dnd_handle(cls="", attrs="") %} {% end %} {% def dnd_drop_indicator(cls="", attrs="") %} {% end %} {% def dnd_board(cls="", attrs="") %}
{% slot %}
{% end %} {% def dnd_column(title=none, cls="", attrs="") %}
{% if title %}
{{ title }}
{% end %}
{% slot %}
{% end %} {% def dnd_card(cls="", attrs="") %}
{% slot %}
{% end %}