@dnd-kit/react 0.5.1-beta-20260713030121 → 0.5.1-beta-20260905201412

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dnd-kit/react",
3
- "version": "0.5.1-beta-20260713030121",
3
+ "version": "0.5.1-beta-20260905201412",
4
4
  "main": "./index.cjs",
5
5
  "module": "./index.js",
6
6
  "type": "module",
@@ -64,9 +64,9 @@
64
64
  "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist"
65
65
  },
66
66
  "dependencies": {
67
- "@dnd-kit/abstract": "0.5.1-beta-20260713030121",
68
- "@dnd-kit/dom": "0.5.1-beta-20260713030121",
69
- "@dnd-kit/state": "0.5.1-beta-20260713030121",
67
+ "@dnd-kit/abstract": "0.5.1-beta-20260905201412",
68
+ "@dnd-kit/dom": "0.5.1-beta-20260905201412",
69
+ "@dnd-kit/state": "0.5.1-beta-20260905201412",
70
70
  "tslib": "^2.6.2"
71
71
  },
72
72
  "peerDependencies": {
package/sortable.cjs CHANGED
@@ -44,7 +44,7 @@ function useSortable(input) {
44
44
  type,
45
45
  plugins
46
46
  } = input;
47
- const transition = __spreadValues(__spreadValues({}, sortable.defaultSortableTransition), input.transition);
47
+ const transition = sortable.resolveSortableTransition(input.transition);
48
48
  const sortable$1 = react.useInstance((manager) => {
49
49
  return new sortable.Sortable(
50
50
  __spreadProps(__spreadValues({}, input), {
package/sortable.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["src/sortable/useSortable.ts"],"names":["defaultSortableTransition","sortable","useInstance","Sortable","currentValue","useDeepSignal","useOnValueChange","useIsomorphicLayoutEffect","batch","deepEqual","immediateEffect","useOnElementChange","handle","element","target","useCallback"],"mappings":"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","file":"sortable.cjs","sourcesContent":["import {useCallback} from 'react';\nimport {batch, deepEqual} from '@dnd-kit/state';\nimport {type Data} from '@dnd-kit/abstract';\nimport {Sortable, defaultSortableTransition} from '@dnd-kit/dom/sortable';\nimport type {SortableInput} from '@dnd-kit/dom/sortable';\nimport {useInstance} from '@dnd-kit/react';\nimport {\n useImmediateEffect as immediateEffect,\n useIsomorphicLayoutEffect,\n useOnValueChange,\n useOnElementChange,\n useDeepSignal,\n} from '@dnd-kit/react/hooks';\nimport {currentValue, type RefOrValue} from '@dnd-kit/react/utilities';\n\nexport interface UseSortableInput<T extends Data = Data>\n extends Omit<SortableInput<T>, 'handle' | 'element' | 'target'> {\n handle?: RefOrValue<Element>;\n element?: RefOrValue<Element>;\n target?: RefOrValue<Element>;\n}\n\nexport function useSortable<T extends Data = Data>(input: UseSortableInput<T>) {\n const {\n accept,\n collisionDetector,\n collisionPriority,\n id,\n data,\n element,\n handle,\n index,\n group,\n disabled,\n modifiers,\n sensors,\n target,\n type,\n plugins,\n } = input;\n const transition = {...defaultSortableTransition, ...input.transition};\n const sortable = useInstance((manager) => {\n return new Sortable(\n {\n ...input,\n transition,\n register: false,\n handle: currentValue(handle),\n element: currentValue(element),\n target: currentValue(target),\n },\n manager\n );\n });\n\n const trackedSortable = useDeepSignal(sortable, shouldUpdateSynchronously);\n\n useOnValueChange(id, () => (sortable.id = id));\n\n useIsomorphicLayoutEffect(() => {\n batch(() => {\n sortable.group = group;\n sortable.index = index;\n });\n }, [sortable, group, index]);\n\n useOnValueChange(type, () => (sortable.type = type));\n useOnValueChange(\n accept,\n () => (sortable.accept = accept),\n undefined,\n deepEqual\n );\n useOnValueChange(data, () => data && (sortable.data = data));\n useOnValueChange(\n index,\n () => {\n if (sortable.manager?.dragOperation.status.idle && transition?.idle) {\n sortable.refreshShape();\n }\n },\n immediateEffect\n );\n useOnElementChange(handle, (handle) => (sortable.handle = handle));\n useOnElementChange(element, (element) => (sortable.element = element));\n useOnElementChange(target, (target) => (sortable.target = target));\n useOnValueChange(\n disabled,\n () => (sortable.disabled = disabled ?? false),\n undefined,\n deepEqual\n );\n useOnValueChange(\n sensors,\n () => (sortable.sensors = sensors),\n undefined,\n deepEqual\n );\n useOnValueChange(\n collisionDetector,\n () => (sortable.collisionDetector = collisionDetector)\n );\n useOnValueChange(\n collisionPriority,\n () => (sortable.collisionPriority = collisionPriority)\n );\n useOnValueChange(\n plugins,\n () => (sortable.plugins = plugins),\n undefined,\n deepEqual\n );\n useOnValueChange(\n transition,\n () => (sortable.transition = transition),\n undefined,\n deepEqual\n );\n useOnValueChange(\n modifiers,\n () => (sortable.modifiers = modifiers),\n undefined,\n deepEqual\n );\n useOnValueChange(\n input.alignment,\n () => (sortable.alignment = input.alignment)\n );\n\n return {\n sortable: trackedSortable,\n get isDragging() {\n return trackedSortable.isDragging;\n },\n get isDropping() {\n return trackedSortable.isDropping;\n },\n get isDragSource() {\n return trackedSortable.isDragSource;\n },\n get isDropTarget() {\n return trackedSortable.isDropTarget;\n },\n handleRef: useCallback(\n (element: Element | null) => {\n sortable.handle = element ?? undefined;\n },\n [sortable]\n ),\n ref: useCallback(\n (element: Element | null) => {\n if (\n !element &&\n sortable.element?.isConnected &&\n !sortable.manager?.dragOperation.status.idle\n ) {\n return;\n }\n\n sortable.element = element ?? undefined;\n },\n [sortable]\n ),\n sourceRef: useCallback(\n (element: Element | null) => {\n if (\n !element &&\n sortable.source?.isConnected &&\n !sortable.manager?.dragOperation.status.idle\n ) {\n return;\n }\n\n sortable.source = element ?? undefined;\n },\n [sortable]\n ),\n targetRef: useCallback(\n (element: Element | null) => {\n if (\n !element &&\n sortable.target?.isConnected &&\n !sortable.manager?.dragOperation.status.idle\n ) {\n return;\n }\n\n sortable.target = element ?? undefined;\n },\n [sortable]\n ),\n };\n}\n\nfunction shouldUpdateSynchronously(key: string, oldValue: any, newValue: any) {\n // Update synchronously after drop animation\n if (key === 'isDragSource' && !newValue && oldValue) return true;\n\n return false;\n}\n"]}
1
+ {"version":3,"sources":["src/sortable/useSortable.ts"],"names":["resolveSortableTransition","sortable","useInstance","Sortable","currentValue","useDeepSignal","useOnValueChange","useIsomorphicLayoutEffect","batch","deepEqual","immediateEffect","useOnElementChange","handle","element","target","useCallback"],"mappings":"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","file":"sortable.cjs","sourcesContent":["import {useCallback} from 'react';\nimport {batch, deepEqual} from '@dnd-kit/state';\nimport {type Data} from '@dnd-kit/abstract';\nimport {Sortable, resolveSortableTransition} from '@dnd-kit/dom/sortable';\nimport type {SortableInput} from '@dnd-kit/dom/sortable';\nimport {useInstance} from '@dnd-kit/react';\nimport {\n useImmediateEffect as immediateEffect,\n useIsomorphicLayoutEffect,\n useOnValueChange,\n useOnElementChange,\n useDeepSignal,\n} from '@dnd-kit/react/hooks';\nimport {currentValue, type RefOrValue} from '@dnd-kit/react/utilities';\n\nexport interface UseSortableInput<T extends Data = Data>\n extends Omit<SortableInput<T>, 'handle' | 'element' | 'target'> {\n handle?: RefOrValue<Element>;\n element?: RefOrValue<Element>;\n target?: RefOrValue<Element>;\n}\n\nexport function useSortable<T extends Data = Data>(input: UseSortableInput<T>) {\n const {\n accept,\n collisionDetector,\n collisionPriority,\n id,\n data,\n element,\n handle,\n index,\n group,\n disabled,\n modifiers,\n sensors,\n target,\n type,\n plugins,\n } = input;\n const transition = resolveSortableTransition(input.transition);\n const sortable = useInstance((manager) => {\n return new Sortable(\n {\n ...input,\n transition,\n register: false,\n handle: currentValue(handle),\n element: currentValue(element),\n target: currentValue(target),\n },\n manager\n );\n });\n\n const trackedSortable = useDeepSignal(sortable, shouldUpdateSynchronously);\n\n useOnValueChange(id, () => (sortable.id = id));\n\n useIsomorphicLayoutEffect(() => {\n batch(() => {\n sortable.group = group;\n sortable.index = index;\n });\n }, [sortable, group, index]);\n\n useOnValueChange(type, () => (sortable.type = type));\n useOnValueChange(\n accept,\n () => (sortable.accept = accept),\n undefined,\n deepEqual\n );\n useOnValueChange(data, () => data && (sortable.data = data));\n useOnValueChange(\n index,\n () => {\n if (sortable.manager?.dragOperation.status.idle && transition?.idle) {\n sortable.refreshShape();\n }\n },\n immediateEffect\n );\n useOnElementChange(handle, (handle) => (sortable.handle = handle));\n useOnElementChange(element, (element) => (sortable.element = element));\n useOnElementChange(target, (target) => (sortable.target = target));\n useOnValueChange(\n disabled,\n () => (sortable.disabled = disabled ?? false),\n undefined,\n deepEqual\n );\n useOnValueChange(\n sensors,\n () => (sortable.sensors = sensors),\n undefined,\n deepEqual\n );\n useOnValueChange(\n collisionDetector,\n () => (sortable.collisionDetector = collisionDetector)\n );\n useOnValueChange(\n collisionPriority,\n () => (sortable.collisionPriority = collisionPriority)\n );\n useOnValueChange(\n plugins,\n () => (sortable.plugins = plugins),\n undefined,\n deepEqual\n );\n useOnValueChange(\n transition,\n () => (sortable.transition = transition),\n undefined,\n deepEqual\n );\n useOnValueChange(\n modifiers,\n () => (sortable.modifiers = modifiers),\n undefined,\n deepEqual\n );\n useOnValueChange(\n input.alignment,\n () => (sortable.alignment = input.alignment)\n );\n\n return {\n sortable: trackedSortable,\n get isDragging() {\n return trackedSortable.isDragging;\n },\n get isDropping() {\n return trackedSortable.isDropping;\n },\n get isDragSource() {\n return trackedSortable.isDragSource;\n },\n get isDropTarget() {\n return trackedSortable.isDropTarget;\n },\n handleRef: useCallback(\n (element: Element | null) => {\n sortable.handle = element ?? undefined;\n },\n [sortable]\n ),\n ref: useCallback(\n (element: Element | null) => {\n if (\n !element &&\n sortable.element?.isConnected &&\n !sortable.manager?.dragOperation.status.idle\n ) {\n return;\n }\n\n sortable.element = element ?? undefined;\n },\n [sortable]\n ),\n sourceRef: useCallback(\n (element: Element | null) => {\n if (\n !element &&\n sortable.source?.isConnected &&\n !sortable.manager?.dragOperation.status.idle\n ) {\n return;\n }\n\n sortable.source = element ?? undefined;\n },\n [sortable]\n ),\n targetRef: useCallback(\n (element: Element | null) => {\n if (\n !element &&\n sortable.target?.isConnected &&\n !sortable.manager?.dragOperation.status.idle\n ) {\n return;\n }\n\n sortable.target = element ?? undefined;\n },\n [sortable]\n ),\n };\n}\n\nfunction shouldUpdateSynchronously(key: string, oldValue: any, newValue: any) {\n // Update synchronously after drop animation\n if (key === 'isDragSource' && !newValue && oldValue) return true;\n\n return false;\n}\n"]}
package/sortable.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { useCallback } from 'react';
2
2
  import { batch, deepEqual } from '@dnd-kit/state';
3
- import { defaultSortableTransition, Sortable } from '@dnd-kit/dom/sortable';
3
+ import { resolveSortableTransition, Sortable } from '@dnd-kit/dom/sortable';
4
4
  export { isSortable, isSortableOperation } from '@dnd-kit/dom/sortable';
5
5
  import { useInstance } from '@dnd-kit/react';
6
6
  import { useDeepSignal, useOnValueChange, useIsomorphicLayoutEffect, useImmediateEffect, useOnElementChange } from '@dnd-kit/react/hooks';
@@ -43,7 +43,7 @@ function useSortable(input) {
43
43
  type,
44
44
  plugins
45
45
  } = input;
46
- const transition = __spreadValues(__spreadValues({}, defaultSortableTransition), input.transition);
46
+ const transition = resolveSortableTransition(input.transition);
47
47
  const sortable = useInstance((manager) => {
48
48
  return new Sortable(
49
49
  __spreadProps(__spreadValues({}, input), {
package/sortable.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["src/sortable/useSortable.ts"],"names":["immediateEffect","handle","element","target"],"mappings":"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","file":"sortable.js","sourcesContent":["import {useCallback} from 'react';\nimport {batch, deepEqual} from '@dnd-kit/state';\nimport {type Data} from '@dnd-kit/abstract';\nimport {Sortable, defaultSortableTransition} from '@dnd-kit/dom/sortable';\nimport type {SortableInput} from '@dnd-kit/dom/sortable';\nimport {useInstance} from '@dnd-kit/react';\nimport {\n useImmediateEffect as immediateEffect,\n useIsomorphicLayoutEffect,\n useOnValueChange,\n useOnElementChange,\n useDeepSignal,\n} from '@dnd-kit/react/hooks';\nimport {currentValue, type RefOrValue} from '@dnd-kit/react/utilities';\n\nexport interface UseSortableInput<T extends Data = Data>\n extends Omit<SortableInput<T>, 'handle' | 'element' | 'target'> {\n handle?: RefOrValue<Element>;\n element?: RefOrValue<Element>;\n target?: RefOrValue<Element>;\n}\n\nexport function useSortable<T extends Data = Data>(input: UseSortableInput<T>) {\n const {\n accept,\n collisionDetector,\n collisionPriority,\n id,\n data,\n element,\n handle,\n index,\n group,\n disabled,\n modifiers,\n sensors,\n target,\n type,\n plugins,\n } = input;\n const transition = {...defaultSortableTransition, ...input.transition};\n const sortable = useInstance((manager) => {\n return new Sortable(\n {\n ...input,\n transition,\n register: false,\n handle: currentValue(handle),\n element: currentValue(element),\n target: currentValue(target),\n },\n manager\n );\n });\n\n const trackedSortable = useDeepSignal(sortable, shouldUpdateSynchronously);\n\n useOnValueChange(id, () => (sortable.id = id));\n\n useIsomorphicLayoutEffect(() => {\n batch(() => {\n sortable.group = group;\n sortable.index = index;\n });\n }, [sortable, group, index]);\n\n useOnValueChange(type, () => (sortable.type = type));\n useOnValueChange(\n accept,\n () => (sortable.accept = accept),\n undefined,\n deepEqual\n );\n useOnValueChange(data, () => data && (sortable.data = data));\n useOnValueChange(\n index,\n () => {\n if (sortable.manager?.dragOperation.status.idle && transition?.idle) {\n sortable.refreshShape();\n }\n },\n immediateEffect\n );\n useOnElementChange(handle, (handle) => (sortable.handle = handle));\n useOnElementChange(element, (element) => (sortable.element = element));\n useOnElementChange(target, (target) => (sortable.target = target));\n useOnValueChange(\n disabled,\n () => (sortable.disabled = disabled ?? false),\n undefined,\n deepEqual\n );\n useOnValueChange(\n sensors,\n () => (sortable.sensors = sensors),\n undefined,\n deepEqual\n );\n useOnValueChange(\n collisionDetector,\n () => (sortable.collisionDetector = collisionDetector)\n );\n useOnValueChange(\n collisionPriority,\n () => (sortable.collisionPriority = collisionPriority)\n );\n useOnValueChange(\n plugins,\n () => (sortable.plugins = plugins),\n undefined,\n deepEqual\n );\n useOnValueChange(\n transition,\n () => (sortable.transition = transition),\n undefined,\n deepEqual\n );\n useOnValueChange(\n modifiers,\n () => (sortable.modifiers = modifiers),\n undefined,\n deepEqual\n );\n useOnValueChange(\n input.alignment,\n () => (sortable.alignment = input.alignment)\n );\n\n return {\n sortable: trackedSortable,\n get isDragging() {\n return trackedSortable.isDragging;\n },\n get isDropping() {\n return trackedSortable.isDropping;\n },\n get isDragSource() {\n return trackedSortable.isDragSource;\n },\n get isDropTarget() {\n return trackedSortable.isDropTarget;\n },\n handleRef: useCallback(\n (element: Element | null) => {\n sortable.handle = element ?? undefined;\n },\n [sortable]\n ),\n ref: useCallback(\n (element: Element | null) => {\n if (\n !element &&\n sortable.element?.isConnected &&\n !sortable.manager?.dragOperation.status.idle\n ) {\n return;\n }\n\n sortable.element = element ?? undefined;\n },\n [sortable]\n ),\n sourceRef: useCallback(\n (element: Element | null) => {\n if (\n !element &&\n sortable.source?.isConnected &&\n !sortable.manager?.dragOperation.status.idle\n ) {\n return;\n }\n\n sortable.source = element ?? undefined;\n },\n [sortable]\n ),\n targetRef: useCallback(\n (element: Element | null) => {\n if (\n !element &&\n sortable.target?.isConnected &&\n !sortable.manager?.dragOperation.status.idle\n ) {\n return;\n }\n\n sortable.target = element ?? undefined;\n },\n [sortable]\n ),\n };\n}\n\nfunction shouldUpdateSynchronously(key: string, oldValue: any, newValue: any) {\n // Update synchronously after drop animation\n if (key === 'isDragSource' && !newValue && oldValue) return true;\n\n return false;\n}\n"]}
1
+ {"version":3,"sources":["src/sortable/useSortable.ts"],"names":["immediateEffect","handle","element","target"],"mappings":"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","file":"sortable.js","sourcesContent":["import {useCallback} from 'react';\nimport {batch, deepEqual} from '@dnd-kit/state';\nimport {type Data} from '@dnd-kit/abstract';\nimport {Sortable, resolveSortableTransition} from '@dnd-kit/dom/sortable';\nimport type {SortableInput} from '@dnd-kit/dom/sortable';\nimport {useInstance} from '@dnd-kit/react';\nimport {\n useImmediateEffect as immediateEffect,\n useIsomorphicLayoutEffect,\n useOnValueChange,\n useOnElementChange,\n useDeepSignal,\n} from '@dnd-kit/react/hooks';\nimport {currentValue, type RefOrValue} from '@dnd-kit/react/utilities';\n\nexport interface UseSortableInput<T extends Data = Data>\n extends Omit<SortableInput<T>, 'handle' | 'element' | 'target'> {\n handle?: RefOrValue<Element>;\n element?: RefOrValue<Element>;\n target?: RefOrValue<Element>;\n}\n\nexport function useSortable<T extends Data = Data>(input: UseSortableInput<T>) {\n const {\n accept,\n collisionDetector,\n collisionPriority,\n id,\n data,\n element,\n handle,\n index,\n group,\n disabled,\n modifiers,\n sensors,\n target,\n type,\n plugins,\n } = input;\n const transition = resolveSortableTransition(input.transition);\n const sortable = useInstance((manager) => {\n return new Sortable(\n {\n ...input,\n transition,\n register: false,\n handle: currentValue(handle),\n element: currentValue(element),\n target: currentValue(target),\n },\n manager\n );\n });\n\n const trackedSortable = useDeepSignal(sortable, shouldUpdateSynchronously);\n\n useOnValueChange(id, () => (sortable.id = id));\n\n useIsomorphicLayoutEffect(() => {\n batch(() => {\n sortable.group = group;\n sortable.index = index;\n });\n }, [sortable, group, index]);\n\n useOnValueChange(type, () => (sortable.type = type));\n useOnValueChange(\n accept,\n () => (sortable.accept = accept),\n undefined,\n deepEqual\n );\n useOnValueChange(data, () => data && (sortable.data = data));\n useOnValueChange(\n index,\n () => {\n if (sortable.manager?.dragOperation.status.idle && transition?.idle) {\n sortable.refreshShape();\n }\n },\n immediateEffect\n );\n useOnElementChange(handle, (handle) => (sortable.handle = handle));\n useOnElementChange(element, (element) => (sortable.element = element));\n useOnElementChange(target, (target) => (sortable.target = target));\n useOnValueChange(\n disabled,\n () => (sortable.disabled = disabled ?? false),\n undefined,\n deepEqual\n );\n useOnValueChange(\n sensors,\n () => (sortable.sensors = sensors),\n undefined,\n deepEqual\n );\n useOnValueChange(\n collisionDetector,\n () => (sortable.collisionDetector = collisionDetector)\n );\n useOnValueChange(\n collisionPriority,\n () => (sortable.collisionPriority = collisionPriority)\n );\n useOnValueChange(\n plugins,\n () => (sortable.plugins = plugins),\n undefined,\n deepEqual\n );\n useOnValueChange(\n transition,\n () => (sortable.transition = transition),\n undefined,\n deepEqual\n );\n useOnValueChange(\n modifiers,\n () => (sortable.modifiers = modifiers),\n undefined,\n deepEqual\n );\n useOnValueChange(\n input.alignment,\n () => (sortable.alignment = input.alignment)\n );\n\n return {\n sortable: trackedSortable,\n get isDragging() {\n return trackedSortable.isDragging;\n },\n get isDropping() {\n return trackedSortable.isDropping;\n },\n get isDragSource() {\n return trackedSortable.isDragSource;\n },\n get isDropTarget() {\n return trackedSortable.isDropTarget;\n },\n handleRef: useCallback(\n (element: Element | null) => {\n sortable.handle = element ?? undefined;\n },\n [sortable]\n ),\n ref: useCallback(\n (element: Element | null) => {\n if (\n !element &&\n sortable.element?.isConnected &&\n !sortable.manager?.dragOperation.status.idle\n ) {\n return;\n }\n\n sortable.element = element ?? undefined;\n },\n [sortable]\n ),\n sourceRef: useCallback(\n (element: Element | null) => {\n if (\n !element &&\n sortable.source?.isConnected &&\n !sortable.manager?.dragOperation.status.idle\n ) {\n return;\n }\n\n sortable.source = element ?? undefined;\n },\n [sortable]\n ),\n targetRef: useCallback(\n (element: Element | null) => {\n if (\n !element &&\n sortable.target?.isConnected &&\n !sortable.manager?.dragOperation.status.idle\n ) {\n return;\n }\n\n sortable.target = element ?? undefined;\n },\n [sortable]\n ),\n };\n}\n\nfunction shouldUpdateSynchronously(key: string, oldValue: any, newValue: any) {\n // Update synchronously after drop animation\n if (key === 'isDragSource' && !newValue && oldValue) return true;\n\n return false;\n}\n"]}