npm.io
0.34.0 • Published yesterday

@bimetal/kanban-headless

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:

  • DialogopenCreateCard / openEditCard / saveCard / deleteCard.
  • Drag/dropdropCard(cardId, toColumnId, toIndex) / reorderCard, with startDrag / updateDragPreview / endDrag for live previews.
  • WIP-error-as-state — a rejected create/move (WIP limit) surfaces as snapshot.lastAction (a toast) and never throws into the binding.
  • Undoundo() reverts the whole board one step; Ctrl/Cmd+Z via handleKeydown.
  • Filter / selectionsetFilter, selectCard / clearSelection.

The cut line is identical to the calendar controller: DOM measurement and listener registration belong to the framework; every if belongs here.

Keywords