@servicetitan/anvil2 1.31.0 → 1.31.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/dist/{AnvilProvider-C3E7FZAC.js → AnvilProvider-2uSjX-jw.js} +2 -2
- package/dist/{AnvilProvider-C3E7FZAC.js.map → AnvilProvider-2uSjX-jw.js.map} +1 -1
- package/dist/AnvilProvider.js +1 -1
- package/dist/Avatar-CXgb_ukV.js +249 -0
- package/dist/Avatar-CXgb_ukV.js.map +1 -0
- package/dist/Avatar.css +25 -16
- package/dist/Avatar.js +1 -1
- package/dist/{Chip-DX922SMw-13SW9xaV.js → Chip-BQOzhPQv-DdLdgSqD.js} +3 -3
- package/dist/{Chip-DX922SMw-13SW9xaV.js.map → Chip-BQOzhPQv-DdLdgSqD.js.map} +1 -1
- package/dist/{Chip-i-OBdpYm.js → Chip-DmGfVz7J.js} +9 -5
- package/dist/Chip-DmGfVz7J.js.map +1 -0
- package/dist/Chip.js +1 -1
- package/dist/{Combobox-3SWKXAYu.js → Combobox-DLxPUWuK.js} +4 -4
- package/dist/{Combobox-3SWKXAYu.js.map → Combobox-DLxPUWuK.js.map} +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DateField-YjnaTpA4.js → DateField-BwrvVq3b.js} +5 -5
- package/dist/{DateField-YjnaTpA4.js.map → DateField-BwrvVq3b.js.map} +1 -1
- package/dist/DateField.js +1 -1
- package/dist/{Dialog-DDF9Xyrs.js → Dialog-suBVnUvm.js} +2 -2
- package/dist/{Dialog-DDF9Xyrs.js.map → Dialog-suBVnUvm.js.map} +1 -1
- package/dist/Dialog.js +1 -1
- package/dist/DndSort-DE9VxJwz.js +5622 -0
- package/dist/DndSort-DE9VxJwz.js.map +1 -0
- package/dist/DndSort.js +1 -5621
- package/dist/DndSort.js.map +1 -1
- package/dist/{Drawer-Bffoaren.js → Drawer-BoFuipVJ.js} +2 -2
- package/dist/{Drawer-Bffoaren.js.map → Drawer-BoFuipVJ.js.map} +1 -1
- package/dist/Drawer.js +1 -1
- package/dist/{HammerProvider-B4ULvVBh-DKGRrw3q.js → HammerProvider-C9QySDSZ-CLRb96CM.js} +2 -2
- package/dist/{HammerProvider-B4ULvVBh-DKGRrw3q.js.map → HammerProvider-C9QySDSZ-CLRb96CM.js.map} +1 -1
- package/dist/{InputMask-MW0aui2v-d0ziTRnR.js → InputMask-D9odbDSU-BJpRW6S6.js} +2 -2
- package/dist/{InputMask-MW0aui2v-d0ziTRnR.js.map → InputMask-D9odbDSU-BJpRW6S6.js.map} +1 -1
- package/dist/{InputMask-DdF90b0D.js → InputMask-DRNShuT9.js} +2 -2
- package/dist/{InputMask-DdF90b0D.js.map → InputMask-DRNShuT9.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{Menu-BtinbJQ_.js → Menu-DyMYxJUM.js} +3 -3
- package/dist/{Menu-BtinbJQ_.js.map → Menu-DyMYxJUM.js.map} +1 -1
- package/dist/Menu.js +1 -1
- package/dist/{Page-DnroZYyr.js → Page-CS_ix1vK.js} +7 -7
- package/dist/{Page-DnroZYyr.js.map → Page-CS_ix1vK.js.map} +1 -1
- package/dist/Page.js +1 -1
- package/dist/{Popover-C7aIgvIl.js → Popover-DwctvBuT.js} +2 -2
- package/dist/{Popover-C7aIgvIl.js.map → Popover-DwctvBuT.js.map} +1 -1
- package/dist/{Popover-DDhjaX2z-waNj8Iba.js → Popover-nXUfj8hV-CfP3czmR.js} +4 -4
- package/dist/{Popover-DDhjaX2z-waNj8Iba.js.map → Popover-nXUfj8hV-CfP3czmR.js.map} +1 -1
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-BfdgLTrw.js → ProgressBar-BmVVLmcr.js} +2 -2
- package/dist/{ProgressBar-BfdgLTrw.js.map → ProgressBar-BmVVLmcr.js.map} +1 -1
- package/dist/{ProgressBar-YrCJtlvK-BlhqSUr-.js → ProgressBar-C5jHU322-BUKq_wDl.js} +9 -4
- package/dist/ProgressBar-C5jHU322-BUKq_wDl.js.map +1 -0
- package/dist/ProgressBar.js +1 -1
- package/dist/{TextField-B7Asq1aB.js → TextField-CvbgWXp2.js} +2 -2
- package/dist/{TextField-B7Asq1aB.js.map → TextField-CvbgWXp2.js.map} +1 -1
- package/dist/{TextField-BTgxdt7I-Da1U7oOT.js → TextField-DmkmyIq0-CWjKLHMx.js} +2 -2
- package/dist/{TextField-BTgxdt7I-Da1U7oOT.js.map → TextField-DmkmyIq0-CWjKLHMx.js.map} +1 -1
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-CaMvxI9Y.js → Textarea-BdIaTJIC.js} +2 -2
- package/dist/{Textarea-CaMvxI9Y.js.map → Textarea-BdIaTJIC.js.map} +1 -1
- package/dist/Textarea.js +1 -1
- package/dist/{ThemeProvider-DKkyZPDr-BH0VGW7C.js → ThemeProvider-DrK12Ru--D1_n9ujr.js} +5 -5
- package/dist/ThemeProvider-DrK12Ru--D1_n9ujr.js.map +1 -0
- package/dist/{ThemeProvider-DKkyZPDr.css → ThemeProvider-DrK12Ru-.css} +123 -909
- package/dist/{ThemeProvider-Drjj0EtN.js → ThemeProvider-DzTAYEYO.js} +2 -2
- package/dist/{ThemeProvider-Drjj0EtN.js.map → ThemeProvider-DzTAYEYO.js.map} +1 -1
- package/dist/ThemeProvider.js +1 -1
- package/dist/Toast.js +1 -1
- package/dist/{Toolbar-OYgCC3Up.js → Toolbar-BB7XNCQX.js} +2 -2
- package/dist/{Toolbar-OYgCC3Up.js.map → Toolbar-BB7XNCQX.js.map} +1 -1
- package/dist/Toolbar.js +1 -1
- package/dist/{Tooltip-rDXwk4az.js → Tooltip-Ccr19EVg.js} +2 -2
- package/dist/{Tooltip-rDXwk4az.js.map → Tooltip-Ccr19EVg.js.map} +1 -1
- package/dist/Tooltip.js +1 -1
- package/dist/components/Avatar/Avatar.d.ts +1 -7
- package/dist/components/index.d.ts +1 -0
- package/dist/index.js +19 -18
- package/dist/index.js.map +1 -1
- package/dist/{toast-KF3GWYbk.js → toast-na926t2L.js} +2 -2
- package/dist/{toast-KF3GWYbk.js.map → toast-na926t2L.js.map} +1 -1
- package/package.json +2 -2
- package/dist/Avatar-CylY-nHK.js +0 -201
- package/dist/Avatar-CylY-nHK.js.map +0 -1
- package/dist/Chip-i-OBdpYm.js.map +0 -1
- package/dist/ProgressBar-YrCJtlvK-BlhqSUr-.js.map +0 -1
- package/dist/ThemeProvider-DKkyZPDr-BH0VGW7C.js.map +0 -1
- /package/dist/{Chip-DX922SMw.css → Chip-BQOzhPQv.css} +0 -0
- /package/dist/{Popover-DDhjaX2z.css → Popover-nXUfj8hV.css} +0 -0
- /package/dist/{ProgressBar-YrCJtlvK.css → ProgressBar-C5jHU322.css} +0 -0
package/dist/DndSort.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DndSort.js","sources":["../../../node_modules/.pnpm/@dnd-kit+utilities@3.2.2_react@18.3.1/node_modules/@dnd-kit/utilities/dist/utilities.esm.js","../../../node_modules/.pnpm/@dnd-kit+accessibility@3.1.1_react@18.3.1/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js","../../../node_modules/.pnpm/@dnd-kit+core@6.3.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@dnd-kit/core/dist/core.esm.js","../../hammer-react/dist/index-BzKcoArQ.js","../../hammer-icon/mdi/round/drag_indicator.svg","../../../node_modules/.pnpm/@dnd-kit+sortable@10.0.0_@dnd-kit+core@6.3.1_react-dom@18.3.1_react@18.3.1__react@18.3.1__react@18.3.1/node_modules/@dnd-kit/sortable/dist/sortable.esm.js","../../hammer-react/dist/DndSort.js"],"sourcesContent":["import { useMemo, useLayoutEffect, useEffect, useRef, useCallback } from 'react';\n\nfunction useCombinedRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return useMemo(() => node => {\n refs.forEach(ref => ref(node));\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n refs);\n}\n\n// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js\nconst canUseDOM = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined';\n\nfunction isWindow(element) {\n const elementString = Object.prototype.toString.call(element);\n return elementString === '[object Window]' || // In Electron context the Window object serializes to [object global]\n elementString === '[object global]';\n}\n\nfunction isNode(node) {\n return 'nodeType' in node;\n}\n\nfunction getWindow(target) {\n var _target$ownerDocument, _target$ownerDocument2;\n\n if (!target) {\n return window;\n }\n\n if (isWindow(target)) {\n return target;\n }\n\n if (!isNode(target)) {\n return window;\n }\n\n return (_target$ownerDocument = (_target$ownerDocument2 = target.ownerDocument) == null ? void 0 : _target$ownerDocument2.defaultView) != null ? _target$ownerDocument : window;\n}\n\nfunction isDocument(node) {\n const {\n Document\n } = getWindow(node);\n return node instanceof Document;\n}\n\nfunction isHTMLElement(node) {\n if (isWindow(node)) {\n return false;\n }\n\n return node instanceof getWindow(node).HTMLElement;\n}\n\nfunction isSVGElement(node) {\n return node instanceof getWindow(node).SVGElement;\n}\n\nfunction getOwnerDocument(target) {\n if (!target) {\n return document;\n }\n\n if (isWindow(target)) {\n return target.document;\n }\n\n if (!isNode(target)) {\n return document;\n }\n\n if (isDocument(target)) {\n return target;\n }\n\n if (isHTMLElement(target) || isSVGElement(target)) {\n return target.ownerDocument;\n }\n\n return document;\n}\n\n/**\r\n * A hook that resolves to useEffect on the server and useLayoutEffect on the client\r\n * @param callback {function} Callback function that is invoked when the dependencies of the hook change\r\n */\n\nconst useIsomorphicLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;\n\nfunction useEvent(handler) {\n const handlerRef = useRef(handler);\n useIsomorphicLayoutEffect(() => {\n handlerRef.current = handler;\n });\n return useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return handlerRef.current == null ? void 0 : handlerRef.current(...args);\n }, []);\n}\n\nfunction useInterval() {\n const intervalRef = useRef(null);\n const set = useCallback((listener, duration) => {\n intervalRef.current = setInterval(listener, duration);\n }, []);\n const clear = useCallback(() => {\n if (intervalRef.current !== null) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n }, []);\n return [set, clear];\n}\n\nfunction useLatestValue(value, dependencies) {\n if (dependencies === void 0) {\n dependencies = [value];\n }\n\n const valueRef = useRef(value);\n useIsomorphicLayoutEffect(() => {\n if (valueRef.current !== value) {\n valueRef.current = value;\n }\n }, dependencies);\n return valueRef;\n}\n\nfunction useLazyMemo(callback, dependencies) {\n const valueRef = useRef();\n return useMemo(() => {\n const newValue = callback(valueRef.current);\n valueRef.current = newValue;\n return newValue;\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [...dependencies]);\n}\n\nfunction useNodeRef(onChange) {\n const onChangeHandler = useEvent(onChange);\n const node = useRef(null);\n const setNodeRef = useCallback(element => {\n if (element !== node.current) {\n onChangeHandler == null ? void 0 : onChangeHandler(element, node.current);\n }\n\n node.current = element;\n }, //eslint-disable-next-line\n []);\n return [node, setNodeRef];\n}\n\nfunction usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nlet ids = {};\nfunction useUniqueId(prefix, value) {\n return useMemo(() => {\n if (value) {\n return value;\n }\n\n const id = ids[prefix] == null ? 0 : ids[prefix] + 1;\n ids[prefix] = id;\n return prefix + \"-\" + id;\n }, [prefix, value]);\n}\n\nfunction createAdjustmentFn(modifier) {\n return function (object) {\n for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n adjustments[_key - 1] = arguments[_key];\n }\n\n return adjustments.reduce((accumulator, adjustment) => {\n const entries = Object.entries(adjustment);\n\n for (const [key, valueAdjustment] of entries) {\n const value = accumulator[key];\n\n if (value != null) {\n accumulator[key] = value + modifier * valueAdjustment;\n }\n }\n\n return accumulator;\n }, { ...object\n });\n };\n}\n\nconst add = /*#__PURE__*/createAdjustmentFn(1);\nconst subtract = /*#__PURE__*/createAdjustmentFn(-1);\n\nfunction hasViewportRelativeCoordinates(event) {\n return 'clientX' in event && 'clientY' in event;\n}\n\nfunction isKeyboardEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n KeyboardEvent\n } = getWindow(event.target);\n return KeyboardEvent && event instanceof KeyboardEvent;\n}\n\nfunction isTouchEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n TouchEvent\n } = getWindow(event.target);\n return TouchEvent && event instanceof TouchEvent;\n}\n\n/**\r\n * Returns the normalized x and y coordinates for mouse and touch events.\r\n */\n\nfunction getEventCoordinates(event) {\n if (isTouchEvent(event)) {\n if (event.touches && event.touches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.touches[0];\n return {\n x,\n y\n };\n } else if (event.changedTouches && event.changedTouches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.changedTouches[0];\n return {\n x,\n y\n };\n }\n }\n\n if (hasViewportRelativeCoordinates(event)) {\n return {\n x: event.clientX,\n y: event.clientY\n };\n }\n\n return null;\n}\n\nconst CSS = /*#__PURE__*/Object.freeze({\n Translate: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n x,\n y\n } = transform;\n return \"translate3d(\" + (x ? Math.round(x) : 0) + \"px, \" + (y ? Math.round(y) : 0) + \"px, 0)\";\n }\n\n },\n Scale: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n scaleX,\n scaleY\n } = transform;\n return \"scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\";\n }\n\n },\n Transform: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n return [CSS.Translate.toString(transform), CSS.Scale.toString(transform)].join(' ');\n }\n\n },\n Transition: {\n toString(_ref) {\n let {\n property,\n duration,\n easing\n } = _ref;\n return property + \" \" + duration + \"ms \" + easing;\n }\n\n }\n});\n\nconst SELECTOR = 'a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]';\nfunction findFirstFocusableNode(element) {\n if (element.matches(SELECTOR)) {\n return element;\n }\n\n return element.querySelector(SELECTOR);\n}\n\nexport { CSS, add, canUseDOM, findFirstFocusableNode, getEventCoordinates, getOwnerDocument, getWindow, hasViewportRelativeCoordinates, isDocument, isHTMLElement, isKeyboardEvent, isNode, isSVGElement, isTouchEvent, isWindow, subtract, useCombinedRefs, useEvent, useInterval, useIsomorphicLayoutEffect, useLatestValue, useLazyMemo, useNodeRef, usePrevious, useUniqueId };\n//# sourceMappingURL=utilities.esm.js.map\n","import React, { useState, useCallback } from 'react';\n\nconst hiddenStyles = {\n display: 'none'\n};\nfunction HiddenText(_ref) {\n let {\n id,\n value\n } = _ref;\n return React.createElement(\"div\", {\n id: id,\n style: hiddenStyles\n }, value);\n}\n\nfunction LiveRegion(_ref) {\n let {\n id,\n announcement,\n ariaLiveType = \"assertive\"\n } = _ref;\n // Hide element visually but keep it readable by screen readers\n const visuallyHidden = {\n position: 'fixed',\n top: 0,\n left: 0,\n width: 1,\n height: 1,\n margin: -1,\n border: 0,\n padding: 0,\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(100%)',\n whiteSpace: 'nowrap'\n };\n return React.createElement(\"div\", {\n id: id,\n style: visuallyHidden,\n role: \"status\",\n \"aria-live\": ariaLiveType,\n \"aria-atomic\": true\n }, announcement);\n}\n\nfunction useAnnouncement() {\n const [announcement, setAnnouncement] = useState('');\n const announce = useCallback(value => {\n if (value != null) {\n setAnnouncement(value);\n }\n }, []);\n return {\n announce,\n announcement\n };\n}\n\nexport { HiddenText, LiveRegion, useAnnouncement };\n//# sourceMappingURL=accessibility.esm.js.map\n","import React, { createContext, useContext, useEffect, useState, useCallback, useMemo, useRef, memo, useReducer, cloneElement, forwardRef } from 'react';\nimport { createPortal, unstable_batchedUpdates } from 'react-dom';\nimport { useUniqueId, getEventCoordinates, getWindow, isDocument, isHTMLElement, isSVGElement, canUseDOM, isWindow, isNode, getOwnerDocument, add, isKeyboardEvent, subtract, useLazyMemo, useInterval, usePrevious, useLatestValue, useEvent, useIsomorphicLayoutEffect, useNodeRef, findFirstFocusableNode, CSS } from '@dnd-kit/utilities';\nimport { useAnnouncement, HiddenText, LiveRegion } from '@dnd-kit/accessibility';\n\nconst DndMonitorContext = /*#__PURE__*/createContext(null);\n\nfunction useDndMonitor(listener) {\n const registerListener = useContext(DndMonitorContext);\n useEffect(() => {\n if (!registerListener) {\n throw new Error('useDndMonitor must be used within a children of <DndContext>');\n }\n\n const unsubscribe = registerListener(listener);\n return unsubscribe;\n }, [listener, registerListener]);\n}\n\nfunction useDndMonitorProvider() {\n const [listeners] = useState(() => new Set());\n const registerListener = useCallback(listener => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n }, [listeners]);\n const dispatch = useCallback(_ref => {\n let {\n type,\n event\n } = _ref;\n listeners.forEach(listener => {\n var _listener$type;\n\n return (_listener$type = listener[type]) == null ? void 0 : _listener$type.call(listener, event);\n });\n }, [listeners]);\n return [dispatch, registerListener];\n}\n\nconst defaultScreenReaderInstructions = {\n draggable: \"\\n To pick up a draggable item, press the space bar.\\n While dragging, use the arrow keys to move the item.\\n Press space again to drop the item in its new position, or press escape to cancel.\\n \"\n};\nconst defaultAnnouncements = {\n onDragStart(_ref) {\n let {\n active\n } = _ref;\n return \"Picked up draggable item \" + active.id + \".\";\n },\n\n onDragOver(_ref2) {\n let {\n active,\n over\n } = _ref2;\n\n if (over) {\n return \"Draggable item \" + active.id + \" was moved over droppable area \" + over.id + \".\";\n }\n\n return \"Draggable item \" + active.id + \" is no longer over a droppable area.\";\n },\n\n onDragEnd(_ref3) {\n let {\n active,\n over\n } = _ref3;\n\n if (over) {\n return \"Draggable item \" + active.id + \" was dropped over droppable area \" + over.id;\n }\n\n return \"Draggable item \" + active.id + \" was dropped.\";\n },\n\n onDragCancel(_ref4) {\n let {\n active\n } = _ref4;\n return \"Dragging was cancelled. Draggable item \" + active.id + \" was dropped.\";\n }\n\n};\n\nfunction Accessibility(_ref) {\n let {\n announcements = defaultAnnouncements,\n container,\n hiddenTextDescribedById,\n screenReaderInstructions = defaultScreenReaderInstructions\n } = _ref;\n const {\n announce,\n announcement\n } = useAnnouncement();\n const liveRegionId = useUniqueId(\"DndLiveRegion\");\n const [mounted, setMounted] = useState(false);\n useEffect(() => {\n setMounted(true);\n }, []);\n useDndMonitor(useMemo(() => ({\n onDragStart(_ref2) {\n let {\n active\n } = _ref2;\n announce(announcements.onDragStart({\n active\n }));\n },\n\n onDragMove(_ref3) {\n let {\n active,\n over\n } = _ref3;\n\n if (announcements.onDragMove) {\n announce(announcements.onDragMove({\n active,\n over\n }));\n }\n },\n\n onDragOver(_ref4) {\n let {\n active,\n over\n } = _ref4;\n announce(announcements.onDragOver({\n active,\n over\n }));\n },\n\n onDragEnd(_ref5) {\n let {\n active,\n over\n } = _ref5;\n announce(announcements.onDragEnd({\n active,\n over\n }));\n },\n\n onDragCancel(_ref6) {\n let {\n active,\n over\n } = _ref6;\n announce(announcements.onDragCancel({\n active,\n over\n }));\n }\n\n }), [announce, announcements]));\n\n if (!mounted) {\n return null;\n }\n\n const markup = React.createElement(React.Fragment, null, React.createElement(HiddenText, {\n id: hiddenTextDescribedById,\n value: screenReaderInstructions.draggable\n }), React.createElement(LiveRegion, {\n id: liveRegionId,\n announcement: announcement\n }));\n return container ? createPortal(markup, container) : markup;\n}\n\nvar Action;\n\n(function (Action) {\n Action[\"DragStart\"] = \"dragStart\";\n Action[\"DragMove\"] = \"dragMove\";\n Action[\"DragEnd\"] = \"dragEnd\";\n Action[\"DragCancel\"] = \"dragCancel\";\n Action[\"DragOver\"] = \"dragOver\";\n Action[\"RegisterDroppable\"] = \"registerDroppable\";\n Action[\"SetDroppableDisabled\"] = \"setDroppableDisabled\";\n Action[\"UnregisterDroppable\"] = \"unregisterDroppable\";\n})(Action || (Action = {}));\n\nfunction noop() {}\n\nfunction useSensor(sensor, options) {\n return useMemo(() => ({\n sensor,\n options: options != null ? options : {}\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [sensor, options]);\n}\n\nfunction useSensors() {\n for (var _len = arguments.length, sensors = new Array(_len), _key = 0; _key < _len; _key++) {\n sensors[_key] = arguments[_key];\n }\n\n return useMemo(() => [...sensors].filter(sensor => sensor != null), // eslint-disable-next-line react-hooks/exhaustive-deps\n [...sensors]);\n}\n\nconst defaultCoordinates = /*#__PURE__*/Object.freeze({\n x: 0,\n y: 0\n});\n\n/**\r\n * Returns the distance between two points\r\n */\nfunction distanceBetween(p1, p2) {\n return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));\n}\n\nfunction getRelativeTransformOrigin(event, rect) {\n const eventCoordinates = getEventCoordinates(event);\n\n if (!eventCoordinates) {\n return '0 0';\n }\n\n const transformOrigin = {\n x: (eventCoordinates.x - rect.left) / rect.width * 100,\n y: (eventCoordinates.y - rect.top) / rect.height * 100\n };\n return transformOrigin.x + \"% \" + transformOrigin.y + \"%\";\n}\n\n/**\r\n * Sort collisions from smallest to greatest value\r\n */\nfunction sortCollisionsAsc(_ref, _ref2) {\n let {\n data: {\n value: a\n }\n } = _ref;\n let {\n data: {\n value: b\n }\n } = _ref2;\n return a - b;\n}\n/**\r\n * Sort collisions from greatest to smallest value\r\n */\n\nfunction sortCollisionsDesc(_ref3, _ref4) {\n let {\n data: {\n value: a\n }\n } = _ref3;\n let {\n data: {\n value: b\n }\n } = _ref4;\n return b - a;\n}\n/**\r\n * Returns the coordinates of the corners of a given rectangle:\r\n * [TopLeft {x, y}, TopRight {x, y}, BottomLeft {x, y}, BottomRight {x, y}]\r\n */\n\nfunction cornersOfRectangle(_ref5) {\n let {\n left,\n top,\n height,\n width\n } = _ref5;\n return [{\n x: left,\n y: top\n }, {\n x: left + width,\n y: top\n }, {\n x: left,\n y: top + height\n }, {\n x: left + width,\n y: top + height\n }];\n}\nfunction getFirstCollision(collisions, property) {\n if (!collisions || collisions.length === 0) {\n return null;\n }\n\n const [firstCollision] = collisions;\n return property ? firstCollision[property] : firstCollision;\n}\n\n/**\r\n * Returns the coordinates of the center of a given ClientRect\r\n */\n\nfunction centerOfRectangle(rect, left, top) {\n if (left === void 0) {\n left = rect.left;\n }\n\n if (top === void 0) {\n top = rect.top;\n }\n\n return {\n x: left + rect.width * 0.5,\n y: top + rect.height * 0.5\n };\n}\n/**\r\n * Returns the closest rectangles from an array of rectangles to the center of a given\r\n * rectangle.\r\n */\n\n\nconst closestCenter = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const centerRect = centerOfRectangle(collisionRect, collisionRect.left, collisionRect.top);\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const distBetween = distanceBetween(centerOfRectangle(rect), centerRect);\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: distBetween\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\n/**\r\n * Returns the closest rectangles from an array of rectangles to the corners of\r\n * another rectangle.\r\n */\n\nconst closestCorners = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const corners = cornersOfRectangle(collisionRect);\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const rectCorners = cornersOfRectangle(rect);\n const distances = corners.reduce((accumulator, corner, index) => {\n return accumulator + distanceBetween(rectCorners[index], corner);\n }, 0);\n const effectiveDistance = Number((distances / 4).toFixed(4));\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: effectiveDistance\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\n/**\r\n * Returns the intersecting rectangle area between two rectangles\r\n */\n\nfunction getIntersectionRatio(entry, target) {\n const top = Math.max(target.top, entry.top);\n const left = Math.max(target.left, entry.left);\n const right = Math.min(target.left + target.width, entry.left + entry.width);\n const bottom = Math.min(target.top + target.height, entry.top + entry.height);\n const width = right - left;\n const height = bottom - top;\n\n if (left < right && top < bottom) {\n const targetArea = target.width * target.height;\n const entryArea = entry.width * entry.height;\n const intersectionArea = width * height;\n const intersectionRatio = intersectionArea / (targetArea + entryArea - intersectionArea);\n return Number(intersectionRatio.toFixed(4));\n } // Rectangles do not overlap, or overlap has an area of zero (edge/corner overlap)\n\n\n return 0;\n}\n/**\r\n * Returns the rectangles that has the greatest intersection area with a given\r\n * rectangle in an array of rectangles.\r\n */\n\nconst rectIntersection = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const intersectionRatio = getIntersectionRatio(rect, collisionRect);\n\n if (intersectionRatio > 0) {\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: intersectionRatio\n }\n });\n }\n }\n }\n\n return collisions.sort(sortCollisionsDesc);\n};\n\n/**\r\n * Check if a given point is contained within a bounding rectangle\r\n */\n\nfunction isPointWithinRect(point, rect) {\n const {\n top,\n left,\n bottom,\n right\n } = rect;\n return top <= point.y && point.y <= bottom && left <= point.x && point.x <= right;\n}\n/**\r\n * Returns the rectangles that the pointer is hovering over\r\n */\n\n\nconst pointerWithin = _ref => {\n let {\n droppableContainers,\n droppableRects,\n pointerCoordinates\n } = _ref;\n\n if (!pointerCoordinates) {\n return [];\n }\n\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect && isPointWithinRect(pointerCoordinates, rect)) {\n /* There may be more than a single rectangle intersecting\r\n * with the pointer coordinates. In order to sort the\r\n * colliding rectangles, we measure the distance between\r\n * the pointer and the corners of the intersecting rectangle\r\n */\n const corners = cornersOfRectangle(rect);\n const distances = corners.reduce((accumulator, corner) => {\n return accumulator + distanceBetween(pointerCoordinates, corner);\n }, 0);\n const effectiveDistance = Number((distances / 4).toFixed(4));\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: effectiveDistance\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\nfunction adjustScale(transform, rect1, rect2) {\n return { ...transform,\n scaleX: rect1 && rect2 ? rect1.width / rect2.width : 1,\n scaleY: rect1 && rect2 ? rect1.height / rect2.height : 1\n };\n}\n\nfunction getRectDelta(rect1, rect2) {\n return rect1 && rect2 ? {\n x: rect1.left - rect2.left,\n y: rect1.top - rect2.top\n } : defaultCoordinates;\n}\n\nfunction createRectAdjustmentFn(modifier) {\n return function adjustClientRect(rect) {\n for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n adjustments[_key - 1] = arguments[_key];\n }\n\n return adjustments.reduce((acc, adjustment) => ({ ...acc,\n top: acc.top + modifier * adjustment.y,\n bottom: acc.bottom + modifier * adjustment.y,\n left: acc.left + modifier * adjustment.x,\n right: acc.right + modifier * adjustment.x\n }), { ...rect\n });\n };\n}\nconst getAdjustedRect = /*#__PURE__*/createRectAdjustmentFn(1);\n\nfunction parseTransform(transform) {\n if (transform.startsWith('matrix3d(')) {\n const transformArray = transform.slice(9, -1).split(/, /);\n return {\n x: +transformArray[12],\n y: +transformArray[13],\n scaleX: +transformArray[0],\n scaleY: +transformArray[5]\n };\n } else if (transform.startsWith('matrix(')) {\n const transformArray = transform.slice(7, -1).split(/, /);\n return {\n x: +transformArray[4],\n y: +transformArray[5],\n scaleX: +transformArray[0],\n scaleY: +transformArray[3]\n };\n }\n\n return null;\n}\n\nfunction inverseTransform(rect, transform, transformOrigin) {\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return rect;\n }\n\n const {\n scaleX,\n scaleY,\n x: translateX,\n y: translateY\n } = parsedTransform;\n const x = rect.left - translateX - (1 - scaleX) * parseFloat(transformOrigin);\n const y = rect.top - translateY - (1 - scaleY) * parseFloat(transformOrigin.slice(transformOrigin.indexOf(' ') + 1));\n const w = scaleX ? rect.width / scaleX : rect.width;\n const h = scaleY ? rect.height / scaleY : rect.height;\n return {\n width: w,\n height: h,\n top: y,\n right: x + w,\n bottom: y + h,\n left: x\n };\n}\n\nconst defaultOptions = {\n ignoreTransform: false\n};\n/**\r\n * Returns the bounding client rect of an element relative to the viewport.\r\n */\n\nfunction getClientRect(element, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n let rect = element.getBoundingClientRect();\n\n if (options.ignoreTransform) {\n const {\n transform,\n transformOrigin\n } = getWindow(element).getComputedStyle(element);\n\n if (transform) {\n rect = inverseTransform(rect, transform, transformOrigin);\n }\n }\n\n const {\n top,\n left,\n width,\n height,\n bottom,\n right\n } = rect;\n return {\n top,\n left,\n width,\n height,\n bottom,\n right\n };\n}\n/**\r\n * Returns the bounding client rect of an element relative to the viewport.\r\n *\r\n * @remarks\r\n * The ClientRect returned by this method does not take into account transforms\r\n * applied to the element it measures.\r\n *\r\n */\n\nfunction getTransformAgnosticClientRect(element) {\n return getClientRect(element, {\n ignoreTransform: true\n });\n}\n\nfunction getWindowClientRect(element) {\n const width = element.innerWidth;\n const height = element.innerHeight;\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height\n };\n}\n\nfunction isFixed(node, computedStyle) {\n if (computedStyle === void 0) {\n computedStyle = getWindow(node).getComputedStyle(node);\n }\n\n return computedStyle.position === 'fixed';\n}\n\nfunction isScrollable(element, computedStyle) {\n if (computedStyle === void 0) {\n computedStyle = getWindow(element).getComputedStyle(element);\n }\n\n const overflowRegex = /(auto|scroll|overlay)/;\n const properties = ['overflow', 'overflowX', 'overflowY'];\n return properties.some(property => {\n const value = computedStyle[property];\n return typeof value === 'string' ? overflowRegex.test(value) : false;\n });\n}\n\nfunction getScrollableAncestors(element, limit) {\n const scrollParents = [];\n\n function findScrollableAncestors(node) {\n if (limit != null && scrollParents.length >= limit) {\n return scrollParents;\n }\n\n if (!node) {\n return scrollParents;\n }\n\n if (isDocument(node) && node.scrollingElement != null && !scrollParents.includes(node.scrollingElement)) {\n scrollParents.push(node.scrollingElement);\n return scrollParents;\n }\n\n if (!isHTMLElement(node) || isSVGElement(node)) {\n return scrollParents;\n }\n\n if (scrollParents.includes(node)) {\n return scrollParents;\n }\n\n const computedStyle = getWindow(element).getComputedStyle(node);\n\n if (node !== element) {\n if (isScrollable(node, computedStyle)) {\n scrollParents.push(node);\n }\n }\n\n if (isFixed(node, computedStyle)) {\n return scrollParents;\n }\n\n return findScrollableAncestors(node.parentNode);\n }\n\n if (!element) {\n return scrollParents;\n }\n\n return findScrollableAncestors(element);\n}\nfunction getFirstScrollableAncestor(node) {\n const [firstScrollableAncestor] = getScrollableAncestors(node, 1);\n return firstScrollableAncestor != null ? firstScrollableAncestor : null;\n}\n\nfunction getScrollableElement(element) {\n if (!canUseDOM || !element) {\n return null;\n }\n\n if (isWindow(element)) {\n return element;\n }\n\n if (!isNode(element)) {\n return null;\n }\n\n if (isDocument(element) || element === getOwnerDocument(element).scrollingElement) {\n return window;\n }\n\n if (isHTMLElement(element)) {\n return element;\n }\n\n return null;\n}\n\nfunction getScrollXCoordinate(element) {\n if (isWindow(element)) {\n return element.scrollX;\n }\n\n return element.scrollLeft;\n}\nfunction getScrollYCoordinate(element) {\n if (isWindow(element)) {\n return element.scrollY;\n }\n\n return element.scrollTop;\n}\nfunction getScrollCoordinates(element) {\n return {\n x: getScrollXCoordinate(element),\n y: getScrollYCoordinate(element)\n };\n}\n\nvar Direction;\n\n(function (Direction) {\n Direction[Direction[\"Forward\"] = 1] = \"Forward\";\n Direction[Direction[\"Backward\"] = -1] = \"Backward\";\n})(Direction || (Direction = {}));\n\nfunction isDocumentScrollingElement(element) {\n if (!canUseDOM || !element) {\n return false;\n }\n\n return element === document.scrollingElement;\n}\n\nfunction getScrollPosition(scrollingContainer) {\n const minScroll = {\n x: 0,\n y: 0\n };\n const dimensions = isDocumentScrollingElement(scrollingContainer) ? {\n height: window.innerHeight,\n width: window.innerWidth\n } : {\n height: scrollingContainer.clientHeight,\n width: scrollingContainer.clientWidth\n };\n const maxScroll = {\n x: scrollingContainer.scrollWidth - dimensions.width,\n y: scrollingContainer.scrollHeight - dimensions.height\n };\n const isTop = scrollingContainer.scrollTop <= minScroll.y;\n const isLeft = scrollingContainer.scrollLeft <= minScroll.x;\n const isBottom = scrollingContainer.scrollTop >= maxScroll.y;\n const isRight = scrollingContainer.scrollLeft >= maxScroll.x;\n return {\n isTop,\n isLeft,\n isBottom,\n isRight,\n maxScroll,\n minScroll\n };\n}\n\nconst defaultThreshold = {\n x: 0.2,\n y: 0.2\n};\nfunction getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, _ref, acceleration, thresholdPercentage) {\n let {\n top,\n left,\n right,\n bottom\n } = _ref;\n\n if (acceleration === void 0) {\n acceleration = 10;\n }\n\n if (thresholdPercentage === void 0) {\n thresholdPercentage = defaultThreshold;\n }\n\n const {\n isTop,\n isBottom,\n isLeft,\n isRight\n } = getScrollPosition(scrollContainer);\n const direction = {\n x: 0,\n y: 0\n };\n const speed = {\n x: 0,\n y: 0\n };\n const threshold = {\n height: scrollContainerRect.height * thresholdPercentage.y,\n width: scrollContainerRect.width * thresholdPercentage.x\n };\n\n if (!isTop && top <= scrollContainerRect.top + threshold.height) {\n // Scroll Up\n direction.y = Direction.Backward;\n speed.y = acceleration * Math.abs((scrollContainerRect.top + threshold.height - top) / threshold.height);\n } else if (!isBottom && bottom >= scrollContainerRect.bottom - threshold.height) {\n // Scroll Down\n direction.y = Direction.Forward;\n speed.y = acceleration * Math.abs((scrollContainerRect.bottom - threshold.height - bottom) / threshold.height);\n }\n\n if (!isRight && right >= scrollContainerRect.right - threshold.width) {\n // Scroll Right\n direction.x = Direction.Forward;\n speed.x = acceleration * Math.abs((scrollContainerRect.right - threshold.width - right) / threshold.width);\n } else if (!isLeft && left <= scrollContainerRect.left + threshold.width) {\n // Scroll Left\n direction.x = Direction.Backward;\n speed.x = acceleration * Math.abs((scrollContainerRect.left + threshold.width - left) / threshold.width);\n }\n\n return {\n direction,\n speed\n };\n}\n\nfunction getScrollElementRect(element) {\n if (element === document.scrollingElement) {\n const {\n innerWidth,\n innerHeight\n } = window;\n return {\n top: 0,\n left: 0,\n right: innerWidth,\n bottom: innerHeight,\n width: innerWidth,\n height: innerHeight\n };\n }\n\n const {\n top,\n left,\n right,\n bottom\n } = element.getBoundingClientRect();\n return {\n top,\n left,\n right,\n bottom,\n width: element.clientWidth,\n height: element.clientHeight\n };\n}\n\nfunction getScrollOffsets(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return add(acc, getScrollCoordinates(node));\n }, defaultCoordinates);\n}\nfunction getScrollXOffset(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return acc + getScrollXCoordinate(node);\n }, 0);\n}\nfunction getScrollYOffset(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return acc + getScrollYCoordinate(node);\n }, 0);\n}\n\nfunction scrollIntoViewIfNeeded(element, measure) {\n if (measure === void 0) {\n measure = getClientRect;\n }\n\n if (!element) {\n return;\n }\n\n const {\n top,\n left,\n bottom,\n right\n } = measure(element);\n const firstScrollableAncestor = getFirstScrollableAncestor(element);\n\n if (!firstScrollableAncestor) {\n return;\n }\n\n if (bottom <= 0 || right <= 0 || top >= window.innerHeight || left >= window.innerWidth) {\n element.scrollIntoView({\n block: 'center',\n inline: 'center'\n });\n }\n}\n\nconst properties = [['x', ['left', 'right'], getScrollXOffset], ['y', ['top', 'bottom'], getScrollYOffset]];\nclass Rect {\n constructor(rect, element) {\n this.rect = void 0;\n this.width = void 0;\n this.height = void 0;\n this.top = void 0;\n this.bottom = void 0;\n this.right = void 0;\n this.left = void 0;\n const scrollableAncestors = getScrollableAncestors(element);\n const scrollOffsets = getScrollOffsets(scrollableAncestors);\n this.rect = { ...rect\n };\n this.width = rect.width;\n this.height = rect.height;\n\n for (const [axis, keys, getScrollOffset] of properties) {\n for (const key of keys) {\n Object.defineProperty(this, key, {\n get: () => {\n const currentOffsets = getScrollOffset(scrollableAncestors);\n const scrollOffsetsDeltla = scrollOffsets[axis] - currentOffsets;\n return this.rect[key] + scrollOffsetsDeltla;\n },\n enumerable: true\n });\n }\n }\n\n Object.defineProperty(this, 'rect', {\n enumerable: false\n });\n }\n\n}\n\nclass Listeners {\n constructor(target) {\n this.target = void 0;\n this.listeners = [];\n\n this.removeAll = () => {\n this.listeners.forEach(listener => {\n var _this$target;\n\n return (_this$target = this.target) == null ? void 0 : _this$target.removeEventListener(...listener);\n });\n };\n\n this.target = target;\n }\n\n add(eventName, handler, options) {\n var _this$target2;\n\n (_this$target2 = this.target) == null ? void 0 : _this$target2.addEventListener(eventName, handler, options);\n this.listeners.push([eventName, handler, options]);\n }\n\n}\n\nfunction getEventListenerTarget(target) {\n // If the `event.target` element is removed from the document events will still be targeted\n // at it, and hence won't always bubble up to the window or document anymore.\n // If there is any risk of an element being removed while it is being dragged,\n // the best practice is to attach the event listeners directly to the target.\n // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget\n const {\n EventTarget\n } = getWindow(target);\n return target instanceof EventTarget ? target : getOwnerDocument(target);\n}\n\nfunction hasExceededDistance(delta, measurement) {\n const dx = Math.abs(delta.x);\n const dy = Math.abs(delta.y);\n\n if (typeof measurement === 'number') {\n return Math.sqrt(dx ** 2 + dy ** 2) > measurement;\n }\n\n if ('x' in measurement && 'y' in measurement) {\n return dx > measurement.x && dy > measurement.y;\n }\n\n if ('x' in measurement) {\n return dx > measurement.x;\n }\n\n if ('y' in measurement) {\n return dy > measurement.y;\n }\n\n return false;\n}\n\nvar EventName;\n\n(function (EventName) {\n EventName[\"Click\"] = \"click\";\n EventName[\"DragStart\"] = \"dragstart\";\n EventName[\"Keydown\"] = \"keydown\";\n EventName[\"ContextMenu\"] = \"contextmenu\";\n EventName[\"Resize\"] = \"resize\";\n EventName[\"SelectionChange\"] = \"selectionchange\";\n EventName[\"VisibilityChange\"] = \"visibilitychange\";\n})(EventName || (EventName = {}));\n\nfunction preventDefault(event) {\n event.preventDefault();\n}\nfunction stopPropagation(event) {\n event.stopPropagation();\n}\n\nvar KeyboardCode;\n\n(function (KeyboardCode) {\n KeyboardCode[\"Space\"] = \"Space\";\n KeyboardCode[\"Down\"] = \"ArrowDown\";\n KeyboardCode[\"Right\"] = \"ArrowRight\";\n KeyboardCode[\"Left\"] = \"ArrowLeft\";\n KeyboardCode[\"Up\"] = \"ArrowUp\";\n KeyboardCode[\"Esc\"] = \"Escape\";\n KeyboardCode[\"Enter\"] = \"Enter\";\n KeyboardCode[\"Tab\"] = \"Tab\";\n})(KeyboardCode || (KeyboardCode = {}));\n\nconst defaultKeyboardCodes = {\n start: [KeyboardCode.Space, KeyboardCode.Enter],\n cancel: [KeyboardCode.Esc],\n end: [KeyboardCode.Space, KeyboardCode.Enter, KeyboardCode.Tab]\n};\nconst defaultKeyboardCoordinateGetter = (event, _ref) => {\n let {\n currentCoordinates\n } = _ref;\n\n switch (event.code) {\n case KeyboardCode.Right:\n return { ...currentCoordinates,\n x: currentCoordinates.x + 25\n };\n\n case KeyboardCode.Left:\n return { ...currentCoordinates,\n x: currentCoordinates.x - 25\n };\n\n case KeyboardCode.Down:\n return { ...currentCoordinates,\n y: currentCoordinates.y + 25\n };\n\n case KeyboardCode.Up:\n return { ...currentCoordinates,\n y: currentCoordinates.y - 25\n };\n }\n\n return undefined;\n};\n\nclass KeyboardSensor {\n constructor(props) {\n this.props = void 0;\n this.autoScrollEnabled = false;\n this.referenceCoordinates = void 0;\n this.listeners = void 0;\n this.windowListeners = void 0;\n this.props = props;\n const {\n event: {\n target\n }\n } = props;\n this.props = props;\n this.listeners = new Listeners(getOwnerDocument(target));\n this.windowListeners = new Listeners(getWindow(target));\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.attach();\n }\n\n attach() {\n this.handleStart();\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n setTimeout(() => this.listeners.add(EventName.Keydown, this.handleKeyDown));\n }\n\n handleStart() {\n const {\n activeNode,\n onStart\n } = this.props;\n const node = activeNode.node.current;\n\n if (node) {\n scrollIntoViewIfNeeded(node);\n }\n\n onStart(defaultCoordinates);\n }\n\n handleKeyDown(event) {\n if (isKeyboardEvent(event)) {\n const {\n active,\n context,\n options\n } = this.props;\n const {\n keyboardCodes = defaultKeyboardCodes,\n coordinateGetter = defaultKeyboardCoordinateGetter,\n scrollBehavior = 'smooth'\n } = options;\n const {\n code\n } = event;\n\n if (keyboardCodes.end.includes(code)) {\n this.handleEnd(event);\n return;\n }\n\n if (keyboardCodes.cancel.includes(code)) {\n this.handleCancel(event);\n return;\n }\n\n const {\n collisionRect\n } = context.current;\n const currentCoordinates = collisionRect ? {\n x: collisionRect.left,\n y: collisionRect.top\n } : defaultCoordinates;\n\n if (!this.referenceCoordinates) {\n this.referenceCoordinates = currentCoordinates;\n }\n\n const newCoordinates = coordinateGetter(event, {\n active,\n context: context.current,\n currentCoordinates\n });\n\n if (newCoordinates) {\n const coordinatesDelta = subtract(newCoordinates, currentCoordinates);\n const scrollDelta = {\n x: 0,\n y: 0\n };\n const {\n scrollableAncestors\n } = context.current;\n\n for (const scrollContainer of scrollableAncestors) {\n const direction = event.code;\n const {\n isTop,\n isRight,\n isLeft,\n isBottom,\n maxScroll,\n minScroll\n } = getScrollPosition(scrollContainer);\n const scrollElementRect = getScrollElementRect(scrollContainer);\n const clampedCoordinates = {\n x: Math.min(direction === KeyboardCode.Right ? scrollElementRect.right - scrollElementRect.width / 2 : scrollElementRect.right, Math.max(direction === KeyboardCode.Right ? scrollElementRect.left : scrollElementRect.left + scrollElementRect.width / 2, newCoordinates.x)),\n y: Math.min(direction === KeyboardCode.Down ? scrollElementRect.bottom - scrollElementRect.height / 2 : scrollElementRect.bottom, Math.max(direction === KeyboardCode.Down ? scrollElementRect.top : scrollElementRect.top + scrollElementRect.height / 2, newCoordinates.y))\n };\n const canScrollX = direction === KeyboardCode.Right && !isRight || direction === KeyboardCode.Left && !isLeft;\n const canScrollY = direction === KeyboardCode.Down && !isBottom || direction === KeyboardCode.Up && !isTop;\n\n if (canScrollX && clampedCoordinates.x !== newCoordinates.x) {\n const newScrollCoordinates = scrollContainer.scrollLeft + coordinatesDelta.x;\n const canScrollToNewCoordinates = direction === KeyboardCode.Right && newScrollCoordinates <= maxScroll.x || direction === KeyboardCode.Left && newScrollCoordinates >= minScroll.x;\n\n if (canScrollToNewCoordinates && !coordinatesDelta.y) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n left: newScrollCoordinates,\n behavior: scrollBehavior\n });\n return;\n }\n\n if (canScrollToNewCoordinates) {\n scrollDelta.x = scrollContainer.scrollLeft - newScrollCoordinates;\n } else {\n scrollDelta.x = direction === KeyboardCode.Right ? scrollContainer.scrollLeft - maxScroll.x : scrollContainer.scrollLeft - minScroll.x;\n }\n\n if (scrollDelta.x) {\n scrollContainer.scrollBy({\n left: -scrollDelta.x,\n behavior: scrollBehavior\n });\n }\n\n break;\n } else if (canScrollY && clampedCoordinates.y !== newCoordinates.y) {\n const newScrollCoordinates = scrollContainer.scrollTop + coordinatesDelta.y;\n const canScrollToNewCoordinates = direction === KeyboardCode.Down && newScrollCoordinates <= maxScroll.y || direction === KeyboardCode.Up && newScrollCoordinates >= minScroll.y;\n\n if (canScrollToNewCoordinates && !coordinatesDelta.x) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n top: newScrollCoordinates,\n behavior: scrollBehavior\n });\n return;\n }\n\n if (canScrollToNewCoordinates) {\n scrollDelta.y = scrollContainer.scrollTop - newScrollCoordinates;\n } else {\n scrollDelta.y = direction === KeyboardCode.Down ? scrollContainer.scrollTop - maxScroll.y : scrollContainer.scrollTop - minScroll.y;\n }\n\n if (scrollDelta.y) {\n scrollContainer.scrollBy({\n top: -scrollDelta.y,\n behavior: scrollBehavior\n });\n }\n\n break;\n }\n }\n\n this.handleMove(event, add(subtract(newCoordinates, this.referenceCoordinates), scrollDelta));\n }\n }\n }\n\n handleMove(event, coordinates) {\n const {\n onMove\n } = this.props;\n event.preventDefault();\n onMove(coordinates);\n }\n\n handleEnd(event) {\n const {\n onEnd\n } = this.props;\n event.preventDefault();\n this.detach();\n onEnd();\n }\n\n handleCancel(event) {\n const {\n onCancel\n } = this.props;\n event.preventDefault();\n this.detach();\n onCancel();\n }\n\n detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll();\n }\n\n}\nKeyboardSensor.activators = [{\n eventName: 'onKeyDown',\n handler: (event, _ref, _ref2) => {\n let {\n keyboardCodes = defaultKeyboardCodes,\n onActivation\n } = _ref;\n let {\n active\n } = _ref2;\n const {\n code\n } = event.nativeEvent;\n\n if (keyboardCodes.start.includes(code)) {\n const activator = active.activatorNode.current;\n\n if (activator && event.target !== activator) {\n return false;\n }\n\n event.preventDefault();\n onActivation == null ? void 0 : onActivation({\n event: event.nativeEvent\n });\n return true;\n }\n\n return false;\n }\n}];\n\nfunction isDistanceConstraint(constraint) {\n return Boolean(constraint && 'distance' in constraint);\n}\n\nfunction isDelayConstraint(constraint) {\n return Boolean(constraint && 'delay' in constraint);\n}\n\nclass AbstractPointerSensor {\n constructor(props, events, listenerTarget) {\n var _getEventCoordinates;\n\n if (listenerTarget === void 0) {\n listenerTarget = getEventListenerTarget(props.event.target);\n }\n\n this.props = void 0;\n this.events = void 0;\n this.autoScrollEnabled = true;\n this.document = void 0;\n this.activated = false;\n this.initialCoordinates = void 0;\n this.timeoutId = null;\n this.listeners = void 0;\n this.documentListeners = void 0;\n this.windowListeners = void 0;\n this.props = props;\n this.events = events;\n const {\n event\n } = props;\n const {\n target\n } = event;\n this.props = props;\n this.events = events;\n this.document = getOwnerDocument(target);\n this.documentListeners = new Listeners(this.document);\n this.listeners = new Listeners(listenerTarget);\n this.windowListeners = new Listeners(getWindow(target));\n this.initialCoordinates = (_getEventCoordinates = getEventCoordinates(event)) != null ? _getEventCoordinates : defaultCoordinates;\n this.handleStart = this.handleStart.bind(this);\n this.handleMove = this.handleMove.bind(this);\n this.handleEnd = this.handleEnd.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.handleKeydown = this.handleKeydown.bind(this);\n this.removeTextSelection = this.removeTextSelection.bind(this);\n this.attach();\n }\n\n attach() {\n const {\n events,\n props: {\n options: {\n activationConstraint,\n bypassActivationConstraint\n }\n }\n } = this;\n this.listeners.add(events.move.name, this.handleMove, {\n passive: false\n });\n this.listeners.add(events.end.name, this.handleEnd);\n\n if (events.cancel) {\n this.listeners.add(events.cancel.name, this.handleCancel);\n }\n\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.DragStart, preventDefault);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n this.windowListeners.add(EventName.ContextMenu, preventDefault);\n this.documentListeners.add(EventName.Keydown, this.handleKeydown);\n\n if (activationConstraint) {\n if (bypassActivationConstraint != null && bypassActivationConstraint({\n event: this.props.event,\n activeNode: this.props.activeNode,\n options: this.props.options\n })) {\n return this.handleStart();\n }\n\n if (isDelayConstraint(activationConstraint)) {\n this.timeoutId = setTimeout(this.handleStart, activationConstraint.delay);\n this.handlePending(activationConstraint);\n return;\n }\n\n if (isDistanceConstraint(activationConstraint)) {\n this.handlePending(activationConstraint);\n return;\n }\n }\n\n this.handleStart();\n }\n\n detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll(); // Wait until the next event loop before removing document listeners\n // This is necessary because we listen for `click` and `selection` events on the document\n\n setTimeout(this.documentListeners.removeAll, 50);\n\n if (this.timeoutId !== null) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n }\n\n handlePending(constraint, offset) {\n const {\n active,\n onPending\n } = this.props;\n onPending(active, constraint, this.initialCoordinates, offset);\n }\n\n handleStart() {\n const {\n initialCoordinates\n } = this;\n const {\n onStart\n } = this.props;\n\n if (initialCoordinates) {\n this.activated = true; // Stop propagation of click events once activation constraints are met\n\n this.documentListeners.add(EventName.Click, stopPropagation, {\n capture: true\n }); // Remove any text selection from the document\n\n this.removeTextSelection(); // Prevent further text selection while dragging\n\n this.documentListeners.add(EventName.SelectionChange, this.removeTextSelection);\n onStart(initialCoordinates);\n }\n }\n\n handleMove(event) {\n var _getEventCoordinates2;\n\n const {\n activated,\n initialCoordinates,\n props\n } = this;\n const {\n onMove,\n options: {\n activationConstraint\n }\n } = props;\n\n if (!initialCoordinates) {\n return;\n }\n\n const coordinates = (_getEventCoordinates2 = getEventCoordinates(event)) != null ? _getEventCoordinates2 : defaultCoordinates;\n const delta = subtract(initialCoordinates, coordinates); // Constraint validation\n\n if (!activated && activationConstraint) {\n if (isDistanceConstraint(activationConstraint)) {\n if (activationConstraint.tolerance != null && hasExceededDistance(delta, activationConstraint.tolerance)) {\n return this.handleCancel();\n }\n\n if (hasExceededDistance(delta, activationConstraint.distance)) {\n return this.handleStart();\n }\n }\n\n if (isDelayConstraint(activationConstraint)) {\n if (hasExceededDistance(delta, activationConstraint.tolerance)) {\n return this.handleCancel();\n }\n }\n\n this.handlePending(activationConstraint, delta);\n return;\n }\n\n if (event.cancelable) {\n event.preventDefault();\n }\n\n onMove(coordinates);\n }\n\n handleEnd() {\n const {\n onAbort,\n onEnd\n } = this.props;\n this.detach();\n\n if (!this.activated) {\n onAbort(this.props.active);\n }\n\n onEnd();\n }\n\n handleCancel() {\n const {\n onAbort,\n onCancel\n } = this.props;\n this.detach();\n\n if (!this.activated) {\n onAbort(this.props.active);\n }\n\n onCancel();\n }\n\n handleKeydown(event) {\n if (event.code === KeyboardCode.Esc) {\n this.handleCancel();\n }\n }\n\n removeTextSelection() {\n var _this$document$getSel;\n\n (_this$document$getSel = this.document.getSelection()) == null ? void 0 : _this$document$getSel.removeAllRanges();\n }\n\n}\n\nconst events = {\n cancel: {\n name: 'pointercancel'\n },\n move: {\n name: 'pointermove'\n },\n end: {\n name: 'pointerup'\n }\n};\nclass PointerSensor extends AbstractPointerSensor {\n constructor(props) {\n const {\n event\n } = props; // Pointer events stop firing if the target is unmounted while dragging\n // Therefore we attach listeners to the owner document instead\n\n const listenerTarget = getOwnerDocument(event.target);\n super(props, events, listenerTarget);\n }\n\n}\nPointerSensor.activators = [{\n eventName: 'onPointerDown',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n\n if (!event.isPrimary || event.button !== 0) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nconst events$1 = {\n move: {\n name: 'mousemove'\n },\n end: {\n name: 'mouseup'\n }\n};\nvar MouseButton;\n\n(function (MouseButton) {\n MouseButton[MouseButton[\"RightClick\"] = 2] = \"RightClick\";\n})(MouseButton || (MouseButton = {}));\n\nclass MouseSensor extends AbstractPointerSensor {\n constructor(props) {\n super(props, events$1, getOwnerDocument(props.event.target));\n }\n\n}\nMouseSensor.activators = [{\n eventName: 'onMouseDown',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n\n if (event.button === MouseButton.RightClick) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nconst events$2 = {\n cancel: {\n name: 'touchcancel'\n },\n move: {\n name: 'touchmove'\n },\n end: {\n name: 'touchend'\n }\n};\nclass TouchSensor extends AbstractPointerSensor {\n constructor(props) {\n super(props, events$2);\n }\n\n static setup() {\n // Adding a non-capture and non-passive `touchmove` listener in order\n // to force `event.preventDefault()` calls to work in dynamically added\n // touchmove event handlers. This is required for iOS Safari.\n window.addEventListener(events$2.move.name, noop, {\n capture: false,\n passive: false\n });\n return function teardown() {\n window.removeEventListener(events$2.move.name, noop);\n }; // We create a new handler because the teardown function of another sensor\n // could remove our event listener if we use a referentially equal listener.\n\n function noop() {}\n }\n\n}\nTouchSensor.activators = [{\n eventName: 'onTouchStart',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n const {\n touches\n } = event;\n\n if (touches.length > 1) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nvar AutoScrollActivator;\n\n(function (AutoScrollActivator) {\n AutoScrollActivator[AutoScrollActivator[\"Pointer\"] = 0] = \"Pointer\";\n AutoScrollActivator[AutoScrollActivator[\"DraggableRect\"] = 1] = \"DraggableRect\";\n})(AutoScrollActivator || (AutoScrollActivator = {}));\n\nvar TraversalOrder;\n\n(function (TraversalOrder) {\n TraversalOrder[TraversalOrder[\"TreeOrder\"] = 0] = \"TreeOrder\";\n TraversalOrder[TraversalOrder[\"ReversedTreeOrder\"] = 1] = \"ReversedTreeOrder\";\n})(TraversalOrder || (TraversalOrder = {}));\n\nfunction useAutoScroller(_ref) {\n let {\n acceleration,\n activator = AutoScrollActivator.Pointer,\n canScroll,\n draggingRect,\n enabled,\n interval = 5,\n order = TraversalOrder.TreeOrder,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects,\n delta,\n threshold\n } = _ref;\n const scrollIntent = useScrollIntent({\n delta,\n disabled: !enabled\n });\n const [setAutoScrollInterval, clearAutoScrollInterval] = useInterval();\n const scrollSpeed = useRef({\n x: 0,\n y: 0\n });\n const scrollDirection = useRef({\n x: 0,\n y: 0\n });\n const rect = useMemo(() => {\n switch (activator) {\n case AutoScrollActivator.Pointer:\n return pointerCoordinates ? {\n top: pointerCoordinates.y,\n bottom: pointerCoordinates.y,\n left: pointerCoordinates.x,\n right: pointerCoordinates.x\n } : null;\n\n case AutoScrollActivator.DraggableRect:\n return draggingRect;\n }\n }, [activator, draggingRect, pointerCoordinates]);\n const scrollContainerRef = useRef(null);\n const autoScroll = useCallback(() => {\n const scrollContainer = scrollContainerRef.current;\n\n if (!scrollContainer) {\n return;\n }\n\n const scrollLeft = scrollSpeed.current.x * scrollDirection.current.x;\n const scrollTop = scrollSpeed.current.y * scrollDirection.current.y;\n scrollContainer.scrollBy(scrollLeft, scrollTop);\n }, []);\n const sortedScrollableAncestors = useMemo(() => order === TraversalOrder.TreeOrder ? [...scrollableAncestors].reverse() : scrollableAncestors, [order, scrollableAncestors]);\n useEffect(() => {\n if (!enabled || !scrollableAncestors.length || !rect) {\n clearAutoScrollInterval();\n return;\n }\n\n for (const scrollContainer of sortedScrollableAncestors) {\n if ((canScroll == null ? void 0 : canScroll(scrollContainer)) === false) {\n continue;\n }\n\n const index = scrollableAncestors.indexOf(scrollContainer);\n const scrollContainerRect = scrollableAncestorRects[index];\n\n if (!scrollContainerRect) {\n continue;\n }\n\n const {\n direction,\n speed\n } = getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, rect, acceleration, threshold);\n\n for (const axis of ['x', 'y']) {\n if (!scrollIntent[axis][direction[axis]]) {\n speed[axis] = 0;\n direction[axis] = 0;\n }\n }\n\n if (speed.x > 0 || speed.y > 0) {\n clearAutoScrollInterval();\n scrollContainerRef.current = scrollContainer;\n setAutoScrollInterval(autoScroll, interval);\n scrollSpeed.current = speed;\n scrollDirection.current = direction;\n return;\n }\n }\n\n scrollSpeed.current = {\n x: 0,\n y: 0\n };\n scrollDirection.current = {\n x: 0,\n y: 0\n };\n clearAutoScrollInterval();\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [acceleration, autoScroll, canScroll, clearAutoScrollInterval, enabled, interval, // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(rect), // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(scrollIntent), setAutoScrollInterval, scrollableAncestors, sortedScrollableAncestors, scrollableAncestorRects, // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(threshold)]);\n}\nconst defaultScrollIntent = {\n x: {\n [Direction.Backward]: false,\n [Direction.Forward]: false\n },\n y: {\n [Direction.Backward]: false,\n [Direction.Forward]: false\n }\n};\n\nfunction useScrollIntent(_ref2) {\n let {\n delta,\n disabled\n } = _ref2;\n const previousDelta = usePrevious(delta);\n return useLazyMemo(previousIntent => {\n if (disabled || !previousDelta || !previousIntent) {\n // Reset scroll intent tracking when auto-scrolling is disabled\n return defaultScrollIntent;\n }\n\n const direction = {\n x: Math.sign(delta.x - previousDelta.x),\n y: Math.sign(delta.y - previousDelta.y)\n }; // Keep track of the user intent to scroll in each direction for both axis\n\n return {\n x: {\n [Direction.Backward]: previousIntent.x[Direction.Backward] || direction.x === -1,\n [Direction.Forward]: previousIntent.x[Direction.Forward] || direction.x === 1\n },\n y: {\n [Direction.Backward]: previousIntent.y[Direction.Backward] || direction.y === -1,\n [Direction.Forward]: previousIntent.y[Direction.Forward] || direction.y === 1\n }\n };\n }, [disabled, delta, previousDelta]);\n}\n\nfunction useCachedNode(draggableNodes, id) {\n const draggableNode = id != null ? draggableNodes.get(id) : undefined;\n const node = draggableNode ? draggableNode.node.current : null;\n return useLazyMemo(cachedNode => {\n var _ref;\n\n if (id == null) {\n return null;\n } // In some cases, the draggable node can unmount while dragging\n // This is the case for virtualized lists. In those situations,\n // we fall back to the last known value for that node.\n\n\n return (_ref = node != null ? node : cachedNode) != null ? _ref : null;\n }, [node, id]);\n}\n\nfunction useCombineActivators(sensors, getSyntheticHandler) {\n return useMemo(() => sensors.reduce((accumulator, sensor) => {\n const {\n sensor: Sensor\n } = sensor;\n const sensorActivators = Sensor.activators.map(activator => ({\n eventName: activator.eventName,\n handler: getSyntheticHandler(activator.handler, sensor)\n }));\n return [...accumulator, ...sensorActivators];\n }, []), [sensors, getSyntheticHandler]);\n}\n\nvar MeasuringStrategy;\n\n(function (MeasuringStrategy) {\n MeasuringStrategy[MeasuringStrategy[\"Always\"] = 0] = \"Always\";\n MeasuringStrategy[MeasuringStrategy[\"BeforeDragging\"] = 1] = \"BeforeDragging\";\n MeasuringStrategy[MeasuringStrategy[\"WhileDragging\"] = 2] = \"WhileDragging\";\n})(MeasuringStrategy || (MeasuringStrategy = {}));\n\nvar MeasuringFrequency;\n\n(function (MeasuringFrequency) {\n MeasuringFrequency[\"Optimized\"] = \"optimized\";\n})(MeasuringFrequency || (MeasuringFrequency = {}));\n\nconst defaultValue = /*#__PURE__*/new Map();\nfunction useDroppableMeasuring(containers, _ref) {\n let {\n dragging,\n dependencies,\n config\n } = _ref;\n const [queue, setQueue] = useState(null);\n const {\n frequency,\n measure,\n strategy\n } = config;\n const containersRef = useRef(containers);\n const disabled = isDisabled();\n const disabledRef = useLatestValue(disabled);\n const measureDroppableContainers = useCallback(function (ids) {\n if (ids === void 0) {\n ids = [];\n }\n\n if (disabledRef.current) {\n return;\n }\n\n setQueue(value => {\n if (value === null) {\n return ids;\n }\n\n return value.concat(ids.filter(id => !value.includes(id)));\n });\n }, [disabledRef]);\n const timeoutId = useRef(null);\n const droppableRects = useLazyMemo(previousValue => {\n if (disabled && !dragging) {\n return defaultValue;\n }\n\n if (!previousValue || previousValue === defaultValue || containersRef.current !== containers || queue != null) {\n const map = new Map();\n\n for (let container of containers) {\n if (!container) {\n continue;\n }\n\n if (queue && queue.length > 0 && !queue.includes(container.id) && container.rect.current) {\n // This container does not need to be re-measured\n map.set(container.id, container.rect.current);\n continue;\n }\n\n const node = container.node.current;\n const rect = node ? new Rect(measure(node), node) : null;\n container.rect.current = rect;\n\n if (rect) {\n map.set(container.id, rect);\n }\n }\n\n return map;\n }\n\n return previousValue;\n }, [containers, queue, dragging, disabled, measure]);\n useEffect(() => {\n containersRef.current = containers;\n }, [containers]);\n useEffect(() => {\n if (disabled) {\n return;\n }\n\n measureDroppableContainers();\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [dragging, disabled]);\n useEffect(() => {\n if (queue && queue.length > 0) {\n setQueue(null);\n }\n }, //eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(queue)]);\n useEffect(() => {\n if (disabled || typeof frequency !== 'number' || timeoutId.current !== null) {\n return;\n }\n\n timeoutId.current = setTimeout(() => {\n measureDroppableContainers();\n timeoutId.current = null;\n }, frequency);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [frequency, disabled, measureDroppableContainers, ...dependencies]);\n return {\n droppableRects,\n measureDroppableContainers,\n measuringScheduled: queue != null\n };\n\n function isDisabled() {\n switch (strategy) {\n case MeasuringStrategy.Always:\n return false;\n\n case MeasuringStrategy.BeforeDragging:\n return dragging;\n\n default:\n return !dragging;\n }\n }\n}\n\nfunction useInitialValue(value, computeFn) {\n return useLazyMemo(previousValue => {\n if (!value) {\n return null;\n }\n\n if (previousValue) {\n return previousValue;\n }\n\n return typeof computeFn === 'function' ? computeFn(value) : value;\n }, [computeFn, value]);\n}\n\nfunction useInitialRect(node, measure) {\n return useInitialValue(node, measure);\n}\n\n/**\r\n * Returns a new MutationObserver instance.\r\n * If `MutationObserver` is undefined in the execution environment, returns `undefined`.\r\n */\n\nfunction useMutationObserver(_ref) {\n let {\n callback,\n disabled\n } = _ref;\n const handleMutations = useEvent(callback);\n const mutationObserver = useMemo(() => {\n if (disabled || typeof window === 'undefined' || typeof window.MutationObserver === 'undefined') {\n return undefined;\n }\n\n const {\n MutationObserver\n } = window;\n return new MutationObserver(handleMutations);\n }, [handleMutations, disabled]);\n useEffect(() => {\n return () => mutationObserver == null ? void 0 : mutationObserver.disconnect();\n }, [mutationObserver]);\n return mutationObserver;\n}\n\n/**\r\n * Returns a new ResizeObserver instance bound to the `onResize` callback.\r\n * If `ResizeObserver` is undefined in the execution environment, returns `undefined`.\r\n */\n\nfunction useResizeObserver(_ref) {\n let {\n callback,\n disabled\n } = _ref;\n const handleResize = useEvent(callback);\n const resizeObserver = useMemo(() => {\n if (disabled || typeof window === 'undefined' || typeof window.ResizeObserver === 'undefined') {\n return undefined;\n }\n\n const {\n ResizeObserver\n } = window;\n return new ResizeObserver(handleResize);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [disabled]);\n useEffect(() => {\n return () => resizeObserver == null ? void 0 : resizeObserver.disconnect();\n }, [resizeObserver]);\n return resizeObserver;\n}\n\nfunction defaultMeasure(element) {\n return new Rect(getClientRect(element), element);\n}\n\nfunction useRect(element, measure, fallbackRect) {\n if (measure === void 0) {\n measure = defaultMeasure;\n }\n\n const [rect, setRect] = useState(null);\n\n function measureRect() {\n setRect(currentRect => {\n if (!element) {\n return null;\n }\n\n if (element.isConnected === false) {\n var _ref;\n\n // Fall back to last rect we measured if the element is\n // no longer connected to the DOM.\n return (_ref = currentRect != null ? currentRect : fallbackRect) != null ? _ref : null;\n }\n\n const newRect = measure(element);\n\n if (JSON.stringify(currentRect) === JSON.stringify(newRect)) {\n return currentRect;\n }\n\n return newRect;\n });\n }\n\n const mutationObserver = useMutationObserver({\n callback(records) {\n if (!element) {\n return;\n }\n\n for (const record of records) {\n const {\n type,\n target\n } = record;\n\n if (type === 'childList' && target instanceof HTMLElement && target.contains(element)) {\n measureRect();\n break;\n }\n }\n }\n\n });\n const resizeObserver = useResizeObserver({\n callback: measureRect\n });\n useIsomorphicLayoutEffect(() => {\n measureRect();\n\n if (element) {\n resizeObserver == null ? void 0 : resizeObserver.observe(element);\n mutationObserver == null ? void 0 : mutationObserver.observe(document.body, {\n childList: true,\n subtree: true\n });\n } else {\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n mutationObserver == null ? void 0 : mutationObserver.disconnect();\n }\n }, [element]);\n return rect;\n}\n\nfunction useRectDelta(rect) {\n const initialRect = useInitialValue(rect);\n return getRectDelta(rect, initialRect);\n}\n\nconst defaultValue$1 = [];\nfunction useScrollableAncestors(node) {\n const previousNode = useRef(node);\n const ancestors = useLazyMemo(previousValue => {\n if (!node) {\n return defaultValue$1;\n }\n\n if (previousValue && previousValue !== defaultValue$1 && node && previousNode.current && node.parentNode === previousNode.current.parentNode) {\n return previousValue;\n }\n\n return getScrollableAncestors(node);\n }, [node]);\n useEffect(() => {\n previousNode.current = node;\n }, [node]);\n return ancestors;\n}\n\nfunction useScrollOffsets(elements) {\n const [scrollCoordinates, setScrollCoordinates] = useState(null);\n const prevElements = useRef(elements); // To-do: Throttle the handleScroll callback\n\n const handleScroll = useCallback(event => {\n const scrollingElement = getScrollableElement(event.target);\n\n if (!scrollingElement) {\n return;\n }\n\n setScrollCoordinates(scrollCoordinates => {\n if (!scrollCoordinates) {\n return null;\n }\n\n scrollCoordinates.set(scrollingElement, getScrollCoordinates(scrollingElement));\n return new Map(scrollCoordinates);\n });\n }, []);\n useEffect(() => {\n const previousElements = prevElements.current;\n\n if (elements !== previousElements) {\n cleanup(previousElements);\n const entries = elements.map(element => {\n const scrollableElement = getScrollableElement(element);\n\n if (scrollableElement) {\n scrollableElement.addEventListener('scroll', handleScroll, {\n passive: true\n });\n return [scrollableElement, getScrollCoordinates(scrollableElement)];\n }\n\n return null;\n }).filter(entry => entry != null);\n setScrollCoordinates(entries.length ? new Map(entries) : null);\n prevElements.current = elements;\n }\n\n return () => {\n cleanup(elements);\n cleanup(previousElements);\n };\n\n function cleanup(elements) {\n elements.forEach(element => {\n const scrollableElement = getScrollableElement(element);\n scrollableElement == null ? void 0 : scrollableElement.removeEventListener('scroll', handleScroll);\n });\n }\n }, [handleScroll, elements]);\n return useMemo(() => {\n if (elements.length) {\n return scrollCoordinates ? Array.from(scrollCoordinates.values()).reduce((acc, coordinates) => add(acc, coordinates), defaultCoordinates) : getScrollOffsets(elements);\n }\n\n return defaultCoordinates;\n }, [elements, scrollCoordinates]);\n}\n\nfunction useScrollOffsetsDelta(scrollOffsets, dependencies) {\n if (dependencies === void 0) {\n dependencies = [];\n }\n\n const initialScrollOffsets = useRef(null);\n useEffect(() => {\n initialScrollOffsets.current = null;\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n dependencies);\n useEffect(() => {\n const hasScrollOffsets = scrollOffsets !== defaultCoordinates;\n\n if (hasScrollOffsets && !initialScrollOffsets.current) {\n initialScrollOffsets.current = scrollOffsets;\n }\n\n if (!hasScrollOffsets && initialScrollOffsets.current) {\n initialScrollOffsets.current = null;\n }\n }, [scrollOffsets]);\n return initialScrollOffsets.current ? subtract(scrollOffsets, initialScrollOffsets.current) : defaultCoordinates;\n}\n\nfunction useSensorSetup(sensors) {\n useEffect(() => {\n if (!canUseDOM) {\n return;\n }\n\n const teardownFns = sensors.map(_ref => {\n let {\n sensor\n } = _ref;\n return sensor.setup == null ? void 0 : sensor.setup();\n });\n return () => {\n for (const teardown of teardownFns) {\n teardown == null ? void 0 : teardown();\n }\n };\n }, // TO-DO: Sensors length could theoretically change which would not be a valid dependency\n // eslint-disable-next-line react-hooks/exhaustive-deps\n sensors.map(_ref2 => {\n let {\n sensor\n } = _ref2;\n return sensor;\n }));\n}\n\nfunction useSyntheticListeners(listeners, id) {\n return useMemo(() => {\n return listeners.reduce((acc, _ref) => {\n let {\n eventName,\n handler\n } = _ref;\n\n acc[eventName] = event => {\n handler(event, id);\n };\n\n return acc;\n }, {});\n }, [listeners, id]);\n}\n\nfunction useWindowRect(element) {\n return useMemo(() => element ? getWindowClientRect(element) : null, [element]);\n}\n\nconst defaultValue$2 = [];\nfunction useRects(elements, measure) {\n if (measure === void 0) {\n measure = getClientRect;\n }\n\n const [firstElement] = elements;\n const windowRect = useWindowRect(firstElement ? getWindow(firstElement) : null);\n const [rects, setRects] = useState(defaultValue$2);\n\n function measureRects() {\n setRects(() => {\n if (!elements.length) {\n return defaultValue$2;\n }\n\n return elements.map(element => isDocumentScrollingElement(element) ? windowRect : new Rect(measure(element), element));\n });\n }\n\n const resizeObserver = useResizeObserver({\n callback: measureRects\n });\n useIsomorphicLayoutEffect(() => {\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n measureRects();\n elements.forEach(element => resizeObserver == null ? void 0 : resizeObserver.observe(element));\n }, [elements]);\n return rects;\n}\n\nfunction getMeasurableNode(node) {\n if (!node) {\n return null;\n }\n\n if (node.children.length > 1) {\n return node;\n }\n\n const firstChild = node.children[0];\n return isHTMLElement(firstChild) ? firstChild : node;\n}\n\nfunction useDragOverlayMeasuring(_ref) {\n let {\n measure\n } = _ref;\n const [rect, setRect] = useState(null);\n const handleResize = useCallback(entries => {\n for (const {\n target\n } of entries) {\n if (isHTMLElement(target)) {\n setRect(rect => {\n const newRect = measure(target);\n return rect ? { ...rect,\n width: newRect.width,\n height: newRect.height\n } : newRect;\n });\n break;\n }\n }\n }, [measure]);\n const resizeObserver = useResizeObserver({\n callback: handleResize\n });\n const handleNodeChange = useCallback(element => {\n const node = getMeasurableNode(element);\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n\n if (node) {\n resizeObserver == null ? void 0 : resizeObserver.observe(node);\n }\n\n setRect(node ? measure(node) : null);\n }, [measure, resizeObserver]);\n const [nodeRef, setRef] = useNodeRef(handleNodeChange);\n return useMemo(() => ({\n nodeRef,\n rect,\n setRef\n }), [rect, nodeRef, setRef]);\n}\n\nconst defaultSensors = [{\n sensor: PointerSensor,\n options: {}\n}, {\n sensor: KeyboardSensor,\n options: {}\n}];\nconst defaultData = {\n current: {}\n};\nconst defaultMeasuringConfiguration = {\n draggable: {\n measure: getTransformAgnosticClientRect\n },\n droppable: {\n measure: getTransformAgnosticClientRect,\n strategy: MeasuringStrategy.WhileDragging,\n frequency: MeasuringFrequency.Optimized\n },\n dragOverlay: {\n measure: getClientRect\n }\n};\n\nclass DroppableContainersMap extends Map {\n get(id) {\n var _super$get;\n\n return id != null ? (_super$get = super.get(id)) != null ? _super$get : undefined : undefined;\n }\n\n toArray() {\n return Array.from(this.values());\n }\n\n getEnabled() {\n return this.toArray().filter(_ref => {\n let {\n disabled\n } = _ref;\n return !disabled;\n });\n }\n\n getNodeFor(id) {\n var _this$get$node$curren, _this$get;\n\n return (_this$get$node$curren = (_this$get = this.get(id)) == null ? void 0 : _this$get.node.current) != null ? _this$get$node$curren : undefined;\n }\n\n}\n\nconst defaultPublicContext = {\n activatorEvent: null,\n active: null,\n activeNode: null,\n activeNodeRect: null,\n collisions: null,\n containerNodeRect: null,\n draggableNodes: /*#__PURE__*/new Map(),\n droppableRects: /*#__PURE__*/new Map(),\n droppableContainers: /*#__PURE__*/new DroppableContainersMap(),\n over: null,\n dragOverlay: {\n nodeRef: {\n current: null\n },\n rect: null,\n setRef: noop\n },\n scrollableAncestors: [],\n scrollableAncestorRects: [],\n measuringConfiguration: defaultMeasuringConfiguration,\n measureDroppableContainers: noop,\n windowRect: null,\n measuringScheduled: false\n};\nconst defaultInternalContext = {\n activatorEvent: null,\n activators: [],\n active: null,\n activeNodeRect: null,\n ariaDescribedById: {\n draggable: ''\n },\n dispatch: noop,\n draggableNodes: /*#__PURE__*/new Map(),\n over: null,\n measureDroppableContainers: noop\n};\nconst InternalContext = /*#__PURE__*/createContext(defaultInternalContext);\nconst PublicContext = /*#__PURE__*/createContext(defaultPublicContext);\n\nfunction getInitialState() {\n return {\n draggable: {\n active: null,\n initialCoordinates: {\n x: 0,\n y: 0\n },\n nodes: new Map(),\n translate: {\n x: 0,\n y: 0\n }\n },\n droppable: {\n containers: new DroppableContainersMap()\n }\n };\n}\nfunction reducer(state, action) {\n switch (action.type) {\n case Action.DragStart:\n return { ...state,\n draggable: { ...state.draggable,\n initialCoordinates: action.initialCoordinates,\n active: action.active\n }\n };\n\n case Action.DragMove:\n if (state.draggable.active == null) {\n return state;\n }\n\n return { ...state,\n draggable: { ...state.draggable,\n translate: {\n x: action.coordinates.x - state.draggable.initialCoordinates.x,\n y: action.coordinates.y - state.draggable.initialCoordinates.y\n }\n }\n };\n\n case Action.DragEnd:\n case Action.DragCancel:\n return { ...state,\n draggable: { ...state.draggable,\n active: null,\n initialCoordinates: {\n x: 0,\n y: 0\n },\n translate: {\n x: 0,\n y: 0\n }\n }\n };\n\n case Action.RegisterDroppable:\n {\n const {\n element\n } = action;\n const {\n id\n } = element;\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, element);\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n case Action.SetDroppableDisabled:\n {\n const {\n id,\n key,\n disabled\n } = action;\n const element = state.droppable.containers.get(id);\n\n if (!element || key !== element.key) {\n return state;\n }\n\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, { ...element,\n disabled\n });\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n case Action.UnregisterDroppable:\n {\n const {\n id,\n key\n } = action;\n const element = state.droppable.containers.get(id);\n\n if (!element || key !== element.key) {\n return state;\n }\n\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.delete(id);\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n default:\n {\n return state;\n }\n }\n}\n\nfunction RestoreFocus(_ref) {\n let {\n disabled\n } = _ref;\n const {\n active,\n activatorEvent,\n draggableNodes\n } = useContext(InternalContext);\n const previousActivatorEvent = usePrevious(activatorEvent);\n const previousActiveId = usePrevious(active == null ? void 0 : active.id); // Restore keyboard focus on the activator node\n\n useEffect(() => {\n if (disabled) {\n return;\n }\n\n if (!activatorEvent && previousActivatorEvent && previousActiveId != null) {\n if (!isKeyboardEvent(previousActivatorEvent)) {\n return;\n }\n\n if (document.activeElement === previousActivatorEvent.target) {\n // No need to restore focus\n return;\n }\n\n const draggableNode = draggableNodes.get(previousActiveId);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n activatorNode,\n node\n } = draggableNode;\n\n if (!activatorNode.current && !node.current) {\n return;\n }\n\n requestAnimationFrame(() => {\n for (const element of [activatorNode.current, node.current]) {\n if (!element) {\n continue;\n }\n\n const focusableNode = findFirstFocusableNode(element);\n\n if (focusableNode) {\n focusableNode.focus();\n break;\n }\n }\n });\n }\n }, [activatorEvent, disabled, draggableNodes, previousActiveId, previousActivatorEvent]);\n return null;\n}\n\nfunction applyModifiers(modifiers, _ref) {\n let {\n transform,\n ...args\n } = _ref;\n return modifiers != null && modifiers.length ? modifiers.reduce((accumulator, modifier) => {\n return modifier({\n transform: accumulator,\n ...args\n });\n }, transform) : transform;\n}\n\nfunction useMeasuringConfiguration(config) {\n return useMemo(() => ({\n draggable: { ...defaultMeasuringConfiguration.draggable,\n ...(config == null ? void 0 : config.draggable)\n },\n droppable: { ...defaultMeasuringConfiguration.droppable,\n ...(config == null ? void 0 : config.droppable)\n },\n dragOverlay: { ...defaultMeasuringConfiguration.dragOverlay,\n ...(config == null ? void 0 : config.dragOverlay)\n }\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [config == null ? void 0 : config.draggable, config == null ? void 0 : config.droppable, config == null ? void 0 : config.dragOverlay]);\n}\n\nfunction useLayoutShiftScrollCompensation(_ref) {\n let {\n activeNode,\n measure,\n initialRect,\n config = true\n } = _ref;\n const initialized = useRef(false);\n const {\n x,\n y\n } = typeof config === 'boolean' ? {\n x: config,\n y: config\n } : config;\n useIsomorphicLayoutEffect(() => {\n const disabled = !x && !y;\n\n if (disabled || !activeNode) {\n initialized.current = false;\n return;\n }\n\n if (initialized.current || !initialRect) {\n // Return early if layout shift scroll compensation was already attempted\n // or if there is no initialRect to compare to.\n return;\n } // Get the most up to date node ref for the active draggable\n\n\n const node = activeNode == null ? void 0 : activeNode.node.current;\n\n if (!node || node.isConnected === false) {\n // Return early if there is no attached node ref or if the node is\n // disconnected from the document.\n return;\n }\n\n const rect = measure(node);\n const rectDelta = getRectDelta(rect, initialRect);\n\n if (!x) {\n rectDelta.x = 0;\n }\n\n if (!y) {\n rectDelta.y = 0;\n } // Only perform layout shift scroll compensation once\n\n\n initialized.current = true;\n\n if (Math.abs(rectDelta.x) > 0 || Math.abs(rectDelta.y) > 0) {\n const firstScrollableAncestor = getFirstScrollableAncestor(node);\n\n if (firstScrollableAncestor) {\n firstScrollableAncestor.scrollBy({\n top: rectDelta.y,\n left: rectDelta.x\n });\n }\n }\n }, [activeNode, x, y, initialRect, measure]);\n}\n\nconst ActiveDraggableContext = /*#__PURE__*/createContext({ ...defaultCoordinates,\n scaleX: 1,\n scaleY: 1\n});\nvar Status;\n\n(function (Status) {\n Status[Status[\"Uninitialized\"] = 0] = \"Uninitialized\";\n Status[Status[\"Initializing\"] = 1] = \"Initializing\";\n Status[Status[\"Initialized\"] = 2] = \"Initialized\";\n})(Status || (Status = {}));\n\nconst DndContext = /*#__PURE__*/memo(function DndContext(_ref) {\n var _sensorContext$curren, _dragOverlay$nodeRef$, _dragOverlay$rect, _over$rect;\n\n let {\n id,\n accessibility,\n autoScroll = true,\n children,\n sensors = defaultSensors,\n collisionDetection = rectIntersection,\n measuring,\n modifiers,\n ...props\n } = _ref;\n const store = useReducer(reducer, undefined, getInitialState);\n const [state, dispatch] = store;\n const [dispatchMonitorEvent, registerMonitorListener] = useDndMonitorProvider();\n const [status, setStatus] = useState(Status.Uninitialized);\n const isInitialized = status === Status.Initialized;\n const {\n draggable: {\n active: activeId,\n nodes: draggableNodes,\n translate\n },\n droppable: {\n containers: droppableContainers\n }\n } = state;\n const node = activeId != null ? draggableNodes.get(activeId) : null;\n const activeRects = useRef({\n initial: null,\n translated: null\n });\n const active = useMemo(() => {\n var _node$data;\n\n return activeId != null ? {\n id: activeId,\n // It's possible for the active node to unmount while dragging\n data: (_node$data = node == null ? void 0 : node.data) != null ? _node$data : defaultData,\n rect: activeRects\n } : null;\n }, [activeId, node]);\n const activeRef = useRef(null);\n const [activeSensor, setActiveSensor] = useState(null);\n const [activatorEvent, setActivatorEvent] = useState(null);\n const latestProps = useLatestValue(props, Object.values(props));\n const draggableDescribedById = useUniqueId(\"DndDescribedBy\", id);\n const enabledDroppableContainers = useMemo(() => droppableContainers.getEnabled(), [droppableContainers]);\n const measuringConfiguration = useMeasuringConfiguration(measuring);\n const {\n droppableRects,\n measureDroppableContainers,\n measuringScheduled\n } = useDroppableMeasuring(enabledDroppableContainers, {\n dragging: isInitialized,\n dependencies: [translate.x, translate.y],\n config: measuringConfiguration.droppable\n });\n const activeNode = useCachedNode(draggableNodes, activeId);\n const activationCoordinates = useMemo(() => activatorEvent ? getEventCoordinates(activatorEvent) : null, [activatorEvent]);\n const autoScrollOptions = getAutoScrollerOptions();\n const initialActiveNodeRect = useInitialRect(activeNode, measuringConfiguration.draggable.measure);\n useLayoutShiftScrollCompensation({\n activeNode: activeId != null ? draggableNodes.get(activeId) : null,\n config: autoScrollOptions.layoutShiftCompensation,\n initialRect: initialActiveNodeRect,\n measure: measuringConfiguration.draggable.measure\n });\n const activeNodeRect = useRect(activeNode, measuringConfiguration.draggable.measure, initialActiveNodeRect);\n const containerNodeRect = useRect(activeNode ? activeNode.parentElement : null);\n const sensorContext = useRef({\n activatorEvent: null,\n active: null,\n activeNode,\n collisionRect: null,\n collisions: null,\n droppableRects,\n draggableNodes,\n draggingNode: null,\n draggingNodeRect: null,\n droppableContainers,\n over: null,\n scrollableAncestors: [],\n scrollAdjustedTranslate: null\n });\n const overNode = droppableContainers.getNodeFor((_sensorContext$curren = sensorContext.current.over) == null ? void 0 : _sensorContext$curren.id);\n const dragOverlay = useDragOverlayMeasuring({\n measure: measuringConfiguration.dragOverlay.measure\n }); // Use the rect of the drag overlay if it is mounted\n\n const draggingNode = (_dragOverlay$nodeRef$ = dragOverlay.nodeRef.current) != null ? _dragOverlay$nodeRef$ : activeNode;\n const draggingNodeRect = isInitialized ? (_dragOverlay$rect = dragOverlay.rect) != null ? _dragOverlay$rect : activeNodeRect : null;\n const usesDragOverlay = Boolean(dragOverlay.nodeRef.current && dragOverlay.rect); // The delta between the previous and new position of the draggable node\n // is only relevant when there is no drag overlay\n\n const nodeRectDelta = useRectDelta(usesDragOverlay ? null : activeNodeRect); // Get the window rect of the dragging node\n\n const windowRect = useWindowRect(draggingNode ? getWindow(draggingNode) : null); // Get scrollable ancestors of the dragging node\n\n const scrollableAncestors = useScrollableAncestors(isInitialized ? overNode != null ? overNode : activeNode : null);\n const scrollableAncestorRects = useRects(scrollableAncestors); // Apply modifiers\n\n const modifiedTranslate = applyModifiers(modifiers, {\n transform: {\n x: translate.x - nodeRectDelta.x,\n y: translate.y - nodeRectDelta.y,\n scaleX: 1,\n scaleY: 1\n },\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect,\n over: sensorContext.current.over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect\n });\n const pointerCoordinates = activationCoordinates ? add(activationCoordinates, translate) : null;\n const scrollOffsets = useScrollOffsets(scrollableAncestors); // Represents the scroll delta since dragging was initiated\n\n const scrollAdjustment = useScrollOffsetsDelta(scrollOffsets); // Represents the scroll delta since the last time the active node rect was measured\n\n const activeNodeScrollDelta = useScrollOffsetsDelta(scrollOffsets, [activeNodeRect]);\n const scrollAdjustedTranslate = add(modifiedTranslate, scrollAdjustment);\n const collisionRect = draggingNodeRect ? getAdjustedRect(draggingNodeRect, modifiedTranslate) : null;\n const collisions = active && collisionRect ? collisionDetection({\n active,\n collisionRect,\n droppableRects,\n droppableContainers: enabledDroppableContainers,\n pointerCoordinates\n }) : null;\n const overId = getFirstCollision(collisions, 'id');\n const [over, setOver] = useState(null); // When there is no drag overlay used, we need to account for the\n // window scroll delta\n\n const appliedTranslate = usesDragOverlay ? modifiedTranslate : add(modifiedTranslate, activeNodeScrollDelta);\n const transform = adjustScale(appliedTranslate, (_over$rect = over == null ? void 0 : over.rect) != null ? _over$rect : null, activeNodeRect);\n const activeSensorRef = useRef(null);\n const instantiateSensor = useCallback((event, _ref2) => {\n let {\n sensor: Sensor,\n options\n } = _ref2;\n\n if (activeRef.current == null) {\n return;\n }\n\n const activeNode = draggableNodes.get(activeRef.current);\n\n if (!activeNode) {\n return;\n }\n\n const activatorEvent = event.nativeEvent;\n const sensorInstance = new Sensor({\n active: activeRef.current,\n activeNode,\n event: activatorEvent,\n options,\n // Sensors need to be instantiated with refs for arguments that change over time\n // otherwise they are frozen in time with the stale arguments\n context: sensorContext,\n\n onAbort(id) {\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragAbort\n } = latestProps.current;\n const event = {\n id\n };\n onDragAbort == null ? void 0 : onDragAbort(event);\n dispatchMonitorEvent({\n type: 'onDragAbort',\n event\n });\n },\n\n onPending(id, constraint, initialCoordinates, offset) {\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragPending\n } = latestProps.current;\n const event = {\n id,\n constraint,\n initialCoordinates,\n offset\n };\n onDragPending == null ? void 0 : onDragPending(event);\n dispatchMonitorEvent({\n type: 'onDragPending',\n event\n });\n },\n\n onStart(initialCoordinates) {\n const id = activeRef.current;\n\n if (id == null) {\n return;\n }\n\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragStart\n } = latestProps.current;\n const event = {\n activatorEvent,\n active: {\n id,\n data: draggableNode.data,\n rect: activeRects\n }\n };\n unstable_batchedUpdates(() => {\n onDragStart == null ? void 0 : onDragStart(event);\n setStatus(Status.Initializing);\n dispatch({\n type: Action.DragStart,\n initialCoordinates,\n active: id\n });\n dispatchMonitorEvent({\n type: 'onDragStart',\n event\n });\n setActiveSensor(activeSensorRef.current);\n setActivatorEvent(activatorEvent);\n });\n },\n\n onMove(coordinates) {\n dispatch({\n type: Action.DragMove,\n coordinates\n });\n },\n\n onEnd: createHandler(Action.DragEnd),\n onCancel: createHandler(Action.DragCancel)\n });\n activeSensorRef.current = sensorInstance;\n\n function createHandler(type) {\n return async function handler() {\n const {\n active,\n collisions,\n over,\n scrollAdjustedTranslate\n } = sensorContext.current;\n let event = null;\n\n if (active && scrollAdjustedTranslate) {\n const {\n cancelDrop\n } = latestProps.current;\n event = {\n activatorEvent,\n active: active,\n collisions,\n delta: scrollAdjustedTranslate,\n over\n };\n\n if (type === Action.DragEnd && typeof cancelDrop === 'function') {\n const shouldCancel = await Promise.resolve(cancelDrop(event));\n\n if (shouldCancel) {\n type = Action.DragCancel;\n }\n }\n }\n\n activeRef.current = null;\n unstable_batchedUpdates(() => {\n dispatch({\n type\n });\n setStatus(Status.Uninitialized);\n setOver(null);\n setActiveSensor(null);\n setActivatorEvent(null);\n activeSensorRef.current = null;\n const eventName = type === Action.DragEnd ? 'onDragEnd' : 'onDragCancel';\n\n if (event) {\n const handler = latestProps.current[eventName];\n handler == null ? void 0 : handler(event);\n dispatchMonitorEvent({\n type: eventName,\n event\n });\n }\n });\n };\n }\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes]);\n const bindActivatorToSensorInstantiator = useCallback((handler, sensor) => {\n return (event, active) => {\n const nativeEvent = event.nativeEvent;\n const activeDraggableNode = draggableNodes.get(active);\n\n if ( // Another sensor is already instantiating\n activeRef.current !== null || // No active draggable\n !activeDraggableNode || // Event has already been captured\n nativeEvent.dndKit || nativeEvent.defaultPrevented) {\n return;\n }\n\n const activationContext = {\n active: activeDraggableNode\n };\n const shouldActivate = handler(event, sensor.options, activationContext);\n\n if (shouldActivate === true) {\n nativeEvent.dndKit = {\n capturedBy: sensor.sensor\n };\n activeRef.current = active;\n instantiateSensor(event, sensor);\n }\n };\n }, [draggableNodes, instantiateSensor]);\n const activators = useCombineActivators(sensors, bindActivatorToSensorInstantiator);\n useSensorSetup(sensors);\n useIsomorphicLayoutEffect(() => {\n if (activeNodeRect && status === Status.Initializing) {\n setStatus(Status.Initialized);\n }\n }, [activeNodeRect, status]);\n useEffect(() => {\n const {\n onDragMove\n } = latestProps.current;\n const {\n active,\n activatorEvent,\n collisions,\n over\n } = sensorContext.current;\n\n if (!active || !activatorEvent) {\n return;\n }\n\n const event = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y\n },\n over\n };\n unstable_batchedUpdates(() => {\n onDragMove == null ? void 0 : onDragMove(event);\n dispatchMonitorEvent({\n type: 'onDragMove',\n event\n });\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [scrollAdjustedTranslate.x, scrollAdjustedTranslate.y]);\n useEffect(() => {\n const {\n active,\n activatorEvent,\n collisions,\n droppableContainers,\n scrollAdjustedTranslate\n } = sensorContext.current;\n\n if (!active || activeRef.current == null || !activatorEvent || !scrollAdjustedTranslate) {\n return;\n }\n\n const {\n onDragOver\n } = latestProps.current;\n const overContainer = droppableContainers.get(overId);\n const over = overContainer && overContainer.rect.current ? {\n id: overContainer.id,\n rect: overContainer.rect.current,\n data: overContainer.data,\n disabled: overContainer.disabled\n } : null;\n const event = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y\n },\n over\n };\n unstable_batchedUpdates(() => {\n setOver(over);\n onDragOver == null ? void 0 : onDragOver(event);\n dispatchMonitorEvent({\n type: 'onDragOver',\n event\n });\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [overId]);\n useIsomorphicLayoutEffect(() => {\n sensorContext.current = {\n activatorEvent,\n active,\n activeNode,\n collisionRect,\n collisions,\n droppableRects,\n draggableNodes,\n draggingNode,\n draggingNodeRect,\n droppableContainers,\n over,\n scrollableAncestors,\n scrollAdjustedTranslate\n };\n activeRects.current = {\n initial: draggingNodeRect,\n translated: collisionRect\n };\n }, [active, activeNode, collisions, collisionRect, draggableNodes, draggingNode, draggingNodeRect, droppableRects, droppableContainers, over, scrollableAncestors, scrollAdjustedTranslate]);\n useAutoScroller({ ...autoScrollOptions,\n delta: translate,\n draggingRect: collisionRect,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects\n });\n const publicContext = useMemo(() => {\n const context = {\n active,\n activeNode,\n activeNodeRect,\n activatorEvent,\n collisions,\n containerNodeRect,\n dragOverlay,\n draggableNodes,\n droppableContainers,\n droppableRects,\n over,\n measureDroppableContainers,\n scrollableAncestors,\n scrollableAncestorRects,\n measuringConfiguration,\n measuringScheduled,\n windowRect\n };\n return context;\n }, [active, activeNode, activeNodeRect, activatorEvent, collisions, containerNodeRect, dragOverlay, draggableNodes, droppableContainers, droppableRects, over, measureDroppableContainers, scrollableAncestors, scrollableAncestorRects, measuringConfiguration, measuringScheduled, windowRect]);\n const internalContext = useMemo(() => {\n const context = {\n activatorEvent,\n activators,\n active,\n activeNodeRect,\n ariaDescribedById: {\n draggable: draggableDescribedById\n },\n dispatch,\n draggableNodes,\n over,\n measureDroppableContainers\n };\n return context;\n }, [activatorEvent, activators, active, activeNodeRect, dispatch, draggableDescribedById, draggableNodes, over, measureDroppableContainers]);\n return React.createElement(DndMonitorContext.Provider, {\n value: registerMonitorListener\n }, React.createElement(InternalContext.Provider, {\n value: internalContext\n }, React.createElement(PublicContext.Provider, {\n value: publicContext\n }, React.createElement(ActiveDraggableContext.Provider, {\n value: transform\n }, children)), React.createElement(RestoreFocus, {\n disabled: (accessibility == null ? void 0 : accessibility.restoreFocus) === false\n })), React.createElement(Accessibility, { ...accessibility,\n hiddenTextDescribedById: draggableDescribedById\n }));\n\n function getAutoScrollerOptions() {\n const activeSensorDisablesAutoscroll = (activeSensor == null ? void 0 : activeSensor.autoScrollEnabled) === false;\n const autoScrollGloballyDisabled = typeof autoScroll === 'object' ? autoScroll.enabled === false : autoScroll === false;\n const enabled = isInitialized && !activeSensorDisablesAutoscroll && !autoScrollGloballyDisabled;\n\n if (typeof autoScroll === 'object') {\n return { ...autoScroll,\n enabled\n };\n }\n\n return {\n enabled\n };\n }\n});\n\nconst NullContext = /*#__PURE__*/createContext(null);\nconst defaultRole = 'button';\nconst ID_PREFIX = 'Draggable';\nfunction useDraggable(_ref) {\n let {\n id,\n data,\n disabled = false,\n attributes\n } = _ref;\n const key = useUniqueId(ID_PREFIX);\n const {\n activators,\n activatorEvent,\n active,\n activeNodeRect,\n ariaDescribedById,\n draggableNodes,\n over\n } = useContext(InternalContext);\n const {\n role = defaultRole,\n roleDescription = 'draggable',\n tabIndex = 0\n } = attributes != null ? attributes : {};\n const isDragging = (active == null ? void 0 : active.id) === id;\n const transform = useContext(isDragging ? ActiveDraggableContext : NullContext);\n const [node, setNodeRef] = useNodeRef();\n const [activatorNode, setActivatorNodeRef] = useNodeRef();\n const listeners = useSyntheticListeners(activators, id);\n const dataRef = useLatestValue(data);\n useIsomorphicLayoutEffect(() => {\n draggableNodes.set(id, {\n id,\n key,\n node,\n activatorNode,\n data: dataRef\n });\n return () => {\n const node = draggableNodes.get(id);\n\n if (node && node.key === key) {\n draggableNodes.delete(id);\n }\n };\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes, id]);\n const memoizedAttributes = useMemo(() => ({\n role,\n tabIndex,\n 'aria-disabled': disabled,\n 'aria-pressed': isDragging && role === defaultRole ? true : undefined,\n 'aria-roledescription': roleDescription,\n 'aria-describedby': ariaDescribedById.draggable\n }), [disabled, role, tabIndex, isDragging, roleDescription, ariaDescribedById.draggable]);\n return {\n active,\n activatorEvent,\n activeNodeRect,\n attributes: memoizedAttributes,\n isDragging,\n listeners: disabled ? undefined : listeners,\n node,\n over,\n setNodeRef,\n setActivatorNodeRef,\n transform\n };\n}\n\nfunction useDndContext() {\n return useContext(PublicContext);\n}\n\nconst ID_PREFIX$1 = 'Droppable';\nconst defaultResizeObserverConfig = {\n timeout: 25\n};\nfunction useDroppable(_ref) {\n let {\n data,\n disabled = false,\n id,\n resizeObserverConfig\n } = _ref;\n const key = useUniqueId(ID_PREFIX$1);\n const {\n active,\n dispatch,\n over,\n measureDroppableContainers\n } = useContext(InternalContext);\n const previous = useRef({\n disabled\n });\n const resizeObserverConnected = useRef(false);\n const rect = useRef(null);\n const callbackId = useRef(null);\n const {\n disabled: resizeObserverDisabled,\n updateMeasurementsFor,\n timeout: resizeObserverTimeout\n } = { ...defaultResizeObserverConfig,\n ...resizeObserverConfig\n };\n const ids = useLatestValue(updateMeasurementsFor != null ? updateMeasurementsFor : id);\n const handleResize = useCallback(() => {\n if (!resizeObserverConnected.current) {\n // ResizeObserver invokes the `handleResize` callback as soon as `observe` is called,\n // assuming the element is rendered and displayed.\n resizeObserverConnected.current = true;\n return;\n }\n\n if (callbackId.current != null) {\n clearTimeout(callbackId.current);\n }\n\n callbackId.current = setTimeout(() => {\n measureDroppableContainers(Array.isArray(ids.current) ? ids.current : [ids.current]);\n callbackId.current = null;\n }, resizeObserverTimeout);\n }, //eslint-disable-next-line react-hooks/exhaustive-deps\n [resizeObserverTimeout]);\n const resizeObserver = useResizeObserver({\n callback: handleResize,\n disabled: resizeObserverDisabled || !active\n });\n const handleNodeChange = useCallback((newElement, previousElement) => {\n if (!resizeObserver) {\n return;\n }\n\n if (previousElement) {\n resizeObserver.unobserve(previousElement);\n resizeObserverConnected.current = false;\n }\n\n if (newElement) {\n resizeObserver.observe(newElement);\n }\n }, [resizeObserver]);\n const [nodeRef, setNodeRef] = useNodeRef(handleNodeChange);\n const dataRef = useLatestValue(data);\n useEffect(() => {\n if (!resizeObserver || !nodeRef.current) {\n return;\n }\n\n resizeObserver.disconnect();\n resizeObserverConnected.current = false;\n resizeObserver.observe(nodeRef.current);\n }, [nodeRef, resizeObserver]);\n useEffect(() => {\n dispatch({\n type: Action.RegisterDroppable,\n element: {\n id,\n key,\n disabled,\n node: nodeRef,\n rect,\n data: dataRef\n }\n });\n return () => dispatch({\n type: Action.UnregisterDroppable,\n key,\n id\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [id]);\n useEffect(() => {\n if (disabled !== previous.current.disabled) {\n dispatch({\n type: Action.SetDroppableDisabled,\n id,\n key,\n disabled\n });\n previous.current.disabled = disabled;\n }\n }, [id, key, disabled, dispatch]);\n return {\n active,\n rect,\n isOver: (over == null ? void 0 : over.id) === id,\n node: nodeRef,\n over,\n setNodeRef\n };\n}\n\nfunction AnimationManager(_ref) {\n let {\n animation,\n children\n } = _ref;\n const [clonedChildren, setClonedChildren] = useState(null);\n const [element, setElement] = useState(null);\n const previousChildren = usePrevious(children);\n\n if (!children && !clonedChildren && previousChildren) {\n setClonedChildren(previousChildren);\n }\n\n useIsomorphicLayoutEffect(() => {\n if (!element) {\n return;\n }\n\n const key = clonedChildren == null ? void 0 : clonedChildren.key;\n const id = clonedChildren == null ? void 0 : clonedChildren.props.id;\n\n if (key == null || id == null) {\n setClonedChildren(null);\n return;\n }\n\n Promise.resolve(animation(id, element)).then(() => {\n setClonedChildren(null);\n });\n }, [animation, clonedChildren, element]);\n return React.createElement(React.Fragment, null, children, clonedChildren ? cloneElement(clonedChildren, {\n ref: setElement\n }) : null);\n}\n\nconst defaultTransform = {\n x: 0,\n y: 0,\n scaleX: 1,\n scaleY: 1\n};\nfunction NullifiedContextProvider(_ref) {\n let {\n children\n } = _ref;\n return React.createElement(InternalContext.Provider, {\n value: defaultInternalContext\n }, React.createElement(ActiveDraggableContext.Provider, {\n value: defaultTransform\n }, children));\n}\n\nconst baseStyles = {\n position: 'fixed',\n touchAction: 'none'\n};\n\nconst defaultTransition = activatorEvent => {\n const isKeyboardActivator = isKeyboardEvent(activatorEvent);\n return isKeyboardActivator ? 'transform 250ms ease' : undefined;\n};\n\nconst PositionedOverlay = /*#__PURE__*/forwardRef((_ref, ref) => {\n let {\n as,\n activatorEvent,\n adjustScale,\n children,\n className,\n rect,\n style,\n transform,\n transition = defaultTransition\n } = _ref;\n\n if (!rect) {\n return null;\n }\n\n const scaleAdjustedTransform = adjustScale ? transform : { ...transform,\n scaleX: 1,\n scaleY: 1\n };\n const styles = { ...baseStyles,\n width: rect.width,\n height: rect.height,\n top: rect.top,\n left: rect.left,\n transform: CSS.Transform.toString(scaleAdjustedTransform),\n transformOrigin: adjustScale && activatorEvent ? getRelativeTransformOrigin(activatorEvent, rect) : undefined,\n transition: typeof transition === 'function' ? transition(activatorEvent) : transition,\n ...style\n };\n return React.createElement(as, {\n className,\n style: styles,\n ref\n }, children);\n});\n\nconst defaultDropAnimationSideEffects = options => _ref => {\n let {\n active,\n dragOverlay\n } = _ref;\n const originalStyles = {};\n const {\n styles,\n className\n } = options;\n\n if (styles != null && styles.active) {\n for (const [key, value] of Object.entries(styles.active)) {\n if (value === undefined) {\n continue;\n }\n\n originalStyles[key] = active.node.style.getPropertyValue(key);\n active.node.style.setProperty(key, value);\n }\n }\n\n if (styles != null && styles.dragOverlay) {\n for (const [key, value] of Object.entries(styles.dragOverlay)) {\n if (value === undefined) {\n continue;\n }\n\n dragOverlay.node.style.setProperty(key, value);\n }\n }\n\n if (className != null && className.active) {\n active.node.classList.add(className.active);\n }\n\n if (className != null && className.dragOverlay) {\n dragOverlay.node.classList.add(className.dragOverlay);\n }\n\n return function cleanup() {\n for (const [key, value] of Object.entries(originalStyles)) {\n active.node.style.setProperty(key, value);\n }\n\n if (className != null && className.active) {\n active.node.classList.remove(className.active);\n }\n };\n};\n\nconst defaultKeyframeResolver = _ref2 => {\n let {\n transform: {\n initial,\n final\n }\n } = _ref2;\n return [{\n transform: CSS.Transform.toString(initial)\n }, {\n transform: CSS.Transform.toString(final)\n }];\n};\n\nconst defaultDropAnimationConfiguration = {\n duration: 250,\n easing: 'ease',\n keyframes: defaultKeyframeResolver,\n sideEffects: /*#__PURE__*/defaultDropAnimationSideEffects({\n styles: {\n active: {\n opacity: '0'\n }\n }\n })\n};\nfunction useDropAnimation(_ref3) {\n let {\n config,\n draggableNodes,\n droppableContainers,\n measuringConfiguration\n } = _ref3;\n return useEvent((id, node) => {\n if (config === null) {\n return;\n }\n\n const activeDraggable = draggableNodes.get(id);\n\n if (!activeDraggable) {\n return;\n }\n\n const activeNode = activeDraggable.node.current;\n\n if (!activeNode) {\n return;\n }\n\n const measurableNode = getMeasurableNode(node);\n\n if (!measurableNode) {\n return;\n }\n\n const {\n transform\n } = getWindow(node).getComputedStyle(node);\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return;\n }\n\n const animation = typeof config === 'function' ? config : createDefaultDropAnimation(config);\n scrollIntoViewIfNeeded(activeNode, measuringConfiguration.draggable.measure);\n return animation({\n active: {\n id,\n data: activeDraggable.data,\n node: activeNode,\n rect: measuringConfiguration.draggable.measure(activeNode)\n },\n draggableNodes,\n dragOverlay: {\n node,\n rect: measuringConfiguration.dragOverlay.measure(measurableNode)\n },\n droppableContainers,\n measuringConfiguration,\n transform: parsedTransform\n });\n });\n}\n\nfunction createDefaultDropAnimation(options) {\n const {\n duration,\n easing,\n sideEffects,\n keyframes\n } = { ...defaultDropAnimationConfiguration,\n ...options\n };\n return _ref4 => {\n let {\n active,\n dragOverlay,\n transform,\n ...rest\n } = _ref4;\n\n if (!duration) {\n // Do not animate if animation duration is zero.\n return;\n }\n\n const delta = {\n x: dragOverlay.rect.left - active.rect.left,\n y: dragOverlay.rect.top - active.rect.top\n };\n const scale = {\n scaleX: transform.scaleX !== 1 ? active.rect.width * transform.scaleX / dragOverlay.rect.width : 1,\n scaleY: transform.scaleY !== 1 ? active.rect.height * transform.scaleY / dragOverlay.rect.height : 1\n };\n const finalTransform = {\n x: transform.x - delta.x,\n y: transform.y - delta.y,\n ...scale\n };\n const animationKeyframes = keyframes({ ...rest,\n active,\n dragOverlay,\n transform: {\n initial: transform,\n final: finalTransform\n }\n });\n const [firstKeyframe] = animationKeyframes;\n const lastKeyframe = animationKeyframes[animationKeyframes.length - 1];\n\n if (JSON.stringify(firstKeyframe) === JSON.stringify(lastKeyframe)) {\n // The start and end keyframes are the same, infer that there is no animation needed.\n return;\n }\n\n const cleanup = sideEffects == null ? void 0 : sideEffects({\n active,\n dragOverlay,\n ...rest\n });\n const animation = dragOverlay.node.animate(animationKeyframes, {\n duration,\n easing,\n fill: 'forwards'\n });\n return new Promise(resolve => {\n animation.onfinish = () => {\n cleanup == null ? void 0 : cleanup();\n resolve();\n };\n });\n };\n}\n\nlet key = 0;\nfunction useKey(id) {\n return useMemo(() => {\n if (id == null) {\n return;\n }\n\n key++;\n return key;\n }, [id]);\n}\n\nconst DragOverlay = /*#__PURE__*/React.memo(_ref => {\n let {\n adjustScale = false,\n children,\n dropAnimation: dropAnimationConfig,\n style,\n transition,\n modifiers,\n wrapperElement = 'div',\n className,\n zIndex = 999\n } = _ref;\n const {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggableNodes,\n droppableContainers,\n dragOverlay,\n over,\n measuringConfiguration,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect\n } = useDndContext();\n const transform = useContext(ActiveDraggableContext);\n const key = useKey(active == null ? void 0 : active.id);\n const modifiedTransform = applyModifiers(modifiers, {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect: dragOverlay.rect,\n over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n transform,\n windowRect\n });\n const initialRect = useInitialValue(activeNodeRect);\n const dropAnimation = useDropAnimation({\n config: dropAnimationConfig,\n draggableNodes,\n droppableContainers,\n measuringConfiguration\n }); // We need to wait for the active node to be measured before connecting the drag overlay ref\n // otherwise collisions can be computed against a mispositioned drag overlay\n\n const ref = initialRect ? dragOverlay.setRef : undefined;\n return React.createElement(NullifiedContextProvider, null, React.createElement(AnimationManager, {\n animation: dropAnimation\n }, active && key ? React.createElement(PositionedOverlay, {\n key: key,\n id: active.id,\n ref: ref,\n as: wrapperElement,\n activatorEvent: activatorEvent,\n adjustScale: adjustScale,\n className: className,\n transition: transition,\n rect: initialRect,\n style: {\n zIndex,\n ...style\n },\n transform: modifiedTransform\n }, children) : null));\n});\n\nexport { AutoScrollActivator, DndContext, DragOverlay, KeyboardCode, KeyboardSensor, MeasuringFrequency, MeasuringStrategy, MouseSensor, PointerSensor, TouchSensor, TraversalOrder, applyModifiers, closestCenter, closestCorners, defaultAnnouncements, defaultCoordinates, defaultDropAnimationConfiguration as defaultDropAnimation, defaultDropAnimationSideEffects, defaultKeyboardCoordinateGetter, defaultScreenReaderInstructions, getClientRect, getFirstCollision, getScrollableAncestors, pointerWithin, rectIntersection, useDndContext, useDndMonitor, useDraggable, useDroppable, useSensor, useSensors };\n//# sourceMappingURL=core.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport cx from 'classnames';\nimport { forwardRef } from 'react';\nimport { F as Flex } from './Flex-DlNiHX1G.js';\n\nimport './index.css';const styles = {\n\t\"drop-line\": \"_drop-line_1oxam_4\",\n\t\"drag-preview\": \"_drag-preview_1oxam_19\",\n\t\"orientation-horizontal\": \"_orientation-horizontal_1oxam_38\",\n\t\"position-before\": \"_position-before_1oxam_42\",\n\t\"position-after\": \"_position-after_1oxam_45\",\n\t\"orientation-vertical\": \"_orientation-vertical_1oxam_52\",\n\t\"drop-zone\": \"_drop-zone_1oxam_66\",\n\t\"can-be-dropped\": \"_can-be-dropped_1oxam_71\",\n\t\"active-not-over\": \"_active-not-over_1oxam_75\",\n\t\"over-valid\": \"_over-valid_1oxam_82\",\n\t\"over-invalid\": \"_over-invalid_1oxam_86\"\n};\n\nconst DndSortLine = ({ orientation, position }) => {\n const classes = cx(\n styles[\"drop-line\"],\n styles[`orientation-${orientation}`],\n styles[`position-${position}`]\n );\n return /* @__PURE__ */ jsx(\"div\", { \"aria-hidden\": true, className: classes });\n};\n\nconst DEFAULT_GAP = 4;\nconst DndZone = forwardRef(\n ({\n children,\n className,\n disabled,\n gap = `${DEFAULT_GAP}`,\n id,\n isDragging,\n isOver,\n isValid,\n orientation,\n style,\n ...rest\n }, ref) => {\n const classes = cx(className, {\n [styles[\"drop-zone\"]]: true,\n [styles[\"over-valid\"]]: isDragging && isOver && isValid,\n [styles[\"over-invalid\"]]: isDragging && isOver && !isValid,\n [styles[\"active-not-over\"]]: isDragging && !isOver\n });\n const orientationToDirection = {\n horizontal: \"row\",\n vertical: \"column\"\n };\n return /* @__PURE__ */ jsx(\n Flex,\n {\n \"data-testid\": `drag-and-drop-zone-${id}`,\n direction: orientationToDirection[orientation ?? \"\"] || void 0,\n ...rest,\n ref,\n className: classes,\n gap,\n style: {\n padding: (isNaN(Number(gap)) ? DEFAULT_GAP : Number(gap)) * 0.25 + \"rem\",\n ...style,\n \"--drop-zone-gap\": gap\n },\n children\n }\n );\n }\n);\nDndZone.displayName = \"DndZoneBase\";\n\nconst Dnd = {\n SortLine: DndSortLine,\n Zone: DndZone\n};\n\nexport { DndSortLine as D, Dnd as a, styles as s };\n//# sourceMappingURL=index-BzKcoArQ.js.map\n","import * as React from \"react\";\nconst SvgDragIndicator = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\" }));\nexport default SvgDragIndicator;\n","import React, { useMemo, useRef, useEffect, useState, useContext } from 'react';\nimport { useDndContext, getClientRect, useDroppable, useDraggable, closestCorners, getFirstCollision, getScrollableAncestors, KeyboardCode } from '@dnd-kit/core';\nimport { useUniqueId, useIsomorphicLayoutEffect, CSS, useCombinedRefs, isKeyboardEvent, subtract } from '@dnd-kit/utilities';\n\n/**\r\n * Move an array item to a different position. Returns a new array with the item moved to the new position.\r\n */\nfunction arrayMove(array, from, to) {\n const newArray = array.slice();\n newArray.splice(to < 0 ? newArray.length + to : to, 0, newArray.splice(from, 1)[0]);\n return newArray;\n}\n\n/**\r\n * Swap an array item to a different position. Returns a new array with the item swapped to the new position.\r\n */\nfunction arraySwap(array, from, to) {\n const newArray = array.slice();\n newArray[from] = array[to];\n newArray[to] = array[from];\n return newArray;\n}\n\nfunction getSortedRects(items, rects) {\n return items.reduce((accumulator, id, index) => {\n const rect = rects.get(id);\n\n if (rect) {\n accumulator[index] = rect;\n }\n\n return accumulator;\n }, Array(items.length));\n}\n\nfunction isValidIndex(index) {\n return index !== null && index >= 0;\n}\n\nfunction itemsEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction normalizeDisabled(disabled) {\n if (typeof disabled === 'boolean') {\n return {\n draggable: disabled,\n droppable: disabled\n };\n }\n\n return disabled;\n}\n\n// To-do: We should be calculating scale transformation\nconst defaultScale = {\n scaleX: 1,\n scaleY: 1\n};\nconst horizontalListSortingStrategy = _ref => {\n var _rects$activeIndex;\n\n let {\n rects,\n activeNodeRect: fallbackActiveRect,\n activeIndex,\n overIndex,\n index\n } = _ref;\n const activeNodeRect = (_rects$activeIndex = rects[activeIndex]) != null ? _rects$activeIndex : fallbackActiveRect;\n\n if (!activeNodeRect) {\n return null;\n }\n\n const itemGap = getItemGap(rects, index, activeIndex);\n\n if (index === activeIndex) {\n const newIndexRect = rects[overIndex];\n\n if (!newIndexRect) {\n return null;\n }\n\n return {\n x: activeIndex < overIndex ? newIndexRect.left + newIndexRect.width - (activeNodeRect.left + activeNodeRect.width) : newIndexRect.left - activeNodeRect.left,\n y: 0,\n ...defaultScale\n };\n }\n\n if (index > activeIndex && index <= overIndex) {\n return {\n x: -activeNodeRect.width - itemGap,\n y: 0,\n ...defaultScale\n };\n }\n\n if (index < activeIndex && index >= overIndex) {\n return {\n x: activeNodeRect.width + itemGap,\n y: 0,\n ...defaultScale\n };\n }\n\n return {\n x: 0,\n y: 0,\n ...defaultScale\n };\n};\n\nfunction getItemGap(rects, index, activeIndex) {\n const currentRect = rects[index];\n const previousRect = rects[index - 1];\n const nextRect = rects[index + 1];\n\n if (!currentRect || !previousRect && !nextRect) {\n return 0;\n }\n\n if (activeIndex < index) {\n return previousRect ? currentRect.left - (previousRect.left + previousRect.width) : nextRect.left - (currentRect.left + currentRect.width);\n }\n\n return nextRect ? nextRect.left - (currentRect.left + currentRect.width) : currentRect.left - (previousRect.left + previousRect.width);\n}\n\nconst rectSortingStrategy = _ref => {\n let {\n rects,\n activeIndex,\n overIndex,\n index\n } = _ref;\n const newRects = arrayMove(rects, overIndex, activeIndex);\n const oldRect = rects[index];\n const newRect = newRects[index];\n\n if (!newRect || !oldRect) {\n return null;\n }\n\n return {\n x: newRect.left - oldRect.left,\n y: newRect.top - oldRect.top,\n scaleX: newRect.width / oldRect.width,\n scaleY: newRect.height / oldRect.height\n };\n};\n\nconst rectSwappingStrategy = _ref => {\n let {\n activeIndex,\n index,\n rects,\n overIndex\n } = _ref;\n let oldRect;\n let newRect;\n\n if (index === activeIndex) {\n oldRect = rects[index];\n newRect = rects[overIndex];\n }\n\n if (index === overIndex) {\n oldRect = rects[index];\n newRect = rects[activeIndex];\n }\n\n if (!newRect || !oldRect) {\n return null;\n }\n\n return {\n x: newRect.left - oldRect.left,\n y: newRect.top - oldRect.top,\n scaleX: newRect.width / oldRect.width,\n scaleY: newRect.height / oldRect.height\n };\n};\n\n// To-do: We should be calculating scale transformation\nconst defaultScale$1 = {\n scaleX: 1,\n scaleY: 1\n};\nconst verticalListSortingStrategy = _ref => {\n var _rects$activeIndex;\n\n let {\n activeIndex,\n activeNodeRect: fallbackActiveRect,\n index,\n rects,\n overIndex\n } = _ref;\n const activeNodeRect = (_rects$activeIndex = rects[activeIndex]) != null ? _rects$activeIndex : fallbackActiveRect;\n\n if (!activeNodeRect) {\n return null;\n }\n\n if (index === activeIndex) {\n const overIndexRect = rects[overIndex];\n\n if (!overIndexRect) {\n return null;\n }\n\n return {\n x: 0,\n y: activeIndex < overIndex ? overIndexRect.top + overIndexRect.height - (activeNodeRect.top + activeNodeRect.height) : overIndexRect.top - activeNodeRect.top,\n ...defaultScale$1\n };\n }\n\n const itemGap = getItemGap$1(rects, index, activeIndex);\n\n if (index > activeIndex && index <= overIndex) {\n return {\n x: 0,\n y: -activeNodeRect.height - itemGap,\n ...defaultScale$1\n };\n }\n\n if (index < activeIndex && index >= overIndex) {\n return {\n x: 0,\n y: activeNodeRect.height + itemGap,\n ...defaultScale$1\n };\n }\n\n return {\n x: 0,\n y: 0,\n ...defaultScale$1\n };\n};\n\nfunction getItemGap$1(clientRects, index, activeIndex) {\n const currentRect = clientRects[index];\n const previousRect = clientRects[index - 1];\n const nextRect = clientRects[index + 1];\n\n if (!currentRect) {\n return 0;\n }\n\n if (activeIndex < index) {\n return previousRect ? currentRect.top - (previousRect.top + previousRect.height) : nextRect ? nextRect.top - (currentRect.top + currentRect.height) : 0;\n }\n\n return nextRect ? nextRect.top - (currentRect.top + currentRect.height) : previousRect ? currentRect.top - (previousRect.top + previousRect.height) : 0;\n}\n\nconst ID_PREFIX = 'Sortable';\nconst Context = /*#__PURE__*/React.createContext({\n activeIndex: -1,\n containerId: ID_PREFIX,\n disableTransforms: false,\n items: [],\n overIndex: -1,\n useDragOverlay: false,\n sortedRects: [],\n strategy: rectSortingStrategy,\n disabled: {\n draggable: false,\n droppable: false\n }\n});\nfunction SortableContext(_ref) {\n let {\n children,\n id,\n items: userDefinedItems,\n strategy = rectSortingStrategy,\n disabled: disabledProp = false\n } = _ref;\n const {\n active,\n dragOverlay,\n droppableRects,\n over,\n measureDroppableContainers\n } = useDndContext();\n const containerId = useUniqueId(ID_PREFIX, id);\n const useDragOverlay = Boolean(dragOverlay.rect !== null);\n const items = useMemo(() => userDefinedItems.map(item => typeof item === 'object' && 'id' in item ? item.id : item), [userDefinedItems]);\n const isDragging = active != null;\n const activeIndex = active ? items.indexOf(active.id) : -1;\n const overIndex = over ? items.indexOf(over.id) : -1;\n const previousItemsRef = useRef(items);\n const itemsHaveChanged = !itemsEqual(items, previousItemsRef.current);\n const disableTransforms = overIndex !== -1 && activeIndex === -1 || itemsHaveChanged;\n const disabled = normalizeDisabled(disabledProp);\n useIsomorphicLayoutEffect(() => {\n if (itemsHaveChanged && isDragging) {\n measureDroppableContainers(items);\n }\n }, [itemsHaveChanged, items, isDragging, measureDroppableContainers]);\n useEffect(() => {\n previousItemsRef.current = items;\n }, [items]);\n const contextValue = useMemo(() => ({\n activeIndex,\n containerId,\n disabled,\n disableTransforms,\n items,\n overIndex,\n useDragOverlay,\n sortedRects: getSortedRects(items, droppableRects),\n strategy\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [activeIndex, containerId, disabled.draggable, disabled.droppable, disableTransforms, items, overIndex, droppableRects, useDragOverlay, strategy]);\n return React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nconst defaultNewIndexGetter = _ref => {\n let {\n id,\n items,\n activeIndex,\n overIndex\n } = _ref;\n return arrayMove(items, activeIndex, overIndex).indexOf(id);\n};\nconst defaultAnimateLayoutChanges = _ref2 => {\n let {\n containerId,\n isSorting,\n wasDragging,\n index,\n items,\n newIndex,\n previousItems,\n previousContainerId,\n transition\n } = _ref2;\n\n if (!transition || !wasDragging) {\n return false;\n }\n\n if (previousItems !== items && index === newIndex) {\n return false;\n }\n\n if (isSorting) {\n return true;\n }\n\n return newIndex !== index && containerId === previousContainerId;\n};\nconst defaultTransition = {\n duration: 200,\n easing: 'ease'\n};\nconst transitionProperty = 'transform';\nconst disabledTransition = /*#__PURE__*/CSS.Transition.toString({\n property: transitionProperty,\n duration: 0,\n easing: 'linear'\n});\nconst defaultAttributes = {\n roleDescription: 'sortable'\n};\n\n/*\r\n * When the index of an item changes while sorting,\r\n * we need to temporarily disable the transforms\r\n */\n\nfunction useDerivedTransform(_ref) {\n let {\n disabled,\n index,\n node,\n rect\n } = _ref;\n const [derivedTransform, setDerivedtransform] = useState(null);\n const previousIndex = useRef(index);\n useIsomorphicLayoutEffect(() => {\n if (!disabled && index !== previousIndex.current && node.current) {\n const initial = rect.current;\n\n if (initial) {\n const current = getClientRect(node.current, {\n ignoreTransform: true\n });\n const delta = {\n x: initial.left - current.left,\n y: initial.top - current.top,\n scaleX: initial.width / current.width,\n scaleY: initial.height / current.height\n };\n\n if (delta.x || delta.y) {\n setDerivedtransform(delta);\n }\n }\n }\n\n if (index !== previousIndex.current) {\n previousIndex.current = index;\n }\n }, [disabled, index, node, rect]);\n useEffect(() => {\n if (derivedTransform) {\n setDerivedtransform(null);\n }\n }, [derivedTransform]);\n return derivedTransform;\n}\n\nfunction useSortable(_ref) {\n let {\n animateLayoutChanges = defaultAnimateLayoutChanges,\n attributes: userDefinedAttributes,\n disabled: localDisabled,\n data: customData,\n getNewIndex = defaultNewIndexGetter,\n id,\n strategy: localStrategy,\n resizeObserverConfig,\n transition = defaultTransition\n } = _ref;\n const {\n items,\n containerId,\n activeIndex,\n disabled: globalDisabled,\n disableTransforms,\n sortedRects,\n overIndex,\n useDragOverlay,\n strategy: globalStrategy\n } = useContext(Context);\n const disabled = normalizeLocalDisabled(localDisabled, globalDisabled);\n const index = items.indexOf(id);\n const data = useMemo(() => ({\n sortable: {\n containerId,\n index,\n items\n },\n ...customData\n }), [containerId, customData, index, items]);\n const itemsAfterCurrentSortable = useMemo(() => items.slice(items.indexOf(id)), [items, id]);\n const {\n rect,\n node,\n isOver,\n setNodeRef: setDroppableNodeRef\n } = useDroppable({\n id,\n data,\n disabled: disabled.droppable,\n resizeObserverConfig: {\n updateMeasurementsFor: itemsAfterCurrentSortable,\n ...resizeObserverConfig\n }\n });\n const {\n active,\n activatorEvent,\n activeNodeRect,\n attributes,\n setNodeRef: setDraggableNodeRef,\n listeners,\n isDragging,\n over,\n setActivatorNodeRef,\n transform\n } = useDraggable({\n id,\n data,\n attributes: { ...defaultAttributes,\n ...userDefinedAttributes\n },\n disabled: disabled.draggable\n });\n const setNodeRef = useCombinedRefs(setDroppableNodeRef, setDraggableNodeRef);\n const isSorting = Boolean(active);\n const displaceItem = isSorting && !disableTransforms && isValidIndex(activeIndex) && isValidIndex(overIndex);\n const shouldDisplaceDragSource = !useDragOverlay && isDragging;\n const dragSourceDisplacement = shouldDisplaceDragSource && displaceItem ? transform : null;\n const strategy = localStrategy != null ? localStrategy : globalStrategy;\n const finalTransform = displaceItem ? dragSourceDisplacement != null ? dragSourceDisplacement : strategy({\n rects: sortedRects,\n activeNodeRect,\n activeIndex,\n overIndex,\n index\n }) : null;\n const newIndex = isValidIndex(activeIndex) && isValidIndex(overIndex) ? getNewIndex({\n id,\n items,\n activeIndex,\n overIndex\n }) : index;\n const activeId = active == null ? void 0 : active.id;\n const previous = useRef({\n activeId,\n items,\n newIndex,\n containerId\n });\n const itemsHaveChanged = items !== previous.current.items;\n const shouldAnimateLayoutChanges = animateLayoutChanges({\n active,\n containerId,\n isDragging,\n isSorting,\n id,\n index,\n items,\n newIndex: previous.current.newIndex,\n previousItems: previous.current.items,\n previousContainerId: previous.current.containerId,\n transition,\n wasDragging: previous.current.activeId != null\n });\n const derivedTransform = useDerivedTransform({\n disabled: !shouldAnimateLayoutChanges,\n index,\n node,\n rect\n });\n useEffect(() => {\n if (isSorting && previous.current.newIndex !== newIndex) {\n previous.current.newIndex = newIndex;\n }\n\n if (containerId !== previous.current.containerId) {\n previous.current.containerId = containerId;\n }\n\n if (items !== previous.current.items) {\n previous.current.items = items;\n }\n }, [isSorting, newIndex, containerId, items]);\n useEffect(() => {\n if (activeId === previous.current.activeId) {\n return;\n }\n\n if (activeId != null && previous.current.activeId == null) {\n previous.current.activeId = activeId;\n return;\n }\n\n const timeoutId = setTimeout(() => {\n previous.current.activeId = activeId;\n }, 50);\n return () => clearTimeout(timeoutId);\n }, [activeId]);\n return {\n active,\n activeIndex,\n attributes,\n data,\n rect,\n index,\n newIndex,\n items,\n isOver,\n isSorting,\n isDragging,\n listeners,\n node,\n overIndex,\n over,\n setNodeRef,\n setActivatorNodeRef,\n setDroppableNodeRef,\n setDraggableNodeRef,\n transform: derivedTransform != null ? derivedTransform : finalTransform,\n transition: getTransition()\n };\n\n function getTransition() {\n if ( // Temporarily disable transitions for a single frame to set up derived transforms\n derivedTransform || // Or to prevent items jumping to back to their \"new\" position when items change\n itemsHaveChanged && previous.current.newIndex === index) {\n return disabledTransition;\n }\n\n if (shouldDisplaceDragSource && !isKeyboardEvent(activatorEvent) || !transition) {\n return undefined;\n }\n\n if (isSorting || shouldAnimateLayoutChanges) {\n return CSS.Transition.toString({ ...transition,\n property: transitionProperty\n });\n }\n\n return undefined;\n }\n}\n\nfunction normalizeLocalDisabled(localDisabled, globalDisabled) {\n var _localDisabled$dragga, _localDisabled$droppa;\n\n if (typeof localDisabled === 'boolean') {\n return {\n draggable: localDisabled,\n // Backwards compatibility\n droppable: false\n };\n }\n\n return {\n draggable: (_localDisabled$dragga = localDisabled == null ? void 0 : localDisabled.draggable) != null ? _localDisabled$dragga : globalDisabled.draggable,\n droppable: (_localDisabled$droppa = localDisabled == null ? void 0 : localDisabled.droppable) != null ? _localDisabled$droppa : globalDisabled.droppable\n };\n}\n\nfunction hasSortableData(entry) {\n if (!entry) {\n return false;\n }\n\n const data = entry.data.current;\n\n if (data && 'sortable' in data && typeof data.sortable === 'object' && 'containerId' in data.sortable && 'items' in data.sortable && 'index' in data.sortable) {\n return true;\n }\n\n return false;\n}\n\nconst directions = [KeyboardCode.Down, KeyboardCode.Right, KeyboardCode.Up, KeyboardCode.Left];\nconst sortableKeyboardCoordinates = (event, _ref) => {\n let {\n context: {\n active,\n collisionRect,\n droppableRects,\n droppableContainers,\n over,\n scrollableAncestors\n }\n } = _ref;\n\n if (directions.includes(event.code)) {\n event.preventDefault();\n\n if (!active || !collisionRect) {\n return;\n }\n\n const filteredContainers = [];\n droppableContainers.getEnabled().forEach(entry => {\n if (!entry || entry != null && entry.disabled) {\n return;\n }\n\n const rect = droppableRects.get(entry.id);\n\n if (!rect) {\n return;\n }\n\n switch (event.code) {\n case KeyboardCode.Down:\n if (collisionRect.top < rect.top) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case KeyboardCode.Up:\n if (collisionRect.top > rect.top) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case KeyboardCode.Left:\n if (collisionRect.left > rect.left) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case KeyboardCode.Right:\n if (collisionRect.left < rect.left) {\n filteredContainers.push(entry);\n }\n\n break;\n }\n });\n const collisions = closestCorners({\n active,\n collisionRect: collisionRect,\n droppableRects,\n droppableContainers: filteredContainers,\n pointerCoordinates: null\n });\n let closestId = getFirstCollision(collisions, 'id');\n\n if (closestId === (over == null ? void 0 : over.id) && collisions.length > 1) {\n closestId = collisions[1].id;\n }\n\n if (closestId != null) {\n const activeDroppable = droppableContainers.get(active.id);\n const newDroppable = droppableContainers.get(closestId);\n const newRect = newDroppable ? droppableRects.get(newDroppable.id) : null;\n const newNode = newDroppable == null ? void 0 : newDroppable.node.current;\n\n if (newNode && newRect && activeDroppable && newDroppable) {\n const newScrollAncestors = getScrollableAncestors(newNode);\n const hasDifferentScrollAncestors = newScrollAncestors.some((element, index) => scrollableAncestors[index] !== element);\n const hasSameContainer = isSameContainer(activeDroppable, newDroppable);\n const isAfterActive = isAfter(activeDroppable, newDroppable);\n const offset = hasDifferentScrollAncestors || !hasSameContainer ? {\n x: 0,\n y: 0\n } : {\n x: isAfterActive ? collisionRect.width - newRect.width : 0,\n y: isAfterActive ? collisionRect.height - newRect.height : 0\n };\n const rectCoordinates = {\n x: newRect.left,\n y: newRect.top\n };\n const newCoordinates = offset.x && offset.y ? rectCoordinates : subtract(rectCoordinates, offset);\n return newCoordinates;\n }\n }\n }\n\n return undefined;\n};\n\nfunction isSameContainer(a, b) {\n if (!hasSortableData(a) || !hasSortableData(b)) {\n return false;\n }\n\n return a.data.current.sortable.containerId === b.data.current.sortable.containerId;\n}\n\nfunction isAfter(a, b) {\n if (!hasSortableData(a) || !hasSortableData(b)) {\n return false;\n }\n\n if (!isSameContainer(a, b)) {\n return false;\n }\n\n return a.data.current.sortable.index < b.data.current.sortable.index;\n}\n\nexport { SortableContext, arrayMove, arraySwap, defaultAnimateLayoutChanges, defaultNewIndexGetter, hasSortableData, horizontalListSortingStrategy, rectSortingStrategy, rectSwappingStrategy, sortableKeyboardCoordinates, useSortable, verticalListSortingStrategy };\n//# sourceMappingURL=sortable.esm.js.map\n","import { jsx, jsxs, Fragment } from 'react/jsx-runtime';\nimport { useDndMonitor, DragOverlay, rectIntersection, useSensors, useSensor, PointerSensor, KeyboardSensor, DndContext, useDndContext, useDroppable } from '@dnd-kit/core';\nimport { useState, createContext, useContext, useEffect, useRef, useMemo, useCallback } from 'react';\nimport { s as styles, D as DndSortLine, a as Dnd } from './index-BzKcoArQ.js';\nimport cx from 'classnames';\nimport { B as ButtonCompound } from './ButtonCompound-DbOF1Uyo.js';\nimport { C as Card } from './Card-DukbBYaA.js';\nimport DragIndicator from '@servicetitan/hammer-icon/mdi/round/drag_indicator.svg';\nimport { I as Icon } from './Icon-DuwR7O2z.js';\nimport { useSortable, arrayMove, SortableContext, horizontalListSortingStrategy, verticalListSortingStrategy } from '@dnd-kit/sortable';\n\nimport './DndSort.css';const DEFAULT_CONTEXT_VALUE = {\n previewRenderer: () => null,\n setPreviewRenderer: () => () => null,\n onDrop: () => {\n return;\n }\n};\nconst DndSortContext = createContext(DEFAULT_CONTEXT_VALUE);\nfunction DndSortContextProvider({\n children,\n onDrop\n}) {\n const [previewRenderer, setPreviewRenderer] = useState(\n () => DEFAULT_CONTEXT_VALUE.previewRenderer\n );\n return /* @__PURE__ */ jsx(\n DndSortContext.Provider,\n {\n value: {\n previewRenderer,\n setPreviewRenderer,\n onDrop\n },\n children\n }\n );\n}\nconst useDndSortContext = () => {\n return useContext(DndSortContext);\n};\n\nconst WINDOW_PROPERTY_SORT_POSITION = \"react-hammer_DndSort_position\";\nfunction resolveDropZone(event) {\n const targetIsZone = event.over?.data.current?.isZone === true;\n const fallbackZone = event.collisions?.find(\n (collision) => collision?.data?.droppableContainer.data.current.isZone === true\n );\n const resolvedZone = targetIsZone ? event.over : fallbackZone?.data?.droppableContainer;\n return resolvedZone;\n}\nfunction calculateValidity({\n active,\n acceptedTypes,\n validator\n}) {\n if (!active) return true;\n const hasTypes = !!acceptedTypes;\n const isValidType = !hasTypes || // If there are no accepted types, everything is valid\n hasTypes && // If there are accepted types, check if the active item's type is included\n !!acceptedTypes?.includes(active.data.current?.type);\n const isValidCustom = validator?.(active.id) ?? true;\n return isValidType && isValidCustom;\n}\nfunction calculateZoneValidity({\n active,\n zone\n}) {\n return calculateValidity({\n active,\n acceptedTypes: zone?.data.current?.acceptedTypes,\n validator: zone?.data.current?.validator\n });\n}\nfunction calculateEventValidity(event) {\n return calculateZoneValidity({\n active: event.active,\n zone: resolveDropZone(event)\n });\n}\n\nfunction DndSortOverlay() {\n const [valid, setValid] = useState(true);\n const { previewRenderer } = useDndSortContext();\n useDndMonitor({\n onDragOver(event) {\n setValid(calculateEventValidity(event));\n }\n });\n useEffect(() => {\n previewRenderer({ valid });\n }, [previewRenderer, valid]);\n const classes = cx(styles[\"drag-preview\"], {\n [styles[\"can-be-dropped\"]]: valid\n });\n const preview = previewRenderer({ valid });\n if (!preview) {\n return null;\n }\n return /* @__PURE__ */ jsx(DragOverlay, { className: classes, children: previewRenderer({ valid }) });\n}\n\nconst announcements = {\n onDragStart: (event) => {\n let message = \"\";\n const { active } = event;\n message = `Dragging ${active.data.current?.label}.`;\n return message;\n },\n onDragOver: (event) => {\n const { active, over } = event;\n let message = \"\";\n let valid = true;\n if (active.id === over?.id) {\n message = `Dragging ${active.data.current?.label}.`;\n } else if (over?.data.current?.isZone) {\n message = `Dragging ${active.data.current?.label} over ${over?.data.current?.label}.`;\n valid = calculateZoneValidity({\n active,\n zone: over\n });\n } else {\n if (!over?.data.current?.zone) {\n message = `Dragging ${active.data.current?.label} over ${over?.data.current?.label} outside of any drop zone.`;\n } else {\n valid = calculateValidity({\n active,\n acceptedTypes: over?.data.current?.zone?.acceptedTypes,\n validator: over?.data.current?.zone?.validator\n });\n if (over.data.current.zone.sortable) {\n message = `Dragging ${active.data.current?.label} over ${over?.data.current?.label} within ${over?.data.current?.zone.label}.`;\n } else {\n message = `Dragging ${active.data.current?.label} over ${over?.data.current?.zone.label}.`;\n }\n }\n }\n if (!valid) message += ` This is an invalid zone.`;\n return message;\n },\n onDragEnd: (event) => {\n let message = \"\";\n let valid = true;\n const { active, over } = event;\n if (active.id === over?.id) {\n message = `Dropped ${active.data.current?.label} in the same position.`;\n } else if (over?.data.current?.isZone) {\n valid = calculateZoneValidity({\n active,\n zone: over\n });\n if (over?.data.current?.sortable) {\n if (over.id === active.data.current?.zone?.id) {\n message = `Dropped ${active.data.current?.label} in the same position.`;\n } else {\n message = `Dropped ${active.data.current?.label} at the ${over.data.current.defaultDropPosition} of ${over?.data.current?.label}.`;\n }\n } else {\n message = `Dropped ${active.data.current?.label} into ${over?.data.current?.label}.`;\n }\n } else {\n if (!over?.data.current?.zone) {\n message = `Dropped ${active.data.current?.label} into ${over?.data.current?.label} outside of any drop zone.`;\n } else {\n valid = calculateValidity({\n active,\n acceptedTypes: over?.data.current?.zone?.acceptedTypes,\n validator: over?.data.current?.zone?.validator\n });\n if (over.data.current.zone.sortable) {\n message = `Dropped ${active.data.current?.label} onto ${over?.data.current?.label} within ${over?.data.current?.zone.label}.`;\n } else {\n message = `Dropped ${active.data.current?.label} into ${over?.data.current?.zone.label}.`;\n }\n }\n }\n if (!valid) message += ` This was an invalid zone.`;\n return message;\n },\n onDragCancel: (event) => {\n const { active } = event;\n return `Cancelled dragging ${active.data.current?.label}.`;\n }\n};\n\nconst collisionDetection = (args) => {\n if (args.pointerCoordinates !== null) {\n return rectIntersection(args);\n }\n const { droppableContainers } = args;\n const matchedDroppable = droppableContainers.find(\n (container) => container.id === (window[WINDOW_PROPERTY_SORT_POSITION] ?? args.active.id)\n );\n if (matchedDroppable)\n return getCollisions(matchedDroppable, droppableContainers);\n return [];\n};\nconst getCollisions = (currentDroppable, allDroppables) => {\n const collisions = [];\n collisions.push({\n id: currentDroppable.id,\n data: { droppableContainer: currentDroppable, value: 1 }\n });\n const currentZoneId = currentDroppable.data.current?.zone?.id;\n const currentZone = allDroppables.find(\n (container) => container.id === currentZoneId\n );\n if (currentZone) {\n collisions.push({\n id: currentZone.id,\n data: {\n droppableContainer: currentZone,\n value: 1\n }\n });\n }\n return collisions;\n};\n\nconst arrowKeys = [\"ArrowRight\", \"ArrowLeft\", \"ArrowDown\", \"ArrowUp\"];\nconst getNextCoordinates = (event, args) => {\n if (!arrowKeys.includes(event.code)) {\n return void 0;\n }\n if (!args.context.droppableContainers.get(window[WINDOW_PROPERTY_SORT_POSITION])) {\n window[WINDOW_PROPERTY_SORT_POSITION] = void 0;\n }\n const zones = args.context.droppableContainers.values().filter((value) => value.data.current?.isZone).toArray();\n const order = {\n zoneOrder: [],\n zones: {},\n looseItems: []\n };\n order.zoneOrder = zones.map((zone) => {\n order.zones[zone.id] = zone.data.current?.sortedIds ?? [];\n return zone.id;\n });\n order.looseItems = args.context.droppableContainers.values().filter((item) => !item.data.current?.isZone && !item.data.current?.zone).map((item) => item.id).toArray();\n const currentPositionDroppable = getDroppableOfId(\n window[WINDOW_PROPERTY_SORT_POSITION] ?? args.active,\n // current position ID or initial position ID\n args.context\n );\n if (!currentPositionDroppable) return void 0;\n const currentZoneId = getZoneIdOfDroppable(currentPositionDroppable);\n if (event.code === \"ArrowLeft\" || event.code === \"ArrowRight\") {\n const newPositionId = event.code === \"ArrowRight\" ? getNextZoneIdFromZoneId(currentZoneId, order) : getPreviousZoneIdFromZoneId(currentZoneId, order);\n if (!newPositionId) return void 0;\n const newZone = getDroppableOfId(newPositionId, args.context);\n if (!newZone) return void 0;\n window[WINDOW_PROPERTY_SORT_POSITION] = newPositionId;\n return getCoordsFromZone(newZone, args.context.active);\n }\n if (event.code === \"ArrowDown\" || event.code === \"ArrowUp\") {\n const currentZone = getDroppableOfId(currentZoneId, args.context);\n if (!currentZone || !currentZone.data.current?.sortable) return void 0;\n if (currentPositionDroppable.data.current?.isZone) {\n const zoneItems = currentZone.data.current?.sortedIds ?? [];\n const newPositionId = event.code === \"ArrowDown\" ? zoneItems[0] : zoneItems[zoneItems.length - 1];\n const newPosition = getDroppableOfId(newPositionId, args.context);\n if (!newPosition) return void 0;\n window[WINDOW_PROPERTY_SORT_POSITION] = newPositionId;\n return getCoordsFromItem(newPosition);\n } else {\n const currentItemId = currentPositionDroppable.id;\n const newPositionId = event.code === \"ArrowDown\" ? getNextItemId(currentItemId, order, args.active) : getPreviousItemId(currentItemId, order, args.active);\n if (!newPositionId) {\n window[WINDOW_PROPERTY_SORT_POSITION] = currentZoneId;\n return getCoordsFromZone(currentZone, args.context.active);\n }\n const newPosition = getDroppableOfId(newPositionId, args.context);\n if (!newPosition) return void 0;\n window[WINDOW_PROPERTY_SORT_POSITION] = newPositionId;\n return getCoordsFromItem(newPosition);\n }\n }\n return void 0;\n};\nconst getNextItemId = (id, order, active) => {\n if (order.looseItems.includes(id)) {\n return null;\n }\n const zoneId = order.zoneOrder.find(\n (zoneId2) => order.zones[zoneId2].includes(id)\n );\n if (!zoneId) return null;\n const zoneItems = order.zones[zoneId];\n const currentIndex = zoneItems.indexOf(id);\n const nextId = zoneItems[currentIndex + 1];\n if (nextId) {\n return nextId;\n }\n if (zoneItems.includes(active)) {\n return zoneItems[0];\n }\n return null;\n};\nconst getPreviousItemId = (id, order, active) => {\n if (order.looseItems.includes(id)) {\n return null;\n }\n const zoneId = order.zoneOrder.find(\n (zoneId2) => order.zones[zoneId2].includes(id)\n );\n if (!zoneId) return null;\n const zoneItems = order.zones[zoneId];\n const currentIndex = zoneItems.indexOf(id);\n const previousIndex = currentIndex - 1;\n const previousId = zoneItems[previousIndex];\n if (previousId) {\n return previousId;\n }\n if (zoneItems.includes(active)) {\n return zoneItems[zoneItems.length - 1];\n }\n return null;\n};\nconst getDroppableOfId = (id, context) => {\n const droppable = context.droppableContainers.get(id);\n if (!droppable) {\n return null;\n }\n return droppable;\n};\nconst getZoneIdOfDroppable = (droppable) => {\n if (droppable.data.current?.isZone) {\n return droppable.id;\n }\n if (droppable.data.current?.zone) {\n return droppable.data.current?.zone.id;\n }\n return droppable.id;\n};\nconst getNextZoneIdFromZoneId = (zoneId, order) => {\n const currentIndex = order.zoneOrder.indexOf(zoneId);\n const nextIndex = (currentIndex + 1) % order.zoneOrder.length;\n const nextId = order.zoneOrder[nextIndex];\n return nextId;\n};\nconst getPreviousZoneIdFromZoneId = (zoneId, order) => {\n const currentIndex = order.zoneOrder.indexOf(zoneId);\n const previousIndex = currentIndex === 0 ? order.zoneOrder.length - 1 : currentIndex - 1;\n const previousId = order.zoneOrder[previousIndex];\n return previousId;\n};\nfunction getCoordsFromItem(item) {\n if (!item.rect.current) return;\n return {\n x: item.rect.current.left,\n y: item.rect.current.top\n };\n}\nfunction getCoordsFromZone(zone, active) {\n if (zone.id === active?.data.current?.zone?.id) {\n return {\n x: active.rect.current.initial?.left ?? 0,\n y: active.rect.current.initial?.top ?? 0\n };\n }\n const zoneRight = zone.rect.current?.right ?? 0;\n const zoneBottom = zone.rect.current?.bottom ?? 0;\n const zoneLeft = zone.rect.current?.left ?? 0;\n const zoneTop = zone.rect.current?.top ?? 0;\n const zoneWidth = zone.rect.current?.width ?? 0;\n const zoneHeight = zone.rect.current?.height ?? 0;\n const zoneCenterX = zoneLeft + zoneWidth / 2;\n const zoneCenterY = zoneTop + zoneHeight / 2;\n const activeWidth = active?.rect.current?.initial?.width ?? 0;\n const activeHeight = active?.rect.current?.initial?.height ?? 0;\n const activeHalfWidth = activeWidth / 2;\n const activeHalfHeight = activeHeight / 2;\n if (!zone.data.current?.sortable || !zone.data.current?.sortedIds?.length) {\n return {\n x: zoneCenterX - activeHalfWidth,\n y: zoneCenterY - activeHalfHeight\n };\n }\n const dropPosition = zone.data.current?.defaultDropPosition;\n const orientation = zone.data.current?.orientation;\n if (dropPosition === \"end\" && orientation === \"horizontal\") {\n return {\n x: zoneRight - activeHalfWidth,\n y: zoneCenterY - activeHalfHeight\n };\n }\n if (dropPosition === \"end\" && orientation === \"vertical\") {\n return {\n x: zoneCenterX - activeHalfWidth,\n y: zoneBottom - activeHalfHeight\n };\n }\n if (dropPosition === \"start\" && orientation === \"horizontal\") {\n return {\n x: zoneLeft - activeHalfWidth,\n y: zoneCenterY - activeHalfHeight\n };\n }\n if (dropPosition === \"start\" && orientation === \"vertical\") {\n return {\n x: zoneCenterX - activeHalfWidth,\n y: zoneTop - activeHalfHeight\n };\n }\n}\n\nfunction DndSort$1({\n children,\n onDrop = () => {\n return;\n }\n}) {\n const sensors = useSensors(\n useSensor(PointerSensor),\n // Pointer covers both mouse and touch\n useSensor(KeyboardSensor, {\n coordinateGetter: getNextCoordinates\n })\n );\n return /* @__PURE__ */ jsx(\n DndContext,\n {\n accessibility: { announcements },\n collisionDetection,\n sensors,\n children: /* @__PURE__ */ jsxs(DndSortContextProvider, { onDrop, children: [\n children,\n /* @__PURE__ */ jsx(DndSortOverlay, {})\n ] })\n }\n );\n}\n\nconst ghost = \"_ghost_18e23_27\";\nconst cardDraggableStyles = {\n\t\"draggable-card-button\": \"_draggable-card-button_18e23_4\",\n\t\"draggable-card\": \"_draggable-card_18e23_4\",\n\t\"drag-indicator-button\": \"_drag-indicator-button_18e23_15\",\n\t\"drag-indicator-icon\": \"_drag-indicator-icon_18e23_16\",\n\tghost: ghost\n};\n\nconst DndSortZoneContext = createContext(null);\nfunction DndSortZoneContextProvider(props) {\n return /* @__PURE__ */ jsx(DndSortZoneContext.Provider, { value: props, children: props?.children });\n}\nconst useDndSortZoneContext = () => {\n return useContext(DndSortZoneContext);\n};\n\nfunction DndSortItem({\n children: childrenFn,\n id,\n label,\n onDrop: onDropProp,\n type\n}) {\n const { onDrop } = useDndSortContext();\n const zone = useDndSortZoneContext();\n const zoneId = zone?.id || \"\";\n const sortable = zone?.sortable || false;\n const orientation = zone?.orientation || \"vertical\";\n const defaultDropPosition = zone?.defaultDropPosition || \"end\";\n const {\n attributes,\n listeners,\n setNodeRef,\n setActivatorNodeRef,\n transition,\n active,\n items,\n activeIndex,\n newIndex,\n index,\n isOver,\n over\n } = useSortable({\n id,\n data: {\n label,\n type,\n zone\n }\n });\n useDndMonitor({\n onDragStart() {\n window[WINDOW_PROPERTY_SORT_POSITION] = void 0;\n },\n onDragEnd(event) {\n if (active?.id !== id) {\n return;\n }\n const newZone = resolveDropZone(event);\n const newZoneItems = newZone?.data.current?.sortedIds || [];\n const newZoneDefaultDrop = newZone?.data.current?.defaultDropPosition;\n let zoneSort = null;\n if (newZone && newZone.data.current?.sortable) {\n if (newZone.id === zoneId) {\n zoneSort = arrayMove(newZoneItems, activeIndex, newIndex);\n } else if (!event.over?.data.current?.isZone) {\n const droppedOnIndex = event.over?.data.current?.sortable.index;\n if (newZoneDefaultDrop === \"start\") {\n zoneSort = newZoneItems.toSpliced(droppedOnIndex + 1, 0, id);\n } else {\n zoneSort = newZoneItems.toSpliced(droppedOnIndex, 0, id);\n }\n } else if (newZoneDefaultDrop === \"start\") {\n zoneSort = [id].concat(newZoneItems);\n } else {\n zoneSort = newZoneItems.concat(id);\n }\n }\n const dropEvent = {\n draggableId: event.active.id,\n zoneId: newZone?.id || null,\n previousZoneId: event.active.data.current?.zone?.id || null,\n valid: calculateZoneValidity({ active: event.active, zone: newZone }),\n previousZoneSort: sortable ? newZone?.id === zoneId ? zoneSort : items.filter((i) => i !== id) : null,\n zoneSort\n };\n onDrop(dropEvent);\n onDropProp?.(dropEvent);\n }\n });\n const internalRef = useRef();\n const style = {\n transition\n };\n const refCallback = (node) => {\n internalRef.current = node;\n setNodeRef(node);\n };\n const children = childrenFn({\n setNodeRef: refCallback,\n setActivatorNodeRef,\n attributes,\n listeners,\n style\n });\n const line = useMemo(() => {\n const isActiveInSameZone = active?.data.current?.zone?.id === zoneId;\n const isFirst = index === 0;\n const isLast = items.length - 1 === index;\n const isSortingWithinZone = sortable && isOver && index !== activeIndex && isActiveInSameZone;\n const isSortingFromOutsideZone = sortable && isOver && !isActiveInSameZone;\n const isSortingDefault = sortable && over?.data.current?.isZone === true && !isActiveInSameZone && (isFirst && defaultDropPosition === \"start\" || isLast && defaultDropPosition === \"end\");\n const show = isSortingWithinZone || isSortingFromOutsideZone || isSortingDefault;\n let position = \"after\";\n if (isSortingWithinZone) {\n position = newIndex > index ? \"before\" : \"after\";\n } else if (isSortingFromOutsideZone) {\n position = defaultDropPosition === \"start\" ? \"after\" : \"before\";\n } else if (isSortingDefault) {\n position = defaultDropPosition === \"start\" ? \"before\" : \"after\";\n }\n return { show, position };\n }, [\n active?.data,\n activeIndex,\n defaultDropPosition,\n index,\n isOver,\n items.length,\n newIndex,\n over?.data,\n sortable,\n zoneId\n ]);\n return /* @__PURE__ */ jsxs(\n \"div\",\n {\n style: {\n position: \"relative\"\n },\n children: [\n line.show && /* @__PURE__ */ jsx(DndSortLine, { orientation, position: line.position }),\n children\n ]\n }\n );\n}\n\nfunction DndSortCard({\n children,\n dragOnlyWithHandle = false,\n id,\n label,\n onDrop,\n type,\n previewRenderer: previewRendererProp,\n ...rest\n}) {\n const { active } = useDndContext();\n const { setPreviewRenderer } = useDndSortContext();\n const isActive = active?.id === id;\n const buttonClasses = cx(cardDraggableStyles[\"draggable-card-button\"], {\n [cardDraggableStyles[\"ghost\"]]: isActive\n });\n const handleButtonClasses = cx(\n cardDraggableStyles[\"drag-indicator-button\"],\n cardDraggableStyles[\"drag-indicator-icon\"],\n {\n [cardDraggableStyles[\"ghost\"]]: isActive\n }\n );\n const cardClasses = cx(\n rest.className,\n cardDraggableStyles[\"draggable-card\"],\n {\n [cardDraggableStyles[\"ghost\"]]: isActive\n }\n );\n const previewRenderer = useCallback(() => {\n return /* @__PURE__ */ jsx(DndSortCardPreview, { children });\n }, [children]);\n useEffect(() => {\n if (active?.id === id) {\n setPreviewRenderer(() => previewRendererProp ?? previewRenderer);\n }\n }, [active, id, previewRenderer, previewRendererProp, setPreviewRenderer]);\n if (dragOnlyWithHandle) {\n return /* @__PURE__ */ jsx(\n DndSortItem,\n {\n id,\n label,\n onDrop,\n type,\n \"data-testid\": `draggable-${id}`,\n children: ({\n setActivatorNodeRef,\n setNodeRef,\n attributes,\n listeners,\n style\n }) => /* @__PURE__ */ jsxs(\n Card,\n {\n ref: setNodeRef,\n ...rest,\n \"data-anv\": \"draggable-card\",\n \"data-testid\": `drag-and-drop-draggable-${id}`,\n className: cardClasses,\n children: [\n /* @__PURE__ */ jsx(\n ButtonCompound,\n {\n ref: setActivatorNodeRef,\n ...attributes,\n ...listeners,\n style,\n className: handleButtonClasses,\n type: \"button\",\n shape: \"rounded\",\n children: /* @__PURE__ */ jsx(Icon, { svg: DragIndicator, role: \"presentation\" })\n }\n ),\n children\n ]\n }\n )\n }\n );\n }\n return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(DndSortItem, { id, label, onDrop, type, children: ({ setNodeRef, attributes, listeners, style }) => /* @__PURE__ */ jsx(\n ButtonCompound,\n {\n ref: setNodeRef,\n ...attributes,\n ...listeners,\n style,\n className: buttonClasses,\n type: \"button\",\n shape: \"rounded\",\n \"data-testid\": `drag-and-drop-draggable-${id}`,\n children: /* @__PURE__ */ jsxs(Card, { ...rest, \"data-anv\": \"draggable-card\", className: cardClasses, children: [\n /* @__PURE__ */ jsx(\n Icon,\n {\n svg: DragIndicator,\n className: cardDraggableStyles[\"drag-indicator-icon\"],\n role: \"presentation\"\n }\n ),\n children\n ] })\n }\n ) }) });\n}\nconst DndSortCardPreview = ({ children }) => {\n const cardClasses = cx(cardDraggableStyles[\"draggable-card\"]);\n return /* @__PURE__ */ jsxs(\n Card,\n {\n \"data-anv\": \"draggable-card\",\n className: cardClasses,\n \"data-testid\": \"drag-and-drop-overlay\",\n children: [\n /* @__PURE__ */ jsx(\n Icon,\n {\n svg: DragIndicator,\n className: cardDraggableStyles[\"drag-indicator-icon\"],\n role: \"presentation\"\n }\n ),\n children\n ]\n }\n );\n};\n\nfunction DndSortZone(props) {\n const {\n acceptedTypes,\n children,\n defaultDropPosition,\n gap,\n id,\n label,\n orientation,\n advancedRenderer,\n sortedIds,\n sortable,\n validator,\n ...rest\n } = {\n defaultDropPosition: \"end\",\n gap: \"4\",\n sortable: false,\n sortedIds: [],\n ...props\n };\n const [previouslyDragging, setPreviouslyDragging] = useState(false);\n const { setNodeRef, isOver, active, over } = useDroppable({\n id,\n data: {\n acceptedTypes,\n defaultDropPosition,\n label,\n orientation,\n sortedIds,\n sortable,\n validator,\n isZone: true\n }\n });\n const isDragging = !!active;\n const isOverThis = !!isOver || over?.data.current?.zone?.id === id;\n const isValid = useMemo(\n () => calculateValidity({\n active,\n acceptedTypes,\n validator\n }),\n [acceptedTypes, active, validator]\n );\n const advancedRender = useMemo(() => {\n if (!previouslyDragging && isDragging) {\n setPreviouslyDragging(true);\n return props?.advancedRenderer?.({\n isDragging: false,\n isOver: false,\n isValid: true\n });\n } else {\n if (previouslyDragging && !isDragging) {\n setPreviouslyDragging(false);\n }\n return props?.advancedRenderer?.({\n isDragging,\n isOver: isOverThis,\n isValid\n });\n }\n }, [isDragging, isOverThis, isValid, props, previouslyDragging]);\n const shared = /* @__PURE__ */ jsx(\n Dnd.Zone,\n {\n ref: setNodeRef,\n ...rest,\n gap,\n id,\n orientation,\n isDragging: !!active,\n isOver: isOverThis,\n isValid,\n children: /* @__PURE__ */ jsx(DndSortZoneContextProvider, { sortable, ...props, children: advancedRender || children })\n }\n );\n return sortable ? /* @__PURE__ */ jsx(\n SortableContext,\n {\n id: `sort-${id}`,\n items: sortedIds.map((id2) => ({ id: id2 })),\n strategy: orientation === \"horizontal\" ? horizontalListSortingStrategy : verticalListSortingStrategy,\n children: shared\n }\n ) : shared;\n}\n\nconst DndSort = Object.assign(DndSort$1, {\n Card: DndSortCard,\n Zone: DndSortZone\n});\n\nexport { DndSort, DndSortCard, DndSortZone };\n//# sourceMappingURL=DndSort.js.map\n"],"names":["React","ID_PREFIX","ID_PREFIX$1","defaultTransition","DragIndicator"],"mappings":"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","x_google_ignoreList":[0,1,2,5]}
|
|
1
|
+
{"version":3,"file":"DndSort.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|