Skip to content

Latest commit

 

History

History
1061 lines (695 loc) · 85.2 KB

File metadata and controls

1061 lines (695 loc) · 85.2 KB

@dnd-kit/dom

0.5.1

Patch Changes

  • #2076 e00be08 Thanks @timagixe! - Avoid requiring ResizeObserver at import time when importing @dnd-kit/dom/modifiers in DOM-like test environments.

  • Updated dependencies []:

    • @dnd-kit/abstract@0.5.1
    • @dnd-kit/collision@0.5.1
    • @dnd-kit/geometry@0.5.1
    • @dnd-kit/state@0.5.1

0.5.0

Minor Changes

  • #2046 f23afe0 Thanks @aidenfoxx! - Updated OptimisticSortingPlugin to support non-contiguous sortable indexes.

  • #2058 2dd8d0e Thanks @timagixe! - Allow useSortable, createSortable and Sortable to disable dragging and dropping independently with a disabled object while preserving the existing boolean behavior.

Patch Changes

  • #2057 e25b1b1 Thanks @timagixe! - Allow pointer dragging from descendants of interactive draggable elements, such as text inside sortable anchor elements.

  • #2020 00fd955 Thanks @namgi2386! - Fix DragOverlay flickering after drop

  • #2079 e4792f3 Thanks @silence717! - Fix TypeError: Cannot read properties of undefined (reading 'split') in parseScale/parseTranslate on browsers that do not support the individual scale/translate CSS transform properties (Chromium < 104), where getComputedStyle returns undefined instead of 'none'.

  • Updated dependencies [e4d1a7e]:

    • @dnd-kit/abstract@0.5.0
    • @dnd-kit/collision@0.5.0
    • @dnd-kit/geometry@0.5.0
    • @dnd-kit/state@0.5.0

0.4.0

Minor Changes

  • #1909 87bf1e6 Thanks @clauderic! - Add acceleration and threshold options to the AutoScroller plugin.

    • acceleration controls the base scroll speed multiplier (default: 25).
    • threshold controls the percentage of container dimensions that defines the scroll activation zone (default: 0.2). Accepts a single number for both axes or { x, y } for per-axis control. Setting an axis to 0 disables auto-scrolling on that axis.
    AutoScroller.configure({
      acceleration: 15,
      threshold: {x: 0, y: 0.3},
    });
  • #1966 521f760 Thanks @lixiaoyan! - Sortable plugins now accepts Customizable<Plugins>, allowing a function that receives the default plugins to extend them rather than replace them.

    This prevents accidentally losing the default Sortable plugins (SortableKeyboardPlugin, OptimisticSortingPlugin) when adding per-entity plugin configuration such as Feedback.configure().

    // Extend defaults
    useSortable({
      id: 'item',
      index: 0,
      plugins: (defaults) => [
        ...defaults,
        Feedback.configure({feedback: 'clone'}),
      ],
    });
    
    // Replace defaults (same behavior as before)
    useSortable({
      id: 'item',
      index: 0,
      plugins: [MyPlugin],
    });
  • #1938 c001272 Thanks @clauderic! - The DropAnimationFunction context now includes source, providing access to the draggable entity for conditional animation logic.

    Feedback.configure({
      dropAnimation: async (context) => {
        if (context.source.type === 'service-draggable') return;
        // custom animation...
      },
    });
  • #1923 cde61e4 Thanks @clauderic! - Batch entity identity changes to prevent collision oscillation during virtualized sorting.

    When entities swap ids (e.g. as react-window recycles DOM nodes during a drag), multiple registry updates could fire in an interleaved order, causing the collision detector to momentarily see stale or duplicate entries and oscillate between targets.

    Entity id changes are now deferred to a microtask and flushed atomically in a single batch(), ensuring:

    • The collision notifier skips detection while id changes are pending
    • The registry cleans up ghost registrations (stale keys left behind after an id swap)
  • #2001 78af13b Thanks @lixiaoyan! - Support a callback form for the feedback option in the Feedback plugin, allowing the feedback type to be chosen dynamically based on the source and manager context (e.g. activator type).

    Feedback.configure({
      feedback: (source, manager) => {
        return isKeyboardEvent(manager.dragOperation.activatorEvent)
          ? 'clone'
          : 'default';
      },
    });
  • #1908 1328af8 Thanks @clauderic! - Add keyboardTransition option to the Feedback plugin for customizing or disabling the CSS transition applied when moving elements via keyboard.

    By default, keyboard-driven moves animate with 250ms cubic-bezier(0.25, 1, 0.5, 1). You can now customize the duration and easing, or set the option to null to disable the transition entirely.

    Feedback.configure({
      keyboardTransition: {duration: 150, easing: 'ease-out'},
    });
  • #1919 bfff7de Thanks @clauderic! - The Feedback plugin now supports full CSS transform property for compatibility with libraries like react-window v2 that position elements via transforms. Transform-related CSS transitions are filtered out to prevent conflicts with Feedback-managed properties. The ResizeObserver computes shapes from CSS values rather than re-measuring the element, avoiding mid-transition measurement errors. Sortable's animate() cancels CSS transitions on transform-related properties before measuring to ensure correct FLIP deltas.

  • #1915 9b24dff Thanks @clauderic! - Redesign event type system to follow the DOM EventMap pattern. Introduces DragDropEventMap for event object types and DragDropEventHandlers for event handler signatures, replacing the ambiguously named DragDropEvents. Event type aliases (CollisionEvent, DragStartEvent, etc.) now derive directly from DragDropEventMap rather than using Parameters<> extraction.

    Migration guide

    • DragDropEvents has been split into two types:
      • DragDropEventMap — maps event names to event object types (like WindowEventMap)
      • DragDropEventHandlers — maps event names to (event, manager) => void handler signatures
    • If you were importing DragDropEvents to type event objects, use DragDropEventMap instead:
      // Before
      type MyEvent = Parameters<DragDropEvents<D, P, M>['dragend']>[0];
      // After
      type MyEvent = DragDropEventMap<D, P, M>['dragend'];
    • If you were importing DragDropEvents to type event handlers, use DragDropEventHandlers instead:
      // Before
      const handler: DragDropEvents<D, P, M>['dragend'] = (event, manager) => {};
      // After
      const handler: DragDropEventHandlers<D, P, M>['dragend'] = (
        event,
        manager
      ) => {};
    • The DragDropEvents re-export from @dnd-kit/react and @dnd-kit/solid has been removed. Import DragDropEventMap or DragDropEventHandlers from @dnd-kit/abstract directly if needed.
    • Convenience aliases (CollisionEvent, DragStartEvent, DragEndEvent, etc.) are unchanged and continue to work as before.
  • #1938 e69387d Thanks @clauderic! - Added per-entity plugin configuration and moved feedback from the Draggable entity to the Feedback plugin.

    Draggable entities now accept a plugins property for per-entity plugin configuration, using the existing Plugin.configure() pattern. Plugins can read per-entity options via source.pluginConfig(PluginClass).

    The feedback property ('default' | 'move' | 'clone' | 'none') has been moved from the Draggable entity to FeedbackOptions. Drop animation can also now be configured per-draggable.

    Plugins listed in an entity's plugins array are auto-registered on the manager if not already present. The Sortable class now uses this generic mechanism instead of its own custom registration logic.

    Migration guide

    The feedback property has been moved from the draggable/sortable hook input to per-entity Feedback plugin configuration.

    Before:

    import {FeedbackType} from '@dnd-kit/dom';
    
    useDraggable({id: 'item', feedback: 'clone'});
    useSortable({id: 'item', index: 0, feedback: 'clone'});

    After:

    import {Feedback} from '@dnd-kit/dom';
    
    useDraggable({
      id: 'item',
      plugins: [Feedback.configure({feedback: 'clone'})],
    });
    useSortable({
      id: 'item',
      index: 0,
      plugins: (defaults) => [
        ...defaults,
        Feedback.configure({feedback: 'clone'}),
      ],
    });

    Drop animation can now be configured per-draggable:

    useDraggable({
      id: 'item',
      plugins: [Feedback.configure({feedback: 'clone', dropAnimation: null})],
    });
  • #1905 11ff2eb Thanks @clauderic! - Renamed StyleSheetManager to StyleInjector and centralized CSP nonce configuration.

    The StyleInjector plugin now accepts a nonce option that is applied to all injected <style> elements. The nonce options have been removed from the Cursor, PreventSelection, and Feedback plugin options.

    Before:

    const manager = new DragDropManager({
      plugins: (defaults) => [
        ...defaults,
        Cursor.configure({nonce: 'abc123'}),
        PreventSelection.configure({nonce: 'abc123'}),
      ],
    });

    After:

    const manager = new DragDropManager({
      plugins: (defaults) => [
        ...defaults,
        StyleInjector.configure({nonce: 'abc123'}),
      ],
    });

    The Cursor and PreventSelection plugins now route their style injection through the StyleInjector, so all injected styles respect the centralized nonce configuration.

  • #1916 7489265 Thanks @clauderic! - Rewrite scrollIntoViewIfNeeded with manual offset calculations for correct behavior in nested scroll containers. The centerIfNeeded boolean parameter has been replaced with an options object accepting block and inline properties ('center', 'nearest', or 'none').

Patch Changes

  • #1918 4bc7e71 Thanks @clauderic! - Animation resolution now uses last-wins semantics matching CSS composite order. getFinalKeyframe returns the last matching keyframe across all running animations instead of short-circuiting on the first match. getProjectedTransform collects the latest value per CSS property (transform, translate, scale) rather than accumulating transforms additively.

  • #1948 532ae9b Thanks @clauderic! - Fix Feedback plugin placeholder not repositioning when siblings are moved around a stationary source element.

    When a VDOM framework (e.g., Preact, Vue) reorders sibling elements during a drag operation, the source element and placeholder may remain in the DOM but no longer be adjacent. The existing documentMutationObserver only handled cases where the source or placeholder itself was re-added to the DOM. This adds a fallback adjacency check after processing all mutation entries, ensuring the placeholder stays next to the source element regardless of how siblings are rearranged.

  • #1968 267c97c Thanks @clauderic! - Fix clone feedback placeholder dropping inline SVG children during mutation sync.

    The element mutation observer used innerHTML to sync child changes from the dragged element to its placeholder. This text-based serialization loses SVG namespace information, causing inline SVG elements (e.g. icon components) to be stripped from the placeholder. The placeholder then measures with incorrect dimensions, producing a misaligned drop animation.

    Replaced innerHTML with replaceChildren(...element.cloneNode(true).childNodes), which performs a namespace-aware deep clone.

  • #1987 462e435 Thanks @clauderic! - fix: resolve DTS build errors with TypeScript 5.9 on Node 20

    Add explicit return type annotations to avoid [dispose] serialization failures during declaration emit, and fix useRef readonly errors for React 19 type compatibility.

  • #1971 8fc1962 Thanks @clauderic! - Added LICENSE file to all published packages.

  • #1983 88d5ef9 Thanks @clauderic! - Fixed memory leak in Listeners class where the bind cleanup function did not remove entries from the internal entries set, causing detached DOM nodes to be retained in memory.

  • #1934 688e00f Thanks @clauderic! - Fixed setPointerCapture error on touch devices caused by stale pointer activation.

    When a touch was released during the activation delay and followed by a quick re-touch, the pending delay timer from the first touch could fire with a stale pointerId, causing setPointerCapture to throw. The PointerSensor now properly aborts the activation controller during cleanup to cancel pending delay timers, and defensively handles setPointerCapture failures.

  • #1953 cdaebff Thanks @ImBaedin! - Fix sortable type narrowing so isSortable(event.operation.source) narrows to a sortable draggable with access to initialIndex, and re-export the drag event type aliases from @dnd-kit/vue.

  • #1946 5a2ed80 Thanks @mattersj! - recalculate AutoScroller options in the effect to avoid stale data

  • Updated dependencies [cde61e4, a5935e0, 462e435, 9b24dff, 8fc1962, 8115a57, e69387d, 4e35963]:

    • @dnd-kit/abstract@0.4.0
    • @dnd-kit/collision@0.4.0
    • @dnd-kit/geometry@0.4.0
    • @dnd-kit/state@0.4.0

0.3.2

Patch Changes

  • #1903 7260746 Thanks @clauderic! - Fixed CSS cascade layer ordering so that the popover-reset styles injected by the Feedback plugin no longer override styles from CSS frameworks that use cascade layers (such as Tailwind CSS v4).

    The @layer block is now named dnd-kit and injected via a <style> element prepended to <head> for document roots, ensuring it is declared first in the cascade with the lowest priority. Shadow DOM roots continue to use adoptedStyleSheets.

    If needed, consumers can explicitly control the layer ordering:

    @layer dnd-kit, base, components, utilities;
  • Updated dependencies []:

    • @dnd-kit/abstract@0.3.2
    • @dnd-kit/collision@0.3.2
    • @dnd-kit/geometry@0.3.2
    • @dnd-kit/state@0.3.2

0.3.1

Patch Changes

  • Updated dependencies [4341114]:
    • @dnd-kit/abstract@0.3.1
    • @dnd-kit/collision@0.3.1
    • @dnd-kit/geometry@0.3.1
    • @dnd-kit/state@0.3.1

0.3.0

Minor Changes

  • 6a59647 Thanks @clauderic! - 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.

    // Add a plugin alongside the defaults
    const manager = new DragDropManager({
      plugins: (defaults) => [...defaults, MyPlugin],
    });
    // Configure a default plugin in React
    <DragDropProvider
      plugins={(defaults) => [
        ...defaults,
        Feedback.configure({dropAnimation: null}),
      ]}
    />

    Previously, passing plugins, sensors, or modifiers would replace the defaults entirely, requiring consumers to import and spread defaultPreset. The function form receives the default values as an argument, so consumers can add, remove, or configure individual entries without needing to know or maintain the full default list.

  • 68e44de Thanks @clauderic! - Add isSortableOperation type guard and export SortableDraggable/SortableDroppable types.

    isSortableOperation(operation) narrows a DragOperationSnapshot so that source is typed as SortableDraggable and target as SortableDroppable, providing typed access to sortable-specific properties like index, initialIndex, group, and initialGroup.

    Re-exported from all framework packages (@dnd-kit/react/sortable, @dnd-kit/vue/sortable, @dnd-kit/svelte/sortable, @dnd-kit/solid/sortable).

Patch Changes

  • 5d64078 Thanks @clauderic! - Add dropAnimation prop to the DragOverlay component to allow consumers to disable or customize the drop animation that plays when a drag operation ends. Set to null to disable, pass {duration, easing} to customize timing, or provide a custom animation function for full control.

  • 863ce2b Thanks @clauderic! - Fix auto-scroll trigger zones and boundaries during pinch-to-zoom.

    Updated getViewportBoundingRectangle, getVisibleBoundingRectangle, and getScrollPosition to use the Visual Viewport API, so that scroll detection and element visibility clipping are based on the actual visible area rather than the layout viewport. This fixes auto-scroll not triggering near the visible edges and stopping before reaching the end of scrollable content when the page is zoomed in.

  • 863ce2b Thanks @clauderic! - Fix drag overlay and debug overlay mispositioning in Safari during pinch-to-zoom.

    Safari anchors position: fixed elements to the visual viewport rather than the layout viewport during pinch-to-zoom. Added a getFixedPositionOffset() utility that compensates for this by adding visualViewport.offsetLeft/Top to the CSS left/top values of fixed-positioned overlays.

  • e8ae539 Thanks @clauderic! - Fix the move and swap helpers to support computed sortable IDs and optimistic sorting reconciliation for grouped records.

    When the ID-based lookup fails (e.g. when using computed IDs like id={\sortable-${item.id}`} that don't match data items), the helpers now fall back to sortable index properties (initialIndex, index, group, initialGroup) to determine the correct positions. Additionally, grouped records now support optimistic sorting reconciliation—when source.id === target.id` after optimistic sorting, the helpers use the sortable indices to determine the intended move.

    Added initialIndex, group, and initialGroup getters to SortableDraggable, and index and group getters to SortableDroppable, so these properties are accessible from the operation's source and target in drag events.

  • 41d7e27 Thanks @rjur11! - Fixed PointerSensor crash on Android caused by unhandled pointercancel events.

  • Updated dependencies [6a59647]:

    • @dnd-kit/abstract@0.3.0
    • @dnd-kit/collision@0.3.0
    • @dnd-kit/geometry@0.3.0
    • @dnd-kit/state@0.3.0

0.2.4

Patch Changes

  • #1874 de27fbc Thanks @clauderic! - Expose ergonomic type aliases for drag and drop event handlers: CollisionEvent, BeforeDragStartEvent, DragStartEvent, DragMoveEvent, DragOverEvent, and DragEndEvent. These types are re-exported from @dnd-kit/dom and @dnd-kit/react for convenience.

  • #1854 c2097c9 Thanks @du33169! - Fixed Feedback plugin style injection in Shadow DOM (fix #1765)

  • #1875 6d80680 Thanks @clauderic! - Feedback plugin: Fix table cell width handling during drag operations. Use getBoundingClientRect().width instead of offsetWidth for sub-pixel precision, and restore original cell widths after dragging ends instead of leaving hardcoded values permanently.

  • #1877 0923bc6 Thanks @clauderic! - Respect prefers-reduced-motion media query across all animations. When the user prefers reduced motion, the following animations are disabled:

    • Keyboard drag move transitions (250ms translate)
    • Drop animation (250ms slide-back)
    • Sortable item swap transitions (250ms position shift)
  • #1876 5f1b19a Thanks @clauderic! - Refactor the Feedback plugin for improved modularity and extensibility.

    StyleSheetManager – Introduced a new generic CorePlugin that manages CSS stylesheet injection into document and shadow roots. Plugins can call register(cssRules) to declare styles and addRoot(root) to track additional roots. The manager reactively injects and cleans up adopted stylesheets as the drag operation's source and target roots change. The Feedback plugin now delegates all stylesheet management to the StyleSheetManager.

    Configurable drop animation – The Feedback plugin now accepts a dropAnimation option:

    • Pass { duration, easing } to customize the built-in animation timing
    • Pass a function for full custom animation control (receives context, return a promise)
    • Pass null to disable the drop animation entirely
    • Omit for the default 250ms ease animation

    Extracted helpers – Observer setup (createElementMutationObserver, createDocumentMutationObserver, createResizeObserver) and the drop animation logic (runDropAnimation) are now in dedicated modules within the feedback plugin directory.

  • Updated dependencies [de27fbc, 256432d, be7cfe3]:

    • @dnd-kit/abstract@0.2.4
    • @dnd-kit/collision@0.2.4
    • @dnd-kit/geometry@0.2.4
    • @dnd-kit/state@0.2.4

0.2.3

Patch Changes

  • #1861 f90571d Thanks @xuxucode! - Fixed a bug where custom PointerSensor options passed to the bind() method were not being respected by the activationConstraints() method.

  • Updated dependencies []:

    • @dnd-kit/abstract@0.2.3
    • @dnd-kit/collision@0.2.3
    • @dnd-kit/geometry@0.2.3
    • @dnd-kit/state@0.2.3

0.2.2

Patch Changes

  • 5c80bcf Thanks @clauderic! - Fixed inverted preventActivation default option on KeyboardSensor

  • Updated dependencies []:

    • @dnd-kit/abstract@0.2.2
    • @dnd-kit/collision@0.2.2
    • @dnd-kit/geometry@0.2.2
    • @dnd-kit/state@0.2.2

0.2.1

Patch Changes

  • d7f4130 Thanks @clauderic! - - Fix a bug with PointerSensor.defaults.preventActivation not being applied if there are other sensor options provided.

  • Updated dependencies []:

    • @dnd-kit/abstract@0.2.1
    • @dnd-kit/collision@0.2.1
    • @dnd-kit/geometry@0.2.1
    • @dnd-kit/state@0.2.1

0.2.0

Minor Changes

  • #1821 e95a9c8 Thanks @clauderic! - - Refactor PointerSensor to use the new activation primitives.

    • Add PointerActivationConstraints with composable constraints:
      • PointerActivationConstraints.Delay({value, tolerance})
      • PointerActivationConstraints.Distance({value, tolerance?})
    • Update PointerSensor.defaults.activationConstraints(...):
      • Mouse on handle: activates immediately.
      • Touch: Delay 250ms with 5px tolerance.
      • Text inputs: Delay 200ms with 0px tolerance.
      • Other pointer types: Delay 200ms with 10px tolerance + Distance 5px.
    • New utilities:
      • getDocuments() returns all same-origin documents (enables listening across iframes).
      • getEventCoordinates(event) returns {x, y} from a PointerEvent.
    • PointerSensor now binds listeners across same-origin documents and improves default prevention during drag.
    • Internal cleanups: remove internal sensors/pointer/index.ts and utilities/execution-context/index.ts (no public API impact).

    These changes are additive and should be non-breaking. If you were composing pointer activation constraints, migrate to the new PointerActivationConstraints classes if you were importing internal implementations.

  • #1823 9849887 Thanks @github-actions! - - Add preventActivation option to PointerSensor and KeyboardSensor to conditionally prevent sensor activation.

    • PointerSensor: The default preventActivation prevents activation when the pointer target is an interactive element (input, select, textarea, button, link, or contenteditable) that is not the source element or handle.
    • KeyboardSensor: Renamed shouldActivate to preventActivation with inverted logic—return true to prevent activation instead of returning true to allow it.
    • New utility: isInteractiveElement(element) checks if an element is an interactive form control or link.

Patch Changes

  • Updated dependencies [e95a9c8]:
    • @dnd-kit/abstract@0.2.0
    • @dnd-kit/collision@0.2.0
    • @dnd-kit/geometry@0.2.0
    • @dnd-kit/state@0.2.0

0.1.21

Patch Changes

  • #1775 3d6219d Thanks @fpronto! - Added nonce as an option for every plugin that inject styles in html

  • Updated dependencies []:

    • @dnd-kit/abstract@0.1.21
    • @dnd-kit/collision@0.1.21
    • @dnd-kit/geometry@0.1.21
    • @dnd-kit/state@0.1.21

0.1.20

Patch Changes

0.1.19

Patch Changes

  • #1735 cc7feac Thanks @MateusJabour! - Fixes cleanup issue where user would be stuck in dragging mode

  • Updated dependencies [d848327]:

    • @dnd-kit/state@0.1.19
    • @dnd-kit/abstract@0.1.19
    • @dnd-kit/collision@0.1.19
    • @dnd-kit/geometry@0.1.19

0.1.18

Patch Changes

  • #1715 e502979 Thanks @github-actions! - Improved TypeScript generics for better type safety and flexibility

    • Enhanced DragDropManager to accept generic type parameters with proper constraints, allowing for more flexible type usage while maintaining type safety
    • Updated DragDropProvider to support custom generic types for draggable and droppable entities
    • Modified React hooks (useDragDropManager, useDragDropMonitor, useDragOperation) to properly infer and return the correct generic types
    • Changed from concrete Draggable and Droppable types to generic parameters constrained by Data type
  • 88942be Thanks @clauderic! - DOMRectangle: Fix bugs with projected transforms.

  • #1715 9326d43 Thanks @github-actions! - Feedback: Re-inject the feedback styles if they get removed from the DOM before the Feedback plugin is torn down.

  • #1715 7af261f Thanks @github-actions! - Feedback: Fix an issue that caused styles to be removed when another instance of the Feedback plugin was torn down even if other instances of the Feedback plugin are still active.

  • #1714 b9b182e Thanks @clauderic! - OptimisticSortingPlugin: Fixed a bug where using queueMicrotask in the dragover event of to check if event.defaultPrevented() was called by consumers was causing the order that we capture to be stale in the event that the consumer updates the order of sortable items before the micortask runs, which can happen in React for consumers using useOptimistic to update state optimistically.

  • #1715 bb790c9 Thanks @github-actions! - Feedback: Fix a regression with the drop animation on Safari.

  • Updated dependencies []:

    • @dnd-kit/abstract@0.1.18
    • @dnd-kit/collision@0.1.18
    • @dnd-kit/geometry@0.1.18
    • @dnd-kit/state@0.1.18

0.1.17

Patch Changes

  • cfb94d4 Thanks @clauderic! - Added a try / catch in showPopover and hidePopover as the element.matches(':popover-open') selector can throw in browsers that don't support the Popover API.

  • Updated dependencies []:

    • @dnd-kit/abstract@0.1.17
    • @dnd-kit/collision@0.1.17
    • @dnd-kit/geometry@0.1.17
    • @dnd-kit/state@0.1.17

0.1.16

Patch Changes

  • #1712 93911cc Thanks @github-actions! - Debug: Force the source debug elements to be re-promoted to the top of the top layer.

  • #1712 0f68bb6 Thanks @github-actions! - Feedback: Account for frame scale when optimistically updating feedback element shape while dragging.

  • Updated dependencies []:

    • @dnd-kit/abstract@0.1.16
    • @dnd-kit/collision@0.1.16
    • @dnd-kit/geometry@0.1.16
    • @dnd-kit/state@0.1.16

0.1.15

Patch Changes

  • 5539a5a Thanks @clauderic! - Mock ResizeObserver in SSR environment.

  • Updated dependencies []:

    • @dnd-kit/abstract@0.1.15
    • @dnd-kit/collision@0.1.15
    • @dnd-kit/geometry@0.1.15
    • @dnd-kit/state@0.1.15

0.1.14

Patch Changes

  • #1708 4c1e05d Thanks @GuillaumeSalles! - Ensure PositionObserver recompute element rect if IntersectionObserver is scheduled in a different frame

  • #1707 a97b10c Thanks @github-actions! - Feedback:

    • Fixed a bug where the initial translate string was incorrectly formed, causing it not to be applied.
    • Fixed a bug with the placeholder ResizeObserver shape update
    • Fixed a bug with the initial shape of the Feedback element when the source element unmounts and re-mounts during a drag operation
    • Fixed a bug with the initial transition when setting up the Feedback element
  • #1707 caa3273 Thanks @github-actions! - PositionObserver: Fixed a bug with observing elements contained within same origin iframes. Due to limitations with IntersectionObserver, we need to also attach position observers on the containing iframe to ensure the position of elements nested withing the iframe is updated if the iframe position changes.

  • #1707 cb47da3 Thanks @github-actions! - DOMRectangle: Fixed a bug with projected transforms where scale was not properly being taken into account.

  • #1707 f295344 Thanks @github-actions! - KeyboardSensor: Delegated the responsibility of ending the drag operation when the window resizes to the Feedback plugin, as we only need to end the operation if the feedback element's window resizes, which can be different from the source element window.

  • Updated dependencies []:

    • @dnd-kit/abstract@0.1.14
    • @dnd-kit/collision@0.1.14
    • @dnd-kit/geometry@0.1.14
    • @dnd-kit/state@0.1.14

0.1.13

Patch Changes

  • c46415a Thanks @clauderic! - Feedback: Removed box-sizing: border-box from the default Feedback plugin styles, and account for box-sizing: content-box or box-sizing: border-box when setting an explicit wdith and height on the feedback element.

  • #1691 382f4e2 Thanks @github-actions! - Accessiblity: Fixed a bug where accesibility instructions and announcement nodes were re-created on every drag operation.

  • #1691 432a0dd Thanks @github-actions! - Feedback: Fix a bug where options were not properly being set on the plugin instance.

  • #1689 a3496c1 Thanks @GuillaumeSalles! - Ensure showPopover is not called when popover is already visible

  • #1691 4a22b39 Thanks @github-actions! - PointerSensor: Update default activation constraints to only allow dragging via the delay constraint when the activation event target is a text input to avoid interfering with potential text selections within the text input.

  • Updated dependencies []:

    • @dnd-kit/abstract@0.1.13
    • @dnd-kit/collision@0.1.13
    • @dnd-kit/geometry@0.1.13
    • @dnd-kit/state@0.1.13

0.1.12

Patch Changes

  • 2e0e2e2 Thanks @clauderic! - Exported Cursor and PreventSelection plugins which are used in the default preset.

  • #1687 b86867b Thanks @github-actions! - Added visibility: hidden to the ::backdrop pseudo element of the Feedback plugin to ensure it is not visible on Firefox, there is a bug where it can be shown even with display: none when there is a backdrop filter applied to it.

  • #1687 a913f5e Thanks @github-actions! - Fix calls to requestAnimationFrame scheduler in SSR environment

  • Updated dependencies []:

    • @dnd-kit/abstract@0.1.12
    • @dnd-kit/collision@0.1.12
    • @dnd-kit/geometry@0.1.12
    • @dnd-kit/state@0.1.12

0.1.11

Patch Changes

  • #1685 2370665 Thanks @clauderic! - Minimize layout thrashing in Scroller and Accessibility plugins.

  • Updated dependencies []:

    • @dnd-kit/abstract@0.1.11
    • @dnd-kit/collision@0.1.11
    • @dnd-kit/geometry@0.1.11
    • @dnd-kit/state@0.1.11

0.1.10

Patch Changes

  • a0f5c44 Thanks @clauderic! - Feedback: Optimistically update dragOperation.shape when there are no modifiers for better performance.

  • Updated dependencies []:

    • @dnd-kit/abstract@0.1.10
    • @dnd-kit/collision@0.1.10
    • @dnd-kit/geometry@0.1.10
    • @dnd-kit/state@0.1.10

0.1.9

Patch Changes

  • ffdbf52 Thanks @clauderic! - Feedback: Revert moving CSS variables to the root as we noticed performance regressions in applications that have complex DOM structures.

  • Updated dependencies []:

    • @dnd-kit/abstract@0.1.9
    • @dnd-kit/collision@0.1.9
    • @dnd-kit/geometry@0.1.9
    • @dnd-kit/state@0.1.9

0.1.8

Patch Changes

  • #1681 14dc059 Thanks @github-actions! - Cache repeated calls to getComputedStyles when reading properties that are unlikely to change frequently.

  • fcd9bb5 Thanks @clauderic! - Moved the CSS variables to the [data-dnd-root] element, which defaults to the document.body of the source element to avoid triggering MutationObserver callbacks every time the --dnd-translate CSS variable is updated.

  • #1681 93d3c7c Thanks @github-actions! - Replace innerText with textContent for better performance across multiple plugins. This change improves performance since textContent is generally more efficient than innerText as it doesn't trigger layout reflows and doesn't parse HTML entities.

  • 3c625d6 Thanks @clauderic! - Do not use cache when getting element animations to compute projected transforms.

  • Updated dependencies []:

    • @dnd-kit/abstract@0.1.8
    • @dnd-kit/collision@0.1.8
    • @dnd-kit/geometry@0.1.8
    • @dnd-kit/state@0.1.8

0.1.7

Patch Changes

  • 0618852 Thanks @clauderic! - Fix a regression with horizontal auto-scrolling.

  • Updated dependencies []:

    • @dnd-kit/abstract@0.1.7
    • @dnd-kit/collision@0.1.7
    • @dnd-kit/geometry@0.1.7
    • @dnd-kit/state@0.1.7

0.1.6

Patch Changes

  • #1671 4f49d1b Thanks @github-actions! - Improve animation handling and scheduling

    • Refactor Scheduler to be more flexible and generic
    • Cache successive document.getAnimations() calls
    • Fix bugs in Safari when projecting animations in DOMRectangle
    • Fix animation handling in Feedback and Sortable components
  • #1672 b18115f Thanks @GuillaumeSalles! - Improve Feedback clone performance by avoiding innerHtml reset on every mutation

  • #1671 ac13c92 Thanks @github-actions! - Optimize pointer move handling in PointerSensor by using the rAF scheduler to batch move events.

  • Updated dependencies [7ceb799, 299389b]:

    • @dnd-kit/abstract@0.1.6
    • @dnd-kit/state@0.1.6
    • @dnd-kit/collision@0.1.6
    • @dnd-kit/geometry@0.1.6

0.1.5

Patch Changes

  • #1669 8fecc41 Thanks @github-actions! - PointerSensor: Add support for multiple activator elements via activatorElements option to configure multiple elements that can trigger drag operations.

  • #1669 a9c17df Thanks @github-actions! - Fix Feedback drop animation in Safari by always requesting an animation frame before performing the drop animation.

  • #1669 f31589a Thanks @github-actions! - KeyboardSensor: Improve configuration options

    • Add configurable offset for keyboard movements (number or {x, y})
    • Add static defaults and configure properties for better configuration
    • Support different x and y offset values for offset
  • #1669 616db17 Thanks @github-actions! - Refactor PointerSensor configuration:

    • Partially configuring the pointer sensor no longer overrides other defaults. If you wish to override all defaults, you must explicitly set each option.
    • Moved default pointer sensor configuration into to PointerSensor class.
    • Add static defaults property to PointerSensor class for easier configuration and extension.
  • Updated dependencies []:

    • @dnd-kit/abstract@0.1.5
    • @dnd-kit/collision@0.1.5
    • @dnd-kit/geometry@0.1.5
    • @dnd-kit/state@0.1.5

0.1.4

Patch Changes

  • b1d798d Thanks @clauderic! - Fixed regressions with keyboard sorting.

  • Updated dependencies []:

    • @dnd-kit/abstract@0.1.4
    • @dnd-kit/collision@0.1.4
    • @dnd-kit/geometry@0.1.4
    • @dnd-kit/state@0.1.4

0.1.3

Patch Changes

  • #1663 6c9a9ea Thanks @github-actions! - PointerSensor: Fixed a bug where actions.stop() would not be invoked if the drag operation had not finished initializing.

  • #1663 79c6519 Thanks @github-actions! - Fix tracking of initial index and group for Sortable instances that unmount and re-mount during a drag operation.

  • #1663 52c1ba3 Thanks @github-actions! - Implement default renderer for DOM using requestAnimationFrame to ensure the browser has time to render animation frames.

  • #1663 1bef872 Thanks @github-actions! - Improve drag operation control by:

    • Introducing AbortController for better operation lifecycle management
    • Remove requestAnimationFram() from start() action
    • Replacing boolean returns with proper abort control
    • Ensure proper cleanup of drag operations
    • Improving status handling and initialization checks
    • Making feedback plugin respect operation initialization state
  • #1663 9a0edf6 Thanks @github-actions! - Refactor Sortable store implementation to use a new WeakStore class

    • Add new WeakStore constructor in @dnd-kit/state package
    • Replace Map-based store implementation in Sortable with new WeakStore utility
  • #1663 18a7998 Thanks @github-actions! - Removed unnecessary microtask in Sortable animation logic when index changes

  • Updated dependencies [8f91d91, 6c9a9ea, 1bef872, 2522836, 9a0edf6, a9db4c7]:

    • @dnd-kit/state@0.1.3
    • @dnd-kit/abstract@0.1.3
    • @dnd-kit/geometry@0.1.3
    • @dnd-kit/collision@0.1.3

0.1.2

Patch Changes

  • #1658 4682570 Thanks @github-actions! - Fix handling of aborted drag operations across sensors. The start method now returns a boolean to indicate whether the operation was aborted, allowing sensors to properly clean up when a drag operation is prevented. This affects the Keyboard and Pointer sensors, ensuring they properly handle cases where beforeDragStart events are prevented.

  • #1658 f8d69b0 Thanks @github-actions! - Allow actions.start() to optionally receive a source as input.

  • #1658 ee55f58 Thanks @github-actions! - Refactor the drag operation system to improve code organization and maintainability:

    • Split dragOperation.ts into multiple focused files:
      • operation.ts - Core drag operation logic
      • status.ts - Status management
      • actions.ts - Drag actions
    • Update imports and exports to reflect new file structure
    • Improve type definitions and exports
  • #1660 374f81f Thanks @GuillaumeSalles! - Add option shouldActivate on KeyboardSensor. By default KeyboardSensor activates if the Keyboard event is triggered from the Draggable element or handle. shouldActivate let the user override this behavior.

  • Updated dependencies [ee55f58, 4682570, f8d69b0, d04e9a2, ee55f58]:

    • @dnd-kit/state@0.1.2
    • @dnd-kit/geometry@0.1.2
    • @dnd-kit/abstract@0.1.2
    • @dnd-kit/collision@0.1.2

0.1.1

Patch Changes

  • #1656 569b6e3 Thanks @github-actions! - Export SortableKeyboardPlugin and OptimisticSortingPlugin from the sortable module to allow consumers to customize their sortable plugin configurations.

  • #1655 a176848 Thanks @blancham! - Fixed a bug where auto-scroll does not wotk with inverted element

  • Updated dependencies [f13cbc9]:

    • @dnd-kit/abstract@0.1.1
    • @dnd-kit/collision@0.1.1
    • @dnd-kit/geometry@0.1.1
    • @dnd-kit/state@0.1.1

0.1.0

Patch Changes

  • #1645 043c280 Thanks @clauderic! - Add fallback logic to type-guards when instance checks fail to identify instances, for example to test if an element is an Element or HTMLElement or SVGElement, or if an AnimationEffect is a KeyframeEffect.

  • #1644 ee40aac Thanks @github-actions! - Feedback: Use revert instead of unset to reset styles applied by the popover attribute.

  • #1643 635d94f Thanks @clauderic! - Fix a bug in the Scroller plugin that would always use document.getElementFromPoint instead of the document of the source element.

  • #1644 0235cef Thanks @github-actions! - Cursor: Ensure styles for Cursor plugin are added to the document of the draggable source element.

  • #1644 1ba8700 Thanks @github-actions! - Fixed a bug in the getDocument helper to make it work with SVG elements.

  • #1644 3080d2c Thanks @github-actions! - Feedback: Set popover attribute value to manual.

  • Updated dependencies [00a33c9]:

    • @dnd-kit/abstract@0.1.0
    • @dnd-kit/collision@0.1.0
    • @dnd-kit/geometry@0.1.0
    • @dnd-kit/state@0.1.0

0.0.10

Patch Changes

  • #1606 2c53eb9 Thanks @github-actions! - Use the draggable.isDragging property instead of draggable.isDragSource to set aria-grabbing and aria-pressed attributes.

  • #1606 3155941 Thanks @github-actions! - Fixed a bug with the Feedback plugin where the placeholder element was visible for a brief moment during the drop animation instead of being hidden until the animation completes.

  • #1606 082836e Thanks @github-actions! - Fixed a bug with the PointerSensor where it was possible for it to activate while a drag operation was already in progress.

  • Updated dependencies []:

    • @dnd-kit/abstract@0.0.10
    • @dnd-kit/collision@0.0.10
    • @dnd-kit/geometry@0.0.10
    • @dnd-kit/state@0.0.10

0.0.9

Patch Changes

  • #1600 e36d954 Thanks @github-actions! - Added nativeEvent property to dragstart, dragmove and dragend events. This can be used to distinguish user triggered events from sensor triggered events, as user or plugin triggered events will typically not have an associated event attached.

  • #1600 bb4abcd Thanks @github-actions! - Make sure the Feedback element is promoted to the top layer when synchronizing the placeholder and element position in the DOM.

  • #1600 d86bbc7 Thanks @github-actions! - Added alignment configuration option to draggable instances to let consumers decide how to align the draggable during the drop animation and while keyboard sorting. Defaults to the center of the target shape.

  • #1600 f433fb2 Thanks @github-actions! - Fixed a regression in the Feedback plugin where the initial translate style applied to the element being dragged was not properly accounted for anymore.

  • #1600 7dc0103 Thanks @github-actions! - Removed some !important rules and updated the specificity of the Feedback plugin styles to 0-2-0 to make it easier for consumers to override certain styles, such as width and height.

  • cff3c3c Thanks @clauderic! - Fixed a bug with the drop animation by using intrinsicWidth and intrinsicHeight to determine if the width and height of the source and target differ or not rather than the width and height properties which may be transformed.

  • #1600 f87d633 Thanks @github-actions! - Fixed a regression introduced in 0.0.7 with optimistic updates not being persisted on drag end.

  • 860759b Thanks @clauderic! - Added intrinsicWidth and intrinsicHeight properties on DOMRectangle, which return the intrinsic width and height of an element, before any transforms are applied.

  • #1600 54e416f Thanks @github-actions! - Only handle dragmove events that have an associated KeyboardEvent as their event.nativeEvent property.

  • #1600 c51778d Thanks @github-actions! - PointerSensor: Use capture listener to prevent dragstart events.

  • #1600 86ed6c8 Thanks @github-actions! - Fixed a regression in the PointerSensor where the same drag operation could fire a dragend event twice due to a race condition between pointerup and lostpointercapture.

  • #1600 afedea9 Thanks @github-actions! - PreventSelection: Remove text selection when a drag operation is initialized.

  • Updated dependencies [e36d954, 60e7297, 3463da1, b7f1cf8, 3e629cc, 8ae7014, ce31da7]:

    • @dnd-kit/abstract@0.0.9
    • @dnd-kit/geometry@0.0.9
    • @dnd-kit/collision@0.0.9
    • @dnd-kit/state@0.0.9

0.0.8

Patch Changes

  • #1598 0de7456 Thanks @github-actions! - Moved styles that override the default user agent styles for [popover] into a CSS layer to avoid overriding other layered styles on the page, such as Tailwind 4.

  • #1598 c9716cf Thanks @github-actions! - Added isDragging and isDropping properties to draggable and sortable instances.

  • #1598 74eedef Thanks @github-actions! - PointerSensor

    • End drag operation if lostpointercapture event is fired and the drag operation has not ended already. This can happen if the pointerup event is fired in a different frame.
    • Prevent contextmenu from opening during a drag operation.
  • #1598 42e7256 Thanks @github-actions! - - Fixed an invalid CSS selector in the PreventSelection plugin

    • Removed logic to prevent user selection in Feedback plugin (defer to PreventSelection plugin to handle this)
  • Updated dependencies [c9716cf, 3ea0d31, 3cf4db1]:

    • @dnd-kit/abstract@0.0.8
    • @dnd-kit/collision@0.0.8
    • @dnd-kit/geometry@0.0.8
    • @dnd-kit/state@0.0.8

0.0.7

Patch Changes

  • #1592 550a868 Thanks @github-actions! - Added aria-grabbed to the list of attributes added by the Accessibility plugin.

    Setting aria-grabbed to true indicates that the element has been selected for dragging. Setting aria-grabbed to false indicates that the element can be grabbed for a drag-and-drop operation, but is not currently grabbed.

    While the aria-grabbed attribute has been deprecated in ARIA 1.1, in practice, since the accessibility API features for accessible drag and drop still don’t exist and likely won’t for several years, these attributes will continue to be supported by browsers and reflected in the accessibility tree for some years to come until a new API is introduced to replace it.

  • #1592 75e23b6 Thanks @github-actions! - Added aria-grabbed and aria-pressed to the list of attributes that are not synchronized between the draggable element and its placeholder.

  • #1592 cef9b46 Thanks @github-actions! - Fix global modifiers set on DragDropManager / <DragDropProvider> being destroyed after the first drag operation.

  • #1592 730064b Thanks @github-actions! - Fix incorrect type for modifiers.

  • #1592 808f184 Thanks @github-actions! - Fix reconciliation of optimistic updates in move helper.

  • #1592 c4e7a7c Thanks @github-actions! - Fixed positioning of Feedback plugin when direction is set to rtl.

  • #1592 280b7e2 Thanks @github-actions! - Fixed stale modifiers when using useSortable.

  • #1592 84b75fc Thanks @github-actions! - Fixed element not being set on initialization of Sortable instance even if an element was provided as input.

  • Updated dependencies [c1dadef, cef9b46]:

    • @dnd-kit/abstract@0.0.7
    • @dnd-kit/collision@0.0.7
    • @dnd-kit/geometry@0.0.7
    • @dnd-kit/state@0.0.7

0.0.6

Patch Changes

  • #1567 081b7f2 Thanks @chrisvxd! - Add source maps to output.

  • #1499 d436037 Thanks @chrisvxd! - Fix a bug that prevented all unique droppables that share an element from each receiving the cloned proxy.

  • #1454 94920c8 Thanks @github-actions! - Batch write operations to draggable and droppable. Also ensured that droppable instance is registered before draggable instance.

  • #1454 a04d3f8 Thanks @github-actions! - Rework how collisions are detected and how the position of elements is observed using a new PositionObserver.

  • #1454 0676276 Thanks @github-actions! - Children contained in a closed details element are no longer treated as visible.

  • #1454 8053e4b Thanks @github-actions! - Allow Sortable to have a distinct element from the underlying source and target elements. This can be useful if you want the collision detection to operate on a subset of the sortable element, but the entirety of the element to move when its index changes.

  • #1454 f400106 Thanks @github-actions! - Improve the Feedback plugin to better handle when the feedback element resizes during a drag operation.

  • #1454 c597b3f Thanks @github-actions! - Introduce rootElement option on Feedback plugin.

  • #1454 a9798f4 Thanks @github-actions! - Fix issues with instanceof checks in cross-window environments where the window of an element can differ from the execution context window.

  • #1454 e70b29a Thanks @github-actions! - Make sure the generic for DragDropManager is passed through to Entity so that the manager reference on classes extending Entity is strongly typed.

  • #1454 3d0b00a Thanks @github-actions! - Fix an issue where we would update the shape of sortable items while the drag operation status was idle.

  • #1454 e6a8e01 Thanks @github-actions! - Fix a bug with event.preventDefault() and event.stopPropagation() being called on pointer up even if there was no drag operation in progress, which would prevent interactive elements such as buttons from being clicked.

  • #1454 7ef9864 Thanks @github-actions! - Fixed bugs with the OptimisticSortingPlugin when sorting across different groups.

  • #1454 51be6df Thanks @github-actions! - Fix element not being set when provided on initialization of Droppable

  • #1454 fe76033 Thanks @github-actions! - Fixed a bug in the KeyboardSensor that would cause the sensor to activate when focusing elements within the sortable element other than the handle.

  • #1454 62a8118 Thanks @github-actions! - Added Tab to the list of default keycodes that end the current drag operation.

  • #1454 0c7bf85 Thanks @github-actions! - Allow the OptimisticSortingPlugin to sort elements across different groups.

  • #1454 f219549 Thanks @github-actions! - Fix pointer events no longer being detected by the PointerSensor when the event target is disconnected from the DOM by setting pointer capture on the document body for pointermove events.

  • #1454 bfc8ab2 Thanks @github-actions! - PointerSensor: Defer invoking setPointerCapture until activation constraints are met as it can interfere with click and other event handlers. Also deferred adding touchmove, click and keydown event listeners until the activation constraints are met.

  • #1454 a5a556a Thanks @github-actions! - Fixed React lifecycle regressions related to StrictMode.

  • #1454 b5edff1 Thanks @github-actions! - Remove event.stopImmediatePropagation() in PointerSensor and replace with a different strategy to prevent other instances of PointerSensor from tracking an event that was already captured by another sensor.

  • #1454 3fb972e Thanks @github-actions! - AccessibilityPlugin: Force tabindex="0" in Safari even for natively focusable elements as they are not always focusable by default.

  • #1454 5b36f8f Thanks @github-actions! - Allow sortable animations when changing to a different group even when the index remains the same.

  • #1454 69bfad7 Thanks @github-actions! - SortableKeyboardPlugin: Use closestCorners collision detection algorithm instead of closestCenter when keyboard sorting.

  • #1517 c42a11b Thanks @clauderic! - Support dragging across same-origin iframes.

  • Updated dependencies [984b5ab, 081b7f2, 69bfad7, a04d3f8, a8542de, f7458d9, b750c05, e70b29a, 4d1a030, a6366f9, a5933d8, a5a556a, 96f28ef, 71dc39f]:

    • @dnd-kit/abstract@0.0.6
    • @dnd-kit/collision@0.0.6
    • @dnd-kit/geometry@0.0.6
    • @dnd-kit/state@0.0.6

0.0.5

Patch Changes

  • Updated dependencies [e9be505]:
    • @dnd-kit/abstract@0.0.5
    • @dnd-kit/collision@0.0.5
    • @dnd-kit/geometry@0.0.5
    • @dnd-kit/state@0.0.5

0.0.4

Patch Changes

  • #1443 2ccc27c Thanks @clauderic! - Added status property to draggable instances to know the current status of a draggable instance. Useful to know if an instance is being dropped.

  • #1443 1b9df29 Thanks @clauderic! - Force pointer events on children of the feedback element to none.

  • #1443 4dbcb1c Thanks @clauderic! - Fix bugs with PointerSensor when interacting with anchor or image elements.

  • #1443 e0d80f5 Thanks @clauderic! - Refactor the lifecycle to allow manager to be optional and provided later during the lifecycle of draggable / droppable / sortable instances.

  • #1443 794cf2f Thanks @clauderic! - Removed options and options.register from Entity base class. Passing an undefined manager when instantiating Draggable and Droppable now has the same effect.

  • Updated dependencies [2ccc27c, a4d9150, e0d80f5, 794cf2f]:

    • @dnd-kit/abstract@0.0.4
    • @dnd-kit/state@0.0.4
    • @dnd-kit/collision@0.0.4
    • @dnd-kit/geometry@0.0.4

0.0.3

Patch Changes

  • 8530c12 Thanks @clauderic! - Fixed lifecycle related issues.

  • #1440 8e45c2a Thanks @clauderic! - Better handling of elements that have transform or translate applied. The Feedback and Sortable plugins now no longer need to ignore transforms as the DOMRectangle can compute the projected final coordinates of an element that has transforms applied even if it is currently being animated by looking at the last animation keyframe.

  • Updated dependencies [5ccd5e6, 886de33]:

    • @dnd-kit/abstract@0.0.3
    • @dnd-kit/collision@0.0.3
    • @dnd-kit/geometry@0.0.3
    • @dnd-kit/state@0.0.3

0.0.2

Patch Changes

  • #1430 6c84308 Thanks @clauderic! - - Sortable: Fixed a bug with optimistic re-ordering.

    • Scroller: Fixed a bug with auto-scrolling when target is position fixed
  • #1430 d273f70 Thanks @clauderic! - - Feedback: Fixed a bug with transitions being interrupted on drop when the draggable element has not been moved.

  • #1430 34c6fdc Thanks @clauderic! - - AutoScroller: Improve auto-scroller to continue scrolling even when outside the bounds of the element currently being scrolled.

  • #1430 2c3ad5e Thanks @clauderic! - - Feedback: Only restore focus after drop if the activatorEvent is a keyboard event.

  • Updated dependencies [6c84308]:

    • @dnd-kit/state@0.0.2
    • @dnd-kit/abstract@0.0.2
    • @dnd-kit/geometry@0.0.2
    • @dnd-kit/collision@0.0.2