@vue-dnd-kit/core 2.0.0-alpha6 → 2.0.0-alpha8

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.
@@ -1,49 +1,76 @@
1
1
  (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".dnd-kit-default-overlay{transform:translate3d(var(--position-x),var(--position-y),0)}.dnd-kit-overlay-container{position:fixed;top:0;left:0;pointer-events:none;cursor:grabbing}")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
2
- import { ref as I, watch as Se, shallowRef as ne, reactive as _, computed as E, onMounted as R, onBeforeUnmount as P, inject as de, defineComponent as ye, unref as A, openBlock as p, createElementBlock as K, normalizeStyle as se, Fragment as V, renderList as Ae, createBlock as H, resolveDynamicComponent as q, createCommentVNode as we, useTemplateRef as xe, provide as Le, renderSlot as ie, Teleport as Ce, createElementVNode as ke } from "vue";
3
- const M = {
2
+ import { ref as U, watch as j, shallowRef as Z, reactive as Y, computed as b, onScopeDispose as Ge, onMounted as I, onBeforeUnmount as K, inject as Ae, defineComponent as xe, unref as C, openBlock as L, createElementBlock as $, normalizeStyle as de, Fragment as se, renderList as Ie, createBlock as V, resolveDynamicComponent as ie, createCommentVNode as Ke, useTemplateRef as He, provide as Ne, renderSlot as ye, Teleport as Ye, createElementVNode as Xe } from "vue";
3
+ const k = {
4
4
  SELECT_AREA: "data-dnd-kit-select-area",
5
5
  DRAGGABLE: "data-dnd-kit-draggable",
6
6
  DROPPABLE: "data-dnd-kit-droppable",
7
7
  CONSTRAINT_AREA: "data-dnd-kit-constraint-area"
8
- }, k = {
9
- SELECT_AREA: `[${M.SELECT_AREA}]`,
10
- DRAGGABLE: `[${M.DRAGGABLE}]`,
11
- CONSTRAINT_AREA: `[${M.CONSTRAINT_AREA}]`
12
- }, te = "VueDnDKitProvider", ae = (e, t, n, s) => {
13
- const i = /* @__PURE__ */ new Set();
14
- return t.forEach((a) => {
15
- const o = e.get(a), r = s ? s(a) : o?.disabled;
16
- if (!o || r) return;
17
- const l = o.modifier?.keys, c = o.modifier?.method;
8
+ }, G = {
9
+ SELECT_AREA: `[${k.SELECT_AREA}]`,
10
+ DRAGGABLE: `[${k.DRAGGABLE}]`,
11
+ CONSTRAINT_AREA: `[${k.CONSTRAINT_AREA}]`
12
+ }, ge = "VueDnDKitProvider", be = (e, t, n, o) => {
13
+ const s = /* @__PURE__ */ new Set();
14
+ return t.forEach((r) => {
15
+ const i = e.get(r), a = o ? o(r) : i?.disabled;
16
+ if (!i || a) return;
17
+ const l = i.modifier?.keys, c = i.modifier?.method;
18
18
  if (!l || !c || l.length === 0) {
19
- i.add(a);
19
+ s.add(r);
20
20
  return;
21
21
  }
22
- l[c]((u) => n.value.has(u)) && i.add(a);
23
- }), i;
22
+ l[c]((g) => n.value.has(g)) && s.add(r);
23
+ }), s;
24
24
  };
25
- let be = "", Re = "", Pe = "";
26
- const U = (e) => e.value ? e.value instanceof HTMLElement ? e.value : e.value.$el : null, B = (e, t) => e !== t && e.contains(t), Be = (e, t) => !(e.right < t.left || e.left > t.right || e.bottom < t.top || e.top > t.bottom), W = () => {
25
+ let Le = "", Ue = "", $e = "";
26
+ const v = (e) => e.value ? e.value instanceof HTMLElement ? e.value : e.value.$el : null, H = (e, t) => e !== t && e.contains(t), Ze = (e, t) => !(e.right < t.left || e.left > t.right || e.bottom < t.top || e.top > t.bottom), re = () => {
27
27
  const e = document.body;
28
- be = e.style.userSelect, e.style.userSelect = "none", window.addEventListener("contextmenu", m), window.addEventListener("selectstart", m), window.addEventListener("touchstart", m), window.addEventListener("touchmove", m);
29
- }, j = () => {
28
+ Le = e.style.userSelect, e.style.userSelect = "none", window.addEventListener("contextmenu", p), window.addEventListener("selectstart", p), window.addEventListener("touchstart", p), window.addEventListener("touchmove", p);
29
+ }, ae = () => {
30
30
  const e = document.body;
31
- e.style.userSelect = be, e.style.touchAction = Re, e.style.overscrollBehavior = Pe, window.removeEventListener("contextmenu", m), window.removeEventListener("selectstart", m), window.removeEventListener("touchstart", m), window.removeEventListener("touchmove", m);
32
- }, m = (e) => e.preventDefault(), S = (e, t) => {
31
+ e.style.userSelect = Le, e.style.touchAction = Ue, e.style.overscrollBehavior = $e, window.removeEventListener("contextmenu", p), window.removeEventListener("selectstart", p), window.removeEventListener("touchstart", p), window.removeEventListener("touchmove", p);
32
+ }, p = (e) => e.preventDefault(), T = (e, t) => {
33
33
  if (t.entities.draggableMap.get(e)?.disabled) return !0;
34
- for (const [s, i] of t.entities.draggableMap)
35
- if (i.disabled && B(s, e)) return !0;
34
+ for (const [o, s] of t.entities.draggableMap)
35
+ if (s.disabled && H(o, e)) return !0;
36
36
  return !1;
37
- }, L = (e, t) => {
37
+ }, O = (e, t) => {
38
38
  if (t.entities.droppableMap.get(e)?.disabled) return !0;
39
- for (const [s, i] of t.entities.droppableMap)
40
- if (i.disabled && B(s, e)) return !0;
39
+ for (const [o, s] of t.entities.droppableMap)
40
+ if (s.disabled && H(o, e)) return !0;
41
41
  return !1;
42
- }, $ = (e) => {
42
+ }, fe = (e, t) => !e.length || !t.length ? !0 : e.some((n) => t.includes(n));
43
+ function Ve(e, t, n, o) {
44
+ const s = /* @__PURE__ */ new Set();
45
+ for (const a of t.keys()) {
46
+ const l = n.get(a);
47
+ for (const c of l?.groups ?? []) s.add(c);
48
+ }
49
+ const r = [...s], i = /* @__PURE__ */ new Set();
50
+ for (const a of e) {
51
+ const c = o.get(a)?.groups ?? [];
52
+ fe(r, c) && i.add(a);
53
+ }
54
+ return i;
55
+ }
56
+ function qe(e, t, n) {
57
+ const o = /* @__PURE__ */ new Set();
58
+ for (const i of t.keys()) {
59
+ const a = n.get(i);
60
+ for (const l of a?.groups ?? []) o.add(l);
61
+ }
62
+ const s = [...o], r = /* @__PURE__ */ new Set();
63
+ for (const i of e) {
64
+ const l = n.get(i)?.groups ?? [];
65
+ fe(s, l) && r.add(i);
66
+ }
67
+ return r;
68
+ }
69
+ const te = (e) => {
43
70
  const t = new IntersectionObserver((n) => {
44
- n.forEach((s) => {
45
- const i = s.target;
46
- e[s.isIntersecting ? "add" : "delete"](i);
71
+ n.forEach((o) => {
72
+ const s = o.target;
73
+ e[o.isIntersecting ? "add" : "delete"](s);
47
74
  });
48
75
  });
49
76
  return {
@@ -51,44 +78,44 @@ const U = (e) => e.value ? e.value instanceof HTMLElement ? e.value : e.value.$e
51
78
  unobserve: (n) => t.unobserve(n),
52
79
  disconnect: () => t.disconnect()
53
80
  };
54
- }, Te = (e) => {
81
+ }, We = (e) => {
55
82
  const t = new ResizeObserver((n) => {
56
- const s = n[0];
57
- if (!s) return;
58
- const { width: i, height: a } = s.contentRect;
59
- e.value = { width: i, height: a };
83
+ const o = n[0];
84
+ if (!o) return;
85
+ const { width: s, height: r } = o.contentRect;
86
+ e.value = { width: s, height: r };
60
87
  });
61
88
  return {
62
89
  observe: (n) => t.observe(n),
63
90
  unobserve: (n) => t.unobserve(n),
64
91
  disconnect: () => t.disconnect()
65
92
  };
66
- }, Oe = (e) => {
67
- const t = I(null), n = Te(t), s = Se(
93
+ }, je = (e) => {
94
+ const t = U(null), n = We(t), o = j(
68
95
  e,
69
- (a) => {
70
- n.disconnect(), a && n.observe(a);
96
+ (r) => {
97
+ n.disconnect(), r && n.observe(r);
71
98
  },
72
99
  { immediate: !0 }
73
100
  );
74
101
  return { overlaySize: t, overlaySizeObserver: {
75
102
  disconnect: () => {
76
- s(), n.disconnect();
103
+ o(), n.disconnect();
77
104
  }
78
105
  } };
79
106
  };
80
- function J(e, t = 0, n = 0) {
107
+ function le(e, t = 0, n = 0) {
81
108
  return {
82
109
  start: { x: e.clientX, y: e.clientY },
83
110
  current: { x: e.clientX, y: e.clientY },
84
111
  offset: { x: t, y: n }
85
112
  };
86
113
  }
87
- function me(e, t) {
88
- const n = t.getBoundingClientRect(), s = n.width > 0 ? (e.clientX - n.left) / n.width : 0.5, i = n.height > 0 ? (e.clientY - n.top) / n.height : 0.5;
89
- return { x: s, y: i };
114
+ function Ce(e, t) {
115
+ const n = t.getBoundingClientRect(), o = n.width > 0 ? (e.clientX - n.left) / n.width : 0.5, s = n.height > 0 ? (e.clientY - n.top) / n.height : 0.5;
116
+ return { x: o, y: s };
90
117
  }
91
- function he(e, t) {
118
+ function ke(e, t) {
92
119
  return {
93
120
  ...t,
94
121
  initialHTML: e.innerHTML,
@@ -96,142 +123,142 @@ function he(e, t) {
96
123
  initialOuterHTML: e.outerHTML
97
124
  };
98
125
  }
99
- function ze(e, t, n) {
100
- e.forEach((s) => {
101
- const i = t.get(s);
102
- n.set(s, he(s, i));
126
+ function Je(e, t, n) {
127
+ e.forEach((o) => {
128
+ const s = t.get(o);
129
+ n.set(o, ke(o, s));
103
130
  }), e.clear();
104
131
  }
105
- function _e(e, t, n) {
132
+ function Qe(e, t, n) {
106
133
  n.clear();
107
- const s = t.get(e);
108
- n.set(e, he(e, s));
134
+ const o = t.get(e);
135
+ n.set(e, ke(e, o));
109
136
  }
110
- function G(e) {
111
- e.entities.initiatingDraggable && (e.state.value = "dragging", Fe(
137
+ function q(e) {
138
+ e.entities.initiatingDraggable && (e.state.value = "dragging", et(
112
139
  e.entities.initiatingDraggable,
113
140
  e.entities.selectedSet,
114
141
  e.entities.draggableMap,
115
142
  e.entities.draggingMap
116
143
  ));
117
144
  }
118
- function Fe(e, t, n, s) {
119
- t.has(e) ? ze(t, n, s) : (t.clear(), _e(e, n, s));
145
+ function et(e, t, n, o) {
146
+ t.has(e) ? Je(t, n, o) : (t.clear(), Qe(e, n, o));
120
147
  }
121
- function De(e, t, n, s) {
122
- if (s || !n) return !0;
123
- const i = e.closest(n);
124
- return i ? t.contains(i) : !1;
148
+ function Te(e, t, n, o) {
149
+ if (o || !n) return !0;
150
+ const s = e.closest(n);
151
+ return s ? t.contains(s) : !1;
125
152
  }
126
- function Ie(e, t) {
153
+ function tt(e, t) {
127
154
  if (!e || !t) return 1;
128
- const n = Math.abs(e.current.x - e.start.x), s = Math.abs(e.current.y - e.start.y);
155
+ const n = Math.abs(e.current.x - e.start.x), o = Math.abs(e.current.y - e.start.y);
129
156
  if (typeof t == "number") {
130
- const c = Math.sqrt(n * n + s * s);
157
+ const c = Math.sqrt(n * n + o * o);
131
158
  return Math.min(c / t, 1);
132
159
  }
133
160
  const {
134
- x: i = 0,
135
- y: a = 0,
136
- condition: o = "any"
161
+ x: s = 0,
162
+ y: r = 0,
163
+ condition: i = "any"
137
164
  } = t;
138
- if (i === 0 && a === 0) return 1;
139
- const r = i > 0 ? Math.min(n / i, 1) : 1, l = a > 0 ? Math.min(s / a, 1) : 1;
140
- return o === "both" ? Math.min(r, l) : Math.max(r, l);
165
+ if (s === 0 && r === 0) return 1;
166
+ const a = s > 0 ? Math.min(n / s, 1) : 1, l = r > 0 ? Math.min(o / r, 1) : 1;
167
+ return i === "both" ? Math.min(a, l) : Math.max(a, l);
141
168
  }
142
- function pe(e, t, n) {
169
+ function Pe(e, t, n) {
143
170
  if (!n) return !0;
144
- const s = n.distance != null, i = n.delay != null;
145
- return !s && !i ? !0 : s && !i ? e >= 1 : !s && i ? t >= 1 : (n.condition ?? "both") === "both" ? e >= 1 && t >= 1 : e >= 1 || t >= 1;
171
+ const o = n.distance != null, s = n.delay != null;
172
+ return !o && !s ? !0 : o && !s ? e >= 1 : !o && s ? t >= 1 : (n.condition ?? "both") === "both" ? e >= 1 && t >= 1 : e >= 1 || t >= 1;
146
173
  }
147
- function Ke(e) {
174
+ function nt(e) {
148
175
  if (e.state.value !== "activating" || !e.entities.initiatingDraggable)
149
176
  return !1;
150
177
  const t = e.entities.draggableMap.get(
151
178
  e.entities.initiatingDraggable
152
179
  );
153
- return pe(
180
+ return Pe(
154
181
  e.distanceProgress.value,
155
182
  e.delay.progress,
156
183
  t?.activation
157
- ) ? (G(e), !0) : !1;
184
+ ) ? (q(e), !0) : !1;
158
185
  }
159
- function He(e, t) {
186
+ function ot(e, t) {
160
187
  let n = null;
161
- const s = () => {
188
+ const o = () => {
162
189
  if (e.state.value !== "activating" || !e.entities.initiatingDraggable) {
163
190
  n = null;
164
191
  return;
165
192
  }
166
- const i = e.entities.draggableMap.get(
193
+ const s = e.entities.draggableMap.get(
167
194
  e.entities.initiatingDraggable
168
- ), a = i?.activation?.delay;
169
- if (!a) {
195
+ ), r = s?.activation?.delay;
196
+ if (!r) {
170
197
  n = null;
171
198
  return;
172
199
  }
173
200
  e.delay.progress = Math.min(
174
- (Date.now() - e.delay.startTime) / (a * 1e3),
201
+ (Date.now() - e.delay.startTime) / (r * 1e3),
175
202
  1
176
- ), pe(
203
+ ), Pe(
177
204
  e.distanceProgress.value,
178
205
  e.delay.progress,
179
- i?.activation
180
- ) ? (t(), n = null) : n = requestAnimationFrame(s);
206
+ s?.activation
207
+ ) ? (t(), n = null) : n = requestAnimationFrame(o);
181
208
  };
182
- return n = requestAnimationFrame(s), {
209
+ return n = requestAnimationFrame(o), {
183
210
  cancel: () => {
184
211
  n !== null && (cancelAnimationFrame(n), n = null);
185
212
  }
186
213
  };
187
214
  }
188
- function Ge(e, t) {
215
+ function st(e, t) {
189
216
  const n = e.closest(
190
- k.CONSTRAINT_AREA
217
+ G.CONSTRAINT_AREA
191
218
  );
192
219
  return !n || !t.has(n) ? null : {
193
220
  element: n,
194
221
  entity: t.get(n)
195
222
  };
196
223
  }
197
- function Ne(e, t, n, s) {
198
- return n === "x" ? { x: e, y: s.top } : n === "y" ? { x: s.left, y: t } : { x: e, y: t };
224
+ function it(e, t, n, o) {
225
+ return n === "x" ? { x: e, y: o.top } : n === "y" ? { x: o.left, y: t } : { x: e, y: t };
199
226
  }
200
- function Ue(e, t, n, s, i) {
201
- let a = e, o = t;
202
- return n !== "y" && (a = Math.max(
203
- s.left,
204
- Math.min(s.right - i.width, e)
205
- )), n !== "x" && (o = Math.max(
206
- s.top,
207
- Math.min(s.bottom - i.height, t)
208
- )), { x: a, y: o };
227
+ function rt(e, t, n, o, s) {
228
+ let r = e, i = t;
229
+ return n !== "y" && (r = Math.max(
230
+ o.left,
231
+ Math.min(o.right - s.width, e)
232
+ )), n !== "x" && (i = Math.max(
233
+ o.top,
234
+ Math.min(o.bottom - s.height, t)
235
+ )), { x: r, y: i };
209
236
  }
210
- function Ye(e, t, n, s, i) {
237
+ function at(e, t, n, o, s) {
211
238
  if (!e || !t)
212
239
  return { x: 0, y: 0 };
213
- const a = t.getBoundingClientRect(), o = a.width || i?.width || 0, r = a.height || i?.height || 0;
214
- let l = e.current.x - o * e.offset.x, c = e.current.y - r * e.offset.y;
240
+ const r = t.getBoundingClientRect(), i = r.width || s?.width || 0, a = r.height || s?.height || 0;
241
+ let l = e.current.x - i * e.offset.x, c = e.current.y - a * e.offset.y;
215
242
  if (!n)
216
243
  return { x: l, y: c };
217
- const f = Ge(n, s);
218
- if (!f)
244
+ const u = st(n, o);
245
+ if (!u)
219
246
  return { x: l, y: c };
220
- const { element: u, entity: d } = f, g = u.getBoundingClientRect(), y = n.getBoundingClientRect(), b = Ne(
247
+ const { element: g, entity: d } = u, f = g.getBoundingClientRect(), y = n.getBoundingClientRect(), m = it(
221
248
  l,
222
249
  c,
223
250
  d.axis || "both",
224
251
  y
225
252
  );
226
- return d.restrictToArea ? Ue(
227
- b.x,
228
- b.y,
253
+ return d.restrictToArea ? rt(
254
+ m.x,
255
+ m.y,
229
256
  d.axis || "both",
230
- g,
231
- a
232
- ) : b;
257
+ f,
258
+ r
259
+ ) : m;
233
260
  }
234
- const C = {
261
+ const _ = {
235
262
  forDrag: ["Enter", "Space"],
236
263
  forCancel: ["Escape"],
237
264
  forDrop: ["Enter", "Space"],
@@ -247,19 +274,19 @@ const C = {
247
274
  ],
248
275
  forMoveFaster: ["ShiftLeft", "ShiftRight"]
249
276
  };
250
- function $e(e) {
251
- const t = ne(), n = I(), i = {
277
+ function lt(e, t) {
278
+ const n = Z(), o = U(), r = {
252
279
  keys: {
253
- pressedKeys: I(/* @__PURE__ */ new Set()),
254
- forDrag: [...C.forDrag],
255
- forCancel: [...C.forCancel],
256
- forDrop: [...C.forDrop],
257
- forMove: [...C.forMove],
258
- forMoveFaster: [...C.forMoveFaster]
280
+ pressedKeys: U(/* @__PURE__ */ new Set()),
281
+ forDrag: [..._.forDrag],
282
+ forCancel: [..._.forCancel],
283
+ forDrop: [..._.forDrop],
284
+ forMove: [..._.forMove],
285
+ forMoveFaster: [..._.forMoveFaster]
259
286
  },
260
287
  step: 8,
261
288
  moveFaster: 4
262
- }, a = _({
289
+ }, i = Y({
263
290
  draggableMap: /* @__PURE__ */ new Map(),
264
291
  droppableMap: /* @__PURE__ */ new Map(),
265
292
  selectableAreaMap: /* @__PURE__ */ new Map(),
@@ -268,155 +295,170 @@ function $e(e) {
268
295
  selectingArea: void 0,
269
296
  draggingMap: /* @__PURE__ */ new Map(),
270
297
  selectedSet: /* @__PURE__ */ new Set(),
271
- modifiersSelectableAreaSet: E(() => ae(
272
- a.selectableAreaMap,
273
- a.visibleSelectableAreaSet,
274
- i.keys.pressedKeys
298
+ allowedDroppableSet: b(() => n.value ? Ve(
299
+ i.visibleDroppableSet,
300
+ i.draggingMap,
301
+ i.draggableMap,
302
+ i.droppableMap
303
+ ) : /* @__PURE__ */ new Set()),
304
+ allowedDraggableSet: b(() => n.value ? qe(
305
+ i.visibleDraggableSet,
306
+ i.draggingMap,
307
+ i.draggableMap
308
+ ) : /* @__PURE__ */ new Set()),
309
+ modifiersSelectableAreaSet: b(() => be(
310
+ i.selectableAreaMap,
311
+ i.visibleSelectableAreaSet,
312
+ r.keys.pressedKeys
275
313
  )),
276
- modifiersDraggableSet: E(() => ae(
277
- a.draggableMap,
278
- a.visibleDraggableSet,
279
- i.keys.pressedKeys,
280
- (z) => S(z, { entities: a })
314
+ modifiersDraggableSet: b(() => be(
315
+ i.draggableMap,
316
+ i.visibleDraggableSet,
317
+ r.keys.pressedKeys,
318
+ (S) => T(S, { entities: i })
281
319
  )),
282
320
  visibleDraggableSet: /* @__PURE__ */ new Set(),
283
321
  visibleDroppableSet: /* @__PURE__ */ new Set(),
284
322
  visibleSelectableAreaSet: /* @__PURE__ */ new Set()
285
- }), o = _({
323
+ }), a = Y({
324
+ draggable: /* @__PURE__ */ new Map(),
325
+ droppable: /* @__PURE__ */ new Map()
326
+ }), l = {
327
+ throttle: Z(0)
328
+ }, c = Y({
286
329
  x: window.scrollX,
287
330
  y: window.scrollY
288
- }), r = _({
331
+ }), u = Y({
289
332
  progress: 0,
290
333
  startTime: 0
291
- }), l = E(() => {
292
- if (!n.value || !a.initiatingDraggable) return 0;
293
- const z = a.draggableMap.get(a.initiatingDraggable)?.activation?.distance;
294
- return z ? Ie(n.value, z) : 1;
295
- }), c = $(
296
- a.visibleDraggableSet
297
- ), f = $(
298
- a.visibleDroppableSet
299
- ), u = $(
300
- a.visibleSelectableAreaSet
301
- ), { overlaySize: d, overlaySizeObserver: g } = Oe(e), y = I(), b = _({
302
- draggable: /* @__PURE__ */ new Map(),
303
- droppable: /* @__PURE__ */ new Map()
304
- }), v = {
305
- throttle: ne(0)
306
- }, T = E(() => {
307
- o.y, o.x;
308
- const O = a.initiatingDraggable;
309
- return Ye(
310
- n.value,
334
+ }), g = b(() => {
335
+ if (!o.value || !i.initiatingDraggable) return 0;
336
+ const S = i.draggableMap.get(i.initiatingDraggable)?.activation?.distance;
337
+ return S ? tt(o.value, S) : 1;
338
+ }), d = te(
339
+ i.visibleDraggableSet
340
+ ), f = te(
341
+ i.visibleDroppableSet
342
+ ), y = te(
343
+ i.visibleSelectableAreaSet
344
+ ), { overlaySize: m, overlaySizeObserver: M } = je(e), D = U(), z = b(() => {
345
+ const h = i.initiatingDraggable;
346
+ return at(
347
+ o.value,
311
348
  e.value,
312
- O || null,
313
- a.constraintsAreaMap,
314
- d.value
349
+ h || null,
350
+ i.constraintsAreaMap,
351
+ m.value
315
352
  );
316
- });
353
+ }), A = b({
354
+ get: () => t?.overlayTo,
355
+ set: (h) => A.value = h
356
+ }), N = b(() => t?.autoScrollViewport);
317
357
  return {
318
- state: t,
319
- pointer: n,
320
- entities: a,
321
- keyboard: i,
322
- scrollPosition: o,
323
- delay: r,
324
- distanceProgress: l,
325
- hovered: b,
326
- collision: v,
358
+ state: n,
359
+ pointer: o,
360
+ entities: i,
361
+ keyboard: r,
362
+ scrollPosition: c,
363
+ delay: u,
364
+ distanceProgress: g,
365
+ hovered: a,
366
+ collision: l,
327
367
  overlay: {
328
- size: d,
329
- style: T,
330
- render: y,
331
- ref: e
368
+ size: m,
369
+ position: z,
370
+ render: D,
371
+ ref: e,
372
+ to: A
332
373
  },
333
374
  lib: {
334
- draggableObserver: c,
375
+ draggableObserver: d,
335
376
  droppableObserver: f,
336
- selectableAreaObserver: u,
337
- overlaySizeObserver: g
338
- }
377
+ selectableAreaObserver: y,
378
+ overlaySizeObserver: M
379
+ },
380
+ autoScrollViewport: N
339
381
  };
340
382
  }
341
- const N = (e) => {
383
+ const W = (e) => {
342
384
  e.pointer.value = void 0, e.state.value = void 0, e.entities.selectingArea = void 0, e.entities.initiatingDraggable = void 0, e.delay.progress = 0, e.delay.startTime = 0, e.entities.draggingMap.clear(), e.hovered.draggable.clear(), e.hovered.droppable.clear();
343
- }, Xe = (e) => {
385
+ }, ct = (e) => {
344
386
  const t = e.entities.initiatingDraggable;
345
387
  if (!t) return;
346
- const s = e.entities.draggableMap.get(t)?.payload;
347
- if (!s) return;
348
- const i = s();
349
- if (!Array.isArray(i) || i.length < 2) return;
350
- const [a, o, r] = i;
388
+ const o = e.entities.draggableMap.get(t)?.payload;
389
+ if (!o) return;
390
+ const s = o();
391
+ if (!Array.isArray(s) || s.length < 2) return;
392
+ const [r, i, a] = s;
351
393
  return {
352
- index: Number(a),
353
- items: Array.isArray(o) ? o : [],
354
- dropData: r
394
+ index: Number(r),
395
+ items: Array.isArray(i) ? i : [],
396
+ dropData: a
355
397
  };
356
- }, Ze = (e, t) => {
357
- const s = e.entities.droppableMap.get(t)?.payload;
358
- if (!s) return;
359
- const i = s();
360
- if (!Array.isArray(i) || i.length < 1) return;
361
- const [a, o] = i;
398
+ }, ut = (e, t) => {
399
+ const o = e.entities.droppableMap.get(t)?.payload;
400
+ if (!o) return;
401
+ const s = o();
402
+ if (!Array.isArray(s) || s.length < 1) return;
403
+ const [r, i] = s;
362
404
  return {
363
- items: Array.isArray(a) ? a : [],
364
- userData: o
405
+ items: Array.isArray(r) ? r : [],
406
+ userData: i
365
407
  };
366
- }, w = (e) => e.keys().next().value, Ve = (e) => e.target.closest(k.DRAGGABLE), D = (e, t) => {
408
+ }, R = (e) => e.keys().next().value, gt = (e) => e.target.closest(G.DRAGGABLE), E = (e, t) => {
367
409
  const n = {
368
- payload: Xe(e),
410
+ payload: ct(e),
369
411
  provider: e
370
412
  };
371
- return t && (n.dropZonePayload = Ze(e, t)), n;
372
- }, X = (e, t, n) => {
373
- const s = Ve(t);
374
- if (!s || !e.entities.draggingMap.has(s)) return;
375
- const i = D(e);
376
- e.entities.draggingMap.get(s)?.events?.[n]?.(i);
377
- }, x = (e, t, n) => {
378
- if (!t || S(t, e)) return;
379
- const s = D(e);
380
- e.entities.draggableMap.get(t)?.events?.[n]?.(s);
381
- }, h = (e, t) => {
382
- const n = D(e);
383
- e.entities.draggableMap.forEach((s, i) => {
384
- S(i, e) || s.events?.[t]?.(n);
413
+ return t && (n.dropZonePayload = ut(e, t)), n;
414
+ }, ne = (e, t, n) => {
415
+ const o = gt(t);
416
+ if (!o || !e.entities.draggingMap.has(o)) return;
417
+ const s = E(e);
418
+ e.entities.draggingMap.get(o)?.events?.[n]?.(s);
419
+ }, B = (e, t, n) => {
420
+ if (!t || T(t, e)) return;
421
+ const o = E(e);
422
+ e.entities.draggableMap.get(t)?.events?.[n]?.(o);
423
+ }, w = (e, t) => {
424
+ const n = E(e);
425
+ e.entities.draggableMap.forEach((o, s) => {
426
+ T(s, e) || o.events?.[t]?.(n);
385
427
  });
386
- }, qe = (e, t, n) => {
428
+ }, ft = (e, t, n) => {
387
429
  if (t !== n) {
388
- if (t && !L(t, e)) {
389
- const s = D(e, t);
390
- e.entities.droppableMap.get(t)?.events?.onLeave?.(s);
430
+ if (t && !O(t, e)) {
431
+ const o = E(e, t);
432
+ e.entities.droppableMap.get(t)?.events?.onLeave?.(o);
391
433
  }
392
- if (n && !L(n, e)) {
393
- const s = D(e, n);
394
- e.entities.droppableMap.get(n)?.events?.onEnter?.(s);
434
+ if (n && !O(n, e)) {
435
+ const o = E(e, n);
436
+ e.entities.droppableMap.get(n)?.events?.onEnter?.(o);
395
437
  }
396
438
  }
397
- }, We = (e, t, n) => {
439
+ }, dt = (e, t, n) => {
398
440
  if (t !== n) {
399
- const s = D(e);
400
- t && !S(t, e) && e.entities.draggableMap.get(t)?.events?.onLeave?.(s), n && !S(n, e) && e.entities.draggableMap.get(n)?.events?.onHover?.(s);
441
+ const o = E(e);
442
+ t && !T(t, e) && e.entities.draggableMap.get(t)?.events?.onLeave?.(o), n && !T(n, e) && e.entities.draggableMap.get(n)?.events?.onHover?.(o);
401
443
  }
402
- }, je = (e, t) => {
403
- const n = w(t.droppable);
404
- if (n && !L(n, e)) {
405
- const s = D(e, n);
406
- e.entities.droppableMap.get(n)?.events?.onLeave?.(s);
444
+ }, yt = (e, t) => {
445
+ const n = R(t.droppable);
446
+ if (n && !O(n, e)) {
447
+ const o = E(e, n);
448
+ e.entities.droppableMap.get(n)?.events?.onLeave?.(o);
407
449
  }
408
- }, ve = (e, t) => {
409
- const n = w(t.droppable);
410
- if (n && !L(n, e)) {
411
- const s = D(e, n);
412
- e.entities.droppableMap.get(n)?.events?.onLeave?.(s);
450
+ }, Re = (e, t) => {
451
+ const n = R(t.droppable);
452
+ if (n && !O(n, e)) {
453
+ const o = E(e, n);
454
+ e.entities.droppableMap.get(n)?.events?.onLeave?.(o);
413
455
  }
414
- }, Je = (e, t) => !e.length || !t.length ? !0 : e.some((n) => t.includes(n)), Qe = (e, t, n) => {
456
+ }, bt = (e, t, n) => {
415
457
  if (!n) return {};
416
- const s = n.getBoundingClientRect(), i = Math.max(s.left, Math.min(e.x, t.x)), a = Math.max(s.top, Math.min(e.y, t.y)), o = Math.min(s.right, Math.max(e.x, t.x)), r = Math.min(s.bottom, Math.max(e.y, t.y)), l = Math.max(0, o - i), c = Math.max(0, r - a);
458
+ const o = n.getBoundingClientRect(), s = Math.max(o.left, Math.min(e.x, t.x)), r = Math.max(o.top, Math.min(e.y, t.y)), i = Math.min(o.right, Math.max(e.x, t.x)), a = Math.min(o.bottom, Math.max(e.y, t.y)), l = Math.max(0, i - s), c = Math.max(0, a - r);
417
459
  return {
418
- left: `${i}px`,
419
- top: `${a}px`,
460
+ left: `${s}px`,
461
+ top: `${r}px`,
420
462
  width: `${l}px`,
421
463
  height: `${c}px`,
422
464
  position: "fixed",
@@ -424,87 +466,87 @@ const N = (e) => {
424
466
  border: "1px solid #3b82f6",
425
467
  backgroundColor: "#3b82f61a"
426
468
  };
427
- }, et = (e) => {
469
+ }, mt = (e) => {
428
470
  if (!e.pointer.value || !e.entities.selectingArea) return;
429
- const { selectingArea: t } = e.entities, n = tt(
471
+ const { selectingArea: t } = e.entities, n = ht(
430
472
  e.pointer.value.start,
431
473
  e.pointer.value.current
432
- ), s = e.entities.selectableAreaMap.get(t)?.groups ?? [];
433
- e.entities.visibleDraggableSet.forEach((i) => {
434
- if (!t.contains(i)) return;
435
- if (S(i, e)) {
436
- e.entities.selectedSet.delete(i);
474
+ ), o = e.entities.selectableAreaMap.get(t)?.groups ?? [];
475
+ e.entities.visibleDraggableSet.forEach((s) => {
476
+ if (!t.contains(s)) return;
477
+ if (T(s, e)) {
478
+ e.entities.selectedSet.delete(s);
437
479
  return;
438
480
  }
439
- const o = e.entities.draggableMap.get(i)?.groups ?? [];
440
- if (!Je(s, o)) {
441
- e.entities.selectedSet.delete(i);
481
+ const i = e.entities.draggableMap.get(s)?.groups ?? [];
482
+ if (!fe(o, i)) {
483
+ e.entities.selectedSet.delete(s);
442
484
  return;
443
485
  }
444
- Be(n, i.getBoundingClientRect()) ? e.entities.selectedSet.add(i) : e.entities.selectedSet.delete(i);
486
+ Ze(n, s.getBoundingClientRect()) ? e.entities.selectedSet.add(s) : e.entities.selectedSet.delete(s);
445
487
  });
446
- }, tt = (e, t) => {
447
- const n = Math.min(e.x, t.x), s = Math.min(e.y, t.y), i = Math.max(e.x, t.x), a = Math.max(e.y, t.y), o = i - n, r = a - s;
448
- return new DOMRect(n, s, o, r);
449
- }, nt = (e, t, n = 5) => {
450
- const s = n / 2;
488
+ }, ht = (e, t) => {
489
+ const n = Math.min(e.x, t.x), o = Math.min(e.y, t.y), s = Math.max(e.x, t.x), r = Math.max(e.y, t.y), i = s - n, a = r - o;
490
+ return new DOMRect(n, o, i, a);
491
+ }, pt = (e, t, n = 5) => {
492
+ const o = n / 2;
451
493
  return {
452
- left: e - s,
453
- top: t - s,
494
+ left: e - o,
495
+ top: t - o,
454
496
  width: n,
455
497
  height: n
456
498
  };
457
- }, st = (e) => {
458
- const t = e.pointer.value?.current, n = t?.x ?? 0, s = t?.y ?? 0;
459
- return nt(n, s, 5);
460
- }, F = (e, t, n) => {
461
- const s = e.left + e.width / 2, i = e.top + e.height / 2;
499
+ }, Dt = (e) => {
500
+ const t = e.pointer.value?.current, n = t?.x ?? 0, o = t?.y ?? 0;
501
+ return pt(n, o, 5);
502
+ }, X = (e, t, n) => {
503
+ const o = e.left + e.width / 2, s = e.top + e.height / 2;
462
504
  if (n) {
463
- const f = n.top ?? 0, u = n.right ?? 0, d = n.bottom ?? 0, g = n.left ?? 0, y = t.left + g, b = t.right - u, v = t.top + f, T = t.bottom - d;
464
- if (y < b && v < T && s >= y && s <= b && i >= v && i <= T)
505
+ const u = n.top ?? 0, g = n.right ?? 0, d = n.bottom ?? 0, f = n.left ?? 0, y = t.left + f, m = t.right - g, M = t.top + u, D = t.bottom - d;
506
+ if (y < m && M < D && o >= y && o <= m && s >= M && s <= D)
465
507
  return { top: !1, right: !1, bottom: !1, left: !1, center: !0 };
466
508
  }
467
- const a = i - t.top, o = t.bottom - i, r = s - t.left, l = t.right - s, c = Math.min(a, o, r, l);
509
+ const r = s - t.top, i = t.bottom - s, a = o - t.left, l = t.right - o, c = Math.min(r, i, a, l);
468
510
  return {
469
- top: a === c,
470
- bottom: o === c,
471
- left: r === c,
511
+ top: r === c,
512
+ bottom: i === c,
513
+ left: a === c,
472
514
  right: l === c
473
515
  };
474
- }, it = (e, t) => e.find((n) => n !== t && B(t, n)), Q = (e, t, n) => {
475
- const s = w(t.droppable), i = w(t.draggable);
516
+ }, St = (e, t) => e.find((n) => n !== t && H(t, n)), ce = (e, t, n) => {
517
+ const o = R(t.droppable), s = R(t.draggable);
476
518
  t.draggable.clear(), t.droppable.clear();
477
- const a = st(e), o = n.zones[0], r = n.elements[0];
478
- if (o && r && o === r && e.entities.droppableMap.has(o) && o) {
479
- const u = o.getBoundingClientRect(), d = e.entities.draggableMap.get(o)?.placementMargins, g = F(a, u, d);
480
- if (g.center) {
481
- t.droppable.set(o, g);
482
- const y = it(n.elements, o);
519
+ const r = Dt(e), i = n.zones[0], a = n.elements[0];
520
+ if (i && a && i === a && e.entities.droppableMap.has(i) && i) {
521
+ const g = i.getBoundingClientRect(), d = e.entities.draggableMap.get(i)?.placementMargins, f = X(r, g, d);
522
+ if (f.center) {
523
+ t.droppable.set(i, f);
524
+ const y = St(n.elements, i);
483
525
  if (y) {
484
- const b = y.getBoundingClientRect();
526
+ const m = y.getBoundingClientRect();
485
527
  t.draggable.set(
486
528
  y,
487
- F(a, b, void 0)
529
+ X(r, m, void 0)
488
530
  );
489
531
  }
490
532
  } else
491
- t.draggable.set(r, g), t.droppable.set(o, g);
533
+ t.draggable.set(a, f), t.droppable.set(i, f);
492
534
  } else {
493
- if (o) {
494
- const u = o.getBoundingClientRect();
495
- t.droppable.set(o, F(a, u));
535
+ if (i) {
536
+ const g = i.getBoundingClientRect();
537
+ t.droppable.set(i, X(r, g));
496
538
  }
497
- if (r) {
498
- const u = r.getBoundingClientRect(), d = e.entities.draggableMap.get(r)?.placementMargins;
539
+ if (a) {
540
+ const g = a.getBoundingClientRect(), d = e.entities.draggableMap.get(a)?.placementMargins;
499
541
  t.draggable.set(
500
- r,
501
- F(a, u, d)
542
+ a,
543
+ X(r, g, d)
502
544
  );
503
545
  }
504
546
  }
505
- const c = w(t.droppable), f = w(t.draggable);
506
- qe(e, s, c), We(e, i, f);
507
- }, at = (e, t) => e.x < t.x + t.width && e.x + e.width > t.x && e.y < t.y + t.height && e.y + e.height > t.y, oe = (e) => {
547
+ const c = R(t.droppable), u = R(t.draggable);
548
+ ft(e, o, c), dt(e, s, u);
549
+ }, vt = (e, t) => e.x < t.x + t.width && e.x + e.width > t.x && e.y < t.y + t.height && e.y + e.height > t.y, me = (e) => {
508
550
  if (!e)
509
551
  return { x: 0, y: 0, width: 0, height: 0, top: 0, left: 0, right: 0, bottom: 0 };
510
552
  const t = e.getBoundingClientRect();
@@ -518,118 +560,118 @@ const N = (e) => {
518
560
  right: t.right,
519
561
  bottom: t.bottom
520
562
  };
521
- }, re = (e) => ({
563
+ }, he = (e) => ({
522
564
  x: e.x + e.width / 2,
523
565
  y: e.y + e.height / 2
524
- }), ot = (e, t) => Math.hypot(t.x - e.x, t.y - e.y), rt = (e, t) => {
566
+ }), wt = (e, t) => Math.hypot(t.x - e.x, t.y - e.y), Et = (e, t) => {
525
567
  const n = Math.max(
526
568
  0,
527
569
  Math.min(e.x + e.width, t.x + t.width) - Math.max(e.x, t.x)
528
- ), s = Math.max(
570
+ ), o = Math.max(
529
571
  0,
530
572
  Math.min(e.y + e.height, t.y + t.height) - Math.max(e.y, t.y)
531
- ), i = n * s, a = e.width * e.height, o = t.width * t.height;
532
- return a === 0 || o === 0 ? 0 : (i / a * 100 + i / o * 100) / 2;
533
- }, lt = (e, t, n) => t >= e.x && t <= e.x + e.width && n >= e.y && n <= e.y + e.height, le = () => !0, ce = () => 0, ct = () => {
573
+ ), s = n * o, r = e.width * e.height, i = t.width * t.height;
574
+ return r === 0 || i === 0 ? 0 : (s / r * 100 + s / i * 100) / 2;
575
+ }, Mt = (e, t, n) => t >= e.x && t <= e.x + e.width && n >= e.y && n <= e.y + e.height, pe = () => !0, De = () => 0, At = () => {
534
576
  const e = {
535
- filterElements: le,
536
- filterZones: le,
537
- sortElements: ce,
538
- sortZones: ce
539
- }, t = (s, i, a, o, r, l, c) => {
540
- const f = new Set(o), u = { containerBox: i, pointer: a }, d = [...o].filter((g) => r(g, s)).map((g) => {
541
- const y = oe(g);
542
- if (!c(y, u)) return null;
543
- let b = 0;
544
- for (const v of f)
545
- v !== g && B(v, g) && b++;
577
+ filterElements: pe,
578
+ filterZones: pe,
579
+ sortElements: De,
580
+ sortZones: De
581
+ }, t = (o, s, r, i, a, l, c) => {
582
+ const u = new Set(i), g = { containerBox: s, pointer: r }, d = [...i].filter((f) => a(f, o)).map((f) => {
583
+ const y = me(f);
584
+ if (!c(y, g)) return null;
585
+ let m = 0;
586
+ for (const M of u)
587
+ M !== f && H(M, f) && m++;
546
588
  return {
547
- node: g,
589
+ node: f,
548
590
  box: y,
549
591
  meta: {
550
- isPointerInElement: lt(y, a.x, a.y),
551
- overlapPercent: rt(y, i),
552
- depth: b,
553
- centerDistance: ot(re(i), re(y))
592
+ isPointerInElement: Mt(y, r.x, r.y),
593
+ overlapPercent: Et(y, s),
594
+ depth: m,
595
+ centerDistance: wt(he(s), he(y))
554
596
  }
555
597
  };
556
- }).filter((g) => g !== null);
557
- return d.sort((g, y) => l(g, y, u)), d.map((g) => g.node);
598
+ }).filter((f) => f !== null);
599
+ return d.sort((f, y) => l(f, y, g)), d.map((f) => f.node);
558
600
  }, n = {
559
- container(s) {
560
- return e.container = s, n;
601
+ container(o) {
602
+ return e.container = o, n;
561
603
  },
562
- containerBox(s) {
563
- return e.containerBox = s, n;
604
+ containerBox(o) {
605
+ return e.containerBox = o, n;
564
606
  },
565
- elements(s) {
566
- return e.elements = s, n;
607
+ elements(o) {
608
+ return e.elements = o, n;
567
609
  },
568
- zones(s) {
569
- return e.zones = s, n;
610
+ zones(o) {
611
+ return e.zones = o, n;
570
612
  },
571
- filterElements(s) {
572
- return e.filterElements = s, n;
613
+ filterElements(o) {
614
+ return e.filterElements = o, n;
573
615
  },
574
- filterZones(s) {
575
- return e.filterZones = s, n;
616
+ filterZones(o) {
617
+ return e.filterZones = o, n;
576
618
  },
577
- collision(s) {
578
- return e.collision = s, n;
619
+ collision(o) {
620
+ return e.collision = o, n;
579
621
  },
580
- sortElements(s) {
581
- return e.sortElements = s, n;
622
+ sortElements(o) {
623
+ return e.sortElements = o, n;
582
624
  },
583
- sortZones(s) {
584
- return e.sortZones = s, n;
625
+ sortZones(o) {
626
+ return e.sortZones = o, n;
585
627
  },
586
628
  build() {
587
- const s = e;
588
- if (!s.container || !s.elements || !s.zones || !s.collision)
629
+ const o = e;
630
+ if (!o.container || !o.elements || !o.zones || !o.collision)
589
631
  throw new Error("sensor: container, elements, zones, collision are required");
590
- return (i) => {
591
- const a = s.container(i);
592
- if (!a) return { elements: [], zones: [] };
593
- const o = s.containerBox ? s.containerBox(i) : oe(a), r = i.pointer.value?.current ?? { x: 0, y: 0 };
632
+ return (s) => {
633
+ const r = o.container(s);
634
+ if (!r) return { elements: [], zones: [] };
635
+ const i = o.containerBox ? o.containerBox(s) : me(r), a = s.pointer.value?.current ?? { x: 0, y: 0 };
594
636
  return {
595
637
  elements: t(
638
+ s,
596
639
  i,
597
- o,
598
- r,
599
- s.elements(i),
600
- s.filterElements,
601
- s.sortElements,
602
- s.collision
640
+ a,
641
+ o.elements(s),
642
+ o.filterElements,
643
+ o.sortElements,
644
+ o.collision
603
645
  ),
604
646
  zones: t(
647
+ s,
605
648
  i,
606
- o,
607
- r,
608
- s.zones(i),
609
- s.filterZones,
610
- s.sortZones,
611
- s.collision
649
+ a,
650
+ o.zones(s),
651
+ o.filterZones,
652
+ o.sortZones,
653
+ o.collision
612
654
  )
613
655
  };
614
656
  };
615
657
  }
616
658
  };
617
659
  return n;
618
- }, gt = () => ct(), ut = (e) => e.overlay.ref?.value ?? null, ft = (e) => {
619
- const t = e.overlay.style?.value ?? { x: 0, y: 0 }, n = e.overlay.size?.value ?? null, { x: s, y: i } = t, a = n?.width ?? 0, o = n?.height ?? 0;
660
+ }, xt = () => At(), Lt = (e) => e.overlay.ref?.value ?? null, Ct = (e) => {
661
+ const t = e.overlay.position?.value ?? { x: 0, y: 0 }, n = e.overlay.size?.value ?? null, { x: o, y: s } = t, r = n?.width ?? 0, i = n?.height ?? 0;
620
662
  return {
621
- x: s,
622
- y: i,
623
- width: a,
624
- height: o,
625
- top: i,
626
- left: s,
627
- right: s + a,
628
- bottom: i + o
663
+ x: o,
664
+ y: s,
665
+ width: r,
666
+ height: i,
667
+ top: s,
668
+ left: o,
669
+ right: o + r,
670
+ bottom: s + i
629
671
  };
630
- }, dt = (e) => e.entities.visibleDraggableSet, yt = (e) => e.entities.visibleDroppableSet, bt = (e, t) => !t.entities.draggingMap.has(e), mt = (e, t) => ![...t.entities.draggingMap.keys()].some(
631
- (n) => B(n, e)
632
- ), ht = (e, t) => t.entities.draggableMap.has(e) ? !S(e, t) : t.entities.droppableMap.has(e) ? !L(e, t) : !0, ge = (e, t) => bt(e, t) && mt(e, t) && ht(e, t), Dt = (e, t) => at(e, t.containerBox), ue = (e, t, n) => {
672
+ }, kt = (e) => e.entities.allowedDraggableSet, Tt = (e) => e.entities.allowedDroppableSet, Pt = (e, t) => !t.entities.draggingMap.has(e), Rt = (e, t) => ![...t.entities.draggingMap.keys()].some(
673
+ (n) => H(n, e)
674
+ ), Bt = (e, t) => t.entities.draggableMap.has(e) ? !T(e, t) : t.entities.droppableMap.has(e) ? !O(e, t) : !0, Se = (e, t) => Pt(e, t) && Rt(e, t) && Bt(e, t), Ot = (e, t) => vt(e, t.containerBox), ve = (e, t, n) => {
633
675
  if (n.pointer.x >= n.containerBox.x && n.pointer.x <= n.containerBox.x + n.containerBox.width && n.pointer.y >= n.containerBox.y && n.pointer.y <= n.containerBox.y + n.containerBox.height) {
634
676
  if (e.meta.isPointerInElement && t.meta.isPointerInElement)
635
677
  return t.meta.depth - e.meta.depth;
@@ -637,96 +679,96 @@ const N = (e) => {
637
679
  return e.meta.isPointerInElement ? -1 : 1;
638
680
  }
639
681
  return Math.abs(e.meta.overlapPercent - t.meta.overlapPercent) <= 1 ? e.meta.centerDistance - t.meta.centerDistance : t.meta.overlapPercent - e.meta.overlapPercent;
640
- }, ee = gt().container(ut).containerBox(ft).elements(dt).zones(yt).filterElements(ge).filterZones(ge).collision(Dt).sortElements(ue).sortZones(ue).build();
641
- function fe(e) {
642
- const n = (e.collision?.run ?? ee)(e);
643
- Q(e, e.hovered, n);
682
+ }, ue = xt().container(Lt).containerBox(Ct).elements(kt).zones(Tt).filterElements(Se).filterZones(Se).collision(Ot).sortElements(ve).sortZones(ve).build();
683
+ function we(e) {
684
+ const n = (e.collision?.run ?? ue)(e);
685
+ ce(e, e.hovered, n);
644
686
  }
645
- function pt(e, t) {
687
+ function zt(e, t) {
646
688
  const n = e.collision?.throttle?.value ?? 0;
647
689
  if (n <= 0) {
648
- fe(e);
690
+ we(e);
649
691
  return;
650
692
  }
651
- const s = Date.now();
652
- s - t.value >= n && (t.value = s, fe(e));
693
+ const o = Date.now();
694
+ o - t.value >= n && (t.value = o, we(e));
653
695
  }
654
- async function Ee(e) {
696
+ async function Be(e) {
655
697
  const t = e.hovered.droppable.keys().next().value;
656
- if (!t || L(t, e)) return !0;
657
- const n = e.entities.droppableMap.get(t), s = D(e, t), i = n?.events?.onDrop?.(s);
658
- if (i != null && typeof i.then == "function")
698
+ if (!t || O(t, e)) return !0;
699
+ const n = e.entities.droppableMap.get(t), o = E(e, t), s = n?.events?.onDrop?.(o);
700
+ if (s != null && typeof s.then == "function")
659
701
  try {
660
- return await i, !0;
702
+ return await s, !0;
661
703
  } catch {
662
- const o = e.entities.initiatingDraggable;
663
- return x(e, o, "onSelfDragCancel"), h(e, "onDragCancel"), ve(e, e.hovered), !1;
704
+ const i = e.entities.initiatingDraggable;
705
+ return B(e, i, "onSelfDragCancel"), w(e, "onDragCancel"), Re(e, e.hovered), !1;
664
706
  }
665
707
  return !0;
666
708
  }
667
- function Me(e) {
709
+ function Oe(e) {
668
710
  const t = e.entities.initiatingDraggable;
669
- x(e, t, "onSelfDragEnd"), h(e, "onDragEnd"), je(e, e.hovered);
711
+ B(e, t, "onSelfDragEnd"), w(e, "onDragEnd"), yt(e, e.hovered);
670
712
  }
671
- function vt(e) {
713
+ function Ft(e) {
672
714
  const t = e.entities.selectingArea;
673
715
  if (!t) return;
674
- const n = e.entities.selectableAreaMap.get(t), s = [...e.entities.selectedSet];
675
- n?.events?.onSelected?.(s);
716
+ const n = e.entities.selectableAreaMap.get(t), o = [...e.entities.selectedSet];
717
+ n?.events?.onSelected?.(o);
676
718
  }
677
- const Et = (e) => {
719
+ const _t = (e) => {
678
720
  const t = {
679
721
  current: null
680
- }, n = { value: 0 }, s = async () => {
681
- j(), t.current?.cancel(), t.current = null;
682
- const r = e.state.value;
683
- if (r === "dragging") {
684
- if (!await Ee(e)) {
685
- N(e), document.removeEventListener("pointerup", s), document.removeEventListener("pointermove", i);
722
+ }, n = { value: 0 }, o = async () => {
723
+ ae(), t.current?.cancel(), t.current = null;
724
+ const a = e.state.value;
725
+ if (a === "dragging") {
726
+ if (!await Be(e)) {
727
+ W(e), document.removeEventListener("pointerup", o), document.removeEventListener("pointermove", s);
686
728
  return;
687
729
  }
688
- Me(e);
689
- } else r === "selecting" && vt(e);
690
- N(e), document.removeEventListener("pointerup", s), document.removeEventListener("pointermove", i);
691
- }, i = (r) => {
730
+ Oe(e);
731
+ } else a === "selecting" && Ft(e);
732
+ W(e), document.removeEventListener("pointerup", o), document.removeEventListener("pointermove", s);
733
+ }, s = (a) => {
692
734
  if (e.pointer.value) {
693
- if (e.pointer.value.current = { x: r.clientX, y: r.clientY }, Ke(e)) {
694
- X(e, r, "onSelfDragStart"), h(e, "onDragStart");
735
+ if (e.pointer.value.current = { x: a.clientX, y: a.clientY }, nt(e)) {
736
+ ne(e, a, "onSelfDragStart"), w(e, "onDragStart");
695
737
  return;
696
738
  }
697
739
  if (e.state.value === "dragging") {
698
- pt(e, n);
740
+ zt(e, n);
699
741
  const l = e.entities.initiatingDraggable;
700
- x(e, l, "onSelfDragMove"), h(e, "onDragMove");
742
+ B(e, l, "onSelfDragMove"), w(e, "onDragMove");
701
743
  }
702
- e.state.value === "selecting" && et(e);
744
+ e.state.value === "selecting" && mt(e);
703
745
  }
704
746
  };
705
- return { pointerDown: (r) => {
706
- document.addEventListener("pointerup", s), document.addEventListener("pointermove", i);
707
- const l = r.target, c = l.closest(
708
- k.SELECT_AREA
709
- ), f = l.closest(
710
- k.DRAGGABLE
747
+ return { pointerDown: (a) => {
748
+ document.addEventListener("pointerup", o), document.addEventListener("pointermove", s);
749
+ const l = a.target, c = l.closest(
750
+ G.SELECT_AREA
751
+ ), u = l.closest(
752
+ G.DRAGGABLE
711
753
  );
712
754
  if (e.entities.modifiersSelectableAreaSet.size > 0 && e.entities.modifiersSelectableAreaSet.has(c)) {
713
- W(), e.pointer.value = J(r), e.state.value = "selecting", e.entities.selectingArea = c;
755
+ re(), e.pointer.value = le(a), e.state.value = "selecting", e.entities.selectingArea = c;
714
756
  return;
715
757
  }
716
- if (e.entities.modifiersDraggableSet.size > 0 && e.entities.modifiersDraggableSet.has(f)) {
717
- const u = e.entities.draggableMap.get(f);
718
- if (!De(l, f, u?.dragHandle))
758
+ if (e.entities.modifiersDraggableSet.size > 0 && e.entities.modifiersDraggableSet.has(u)) {
759
+ const g = e.entities.draggableMap.get(u);
760
+ if (!Te(l, u, g?.dragHandle))
719
761
  return;
720
- W(), e.entities.initiatingDraggable = f;
721
- const d = me(r, f);
722
- e.pointer.value = J(r, d.x, d.y), u?.activation?.distance || u?.activation?.delay ? (e.state.value = "activating", u?.activation?.delay && (e.delay.startTime = Date.now(), t.current = He(e, () => {
723
- G(e), X(e, r, "onSelfDragStart"), h(e, "onDragStart");
724
- }))) : (G(e), X(e, r, "onSelfDragStart"), h(e, "onDragStart"));
762
+ re(), e.entities.initiatingDraggable = u;
763
+ const d = Ce(a, u);
764
+ e.pointer.value = le(a, d.x, d.y), g?.activation?.distance || g?.activation?.delay ? (e.state.value = "activating", g?.activation?.delay && (e.delay.startTime = Date.now(), t.current = ot(e, () => {
765
+ q(e), ne(e, a, "onSelfDragStart"), w(e, "onDragStart");
766
+ }))) : (q(e), ne(e, a, "onSelfDragStart"), w(e, "onDragStart"));
725
767
  }
726
- }, pointerUp: s, pointerMove: i, cleanup: () => {
727
- t.current?.cancel(), document.removeEventListener("pointerup", s), document.removeEventListener("pointermove", i), e.lib.draggableObserver.disconnect(), e.lib.droppableObserver.disconnect(), e.lib.selectableAreaObserver.disconnect(), e.lib.overlaySizeObserver.disconnect();
768
+ }, pointerUp: o, pointerMove: s, cleanup: () => {
769
+ t.current?.cancel(), document.removeEventListener("pointerup", o), document.removeEventListener("pointermove", s), e.lib.draggableObserver.disconnect(), e.lib.droppableObserver.disconnect(), e.lib.selectableAreaObserver.disconnect(), e.lib.overlaySizeObserver.disconnect();
728
770
  } };
729
- }, Mt = {
771
+ }, Gt = {
730
772
  ArrowUp: { dx: 0, dy: -1 },
731
773
  ArrowDown: { dx: 0, dy: 1 },
732
774
  ArrowLeft: { dx: -1, dy: 0 },
@@ -735,73 +777,205 @@ const Et = (e) => {
735
777
  KeyA: { dx: -1, dy: 0 },
736
778
  KeyS: { dx: 0, dy: 1 },
737
779
  KeyD: { dx: 1, dy: 0 }
738
- }, St = (e) => (t) => {
780
+ }, It = (e) => (t) => {
739
781
  const { keys: n } = e.keyboard;
740
782
  if (n.pressedKeys.value.add(t.code), e.state.value === "dragging") {
741
783
  if (n.forCancel.includes(t.code)) {
742
- t.preventDefault(), j(), x(e, e.entities.initiatingDraggable, "onSelfDragCancel"), h(e, "onDragCancel"), ve(e, e.hovered), N(e);
784
+ t.preventDefault(), ae(), B(
785
+ e,
786
+ e.entities.initiatingDraggable,
787
+ "onSelfDragCancel"
788
+ ), w(e, "onDragCancel"), Re(e, e.hovered), W(e);
743
789
  return;
744
790
  }
745
791
  if (n.forDrop.includes(t.code)) {
746
- t.preventDefault(), (async () => (await Ee(e) && Me(e), j(), N(e)))();
792
+ t.preventDefault(), (async () => (await Be(e) && Oe(e), ae(), W(e)))();
747
793
  return;
748
794
  }
749
- const i = Mt[t.code];
750
- if (i && n.forMove.includes(t.code) && e.pointer.value) {
795
+ const s = Gt[t.code];
796
+ if (s && n.forMove.includes(t.code) && e.pointer.value) {
751
797
  t.preventDefault();
752
- const a = n.forMoveFaster.some((c) => n.pressedKeys.value.has(c)), o = e.keyboard.step * (a ? e.keyboard.moveFaster : 1);
798
+ const r = n.forMoveFaster.some(
799
+ (c) => n.pressedKeys.value.has(c)
800
+ ), i = e.keyboard.step * (r ? e.keyboard.moveFaster : 1);
753
801
  e.pointer.value.current = {
754
- x: e.pointer.value.current.x + i.dx * o,
755
- y: e.pointer.value.current.y + i.dy * o
802
+ x: e.pointer.value.current.x + s.dx * i,
803
+ y: e.pointer.value.current.y + s.dy * i
756
804
  };
757
- const l = (e.collision?.run ?? ee)(e);
758
- Q(e, e.hovered, l), x(e, e.entities.initiatingDraggable, "onSelfDragMove"), h(e, "onDragMove");
805
+ const l = (e.collision?.run ?? ue)(e);
806
+ ce(e, e.hovered, l), B(
807
+ e,
808
+ e.entities.initiatingDraggable,
809
+ "onSelfDragMove"
810
+ ), w(e, "onDragMove");
759
811
  return;
760
812
  }
761
813
  return;
762
814
  }
763
815
  if (n.forDrag.includes(t.code)) {
764
- const i = document.activeElement;
765
- if (!i) return;
766
- const a = i.closest(k.DRAGGABLE);
767
- if (!a || e.entities.modifiersDraggableSet.size === 0 || !e.entities.modifiersDraggableSet.has(a))
816
+ const s = document.activeElement;
817
+ if (!s) return;
818
+ const r = s.closest(
819
+ G.DRAGGABLE
820
+ );
821
+ if (!r || e.entities.modifiersDraggableSet.size === 0 || !e.entities.modifiersDraggableSet.has(r))
822
+ return;
823
+ const i = e.entities.draggableMap.get(r);
824
+ if (!Te(s, r, i?.dragHandle, !0))
768
825
  return;
769
- const o = e.entities.draggableMap.get(a);
770
- if (!De(i, a, o?.dragHandle, !0)) return;
771
- t.preventDefault(), W();
772
- const r = a.getBoundingClientRect(), l = r.left + r.width / 2, c = r.top + r.height / 2, f = {
826
+ t.preventDefault(), re();
827
+ const a = r.getBoundingClientRect(), l = a.left + a.width / 2, c = a.top + a.height / 2, u = {
773
828
  clientX: l,
774
829
  clientY: c
775
830
  };
776
- e.entities.initiatingDraggable = a;
777
- const u = me(f, a);
778
- e.pointer.value = J(f, u.x, u.y), G(e);
779
- const g = (e.collision?.run ?? ee)(e);
780
- Q(e, e.hovered, g), x(e, a, "onSelfDragStart"), h(e, "onDragStart");
831
+ e.entities.initiatingDraggable = r;
832
+ const g = Ce(u, r);
833
+ e.pointer.value = le(
834
+ u,
835
+ g.x,
836
+ g.y
837
+ ), q(e);
838
+ const f = (e.collision?.run ?? ue)(e);
839
+ ce(e, e.hovered, f), B(e, r, "onSelfDragStart"), w(e, "onDragStart");
781
840
  }
782
- }, At = (e) => (t) => {
841
+ }, Kt = (e) => (t) => {
783
842
  e.keyboard.keys.pressedKeys.value.delete(t.code);
784
- }, wt = (e) => () => {
843
+ }, Ht = (e) => () => {
785
844
  e.keyboard.keys.pressedKeys.value.clear();
786
- }, Z = {
787
- keyDown: St,
788
- keyUp: At,
789
- clear: wt
790
- }, xt = (e) => () => {
845
+ }, oe = {
846
+ keyDown: It,
847
+ keyUp: Kt,
848
+ clear: Ht
849
+ }, Nt = (e) => () => {
791
850
  e.state.value && (e.scrollPosition.x = window.scrollX, e.scrollPosition.y = window.scrollY);
792
- }, Lt = (e) => {
793
- const t = Et(e), n = Z.keyDown(e), s = Z.keyUp(e), i = Z.clear(e), a = xt(e);
794
- R(() => {
795
- document.addEventListener("pointerdown", t.pointerDown), document.addEventListener("keydown", n), document.addEventListener("keyup", s), document.addEventListener("blur", i), document.addEventListener("scroll", a, !0);
796
- }), P(() => {
797
- document.removeEventListener("pointerdown", t.pointerDown), document.removeEventListener("pointerup", t.pointerUp), document.removeEventListener("pointermove", t.pointerMove), document.removeEventListener("keydown", n), document.removeEventListener("keyup", s), document.removeEventListener("blur", i), document.removeEventListener("scroll", a, !0), t.cleanup();
851
+ }, x = 50, Yt = 144, Ee = 1e3 / Yt;
852
+ function Xt(e) {
853
+ return e == null ? {
854
+ top: x,
855
+ right: x,
856
+ bottom: x,
857
+ left: x
858
+ } : typeof e == "number" ? {
859
+ top: e,
860
+ right: e,
861
+ bottom: e,
862
+ left: e
863
+ } : {
864
+ top: e.top ?? x,
865
+ right: e.right ?? x,
866
+ bottom: e.bottom ?? x,
867
+ left: e.left ?? x
868
+ };
869
+ }
870
+ const Ut = {
871
+ getScrollState(e) {
872
+ return {
873
+ scrollTop: e.scrollTop,
874
+ scrollLeft: e.scrollLeft,
875
+ rect: e.getBoundingClientRect()
876
+ };
877
+ },
878
+ setScroll(e, t, n) {
879
+ e.scrollTop = t, e.scrollLeft = n;
880
+ }
881
+ };
882
+ function ze(e, t, n, o = Ut, s) {
883
+ const { speed: r = 10, disabled: i = !1 } = t, a = Xt(t.threshold);
884
+ let l = null, c = null, u = null, g = 0, d = 0;
885
+ const f = (D) => {
886
+ s && (s.value = D);
887
+ }, y = (D) => {
888
+ const z = e.value, A = n();
889
+ if (!z || !A || i) {
890
+ f(!1);
891
+ return;
892
+ }
893
+ c || (c = D);
894
+ const N = D - c;
895
+ if (N < Ee) {
896
+ l = requestAnimationFrame(y);
897
+ return;
898
+ }
899
+ const h = r * (N / Ee);
900
+ c = D;
901
+ const {
902
+ scrollTop: S,
903
+ scrollLeft: F,
904
+ rect: _e
905
+ } = o.getScrollState(z);
906
+ (!u || g !== S || d !== F) && (u = _e, g = S, d = F);
907
+ let P = !1, Q = S, ee = F;
908
+ a.top > 0 && A.y - u.top < a.top ? (Q = S - h, P = !0) : a.bottom > 0 && u.bottom - A.y < a.bottom && (Q = S + h, P = !0), a.left > 0 && A.x - u.left < a.left ? (ee = F - h, P = !0) : a.right > 0 && u.right - A.x < a.right && (ee = F + h, P = !0), P && o.setScroll(z, Q, ee), f(P), l = requestAnimationFrame(y);
909
+ };
910
+ return { run: () => {
911
+ c = null, l = requestAnimationFrame(y);
912
+ }, stop: () => {
913
+ l && (cancelAnimationFrame(l), l = null), u = null, g = 0, d = 0, c = null, f(!1);
914
+ } };
915
+ }
916
+ const $t = {
917
+ getScrollState() {
918
+ return {
919
+ scrollTop: window.scrollY ?? document.documentElement.scrollTop,
920
+ scrollLeft: window.scrollX ?? document.documentElement.scrollLeft,
921
+ rect: new DOMRect(0, 0, window.innerWidth, window.innerHeight)
922
+ };
923
+ },
924
+ setScroll(e, t, n) {
925
+ window.scrollTo(n, t);
926
+ }
927
+ }, Zt = {
928
+ get value() {
929
+ return typeof document < "u" ? document.documentElement : null;
930
+ }
931
+ };
932
+ function Vt(e, t) {
933
+ const n = Z(!1), s = ze(
934
+ Zt,
935
+ t ?? {},
936
+ () => {
937
+ if (e.state.value !== "dragging") return null;
938
+ const a = e.overlay.position.value, l = e.overlay.size.value;
939
+ return a ? l?.width && l?.height ? {
940
+ x: a.x + l.width / 2,
941
+ y: a.y + l.height / 2
942
+ } : a : null;
943
+ },
944
+ $t,
945
+ n
946
+ ), r = j(
947
+ () => e.state.value,
948
+ (a) => {
949
+ a === "dragging" ? s.run() : s.stop();
950
+ }
951
+ ), i = () => {
952
+ r(), s.stop();
953
+ };
954
+ return Ge(i), { isScrolling: n, stop: i };
955
+ }
956
+ const qt = (e) => {
957
+ const t = _t(e), n = oe.keyDown(e), o = oe.keyUp(e), s = oe.clear(e), r = Nt(e);
958
+ let i = null;
959
+ j(
960
+ e.autoScrollViewport,
961
+ (a) => {
962
+ i?.(), i = null, (a === !0 || a && typeof a == "object") && (i = Vt(
963
+ e,
964
+ a === !0 ? {} : a
965
+ ).stop);
966
+ },
967
+ { immediate: !0 }
968
+ ), I(() => {
969
+ document.addEventListener("pointerdown", t.pointerDown), document.addEventListener("keydown", n), document.addEventListener("keyup", o), document.addEventListener("blur", s), document.addEventListener("scroll", r, !0);
970
+ }), K(() => {
971
+ document.removeEventListener("pointerdown", t.pointerDown), document.removeEventListener("pointerup", t.pointerUp), document.removeEventListener("pointermove", t.pointerMove), document.removeEventListener("keydown", n), document.removeEventListener("keyup", o), document.removeEventListener("blur", s), document.removeEventListener("scroll", r, !0), i?.(), t.cleanup();
798
972
  });
799
- }, Y = () => {
800
- const e = de(te);
973
+ }, J = () => {
974
+ const e = Ae(ge);
801
975
  if (!e) throw Error("DnD provider not found");
802
976
  return e;
803
- }, Ct = () => {
804
- const e = Y();
977
+ }, Fe = () => {
978
+ const e = J();
805
979
  return {
806
980
  overlay: e.overlay,
807
981
  delay: e.delay,
@@ -812,84 +986,108 @@ const Et = (e) => {
812
986
  scrollPosition: e.scrollPosition,
813
987
  keyboard: e.keyboard,
814
988
  hovered: e.hovered,
815
- collision: e.collision
989
+ collision: e.collision,
990
+ autoScrollViewport: e.autoScrollViewport
816
991
  };
817
- }, kt = /* @__PURE__ */ ye({
992
+ }, Wt = /* @__PURE__ */ xe({
818
993
  __name: "DefaultOverlay",
819
994
  setup(e) {
820
- const { entities: t, state: n, overlay: s } = Ct();
821
- return (i, a) => A(n) === "dragging" ? (p(), K("div", {
995
+ const { entities: t, state: n, overlay: o } = Fe();
996
+ return (s, r) => C(n) === "dragging" ? (L(), $("div", {
822
997
  key: 0,
823
998
  class: "dnd-kit-default-overlay",
824
- style: se({
825
- "--position-x": A(s).style.value.x + "px",
826
- "--position-y": A(s).style.value.y + "px"
999
+ style: de({
1000
+ "--position-x": C(o).position.value.x + "px",
1001
+ "--position-y": C(o).position.value.y + "px"
827
1002
  })
828
1003
  }, [
829
- (p(!0), K(V, null, Ae(A(t).draggingMap, ([o, r]) => (p(), K(V, null, [
830
- A(t).draggableMap.get(o)?.render ? (p(), H(q(A(t).draggableMap.get(o)?.render), {
831
- key: 0,
832
- class: "test"
833
- })) : (p(), H(q(o.tagName), {
1004
+ (L(!0), $(se, null, Ie(C(t).draggingMap, ([i, a]) => (L(), $(se, null, [
1005
+ C(t).draggableMap.get(i)?.render ? (L(), V(ie(C(t).draggableMap.get(i)?.render), { key: 0 })) : (L(), V(ie(i.tagName), {
834
1006
  key: 1,
835
- innerHTML: r.initialOuterHTML,
836
- class: "test",
837
- style: se({
838
- width: r.initialRect.width + "px",
839
- height: r.initialRect.height + "px"
1007
+ innerHTML: a.initialOuterHTML,
1008
+ style: de({
1009
+ width: a.initialRect.width + "px",
1010
+ height: a.initialRect.height + "px"
840
1011
  })
841
1012
  }, null, 8, ["innerHTML", "style"]))
842
1013
  ], 64))), 256))
843
- ], 4)) : we("", !0);
1014
+ ], 4)) : Ke("", !0);
844
1015
  }
845
- }), Pt = /* @__PURE__ */ ye({
1016
+ }), Jt = /* @__PURE__ */ xe({
846
1017
  __name: "DnDProvider",
1018
+ props: {
1019
+ autoScrollViewport: { type: [Object, Boolean, null] },
1020
+ overlayTo: { type: [String, Boolean, null] }
1021
+ },
847
1022
  setup(e) {
848
- const t = xe("overlayRef"), n = $e(t);
849
- Lt(n);
850
- const s = E(
851
- () => n.overlay.render.value ?? kt
1023
+ const t = e, n = He("overlayRef"), o = lt(n, t);
1024
+ qt(o);
1025
+ const s = b(
1026
+ () => o.overlay.render.value ?? Wt
852
1027
  );
853
- return Le(te, n), (i, a) => (p(), K(V, null, [
854
- ie(i.$slots, "default"),
855
- (p(), H(Ce, { to: "body" }, [
856
- ke("div", {
1028
+ return Ne(ge, o), (r, i) => (L(), $(se, null, [
1029
+ ye(r.$slots, "default"),
1030
+ (L(), V(Ye, {
1031
+ to: C(o).overlay.to.value || "body"
1032
+ }, [
1033
+ Xe("div", {
857
1034
  ref_key: "overlayRef",
858
- ref: t,
1035
+ ref: n,
859
1036
  class: "dnd-kit-overlay-container"
860
1037
  }, [
861
- ie(i.$slots, "overlay", { overlay: s.value }, () => [
862
- (p(), H(q(s.value)))
1038
+ ye(r.$slots, "overlay", { overlay: s.value }, () => [
1039
+ (L(), V(ie(s.value)))
863
1040
  ])
864
1041
  ], 512)
865
- ]))
1042
+ ], 8, ["to"]))
866
1043
  ], 64));
867
1044
  }
868
1045
  });
869
- function Bt(e, t, n) {
870
- const s = Y();
871
- let i, a, o;
872
- return typeof t == "function" ? (i = {}, a = t) : (i = t ?? {}, a = n), R(() => {
873
- o = U(e), o && (o.addEventListener("dragstart", m), o.addEventListener("drag", m), o.addEventListener("dragend", m), o.setAttribute(M.DRAGGABLE, ""), s.lib.draggableObserver.observe(o), s.entities.draggableMap.set(o, {
874
- render: i.render,
875
- disabled: i.disabled ?? !1,
876
- groups: i.groups ?? [],
877
- modifier: i.modifier,
878
- events: i.events,
879
- payload: a,
880
- dragHandle: i.dragHandle,
881
- activation: i.activation,
882
- placementMargins: i.placementMargins
1046
+ function Qt(e, t, n) {
1047
+ const o = J();
1048
+ let s, r, i;
1049
+ typeof t == "function" ? (s = {}, r = t) : (s = t ?? {}, r = n);
1050
+ const a = b({
1051
+ get() {
1052
+ const u = v(e);
1053
+ return u ? o.entities.selectedSet.has(u) : !1;
1054
+ },
1055
+ set(u) {
1056
+ const g = v(e);
1057
+ g && o.entities.selectedSet[u ? "add" : "delete"](g);
1058
+ }
1059
+ }), l = b(() => {
1060
+ const u = v(e);
1061
+ return u ? o.entities.draggingMap.has(u) : !1;
1062
+ }), c = b(() => {
1063
+ const u = v(e);
1064
+ return u ? o.entities.allowedDraggableSet.has(u) : !1;
1065
+ });
1066
+ return I(() => {
1067
+ i = v(e), i && (i.addEventListener("dragstart", p), i.addEventListener("drag", p), i.addEventListener("dragend", p), i.setAttribute(k.DRAGGABLE, ""), o.lib.draggableObserver.observe(i), o.entities.draggableMap.set(i, {
1068
+ render: s.render,
1069
+ disabled: s.disabled ?? !1,
1070
+ groups: s.groups ?? [],
1071
+ modifier: s.modifier,
1072
+ events: s.events,
1073
+ payload: r,
1074
+ dragHandle: s.dragHandle,
1075
+ activation: s.activation,
1076
+ placementMargins: s.placementMargins
883
1077
  }));
884
- }), P(() => {
885
- o && (s.lib.draggableObserver.unobserve(o), s.entities.visibleDraggableSet.delete(o), s.entities.draggableMap.delete(o), s.entities.modifiersDraggableSet.delete(o));
886
- }), {};
1078
+ }), K(() => {
1079
+ i && (o.lib.draggableObserver.unobserve(i), o.entities.visibleDraggableSet.delete(i), o.entities.draggableMap.delete(i), o.entities.modifiersDraggableSet.delete(i));
1080
+ }), {
1081
+ selected: a,
1082
+ isDragging: l,
1083
+ isAllowed: c
1084
+ };
887
1085
  }
888
- const Tt = (e, t) => {
889
- const n = Y(), s = E(() => e.value === n.entities.selectingArea);
890
- let i = null;
891
- R(() => {
892
- i = U(e), i && (i.setAttribute(M.SELECT_AREA, ""), n.lib.selectableAreaObserver.observe(i), n.entities.selectableAreaMap.set(i, {
1086
+ const en = (e, t) => {
1087
+ const n = J(), o = b(() => e.value === n.entities.selectingArea);
1088
+ let s = null;
1089
+ I(() => {
1090
+ s = v(e), s && (s.setAttribute(k.SELECT_AREA, ""), n.lib.selectableAreaObserver.observe(s), n.entities.selectableAreaMap.set(s, {
893
1091
  modifier: t?.modifier ?? {
894
1092
  keys: ["ControlLeft"],
895
1093
  method: "every"
@@ -898,51 +1096,95 @@ const Tt = (e, t) => {
898
1096
  disabled: t?.disabled ?? !1,
899
1097
  groups: t?.groups ?? []
900
1098
  }));
901
- }), P(() => {
902
- i && (n.lib.selectableAreaObserver.unobserve(i), n.entities.visibleSelectableAreaSet.delete(i), n.entities.modifiersSelectableAreaSet.delete(i), n.entities.selectableAreaMap.delete(i));
1099
+ }), K(() => {
1100
+ s && (n.lib.selectableAreaObserver.unobserve(s), n.entities.visibleSelectableAreaSet.delete(s), n.entities.modifiersSelectableAreaSet.delete(s), n.entities.selectableAreaMap.delete(s));
903
1101
  });
904
- const a = E(() => {
1102
+ const r = b(() => {
905
1103
  n.scrollPosition.x, n.scrollPosition.y;
906
- const o = n.pointer.value;
907
- return !o || n.state.value !== "selecting" || !i ? {} : Qe(o.start, o.current, i);
1104
+ const i = n.pointer.value;
1105
+ return !i || n.state.value !== "selecting" || !s ? {} : bt(i.start, i.current, s);
908
1106
  });
909
1107
  return {
910
- isSelecting: s,
911
- style: a
1108
+ isSelecting: o,
1109
+ style: r
912
1110
  };
913
1111
  };
914
- function Ot(e, t) {
915
- const n = de(te);
1112
+ function tn(e, t) {
1113
+ const n = Ae(ge);
916
1114
  if (!n) throw Error("DnD provider not found");
917
- let s = null;
918
- return R(() => {
919
- s = U(e), s && (s.setAttribute(M.CONSTRAINT_AREA, ""), n.entities.constraintsAreaMap.set(s, {
1115
+ let o = null;
1116
+ return I(() => {
1117
+ o = v(e), o && (o.setAttribute(k.CONSTRAINT_AREA, ""), n.entities.constraintsAreaMap.set(o, {
920
1118
  axis: t?.axis || "both",
921
1119
  restrictToArea: t?.restrictToArea || !1
922
1120
  }));
923
- }), P(() => {
924
- s && n.entities.constraintsAreaMap.delete(s);
1121
+ }), K(() => {
1122
+ o && n.entities.constraintsAreaMap.delete(o);
925
1123
  }), {};
926
1124
  }
927
- function zt(e, t, n) {
928
- const s = Y();
929
- let i = null, a, o;
930
- typeof t == "function" ? (a = {}, o = t) : (a = t ?? {}, o = n), R(() => {
931
- i = U(e), i && (i.setAttribute(M.DROPPABLE, ""), s.lib.droppableObserver.observe(i), s.entities.droppableMap.set(i, {
932
- disabled: a.disabled ?? !1,
933
- groups: a.groups ?? [],
934
- events: a.events,
935
- payload: o
1125
+ function nn(e, t, n) {
1126
+ const o = J();
1127
+ let s = null, r, i;
1128
+ typeof t == "function" ? (r = {}, i = t) : (r = t ?? {}, i = n);
1129
+ const a = b(() => {
1130
+ const l = v(e);
1131
+ return l ? o.entities.allowedDroppableSet.has(l) : !1;
1132
+ });
1133
+ return I(() => {
1134
+ s = v(e), s && (s.setAttribute(k.DROPPABLE, ""), o.lib.droppableObserver.observe(s), o.entities.droppableMap.set(s, {
1135
+ disabled: r.disabled ?? !1,
1136
+ groups: r.groups ?? [],
1137
+ events: r.events,
1138
+ payload: i
936
1139
  }));
937
- }), P(() => {
938
- i && (s.lib.droppableObserver.unobserve(i), s.entities.visibleDroppableSet.delete(i), s.entities.droppableMap.delete(i));
1140
+ }), K(() => {
1141
+ s && (o.lib.droppableObserver.unobserve(s), o.entities.visibleDroppableSet.delete(s), o.entities.droppableMap.delete(s));
1142
+ }), {
1143
+ isAllowed: a
1144
+ };
1145
+ }
1146
+ const on = (e, t) => {
1147
+ const n = Fe(), o = Z(!1), r = ze(
1148
+ e,
1149
+ t ?? {},
1150
+ () => {
1151
+ if (n.state.value !== "dragging") return null;
1152
+ const i = n.overlay.position.value, a = n.overlay.size.value;
1153
+ return i ? a?.width && a?.height ? {
1154
+ x: i.x + a.width / 2,
1155
+ y: i.y + a.height / 2
1156
+ } : i : null;
1157
+ },
1158
+ void 0,
1159
+ o
1160
+ );
1161
+ return j(
1162
+ () => n.state.value,
1163
+ (i) => {
1164
+ i === "dragging" ? r.run() : r.stop();
1165
+ }
1166
+ ), { isScrolling: o };
1167
+ };
1168
+ function Me(e, t) {
1169
+ return t <= 0 ? e : Math.round(e / t) * t;
1170
+ }
1171
+ function sn(e, t) {
1172
+ const n = t && "grid" in t && t.grid != null, o = t ? n ? t.grid : t.gridX : 1, s = t ? n ? t.grid : t.gridY : 1;
1173
+ return b(() => {
1174
+ const { x: r, y: i } = e.value;
1175
+ return {
1176
+ x: Me(r, o),
1177
+ y: Me(i, s)
1178
+ };
939
1179
  });
940
1180
  }
941
1181
  export {
942
- Pt as DnDProvider,
943
- Ot as makeConstraintArea,
944
- Bt as makeDraggable,
945
- zt as makeDroppable,
946
- Tt as makeSelectionArea,
947
- Ct as useDnDProvider
1182
+ Jt as DnDProvider,
1183
+ on as makeAutoScroll,
1184
+ tn as makeConstraintArea,
1185
+ Qt as makeDraggable,
1186
+ nn as makeDroppable,
1187
+ en as makeSelectionArea,
1188
+ sn as makeSnappedOverlayPosition,
1189
+ Fe as useDnDProvider
948
1190
  };