Licence
PolyForm-Noncommercial-1.0.0
Version
0.34.0
Deps
2
Size
123 kB
Vulns
0
Weekly
0
@bimetal/kanban-headless
The canonical, framework-agnostic kanban controller — instance #2 of the
BIMETAL component family. Built on @bimetal/headless-core exactly like the
calendar controller, so it shares the identity-stable getSnapshot/subscribe
contract and errors-as-state surface; framework bindings are pure bindings.
createKanbanController({ store, boardId, config }) owns every board
interaction decision:
- Dialog —
openCreateCard/openEditCard/saveCard/deleteCard. - Drag/drop —
dropCard(cardId, toColumnId, toIndex)/reorderCard, withstartDrag/updateDragPreview/endDragfor live previews. - WIP-error-as-state — a rejected create/move (WIP limit) surfaces as
snapshot.lastAction(a toast) and never throws into the binding. - Undo —
undo()reverts the whole board one step;Ctrl/Cmd+ZviahandleKeydown. - Filter / selection —
setFilter,selectCard/clearSelection.
The cut line is identical to the calendar controller: DOM measurement and
listener registration belong to the framework; every if belongs here.