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

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 (31) hide show
  1. package/dist/external/composables/makeDraggable.d.ts +2 -1
  2. package/dist/external/composables/makeDroppable.d.ts +2 -1
  3. package/dist/external/env.d.ts +7 -0
  4. package/dist/external/index.d.ts +3 -5
  5. package/dist/external/types/entities.d.ts +34 -7
  6. package/dist/external/types/index.d.ts +5 -4
  7. package/dist/external/types/operations.d.ts +184 -0
  8. package/dist/external/types/placement.d.ts +13 -1
  9. package/dist/external/types/provider.d.ts +28 -18
  10. package/dist/internal/logic/hover.d.ts +0 -1
  11. package/dist/internal/logic/operations.d.ts +35 -0
  12. package/dist/internal/logic/payload.d.ts +3 -10
  13. package/dist/internal/logic/pointer.d.ts +3 -1
  14. package/dist/internal/sensors/collision-worker.d.ts +28 -0
  15. package/dist/internal/sensors/default-collision.d.ts +2 -7
  16. package/dist/internal/sensors/index.d.ts +1 -0
  17. package/dist/internal/sensors/sensor.d.ts +8 -1
  18. package/dist/internal/sensors/steps.d.ts +24 -4
  19. package/dist/internal/types/auto-scroll.d.ts +2 -1
  20. package/dist/internal/types/provider.d.ts +2 -0
  21. package/dist/internal/utils/createInternalWorker.d.ts +9 -0
  22. package/dist/internal/utils/disabled.d.ts +3 -3
  23. package/dist/internal/utils/events.d.ts +6 -6
  24. package/dist/internal/utils/hover.d.ts +15 -0
  25. package/dist/internal/utils/observer.d.ts +5 -9
  26. package/dist/internal/utils/placement.d.ts +5 -11
  27. package/dist/internal/utils/provider.d.ts +1 -1
  28. package/dist/internal/utils/selection.d.ts +2 -1
  29. package/dist/vue-dnd-kit-core.cjs.js +6 -2
  30. package/dist/vue-dnd-kit-core.es.js +1298 -759
  31. package/package.json +1 -1
@@ -0,0 +1,9 @@
1
+ export interface IInternalWorker<T, R> {
2
+ run: (data: T) => Promise<R>;
3
+ terminate: () => void;
4
+ readonly isSupported: boolean;
5
+ }
6
+ export interface ICreateInternalWorkerOptions {
7
+ localDependencies?: Function[];
8
+ }
9
+ export declare function createInternalWorker<T, R>(fn: (data: T) => R, options?: ICreateInternalWorkerOptions): IInternalWorker<T, R>;
@@ -1,9 +1,9 @@
1
1
  import { IEntities } from '../../external/types';
2
2
  /** Minimal context for draggable/droppable checks */
3
3
  export type IEffectivelyDisabledContext = {
4
- entities: Pick<IEntities, 'draggableMap' | 'droppableMap'>;
4
+ entities: Pick<IEntities, 'draggableMap' | 'droppableMap' | 'visibleDraggableSet' | 'visibleDroppableSet'>;
5
5
  };
6
- /** True if node is disabled as draggable (self or inside disabled draggable). O(draggableMap.size) */
6
+ /** True if node is disabled as draggable (self or inside disabled draggable). Only checks visible elements. */
7
7
  export declare const isEffectivelyDisabledDraggable: (node: HTMLElement, ctx: IEffectivelyDisabledContext) => boolean;
8
- /** True if node is disabled as droppable (self or inside disabled droppable). O(droppableMap.size) */
8
+ /** True if node is disabled as droppable (self or inside disabled droppable). Only checks visible elements. */
9
9
  export declare const isEffectivelyDisabledDroppable: (node: HTMLElement, ctx: IEffectivelyDisabledContext) => boolean;
@@ -1,13 +1,11 @@
1
- import { IDnDProviderInternal } from '../types/provider';
2
1
  import { IDragEvent, IHovered } from '../../external/types/provider';
2
+ import { IDnDProviderInternal } from '../types/provider';
3
3
  export type TSelfDragEvent = 'onSelfDragStart' | 'onSelfDragMove' | 'onSelfDragEnd' | 'onSelfDragCancel';
4
4
  /** First key from Map or undefined */
5
5
  export declare const getFirstKey: <K>(map: Map<K, unknown>) => K | undefined;
6
6
  /** Closest draggable from event target */
7
7
  export declare const getClosestDraggableFromEvent: (event: PointerEvent) => HTMLElement | null;
8
- export declare const getDragEvent: (provider: IDnDProviderInternal, dropZone?: HTMLElement) => IDragEvent;
9
- /** Triggers onSelf* for element from event if it's in draggingMap */
10
- export declare const triggerSelfDragFromEvent: (provider: IDnDProviderInternal, event: PointerEvent, eventName: TSelfDragEvent) => void;
8
+ export declare const getDragEvent: (provider: IDnDProviderInternal, dropZoneEl?: HTMLElement) => IDragEvent;
11
9
  /** Triggers onSelf* only for the initiating element (event.target.closest), skip if disabled */
12
10
  export declare const triggerSelfDragForElement: (provider: IDnDProviderInternal, element: HTMLElement | undefined, eventName: TSelfDragEvent) => void;
13
11
  /** Triggers onDrag* for ALL non-disabled draggable elements */
@@ -16,7 +14,9 @@ export declare const triggerDragForAll: (provider: IDnDProviderInternal, eventNa
16
14
  export declare const triggerZoneEnterLeave: (provider: IDnDProviderInternal, prevZone: HTMLElement | undefined, newZone: HTMLElement | undefined) => void;
17
15
  /** Triggers onHover/onLeave when hovered draggable changes, skip disabled */
18
16
  export declare const triggerDraggableHoverChange: (provider: IDnDProviderInternal, prevEl: HTMLElement | undefined, newEl: HTMLElement | undefined) => void;
19
- /** Triggers zone onLeave on drag end, skip disabled */
17
+ /** Triggers onSelf* from pointer event */
18
+ export declare const triggerSelfDragFromEvent: (provider: IDnDProviderInternal, event: PointerEvent, eventName: TSelfDragEvent) => void;
19
+ /** Triggers zone onLeave on drag end */
20
20
  export declare const triggerZoneLeave: (provider: IDnDProviderInternal, hovered: IHovered) => void;
21
- /** Triggers zone onLeave on drop failure, skip disabled */
21
+ /** Triggers zone onLeave on drop cancel */
22
22
  export declare const triggerDropCancelEvents: (provider: IDnDProviderInternal, hovered: IHovered) => void;
@@ -0,0 +1,15 @@
1
+ import { ICoordinates } from '../../external';
2
+ /** Distance from pointer to element center */
3
+ export declare const getDistanceFromPointerToElement: (pointer: ICoordinates, element: HTMLElement) => number;
4
+ /**
5
+ * Get element center coordinates from DOMRect
6
+ * Utility for inline calculations without getBoundingClientRect call
7
+ */
8
+ export declare const getCenterFromRect: (rect: DOMRect) => ICoordinates;
9
+ /** Calculate distance between pointer and rect center */
10
+ export declare const getDistanceToRectCenter: (pointer: ICoordinates, rect: DOMRect) => number;
11
+ /** Pick closest to pointer among zone and element (by distance to center). Returns { zone?, element? } */
12
+ export declare const pickClosestToPointer: (pointer: ICoordinates, zone: HTMLElement | undefined, element: HTMLElement | undefined) => {
13
+ zone?: HTMLElement;
14
+ element?: HTMLElement;
15
+ };
@@ -1,6 +1,4 @@
1
- /**
2
- * Observers — IntersectionObserver (visibility) and ResizeObserver (size)
3
- */
1
+ import { Ref } from 'vue';
4
2
  export interface IObserverWrapper {
5
3
  observe: (element: HTMLElement) => void;
6
4
  unobserve: (element: HTMLElement) => void;
@@ -19,9 +17,7 @@ export declare const createIntersectionObserver: (targetSet: Set<HTMLElement>) =
19
17
  * @param target - Ref to write { width, height } on resize
20
18
  * @returns Object with observe/unobserve/disconnect methods
21
19
  */
22
- export declare const createSizeObserver: (target: {
23
- value: {
24
- width: number;
25
- height: number;
26
- } | null;
27
- }) => IObserverWrapper;
20
+ export declare const createSizeObserver: (target: Ref<{
21
+ width: number;
22
+ height: number;
23
+ } | null>) => IObserverWrapper;
@@ -1,11 +1,4 @@
1
- import { IDnDProviderExternal, IPlacementMargins } from '../../external';
2
- export interface IPlacement {
3
- top: boolean;
4
- right: boolean;
5
- bottom: boolean;
6
- left: boolean;
7
- center?: boolean;
8
- }
1
+ import { IDnDProviderExternal, IPlacement, IPlacementMargins } from '../../external';
9
2
  export interface IRect {
10
3
  top: number;
11
4
  left: number;
@@ -21,8 +14,9 @@ export declare const createPointerBox: (x: number, y: number, size?: number) =>
21
14
  */
22
15
  export declare const getPointerBoxFromProvider: (provider: IDnDProviderExternal) => IRect;
23
16
  /**
24
- * Returns which edge of element is closest to pointer box center.
25
- * With placementMargins: if pointer in center zone, returns center: true.
26
- * Else exactly one of top/right/bottom/left is true.
17
+ * Returns placement: which side(s) of the element the pointer is in.
18
+ * - If placementMargins set and pointer in center zone center: true, top/right/bottom/left all false.
19
+ * - Else center: false, and top/right/bottom/left by quadrants (e.g. top+right for top-right);
20
+ * several can be true at once, only center is exclusive.
27
21
  */
28
22
  export declare const getClosestPlacement: (pointerBox: IRect, elementRect: DOMRect, margins?: IPlacementMargins) => IPlacement;
@@ -6,7 +6,7 @@ import { Ref } from 'vue';
6
6
  * @param entityMap - Map of entities (e.g. selectableAreaMap or draggableEntityMap)
7
7
  * @param visibleSet - Set of visible nodes
8
8
  * @param modifiers - Ref with pressed keys
9
- * @param isDisabled - Optional: override disabled check (e.g. isEffectivelyDisabledDraggable for draggables)
9
+ * @param isDisabled - Optional: override disabled check (e.g. isEffectivelyDisabledDraggable for draggedItems)
10
10
  * @returns Set of filtered nodes with matching modifiers
11
11
  */
12
12
  export declare const filterByModifiers: (entityMap: Map<HTMLElement, IDraggableEntity | ISelectableAreaEntity>, visibleSet: Set<HTMLElement>, modifiers: Ref<Set<string>>, isDisabled?: (node: HTMLElement) => boolean) => Set<HTMLElement>;
@@ -18,7 +18,8 @@ export declare const getBoundedSelectionArea: (start: ICoordinates, current: ICo
18
18
  */
19
19
  export declare const checkIsSelectableArea: (event: PointerEvent, container: HTMLElement) => boolean;
20
20
  /**
21
- * Updates selectedSet based on selection box (pointer start → current)
21
+ * Updates selectedSet based on selection box (pointer start → current).
22
+ * Uses rectCache to avoid getBoundingClientRect() on every pointer move.
22
23
  */
23
24
  export declare const updateSelectionByBox: (provider: IDnDProviderInternal) => void;
24
25
  /**
@@ -1,2 +1,6 @@
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
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("vue"),k={SELECT_AREA:"data-dnd-kit-select-area",DRAGGABLE:"data-dnd-kit-draggable",DROPPABLE:"data-dnd-kit-droppable",CONSTRAINT_AREA:"data-dnd-kit-constraint-area"},F={SELECT_AREA:`[${k.SELECT_AREA}]`,DRAGGABLE:`[${k.DRAGGABLE}]`,CONSTRAINT_AREA:`[${k.CONSTRAINT_AREA}]`},Q="VueDnDKitProvider",ne=(e,t,n,o)=>{const r=new Set;return t.forEach(i=>{const s=e.get(i),a=o?o(i):s?.disabled;if(!s||a)return;const c=s.modifier?.keys,u=s.modifier?.method;if(!c||!u||c.length===0){r.add(i);return}c[u](f=>n.value.has(f))&&r.add(i)}),r};let fe="",we="",Ee="";const v=e=>e.value?e.value instanceof HTMLElement?e.value:e.value.$el:null,_=(e,t)=>e!==t&&e.contains(t),Me=(e,t)=>!(e.right<t.left||e.left>t.right||e.bottom<t.top||e.top>t.bottom),V=()=>{const e=document.body;fe=e.style.userSelect,e.style.userSelect="none",window.addEventListener("contextmenu",h),window.addEventListener("selectstart",h),window.addEventListener("touchstart",h),window.addEventListener("touchmove",h)},q=()=>{const e=document.body;e.style.userSelect=fe,e.style.touchAction=we,e.style.overscrollBehavior=Ee,window.removeEventListener("contextmenu",h),window.removeEventListener("selectstart",h),window.removeEventListener("touchstart",h),window.removeEventListener("touchmove",h)},h=e=>e.preventDefault(),L=(e,t)=>{if(t.entities.draggableMap.get(e)?.disabled)return!0;for(const[o,r]of t.entities.draggableMap)if(r.disabled&&_(o,e))return!0;return!1},P=(e,t)=>{if(t.entities.droppableMap.get(e)?.disabled)return!0;for(const[o,r]of t.entities.droppableMap)if(r.disabled&&_(o,e))return!0;return!1},ee=(e,t)=>!e.length||!t.length?!0:e.some(n=>t.includes(n));function Ae(e,t,n,o){const r=new Set;for(const a of t.keys()){const c=n.get(a);for(const u of c?.groups??[])r.add(u)}const i=[...r],s=new Set;for(const a of e){const u=o.get(a)?.groups??[];ee(i,u)&&s.add(a)}return s}function xe(e,t,n){const o=new Set;for(const s of t.keys()){const a=n.get(s);for(const c of a?.groups??[])o.add(c)}const r=[...o],i=new Set;for(const s of e){const c=n.get(s)?.groups??[];ee(r,c)&&i.add(s)}return i}const X=e=>{const t=new IntersectionObserver(n=>{n.forEach(o=>{const r=o.target;e[o.isIntersecting?"add":"delete"](r)})});return{observe:n=>t.observe(n),unobserve:n=>t.unobserve(n),disconnect:()=>t.disconnect()}},ke=e=>{const t=new ResizeObserver(n=>{const o=n[0];if(!o)return;const{width:r,height:i}=o.contentRect;e.value={width:r,height:i}});return{observe:n=>t.observe(n),unobserve:n=>t.unobserve(n),disconnect:()=>t.disconnect()}},Le=e=>{const t=l.ref(null),n=ke(t),o=l.watch(e,i=>{n.disconnect(),i&&n.observe(i)},{immediate:!0});return{overlaySize:t,overlaySizeObserver:{disconnect:()=>{o(),n.disconnect()}}}};function j(e,t=0,n=0){return{start:{x:e.clientX,y:e.clientY},current:{x:e.clientX,y:e.clientY},offset:{x:t,y:n}}}function de(e,t){const n=t.getBoundingClientRect(),o=n.width>0?(e.clientX-n.left)/n.width:.5,r=n.height>0?(e.clientY-n.top)/n.height:.5;return{x:o,y:r}}function ye(e,t){return{...t,initialHTML:e.innerHTML,initialRect:e.getBoundingClientRect(),initialOuterHTML:e.outerHTML}}function Ce(e,t,n){e.forEach(o=>{const r=t.get(o);n.set(o,ye(o,r))}),e.clear()}function Be(e,t,n){n.clear();const o=t.get(e);n.set(e,ye(e,o))}function K(e){e.entities.initiatingDraggable&&(e.state.value="dragging",Te(e.entities.initiatingDraggable,e.entities.selectedSet,e.entities.draggableMap,e.entities.draggingMap))}function Te(e,t,n,o){t.has(e)?Ce(t,n,o):(t.clear(),Be(e,n,o))}function me(e,t,n,o){if(o||!n)return!0;const r=e.closest(n);return r?t.contains(r):!1}function Pe(e,t){if(!e||!t)return 1;const n=Math.abs(e.current.x-e.start.x),o=Math.abs(e.current.y-e.start.y);if(typeof t=="number"){const u=Math.sqrt(n*n+o*o);return Math.min(u/t,1)}const{x:r=0,y:i=0,condition:s="any"}=t;if(r===0&&i===0)return 1;const a=r>0?Math.min(n/r,1):1,c=i>0?Math.min(o/i,1):1;return s==="both"?Math.min(a,c):Math.max(a,c)}function be(e,t,n){if(!n)return!0;const o=n.distance!=null,r=n.delay!=null;return!o&&!r?!0:o&&!r?e>=1:!o&&r?t>=1:(n.condition??"both")==="both"?e>=1&&t>=1:e>=1||t>=1}function Re(e){if(e.state.value!=="activating"||!e.entities.initiatingDraggable)return!1;const t=e.entities.draggableMap.get(e.entities.initiatingDraggable);return be(e.distanceProgress.value,e.delay.progress,t?.activation)?(K(e),!0):!1}function Oe(e,t){let n=null;const o=()=>{if(e.state.value!=="activating"||!e.entities.initiatingDraggable){n=null;return}const r=e.entities.draggableMap.get(e.entities.initiatingDraggable),i=r?.activation?.delay;if(!i){n=null;return}e.delay.progress=Math.min((Date.now()-e.delay.startTime)/(i*1e3),1),be(e.distanceProgress.value,e.delay.progress,r?.activation)?(t(),n=null):n=requestAnimationFrame(o)};return n=requestAnimationFrame(o),{cancel:()=>{n!==null&&(cancelAnimationFrame(n),n=null)}}}function ze(e,t){const n=e.closest(F.CONSTRAINT_AREA);return!n||!t.has(n)?null:{element:n,entity:t.get(n)}}function Fe(e,t,n,o){return n==="x"?{x:e,y:o.top}:n==="y"?{x:o.left,y:t}:{x:e,y:t}}function _e(e,t,n,o,r){let i=e,s=t;return n!=="y"&&(i=Math.max(o.left,Math.min(o.right-r.width,e))),n!=="x"&&(s=Math.max(o.top,Math.min(o.bottom-r.height,t))),{x:i,y:s}}function Ge(e,t,n,o,r){if(!e||!t)return{x:0,y:0};const i=t.getBoundingClientRect(),s=i.width||r?.width||0,a=i.height||r?.height||0;let c=e.current.x-s*e.offset.x,u=e.current.y-a*e.offset.y;if(!n)return{x:c,y:u};const g=ze(n,o);if(!g)return{x:c,y:u};const{element:f,entity:y}=g,d=f.getBoundingClientRect(),m=n.getBoundingClientRect(),b=Fe(c,u,y.axis||"both",m);return y.restrictToArea?_e(b.x,b.y,y.axis||"both",d,i):b}const z={forDrag:["Enter","Space"],forCancel:["Escape"],forDrop:["Enter","Space"],forMove:["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","KeyW","KeyA","KeyS","KeyD"],forMoveFaster:["ShiftLeft","ShiftRight"]};function Ie(e,t){const n=l.shallowRef(),o=l.ref(),i={keys:{pressedKeys:l.ref(new Set),forDrag:[...z.forDrag],forCancel:[...z.forCancel],forDrop:[...z.forDrop],forMove:[...z.forMove],forMoveFaster:[...z.forMoveFaster]},step:8,moveFaster:4},s=l.reactive({draggableMap:new Map,droppableMap:new Map,selectableAreaMap:new Map,constraintsAreaMap:new Map,initiatingDraggable:void 0,selectingArea:void 0,draggingMap:new Map,selectedSet:new Set,allowedDroppableSet:l.computed(()=>n.value?Ae(s.visibleDroppableSet,s.draggingMap,s.draggableMap,s.droppableMap):new Set),allowedDraggableSet:l.computed(()=>n.value?xe(s.visibleDraggableSet,s.draggingMap,s.draggableMap):new Set),modifiersSelectableAreaSet:l.computed(()=>ne(s.selectableAreaMap,s.visibleSelectableAreaSet,i.keys.pressedKeys)),modifiersDraggableSet:l.computed(()=>ne(s.draggableMap,s.visibleDraggableSet,i.keys.pressedKeys,S=>L(S,{entities:s}))),visibleDraggableSet:new Set,visibleDroppableSet:new Set,visibleSelectableAreaSet:new Set}),a=l.reactive({draggable:new Map,droppable:new Map}),c={throttle:l.shallowRef(0)},u=l.reactive({x:window.scrollX,y:window.scrollY}),g=l.reactive({progress:0,startTime:0}),f=l.computed(()=>{if(!o.value||!s.initiatingDraggable)return 0;const S=s.draggableMap.get(s.initiatingDraggable)?.activation?.distance;return S?Pe(o.value,S):1}),y=X(s.visibleDraggableSet),d=X(s.visibleDroppableSet),m=X(s.visibleSelectableAreaSet),{overlaySize:b,overlaySizeObserver:M}=Le(e),D=l.ref(),R=l.computed(()=>{const p=s.initiatingDraggable;return Ge(o.value,e.value,p||null,s.constraintsAreaMap,b.value)}),A=l.computed({get:()=>t?.overlayTo,set:p=>A.value=p}),G=l.computed(()=>t?.autoScrollViewport);return{state:n,pointer:o,entities:s,keyboard:i,scrollPosition:u,delay:g,distanceProgress:f,hovered:a,collision:c,overlay:{size:b,position:R,render:D,ref:e,to:A},lib:{draggableObserver:y,droppableObserver:d,selectableAreaObserver:m,overlaySizeObserver:M},autoScrollViewport:G}}const H=e=>{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()},Ke=e=>{const t=e.entities.initiatingDraggable;if(!t)return;const o=e.entities.draggableMap.get(t)?.payload;if(!o)return;const r=o();if(!Array.isArray(r)||r.length<2)return;const[i,s,a]=r;return{index:Number(i),items:Array.isArray(s)?s:[],dropData:a}},He=(e,t)=>{const o=e.entities.droppableMap.get(t)?.payload;if(!o)return;const r=o();if(!Array.isArray(r)||r.length<1)return;const[i,s]=r;return{items:Array.isArray(i)?i:[],userData:s}},B=e=>e.keys().next().value,Ne=e=>e.target.closest(F.DRAGGABLE),E=(e,t)=>{const n={payload:Ke(e),provider:e};return t&&(n.dropZonePayload=He(e,t)),n},$=(e,t,n)=>{const o=Ne(t);if(!o||!e.entities.draggingMap.has(o))return;const r=E(e);e.entities.draggingMap.get(o)?.events?.[n]?.(r)},T=(e,t,n)=>{if(!t||L(t,e))return;const o=E(e);e.entities.draggableMap.get(t)?.events?.[n]?.(o)},w=(e,t)=>{const n=E(e);e.entities.draggableMap.forEach((o,r)=>{L(r,e)||o.events?.[t]?.(n)})},Ue=(e,t,n)=>{if(t!==n){if(t&&!P(t,e)){const o=E(e,t);e.entities.droppableMap.get(t)?.events?.onLeave?.(o)}if(n&&!P(n,e)){const o=E(e,n);e.entities.droppableMap.get(n)?.events?.onEnter?.(o)}}},Ye=(e,t,n)=>{if(t!==n){const o=E(e);t&&!L(t,e)&&e.entities.draggableMap.get(t)?.events?.onLeave?.(o),n&&!L(n,e)&&e.entities.draggableMap.get(n)?.events?.onHover?.(o)}},Xe=(e,t)=>{const n=B(t.droppable);if(n&&!P(n,e)){const o=E(e,n);e.entities.droppableMap.get(n)?.events?.onLeave?.(o)}},pe=(e,t)=>{const n=B(t.droppable);if(n&&!P(n,e)){const o=E(e,n);e.entities.droppableMap.get(n)?.events?.onLeave?.(o)}},$e=(e,t,n)=>{if(!n)return{};const o=n.getBoundingClientRect(),r=Math.max(o.left,Math.min(e.x,t.x)),i=Math.max(o.top,Math.min(e.y,t.y)),s=Math.min(o.right,Math.max(e.x,t.x)),a=Math.min(o.bottom,Math.max(e.y,t.y)),c=Math.max(0,s-r),u=Math.max(0,a-i);return{left:`${r}px`,top:`${i}px`,width:`${c}px`,height:`${u}px`,position:"fixed",pointerEvents:"none",border:"1px solid #3b82f6",backgroundColor:"#3b82f61a"}},Ze=e=>{if(!e.pointer.value||!e.entities.selectingArea)return;const{selectingArea:t}=e.entities,n=Ve(e.pointer.value.start,e.pointer.value.current),o=e.entities.selectableAreaMap.get(t)?.groups??[];e.entities.visibleDraggableSet.forEach(r=>{if(!t.contains(r))return;if(L(r,e)){e.entities.selectedSet.delete(r);return}const s=e.entities.draggableMap.get(r)?.groups??[];if(!ee(o,s)){e.entities.selectedSet.delete(r);return}Me(n,r.getBoundingClientRect())?e.entities.selectedSet.add(r):e.entities.selectedSet.delete(r)})},Ve=(e,t)=>{const n=Math.min(e.x,t.x),o=Math.min(e.y,t.y),r=Math.max(e.x,t.x),i=Math.max(e.y,t.y),s=r-n,a=i-o;return new DOMRect(n,o,s,a)},qe=(e,t,n=5)=>{const o=n/2;return{left:e-o,top:t-o,width:n,height:n}},je=e=>{const t=e.pointer.value?.current,n=t?.x??0,o=t?.y??0;return qe(n,o,5)},I=(e,t,n)=>{const o=e.left+e.width/2,r=e.top+e.height/2;if(n){const g=n.top??0,f=n.right??0,y=n.bottom??0,d=n.left??0,m=t.left+d,b=t.right-f,M=t.top+g,D=t.bottom-y;if(m<b&&M<D&&o>=m&&o<=b&&r>=M&&r<=D)return{top:!1,right:!1,bottom:!1,left:!1,center:!0}}const i=r-t.top,s=t.bottom-r,a=o-t.left,c=t.right-o,u=Math.min(i,s,a,c);return{top:i===u,bottom:s===u,left:a===u,right:c===u}},We=(e,t)=>e.find(n=>n!==t&&_(t,n)),W=(e,t,n)=>{const o=B(t.droppable),r=B(t.draggable);t.draggable.clear(),t.droppable.clear();const i=je(e),s=n.zones[0],a=n.elements[0];if(s&&a&&s===a&&e.entities.droppableMap.has(s)&&s){const f=s.getBoundingClientRect(),y=e.entities.draggableMap.get(s)?.placementMargins,d=I(i,f,y);if(d.center){t.droppable.set(s,d);const m=We(n.elements,s);if(m){const b=m.getBoundingClientRect();t.draggable.set(m,I(i,b,void 0))}}else t.draggable.set(a,d),t.droppable.set(s,d)}else{if(s){const f=s.getBoundingClientRect();t.droppable.set(s,I(i,f))}if(a){const f=a.getBoundingClientRect(),y=e.entities.draggableMap.get(a)?.placementMargins;t.draggable.set(a,I(i,f,y))}}const u=B(t.droppable),g=B(t.draggable);Ue(e,o,u),Ye(e,r,g)},Je=(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=>{if(!e)return{x:0,y:0,width:0,height:0,top:0,left:0,right:0,bottom:0};const t=e.getBoundingClientRect();return{x:t.x,y:t.y,width:t.width,height:t.height,top:t.top,left:t.left,right:t.right,bottom:t.bottom}},re=e=>({x:e.x+e.width/2,y:e.y+e.height/2}),Qe=(e,t)=>Math.hypot(t.x-e.x,t.y-e.y),et=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),o=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y)),r=n*o,i=e.width*e.height,s=t.width*t.height;return i===0||s===0?0:(r/i*100+r/s*100)/2},tt=(e,t,n)=>t>=e.x&&t<=e.x+e.width&&n>=e.y&&n<=e.y+e.height,se=()=>!0,ie=()=>0,nt=()=>{const e={filterElements:se,filterZones:se,sortElements:ie,sortZones:ie},t=(o,r,i,s,a,c,u)=>{const g=new Set(s),f={containerBox:r,pointer:i},y=[...s].filter(d=>a(d,o)).map(d=>{const m=oe(d);if(!u(m,f))return null;let b=0;for(const M of g)M!==d&&_(M,d)&&b++;return{node:d,box:m,meta:{isPointerInElement:tt(m,i.x,i.y),overlapPercent:et(m,r),depth:b,centerDistance:Qe(re(r),re(m))}}}).filter(d=>d!==null);return y.sort((d,m)=>c(d,m,f)),y.map(d=>d.node)},n={container(o){return e.container=o,n},containerBox(o){return e.containerBox=o,n},elements(o){return e.elements=o,n},zones(o){return e.zones=o,n},filterElements(o){return e.filterElements=o,n},filterZones(o){return e.filterZones=o,n},collision(o){return e.collision=o,n},sortElements(o){return e.sortElements=o,n},sortZones(o){return e.sortZones=o,n},build(){const o=e;if(!o.container||!o.elements||!o.zones||!o.collision)throw new Error("sensor: container, elements, zones, collision are required");return r=>{const i=o.container(r);if(!i)return{elements:[],zones:[]};const s=o.containerBox?o.containerBox(r):oe(i),a=r.pointer.value?.current??{x:0,y:0};return{elements:t(r,s,a,o.elements(r),o.filterElements,o.sortElements,o.collision),zones:t(r,s,a,o.zones(r),o.filterZones,o.sortZones,o.collision)}}}};return n},ot=()=>nt(),rt=e=>e.overlay.ref?.value??null,st=e=>{const t=e.overlay.position?.value??{x:0,y:0},n=e.overlay.size?.value??null,{x:o,y:r}=t,i=n?.width??0,s=n?.height??0;return{x:o,y:r,width:i,height:s,top:r,left:o,right:o+i,bottom:r+s}},it=e=>e.entities.allowedDraggableSet,at=e=>e.entities.allowedDroppableSet,lt=(e,t)=>!t.entities.draggingMap.has(e),ct=(e,t)=>![...t.entities.draggingMap.keys()].some(n=>_(n,e)),ut=(e,t)=>t.entities.draggableMap.has(e)?!L(e,t):t.entities.droppableMap.has(e)?!P(e,t):!0,ae=(e,t)=>lt(e,t)&&ct(e,t)&&ut(e,t),gt=(e,t)=>Je(e,t.containerBox),le=(e,t,n)=>{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){if(e.meta.isPointerInElement&&t.meta.isPointerInElement)return t.meta.depth-e.meta.depth;if(e.meta.isPointerInElement!==t.meta.isPointerInElement)return e.meta.isPointerInElement?-1:1}return Math.abs(e.meta.overlapPercent-t.meta.overlapPercent)<=1?e.meta.centerDistance-t.meta.centerDistance:t.meta.overlapPercent-e.meta.overlapPercent},J=ot().container(rt).containerBox(st).elements(it).zones(at).filterElements(ae).filterZones(ae).collision(gt).sortElements(le).sortZones(le).build();function ce(e){const n=(e.collision?.run??J)(e);W(e,e.hovered,n)}function ft(e,t){const n=e.collision?.throttle?.value??0;if(n<=0){ce(e);return}const o=Date.now();o-t.value>=n&&(t.value=o,ce(e))}async function he(e){const t=e.hovered.droppable.keys().next().value;if(!t||P(t,e))return!0;const n=e.entities.droppableMap.get(t),o=E(e,t),r=n?.events?.onDrop?.(o);if(r!=null&&typeof r.then=="function")try{return await r,!0}catch{const s=e.entities.initiatingDraggable;return T(e,s,"onSelfDragCancel"),w(e,"onDragCancel"),pe(e,e.hovered),!1}return!0}function De(e){const t=e.entities.initiatingDraggable;T(e,t,"onSelfDragEnd"),w(e,"onDragEnd"),Xe(e,e.hovered)}function dt(e){const t=e.entities.selectingArea;if(!t)return;const n=e.entities.selectableAreaMap.get(t),o=[...e.entities.selectedSet];n?.events?.onSelected?.(o)}const yt=e=>{const t={current:null},n={value:0},o=async()=>{q(),t.current?.cancel(),t.current=null;const a=e.state.value;if(a==="dragging"){if(!await he(e)){H(e),document.removeEventListener("pointerup",o),document.removeEventListener("pointermove",r);return}De(e)}else a==="selecting"&&dt(e);H(e),document.removeEventListener("pointerup",o),document.removeEventListener("pointermove",r)},r=a=>{if(e.pointer.value){if(e.pointer.value.current={x:a.clientX,y:a.clientY},Re(e)){$(e,a,"onSelfDragStart"),w(e,"onDragStart");return}if(e.state.value==="dragging"){ft(e,n);const c=e.entities.initiatingDraggable;T(e,c,"onSelfDragMove"),w(e,"onDragMove")}e.state.value==="selecting"&&Ze(e)}};return{pointerDown:a=>{document.addEventListener("pointerup",o),document.addEventListener("pointermove",r);const c=a.target,u=c.closest(F.SELECT_AREA),g=c.closest(F.DRAGGABLE);if(e.entities.modifiersSelectableAreaSet.size>0&&e.entities.modifiersSelectableAreaSet.has(u)){V(),e.pointer.value=j(a),e.state.value="selecting",e.entities.selectingArea=u;return}if(e.entities.modifiersDraggableSet.size>0&&e.entities.modifiersDraggableSet.has(g)){const f=e.entities.draggableMap.get(g);if(!me(c,g,f?.dragHandle))return;V(),e.entities.initiatingDraggable=g;const y=de(a,g);e.pointer.value=j(a,y.x,y.y),f?.activation?.distance||f?.activation?.delay?(e.state.value="activating",f?.activation?.delay&&(e.delay.startTime=Date.now(),t.current=Oe(e,()=>{K(e),$(e,a,"onSelfDragStart"),w(e,"onDragStart")}))):(K(e),$(e,a,"onSelfDragStart"),w(e,"onDragStart"))}},pointerUp:o,pointerMove:r,cleanup:()=>{t.current?.cancel(),document.removeEventListener("pointerup",o),document.removeEventListener("pointermove",r),e.lib.draggableObserver.disconnect(),e.lib.droppableObserver.disconnect(),e.lib.selectableAreaObserver.disconnect(),e.lib.overlaySizeObserver.disconnect()}}},mt={ArrowUp:{dx:0,dy:-1},ArrowDown:{dx:0,dy:1},ArrowLeft:{dx:-1,dy:0},ArrowRight:{dx:1,dy:0},KeyW:{dx:0,dy:-1},KeyA:{dx:-1,dy:0},KeyS:{dx:0,dy:1},KeyD:{dx:1,dy:0}},bt=e=>t=>{const{keys:n}=e.keyboard;if(n.pressedKeys.value.add(t.code),e.state.value==="dragging"){if(n.forCancel.includes(t.code)){t.preventDefault(),q(),T(e,e.entities.initiatingDraggable,"onSelfDragCancel"),w(e,"onDragCancel"),pe(e,e.hovered),H(e);return}if(n.forDrop.includes(t.code)){t.preventDefault(),(async()=>(await he(e)&&De(e),q(),H(e)))();return}const r=mt[t.code];if(r&&n.forMove.includes(t.code)&&e.pointer.value){t.preventDefault();const i=n.forMoveFaster.some(u=>n.pressedKeys.value.has(u)),s=e.keyboard.step*(i?e.keyboard.moveFaster:1);e.pointer.value.current={x:e.pointer.value.current.x+r.dx*s,y:e.pointer.value.current.y+r.dy*s};const c=(e.collision?.run??J)(e);W(e,e.hovered,c),T(e,e.entities.initiatingDraggable,"onSelfDragMove"),w(e,"onDragMove");return}return}if(n.forDrag.includes(t.code)){const r=document.activeElement;if(!r)return;const i=r.closest(F.DRAGGABLE);if(!i||e.entities.modifiersDraggableSet.size===0||!e.entities.modifiersDraggableSet.has(i))return;const s=e.entities.draggableMap.get(i);if(!me(r,i,s?.dragHandle,!0))return;t.preventDefault(),V();const a=i.getBoundingClientRect(),c=a.left+a.width/2,u=a.top+a.height/2,g={clientX:c,clientY:u};e.entities.initiatingDraggable=i;const f=de(g,i);e.pointer.value=j(g,f.x,f.y),K(e);const d=(e.collision?.run??J)(e);W(e,e.hovered,d),T(e,i,"onSelfDragStart"),w(e,"onDragStart")}},pt=e=>t=>{e.keyboard.keys.pressedKeys.value.delete(t.code)},ht=e=>()=>{e.keyboard.keys.pressedKeys.value.clear()},Z={keyDown:bt,keyUp:pt,clear:ht},Dt=e=>()=>{e.state.value&&(e.scrollPosition.x=window.scrollX,e.scrollPosition.y=window.scrollY)},x=50,St=144,ue=1e3/St;function vt(e){return e==null?{top:x,right:x,bottom:x,left:x}:typeof e=="number"?{top:e,right:e,bottom:e,left:e}:{top:e.top??x,right:e.right??x,bottom:e.bottom??x,left:e.left??x}}const wt={getScrollState(e){return{scrollTop:e.scrollTop,scrollLeft:e.scrollLeft,rect:e.getBoundingClientRect()}},setScroll(e,t,n){e.scrollTop=t,e.scrollLeft=n}};function Se(e,t,n,o=wt,r){const{speed:i=10,disabled:s=!1}=t,a=vt(t.threshold);let c=null,u=null,g=null,f=0,y=0;const d=D=>{r&&(r.value=D)},m=D=>{const R=e.value,A=n();if(!R||!A||s){d(!1);return}u||(u=D);const G=D-u;if(G<ue){c=requestAnimationFrame(m);return}const p=i*(G/ue);u=D;const{scrollTop:S,scrollLeft:O,rect:ve}=o.getScrollState(R);(!g||f!==S||y!==O)&&(g=ve,f=S,y=O);let C=!1,U=S,Y=O;a.top>0&&A.y-g.top<a.top?(U=S-p,C=!0):a.bottom>0&&g.bottom-A.y<a.bottom&&(U=S+p,C=!0),a.left>0&&A.x-g.left<a.left?(Y=O-p,C=!0):a.right>0&&g.right-A.x<a.right&&(Y=O+p,C=!0),C&&o.setScroll(R,U,Y),d(C),c=requestAnimationFrame(m)};return{run:()=>{u=null,c=requestAnimationFrame(m)},stop:()=>{c&&(cancelAnimationFrame(c),c=null),g=null,f=0,y=0,u=null,d(!1)}}}const Et={getScrollState(){return{scrollTop:window.scrollY??document.documentElement.scrollTop,scrollLeft:window.scrollX??document.documentElement.scrollLeft,rect:new DOMRect(0,0,window.innerWidth,window.innerHeight)}},setScroll(e,t,n){window.scrollTo(n,t)}},Mt={get value(){return typeof document<"u"?document.documentElement:null}};function At(e,t){const n=l.shallowRef(!1),r=Se(Mt,t??{},()=>{if(e.state.value!=="dragging")return null;const a=e.overlay.position.value,c=e.overlay.size.value;return a?c?.width&&c?.height?{x:a.x+c.width/2,y:a.y+c.height/2}:a:null},Et,n),i=l.watch(()=>e.state.value,a=>{a==="dragging"?r.run():r.stop()}),s=()=>{i(),r.stop()};return l.onScopeDispose(s),{isScrolling:n,stop:s}}const xt=e=>{const t=yt(e),n=Z.keyDown(e),o=Z.keyUp(e),r=Z.clear(e),i=Dt(e);let s=null;l.watch(e.autoScrollViewport,a=>{s?.(),s=null,(a===!0||a&&typeof a=="object")&&(s=At(e,a===!0?{}:a).stop)},{immediate:!0}),l.onMounted(()=>{document.addEventListener("pointerdown",t.pointerDown),document.addEventListener("keydown",n),document.addEventListener("keyup",o),document.addEventListener("blur",r),document.addEventListener("scroll",i,!0)}),l.onBeforeUnmount(()=>{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",r),document.removeEventListener("scroll",i,!0),s?.(),t.cleanup()})},N=()=>{const e=l.inject(Q);if(!e)throw Error("DnD provider not found");return e},te=()=>{const e=N();return{overlay:e.overlay,delay:e.delay,distanceProgress:e.distanceProgress,entities:e.entities,pointer:e.pointer,state:e.state,scrollPosition:e.scrollPosition,keyboard:e.keyboard,hovered:e.hovered,collision:e.collision,autoScrollViewport:e.autoScrollViewport}},kt=l.defineComponent({__name:"DefaultOverlay",setup(e){const{entities:t,state:n,overlay:o}=te();return(r,i)=>l.unref(n)==="dragging"?(l.openBlock(),l.createElementBlock("div",{key:0,class:"dnd-kit-default-overlay",style:l.normalizeStyle({"--position-x":l.unref(o).position.value.x+"px","--position-y":l.unref(o).position.value.y+"px"})},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(t).draggingMap,([s,a])=>(l.openBlock(),l.createElementBlock(l.Fragment,null,[l.unref(t).draggableMap.get(s)?.render?(l.openBlock(),l.createBlock(l.resolveDynamicComponent(l.unref(t).draggableMap.get(s)?.render),{key:0})):(l.openBlock(),l.createBlock(l.resolveDynamicComponent(s.tagName),{key:1,innerHTML:a.initialOuterHTML,style:l.normalizeStyle({width:a.initialRect.width+"px",height:a.initialRect.height+"px"})},null,8,["innerHTML","style"]))],64))),256))],4)):l.createCommentVNode("",!0)}}),Lt=l.defineComponent({__name:"DnDProvider",props:{autoScrollViewport:{type:[Object,Boolean,null]},overlayTo:{type:[String,Boolean,null]}},setup(e){const t=e,n=l.useTemplateRef("overlayRef"),o=Ie(n,t);xt(o);const r=l.computed(()=>o.overlay.render.value??kt);return l.provide(Q,o),(i,s)=>(l.openBlock(),l.createElementBlock(l.Fragment,null,[l.renderSlot(i.$slots,"default"),(l.openBlock(),l.createBlock(l.Teleport,{to:l.unref(o).overlay.to.value||"body"},[l.createElementVNode("div",{ref_key:"overlayRef",ref:n,class:"dnd-kit-overlay-container"},[l.renderSlot(i.$slots,"overlay",{overlay:r.value},()=>[(l.openBlock(),l.createBlock(l.resolveDynamicComponent(r.value)))])],512)],8,["to"]))],64))}});function Ct(e,t,n){const o=N();let r,i,s;typeof t=="function"?(r={},i=t):(r=t??{},i=n);const a=l.computed({get(){const g=v(e);return g?o.entities.selectedSet.has(g):!1},set(g){const f=v(e);f&&o.entities.selectedSet[g?"add":"delete"](f)}}),c=l.computed(()=>{const g=v(e);return g?o.entities.draggingMap.has(g):!1}),u=l.computed(()=>{const g=v(e);return g?o.entities.allowedDraggableSet.has(g):!1});return l.onMounted(()=>{s=v(e),s&&(s.addEventListener("dragstart",h),s.addEventListener("drag",h),s.addEventListener("dragend",h),s.setAttribute(k.DRAGGABLE,""),o.lib.draggableObserver.observe(s),o.entities.draggableMap.set(s,{render:r.render,disabled:r.disabled??!1,groups:r.groups??[],modifier:r.modifier,events:r.events,payload:i,dragHandle:r.dragHandle,activation:r.activation,placementMargins:r.placementMargins}))}),l.onBeforeUnmount(()=>{s&&(o.lib.draggableObserver.unobserve(s),o.entities.visibleDraggableSet.delete(s),o.entities.draggableMap.delete(s),o.entities.modifiersDraggableSet.delete(s))}),{selected:a,isDragging:c,isAllowed:u}}const Bt=(e,t)=>{const n=N(),o=l.computed(()=>e.value===n.entities.selectingArea);let r=null;l.onMounted(()=>{r=v(e),r&&(r.setAttribute(k.SELECT_AREA,""),n.lib.selectableAreaObserver.observe(r),n.entities.selectableAreaMap.set(r,{modifier:t?.modifier??{keys:["ControlLeft"],method:"every"},events:t?.events,disabled:t?.disabled??!1,groups:t?.groups??[]}))}),l.onBeforeUnmount(()=>{r&&(n.lib.selectableAreaObserver.unobserve(r),n.entities.visibleSelectableAreaSet.delete(r),n.entities.modifiersSelectableAreaSet.delete(r),n.entities.selectableAreaMap.delete(r))});const i=l.computed(()=>{n.scrollPosition.x,n.scrollPosition.y;const s=n.pointer.value;return!s||n.state.value!=="selecting"||!r?{}:$e(s.start,s.current,r)});return{isSelecting:o,style:i}};function Tt(e,t){const n=l.inject(Q);if(!n)throw Error("DnD provider not found");let o=null;return l.onMounted(()=>{o=v(e),o&&(o.setAttribute(k.CONSTRAINT_AREA,""),n.entities.constraintsAreaMap.set(o,{axis:t?.axis||"both",restrictToArea:t?.restrictToArea||!1}))}),l.onBeforeUnmount(()=>{o&&n.entities.constraintsAreaMap.delete(o)}),{}}function Pt(e,t,n){const o=N();let r=null,i,s;typeof t=="function"?(i={},s=t):(i=t??{},s=n);const a=l.computed(()=>{const c=v(e);return c?o.entities.allowedDroppableSet.has(c):!1});return l.onMounted(()=>{r=v(e),r&&(r.setAttribute(k.DROPPABLE,""),o.lib.droppableObserver.observe(r),o.entities.droppableMap.set(r,{disabled:i.disabled??!1,groups:i.groups??[],events:i.events,payload:s}))}),l.onBeforeUnmount(()=>{r&&(o.lib.droppableObserver.unobserve(r),o.entities.visibleDroppableSet.delete(r),o.entities.droppableMap.delete(r))}),{isAllowed:a}}const Rt=(e,t)=>{const n=te(),o=l.shallowRef(!1),i=Se(e,t??{},()=>{if(n.state.value!=="dragging")return null;const s=n.overlay.position.value,a=n.overlay.size.value;return s?a?.width&&a?.height?{x:s.x+a.width/2,y:s.y+a.height/2}:s:null},void 0,o);return l.watch(()=>n.state.value,s=>{s==="dragging"?i.run():i.stop()}),{isScrolling:o}};function ge(e,t){return t<=0?e:Math.round(e/t)*t}function Ot(e,t){const n=t&&"grid"in t&&t.grid!=null,o=t?n?t.grid:t.gridX:1,r=t?n?t.grid:t.gridY:1;return l.computed(()=>{const{x:i,y:s}=e.value;return{x:ge(i,o),y:ge(s,r)}})}exports.DnDProvider=Lt;exports.makeAutoScroll=Rt;exports.makeConstraintArea=Tt;exports.makeDraggable=Ct;exports.makeDroppable=Pt;exports.makeSelectionArea=Bt;exports.makeSnappedOverlayPosition=Ot;exports.useDnDProvider=te;
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;z-index:9999}")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("vue"),F={SELECT_AREA:"data-dnd-kit-select-area",DRAGGABLE:"data-dnd-kit-draggable",DROPPABLE:"data-dnd-kit-droppable",CONSTRAINT_AREA:"data-dnd-kit-constraint-area"},N={SELECT_AREA:`[${F.SELECT_AREA}]`,DRAGGABLE:`[${F.DRAGGABLE}]`,CONSTRAINT_AREA:`[${F.CONSTRAINT_AREA}]`},de="VueDnDKitProvider",Se=(e,t,s,n)=>{const o=new Set;return t.forEach(i=>{const r=e.get(i),a=n?n(i):r?.disabled;if(!r||a)return;const g=r.modifier?.keys,u=r.modifier?.method;if(!g||!u||g.length===0){o.add(i);return}g[u](l=>s.value.has(l))&&o.add(i)}),o};let Le="",Ye="",je="";const E=e=>e.value?e.value instanceof HTMLElement?e.value:e.value.$el:null,O=(e,t)=>e!==t&&e.contains(t),Xe=(e,t)=>!(e.right<t.left||e.left>t.right||e.bottom<t.top||e.top>t.bottom),ae=()=>{const e=document.body;Le=e.style.userSelect,e.style.userSelect="none",window.addEventListener("contextmenu",A),window.addEventListener("selectstart",A),window.addEventListener("touchstart",A),window.addEventListener("touchmove",A)},le=()=>{const e=document.body;e.style.userSelect=Le,e.style.touchAction=Ye,e.style.overscrollBehavior=je,window.removeEventListener("contextmenu",A),window.removeEventListener("selectstart",A),window.removeEventListener("touchstart",A),window.removeEventListener("touchmove",A)},A=e=>e.preventDefault(),me=(e,t)=>{if(t.entities.draggableMap.get(e)?.disabled)return!0;for(const n of t.entities.visibleDraggableSet)if(t.entities.draggableMap.get(n)?.disabled&&O(n,e))return!0;return!1},Z=(e,t)=>{if(t.entities.droppableMap.get(e)?.disabled)return!0;for(const n of t.entities.visibleDroppableSet)if(t.entities.droppableMap.get(n)?.disabled&&O(n,e))return!0;return!1},he=(e,t)=>{if(!e.length||!t.length)return!0;const s=new Set(t);return e.some(n=>s.has(n))};function Ve(e,t,s,n){const o=new Set;for(const a of t.keys()){const g=s.get(a);for(const u of g?.groups??[])o.add(u)}const i=[...o],r=new Set;for(const a of e){const u=n.get(a)?.groups??[];he(i,u)&&r.add(a)}return r}function $e(e,t,s){const n=new Set;for(const r of t.keys()){const a=s.get(r);for(const g of a?.groups??[])n.add(g)}const o=[...n],i=new Set;for(const r of e){const g=s.get(r)?.groups??[];he(o,g)&&i.add(r)}return i}const se=e=>{const t=new IntersectionObserver(s=>{s.forEach(n=>{const o=n.target;e[n.isIntersecting?"add":"delete"](o)})});return{observe:s=>t.observe(s),unobserve:s=>t.unobserve(s),disconnect:()=>t.disconnect()}},We=e=>{const t=new ResizeObserver(s=>{const n=s[0];if(!n)return;const{width:o,height:i}=n.contentRect;e.value={width:o,height:i}});return{observe:s=>t.observe(s),unobserve:s=>t.unobserve(s),disconnect:()=>t.disconnect()}},qe=e=>{const t=d.ref(null),s=We(t),n=d.watch(e,i=>{s.disconnect(),i&&s.observe(i)},{immediate:!0});return{overlaySize:t,overlaySizeObserver:{disconnect:()=>{n(),s.disconnect()}}}};function ce(e,t=0,s=0){return{start:{x:e.clientX,y:e.clientY},current:{x:e.clientX,y:e.clientY},offset:{x:t,y:s}}}function Pe(e,t){const s=t.getBoundingClientRect(),n=s.width>0?(e.clientX-s.left)/s.width:.5,o=s.height>0?(e.clientY-s.top)/s.height:.5;return{x:n,y:o}}function Re(e,t){return{...t,initialHTML:e.innerHTML,initialRect:e.getBoundingClientRect(),initialOuterHTML:e.outerHTML}}function Je(e,t,s){e.forEach(n=>{const o=t.get(n);s.set(n,Re(n,o))}),e.clear()}function Qe(e,t,s){s.clear();const n=t.get(e);s.set(e,Re(e,n))}function J(e){e.entities.initiatingDraggable&&(e.state.value="dragging",et(e.entities.initiatingDraggable,e.entities.selectedSet,e.entities.draggableMap,e.entities.draggingMap))}function et(e,t,s,n){t.has(e)?Je(t,s,n):(t.clear(),Qe(e,s,n))}function Be(e,t,s,n){if(n||!s)return!0;const o=e.closest(s);return o?t.contains(o):!1}function tt(e,t){if(!e||!t)return 1;const s=Math.abs(e.current.x-e.start.x),n=Math.abs(e.current.y-e.start.y);if(typeof t=="number"){const u=Math.sqrt(s*s+n*n);return Math.min(u/t,1)}const{x:o=0,y:i=0,condition:r="any"}=t;if(o===0&&i===0)return 1;const a=o>0?Math.min(s/o,1):1,g=i>0?Math.min(n/i,1):1;return r==="both"?Math.min(a,g):Math.max(a,g)}function Te(e,t,s){if(!s)return!0;const n=s.distance!=null,o=s.delay!=null;return!n&&!o?!0:n&&!o?e>=1:!n&&o?t>=1:(s.condition??"both")==="both"?e>=1&&t>=1:e>=1||t>=1}function nt(e){if(e.state.value!=="activating"||!e.entities.initiatingDraggable)return!1;const t=e.entities.draggableMap.get(e.entities.initiatingDraggable);return Te(e.distanceProgress.value,e.delay.progress,t?.activation)?(J(e),!0):!1}function st(e,t){let s=null;const n=()=>{if(e.state.value!=="activating"||!e.entities.initiatingDraggable){s=null;return}const o=e.entities.draggableMap.get(e.entities.initiatingDraggable),i=o?.activation?.delay;if(!i){s=null;return}e.delay.progress=Math.min((Date.now()-e.delay.startTime)/(i*1e3),1),Te(e.distanceProgress.value,e.delay.progress,o?.activation)?(t(),s=null):s=requestAnimationFrame(n)};return s=requestAnimationFrame(n),{cancel:()=>{s!==null&&(cancelAnimationFrame(s),s=null)}}}function ot(e,t){const s=e.closest(N.CONSTRAINT_AREA);return!s||!t.has(s)?null:{element:s,entity:t.get(s)}}function rt(e,t,s,n){return s==="x"?{x:e,y:n.top}:s==="y"?{x:n.left,y:t}:{x:e,y:t}}function it(e,t,s,n,o){let i=e,r=t;return s!=="y"&&(i=Math.max(n.left,Math.min(n.right-o.width,e))),s!=="x"&&(r=Math.max(n.top,Math.min(n.bottom-o.height,t))),{x:i,y:r}}function at(e,t,s,n,o){if(!e||!t)return{x:0,y:0};const i=t.getBoundingClientRect(),r=i.width||o?.width||0,a=i.height||o?.height||0;let g=e.current.x-r*e.offset.x,u=e.current.y-a*e.offset.y;if(!s)return{x:g,y:u};const c=ot(s,n);if(!c)return{x:g,y:u};const{element:l,entity:f}=c,m=l.getBoundingClientRect(),h=s.getBoundingClientRect(),p=rt(g,u,f.axis||"both",h);return f.restrictToArea?it(p.x,p.y,f.axis||"both",m,i):p}const j={forDrag:["Enter","Space"],forCancel:["Escape"],forDrop:["Enter","Space"],forMove:["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","KeyW","KeyA","KeyS","KeyD"],forMoveFaster:["ShiftLeft","ShiftRight"]};function lt(e,t){const s=d.shallowRef(),n=d.ref(),i={keys:{pressedKeys:d.ref(new Set),forDrag:[...j.forDrag],forCancel:[...j.forCancel],forDrop:[...j.forDrop],forMove:[...j.forMove],forMoveFaster:[...j.forMoveFaster]},step:8,moveFaster:4},r=d.reactive({draggableMap:new Map,droppableMap:new Map,selectableAreaMap:new Map,constraintsAreaMap:new Map,initiatingDraggable:void 0,selectingArea:void 0,draggingMap:new Map,selectedSet:new Set,allowedDroppableSet:d.computed(()=>s.value?Ve(r.visibleDroppableSet,r.draggingMap,r.draggableMap,r.droppableMap):new Set),allowedDraggableSet:d.computed(()=>s.value?$e(r.visibleDraggableSet,r.draggingMap,r.draggableMap):new Set),modifiersSelectableAreaSet:d.computed(()=>Se(r.selectableAreaMap,r.visibleSelectableAreaSet,i.keys.pressedKeys)),modifiersDraggableSet:d.computed(()=>Se(r.draggableMap,r.visibleDraggableSet,i.keys.pressedKeys,b=>me(b,{entities:r}))),visibleDraggableSet:new Set,visibleDroppableSet:new Set,visibleSelectableAreaSet:new Set}),a=d.reactive({draggable:new Map,droppable:new Map}),g={throttle:d.shallowRef(0)},u=d.reactive({x:window.scrollX,y:window.scrollY}),c=d.reactive({progress:0,startTime:0}),l=d.computed(()=>{if(!n.value||!r.initiatingDraggable)return 0;const b=r.draggableMap.get(r.initiatingDraggable)?.activation?.distance;return b?tt(n.value,b):1}),f=se(r.visibleDraggableSet),m=se(r.visibleDroppableSet),h=se(r.visibleSelectableAreaSet),{overlaySize:p,overlaySizeObserver:v}=qe(e),M=d.ref(),w=d.computed(()=>{const D=r.initiatingDraggable;return at(n.value,e.value,D||null,r.constraintsAreaMap,p.value)}),x=d.computed({get:()=>t?.overlayTo,set:D=>x.value=D}),G=d.computed(()=>t?.autoScrollViewport);return{state:s,pointer:n,entities:r,keyboard:i,scrollPosition:u,delay:c,distanceProgress:l,hovered:a,collision:g,overlay:{size:p,position:w,render:M,ref:e,to:x},lib:{draggableObserver:f,droppableObserver:m,selectableAreaObserver:h,overlaySizeObserver:v,rectCache:new Map},autoScrollViewport:G}}const Q=e=>{const t=e.hovered.draggable.keys().next().value;if(t){const n=e.entities.draggableMap.get(t);n&&(n.hoveredPlacement=void 0)}const s=e.hovered.droppable.keys().next().value;if(s){const n=e.entities.droppableMap.get(s);n&&(n.hoveredPlacement=void 0)}e.lib.rectCache.clear(),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()};function T(e,t,s){const n=Math.max(0,Math.min(t,e.length));return[...e.slice(0,n),...s,...e.slice(n)]}function pe(e,t,s=1){const n=Math.max(0,Math.min(t,e.length-1)),o=Math.max(0,Math.min(s,e.length-n));return[...e.slice(0,n),...e.slice(n+o)]}function Y(e,t){const s=[...new Set(t)].filter(o=>o>=0&&o<e.length).sort((o,i)=>i-o);let n=e;for(const o of s)n=pe(n,o,1);return n}function ze(e,t,s){if(t===s||t<0||s<0||t>=e.length||s>=e.length)return e;const n=[...e];return[n[t],n[s]]=[n[s],n[t]],n}const z={getInsertSide(e,t){return e?t==="vertical"?e.top&&!e.bottom?"before":e.bottom&&!e.top?"after":e.top?"before":null:e.left&&!e.right?"before":e.right&&!e.left?"after":e.left?"before":null:null},isAtZoneStart(e,t){return z.getInsertSide(e,t)==="before"&&!e?.center},isAtZoneEnd(e,t){return z.getInsertSide(e,t)==="after"&&!e?.center}};function Oe(e,t){const{draggedItems:s,dropZone:n,hoveredDraggable:o}=e;if(!s.length)return null;const i=o?.placement.center===!0&&n!=null&&n.items!==o.items,r=i?n.items:o?.items??n?.items;if(!r)return null;const a=s[0].items,g=s.map(f=>f.index),u=r.length;let c,l;if(o&&!i){const f=o.items===a&&g.includes(o.index);if(f&&s.length===1){const m=z.isAtZoneStart(n?.placement,t);c=m?0:u,l=m?"prepend":"append"}else{if(f)return null;{const m=z.getInsertSide(o.placement,t),h=o.index;m==="before"?(c=Math.max(0,h),l="insert"):m==="after"?(c=Math.min(u,h+1),l="insert"):(c=u,l="append")}}}else{if(!n)return null;const f=z.isAtZoneStart(n.placement,t);c=f?0:u,l=f?"prepend":"append"}return{targetIndex:c,mode:l,targetArr:r}}function ct(e,t="vertical"){const{draggedItems:s}=e;if(!s.length)return null;const n=Oe(e,t);if(!n)return null;const{targetArr:o,mode:i}=n;let{targetIndex:r}=n;const a=s.map(l=>l.index),g=s.map(l=>l.item),u=s[0].items;if(u===o){const l=a.filter(m=>m<r).length;r=Math.max(0,r-l);const f=T(Y(u,a),r,g);return{sourceItems:f,targetItems:f,draggedItems:g,sourceIndexes:a,targetIndex:r,mode:i,sameList:!0}}else{const l=Y(u,a),f=T(o,r,g);return{sourceItems:l,targetItems:f,draggedItems:g,sourceIndexes:a,targetIndex:r,mode:i,sameList:!1}}}function ut(e){const{draggedItems:t,hoveredDraggable:s}=e;if(!t.length||!s)return null;const n=t.map(c=>c.index),o=s.index,i=t.map(c=>c.item),r=s.item,a=t[0].items,g=s.items,u=a===g;if(u&&n.includes(o))return null;if(t.length===1){const c=n[0];if(u){const l=ze(a,c,o);return{sourceItems:l,targetItems:l,sourceIndexes:n,targetIndex:o,sameList:!0}}else{const l=[...a],f=[...g];return l[c]=g[o],f[o]=a[c],{sourceItems:l,targetItems:f,sourceIndexes:n,targetIndex:o,sameList:!1}}}else{const c=Math.min(...n);if(u){const l=n.filter(M=>M<o).length,f=Math.max(0,o-l),m=n.filter(M=>M<c).length,h=Math.max(0,c-m);let p=Y(a,n);p=T(p,f,i);const v=h>=f?h+i.length:h;return p=T(p,v,[r]),{sourceItems:p,targetItems:p,sourceIndexes:n,targetIndex:f,sameList:!0}}else{const l=n.filter(p=>p<c).length,f=Math.max(0,c-l);let m=Y(a,n);m=T(m,f,[r]);let h=pe(g,o);return h=T(h,o,i),{sourceItems:m,targetItems:h,sourceIndexes:n,targetIndex:o,sameList:!1}}}}function gt(e,t="vertical"){const{draggedItems:s}=e;if(!s.length)return null;const n=Oe(e,t);if(!n)return null;const{targetArr:o,targetIndex:i,mode:r}=n,a=s.map(u=>u.item);return{targetItems:T(o,i,a),copiedItems:a,targetIndex:i,mode:r}}function ft(e){const{draggedItems:t}=e;if(!t.length)return null;const s=t.map(r=>r.index),n=t.map(r=>r.item),o=t[0].items;return{sourceItems:Y(o,s),removedItems:n,sourceIndexes:s}}function dt(e){return{insertAt:T,removeAt:pe,removeIndexes:Y,swapAt:ze,getInsertSide:(t,s)=>z.getInsertSide(t,s),isAtZoneStart:(t,s)=>z.isAtZoneStart(t,s),isAtZoneEnd:(t,s)=>z.isAtZoneEnd(t,s),suggestSort:t=>ct(e,t),suggestSwap:()=>ut(e),suggestCopy:t=>gt(e,t),suggestRemove:()=>ft(e)}}const _=e=>e.keys().next().value,mt=e=>e.target.closest(N.DRAGGABLE);function ht(e){const t=e.entities.initiatingDraggable;if(!t)return[];const n=(e.entities.draggingMap.get(t)??e.entities.draggableMap.get(t))?.payload;if(!n)return[];const o=n();if(!Array.isArray(o)||o.length<2)return[];const[i,r,a]=o,g=Number(i),u=r,c=new Map;return c.set(g,{index:g,item:u[g],items:u,dropData:a}),e.entities.draggingMap.forEach((l,f)=>{const h=e.entities.draggableMap.get(f)?.payload;if(!h)return;const p=h();if(!Array.isArray(p)||p.length<2)return;const[v,M,w]=p;if(M!==u)return;const x=Number(v);c.has(x)||c.set(x,{index:x,item:M[x],items:u,dropData:w})}),[...c.values()].sort((l,f)=>l.index-f.index)}const R=(e,t)=>{const s=ht(e);let n,o;if(t){const r=e.entities.droppableMap.get(t)?.payload;if(r){const u=r();Array.isArray(u)&&u.length>=1&&(n={items:Array.isArray(u[0])?u[0]:[],userData:u[1],placement:e.hovered.droppable.get(t)})}const a=_(e.hovered.draggable);if(a&&(a===t||t.contains(a))&&a){const c=e.entities.draggableMap.get(a)?.payload,l=e.hovered.draggable.get(a);if(c){const f=c();if(Array.isArray(f)&&f.length>=2){const[m,h,p]=f,v=Number(m);o={element:a,placement:l??{top:!1,right:!1,bottom:!1,left:!1,center:!1},index:v,item:h[v],items:h,dropData:p}}}}}return{draggedItems:s,dropZone:n,hoveredDraggable:o,provider:e,helpers:dt({draggedItems:s,dropZone:n,hoveredDraggable:o})}},U=(e,t,s)=>{if(!t)return;const n=e.entities.draggingMap.get(t)??e.entities.draggableMap.get(t);!n||n.disabled||n.events?.[s]?.(R(e))},P=(e,t)=>{const s=R(e);e.entities.draggingMap.forEach(n=>{n.disabled||n.events?.[t]?.(s)})},pt=(e,t,s)=>{if(t!==s){if(t&&!Z(t,e)){const n=R(e,t);e.entities.droppableMap.get(t)?.events?.onLeave?.(n)}if(s&&!Z(s,e)){const n=R(e,s);e.entities.droppableMap.get(s)?.events?.onEnter?.(n)}}},yt=(e,t,s)=>{if(t!==s){const n=R(e);if(t){const o=e.entities.draggableMap.get(t);o&&!o.disabled&&o.events?.onLeave?.(n)}if(s){const o=e.entities.draggableMap.get(s);o&&!o.disabled&&o.events?.onHover?.(n)}}},oe=(e,t,s)=>{const n=mt(t);!n||!e.entities.draggingMap.has(n)||e.entities.draggingMap.get(n)?.events?.[s]?.(R(e))},bt=(e,t)=>{const s=_(t.droppable);s&&!Z(s,e)&&e.entities.droppableMap.get(s)?.events?.onLeave?.(R(e,s))},_e=(e,t)=>{const s=_(t.droppable);s&&!Z(s,e)&&e.entities.droppableMap.get(s)?.events?.onLeave?.(R(e,s))};function St(e){return e.parentElement?.closest(N.SELECT_AREA)??null}const Dt=(e,t,s)=>{if(!s)return{};const n=s.getBoundingClientRect(),o=Math.max(n.left,Math.min(e.x,t.x)),i=Math.max(n.top,Math.min(e.y,t.y)),r=Math.min(n.right,Math.max(e.x,t.x)),a=Math.min(n.bottom,Math.max(e.y,t.y)),g=Math.max(0,r-o),u=Math.max(0,a-i);return{left:`${o}px`,top:`${i}px`,width:`${g}px`,height:`${u}px`,position:"fixed",pointerEvents:"none",border:"1px solid #3b82f6",backgroundColor:"#3b82f61a"}},Mt=e=>{if(!e.pointer.value||!e.entities.selectingArea)return;const{selectingArea:t}=e.entities,s=vt(e.pointer.value.start,e.pointer.value.current),n=e.entities.selectableAreaMap.get(t)?.groups??[],o=e.lib.rectCache;e.entities.visibleDraggableSet.forEach(i=>{if(i===t||!t.contains(i))return;const r=St(i);if(r&&r!==t){e.entities.selectedSet.delete(i);return}if(me(i,e)){e.entities.selectedSet.delete(i);return}const g=e.entities.draggableMap.get(i)?.groups??[];if(!he(n,g)){e.entities.selectedSet.delete(i);return}let u=o.get(i);u||(u=i.getBoundingClientRect(),o.set(i,u)),Xe(s,u)?e.entities.selectedSet.add(i):e.entities.selectedSet.delete(i)})},vt=(e,t)=>{const s=Math.min(e.x,t.x),n=Math.min(e.y,t.y),o=Math.max(e.x,t.x),i=Math.max(e.y,t.y),r=o-s,a=i-n;return new DOMRect(s,n,r,a)},wt=(e,t,s=5)=>{const n=s/2;return{left:e-n,top:t-n,width:s,height:s}},xt=e=>{const t=e.pointer.value?.current,s=t?.x??0,n=t?.y??0;return wt(s,n,5)},H=(e,t,s)=>{const n=e.left+e.width/2,o=e.top+e.height/2;if(s){const a=s.top??0,g=s.right??0,u=s.bottom??0,c=s.left??0,l=t.left+c,f=t.right-g,m=t.top+a,h=t.bottom-u;if(l<f&&m<h&&n>=l&&n<=f&&o>=m&&o<=h)return{top:!1,right:!1,bottom:!1,left:!1,center:!0}}const i=t.left+t.width/2,r=t.top+t.height/2;return{top:o<=r,bottom:o>r,left:n<=i,right:n>i,center:!1}},Et=e=>({x:e.left+e.width/2,y:e.top+e.height/2}),De=(e,t)=>{const s=Et(t);return Math.hypot(e.x-s.x,e.y-s.y)};function At(e,t){return e===t?!0:!e||!t?!1:e.top===t.top&&e.right===t.right&&e.bottom===t.bottom&&e.left===t.left&&e.center===t.center}function $(e,t){At(e.hoveredPlacement,t)||(e.hoveredPlacement=t)}const Ct=(e,t)=>e.find(s=>s!==t&&O(t,s)),V=(e,t,s)=>{const n=_(t.droppable),o=_(t.draggable);o&&t.draggable.delete(o),n&&t.droppable.delete(n);const i=xt(e),r=s.zones[0],a=s.elements[0];if(r&&a&&r===a&&e.entities.droppableMap.has(r)&&r){const l=r.getBoundingClientRect(),f=e.entities.draggableMap.get(r)?.placementMargins,m=H(i,l,f);if(m.center){t.droppable.set(r,m);const h=Ct(s.elements,r);if(h){const p=h.getBoundingClientRect();t.draggable.set(h,H(i,p,void 0))}}else t.draggable.set(a,m)}else{if(r){const l=r.getBoundingClientRect();t.droppable.set(r,H(i,l))}if(a)if(r)if(O(r,a)){const l=a.getBoundingClientRect(),f=e.entities.draggableMap.get(a)?.placementMargins;t.draggable.set(a,H(i,l,f))}else{const l=e.pointer.value?.current??{x:0,y:0},f=r.getBoundingClientRect(),m=a.getBoundingClientRect(),h=De(l,f);if(De(l,m)<h){t.droppable.clear();const v=e.entities.draggableMap.get(a)?.placementMargins;t.draggable.set(a,H(i,m,v))}}else{const l=a.getBoundingClientRect(),f=e.entities.draggableMap.get(a)?.placementMargins;t.draggable.set(a,H(i,l,f))}}const u=_(t.droppable),c=_(t.draggable);if(o&&o!==c){const l=e.entities.draggableMap.get(o);l&&$(l,void 0)}if(n&&n!==u){const l=e.entities.droppableMap.get(n);l&&$(l,void 0)}if(c){const l=e.entities.draggableMap.get(c);l&&$(l,t.draggable.get(c))}if(u){const l=e.entities.droppableMap.get(u);l&&$(l,t.droppable.get(u))}pt(e,n,u),yt(e,o,c)},Me=(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,K=e=>{if(!e)return{x:0,y:0,width:0,height:0,top:0,left:0,right:0,bottom:0};const t=e.getBoundingClientRect();return{x:t.x,y:t.y,width:t.width,height:t.height,top:t.top,left:t.left,right:t.right,bottom:t.bottom}},X=e=>({x:e.x+e.width/2,y:e.y+e.height/2}),kt=(e,t)=>Math.hypot(t.x-e.x,t.y-e.y),ue=(e,t)=>{const s=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),n=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y)),o=s*n,i=e.width*e.height,r=t.width*t.height;return i===0||r===0?0:(o/i*100+o/r*100)/2},ge=(e,t,s)=>t>=e.x&&t<=e.x+e.width&&s>=e.y&&s<=e.y+e.height,It=e=>e.overlay.ref?.value??null,Fe=e=>{const t=e.overlay.position?.value??{x:0,y:0},{x:s,y:n}=t,o=e.overlay.size?.value;let i,r;if(o)i=o.width,r=o.height;else{const a=e.overlay.ref?.value?.getBoundingClientRect();i=a?.width??0,r=a?.height??0}return{x:s,y:n,width:i,height:r,top:n,left:s,right:s+i,bottom:n+r}},Lt=e=>e.entities.allowedDraggableSet,Pt=e=>e.entities.allowedDroppableSet,Rt=(e,t)=>!t.entities.draggingMap.has(e),Bt=(e,t)=>![...t.entities.draggingMap.keys()].some(s=>O(s,e)),Tt=(e,t)=>t.entities.draggableMap.has(e)?!me(e,t):t.entities.droppableMap.has(e)?!Z(e,t):!0,ee=(e,t)=>Rt(e,t)&&Bt(e,t)&&Tt(e,t),ve=10;function W(e,t){return Math.hypot(t.x-(e.x+e.width/2),t.y-(e.y+e.height/2))}function we(e){return[...e].sort((t,s)=>{const n=e.filter(i=>i!==t&&O(i,t)).length;return e.filter(i=>i!==s&&O(i,s)).length-n})}const te=e=>{if(!It(e))return{elements:[],zones:[]};const s=Fe(e),n=e.pointer.value?.current??{x:0,y:0},o=[...Lt(e)].filter(c=>ee(c,e)),i=[...Pt(e)].filter(c=>ee(c,e)),r=o.filter(c=>ge(K(c),n.x,n.y)),a=i.filter(c=>ge(K(c),n.x,n.y));if(r.length>0||a.length>0)return{elements:we(r),zones:we(a)};const g=o.map(c=>({n:c,box:K(c)})).filter(({box:c})=>Me(c,s)&&ue(c,s)>=ve).sort((c,l)=>W(c.box,n)-W(l.box,n)).map(({n:c})=>c),u=i.map(c=>({n:c,box:K(c)})).filter(({box:c})=>Me(c,s)&&ue(c,s)>=ve).sort((c,l)=>W(c.box,n)-W(l.box,n)).map(({n:c})=>c);return{elements:g,zones:u}};function zt(e){globalThis.onmessage=t=>{const{callId:s,data:n}=t.data;try{const o=e(n);globalThis.postMessage({callId:s,ok:!0,result:o})}catch(o){globalThis.postMessage({callId:s,ok:!1,error:String(o)})}}}function Ot(e,t){return[t.map(n=>n.toString()).join(`
3
+
4
+ `),`var __fn = ${e.toString()};`,`(${zt.toString()})(__fn);`].join(`
5
+
6
+ `)}function _t(e,t){let s=null,n=null,o=!1,i=0;const r=new Map;try{const u=Ot(e,t?.localDependencies??[]),c=new Blob([u],{type:"application/javascript"});n=URL.createObjectURL(c),s=new Worker(n),o=!0,s.onmessage=l=>{const f=r.get(l.data.callId);f&&(r.delete(l.data.callId),l.data.ok?f.resolve(l.data.result):f.reject(new Error(l.data.error)))},s.onerror=l=>{o=!1;for(const f of r.values())f.reject(new Error(l.message));r.clear(),s?.terminate(),s=null}}catch{o=!1}return{run:u=>{if(!s||!o)try{return Promise.resolve(e(u))}catch(l){return Promise.reject(l instanceof Error?l:new Error(String(l)))}const c=++i;return new Promise((l,f)=>{r.set(c,{resolve:l,reject:f}),s.postMessage({callId:c,data:u})})},terminate:()=>{for(const u of r.values())u.reject(new Error("Worker terminated"));r.clear(),s?.terminate(),s=null,n&&(URL.revokeObjectURL(n),n=null),o=!1},get isSupported(){return o}}}function Ge(e,t,s,n,o,i,r,a){return e<o+r&&e+s>o&&t<i+a&&t+n>i}function He(e,t,s,n,o,i,r,a){const g=Math.max(0,Math.min(e+s,o+r)-Math.max(e,o)),u=Math.max(0,Math.min(t+n,i+a)-Math.max(t,i)),c=g*u,l=s*n,f=r*a;return!l||!f?0:(c/l*100+c/f*100)/2}function q(e,t,s,n,o,i){return o>=e&&o<=e+s&&i>=t&&i<=t+n}function Ft(e){const{containerBox:t,pointer:s,elements:n,elementCount:o,zones:i,zoneCount:r,config:a}=e,{x:g,y:u,width:c,height:l}=t,{x:f,y:m}=s,h=a.minOverlapPercent,p=g+c/2,v=u+l/2,M=q(g,u,c,l,f,m);function w(x,G){const D=[],b=x;for(let y=0;y<G;y++){const S=y*4,C=b[S],k=b[S+1],I=b[S+2],L=b[S+3];if(!Ge(C,k,I,L,g,u,c,l))continue;const be=He(C,k,I,L,g,u,c,l);be<h||D.push({index:y,overlapPercent:be,centerDistance:Math.hypot(p-(C+I/2),v-(k+L/2)),isPointerInElement:q(C,k,I,L,f,m),depth:0})}for(let y=0;y<D.length;y++){const S=D[y].index*4,C=b[S]+b[S+2]/2,k=b[S+1]+b[S+3]/2;for(let I=0;I<D.length;I++){if(y===I)continue;const L=D[I].index*4;q(b[L],b[L+1],b[L+2],b[L+3],C,k)&&D[y].depth++}}return D.sort((y,S)=>{if(M){if(y.isPointerInElement&&S.isPointerInElement)return S.depth-y.depth;if(y.isPointerInElement!==S.isPointerInElement)return y.isPointerInElement?-1:1}return Math.abs(y.overlapPercent-S.overlapPercent)<=1?y.centerDistance-S.centerDistance:S.overlapPercent-y.overlapPercent}),D.map(y=>y.index)}return{elementIndices:w(n,o),zoneIndices:w(i,r)}}let re=null;function Ke(){return re||(re=_t(Ft,{localDependencies:[Ge,He,q]})),re}function xe(e,t){const s=[];for(const n of e){let o=t.get(n);o||(o=n.getBoundingClientRect(),t.set(n,o)),s.push(o.x,o.y,o.width,o.height)}return s}let Ee=0;function Gt(e){const t=Ke(),s=++Ee,n=[...e.entities.allowedDraggableSet].filter(u=>ee(u,e)),o=[...e.entities.allowedDroppableSet].filter(u=>ee(u,e)),i=Fe(e),r=e.pointer.value?.current,a=e.lib.rectCache,g={containerBox:{x:i.x,y:i.y,width:i.width,height:i.height},pointer:{x:r?.x??0,y:r?.y??0},elements:xe(n,a),elementCount:n.length,zones:xe(o,a),zoneCount:o.length,config:{minOverlapPercent:10}};t.run(g).then(u=>{if(s!==Ee||e.state.value!=="dragging")return;const c=u.elementIndices.map(f=>n[f]),l=u.zoneIndices.map(f=>o[f]);V(e,e.hovered,{elements:c,zones:l})})}function fe(e){if(e.collision?.run){const s=e.collision.run(e);V(e,e.hovered,s);return}if(Ke().isSupported)Gt(e);else{const s=te(e);V(e,e.hovered,s)}}function Ht(e,t){const s=e.collision?.throttle?.value??0;if(s<=0){fe(e);return}const n=Date.now();n-t.value>=s&&(t.value=n,fe(e))}async function Ue(e){const t=e.hovered.droppable.keys().next().value;if(!t||Z(t,e))return"accept";const s=e.entities.droppableMap.get(t),n=R(e,t),o=s?.events?.onDrop?.(n);if(o!=null&&typeof o.then=="function"){e.state.value="pending";let r;try{r=await o}catch{const a=e.entities.initiatingDraggable;return U(e,a,"onSelfDragCancel"),P(e,"onDragCancel"),_e(e,e.hovered),"cancel"}return r===!1?(e.state.value="dragging","decline"):"accept"}return o===!1?"decline":"accept"}function Ne(e){const t=e.entities.initiatingDraggable;U(e,t,"onSelfDragEnd"),P(e,"onDragEnd"),bt(e,e.hovered)}function Kt(e){const t=e.entities.selectingArea;if(!t)return;const s=e.entities.selectableAreaMap.get(t),n=[...e.entities.selectedSet];s?.events?.onSelected?.(n)}const Ut=e=>{const t={current:null},s={value:0},n=async()=>{le(),t.current?.cancel(),t.current=null;const a=e.state.value;if(a==="dragging"){const g=await Ue(e);if(g==="accept"&&Ne(e),g==="accept"||g==="cancel"){Q(e),document.removeEventListener("pointerup",n),document.removeEventListener("pointermove",o);return}return}else a==="selecting"&&Kt(e);Q(e),document.removeEventListener("pointerup",n),document.removeEventListener("pointermove",o)},o=a=>{if(e.pointer.value){if(e.pointer.value.current={x:a.clientX,y:a.clientY},nt(e)){oe(e,a,"onSelfDragStart"),P(e,"onDragStart");return}if(e.state.value==="dragging"){Ht(e,s);const g=e.entities.initiatingDraggable;U(e,g,"onSelfDragMove"),P(e,"onDragMove")}e.state.value==="selecting"&&Mt(e)}};return{pointerDown:a=>{document.addEventListener("pointerup",n),document.addEventListener("pointermove",o);const g=a.target,u=g.closest(N.SELECT_AREA),c=g.closest(N.DRAGGABLE);if(e.entities.modifiersSelectableAreaSet.size>0&&e.entities.modifiersSelectableAreaSet.has(u)){ae(),e.pointer.value=ce(a),e.state.value="selecting",e.entities.selectingArea=u;return}if(e.entities.modifiersDraggableSet.size>0&&e.entities.modifiersDraggableSet.has(c)){const l=e.entities.draggableMap.get(c);if(!Be(g,c,l?.dragHandle))return;ae(),e.entities.initiatingDraggable=c;const f=Pe(a,c);e.pointer.value=ce(a,f.x,f.y),l?.activation?.distance||l?.activation?.delay?(e.state.value="activating",l?.activation?.delay&&(e.delay.startTime=Date.now(),t.current=st(e,()=>{J(e),oe(e,a,"onSelfDragStart"),P(e,"onDragStart")}))):(J(e),oe(e,a,"onSelfDragStart"),P(e,"onDragStart"))}},pointerUp:n,pointerMove:o,cleanup:()=>{t.current?.cancel(),document.removeEventListener("pointerup",n),document.removeEventListener("pointermove",o),e.lib.draggableObserver.disconnect(),e.lib.droppableObserver.disconnect(),e.lib.selectableAreaObserver.disconnect(),e.lib.overlaySizeObserver.disconnect()}}},Nt={ArrowUp:{dx:0,dy:-1},ArrowDown:{dx:0,dy:1},ArrowLeft:{dx:-1,dy:0},ArrowRight:{dx:1,dy:0},KeyW:{dx:0,dy:-1},KeyA:{dx:-1,dy:0},KeyS:{dx:0,dy:1},KeyD:{dx:1,dy:0}},Zt=e=>t=>{const{keys:s}=e.keyboard;if(s.pressedKeys.value.add(t.code),e.state.value==="dragging"){if(s.forCancel.includes(t.code)){t.preventDefault(),le(),U(e,e.entities.initiatingDraggable,"onSelfDragCancel"),P(e,"onDragCancel"),_e(e,e.hovered),Q(e);return}if(s.forDrop.includes(t.code)){t.preventDefault(),(async()=>(await Ue(e)&&Ne(e),le(),Q(e)))();return}const o=Nt[t.code];if(o&&s.forMove.includes(t.code)&&e.pointer.value){t.preventDefault();const i=s.forMoveFaster.some(u=>s.pressedKeys.value.has(u)),r=e.keyboard.step*(i?e.keyboard.moveFaster:1);e.pointer.value.current={x:e.pointer.value.current.x+o.dx*r,y:e.pointer.value.current.y+o.dy*r};const g=(e.collision?.run??te)(e);V(e,e.hovered,g),U(e,e.entities.initiatingDraggable,"onSelfDragMove"),P(e,"onDragMove");return}return}if(s.forDrag.includes(t.code)){const o=document.activeElement;if(!o)return;const i=o.closest(N.DRAGGABLE);if(!i||e.entities.modifiersDraggableSet.size===0||!e.entities.modifiersDraggableSet.has(i))return;const r=e.entities.draggableMap.get(i);if(!Be(o,i,r?.dragHandle,!0))return;t.preventDefault(),ae();const a=i.getBoundingClientRect(),g=a.left+a.width/2,u=a.top+a.height/2,c={clientX:g,clientY:u};e.entities.initiatingDraggable=i;const l=Pe(c,i);e.pointer.value=ce(c,l.x,l.y),J(e);const m=(e.collision?.run??te)(e);V(e,e.hovered,m),U(e,i,"onSelfDragStart"),P(e,"onDragStart")}},Yt=e=>t=>{e.keyboard.keys.pressedKeys.value.delete(t.code)},jt=e=>()=>{e.keyboard.keys.pressedKeys.value.clear()},ie={keyDown:Zt,keyUp:Yt,clear:jt},Xt=e=>()=>{e.state.value&&(e.scrollPosition.x=window.scrollX,e.scrollPosition.y=window.scrollY,e.lib.rectCache.clear(),e.state.value==="dragging"&&fe(e))},B=50,Vt=144,Ae=1e3/Vt;function $t(e){return e==null?{top:B,right:B,bottom:B,left:B}:typeof e=="number"?{top:e,right:e,bottom:e,left:e}:{top:e.top??B,right:e.right??B,bottom:e.bottom??B,left:e.left??B}}const Wt={getScrollState(e){return{scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}},setScroll(e,t,s){e.scrollTop=t,e.scrollLeft=s}};function Ze(e,t,s,n=Wt,o){const{speed:i=10,disabled:r=!1}=t,a=$t(t.threshold);let g=null,u=null,c=null,l=0,f=0;const m=M=>{o&&(o.value=M)},h=M=>{const w=e.value,x=s();if(!w||!x||r){m(!1);return}u||(u=M);const G=M-u;if(G<Ae){g=requestAnimationFrame(h);return}const D=i*(G/Ae);u=M;const{scrollTop:b,scrollLeft:y}=n.getScrollState(w);(!c||l!==b||f!==y)&&(c=n.getRect?n.getRect(w):w.getBoundingClientRect(),l=b,f=y);let S=!1,C=b,k=y;a.top>0&&x.y-c.top<a.top?(C=b-D,S=!0):a.bottom>0&&c.bottom-x.y<a.bottom&&(C=b+D,S=!0),a.left>0&&x.x-c.left<a.left?(k=y-D,S=!0):a.right>0&&c.right-x.x<a.right&&(k=y+D,S=!0),S&&n.setScroll(w,C,k),m(S),g=requestAnimationFrame(h)};return{run:()=>{u=null,g=requestAnimationFrame(h)},stop:()=>{g&&(cancelAnimationFrame(g),g=null),c=null,l=0,f=0,u=null,m(!1)}}}const qt={getScrollState(){return{scrollTop:window.scrollY??document.documentElement.scrollTop,scrollLeft:window.scrollX??document.documentElement.scrollLeft}},setScroll(e,t,s){window.scrollTo(s,t)},getRect(){return new DOMRect(0,0,window.innerWidth,window.innerHeight)}},Jt={get value(){return typeof document<"u"?document.documentElement:null}};function Qt(e,t){const s=d.shallowRef(!1),o=Ze(Jt,t??{},()=>{if(e.state.value!=="dragging")return null;const a=e.overlay.position.value,g=e.overlay.size.value;return a?g?.width&&g?.height?{x:a.x+g.width/2,y:a.y+g.height/2}:a:null},qt,s),i=d.watch(()=>e.state.value,a=>{a==="dragging"?o.run():o.stop()}),r=()=>{i(),o.stop()};return d.onScopeDispose(r),{isScrolling:s,stop:r}}const en=e=>{const t=Ut(e),s=ie.keyDown(e),n=ie.keyUp(e),o=ie.clear(e),i=Xt(e);let r=null;d.watch(e.autoScrollViewport,a=>{r?.(),r=null,(a===!0||a&&typeof a=="object")&&(r=Qt(e,a===!0?{}:a).stop)},{immediate:!0}),d.onMounted(()=>{document.addEventListener("pointerdown",t.pointerDown),document.addEventListener("keydown",s),document.addEventListener("keyup",n),document.addEventListener("blur",o),document.addEventListener("scroll",i,!0)}),d.onBeforeUnmount(()=>{document.removeEventListener("pointerdown",t.pointerDown),document.removeEventListener("pointerup",t.pointerUp),document.removeEventListener("pointermove",t.pointerMove),document.removeEventListener("keydown",s),document.removeEventListener("keyup",n),document.removeEventListener("blur",o),document.removeEventListener("scroll",i,!0),r?.(),t.cleanup()})},ne=()=>{const e=d.inject(de);if(!e)throw Error("DnD provider not found");return e},ye=()=>{const e=ne();return{overlay:e.overlay,delay:e.delay,distanceProgress:e.distanceProgress,entities:e.entities,pointer:e.pointer,state:e.state,scrollPosition:e.scrollPosition,keyboard:e.keyboard,hovered:e.hovered,collision:e.collision,autoScrollViewport:e.autoScrollViewport}},tn=d.defineComponent({__name:"DefaultOverlay",setup(e){const{entities:t,state:s,overlay:n}=ye();return(o,i)=>d.unref(s)==="dragging"?(d.openBlock(),d.createElementBlock("div",{key:0,class:"dnd-kit-default-overlay",style:d.normalizeStyle({"--position-x":d.unref(n).position.value.x+"px","--position-y":d.unref(n).position.value.y+"px"})},[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(d.unref(t).draggingMap,([r,a])=>(d.openBlock(),d.createElementBlock(d.Fragment,null,[d.unref(t).draggableMap.get(r)?.render?(d.openBlock(),d.createBlock(d.resolveDynamicComponent(d.unref(t).draggableMap.get(r)?.render),{key:0})):(d.openBlock(),d.createBlock(d.resolveDynamicComponent(r.tagName),{key:1,innerHTML:a.initialOuterHTML,style:d.normalizeStyle({width:a.initialRect.width+"px",height:a.initialRect.height+"px"})},null,8,["innerHTML","style"]))],64))),256))],4)):d.createCommentVNode("",!0)}}),nn=d.defineComponent({__name:"DnDProvider",props:{autoScrollViewport:{type:[Object,Boolean,null]},overlayTo:{type:[String,Boolean,null]}},setup(e){const t=e,s=d.useTemplateRef("overlayRef"),n=lt(s,t);en(n);const o=d.computed(()=>n.overlay.render.value??tn);return d.provide(de,n),(i,r)=>(d.openBlock(),d.createElementBlock(d.Fragment,null,[d.renderSlot(i.$slots,"default"),(d.openBlock(),d.createBlock(d.Teleport,{to:d.unref(n).overlay.to.value||"body"},[d.createElementVNode("div",{ref_key:"overlayRef",ref:s,class:"dnd-kit-overlay-container"},[d.renderSlot(i.$slots,"overlay",{overlay:o.value},()=>[(d.openBlock(),d.createBlock(d.resolveDynamicComponent(o.value)))])],512)],8,["to"]))],64))}});function sn(e,t,s){const n=ne();let o,i,r;typeof t=="function"?(o={},i=t):(o=t??{},i=s);const a=d.computed({get(){const l=E(e);return l?n.entities.selectedSet.has(l):!1},set(l){const f=E(e);f&&n.entities.selectedSet[l?"add":"delete"](f)}}),g=d.computed(()=>{const l=E(e);return l?n.entities.draggingMap.has(l):!1}),u=d.computed(()=>{const l=E(e);return l?n.entities.allowedDraggableSet.has(l):!1}),c=d.computed(()=>{const l=E(e);if(l)return n.entities.draggableMap.get(l)?.hoveredPlacement});return d.onMounted(()=>{r=E(e),r&&(r.addEventListener("dragstart",A),r.addEventListener("drag",A),r.addEventListener("dragend",A),r.setAttribute(F.DRAGGABLE,""),n.lib.draggableObserver.observe(r),n.entities.draggableMap.set(r,{render:o.render,disabled:o.disabled??!1,groups:o.groups??[],modifier:o.modifier,events:o.events,payload:i,dragHandle:o.dragHandle,activation:o.activation,placementMargins:o.placementMargins,hoveredPlacement:void 0}))}),d.onBeforeUnmount(()=>{r&&(n.lib.draggableObserver.unobserve(r),n.entities.visibleDraggableSet.delete(r),n.entities.draggableMap.delete(r),n.entities.modifiersDraggableSet.delete(r))}),{selected:a,isDragging:g,isAllowed:u,isDragOver:c}}const on=(e,t)=>{const s=ne(),n=d.computed(()=>e.value===s.entities.selectingArea);let o=null;d.onMounted(()=>{o=E(e),o&&(o.setAttribute(F.SELECT_AREA,""),s.lib.selectableAreaObserver.observe(o),s.entities.selectableAreaMap.set(o,{modifier:t?.modifier??{keys:["ControlLeft"],method:"every"},events:t?.events,disabled:t?.disabled??!1,groups:t?.groups??[]}))}),d.onBeforeUnmount(()=>{o&&(s.lib.selectableAreaObserver.unobserve(o),s.entities.visibleSelectableAreaSet.delete(o),s.entities.modifiersSelectableAreaSet.delete(o),s.entities.selectableAreaMap.delete(o))});const i=d.computed(()=>{s.scrollPosition.x,s.scrollPosition.y;const r=s.pointer.value;return!r||s.state.value!=="selecting"||!o||!n.value?{}:Dt(r.start,r.current,o)});return{isSelecting:n,style:i}};function rn(e,t){const s=d.inject(de);if(!s)throw Error("DnD provider not found");let n=null;return d.onMounted(()=>{n=E(e),n&&(n.setAttribute(F.CONSTRAINT_AREA,""),s.entities.constraintsAreaMap.set(n,{axis:t?.axis||"both",restrictToArea:t?.restrictToArea||!1}))}),d.onBeforeUnmount(()=>{n&&s.entities.constraintsAreaMap.delete(n)}),{}}function an(e,t,s){const n=ne();let o=null,i,r;typeof t=="function"?(i={},r=t):(i=t??{},r=s);const a=d.computed(()=>{const u=E(e);return u?n.entities.allowedDroppableSet.has(u):!1}),g=d.computed(()=>{const u=E(e);if(u)return n.entities.droppableMap.get(u)?.hoveredPlacement});return d.onMounted(()=>{o=E(e),o&&(o.setAttribute(F.DROPPABLE,""),n.lib.droppableObserver.observe(o),n.entities.droppableMap.set(o,{disabled:i.disabled??!1,groups:i.groups??[],events:i.events,payload:r,hoveredPlacement:void 0}))}),d.onBeforeUnmount(()=>{o&&(n.lib.droppableObserver.unobserve(o),n.entities.visibleDroppableSet.delete(o),n.entities.droppableMap.delete(o))}),{isAllowed:a,isDragOver:g}}const ln=(e,t)=>{const s=ye(),n=d.shallowRef(!1),i=Ze(e,t??{},()=>{if(s.state.value!=="dragging")return null;const r=s.overlay.position.value,a=s.overlay.size.value;return r?a?.width&&a?.height?{x:r.x+a.width/2,y:r.y+a.height/2}:r:null},void 0,n);return d.watch(()=>s.state.value,r=>{r==="dragging"?i.run():i.stop()}),{isScrolling:n}};function Ce(e,t){return t<=0?e:Math.round(e/t)*t}function cn(e,t){const s=t&&"grid"in t&&t.grid!=null,n=t?s?t.grid:t.gridX:1,o=t?s?t.grid:t.gridY:1;return d.computed(()=>{const{x:i,y:r}=e.value;return{x:Ce(i,n),y:Ce(r,o)}})}const ke=()=>!0,Ie=()=>0,un="separate",gn=()=>{const e={filterElements:ke,filterZones:ke,sortElements:Ie,sortZones:Ie,mergeStrategy:un,pickClosestBetweenFirst:!1},t=(n,o,i,r,a,g,u)=>{const c=r instanceof Set?r:new Set(r),l={containerBox:o,pointer:i},f=e.minOverlapPercent,m=[];for(const h of c){if(!a(h,n))continue;const p=K(h);if(!u(p,l))continue;const v=ue(p,o);if(f!==void 0&&v<f)continue;let M=0;for(const w of c)w!==h&&O(w,h)&&M++;m.push({node:h,box:p,meta:{isPointerInElement:ge(p,i.x,i.y),overlapPercent:v,depth:M,centerDistance:kt(X(o),X(p))}})}return m.sort((h,p)=>g(h,p,l)),m},s={container(n){return e.container=n,s},containerBox(n){return e.containerBox=n,s},elements(n){return e.elements=n,s},zones(n){return e.zones=n,s},filterElements(n){return e.filterElements=n,s},filterZones(n){return e.filterZones=n,s},collision(n){return e.collision=n,s},sortElements(n){return e.sortElements=n,s},sortZones(n){return e.sortZones=n,s},mergeStrategy(n){return e.mergeStrategy=n,s},pickClosestBetweenFirst(n){return e.pickClosestBetweenFirst=n,s},minOverlapPercent(n){return e.minOverlapPercent=n,s},build(){const n=e;if(!n.container||!n.elements||!n.zones||!n.collision)throw new Error("sensor: container, elements, zones, collision are required");return o=>{const i=n.container(o);if(!i)return{elements:[],zones:[]};const r=n.containerBox?n.containerBox(o):K(i),a=o.pointer.value?.current??{x:0,y:0},g=t(o,r,a,n.elements(o),n.filterElements,n.sortElements,n.collision),u=t(o,r,a,n.zones(o),n.filterZones,n.sortZones,n.collision);if(n.mergeStrategy==="unified-closest"){const c=[...g.map(f=>({node:f.node,box:f.box,isZone:!1,distance:0})),...u.map(f=>({node:f.node,box:f.box,isZone:!0,distance:0}))];if(c.length===0)return{elements:[],zones:[]};for(const f of c){const m=X(f.box);f.distance=Math.hypot(a.x-m.x,a.y-m.y)}const l=c.reduce((f,m)=>m.distance<f.distance?m:f);return l.isZone?{elements:[],zones:[l.node]}:{elements:[l.node],zones:[]}}if(n.pickClosestBetweenFirst&&g[0]&&u[0]){const c=X(u[0].box),l=X(g[0].box),f=Math.hypot(a.x-c.x,a.y-c.y);return Math.hypot(a.x-l.x,a.y-l.y)<f?{elements:g.map(h=>h.node),zones:[]}:{elements:[],zones:u.map(h=>h.node)}}return{elements:g.map(c=>c.node),zones:u.map(c=>c.node)}}}};return s},fn=()=>gn();exports.DnDProvider=nn;exports.createSensor=fn;exports.defaultCollisionDetection=te;exports.makeAutoScroll=ln;exports.makeConstraintArea=rn;exports.makeDraggable=sn;exports.makeDroppable=an;exports.makeSelectionArea=on;exports.makeSnappedOverlayPosition=cn;exports.useDnDProvider=ye;