@vue-dnd-kit/core 2.0.0-alpha1 → 2.0.0-alpha10

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