Spaces:
Sleeping
Sleeping
Commit History
-
Make groups draggable again
The interactive-control drag guard swallowed pointerdowns on group labels, which are <button>s — pages kept dragging because their labels are anchors. Controls can now opt back in with data-td-drag, and the group label (the group's whole hit area) does. The e2e now drags groups directly — empty, with subtree, in and out of a page. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>66103fc
-
treedrag: never start a drag from interactive controls
A pointerdown on a button, input, select, textarea, or contenteditable inside a row armed a drag, so a 4px wiggle while clicking a row's trash or caret swallowed the click. Co-Authored-By: Codex <noreply@openai.com> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>c91ab4d -
treedrag: multi-select block drags
A drag starting on a selected row (data-selected) carries every selected root: union subtree dimming and drop rejection, DOM-order keys, a count badge on the ghost, and index math that subtracts all moved same-parent roots. onMove now always reports {keys, parentKey, index}. Co-Authored-By: Codex <noreply@openai.com> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>1783a28 -
Add a generic pointer-based tree drag module
Self-contained: no app imports, injects its own styles. Rows opt in via data-td-* attributes; drops report {key, parentKey, index} with the index counted after the dragged node leaves its old spot. Handles touch long-press, subtree protection, ancestor outdent on the last sibling, hover-to-expand, auto-scroll, and Escape cancel. Co-Authored-By: Codex <noreply@openai.com> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>e099afd