@dnd-kit/react 0.0.3 → 0.0.4-beta-20240621131401

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/hooks.cjs CHANGED
@@ -4,16 +4,11 @@ var react = require('react');
4
4
  var state = require('@dnd-kit/state');
5
5
  var reactDom = require('react-dom');
6
6
 
7
- function useConstant(initializer, dependency) {
7
+ function useConstant(initializer) {
8
8
  const ref = react.useRef();
9
- const previousDependency = react.useRef(dependency);
10
9
  if (!ref.current) {
11
10
  ref.current = initializer();
12
11
  }
13
- if (previousDependency.current !== dependency) {
14
- previousDependency.current = dependency;
15
- ref.current = initializer();
16
- }
17
12
  return ref.current;
18
13
  }
19
14
  var canUseDOM = typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined";
package/hooks.d.ts CHANGED
@@ -2,7 +2,7 @@ import * as _preact_signals_core from '@preact/signals-core';
2
2
  import * as react from 'react';
3
3
  import { EffectCallback, DependencyList, useLayoutEffect, useEffect } from 'react';
4
4
 
5
- declare function useConstant<T = any>(initializer: () => T, dependency?: any): T;
5
+ declare function useConstant<T = any>(initializer: () => T): T;
6
6
 
7
7
  declare function useComputed<T = any>(compute: () => T, sync?: boolean): _preact_signals_core.ReadonlySignal<T>;
8
8
 
package/hooks.js CHANGED
@@ -2,16 +2,11 @@ import { useRef, useLayoutEffect, useEffect, useState } from 'react';
2
2
  import { computed, Signal, signal, effect } from '@dnd-kit/state';
3
3
  import { flushSync } from 'react-dom';
4
4
 
5
- function useConstant(initializer, dependency) {
5
+ function useConstant(initializer) {
6
6
  const ref = useRef();
7
- const previousDependency = useRef(dependency);
8
7
  if (!ref.current) {
9
8
  ref.current = initializer();
10
9
  }
11
- if (previousDependency.current !== dependency) {
12
- previousDependency.current = dependency;
13
- ref.current = initializer();
14
- }
15
10
  return ref.current;
16
11
  }
17
12
  var canUseDOM = typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined";
package/index.cjs CHANGED
@@ -3,13 +3,42 @@
3
3
  var react = require('react');
4
4
  var dom = require('@dnd-kit/dom');
5
5
  var hooks = require('@dnd-kit/react/hooks');
6
- var utilities$1 = require('@dnd-kit/dom/utilities');
7
6
  var jsxRuntime = require('react/jsx-runtime');
8
7
  var utilities = require('@dnd-kit/react/utilities');
9
8
  var state = require('@dnd-kit/state');
10
9
 
11
10
  var __defProp = Object.defineProperty;
11
+ var __defProps = Object.defineProperties;
12
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
12
13
  var __getOwnPropNames = Object.getOwnPropertyNames;
14
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
15
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
16
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
17
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
18
+ var __spreadValues = (a, b) => {
19
+ for (var prop in b || (b = {}))
20
+ if (__hasOwnProp.call(b, prop))
21
+ __defNormalProp(a, prop, b[prop]);
22
+ if (__getOwnPropSymbols)
23
+ for (var prop of __getOwnPropSymbols(b)) {
24
+ if (__propIsEnum.call(b, prop))
25
+ __defNormalProp(a, prop, b[prop]);
26
+ }
27
+ return a;
28
+ };
29
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
30
+ var __objRest = (source, exclude) => {
31
+ var target = {};
32
+ for (var prop in source)
33
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
34
+ target[prop] = source[prop];
35
+ if (source != null && __getOwnPropSymbols)
36
+ for (var prop of __getOwnPropSymbols(source)) {
37
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
38
+ target[prop] = source[prop];
39
+ }
40
+ return target;
41
+ };
13
42
  var __esm = (fn, res) => function __init() {
14
43
  return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
15
44
  };
@@ -27,17 +56,19 @@ var init_context = __esm({
27
56
  }
28
57
  });
29
58
  function useRenderer() {
30
- const [_, startTransition] = react.useTransition();
59
+ const [_, startTransition2] = react.useTransition();
31
60
  const [transitionCount, setTransitionCount] = react.useState(0);
32
61
  const rendering = react.useRef();
33
62
  const resolver = react.useRef();
34
63
  const renderer = hooks.useConstant(() => ({
35
64
  get rendering() {
36
- return rendering.current ?? Promise.resolve();
65
+ var _a;
66
+ return (_a = rendering.current) != null ? _a : Promise.resolve();
37
67
  }
38
68
  }));
39
69
  hooks.useOnValueChange(transitionCount, () => {
40
- resolver.current?.();
70
+ var _a;
71
+ (_a = resolver.current) == null ? void 0 : _a.call(resolver);
41
72
  rendering.current = void 0;
42
73
  });
43
74
  return {
@@ -48,7 +79,7 @@ function useRenderer() {
48
79
  resolver.current = resolve;
49
80
  });
50
81
  }
51
- startTransition(() => {
82
+ startTransition2(() => {
52
83
  callback();
53
84
  setTransitionCount((count) => count + 1);
54
85
  });
@@ -59,50 +90,35 @@ var init_renderer = __esm({
59
90
  "src/core/context/renderer.ts"() {
60
91
  }
61
92
  });
62
- var Lifecycle;
63
- var init_lifecycle = __esm({
64
- "src/core/context/lifecycle.ts"() {
65
- Lifecycle = class extends react.Component {
66
- initialized = false;
67
- clearTimeout;
68
- componentDidMount() {
69
- this.clearTimeout?.();
70
- this.clearTimeout = utilities$1.timeout(() => this.initialized = true, 25);
71
- }
72
- componentWillUnmount() {
73
- if (!this.initialized)
74
- return;
75
- this.props.manager.destroy();
76
- }
77
- render() {
78
- return null;
79
- }
80
- };
81
- }
82
- });
83
93
 
84
94
  // src/core/context/DragDropProvider.tsx
85
95
  var DragDropProvider_exports = {};
86
96
  __export(DragDropProvider_exports, {
87
97
  default: () => DragDropProvider
88
98
  });
89
- function DragDropProvider({
90
- children,
91
- onCollision,
92
- onBeforeDragStart,
93
- onDragStart,
94
- onDragMove,
95
- onDragOver,
96
- onDragEnd,
97
- ...input
98
- }) {
99
+ function DragDropProvider(_a) {
100
+ var _b = _a, {
101
+ children,
102
+ onCollision,
103
+ onBeforeDragStart,
104
+ onDragStart,
105
+ onDragMove,
106
+ onDragOver,
107
+ onDragEnd
108
+ } = _b, input = __objRest(_b, [
109
+ "children",
110
+ "onCollision",
111
+ "onBeforeDragStart",
112
+ "onDragStart",
113
+ "onDragMove",
114
+ "onDragOver",
115
+ "onDragEnd"
116
+ ]);
117
+ var _a2;
99
118
  const { renderer, trackRendering } = useRenderer();
100
- const createManager = () => {
101
- const instance = input.manager ?? new dom.DragDropManager(input);
102
- instance.renderer = renderer;
103
- return instance;
104
- };
105
- const manager = hooks.useConstant(createManager);
119
+ const [manager, setManager] = react.useState(
120
+ (_a2 = input.manager) != null ? _a2 : null
121
+ );
106
122
  const { plugins, modifiers, sensors } = input;
107
123
  const handleBeforeDragStart = hooks.useLatest(onBeforeDragStart);
108
124
  const handleDragStart = hooks.useLatest(onDragStart);
@@ -111,63 +127,68 @@ function DragDropProvider({
111
127
  const handleDragEnd = hooks.useLatest(onDragEnd);
112
128
  const handleCollision = hooks.useLatest(onCollision);
113
129
  react.useEffect(() => {
114
- const listeners = [
115
- manager.monitor.addEventListener("beforedragstart", (event, manager2) => {
116
- const callback = handleBeforeDragStart.current;
117
- if (callback) {
118
- trackRendering(() => callback(event, manager2));
119
- }
120
- }),
121
- manager.monitor.addEventListener(
122
- "dragstart",
123
- (event, manager2) => handleDragStart.current?.(event, manager2)
124
- ),
125
- manager.monitor.addEventListener("dragover", (event, manager2) => {
126
- const callback = handleDragOver.current;
127
- if (callback) {
128
- trackRendering(() => callback(event, manager2));
129
- }
130
- }),
131
- manager.monitor.addEventListener("dragmove", (event, manager2) => {
132
- const callback = handleDragMove.current;
133
- if (callback) {
134
- trackRendering(() => callback(event, manager2));
135
- }
136
- }),
137
- manager.monitor.addEventListener("dragend", (event, manager2) => {
138
- const callback = handleDragEnd.current;
139
- if (callback) {
140
- trackRendering(() => callback(event, manager2));
141
- }
142
- }),
143
- manager.monitor.addEventListener(
144
- "collision",
145
- (event, manager2) => handleCollision.current?.(event, manager2)
146
- )
147
- ];
148
- return () => {
149
- listeners.forEach((dispose) => dispose());
150
- };
151
- }, []);
130
+ var _a3;
131
+ const manager2 = (_a3 = input.manager) != null ? _a3 : new dom.DragDropManager(input);
132
+ manager2.renderer = renderer;
133
+ manager2.monitor.addEventListener("beforedragstart", (event, manager3) => {
134
+ const callback = handleBeforeDragStart.current;
135
+ if (callback) {
136
+ trackRendering(() => callback(event, manager3));
137
+ }
138
+ });
139
+ manager2.monitor.addEventListener(
140
+ "dragstart",
141
+ (event, manager3) => {
142
+ var _a4;
143
+ return (_a4 = handleDragStart.current) == null ? void 0 : _a4.call(handleDragStart, event, manager3);
144
+ }
145
+ );
146
+ manager2.monitor.addEventListener("dragover", (event, manager3) => {
147
+ const callback = handleDragOver.current;
148
+ if (callback) {
149
+ trackRendering(() => callback(event, manager3));
150
+ }
151
+ });
152
+ manager2.monitor.addEventListener("dragmove", (event, manager3) => {
153
+ const callback = handleDragMove.current;
154
+ if (callback) {
155
+ trackRendering(() => callback(event, manager3));
156
+ }
157
+ });
158
+ manager2.monitor.addEventListener("dragend", (event, manager3) => {
159
+ const callback = handleDragEnd.current;
160
+ if (callback) {
161
+ trackRendering(() => callback(event, manager3));
162
+ }
163
+ });
164
+ manager2.monitor.addEventListener(
165
+ "collision",
166
+ (event, manager3) => {
167
+ var _a4;
168
+ return (_a4 = handleCollision.current) == null ? void 0 : _a4.call(handleCollision, event, manager3);
169
+ }
170
+ );
171
+ react.startTransition(() => setManager(manager2));
172
+ return manager2.destroy;
173
+ }, [renderer]);
152
174
  hooks.useOnValueChange(
153
175
  plugins,
154
- () => manager.plugins = plugins ?? dom.defaultPreset.plugins
176
+ () => manager && (manager.plugins = plugins != null ? plugins : dom.defaultPreset.plugins)
155
177
  );
156
178
  hooks.useOnValueChange(
157
179
  sensors,
158
- () => manager.sensors = sensors ?? dom.defaultPreset.sensors
180
+ () => manager && (manager.sensors = sensors != null ? sensors : dom.defaultPreset.sensors)
181
+ );
182
+ hooks.useOnValueChange(
183
+ modifiers,
184
+ () => manager && (manager.modifiers = modifiers != null ? modifiers : [])
159
185
  );
160
- hooks.useOnValueChange(modifiers, () => manager.modifiers = modifiers ?? []);
161
- return /* @__PURE__ */ jsxRuntime.jsxs(DragDropContext.Provider, { value: manager, children: [
162
- /* @__PURE__ */ jsxRuntime.jsx(Lifecycle, { manager }),
163
- children
164
- ] });
186
+ return /* @__PURE__ */ jsxRuntime.jsx(DragDropContext.Provider, { value: manager, children });
165
187
  }
166
188
  var init_DragDropProvider = __esm({
167
189
  "src/core/context/DragDropProvider.tsx"() {
168
190
  init_context();
169
191
  init_renderer();
170
- init_lifecycle();
171
192
  }
172
193
  });
173
194
  var DragDropProvider2 = react.lazy(() => Promise.resolve().then(() => (init_DragDropProvider(), DragDropProvider_exports)));
@@ -180,12 +201,13 @@ function useDragDropManager() {
180
201
 
181
202
  // src/core/hooks/useInstance.ts
182
203
  function useInstance(initializer) {
183
- const manager = useDragDropManager();
184
- const instance = hooks.useConstant(() => initializer(manager));
204
+ var _a;
205
+ const manager = (_a = useDragDropManager()) != null ? _a : void 0;
206
+ const [instance] = react.useState(() => initializer(manager));
185
207
  react.useEffect(() => {
186
208
  instance.manager = manager;
187
- return manager.registry.register(instance);
188
- }, [manager]);
209
+ return manager == null ? void 0 : manager.registry.register(instance);
210
+ }, [instance, manager]);
189
211
  return instance;
190
212
  }
191
213
  function useDraggable(input) {
@@ -194,15 +216,13 @@ function useDraggable(input) {
194
216
  const element = utilities.currentValue(input.element);
195
217
  const draggable = useInstance(
196
218
  (manager) => new dom.Draggable(
197
- {
198
- ...input,
219
+ __spreadProps(__spreadValues({}, input), {
199
220
  handle,
200
221
  element,
201
- options: {
202
- ...input.options,
222
+ options: __spreadProps(__spreadValues({}, input.options), {
203
223
  register: false
204
- }
205
- },
224
+ })
225
+ }),
206
226
  manager
207
227
  )
208
228
  );
@@ -220,7 +240,10 @@ function useDraggable(input) {
220
240
  );
221
241
  hooks.useOnValueChange(
222
242
  input.feedback,
223
- () => draggable.feedback = input.feedback ?? "default"
243
+ () => {
244
+ var _a;
245
+ return draggable.feedback = (_a = input.feedback) != null ? _a : "default";
246
+ }
224
247
  );
225
248
  return {
226
249
  draggable,
@@ -229,13 +252,13 @@ function useDraggable(input) {
229
252
  },
230
253
  handleRef: react.useCallback(
231
254
  (element2) => {
232
- draggable.handle = element2 ?? void 0;
255
+ draggable.handle = element2 != null ? element2 : void 0;
233
256
  },
234
257
  [draggable]
235
258
  ),
236
259
  ref: react.useCallback(
237
260
  (element2) => {
238
- draggable.element = element2 ?? void 0;
261
+ draggable.element = element2 != null ? element2 : void 0;
239
262
  },
240
263
  [draggable]
241
264
  )
@@ -246,14 +269,12 @@ function useDroppable(input) {
246
269
  const element = utilities.currentValue(input.element);
247
270
  const droppable = useInstance(
248
271
  (manager) => new dom.Droppable(
249
- {
250
- ...input,
272
+ __spreadProps(__spreadValues({}, input), {
251
273
  element,
252
- options: {
253
- ...input.options,
274
+ options: __spreadProps(__spreadValues({}, input.options), {
254
275
  register: false
255
- }
256
- },
276
+ })
277
+ }),
257
278
  manager
258
279
  )
259
280
  );
@@ -270,7 +291,7 @@ function useDroppable(input) {
270
291
  },
271
292
  ref: react.useCallback(
272
293
  (element2) => {
273
- droppable.element = element2 ?? void 0;
294
+ droppable.element = element2 != null ? element2 : void 0;
274
295
  },
275
296
  [droppable]
276
297
  ),
@@ -279,9 +300,8 @@ function useDroppable(input) {
279
300
  }
280
301
  function useDragOperation() {
281
302
  const manager = useDragDropManager();
282
- const { dragOperation } = manager;
283
- const source = hooks.useComputed(() => dragOperation.source);
284
- const target = hooks.useComputed(() => dragOperation.target);
303
+ const source = hooks.useComputed(() => manager == null ? void 0 : manager.dragOperation.source);
304
+ const target = hooks.useComputed(() => manager == null ? void 0 : manager.dragOperation.target);
285
305
  return {
286
306
  get source() {
287
307
  return source.value;
package/index.d.ts CHANGED
@@ -41,11 +41,11 @@ declare function useDroppable<T extends Data = Data>(input: UseDroppableInput<T>
41
41
  droppable: Droppable<T>;
42
42
  };
43
43
 
44
- declare function useDragDropManager(): _dnd_kit_dom.DragDropManager<_dnd_kit_dom.Draggable<_dnd_kit_abstract.Data>, _dnd_kit_dom.Droppable<_dnd_kit_abstract.Data>>;
44
+ declare function useDragDropManager(): _dnd_kit_dom.DragDropManager<_dnd_kit_dom.Draggable<_dnd_kit_abstract.Data>, _dnd_kit_dom.Droppable<_dnd_kit_abstract.Data>> | null;
45
45
 
46
46
  declare function useDragOperation(): {
47
- readonly source: _dnd_kit_dom.Draggable<_dnd_kit_abstract.Data> | null;
48
- readonly target: _dnd_kit_dom.Droppable<_dnd_kit_abstract.Data> | null;
47
+ readonly source: _dnd_kit_dom.Draggable<_dnd_kit_abstract.Data> | null | undefined;
48
+ readonly target: _dnd_kit_dom.Droppable<_dnd_kit_abstract.Data> | null | undefined;
49
49
  };
50
50
 
51
51
  export { DragDropProvider, useDragDropManager, useDragOperation, useDraggable, useDroppable };
package/index.js CHANGED
@@ -1,23 +1,24 @@
1
- import { DragDropContext } from './chunk-RDUPMLCN.js';
2
- import { lazy, useContext, useCallback, useEffect } from 'react';
1
+ import { DragDropContext, __spreadProps, __spreadValues } from './chunk-56SCTCQE.js';
2
+ import { lazy, useContext, useCallback, useState, useEffect } from 'react';
3
3
  import { Draggable, Droppable } from '@dnd-kit/dom';
4
- import { useComputed, useOnValueChange, useConstant } from '@dnd-kit/react/hooks';
4
+ import { useComputed, useOnValueChange } from '@dnd-kit/react/hooks';
5
5
  import { currentValue } from '@dnd-kit/react/utilities';
6
6
  import { deepEqual } from '@dnd-kit/state';
7
7
 
8
- var DragDropProvider = lazy(() => import('./DragDropProvider-FMQK5X4L.js'));
8
+ var DragDropProvider = lazy(() => import('./DragDropProvider-B4S6ULO6.js'));
9
9
  function useDragDropManager() {
10
10
  return useContext(DragDropContext);
11
11
  }
12
12
 
13
13
  // src/core/hooks/useInstance.ts
14
14
  function useInstance(initializer) {
15
- const manager = useDragDropManager();
16
- const instance = useConstant(() => initializer(manager));
15
+ var _a;
16
+ const manager = (_a = useDragDropManager()) != null ? _a : void 0;
17
+ const [instance] = useState(() => initializer(manager));
17
18
  useEffect(() => {
18
19
  instance.manager = manager;
19
- return manager.registry.register(instance);
20
- }, [manager]);
20
+ return manager == null ? void 0 : manager.registry.register(instance);
21
+ }, [instance, manager]);
21
22
  return instance;
22
23
  }
23
24
  function useDraggable(input) {
@@ -26,15 +27,13 @@ function useDraggable(input) {
26
27
  const element = currentValue(input.element);
27
28
  const draggable = useInstance(
28
29
  (manager) => new Draggable(
29
- {
30
- ...input,
30
+ __spreadProps(__spreadValues({}, input), {
31
31
  handle,
32
32
  element,
33
- options: {
34
- ...input.options,
33
+ options: __spreadProps(__spreadValues({}, input.options), {
35
34
  register: false
36
- }
37
- },
35
+ })
36
+ }),
38
37
  manager
39
38
  )
40
39
  );
@@ -52,7 +51,10 @@ function useDraggable(input) {
52
51
  );
53
52
  useOnValueChange(
54
53
  input.feedback,
55
- () => draggable.feedback = input.feedback ?? "default"
54
+ () => {
55
+ var _a;
56
+ return draggable.feedback = (_a = input.feedback) != null ? _a : "default";
57
+ }
56
58
  );
57
59
  return {
58
60
  draggable,
@@ -61,13 +63,13 @@ function useDraggable(input) {
61
63
  },
62
64
  handleRef: useCallback(
63
65
  (element2) => {
64
- draggable.handle = element2 ?? void 0;
66
+ draggable.handle = element2 != null ? element2 : void 0;
65
67
  },
66
68
  [draggable]
67
69
  ),
68
70
  ref: useCallback(
69
71
  (element2) => {
70
- draggable.element = element2 ?? void 0;
72
+ draggable.element = element2 != null ? element2 : void 0;
71
73
  },
72
74
  [draggable]
73
75
  )
@@ -78,14 +80,12 @@ function useDroppable(input) {
78
80
  const element = currentValue(input.element);
79
81
  const droppable = useInstance(
80
82
  (manager) => new Droppable(
81
- {
82
- ...input,
83
+ __spreadProps(__spreadValues({}, input), {
83
84
  element,
84
- options: {
85
- ...input.options,
85
+ options: __spreadProps(__spreadValues({}, input.options), {
86
86
  register: false
87
- }
88
- },
87
+ })
88
+ }),
89
89
  manager
90
90
  )
91
91
  );
@@ -102,7 +102,7 @@ function useDroppable(input) {
102
102
  },
103
103
  ref: useCallback(
104
104
  (element2) => {
105
- droppable.element = element2 ?? void 0;
105
+ droppable.element = element2 != null ? element2 : void 0;
106
106
  },
107
107
  [droppable]
108
108
  ),
@@ -111,9 +111,8 @@ function useDroppable(input) {
111
111
  }
112
112
  function useDragOperation() {
113
113
  const manager = useDragDropManager();
114
- const { dragOperation } = manager;
115
- const source = useComputed(() => dragOperation.source);
116
- const target = useComputed(() => dragOperation.target);
114
+ const source = useComputed(() => manager == null ? void 0 : manager.dragOperation.source);
115
+ const target = useComputed(() => manager == null ? void 0 : manager.dragOperation.target);
117
116
  return {
118
117
  get source() {
119
118
  return source.value;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dnd-kit/react",
3
- "version": "0.0.3",
3
+ "version": "0.0.4-beta-20240621131401",
4
4
  "main": "./index.cjs",
5
5
  "module": "./index.js",
6
6
  "type": "module",
@@ -56,9 +56,9 @@
56
56
  "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist"
57
57
  },
58
58
  "dependencies": {
59
- "@dnd-kit/abstract": "^0.0.3",
60
- "@dnd-kit/dom": "^0.0.3",
61
- "@dnd-kit/state": "^0.0.3",
59
+ "@dnd-kit/abstract": "0.0.4-beta-20240621131401",
60
+ "@dnd-kit/dom": "0.0.4-beta-20240621131401",
61
+ "@dnd-kit/state": "0.0.4-beta-20240621131401",
62
62
  "tslib": "^2.6.2"
63
63
  },
64
64
  "peerDependencies": {
@@ -71,8 +71,8 @@
71
71
  "eslint": "^8.38.0",
72
72
  "@dnd-kit/eslint-config": "*",
73
73
  "react": "^18.1.0",
74
- "tsup": "^7.2.0",
75
- "typescript": "^5.1.6"
74
+ "tsup": "^8.1.0",
75
+ "typescript": "^5.5.2"
76
76
  },
77
77
  "publishConfig": {
78
78
  "access": "public"
package/sortable.cjs CHANGED
@@ -7,6 +7,25 @@ var react = require('@dnd-kit/react');
7
7
  var hooks = require('@dnd-kit/react/hooks');
8
8
  var utilities = require('@dnd-kit/react/utilities');
9
9
 
10
+ var __defProp = Object.defineProperty;
11
+ var __defProps = Object.defineProperties;
12
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
13
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
14
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
15
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
16
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
17
+ var __spreadValues = (a, b) => {
18
+ for (var prop in b || (b = {}))
19
+ if (__hasOwnProp.call(b, prop))
20
+ __defNormalProp(a, prop, b[prop]);
21
+ if (__getOwnPropSymbols)
22
+ for (var prop of __getOwnPropSymbols(b)) {
23
+ if (__propIsEnum.call(b, prop))
24
+ __defNormalProp(a, prop, b[prop]);
25
+ }
26
+ return a;
27
+ };
28
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
10
29
  function useSortable(input) {
11
30
  const {
12
31
  accept,
@@ -28,21 +47,21 @@ function useSortable(input) {
28
47
  const target = utilities.currentValue(input.target);
29
48
  const sortable$1 = hooks.useConstant(() => {
30
49
  return new sortable.Sortable(
31
- {
32
- ...input,
50
+ __spreadProps(__spreadValues({}, input), {
33
51
  handle,
34
52
  element,
35
53
  target,
36
54
  feedback,
37
- options: {
38
- ...input.options,
55
+ options: __spreadProps(__spreadValues({}, input.options), {
39
56
  register: false
40
- }
41
- },
42
- manager
57
+ })
58
+ }),
59
+ manager != null ? manager : void 0
43
60
  );
44
- }, manager);
45
- react$1.useLayoutEffect(() => {
61
+ });
62
+ react$1.useEffect(() => {
63
+ sortable$1.manager = manager != null ? manager : void 0;
64
+ if (!manager) return;
46
65
  manager.registry.register(sortable$1.draggable);
47
66
  manager.registry.register(sortable$1.droppable);
48
67
  return () => {
@@ -62,11 +81,11 @@ function useSortable(input) {
62
81
  void 0,
63
82
  state.deepEqual
64
83
  );
65
- hooks.useOnValueChange(data, () => sortable$1.data = data ?? null);
84
+ hooks.useOnValueChange(data, () => sortable$1.data = data != null ? data : null);
66
85
  hooks.useOnValueChange(
67
86
  index,
68
87
  () => {
69
- if (manager.dragOperation.status.idle && transition) {
88
+ if ((manager == null ? void 0 : manager.dragOperation.status.idle) && transition) {
70
89
  sortable$1.refreshShape();
71
90
  }
72
91
  },
@@ -85,7 +104,7 @@ function useSortable(input) {
85
104
  collisionPriority,
86
105
  () => sortable$1.collisionPriority = collisionPriority
87
106
  );
88
- hooks.useOnValueChange(feedback, () => sortable$1.feedback = feedback ?? "default");
107
+ hooks.useOnValueChange(feedback, () => sortable$1.feedback = feedback != null ? feedback : "default");
89
108
  hooks.useOnValueChange(transition, () => sortable$1.transition = transition);
90
109
  return {
91
110
  get isDragSource() {
@@ -96,25 +115,25 @@ function useSortable(input) {
96
115
  },
97
116
  handleRef: react$1.useCallback(
98
117
  (element2) => {
99
- sortable$1.handle = element2 ?? void 0;
118
+ sortable$1.handle = element2 != null ? element2 : void 0;
100
119
  },
101
120
  [sortable$1]
102
121
  ),
103
122
  ref: react$1.useCallback(
104
123
  (element2) => {
105
- sortable$1.element = element2 ?? void 0;
124
+ sortable$1.element = element2 != null ? element2 : void 0;
106
125
  },
107
126
  [sortable$1]
108
127
  ),
109
128
  sourceRef: react$1.useCallback(
110
129
  (element2) => {
111
- sortable$1.source = element2 ?? void 0;
130
+ sortable$1.source = element2 != null ? element2 : void 0;
112
131
  },
113
132
  [sortable$1]
114
133
  ),
115
134
  targetRef: react$1.useCallback(
116
135
  (element2) => {
117
- sortable$1.target = element2 ?? void 0;
136
+ sortable$1.target = element2 != null ? element2 : void 0;
118
137
  },
119
138
  [sortable$1]
120
139
  )
package/sortable.d.ts CHANGED
@@ -16,4 +16,4 @@ declare function useSortable<T extends Data = Data>(input: UseSortableInput<T>):
16
16
  targetRef: (element: Element | null) => void;
17
17
  };
18
18
 
19
- export { UseSortableInput, useSortable };
19
+ export { type UseSortableInput, useSortable };
package/sortable.js CHANGED
@@ -1,10 +1,29 @@
1
- import { useLayoutEffect, useCallback } from 'react';
1
+ import { useEffect, useCallback } from 'react';
2
2
  import { deepEqual } from '@dnd-kit/state';
3
3
  import { Sortable, defaultSortableTransition } from '@dnd-kit/dom/sortable';
4
4
  import { useDragDropManager } from '@dnd-kit/react';
5
5
  import { useConstant, useComputed, useOnValueChange, useIsomorphicLayoutEffect, useImmediateEffect } from '@dnd-kit/react/hooks';
6
6
  import { currentValue } from '@dnd-kit/react/utilities';
7
7
 
8
+ var __defProp = Object.defineProperty;
9
+ var __defProps = Object.defineProperties;
10
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
11
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
12
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
13
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
14
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
15
+ var __spreadValues = (a, b) => {
16
+ for (var prop in b || (b = {}))
17
+ if (__hasOwnProp.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ if (__getOwnPropSymbols)
20
+ for (var prop of __getOwnPropSymbols(b)) {
21
+ if (__propIsEnum.call(b, prop))
22
+ __defNormalProp(a, prop, b[prop]);
23
+ }
24
+ return a;
25
+ };
26
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
8
27
  function useSortable(input) {
9
28
  const {
10
29
  accept,
@@ -26,21 +45,21 @@ function useSortable(input) {
26
45
  const target = currentValue(input.target);
27
46
  const sortable = useConstant(() => {
28
47
  return new Sortable(
29
- {
30
- ...input,
48
+ __spreadProps(__spreadValues({}, input), {
31
49
  handle,
32
50
  element,
33
51
  target,
34
52
  feedback,
35
- options: {
36
- ...input.options,
53
+ options: __spreadProps(__spreadValues({}, input.options), {
37
54
  register: false
38
- }
39
- },
40
- manager
55
+ })
56
+ }),
57
+ manager != null ? manager : void 0
41
58
  );
42
- }, manager);
43
- useLayoutEffect(() => {
59
+ });
60
+ useEffect(() => {
61
+ sortable.manager = manager != null ? manager : void 0;
62
+ if (!manager) return;
44
63
  manager.registry.register(sortable.draggable);
45
64
  manager.registry.register(sortable.droppable);
46
65
  return () => {
@@ -60,11 +79,11 @@ function useSortable(input) {
60
79
  void 0,
61
80
  deepEqual
62
81
  );
63
- useOnValueChange(data, () => sortable.data = data ?? null);
82
+ useOnValueChange(data, () => sortable.data = data != null ? data : null);
64
83
  useOnValueChange(
65
84
  index,
66
85
  () => {
67
- if (manager.dragOperation.status.idle && transition) {
86
+ if ((manager == null ? void 0 : manager.dragOperation.status.idle) && transition) {
68
87
  sortable.refreshShape();
69
88
  }
70
89
  },
@@ -83,7 +102,7 @@ function useSortable(input) {
83
102
  collisionPriority,
84
103
  () => sortable.collisionPriority = collisionPriority
85
104
  );
86
- useOnValueChange(feedback, () => sortable.feedback = feedback ?? "default");
105
+ useOnValueChange(feedback, () => sortable.feedback = feedback != null ? feedback : "default");
87
106
  useOnValueChange(transition, () => sortable.transition = transition);
88
107
  return {
89
108
  get isDragSource() {
@@ -94,25 +113,25 @@ function useSortable(input) {
94
113
  },
95
114
  handleRef: useCallback(
96
115
  (element2) => {
97
- sortable.handle = element2 ?? void 0;
116
+ sortable.handle = element2 != null ? element2 : void 0;
98
117
  },
99
118
  [sortable]
100
119
  ),
101
120
  ref: useCallback(
102
121
  (element2) => {
103
- sortable.element = element2 ?? void 0;
122
+ sortable.element = element2 != null ? element2 : void 0;
104
123
  },
105
124
  [sortable]
106
125
  ),
107
126
  sourceRef: useCallback(
108
127
  (element2) => {
109
- sortable.source = element2 ?? void 0;
128
+ sortable.source = element2 != null ? element2 : void 0;
110
129
  },
111
130
  [sortable]
112
131
  ),
113
132
  targetRef: useCallback(
114
133
  (element2) => {
115
- sortable.target = element2 ?? void 0;
134
+ sortable.target = element2 != null ? element2 : void 0;
116
135
  },
117
136
  [sortable]
118
137
  )
package/utilities.cjs CHANGED
@@ -2,11 +2,12 @@
2
2
 
3
3
  // src/utilities/currentValue.ts
4
4
  function currentValue(value) {
5
+ var _a;
5
6
  if (value == null) {
6
7
  return void 0;
7
8
  }
8
9
  if (typeof value === "object" && "current" in value) {
9
- return value.current ?? void 0;
10
+ return (_a = value.current) != null ? _a : void 0;
10
11
  }
11
12
  return value;
12
13
  }
package/utilities.d.ts CHANGED
@@ -3,4 +3,4 @@ import { RefObject, MutableRefObject } from 'react';
3
3
  type RefOrValue<T> = T | RefObject<T | null | undefined> | MutableRefObject<T> | null | undefined;
4
4
  declare function currentValue<T>(value: RefOrValue<T>): NonNullable<T> | undefined;
5
5
 
6
- export { RefOrValue, currentValue };
6
+ export { type RefOrValue, currentValue };
package/utilities.js CHANGED
@@ -1,10 +1,11 @@
1
1
  // src/utilities/currentValue.ts
2
2
  function currentValue(value) {
3
+ var _a;
3
4
  if (value == null) {
4
5
  return void 0;
5
6
  }
6
7
  if (typeof value === "object" && "current" in value) {
7
- return value.current ?? void 0;
8
+ return (_a = value.current) != null ? _a : void 0;
8
9
  }
9
10
  return value;
10
11
  }