npm / @tiptap/extension-drag-handle
@tiptap/extension-drag-handle
What changed in @tiptap/extension-drag-handle 3, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-12.
2 new APIs and options1 behavior and defaults16 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@tiptap/extension-drag-handle 319 changes
New APIs and options 2
Added an option to limit which CSS properties are cloned for the drag image, reducing the cost of dragging selections with complex nodes.
Drag handle elements now have a data-dragging attribute to track drag state.
Behavior and default changes 1
Drag handles can appear for nested content such as list items and blockquotes, with configurable edge detection and custom rules.
Fixes and other changes 16
The handle resolves to the correct block around zero-size widget decorations and stays above positioned page chrome so it remains clickable.
NodeRangeSelection is now restored after drag-and-drop when Collaboration (Yjs) is enabled.
Margins explicitly listed in dragImageProperties are preserved on the drag preview instead of being reset to 0.
Fixes multi-block drags in nested mode so they remove all dragged blocks instead of only the first.
After dragging multiple blocks, the dragged blocks remain selected instead of leaving a text selection inside the moved content.
Fixed ghost image alignment when dragging blocks inside offset layouts and preserved correct behavior for RTL content.
Fixed drag selections so crossing a node boundary does not incorrectly include the next node.
The ghost wrapper uses the dragged block’s computed direction, and the drag image hotspot uses the cursor position relative to the wrapper, aligning the preview in LTR and RTL.
Falls back to view.posAtCoords when elementsFromPoint returns no matching block, resolving the position to the top-level block node.
Cloned drag images are now removed when dragging ends without a valid drop.
Fixes the drag event listener being removed when a plugin is registered after the DragHandle plugin.
Fixes drag handles not appearing for atom/leaf nodes like images in nested and non-nested modes.
Fixes drag position resolving outside the document when dragging an empty text node at the end of the document.
Prevents drag handles on table rows, cells, and headers, and fixes ghost table rows when dragging tables.
Fixed a Firefox bug that made the text caret invisible after drag and drop.
Resolves the parent when nodeAt(pos) is null, including inside an atom node that allows inline content.