SortableState

Primitive #27

🔍 Problem it solves

Reorderable lists need to track item order, handle drag start/end, manage drop targets, and support mouse/keyboard reordering.

✅ Solution

SortableManager manages order, drag indexes, and provides reorder(), moveUp/Down, and subscriptions. HTML5 drag & drop with custom drag image.

🧩 Used by components

SortableList, KanbanBoard, Playlist, TableRowReorder, DashboardWidgets

🎮 Interactive demo