Skip to main content

v0.4.0

v0.4.0
Minor
April 2025
Event type system redesign — Replaced DragDropEvents with DragDropEventMap and DragDropEventHandlers, following the DOM EventMap pattern for improved type safety.Per-entity plugin configurationDraggable entities now accept a plugins property for entity-specific plugin configuration. The feedback property has moved from the Draggable entity to the Feedback plugin configuration. Sortable uses the same generic mechanism instead of custom registration.Virtualization improvements — Entity identity changes are now batched and deferred to a microtask to prevent collision oscillation during virtualized sorting.Feedback plugin enhancements — Added keyboardTransition option to customize or disable CSS transitions on keyboard moves. The feedback option now supports a callback form for dynamically choosing the feedback type. DropAnimationFunction context now includes source.AutoScroller updates — Added acceleration (default: 25) and threshold (default: 0.2) options to control scroll speed and activation zone, with per-axis configuration via {x, y}.Sortable plugin improvementsplugins now accepts Customizable<Plugins>, a function form that extends defaults without losing built-in Sortable plugins.Bug fixes:
  • Fixed onDragStart firing before onDragOver for elements that are both draggable and droppable
  • Resolved DTS build errors with TypeScript 5.9 on Node 20
  • Fixed plugin registration order when deduplicating configured plugins
  • Fixed useDeepSignal calling flushSync from a React lifecycle method
  • Svelte: Removed OptimisticSortingPlugin from defaults to prevent conflicts with Svelte 5 reconciliation
  • Vue: Fixed sortable type narrowing and re-exported drag event type aliases
  • Added LICENSE file to all published packages

v0.3.2

v0.3.2
Patch
March 2025
Fixed CSS cascade layer ordering so the Feedback plugin no longer overrides styles from CSS frameworks that use cascade layers (such as Tailwind CSS v4). The @layer block is now named dnd-kit and injected with the lowest priority.

v0.3.1

v0.3.1
Patch
February 2025
Fixed onDragOver firing before onDragStart when a drag operation began over a droppable target.

v0.3.0

v0.3.0
Minor
February 2025
Functional configuration — Allow plugins, sensors, and modifiers to accept a function that receives the defaults, making it easy to extend or configure them without replacing the entire array.
const manager = new DragDropManager({
  plugins: (defaults) => [...defaults, MyPlugin],
});
Sortable type guard — Added isSortableOperation type guard and exported SortableDraggable/SortableDroppable types for typed access to sortable-specific properties.Configurable drop animation — The DragOverlay component now accepts a dropAnimation prop to disable or customize the drop animation.Bug fixes:
  • Fixed auto-scroll trigger zones and drag overlay positioning during pinch-to-zoom in Safari
  • Fixed move and swap helpers for computed sortable IDs and optimistic sorting reconciliation
  • Fixed PointerSensor crash on Android caused by unhandled pointercancel events

v0.2.4

v0.2.4
Minor
January 2025
Event type aliases — Exposed ergonomic type aliases for drag and drop event handlers: CollisionEvent, BeforeDragStartEvent, DragStartEvent, DragMoveEvent, DragOverEvent, and DragEndEvent.Accessibility — Respect prefers-reduced-motion media query across all animations including keyboard drag, drop animation, and sortable swap transitions.Configurable drop animation API — The Feedback plugin now accepts a dropAnimation option: pass {duration, easing}, a custom function, or null to disable.Bug fixes:
  • Fixed Feedback plugin style injection in Shadow DOM environments
  • Fixed table cell width handling during drag operations using sub-pixel precision

v0.2.3

v0.2.3
Patch
December 2024
Fixed a bug where custom PointerSensor options passed to bind() were not being respected by activationConstraints().

v0.2.2

v0.2.2
Patch
December 2024
Fixed inverted preventActivation default option on KeyboardSensor.

v0.2.1

v0.2.1
Patch
November 2024
Fixed PointerSensor defaults.preventActivation not being applied when other sensor options were provided.

v0.2.0

v0.2.0
Minor
November 2024
Refactored PointerSensor — New composable activation constraints API with PointerActivationConstraints.Delay and PointerActivationConstraints.Distance. Improved defaults for different input types (mouse, touch, text inputs).Conditional sensor activation — Added preventActivation option to PointerSensor and KeyboardSensor to conditionally prevent sensor activation on interactive elements.Cross-iframe supportPointerSensor now binds listeners across same-origin documents for drag operations that span iframes.Bug fixes:

v0.1.x

v0.1.x
Minor
August – November 2024
Initial beta releases establishing the core API: