@yoopta/ui 6.0.0-beta.13 → 6.0.0-beta.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/action-menu-list.js +1 -1
  2. package/dist/action-menu-list.js.map +1 -0
  3. package/dist/block-dnd.js.map +1 -0
  4. package/dist/block-options.js +1 -1
  5. package/dist/block-options.js.map +1 -0
  6. package/dist/chunks/_tslib-8f8de673.js +36 -0
  7. package/dist/chunks/_tslib-8f8de673.js.map +1 -0
  8. package/dist/chunks/floating-ui.react-b048728e.js +5 -0
  9. package/dist/chunks/floating-ui.react-d2303b03.js +4506 -0
  10. package/dist/chunks/floating-ui.react-d2303b03.js.map +1 -0
  11. package/dist/chunks/floating-ui.react-feaab622.js +4506 -0
  12. package/dist/chunks/floating-ui.react-feaab622.js.map +1 -0
  13. package/dist/chunks/highlight-color-picker-027fa4b4.js +93 -0
  14. package/dist/chunks/highlight-color-picker-027fa4b4.js.map +1 -0
  15. package/dist/chunks/highlight-color-picker-a1a292a9.js +1 -0
  16. package/dist/chunks/highlight-color-picker-a979e7a3.js +93 -0
  17. package/dist/chunks/highlight-color-picker-a979e7a3.js.map +1 -0
  18. package/dist/chunks/index-bfd2e7c4.js +6 -0
  19. package/dist/chunks/index-bfd2e7c4.js.map +1 -0
  20. package/dist/chunks/style-inject.es-746bb8ed.js +29 -0
  21. package/dist/chunks/style-inject.es-746bb8ed.js.map +1 -0
  22. package/dist/chunks/throttle-278836f4.js +45 -0
  23. package/dist/chunks/throttle-278836f4.js.map +1 -0
  24. package/dist/element-options.js +1 -1
  25. package/dist/element-options.js.map +1 -0
  26. package/dist/floating-block-actions.js.map +1 -0
  27. package/dist/floating-toolbar/floating-toolbar.d.ts.map +1 -1
  28. package/dist/floating-toolbar.js +1 -1
  29. package/dist/floating-toolbar.js.map +1 -0
  30. package/dist/highlight-color-picker.js +1 -1
  31. package/dist/highlight-color-picker.js.map +1 -0
  32. package/dist/index.js +1 -1
  33. package/dist/index.js.map +1 -0
  34. package/dist/overlay.js +1 -1
  35. package/dist/overlay.js.map +1 -0
  36. package/dist/portal/Portal.d.ts.map +1 -1
  37. package/dist/portal.js +1 -1
  38. package/dist/portal.js.map +1 -0
  39. package/dist/selection-box.js.map +1 -0
  40. package/dist/slash-command-menu.js +1 -1
  41. package/dist/slash-command-menu.js.map +1 -0
  42. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-dnd.js","sources":["../../../../node_modules/@dnd-kit/utilities/src/hooks/useCombinedRefs.ts","../../../../node_modules/@dnd-kit/utilities/src/execution-context/canUseDOM.ts","../../../../node_modules/@dnd-kit/utilities/src/type-guards/isWindow.ts","../../../../node_modules/@dnd-kit/utilities/src/type-guards/isNode.ts","../../../../node_modules/@dnd-kit/utilities/src/execution-context/getWindow.ts","../../../../node_modules/@dnd-kit/utilities/src/type-guards/isDocument.ts","../../../../node_modules/@dnd-kit/utilities/src/type-guards/isHTMLElement.ts","../../../../node_modules/@dnd-kit/utilities/src/type-guards/isSVGElement.ts","../../../../node_modules/@dnd-kit/utilities/src/execution-context/getOwnerDocument.ts","../../../../node_modules/@dnd-kit/utilities/src/hooks/useIsomorphicLayoutEffect.ts","../../../../node_modules/@dnd-kit/utilities/src/hooks/useEvent.ts","../../../../node_modules/@dnd-kit/utilities/src/hooks/useInterval.ts","../../../../node_modules/@dnd-kit/utilities/src/hooks/useLatestValue.ts","../../../../node_modules/@dnd-kit/utilities/src/hooks/useLazyMemo.ts","../../../../node_modules/@dnd-kit/utilities/src/hooks/useNodeRef.ts","../../../../node_modules/@dnd-kit/utilities/src/hooks/usePrevious.ts","../../../../node_modules/@dnd-kit/utilities/src/hooks/useUniqueId.ts","../../../../node_modules/@dnd-kit/utilities/src/adjustment.ts","../../../../node_modules/@dnd-kit/utilities/src/event/hasViewportRelativeCoordinates.ts","../../../../node_modules/@dnd-kit/utilities/src/event/isKeyboardEvent.ts","../../../../node_modules/@dnd-kit/utilities/src/event/isTouchEvent.ts","../../../../node_modules/@dnd-kit/utilities/src/coordinates/getEventCoordinates.ts","../../../../node_modules/@dnd-kit/utilities/src/css.ts","../../../../node_modules/@dnd-kit/utilities/src/focus/findFirstFocusableNode.ts","../../../../node_modules/@dnd-kit/accessibility/src/components/HiddenText/HiddenText.tsx","../../../../node_modules/@dnd-kit/accessibility/src/components/LiveRegion/LiveRegion.tsx","../../../../node_modules/@dnd-kit/accessibility/src/hooks/useAnnouncement.ts","../../../../node_modules/@dnd-kit/core/src/components/DndMonitor/context.ts","../../../../node_modules/@dnd-kit/core/src/components/DndMonitor/useDndMonitor.ts","../../../../node_modules/@dnd-kit/core/src/components/DndMonitor/useDndMonitorProvider.tsx","../../../../node_modules/@dnd-kit/core/src/components/Accessibility/defaults.ts","../../../../node_modules/@dnd-kit/core/src/components/Accessibility/Accessibility.tsx","../../../../node_modules/@dnd-kit/core/src/store/actions.ts","../../../../node_modules/@dnd-kit/core/src/utilities/other/noop.ts","../../../../node_modules/@dnd-kit/core/src/sensors/useSensor.ts","../../../../node_modules/@dnd-kit/core/src/sensors/useSensors.ts","../../../../node_modules/@dnd-kit/core/src/utilities/coordinates/constants.ts","../../../../node_modules/@dnd-kit/core/src/utilities/coordinates/distanceBetweenPoints.ts","../../../../node_modules/@dnd-kit/core/src/utilities/coordinates/getRelativeTransformOrigin.ts","../../../../node_modules/@dnd-kit/core/src/utilities/algorithms/helpers.ts","../../../../node_modules/@dnd-kit/core/src/utilities/algorithms/closestCenter.ts","../../../../node_modules/@dnd-kit/core/src/utilities/algorithms/closestCorners.ts","../../../../node_modules/@dnd-kit/core/src/utilities/algorithms/rectIntersection.ts","../../../../node_modules/@dnd-kit/core/src/utilities/rect/adjustScale.ts","../../../../node_modules/@dnd-kit/core/src/utilities/rect/getRectDelta.ts","../../../../node_modules/@dnd-kit/core/src/utilities/rect/rectAdjustment.ts","../../../../node_modules/@dnd-kit/core/src/utilities/transform/parseTransform.ts","../../../../node_modules/@dnd-kit/core/src/utilities/transform/inverseTransform.ts","../../../../node_modules/@dnd-kit/core/src/utilities/rect/getRect.ts","../../../../node_modules/@dnd-kit/core/src/utilities/rect/getWindowClientRect.ts","../../../../node_modules/@dnd-kit/core/src/utilities/scroll/isFixed.ts","../../../../node_modules/@dnd-kit/core/src/utilities/scroll/isScrollable.ts","../../../../node_modules/@dnd-kit/core/src/utilities/scroll/getScrollableAncestors.ts","../../../../node_modules/@dnd-kit/core/src/utilities/scroll/getScrollableElement.ts","../../../../node_modules/@dnd-kit/core/src/utilities/scroll/getScrollCoordinates.ts","../../../../node_modules/@dnd-kit/core/src/types/direction.ts","../../../../node_modules/@dnd-kit/core/src/utilities/scroll/documentScrollingElement.ts","../../../../node_modules/@dnd-kit/core/src/utilities/scroll/getScrollPosition.ts","../../../../node_modules/@dnd-kit/core/src/utilities/scroll/getScrollDirectionAndSpeed.ts","../../../../node_modules/@dnd-kit/core/src/utilities/scroll/getScrollElementRect.ts","../../../../node_modules/@dnd-kit/core/src/utilities/scroll/getScrollOffsets.ts","../../../../node_modules/@dnd-kit/core/src/utilities/scroll/scrollIntoViewIfNeeded.ts","../../../../node_modules/@dnd-kit/core/src/utilities/rect/Rect.ts","../../../../node_modules/@dnd-kit/core/src/sensors/utilities/Listeners.ts","../../../../node_modules/@dnd-kit/core/src/sensors/utilities/getEventListenerTarget.ts","../../../../node_modules/@dnd-kit/core/src/sensors/utilities/hasExceededDistance.ts","../../../../node_modules/@dnd-kit/core/src/sensors/events.ts","../../../../node_modules/@dnd-kit/core/src/sensors/keyboard/types.ts","../../../../node_modules/@dnd-kit/core/src/sensors/keyboard/defaults.ts","../../../../node_modules/@dnd-kit/core/src/sensors/keyboard/KeyboardSensor.ts","../../../../node_modules/@dnd-kit/core/src/sensors/pointer/AbstractPointerSensor.ts","../../../../node_modules/@dnd-kit/core/src/sensors/pointer/PointerSensor.ts","../../../../node_modules/@dnd-kit/core/src/sensors/mouse/MouseSensor.ts","../../../../node_modules/@dnd-kit/core/src/sensors/touch/TouchSensor.ts","../../../../node_modules/@dnd-kit/core/src/hooks/utilities/useAutoScroller.ts","../../../../node_modules/@dnd-kit/core/src/hooks/utilities/useCachedNode.ts","../../../../node_modules/@dnd-kit/core/src/hooks/utilities/useCombineActivators.ts","../../../../node_modules/@dnd-kit/core/src/hooks/utilities/useDroppableMeasuring.ts","../../../../node_modules/@dnd-kit/core/src/hooks/utilities/useInitialValue.ts","../../../../node_modules/@dnd-kit/core/src/hooks/utilities/useInitialRect.ts","../../../../node_modules/@dnd-kit/core/src/hooks/utilities/useMutationObserver.ts","../../../../node_modules/@dnd-kit/core/src/hooks/utilities/useResizeObserver.ts","../../../../node_modules/@dnd-kit/core/src/hooks/utilities/useRect.ts","../../../../node_modules/@dnd-kit/core/src/hooks/utilities/useRectDelta.ts","../../../../node_modules/@dnd-kit/core/src/hooks/utilities/useScrollableAncestors.ts","../../../../node_modules/@dnd-kit/core/src/hooks/utilities/useScrollOffsets.ts","../../../../node_modules/@dnd-kit/core/src/hooks/utilities/useScrollOffsetsDelta.ts","../../../../node_modules/@dnd-kit/core/src/hooks/utilities/useSensorSetup.ts","../../../../node_modules/@dnd-kit/core/src/hooks/utilities/useSyntheticListeners.ts","../../../../node_modules/@dnd-kit/core/src/hooks/utilities/useWindowRect.ts","../../../../node_modules/@dnd-kit/core/src/hooks/utilities/useRects.ts","../../../../node_modules/@dnd-kit/core/src/utilities/nodes/getMeasurableNode.ts","../../../../node_modules/@dnd-kit/core/src/hooks/utilities/useDragOverlayMeasuring.ts","../../../../node_modules/@dnd-kit/core/src/components/DndContext/defaults.ts","../../../../node_modules/@dnd-kit/core/src/store/constructors.ts","../../../../node_modules/@dnd-kit/core/src/store/context.ts","../../../../node_modules/@dnd-kit/core/src/store/reducer.ts","../../../../node_modules/@dnd-kit/core/src/components/Accessibility/components/RestoreFocus.tsx","../../../../node_modules/@dnd-kit/core/src/modifiers/applyModifiers.ts","../../../../node_modules/@dnd-kit/core/src/components/DndContext/hooks/useMeasuringConfiguration.ts","../../../../node_modules/@dnd-kit/core/src/components/DndContext/hooks/useLayoutShiftScrollCompensation.ts","../../../../node_modules/@dnd-kit/core/src/components/DndContext/DndContext.tsx","../../../../node_modules/@dnd-kit/core/src/hooks/useDraggable.ts","../../../../node_modules/@dnd-kit/core/src/hooks/useDndContext.ts","../../../../node_modules/@dnd-kit/core/src/hooks/useDroppable.ts","../../../../node_modules/@dnd-kit/core/src/components/DragOverlay/components/AnimationManager/AnimationManager.tsx","../../../../node_modules/@dnd-kit/core/src/components/DragOverlay/components/NullifiedContextProvider/NullifiedContextProvider.tsx","../../../../node_modules/@dnd-kit/core/src/components/DragOverlay/components/PositionedOverlay/PositionedOverlay.tsx","../../../../node_modules/@dnd-kit/core/src/components/DragOverlay/hooks/useDropAnimation.ts","../../../../node_modules/@dnd-kit/core/src/components/DragOverlay/hooks/useKey.ts","../../../../node_modules/@dnd-kit/core/src/components/DragOverlay/DragOverlay.tsx","../../../../node_modules/@dnd-kit/sortable/src/utilities/arrayMove.ts","../../../../node_modules/@dnd-kit/sortable/src/utilities/getSortedRects.ts","../../../../node_modules/@dnd-kit/sortable/src/utilities/isValidIndex.ts","../../../../node_modules/@dnd-kit/sortable/src/utilities/itemsEqual.ts","../../../../node_modules/@dnd-kit/sortable/src/utilities/normalizeDisabled.ts","../../../../node_modules/@dnd-kit/sortable/src/strategies/rectSorting.ts","../../../../node_modules/@dnd-kit/sortable/src/strategies/verticalListSorting.ts","../../../../node_modules/@dnd-kit/sortable/src/components/SortableContext.tsx","../../../../node_modules/@dnd-kit/sortable/src/hooks/defaults.ts","../../../../node_modules/@dnd-kit/sortable/src/hooks/utilities/useDerivedTransform.ts","../../../../node_modules/@dnd-kit/sortable/src/hooks/useSortable.ts","../../../../node_modules/@dnd-kit/sortable/src/types/type-guard.ts","../../../../node_modules/@dnd-kit/sortable/src/sensors/keyboard/sortableKeyboardCoordinates.ts","../src/block-dnd/block-dnd-context.tsx","../src/block-dnd/sortable-block.tsx","../src/block-dnd/drag-handle.tsx","../src/block-dnd/use-block-dnd.ts"],"sourcesContent":["import {useMemo} from 'react';\n\nexport function useCombinedRefs<T>(\n ...refs: ((node: T) => void)[]\n): (node: T) => void {\n return useMemo(\n () => (node: T) => {\n refs.forEach((ref) => ref(node));\n },\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\nexport const canUseDOM =\n typeof window !== 'undefined' &&\n typeof window.document !== 'undefined' &&\n typeof window.document.createElement !== 'undefined';\n","export function isWindow(element: Object): element is typeof window {\n const elementString = Object.prototype.toString.call(element);\n return (\n elementString === '[object Window]' ||\n // In Electron context the Window object serializes to [object global]\n elementString === '[object global]'\n );\n}\n","export function isNode(node: Object): node is Node {\n return 'nodeType' in node;\n}\n","import {isWindow} from '../type-guards/isWindow';\nimport {isNode} from '../type-guards/isNode';\n\nexport function getWindow(target: Event['target']): typeof window {\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?.defaultView ?? window;\n}\n","import {getWindow} from '../execution-context/getWindow';\n\nexport function isDocument(node: Node): node is Document {\n const {Document} = getWindow(node);\n\n return node instanceof Document;\n}\n","import {getWindow} from '../execution-context/getWindow';\n\nimport {isWindow} from './isWindow';\n\nexport function isHTMLElement(node: Node | Window): node is HTMLElement {\n if (isWindow(node)) {\n return false;\n }\n\n return node instanceof getWindow(node).HTMLElement;\n}\n","import {getWindow} from '../execution-context/getWindow';\n\nexport function isSVGElement(node: Node): node is SVGElement {\n return node instanceof getWindow(node).SVGElement;\n}\n","import {\n isWindow,\n isHTMLElement,\n isDocument,\n isNode,\n isSVGElement,\n} from '../type-guards';\n\nexport function getOwnerDocument(target: Event['target']): Document {\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","import {useEffect, useLayoutEffect} from 'react';\n\nimport {canUseDOM} from '../execution-context';\n\n/**\n * A hook that resolves to useEffect on the server and useLayoutEffect on the client\n * @param callback {function} Callback function that is invoked when the dependencies of the hook change\n */\nexport const useIsomorphicLayoutEffect = canUseDOM\n ? useLayoutEffect\n : useEffect;\n","import {useCallback, useRef} from 'react';\n\nimport {useIsomorphicLayoutEffect} from './useIsomorphicLayoutEffect';\n\nexport function useEvent<T extends Function>(handler: T | undefined) {\n const handlerRef = useRef<T | undefined>(handler);\n\n useIsomorphicLayoutEffect(() => {\n handlerRef.current = handler;\n });\n\n return useCallback(function (...args: any) {\n return handlerRef.current?.(...args);\n }, []);\n}\n","import {useCallback, useRef} from 'react';\n\nexport function useInterval() {\n const intervalRef = useRef<number | null>(null);\n\n const set = useCallback((listener: Function, duration: number) => {\n intervalRef.current = setInterval(listener, duration);\n }, []);\n\n const clear = useCallback(() => {\n if (intervalRef.current !== null) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n }, []);\n\n return [set, clear] as const;\n}\n","import {useRef} from 'react';\nimport type {DependencyList} from 'react';\n\nimport {useIsomorphicLayoutEffect} from './useIsomorphicLayoutEffect';\n\nexport function useLatestValue<T extends any>(\n value: T,\n dependencies: DependencyList = [value]\n) {\n const valueRef = useRef<T>(value);\n\n useIsomorphicLayoutEffect(() => {\n if (valueRef.current !== value) {\n valueRef.current = value;\n }\n }, dependencies);\n\n return valueRef;\n}\n","import {useMemo, useRef} from 'react';\n\nexport function useLazyMemo<T>(\n callback: (prevValue: T | undefined) => T,\n dependencies: any[]\n) {\n const valueRef = useRef<T>();\n\n return useMemo(\n () => {\n const newValue = callback(valueRef.current);\n valueRef.current = newValue;\n\n return newValue;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [...dependencies]\n );\n}\n","import {useRef, useCallback} from 'react';\n\nimport {useEvent} from './useEvent';\n\nexport function useNodeRef(\n onChange?: (\n newElement: HTMLElement | null,\n previousElement: HTMLElement | null\n ) => void\n) {\n const onChangeHandler = useEvent(onChange);\n const node = useRef<HTMLElement | null>(null);\n const setNodeRef = useCallback(\n (element: HTMLElement | null) => {\n if (element !== node.current) {\n onChangeHandler?.(element, node.current);\n }\n\n node.current = element;\n },\n //eslint-disable-next-line\n []\n );\n\n return [node, setNodeRef] as const;\n}\n","import {useRef, useEffect} from 'react';\n\nexport function usePrevious<T>(value: T) {\n const ref = useRef<T>();\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref.current;\n}\n","import {useMemo} from 'react';\n\nlet ids: Record<string, number> = {};\n\nexport function useUniqueId(prefix: string, value?: string) {\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\n return `${prefix}-${id}`;\n }, [prefix, value]);\n}\n","function createAdjustmentFn(modifier: number) {\n return <T extends Record<U, number>, U extends string>(\n object: T,\n ...adjustments: Partial<T>[]\n ): T => {\n return adjustments.reduce<T>(\n (accumulator, adjustment) => {\n const entries = Object.entries(adjustment) as [U, number][];\n\n for (const [key, valueAdjustment] of entries) {\n const value = accumulator[key];\n\n if (value != null) {\n accumulator[key] = (value + modifier * valueAdjustment) as T[U];\n }\n }\n\n return accumulator;\n },\n {\n ...object,\n }\n );\n };\n}\n\nexport const add = createAdjustmentFn(1);\nexport const subtract = createAdjustmentFn(-1);\n","export function hasViewportRelativeCoordinates(\n event: Event\n): event is Event & Pick<PointerEvent, 'clientX' | 'clientY'> {\n return 'clientX' in event && 'clientY' in event;\n}\n","import {getWindow} from '../execution-context';\n\nexport function isKeyboardEvent(\n event: Event | undefined | null\n): event is KeyboardEvent {\n if (!event) {\n return false;\n }\n\n const {KeyboardEvent} = getWindow(event.target);\n\n return KeyboardEvent && event instanceof KeyboardEvent;\n}\n","import {getWindow} from '../execution-context';\n\nexport function isTouchEvent(\n event: Event | undefined | null\n): event is TouchEvent {\n if (!event) {\n return false;\n }\n\n const {TouchEvent} = getWindow(event.target);\n\n return TouchEvent && event instanceof TouchEvent;\n}\n","import type {Coordinates} from './types';\nimport {isTouchEvent, hasViewportRelativeCoordinates} from '../event';\n\n/**\n * Returns the normalized x and y coordinates for mouse and touch events.\n */\nexport function getEventCoordinates(event: Event): Coordinates | null {\n if (isTouchEvent(event)) {\n if (event.touches && event.touches.length) {\n const {clientX: x, clientY: y} = event.touches[0];\n\n return {\n x,\n y,\n };\n } else if (event.changedTouches && event.changedTouches.length) {\n const {clientX: x, clientY: y} = event.changedTouches[0];\n\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","export type Transform = {\n x: number;\n y: number;\n scaleX: number;\n scaleY: number;\n};\n\nexport interface Transition {\n property: string;\n easing: string;\n duration: number;\n}\n\nexport const CSS = Object.freeze({\n Translate: {\n toString(transform: Transform | null) {\n if (!transform) {\n return;\n }\n\n const {x, y} = transform;\n\n return `translate3d(${x ? Math.round(x) : 0}px, ${\n y ? Math.round(y) : 0\n }px, 0)`;\n },\n },\n Scale: {\n toString(transform: Transform | null) {\n if (!transform) {\n return;\n }\n\n const {scaleX, scaleY} = transform;\n\n return `scaleX(${scaleX}) scaleY(${scaleY})`;\n },\n },\n Transform: {\n toString(transform: Transform | null) {\n if (!transform) {\n return;\n }\n\n return [\n CSS.Translate.toString(transform),\n CSS.Scale.toString(transform),\n ].join(' ');\n },\n },\n Transition: {\n toString({property, duration, easing}: Transition) {\n return `${property} ${duration}ms ${easing}`;\n },\n },\n});\n","const SELECTOR =\n 'a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]';\n\nexport function findFirstFocusableNode(\n element: HTMLElement\n): HTMLElement | null {\n if (element.matches(SELECTOR)) {\n return element;\n }\n\n return element.querySelector(SELECTOR);\n}\n","import React from 'react';\n\ninterface Props {\n id: string;\n value: string;\n}\n\nconst hiddenStyles: React.CSSProperties = {\n display: 'none',\n};\n\nexport function HiddenText({id, value}: Props) {\n return (\n <div id={id} style={hiddenStyles}>\n {value}\n </div>\n );\n}\n","import React from 'react';\n\nexport interface Props {\n id: string;\n announcement: string;\n ariaLiveType?: \"polite\" | \"assertive\" | \"off\";\n}\n\nexport function LiveRegion({id, announcement, ariaLiveType = \"assertive\"}: Props) {\n // Hide element visually but keep it readable by screen readers\n const visuallyHidden: React.CSSProperties = {\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 \n return (\n <div\n id={id}\n style={visuallyHidden}\n role=\"status\"\n aria-live={ariaLiveType}\n aria-atomic\n >\n {announcement}\n </div>\n );\n}\n","import {useCallback, useState} from 'react';\n\nexport function useAnnouncement() {\n const [announcement, setAnnouncement] = useState('');\n const announce = useCallback((value: string | undefined) => {\n if (value != null) {\n setAnnouncement(value);\n }\n }, []);\n\n return {announce, announcement} as const;\n}\n","import {createContext} from 'react';\n\nimport type {RegisterListener} from './types';\n\nexport const DndMonitorContext = createContext<RegisterListener | null>(null);\n","import {useContext, useEffect} from 'react';\n\nimport {DndMonitorContext} from './context';\nimport type {DndMonitorListener} from './types';\n\nexport function useDndMonitor(listener: DndMonitorListener) {\n const registerListener = useContext(DndMonitorContext);\n\n useEffect(() => {\n if (!registerListener) {\n throw new Error(\n 'useDndMonitor must be used within a children of <DndContext>'\n );\n }\n\n const unsubscribe = registerListener(listener);\n\n return unsubscribe;\n }, [listener, registerListener]);\n}\n","import {useCallback, useState} from 'react';\n\nimport type {DndMonitorListener, DndMonitorEvent} from './types';\n\nexport function useDndMonitorProvider() {\n const [listeners] = useState(() => new Set<DndMonitorListener>());\n\n const registerListener = useCallback(\n (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n [listeners]\n );\n\n const dispatch = useCallback(\n ({type, event}: DndMonitorEvent) => {\n listeners.forEach((listener) => listener[type]?.(event as any));\n },\n [listeners]\n );\n\n return [dispatch, registerListener] as const;\n}\n","import type {Announcements, ScreenReaderInstructions} from './types';\n\nexport const defaultScreenReaderInstructions: ScreenReaderInstructions = {\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};\n\nexport const defaultAnnouncements: Announcements = {\n onDragStart({active}) {\n return `Picked up draggable item ${active.id}.`;\n },\n onDragOver({active, over}) {\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 onDragEnd({active, over}) {\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 onDragCancel({active}) {\n return `Dragging was cancelled. Draggable item ${active.id} was dropped.`;\n },\n};\n","import React, {useEffect, useMemo, useState} from 'react';\nimport {createPortal} from 'react-dom';\nimport {useUniqueId} from '@dnd-kit/utilities';\nimport {HiddenText, LiveRegion, useAnnouncement} from '@dnd-kit/accessibility';\n\nimport {DndMonitorListener, useDndMonitor} from '../DndMonitor';\n\nimport type {Announcements, ScreenReaderInstructions} from './types';\nimport {\n defaultAnnouncements,\n defaultScreenReaderInstructions,\n} from './defaults';\n\ninterface Props {\n announcements?: Announcements;\n container?: Element;\n screenReaderInstructions?: ScreenReaderInstructions;\n hiddenTextDescribedById: string;\n}\n\nexport function Accessibility({\n announcements = defaultAnnouncements,\n container,\n hiddenTextDescribedById,\n screenReaderInstructions = defaultScreenReaderInstructions,\n}: Props) {\n const {announce, announcement} = useAnnouncement();\n const liveRegionId = useUniqueId(`DndLiveRegion`);\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n setMounted(true);\n }, []);\n\n useDndMonitor(\n useMemo<DndMonitorListener>(\n () => ({\n onDragStart({active}) {\n announce(announcements.onDragStart({active}));\n },\n onDragMove({active, over}) {\n if (announcements.onDragMove) {\n announce(announcements.onDragMove({active, over}));\n }\n },\n onDragOver({active, over}) {\n announce(announcements.onDragOver({active, over}));\n },\n onDragEnd({active, over}) {\n announce(announcements.onDragEnd({active, over}));\n },\n onDragCancel({active, over}) {\n announce(announcements.onDragCancel({active, over}));\n },\n }),\n [announce, announcements]\n )\n );\n\n if (!mounted) {\n return null;\n }\n\n const markup = (\n <>\n <HiddenText\n id={hiddenTextDescribedById}\n value={screenReaderInstructions.draggable}\n />\n <LiveRegion id={liveRegionId} announcement={announcement} />\n </>\n );\n\n return container ? createPortal(markup, container) : markup;\n}\n","import type {Coordinates, UniqueIdentifier} from '../types';\nimport type {DroppableContainer} from './types';\n\nexport enum Action {\n DragStart = 'dragStart',\n DragMove = 'dragMove',\n DragEnd = 'dragEnd',\n DragCancel = 'dragCancel',\n DragOver = 'dragOver',\n RegisterDroppable = 'registerDroppable',\n SetDroppableDisabled = 'setDroppableDisabled',\n UnregisterDroppable = 'unregisterDroppable',\n}\n\nexport type Actions =\n | {\n type: Action.DragStart;\n active: UniqueIdentifier;\n initialCoordinates: Coordinates;\n }\n | {type: Action.DragMove; coordinates: Coordinates}\n | {type: Action.DragEnd}\n | {type: Action.DragCancel}\n | {\n type: Action.RegisterDroppable;\n element: DroppableContainer;\n }\n | {\n type: Action.SetDroppableDisabled;\n id: UniqueIdentifier;\n key: UniqueIdentifier;\n disabled: boolean;\n }\n | {\n type: Action.UnregisterDroppable;\n id: UniqueIdentifier;\n key: UniqueIdentifier;\n };\n","export function noop(..._args: any) {}\n","import {useMemo} from 'react';\n\nimport type {Sensor, SensorDescriptor, SensorOptions} from './types';\n\nexport function useSensor<T extends SensorOptions>(\n sensor: Sensor<T>,\n options?: T\n): SensorDescriptor<T> {\n return useMemo(\n () => ({\n sensor,\n options: options ?? ({} as T),\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [sensor, options]\n );\n}\n","import {useMemo} from 'react';\n\nimport type {SensorDescriptor, SensorOptions} from './types';\n\nexport function useSensors(\n ...sensors: (SensorDescriptor<any> | undefined | null)[]\n): SensorDescriptor<SensorOptions>[] {\n return useMemo(\n () =>\n [...sensors].filter(\n (sensor): sensor is SensorDescriptor<any> => sensor != null\n ),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [...sensors]\n );\n}\n","import type {Coordinates} from '../../types';\n\nexport const defaultCoordinates: Coordinates = Object.freeze({\n x: 0,\n y: 0,\n});\n","import type {Coordinates} from '../../types';\n\n/**\n * Returns the distance between two points\n */\nexport function distanceBetween(p1: Coordinates, p2: Coordinates) {\n return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));\n}\n","import {getEventCoordinates} from '@dnd-kit/utilities';\nimport type {ClientRect} from '../../types';\n\nexport function getRelativeTransformOrigin(\n event: MouseEvent | TouchEvent | KeyboardEvent,\n rect: ClientRect\n) {\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\n return `${transformOrigin.x}% ${transformOrigin.y}%`;\n}\n","/* eslint-disable no-redeclare */\nimport type {ClientRect} from '../../types';\n\nimport type {Collision, CollisionDescriptor} from './types';\n\n/**\n * Sort collisions from smallest to greatest value\n */\nexport function sortCollisionsAsc(\n {data: {value: a}}: CollisionDescriptor,\n {data: {value: b}}: CollisionDescriptor\n) {\n return a - b;\n}\n\n/**\n * Sort collisions from greatest to smallest value\n */\nexport function sortCollisionsDesc(\n {data: {value: a}}: CollisionDescriptor,\n {data: {value: b}}: CollisionDescriptor\n) {\n return b - a;\n}\n\n/**\n * Returns the coordinates of the corners of a given rectangle:\n * [TopLeft {x, y}, TopRight {x, y}, BottomLeft {x, y}, BottomRight {x, y}]\n */\nexport function cornersOfRectangle({left, top, height, width}: ClientRect) {\n return [\n {\n x: left,\n y: top,\n },\n {\n x: left + width,\n y: top,\n },\n {\n x: left,\n y: top + height,\n },\n {\n x: left + width,\n y: top + height,\n },\n ];\n}\n\n/**\n * Returns the first collision, or null if there isn't one.\n * If a property is specified, returns the specified property of the first collision.\n */\nexport function getFirstCollision(\n collisions: Collision[] | null | undefined\n): Collision | null;\nexport function getFirstCollision<T extends keyof Collision>(\n collisions: Collision[] | null | undefined,\n property: T\n): Collision[T] | null;\nexport function getFirstCollision(\n collisions: Collision[] | null | undefined,\n property?: keyof Collision\n) {\n if (!collisions || collisions.length === 0) {\n return null;\n }\n\n const [firstCollision] = collisions;\n\n return property ? firstCollision[property] : firstCollision;\n}\n","import {distanceBetween} from '../coordinates';\nimport type {Coordinates, ClientRect} from '../../types';\n\nimport type {CollisionDescriptor, CollisionDetection} from './types';\nimport {sortCollisionsAsc} from './helpers';\n\n/**\n * Returns the coordinates of the center of a given ClientRect\n */\nfunction centerOfRectangle(\n rect: ClientRect,\n left = rect.left,\n top = rect.top\n): Coordinates {\n return {\n x: left + rect.width * 0.5,\n y: top + rect.height * 0.5,\n };\n}\n\n/**\n * Returns the closest rectangles from an array of rectangles to the center of a given\n * rectangle.\n */\nexport const closestCenter: CollisionDetection = ({\n collisionRect,\n droppableRects,\n droppableContainers,\n}) => {\n const centerRect = centerOfRectangle(\n collisionRect,\n collisionRect.left,\n collisionRect.top\n );\n const collisions: CollisionDescriptor[] = [];\n\n for (const droppableContainer of droppableContainers) {\n const {id} = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const distBetween = distanceBetween(centerOfRectangle(rect), centerRect);\n\n collisions.push({id, data: {droppableContainer, value: distBetween}});\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n","import {distanceBetween} from '../coordinates';\n\nimport type {CollisionDescriptor, CollisionDetection} from './types';\nimport {cornersOfRectangle, sortCollisionsAsc} from './helpers';\n\n/**\n * Returns the closest rectangles from an array of rectangles to the corners of\n * another rectangle.\n */\nexport const closestCorners: CollisionDetection = ({\n collisionRect,\n droppableRects,\n droppableContainers,\n}) => {\n const corners = cornersOfRectangle(collisionRect);\n const collisions: CollisionDescriptor[] = [];\n\n for (const droppableContainer of droppableContainers) {\n const {id} = 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\n collisions.push({\n id,\n data: {droppableContainer, value: effectiveDistance},\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n","import type {ClientRect} from '../../types';\n\nimport type {CollisionDescriptor, CollisionDetection} from './types';\nimport {sortCollisionsDesc} from './helpers';\n\n/**\n * Returns the intersecting rectangle area between two rectangles\n */\nexport function getIntersectionRatio(\n entry: ClientRect,\n target: ClientRect\n): number {\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 =\n intersectionArea / (targetArea + entryArea - intersectionArea);\n\n return Number(intersectionRatio.toFixed(4));\n }\n\n // Rectangles do not overlap, or overlap has an area of zero (edge/corner overlap)\n return 0;\n}\n\n/**\n * Returns the rectangles that has the greatest intersection area with a given\n * rectangle in an array of rectangles.\n */\nexport const rectIntersection: CollisionDetection = ({\n collisionRect,\n droppableRects,\n droppableContainers,\n}) => {\n const collisions: CollisionDescriptor[] = [];\n\n for (const droppableContainer of droppableContainers) {\n const {id} = 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: {droppableContainer, value: intersectionRatio},\n });\n }\n }\n }\n\n return collisions.sort(sortCollisionsDesc);\n};\n","import type {Transform} from '@dnd-kit/utilities';\nimport type {ClientRect} from '../../types';\n\nexport function adjustScale(\n transform: Transform,\n rect1: ClientRect | null,\n rect2: ClientRect | null\n): Transform {\n return {\n ...transform,\n scaleX: rect1 && rect2 ? rect1.width / rect2.width : 1,\n scaleY: rect1 && rect2 ? rect1.height / rect2.height : 1,\n };\n}\n","import type {Coordinates, ClientRect} from '../../types';\nimport {defaultCoordinates} from '../coordinates';\n\nexport function getRectDelta(\n rect1: ClientRect | null,\n rect2: ClientRect | null\n): Coordinates {\n return rect1 && rect2\n ? {\n x: rect1.left - rect2.left,\n y: rect1.top - rect2.top,\n }\n : defaultCoordinates;\n}\n","import type {Coordinates, ClientRect} from '../../types';\n\nexport function createRectAdjustmentFn(modifier: number) {\n return function adjustClientRect(\n rect: ClientRect,\n ...adjustments: Coordinates[]\n ): ClientRect {\n return adjustments.reduce<ClientRect>(\n (acc, adjustment) => ({\n ...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 }),\n {...rect}\n );\n };\n}\n\nexport const getAdjustedRect = createRectAdjustmentFn(1);\n","import type {Transform} from '@dnd-kit/utilities';\n\nexport function parseTransform(transform: string): Transform | null {\n if (transform.startsWith('matrix3d(')) {\n const transformArray = transform.slice(9, -1).split(/, /);\n\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\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","import type {ClientRect} from '../../types';\n\nimport {parseTransform} from './parseTransform';\n\nexport function inverseTransform(\n rect: ClientRect,\n transform: string,\n transformOrigin: string\n): ClientRect {\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return rect;\n }\n\n const {scaleX, scaleY, x: translateX, y: translateY} = parsedTransform;\n\n const x = rect.left - translateX - (1 - scaleX) * parseFloat(transformOrigin);\n const y =\n rect.top -\n translateY -\n (1 - scaleY) *\n 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\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","import {getWindow} from '@dnd-kit/utilities';\n\nimport type {ClientRect} from '../../types';\nimport {inverseTransform} from '../transform';\n\ninterface Options {\n ignoreTransform?: boolean;\n}\n\nconst defaultOptions: Options = {ignoreTransform: false};\n\n/**\n * Returns the bounding client rect of an element relative to the viewport.\n */\nexport function getClientRect(\n element: Element,\n options: Options = defaultOptions\n) {\n let rect: ClientRect = element.getBoundingClientRect();\n\n if (options.ignoreTransform) {\n const {transform, transformOrigin} =\n getWindow(element).getComputedStyle(element);\n\n if (transform) {\n rect = inverseTransform(rect, transform, transformOrigin);\n }\n }\n\n const {top, left, width, height, bottom, right} = rect;\n\n return {\n top,\n left,\n width,\n height,\n bottom,\n right,\n };\n}\n\n/**\n * Returns the bounding client rect of an element relative to the viewport.\n *\n * @remarks\n * The ClientRect returned by this method does not take into account transforms\n * applied to the element it measures.\n *\n */\nexport function getTransformAgnosticClientRect(element: Element): ClientRect {\n return getClientRect(element, {ignoreTransform: true});\n}\n","import type {ClientRect} from '../../types';\n\nexport function getWindowClientRect(element: typeof window): ClientRect {\n const width = element.innerWidth;\n const height = element.innerHeight;\n\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height,\n };\n}\n","import {getWindow} from '@dnd-kit/utilities';\n\nexport function isFixed(\n node: HTMLElement,\n computedStyle: CSSStyleDeclaration = getWindow(node).getComputedStyle(node)\n): boolean {\n return computedStyle.position === 'fixed';\n}\n","import {getWindow} from '@dnd-kit/utilities';\n\nexport function isScrollable(\n element: HTMLElement,\n computedStyle: CSSStyleDeclaration = getWindow(element).getComputedStyle(\n element\n )\n): boolean {\n const overflowRegex = /(auto|scroll|overlay)/;\n const properties = ['overflow', 'overflowX', 'overflowY'];\n\n return properties.some((property) => {\n const value = computedStyle[property as keyof CSSStyleDeclaration];\n\n return typeof value === 'string' ? overflowRegex.test(value) : false;\n });\n}\n","import {\n getWindow,\n isDocument,\n isHTMLElement,\n isSVGElement,\n} from '@dnd-kit/utilities';\n\nimport {isFixed} from './isFixed';\nimport {isScrollable} from './isScrollable';\n\nexport function getScrollableAncestors(\n element: Node | null,\n limit?: number\n): Element[] {\n const scrollParents: Element[] = [];\n\n function findScrollableAncestors(node: Node | null): Element[] {\n if (limit != null && scrollParents.length >= limit) {\n return scrollParents;\n }\n\n if (!node) {\n return scrollParents;\n }\n\n if (\n isDocument(node) &&\n node.scrollingElement != null &&\n !scrollParents.includes(node.scrollingElement)\n ) {\n scrollParents.push(node.scrollingElement);\n\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}\n\nexport function getFirstScrollableAncestor(node: Node | null): Element | null {\n const [firstScrollableAncestor] = getScrollableAncestors(node, 1);\n\n return firstScrollableAncestor ?? null;\n}\n","import {\n canUseDOM,\n isHTMLElement,\n isDocument,\n getOwnerDocument,\n isNode,\n isWindow,\n} from '@dnd-kit/utilities';\n\nexport function getScrollableElement(element: EventTarget | null) {\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 (\n isDocument(element) ||\n element === getOwnerDocument(element).scrollingElement\n ) {\n return window;\n }\n\n if (isHTMLElement(element)) {\n return element;\n }\n\n return null;\n}\n","import {isWindow} from '@dnd-kit/utilities';\n\nimport type {Coordinates} from '../../types';\n\nexport function getScrollXCoordinate(element: Element | typeof window): number {\n if (isWindow(element)) {\n return element.scrollX;\n }\n\n return element.scrollLeft;\n}\n\nexport function getScrollYCoordinate(element: Element | typeof window): number {\n if (isWindow(element)) {\n return element.scrollY;\n }\n\n return element.scrollTop;\n}\n\nexport function getScrollCoordinates(\n element: Element | typeof window\n): Coordinates {\n return {\n x: getScrollXCoordinate(element),\n y: getScrollYCoordinate(element),\n };\n}\n","export enum Direction {\n Forward = 1,\n Backward = -1,\n}\n","import {canUseDOM} from '@dnd-kit/utilities';\n\nexport function isDocumentScrollingElement(element: Element | null) {\n if (!canUseDOM || !element) {\n return false;\n }\n\n return element === document.scrollingElement;\n}\n","import {isDocumentScrollingElement} from './documentScrollingElement';\n\nexport function getScrollPosition(scrollingContainer: Element) {\n const minScroll = {\n x: 0,\n y: 0,\n };\n const dimensions = isDocumentScrollingElement(scrollingContainer)\n ? {\n height: window.innerHeight,\n width: window.innerWidth,\n }\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\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\n return {\n isTop,\n isLeft,\n isBottom,\n isRight,\n maxScroll,\n minScroll,\n };\n}\n","import {Direction, ClientRect} from '../../types';\nimport {getScrollPosition} from './getScrollPosition';\n\ninterface PositionalCoordinates\n extends Pick<ClientRect, 'top' | 'left' | 'right' | 'bottom'> {}\n\nconst defaultThreshold = {\n x: 0.2,\n y: 0.2,\n};\n\nexport function getScrollDirectionAndSpeed(\n scrollContainer: Element,\n scrollContainerRect: ClientRect,\n {top, left, right, bottom}: PositionalCoordinates,\n acceleration = 10,\n thresholdPercentage = defaultThreshold\n) {\n const {isTop, isBottom, isLeft, isRight} = getScrollPosition(scrollContainer);\n\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 =\n acceleration *\n Math.abs(\n (scrollContainerRect.top + threshold.height - top) / threshold.height\n );\n } else if (\n !isBottom &&\n bottom >= scrollContainerRect.bottom - threshold.height\n ) {\n // Scroll Down\n direction.y = Direction.Forward;\n speed.y =\n acceleration *\n Math.abs(\n (scrollContainerRect.bottom - threshold.height - bottom) /\n threshold.height\n );\n }\n\n if (!isRight && right >= scrollContainerRect.right - threshold.width) {\n // Scroll Right\n direction.x = Direction.Forward;\n speed.x =\n acceleration *\n Math.abs(\n (scrollContainerRect.right - threshold.width - right) / threshold.width\n );\n } else if (!isLeft && left <= scrollContainerRect.left + threshold.width) {\n // Scroll Left\n direction.x = Direction.Backward;\n speed.x =\n acceleration *\n Math.abs(\n (scrollContainerRect.left + threshold.width - left) / threshold.width\n );\n }\n\n return {\n direction,\n speed,\n };\n}\n","export function getScrollElementRect(element: Element) {\n if (element === document.scrollingElement) {\n const {innerWidth, innerHeight} = window;\n\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 {top, left, right, bottom} = element.getBoundingClientRect();\n\n return {\n top,\n left,\n right,\n bottom,\n width: element.clientWidth,\n height: element.clientHeight,\n };\n}\n","import {add} from '@dnd-kit/utilities';\n\nimport type {Coordinates} from '../../types';\nimport {\n getScrollCoordinates,\n getScrollXCoordinate,\n getScrollYCoordinate,\n} from './getScrollCoordinates';\nimport {defaultCoordinates} from '../coordinates';\n\nexport function getScrollOffsets(scrollableAncestors: Element[]): Coordinates {\n return scrollableAncestors.reduce<Coordinates>((acc, node) => {\n return add(acc, getScrollCoordinates(node));\n }, defaultCoordinates);\n}\n\nexport function getScrollXOffset(scrollableAncestors: Element[]): number {\n return scrollableAncestors.reduce<number>((acc, node) => {\n return acc + getScrollXCoordinate(node);\n }, 0);\n}\n\nexport function getScrollYOffset(scrollableAncestors: Element[]): number {\n return scrollableAncestors.reduce<number>((acc, node) => {\n return acc + getScrollYCoordinate(node);\n }, 0);\n}\n","import type {ClientRect} from '../../types';\nimport {getClientRect} from '../rect/getRect';\nimport {getFirstScrollableAncestor} from './getScrollableAncestors';\n\nexport function scrollIntoViewIfNeeded(\n element: HTMLElement | null | undefined,\n measure: (node: HTMLElement) => ClientRect = getClientRect\n) {\n if (!element) {\n return;\n }\n\n const {top, left, bottom, right} = measure(element);\n const firstScrollableAncestor = getFirstScrollableAncestor(element);\n\n if (!firstScrollableAncestor) {\n return;\n }\n\n if (\n bottom <= 0 ||\n right <= 0 ||\n top >= window.innerHeight ||\n left >= window.innerWidth\n ) {\n element.scrollIntoView({\n block: 'center',\n inline: 'center',\n });\n }\n}\n","import type {ClientRect} from '../../types/rect';\nimport {\n getScrollableAncestors,\n getScrollOffsets,\n getScrollXOffset,\n getScrollYOffset,\n} from '../scroll';\n\nconst properties = [\n ['x', ['left', 'right'], getScrollXOffset],\n ['y', ['top', 'bottom'], getScrollYOffset],\n] as const;\n\nexport class Rect {\n constructor(rect: ClientRect, element: Element) {\n const scrollableAncestors = getScrollableAncestors(element);\n const scrollOffsets = getScrollOffsets(scrollableAncestors);\n\n this.rect = {...rect};\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\n return this.rect[key] + scrollOffsetsDeltla;\n },\n enumerable: true,\n });\n }\n }\n\n Object.defineProperty(this, 'rect', {enumerable: false});\n }\n\n private rect: ClientRect;\n\n public width: number;\n\n public height: number;\n\n // The below properties are set by the `Object.defineProperty` calls in the constructor\n // @ts-ignore\n public top: number;\n // @ts-ignore\n public bottom: number;\n // @ts-ignore\n public right: number;\n // @ts-ignore\n public left: number;\n}\n","export class Listeners {\n private listeners: [\n string,\n EventListenerOrEventListenerObject,\n AddEventListenerOptions | boolean | undefined\n ][] = [];\n\n constructor(private target: EventTarget | null) {}\n\n public add<T extends Event>(\n eventName: string,\n handler: (event: T) => void,\n options?: AddEventListenerOptions | boolean\n ) {\n this.target?.addEventListener(eventName, handler as EventListener, options);\n this.listeners.push([eventName, handler as EventListener, options]);\n }\n\n public removeAll = () => {\n this.listeners.forEach((listener) =>\n this.target?.removeEventListener(...listener)\n );\n };\n}\n","import {getOwnerDocument, getWindow} from '@dnd-kit/utilities';\n\nexport function getEventListenerTarget(\n target: EventTarget | null\n): EventTarget | Document {\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\n const {EventTarget} = getWindow(target);\n\n return target instanceof EventTarget ? target : getOwnerDocument(target);\n}\n","import type {Coordinates, DistanceMeasurement} from '../../types';\n\nexport function hasExceededDistance(\n delta: Coordinates,\n measurement: DistanceMeasurement\n): boolean {\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","export enum EventName {\n Click = 'click',\n DragStart = 'dragstart',\n Keydown = 'keydown',\n ContextMenu = 'contextmenu',\n Resize = 'resize',\n SelectionChange = 'selectionchange',\n VisibilityChange = 'visibilitychange',\n}\n\nexport function preventDefault(event: Event) {\n event.preventDefault();\n}\n\nexport function stopPropagation(event: Event) {\n event.stopPropagation();\n}\n","import type {Coordinates, UniqueIdentifier} from '../../types';\nimport type {SensorContext} from '../types';\n\nexport enum KeyboardCode {\n Space = 'Space',\n Down = 'ArrowDown',\n Right = 'ArrowRight',\n Left = 'ArrowLeft',\n Up = 'ArrowUp',\n Esc = 'Escape',\n Enter = 'Enter',\n Tab = 'Tab',\n}\n\nexport type KeyboardCodes = {\n start: KeyboardEvent['code'][];\n cancel: KeyboardEvent['code'][];\n end: KeyboardEvent['code'][];\n};\n\nexport type KeyboardCoordinateGetter = (\n event: KeyboardEvent,\n args: {\n active: UniqueIdentifier;\n currentCoordinates: Coordinates;\n context: SensorContext;\n }\n) => Coordinates | void;\n","import {KeyboardCoordinateGetter, KeyboardCode, KeyboardCodes} from './types';\n\nexport const defaultKeyboardCodes: KeyboardCodes = {\n start: [KeyboardCode.Space, KeyboardCode.Enter],\n cancel: [KeyboardCode.Esc],\n end: [KeyboardCode.Space, KeyboardCode.Enter, KeyboardCode.Tab],\n};\n\nexport const defaultKeyboardCoordinateGetter: KeyboardCoordinateGetter = (\n event,\n {currentCoordinates}\n) => {\n switch (event.code) {\n case KeyboardCode.Right:\n return {\n ...currentCoordinates,\n x: currentCoordinates.x + 25,\n };\n case KeyboardCode.Left:\n return {\n ...currentCoordinates,\n x: currentCoordinates.x - 25,\n };\n case KeyboardCode.Down:\n return {\n ...currentCoordinates,\n y: currentCoordinates.y + 25,\n };\n case KeyboardCode.Up:\n return {\n ...currentCoordinates,\n y: currentCoordinates.y - 25,\n };\n }\n\n return undefined;\n};\n","import {\n add as getAdjustedCoordinates,\n subtract as getCoordinatesDelta,\n getOwnerDocument,\n getWindow,\n isKeyboardEvent,\n} from '@dnd-kit/utilities';\n\nimport type {Coordinates} from '../../types';\nimport {\n defaultCoordinates,\n getScrollPosition,\n getScrollElementRect,\n} from '../../utilities';\nimport {scrollIntoViewIfNeeded} from '../../utilities/scroll';\nimport {EventName} from '../events';\nimport {Listeners} from '../utilities';\nimport type {\n Activators,\n SensorInstance,\n SensorProps,\n SensorOptions,\n} from '../types';\n\nimport {KeyboardCoordinateGetter, KeyboardCode, KeyboardCodes} from './types';\nimport {\n defaultKeyboardCodes,\n defaultKeyboardCoordinateGetter,\n} from './defaults';\n\nexport interface KeyboardSensorOptions extends SensorOptions {\n keyboardCodes?: KeyboardCodes;\n coordinateGetter?: KeyboardCoordinateGetter;\n scrollBehavior?: ScrollBehavior;\n onActivation?({event}: {event: KeyboardEvent}): void;\n}\n\nexport type KeyboardSensorProps = SensorProps<KeyboardSensorOptions>;\n\nexport class KeyboardSensor implements SensorInstance {\n public autoScrollEnabled = false;\n private referenceCoordinates: Coordinates | undefined;\n private listeners: Listeners;\n private windowListeners: Listeners;\n\n constructor(private props: KeyboardSensorProps) {\n const {\n event: {target},\n } = props;\n\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\n this.attach();\n }\n\n private attach() {\n this.handleStart();\n\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n\n setTimeout(() => this.listeners.add(EventName.Keydown, this.handleKeyDown));\n }\n\n private handleStart() {\n const {activeNode, onStart} = this.props;\n const node = activeNode.node.current;\n\n if (node) {\n scrollIntoViewIfNeeded(node);\n }\n\n onStart(defaultCoordinates);\n }\n\n private handleKeyDown(event: Event) {\n if (isKeyboardEvent(event)) {\n const {active, context, options} = this.props;\n const {\n keyboardCodes = defaultKeyboardCodes,\n coordinateGetter = defaultKeyboardCoordinateGetter,\n scrollBehavior = 'smooth',\n } = options;\n const {code} = 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 {collisionRect} = context.current;\n const currentCoordinates = collisionRect\n ? {x: collisionRect.left, 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 = getCoordinatesDelta(\n newCoordinates,\n currentCoordinates\n );\n const scrollDelta = {\n x: 0,\n y: 0,\n };\n const {scrollableAncestors} = context.current;\n\n for (const scrollContainer of scrollableAncestors) {\n const direction = event.code;\n const {isTop, isRight, isLeft, isBottom, maxScroll, minScroll} =\n getScrollPosition(scrollContainer);\n const scrollElementRect = getScrollElementRect(scrollContainer);\n\n const clampedCoordinates = {\n x: Math.min(\n direction === KeyboardCode.Right\n ? scrollElementRect.right - scrollElementRect.width / 2\n : scrollElementRect.right,\n Math.max(\n direction === KeyboardCode.Right\n ? scrollElementRect.left\n : scrollElementRect.left + scrollElementRect.width / 2,\n newCoordinates.x\n )\n ),\n y: Math.min(\n direction === KeyboardCode.Down\n ? scrollElementRect.bottom - scrollElementRect.height / 2\n : scrollElementRect.bottom,\n Math.max(\n direction === KeyboardCode.Down\n ? scrollElementRect.top\n : scrollElementRect.top + scrollElementRect.height / 2,\n newCoordinates.y\n )\n ),\n };\n\n const canScrollX =\n (direction === KeyboardCode.Right && !isRight) ||\n (direction === KeyboardCode.Left && !isLeft);\n const canScrollY =\n (direction === KeyboardCode.Down && !isBottom) ||\n (direction === KeyboardCode.Up && !isTop);\n\n if (canScrollX && clampedCoordinates.x !== newCoordinates.x) {\n const newScrollCoordinates =\n scrollContainer.scrollLeft + coordinatesDelta.x;\n const canScrollToNewCoordinates =\n (direction === KeyboardCode.Right &&\n newScrollCoordinates <= maxScroll.x) ||\n (direction === KeyboardCode.Left &&\n 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 =\n direction === KeyboardCode.Right\n ? scrollContainer.scrollLeft - maxScroll.x\n : scrollContainer.scrollLeft - minScroll.x;\n }\n\n if (scrollDelta.x) {\n scrollContainer.scrollBy({\n left: -scrollDelta.x,\n behavior: scrollBehavior,\n });\n }\n break;\n } else if (canScrollY && clampedCoordinates.y !== newCoordinates.y) {\n const newScrollCoordinates =\n scrollContainer.scrollTop + coordinatesDelta.y;\n const canScrollToNewCoordinates =\n (direction === KeyboardCode.Down &&\n newScrollCoordinates <= maxScroll.y) ||\n (direction === KeyboardCode.Up &&\n 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 =\n direction === KeyboardCode.Down\n ? scrollContainer.scrollTop - maxScroll.y\n : 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(\n event,\n getAdjustedCoordinates(\n getCoordinatesDelta(newCoordinates, this.referenceCoordinates),\n scrollDelta\n )\n );\n }\n }\n }\n\n private handleMove(event: Event, coordinates: Coordinates) {\n const {onMove} = this.props;\n\n event.preventDefault();\n onMove(coordinates);\n }\n\n private handleEnd(event: Event) {\n const {onEnd} = this.props;\n\n event.preventDefault();\n this.detach();\n onEnd();\n }\n\n private handleCancel(event: Event) {\n const {onCancel} = this.props;\n\n event.preventDefault();\n this.detach();\n onCancel();\n }\n\n private detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll();\n }\n\n static activators: Activators<KeyboardSensorOptions> = [\n {\n eventName: 'onKeyDown' as const,\n handler: (\n event: React.KeyboardEvent,\n {keyboardCodes = defaultKeyboardCodes, onActivation},\n {active}\n ) => {\n const {code} = 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\n onActivation?.({event: event.nativeEvent});\n\n return true;\n }\n\n return false;\n },\n },\n ];\n}\n","import {\n subtract as getCoordinatesDelta,\n getEventCoordinates,\n getOwnerDocument,\n getWindow,\n} from '@dnd-kit/utilities';\n\nimport {defaultCoordinates} from '../../utilities';\nimport {\n getEventListenerTarget,\n hasExceededDistance,\n Listeners,\n} from '../utilities';\nimport {EventName, preventDefault, stopPropagation} from '../events';\nimport {KeyboardCode} from '../keyboard';\nimport type {SensorInstance, SensorProps, SensorOptions} from '../types';\nimport type {Coordinates, DistanceMeasurement} from '../../types';\n\ninterface DistanceConstraint {\n distance: DistanceMeasurement;\n tolerance?: DistanceMeasurement;\n}\n\ninterface DelayConstraint {\n delay: number;\n tolerance: DistanceMeasurement;\n}\n\ninterface EventDescriptor {\n name: keyof DocumentEventMap;\n passive?: boolean;\n}\n\nexport interface PointerEventHandlers {\n cancel?: EventDescriptor;\n move: EventDescriptor;\n end: EventDescriptor;\n}\n\nexport type PointerActivationConstraint =\n | DelayConstraint\n | DistanceConstraint\n | (DelayConstraint & DistanceConstraint);\n\nfunction isDistanceConstraint(\n constraint: PointerActivationConstraint\n): constraint is PointerActivationConstraint & DistanceConstraint {\n return Boolean(constraint && 'distance' in constraint);\n}\n\nfunction isDelayConstraint(\n constraint: PointerActivationConstraint\n): constraint is DelayConstraint {\n return Boolean(constraint && 'delay' in constraint);\n}\n\nexport interface AbstractPointerSensorOptions extends SensorOptions {\n activationConstraint?: PointerActivationConstraint;\n bypassActivationConstraint?(\n props: Pick<AbstractPointerSensorProps, 'activeNode' | 'event' | 'options'>\n ): boolean;\n onActivation?({event}: {event: Event}): void;\n}\n\nexport type AbstractPointerSensorProps =\n SensorProps<AbstractPointerSensorOptions>;\n\nexport class AbstractPointerSensor implements SensorInstance {\n public autoScrollEnabled = true;\n private document: Document;\n private activated: boolean = false;\n private initialCoordinates: Coordinates;\n private timeoutId: NodeJS.Timeout | null = null;\n private listeners: Listeners;\n private documentListeners: Listeners;\n private windowListeners: Listeners;\n\n constructor(\n private props: AbstractPointerSensorProps,\n private events: PointerEventHandlers,\n listenerTarget = getEventListenerTarget(props.event.target)\n ) {\n const {event} = props;\n const {target} = event;\n\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(event) ?? 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\n this.attach();\n }\n\n private attach() {\n const {\n events,\n props: {\n options: {activationConstraint, bypassActivationConstraint},\n },\n } = this;\n\n this.listeners.add(events.move.name, this.handleMove, {passive: false});\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 (\n bypassActivationConstraint?.({\n event: this.props.event,\n activeNode: this.props.activeNode,\n options: this.props.options,\n })\n ) {\n return this.handleStart();\n }\n\n if (isDelayConstraint(activationConstraint)) {\n this.timeoutId = setTimeout(\n this.handleStart,\n activationConstraint.delay\n );\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 private detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll();\n\n // 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 setTimeout(this.documentListeners.removeAll, 50);\n\n if (this.timeoutId !== null) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n }\n\n private handlePending(\n constraint: PointerActivationConstraint,\n offset?: Coordinates | undefined\n ): void {\n const {active, onPending} = this.props;\n onPending(active, constraint, this.initialCoordinates, offset);\n }\n\n private handleStart() {\n const {initialCoordinates} = this;\n const {onStart} = this.props;\n\n if (initialCoordinates) {\n this.activated = true;\n\n // Stop propagation of click events once activation constraints are met\n this.documentListeners.add(EventName.Click, stopPropagation, {\n capture: true,\n });\n\n // Remove any text selection from the document\n this.removeTextSelection();\n\n // Prevent further text selection while dragging\n this.documentListeners.add(\n EventName.SelectionChange,\n this.removeTextSelection\n );\n\n onStart(initialCoordinates);\n }\n }\n\n private handleMove(event: Event) {\n const {activated, initialCoordinates, props} = this;\n const {\n onMove,\n options: {activationConstraint},\n } = props;\n\n if (!initialCoordinates) {\n return;\n }\n\n const coordinates = getEventCoordinates(event) ?? defaultCoordinates;\n const delta = getCoordinatesDelta(initialCoordinates, coordinates);\n\n // Constraint validation\n if (!activated && activationConstraint) {\n if (isDistanceConstraint(activationConstraint)) {\n if (\n activationConstraint.tolerance != null &&\n hasExceededDistance(delta, activationConstraint.tolerance)\n ) {\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 private handleEnd() {\n const {onAbort, onEnd} = this.props;\n\n this.detach();\n if (!this.activated) {\n onAbort(this.props.active);\n }\n onEnd();\n }\n\n private handleCancel() {\n const {onAbort, onCancel} = this.props;\n\n this.detach();\n if (!this.activated) {\n onAbort(this.props.active);\n }\n onCancel();\n }\n\n private handleKeydown(event: KeyboardEvent) {\n if (event.code === KeyboardCode.Esc) {\n this.handleCancel();\n }\n }\n\n private removeTextSelection() {\n this.document.getSelection()?.removeAllRanges();\n }\n}\n","import type {PointerEvent} from 'react';\nimport {getOwnerDocument} from '@dnd-kit/utilities';\n\nimport type {SensorProps} from '../types';\nimport {\n AbstractPointerSensor,\n AbstractPointerSensorOptions,\n PointerEventHandlers,\n} from './AbstractPointerSensor';\n\nconst events: PointerEventHandlers = {\n cancel: {name: 'pointercancel'},\n move: {name: 'pointermove'},\n end: {name: 'pointerup'},\n};\n\nexport interface PointerSensorOptions extends AbstractPointerSensorOptions {}\n\nexport type PointerSensorProps = SensorProps<PointerSensorOptions>;\n\nexport class PointerSensor extends AbstractPointerSensor {\n constructor(props: PointerSensorProps) {\n const {event} = props;\n // Pointer events stop firing if the target is unmounted while dragging\n // Therefore we attach listeners to the owner document instead\n const listenerTarget = getOwnerDocument(event.target);\n\n super(props, events, listenerTarget);\n }\n\n static activators = [\n {\n eventName: 'onPointerDown' as const,\n handler: (\n {nativeEvent: event}: PointerEvent,\n {onActivation}: PointerSensorOptions\n ) => {\n if (!event.isPrimary || event.button !== 0) {\n return false;\n }\n\n onActivation?.({event});\n\n return true;\n },\n },\n ];\n}\n","import type {MouseEvent} from 'react';\nimport {getOwnerDocument} from '@dnd-kit/utilities';\n\nimport type {SensorProps} from '../types';\nimport {\n AbstractPointerSensor,\n PointerEventHandlers,\n AbstractPointerSensorOptions,\n} from '../pointer';\n\nconst events: PointerEventHandlers = {\n move: {name: 'mousemove'},\n end: {name: 'mouseup'},\n};\n\nenum MouseButton {\n RightClick = 2,\n}\n\nexport interface MouseSensorOptions extends AbstractPointerSensorOptions {}\n\nexport type MouseSensorProps = SensorProps<MouseSensorOptions>;\n\nexport class MouseSensor extends AbstractPointerSensor {\n constructor(props: MouseSensorProps) {\n super(props, events, getOwnerDocument(props.event.target));\n }\n\n static activators = [\n {\n eventName: 'onMouseDown' as const,\n handler: (\n {nativeEvent: event}: MouseEvent,\n {onActivation}: MouseSensorOptions\n ) => {\n if (event.button === MouseButton.RightClick) {\n return false;\n }\n\n onActivation?.({event});\n\n return true;\n },\n },\n ];\n}\n","import type {TouchEvent} from 'react';\n\nimport {\n AbstractPointerSensor,\n PointerSensorProps,\n PointerEventHandlers,\n PointerSensorOptions,\n} from '../pointer';\nimport type {SensorProps} from '../types';\n\nconst events: PointerEventHandlers = {\n cancel: {name: 'touchcancel'},\n move: {name: 'touchmove'},\n end: {name: 'touchend'},\n};\n\nexport interface TouchSensorOptions extends PointerSensorOptions {}\n\nexport type TouchSensorProps = SensorProps<TouchSensorOptions>;\n\nexport class TouchSensor extends AbstractPointerSensor {\n constructor(props: PointerSensorProps) {\n super(props, events);\n }\n\n static activators = [\n {\n eventName: 'onTouchStart' as const,\n handler: (\n {nativeEvent: event}: TouchEvent,\n {onActivation}: TouchSensorOptions\n ) => {\n const {touches} = event;\n\n if (touches.length > 1) {\n return false;\n }\n\n onActivation?.({event});\n\n return true;\n },\n },\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.move.name, noop, {\n capture: false,\n passive: false,\n });\n\n return function teardown() {\n window.removeEventListener(events.move.name, noop);\n };\n\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 function noop() {}\n }\n}\n","import {useCallback, useEffect, useMemo, useRef} from 'react';\nimport {useInterval, useLazyMemo, usePrevious} from '@dnd-kit/utilities';\n\nimport {getScrollDirectionAndSpeed} from '../../utilities';\nimport {Direction} from '../../types';\nimport type {Coordinates, ClientRect} from '../../types';\n\nexport type ScrollAncestorSortingFn = (ancestors: Element[]) => Element[];\n\nexport enum AutoScrollActivator {\n Pointer,\n DraggableRect,\n}\n\nexport interface Options {\n acceleration?: number;\n activator?: AutoScrollActivator;\n canScroll?: CanScroll;\n enabled?: boolean;\n interval?: number;\n layoutShiftCompensation?:\n | boolean\n | {\n x: boolean;\n y: boolean;\n };\n order?: TraversalOrder;\n threshold?: {\n x: number;\n y: number;\n };\n}\n\ninterface Arguments extends Options {\n draggingRect: ClientRect | null;\n enabled: boolean;\n pointerCoordinates: Coordinates | null;\n scrollableAncestors: Element[];\n scrollableAncestorRects: ClientRect[];\n delta: Coordinates;\n}\n\nexport type CanScroll = (element: Element) => boolean;\n\nexport enum TraversalOrder {\n TreeOrder,\n ReversedTreeOrder,\n}\n\ninterface ScrollDirection {\n x: 0 | Direction;\n y: 0 | Direction;\n}\n\nexport function useAutoScroller({\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}: Arguments) {\n const scrollIntent = useScrollIntent({delta, disabled: !enabled});\n const [setAutoScrollInterval, clearAutoScrollInterval] = useInterval();\n const scrollSpeed = useRef<Coordinates>({x: 0, y: 0});\n const scrollDirection = useRef<ScrollDirection>({x: 0, y: 0});\n const rect = useMemo(() => {\n switch (activator) {\n case AutoScrollActivator.Pointer:\n return pointerCoordinates\n ? {\n top: pointerCoordinates.y,\n bottom: pointerCoordinates.y,\n left: pointerCoordinates.x,\n right: pointerCoordinates.x,\n }\n : null;\n case AutoScrollActivator.DraggableRect:\n return draggingRect;\n }\n }, [activator, draggingRect, pointerCoordinates]);\n const scrollContainerRef = useRef<Element | null>(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\n scrollContainer.scrollBy(scrollLeft, scrollTop);\n }, []);\n const sortedScrollableAncestors = useMemo(\n () =>\n order === TraversalOrder.TreeOrder\n ? [...scrollableAncestors].reverse()\n : scrollableAncestors,\n [order, scrollableAncestors]\n );\n\n useEffect(\n () => {\n if (!enabled || !scrollableAncestors.length || !rect) {\n clearAutoScrollInterval();\n return;\n }\n\n for (const scrollContainer of sortedScrollableAncestors) {\n if (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 {direction, speed} = getScrollDirectionAndSpeed(\n scrollContainer,\n scrollContainerRect,\n rect,\n acceleration,\n threshold\n );\n\n for (const axis of ['x', 'y'] as const) {\n if (!scrollIntent[axis][direction[axis] as Direction]) {\n speed[axis] = 0;\n direction[axis] = 0;\n }\n }\n\n if (speed.x > 0 || speed.y > 0) {\n clearAutoScrollInterval();\n\n scrollContainerRef.current = scrollContainer;\n setAutoScrollInterval(autoScroll, interval);\n\n scrollSpeed.current = speed;\n scrollDirection.current = direction;\n\n return;\n }\n }\n\n scrollSpeed.current = {x: 0, y: 0};\n scrollDirection.current = {x: 0, y: 0};\n clearAutoScrollInterval();\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n acceleration,\n autoScroll,\n canScroll,\n clearAutoScrollInterval,\n enabled,\n interval,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(rect),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(scrollIntent),\n setAutoScrollInterval,\n scrollableAncestors,\n sortedScrollableAncestors,\n scrollableAncestorRects,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(threshold),\n ]\n );\n}\n\ninterface ScrollIntent {\n x: Record<Direction, boolean>;\n y: Record<Direction, boolean>;\n}\n\nconst defaultScrollIntent: ScrollIntent = {\n x: {[Direction.Backward]: false, [Direction.Forward]: false},\n y: {[Direction.Backward]: false, [Direction.Forward]: false},\n};\n\nfunction useScrollIntent({\n delta,\n disabled,\n}: {\n delta: Coordinates;\n disabled: boolean;\n}): ScrollIntent {\n const previousDelta = usePrevious(delta);\n\n return useLazyMemo<ScrollIntent>(\n (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 };\n\n // Keep track of the user intent to scroll in each direction for both axis\n return {\n x: {\n [Direction.Backward]:\n previousIntent.x[Direction.Backward] || direction.x === -1,\n [Direction.Forward]:\n previousIntent.x[Direction.Forward] || direction.x === 1,\n },\n y: {\n [Direction.Backward]:\n previousIntent.y[Direction.Backward] || direction.y === -1,\n [Direction.Forward]:\n previousIntent.y[Direction.Forward] || direction.y === 1,\n },\n };\n },\n [disabled, delta, previousDelta]\n );\n}\n","import {useLazyMemo} from '@dnd-kit/utilities';\n\nimport type {DraggableNode, DraggableNodes} from '../../store';\nimport type {UniqueIdentifier} from '../../types';\n\nexport function useCachedNode(\n draggableNodes: DraggableNodes,\n id: UniqueIdentifier | null\n): DraggableNode['node']['current'] {\n const draggableNode = id != null ? draggableNodes.get(id) : undefined;\n const node = draggableNode ? draggableNode.node.current : null;\n\n return useLazyMemo(\n (cachedNode) => {\n if (id == null) {\n return null;\n }\n\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 return node ?? cachedNode ?? null;\n },\n [node, id]\n );\n}\n","import {useMemo} from 'react';\n\nimport type {SensorActivatorFunction, SensorDescriptor} from '../../sensors';\nimport type {\n SyntheticListener,\n SyntheticListeners,\n} from './useSyntheticListeners';\n\nexport function useCombineActivators(\n sensors: SensorDescriptor<any>[],\n getSyntheticHandler: (\n handler: SensorActivatorFunction<any>,\n sensor: SensorDescriptor<any>\n ) => SyntheticListener['handler']\n): SyntheticListeners {\n return useMemo(\n () =>\n sensors.reduce<SyntheticListeners>((accumulator, sensor) => {\n const {sensor: Sensor} = sensor;\n\n const sensorActivators = Sensor.activators.map((activator) => ({\n eventName: activator.eventName,\n handler: getSyntheticHandler(activator.handler, sensor),\n }));\n\n return [...accumulator, ...sensorActivators];\n }, []),\n [sensors, getSyntheticHandler]\n );\n}\n","import {useCallback, useEffect, useRef, useState} from 'react';\nimport {useLatestValue, useLazyMemo} from '@dnd-kit/utilities';\n\nimport {Rect} from '../../utilities/rect';\nimport type {DroppableContainer, RectMap} from '../../store/types';\nimport type {ClientRect, UniqueIdentifier} from '../../types';\n\ninterface Arguments {\n dragging: boolean;\n dependencies: any[];\n config: DroppableMeasuring;\n}\n\nexport enum MeasuringStrategy {\n Always,\n BeforeDragging,\n WhileDragging,\n}\n\nexport enum MeasuringFrequency {\n Optimized = 'optimized',\n}\n\ntype MeasuringFunction = (element: HTMLElement) => ClientRect;\n\nexport interface DroppableMeasuring {\n measure: MeasuringFunction;\n strategy: MeasuringStrategy;\n frequency: MeasuringFrequency | number;\n}\n\nconst defaultValue: RectMap = new Map();\n\nexport function useDroppableMeasuring(\n containers: DroppableContainer[],\n {dragging, dependencies, config}: Arguments\n) {\n const [queue, setQueue] = useState<UniqueIdentifier[] | null>(null);\n const {frequency, measure, strategy} = config;\n const containersRef = useRef(containers);\n const disabled = isDisabled();\n const disabledRef = useLatestValue(disabled);\n const measureDroppableContainers = useCallback(\n (ids: UniqueIdentifier[] = []) => {\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 },\n [disabledRef]\n );\n const timeoutId = useRef<NodeJS.Timeout | null>(null);\n const droppableRects = useLazyMemo<RectMap>(\n (previousValue) => {\n if (disabled && !dragging) {\n return defaultValue;\n }\n\n if (\n !previousValue ||\n previousValue === defaultValue ||\n containersRef.current !== containers ||\n queue != null\n ) {\n const map: RectMap = new Map();\n\n for (let container of containers) {\n if (!container) {\n continue;\n }\n\n if (\n queue &&\n queue.length > 0 &&\n !queue.includes(container.id) &&\n container.rect.current\n ) {\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\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 },\n [containers, queue, dragging, disabled, measure]\n );\n\n useEffect(() => {\n containersRef.current = containers;\n }, [containers]);\n\n useEffect(\n () => {\n if (disabled) {\n return;\n }\n\n measureDroppableContainers();\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [dragging, disabled]\n );\n\n useEffect(\n () => {\n if (queue && queue.length > 0) {\n setQueue(null);\n }\n },\n //eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(queue)]\n );\n\n useEffect(\n () => {\n if (\n disabled ||\n typeof frequency !== 'number' ||\n timeoutId.current !== null\n ) {\n return;\n }\n\n timeoutId.current = setTimeout(() => {\n measureDroppableContainers();\n timeoutId.current = null;\n }, frequency);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [frequency, disabled, measureDroppableContainers, ...dependencies]\n );\n\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 case MeasuringStrategy.BeforeDragging:\n return dragging;\n default:\n return !dragging;\n }\n }\n}\n","import {useLazyMemo} from '@dnd-kit/utilities';\n\ntype AnyFunction = (...args: any) => any;\n\nexport function useInitialValue<\n T,\n U extends AnyFunction | undefined = undefined\n>(\n value: T | null,\n computeFn?: U\n): U extends AnyFunction ? ReturnType<U> | null : T | null {\n return useLazyMemo(\n (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 },\n [computeFn, value]\n );\n}\n","import type {ClientRect} from '../../types';\nimport {useInitialValue} from './useInitialValue';\n\nexport function useInitialRect(\n node: HTMLElement | null,\n measure: (node: HTMLElement) => ClientRect\n) {\n return useInitialValue(node, measure);\n}\n","import {useEffect, useMemo} from 'react';\nimport {useEvent} from '@dnd-kit/utilities';\n\ninterface Arguments {\n callback: MutationCallback;\n disabled?: boolean;\n}\n\n/**\n * Returns a new MutationObserver instance.\n * If `MutationObserver` is undefined in the execution environment, returns `undefined`.\n */\nexport function useMutationObserver({callback, disabled}: Arguments) {\n const handleMutations = useEvent(callback);\n const mutationObserver = useMemo(() => {\n if (\n disabled ||\n typeof window === 'undefined' ||\n typeof window.MutationObserver === 'undefined'\n ) {\n return undefined;\n }\n\n const {MutationObserver} = window;\n\n return new MutationObserver(handleMutations);\n }, [handleMutations, disabled]);\n\n useEffect(() => {\n return () => mutationObserver?.disconnect();\n }, [mutationObserver]);\n\n return mutationObserver;\n}\n","import {useEffect, useMemo} from 'react';\nimport {useEvent} from '@dnd-kit/utilities';\n\ninterface Arguments {\n callback: ResizeObserverCallback;\n disabled?: boolean;\n}\n\n/**\n * Returns a new ResizeObserver instance bound to the `onResize` callback.\n * If `ResizeObserver` is undefined in the execution environment, returns `undefined`.\n */\nexport function useResizeObserver({callback, disabled}: Arguments) {\n const handleResize = useEvent(callback);\n const resizeObserver = useMemo(\n () => {\n if (\n disabled ||\n typeof window === 'undefined' ||\n typeof window.ResizeObserver === 'undefined'\n ) {\n return undefined;\n }\n\n const {ResizeObserver} = window;\n\n return new ResizeObserver(handleResize);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [disabled]\n );\n\n useEffect(() => {\n return () => resizeObserver?.disconnect();\n }, [resizeObserver]);\n\n return resizeObserver;\n}\n","import {useState} from 'react';\nimport {useIsomorphicLayoutEffect} from '@dnd-kit/utilities';\n\nimport type {ClientRect} from '../../types';\nimport {getClientRect, Rect} from '../../utilities';\n\nimport {useMutationObserver} from './useMutationObserver';\nimport {useResizeObserver} from './useResizeObserver';\n\nfunction defaultMeasure(element: HTMLElement) {\n return new Rect(getClientRect(element), element);\n}\n\nexport function useRect(\n element: HTMLElement | null,\n measure: (element: HTMLElement) => ClientRect = defaultMeasure,\n fallbackRect?: ClientRect | null\n) {\n const [rect, setRect] = useState<ClientRect | null>(null);\n\n function measureRect() {\n setRect((currentRect): ClientRect | null => {\n if (!element) {\n return null;\n }\n \n if (element.isConnected === false) {\n // Fall back to last rect we measured if the element is\n // no longer connected to the DOM.\n return currentRect ?? fallbackRect ?? 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 {type, target} = record;\n\n if (\n type === 'childList' &&\n target instanceof HTMLElement &&\n target.contains(element)\n ) {\n measureRect();\n break;\n }\n }\n },\n });\n const resizeObserver = useResizeObserver({callback: measureRect});\n\n useIsomorphicLayoutEffect(() => {\n measureRect();\n\n if (element) {\n resizeObserver?.observe(element);\n mutationObserver?.observe(document.body, {\n childList: true,\n subtree: true,\n });\n } else {\n resizeObserver?.disconnect();\n mutationObserver?.disconnect();\n }\n }, [element]);\n\n return rect;\n}\n","import type {ClientRect} from '../../types';\nimport {getRectDelta} from '../../utilities';\n\nimport {useInitialValue} from './useInitialValue';\n\nexport function useRectDelta(rect: ClientRect | null) {\n const initialRect = useInitialValue(rect);\n\n return getRectDelta(rect, initialRect);\n}\n","import {useEffect, useRef} from 'react';\nimport {useLazyMemo} from '@dnd-kit/utilities';\n\nimport {getScrollableAncestors} from '../../utilities';\n\nconst defaultValue: Element[] = [];\n\nexport function useScrollableAncestors(node: HTMLElement | null) {\n const previousNode = useRef(node);\n\n const ancestors = useLazyMemo<Element[]>(\n (previousValue) => {\n if (!node) {\n return defaultValue;\n }\n\n if (\n previousValue &&\n previousValue !== defaultValue &&\n node &&\n previousNode.current &&\n node.parentNode === previousNode.current.parentNode\n ) {\n return previousValue;\n }\n\n return getScrollableAncestors(node);\n },\n [node]\n );\n\n useEffect(() => {\n previousNode.current = node;\n }, [node]);\n\n return ancestors;\n}\n","import {useState, useCallback, useMemo, useRef, useEffect} from 'react';\nimport {add} from '@dnd-kit/utilities';\n\nimport {\n defaultCoordinates,\n getScrollableElement,\n getScrollCoordinates,\n getScrollOffsets,\n} from '../../utilities';\nimport type {Coordinates} from '../../types';\n\ntype ScrollCoordinates = Map<HTMLElement | Window, Coordinates>;\n\nexport function useScrollOffsets(elements: Element[]): Coordinates {\n const [\n scrollCoordinates,\n setScrollCoordinates,\n ] = useState<ScrollCoordinates | null>(null);\n const prevElements = useRef(elements);\n\n // To-do: Throttle the handleScroll callback\n const handleScroll = useCallback((event: 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(\n scrollingElement,\n getScrollCoordinates(scrollingElement)\n );\n\n return new Map(scrollCoordinates);\n });\n }, []);\n\n useEffect(() => {\n const previousElements = prevElements.current;\n\n if (elements !== previousElements) {\n cleanup(previousElements);\n\n const entries = elements\n .map((element) => {\n const scrollableElement = getScrollableElement(element);\n\n if (scrollableElement) {\n scrollableElement.addEventListener('scroll', handleScroll, {\n passive: true,\n });\n\n return [\n scrollableElement,\n getScrollCoordinates(scrollableElement),\n ] as const;\n }\n\n return null;\n })\n .filter(\n (\n entry\n ): entry is [\n HTMLElement | (Window & typeof globalThis),\n Coordinates\n ] => entry != null\n );\n\n setScrollCoordinates(entries.length ? new Map(entries) : null);\n\n prevElements.current = elements;\n }\n\n return () => {\n cleanup(elements);\n cleanup(previousElements);\n };\n\n function cleanup(elements: Element[]) {\n elements.forEach((element) => {\n const scrollableElement = getScrollableElement(element);\n\n scrollableElement?.removeEventListener('scroll', handleScroll);\n });\n }\n }, [handleScroll, elements]);\n\n return useMemo(() => {\n if (elements.length) {\n return scrollCoordinates\n ? Array.from(scrollCoordinates.values()).reduce(\n (acc, coordinates) => add(acc, coordinates),\n defaultCoordinates\n )\n : getScrollOffsets(elements);\n }\n\n return defaultCoordinates;\n }, [elements, scrollCoordinates]);\n}\n","import {useEffect, useRef} from 'react';\nimport {Coordinates, subtract} from '@dnd-kit/utilities';\n\nimport {defaultCoordinates} from '../../utilities';\n\nexport function useScrollOffsetsDelta(\n scrollOffsets: Coordinates,\n dependencies: any[] = []\n) {\n const initialScrollOffsets = useRef<Coordinates | null>(null);\n\n useEffect(\n () => {\n initialScrollOffsets.current = null;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n dependencies\n );\n\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\n return initialScrollOffsets.current\n ? subtract(scrollOffsets, initialScrollOffsets.current)\n : defaultCoordinates;\n}\n","import {useEffect} from 'react';\nimport {canUseDOM} from '@dnd-kit/utilities';\n\nimport type {SensorDescriptor} from '../../sensors';\n\nexport function useSensorSetup(sensors: SensorDescriptor<any>[]) {\n useEffect(\n () => {\n if (!canUseDOM) {\n return;\n }\n\n const teardownFns = sensors.map(({sensor}) => sensor.setup?.());\n\n return () => {\n for (const teardown of teardownFns) {\n teardown?.();\n }\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(({sensor}) => sensor)\n );\n}\n","import {useMemo} from 'react';\n\nimport type {SyntheticEventName, UniqueIdentifier} from '../../types';\n\nexport type SyntheticListener = {\n eventName: SyntheticEventName;\n handler: (event: React.SyntheticEvent, id: UniqueIdentifier) => void;\n};\n\nexport type SyntheticListeners = SyntheticListener[];\n\nexport type SyntheticListenerMap = Record<string, Function>;\n\nexport function useSyntheticListeners(\n listeners: SyntheticListeners,\n id: UniqueIdentifier\n): SyntheticListenerMap {\n return useMemo(() => {\n return listeners.reduce<SyntheticListenerMap>(\n (acc, {eventName, handler}) => {\n acc[eventName] = (event: React.SyntheticEvent) => {\n handler(event, id);\n };\n\n return acc;\n },\n {} as SyntheticListenerMap\n );\n }, [listeners, id]);\n}\n","import {useMemo} from 'react';\n\nimport {getWindowClientRect} from '../../utilities/rect';\n\nexport function useWindowRect(element: typeof window | null) {\n return useMemo(() => (element ? getWindowClientRect(element) : null), [\n element,\n ]);\n}\n","import {useState} from 'react';\nimport {getWindow, useIsomorphicLayoutEffect} from '@dnd-kit/utilities';\n\nimport type {ClientRect} from '../../types';\nimport {Rect, getClientRect} from '../../utilities/rect';\nimport {isDocumentScrollingElement} from '../../utilities';\n\nimport {useResizeObserver} from './useResizeObserver';\nimport {useWindowRect} from './useWindowRect';\n\nconst defaultValue: Rect[] = [];\n\nexport function useRects(\n elements: Element[],\n measure: (element: Element) => ClientRect = getClientRect\n): ClientRect[] {\n const [firstElement] = elements;\n const windowRect = useWindowRect(\n firstElement ? getWindow(firstElement) : null\n );\n const [rects, setRects] = useState<ClientRect[]>(defaultValue);\n\n function measureRects() {\n setRects(() => {\n if (!elements.length) {\n return defaultValue;\n }\n\n return elements.map((element) =>\n isDocumentScrollingElement(element)\n ? (windowRect as ClientRect)\n : new Rect(measure(element), element)\n );\n });\n }\n\n const resizeObserver = useResizeObserver({callback: measureRects});\n\n useIsomorphicLayoutEffect(() => {\n resizeObserver?.disconnect();\n measureRects();\n elements.forEach((element) => resizeObserver?.observe(element));\n }, [elements]);\n\n return rects;\n}\n","import {isHTMLElement} from '@dnd-kit/utilities';\n\nexport function getMeasurableNode(\n node: HTMLElement | undefined | null\n): HTMLElement | null {\n if (!node) {\n return null;\n }\n\n if (node.children.length > 1) {\n return node;\n }\n const firstChild = node.children[0];\n\n return isHTMLElement(firstChild) ? firstChild : node;\n}\n","import {useMemo, useCallback, useState} from 'react';\nimport {isHTMLElement, useNodeRef} from '@dnd-kit/utilities';\n\nimport {useResizeObserver} from './useResizeObserver';\nimport {getMeasurableNode} from '../../utilities/nodes';\nimport type {PublicContextDescriptor} from '../../store';\nimport type {ClientRect} from '../../types';\n\ninterface Arguments {\n measure(element: HTMLElement): ClientRect;\n}\n\nexport function useDragOverlayMeasuring({\n measure,\n}: Arguments): PublicContextDescriptor['dragOverlay'] {\n const [rect, setRect] = useState<ClientRect | null>(null);\n const handleResize = useCallback(\n (entries: ResizeObserverEntry[]) => {\n for (const {target} of entries) {\n if (isHTMLElement(target)) {\n setRect((rect) => {\n const newRect = measure(target);\n\n return rect\n ? {...rect, width: newRect.width, height: newRect.height}\n : newRect;\n });\n break;\n }\n }\n },\n [measure]\n );\n const resizeObserver = useResizeObserver({callback: handleResize});\n const handleNodeChange = useCallback(\n (element) => {\n const node = getMeasurableNode(element);\n\n resizeObserver?.disconnect();\n\n if (node) {\n resizeObserver?.observe(node);\n }\n\n setRect(node ? measure(node) : null);\n },\n [measure, resizeObserver]\n );\n const [nodeRef, setRef] = useNodeRef(handleNodeChange);\n\n return useMemo(\n () => ({\n nodeRef,\n rect,\n setRef,\n }),\n [rect, nodeRef, setRef]\n );\n}\n","import type {DeepRequired} from '@dnd-kit/utilities';\n\nimport type {DataRef} from '../../store/types';\nimport {KeyboardSensor, PointerSensor} from '../../sensors';\nimport {MeasuringStrategy, MeasuringFrequency} from '../../hooks/utilities';\nimport {\n getClientRect,\n getTransformAgnosticClientRect,\n} from '../../utilities/rect';\n\nimport type {MeasuringConfiguration} from './types';\n\nexport const defaultSensors = [\n {sensor: PointerSensor, options: {}},\n {sensor: KeyboardSensor, options: {}},\n];\n\nexport const defaultData: DataRef = {current: {}};\n\nexport const defaultMeasuringConfiguration: DeepRequired<MeasuringConfiguration> = {\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","import type {UniqueIdentifier} from '../types';\nimport type {DroppableContainer} from './types';\n\ntype Identifier = UniqueIdentifier | null | undefined;\n\nexport class DroppableContainersMap extends Map<\n UniqueIdentifier,\n DroppableContainer\n> {\n get(id: Identifier) {\n return id != null ? super.get(id) ?? undefined : undefined;\n }\n\n toArray(): DroppableContainer[] {\n return Array.from(this.values());\n }\n\n getEnabled(): DroppableContainer[] {\n return this.toArray().filter(({disabled}) => !disabled);\n }\n\n getNodeFor(id: Identifier) {\n return this.get(id)?.node.current ?? undefined;\n }\n}\n","import {createContext} from 'react';\n\nimport {noop} from '../utilities/other';\nimport {defaultMeasuringConfiguration} from '../components/DndContext/defaults';\nimport {DroppableContainersMap} from './constructors';\nimport type {InternalContextDescriptor, PublicContextDescriptor} from './types';\n\nexport const defaultPublicContext: PublicContextDescriptor = {\n activatorEvent: null,\n active: null,\n activeNode: null,\n activeNodeRect: null,\n collisions: null,\n containerNodeRect: null,\n draggableNodes: new Map(),\n droppableRects: new Map(),\n droppableContainers: 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};\n\nexport const defaultInternalContext: InternalContextDescriptor = {\n activatorEvent: null,\n activators: [],\n active: null,\n activeNodeRect: null,\n ariaDescribedById: {\n draggable: '',\n },\n dispatch: noop,\n draggableNodes: new Map(),\n over: null,\n measureDroppableContainers: noop,\n};\n\nexport const InternalContext = createContext<InternalContextDescriptor>(\n defaultInternalContext\n);\n\nexport const PublicContext = createContext<PublicContextDescriptor>(\n defaultPublicContext\n);\n","import {Action, Actions} from './actions';\nimport {DroppableContainersMap} from './constructors';\nimport type {State} from './types';\n\nexport function getInitialState(): State {\n return {\n draggable: {\n active: null,\n initialCoordinates: {x: 0, y: 0},\n nodes: new Map(),\n translate: {x: 0, y: 0},\n },\n droppable: {\n containers: new DroppableContainersMap(),\n },\n };\n}\n\nexport function reducer(state: State, action: Actions): State {\n switch (action.type) {\n case Action.DragStart:\n return {\n ...state,\n draggable: {\n ...state.draggable,\n initialCoordinates: action.initialCoordinates,\n active: action.active,\n },\n };\n case Action.DragMove:\n if (state.draggable.active == null) {\n return state;\n }\n\n return {\n ...state,\n draggable: {\n ...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 case Action.DragEnd:\n case Action.DragCancel:\n return {\n ...state,\n draggable: {\n ...state.draggable,\n active: null,\n initialCoordinates: {x: 0, y: 0},\n translate: {x: 0, y: 0},\n },\n };\n\n case Action.RegisterDroppable: {\n const {element} = action;\n const {id} = element;\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, element);\n\n return {\n ...state,\n droppable: {\n ...state.droppable,\n containers,\n },\n };\n }\n\n case Action.SetDroppableDisabled: {\n const {id, key, disabled} = 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, {\n ...element,\n disabled,\n });\n\n return {\n ...state,\n droppable: {\n ...state.droppable,\n containers,\n },\n };\n }\n\n case Action.UnregisterDroppable: {\n const {id, key} = 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\n return {\n ...state,\n droppable: {\n ...state.droppable,\n containers,\n },\n };\n }\n\n default: {\n return state;\n }\n }\n}\n","import {useContext, useEffect} from 'react';\nimport {\n findFirstFocusableNode,\n isKeyboardEvent,\n usePrevious,\n} from '@dnd-kit/utilities';\n\nimport {InternalContext} from '../../../store';\n\ninterface Props {\n disabled: boolean;\n}\n\nexport function RestoreFocus({disabled}: Props) {\n const {active, activatorEvent, draggableNodes} = useContext(InternalContext);\n const previousActivatorEvent = usePrevious(activatorEvent);\n const previousActiveId = usePrevious(active?.id);\n\n // Restore keyboard focus on the activator node\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 {activatorNode, node} = 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 }, [\n activatorEvent,\n disabled,\n draggableNodes,\n previousActiveId,\n previousActivatorEvent,\n ]);\n\n return null;\n}\n","import type {FirstArgument, Transform} from '@dnd-kit/utilities';\n\nimport type {Modifiers, Modifier} from './types';\n\nexport function applyModifiers(\n modifiers: Modifiers | undefined,\n {transform, ...args}: FirstArgument<Modifier>\n): Transform {\n return modifiers?.length\n ? modifiers.reduce<Transform>((accumulator, modifier) => {\n return modifier({\n transform: accumulator,\n ...args,\n });\n }, transform)\n : transform;\n}\n","import {useMemo} from 'react';\nimport type {DeepRequired} from '@dnd-kit/utilities';\n\nimport {defaultMeasuringConfiguration} from '../defaults';\nimport type {MeasuringConfiguration} from '../types';\n\nexport function useMeasuringConfiguration(\n config: MeasuringConfiguration | undefined\n): DeepRequired<MeasuringConfiguration> {\n return useMemo(\n () => ({\n draggable: {\n ...defaultMeasuringConfiguration.draggable,\n ...config?.draggable,\n },\n droppable: {\n ...defaultMeasuringConfiguration.droppable,\n ...config?.droppable,\n },\n dragOverlay: {\n ...defaultMeasuringConfiguration.dragOverlay,\n ...config?.dragOverlay,\n },\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [config?.draggable, config?.droppable, config?.dragOverlay]\n );\n}\n","import {useRef} from 'react';\nimport {useIsomorphicLayoutEffect} from '@dnd-kit/utilities';\n\nimport {getRectDelta} from '../../../utilities/rect';\nimport {getFirstScrollableAncestor} from '../../../utilities/scroll';\nimport type {ClientRect} from '../../../types';\nimport type {DraggableNode} from '../../../store';\nimport type {MeasuringFunction} from '../types';\n\ninterface Options {\n activeNode: DraggableNode | null | undefined;\n config: boolean | {x: boolean; y: boolean} | undefined;\n initialRect: ClientRect | null;\n measure: MeasuringFunction;\n}\n\nexport function useLayoutShiftScrollCompensation({\n activeNode,\n measure,\n initialRect,\n config = true,\n}: Options) {\n const initialized = useRef(false);\n const {x, y} = typeof config === 'boolean' ? {x: config, y: config} : config;\n\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 }\n\n // Get the most up to date node ref for the active draggable\n const node = 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 }\n\n // Only perform layout shift scroll compensation once\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","import React, {\n memo,\n createContext,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react';\nimport {unstable_batchedUpdates} from 'react-dom';\nimport {\n add,\n getEventCoordinates,\n getWindow,\n useLatestValue,\n useIsomorphicLayoutEffect,\n useUniqueId,\n} from '@dnd-kit/utilities';\nimport type {Transform} from '@dnd-kit/utilities';\n\nimport {\n Action,\n PublicContext,\n InternalContext,\n PublicContextDescriptor,\n InternalContextDescriptor,\n getInitialState,\n reducer,\n} from '../../store';\nimport {DndMonitorContext, useDndMonitorProvider} from '../DndMonitor';\nimport {\n useAutoScroller,\n useCachedNode,\n useCombineActivators,\n useDragOverlayMeasuring,\n useDroppableMeasuring,\n useInitialRect,\n useRect,\n useRectDelta,\n useRects,\n useScrollableAncestors,\n useScrollOffsets,\n useScrollOffsetsDelta,\n useSensorSetup,\n useWindowRect,\n} from '../../hooks/utilities';\nimport type {AutoScrollOptions, SyntheticListener} from '../../hooks/utilities';\nimport type {\n Sensor,\n SensorContext,\n SensorDescriptor,\n SensorActivatorFunction,\n SensorInstance,\n} from '../../sensors';\nimport {\n adjustScale,\n CollisionDetection,\n defaultCoordinates,\n getAdjustedRect,\n getFirstCollision,\n rectIntersection,\n} from '../../utilities';\nimport {applyModifiers, Modifiers} from '../../modifiers';\nimport type {Active, Over} from '../../store/types';\nimport type {\n DragStartEvent,\n DragCancelEvent,\n DragEndEvent,\n DragMoveEvent,\n DragOverEvent,\n UniqueIdentifier,\n DragPendingEvent,\n DragAbortEvent,\n} from '../../types';\nimport {\n Accessibility,\n Announcements,\n RestoreFocus,\n ScreenReaderInstructions,\n} from '../Accessibility';\n\nimport {defaultData, defaultSensors} from './defaults';\nimport {\n useLayoutShiftScrollCompensation,\n useMeasuringConfiguration,\n} from './hooks';\nimport type {MeasuringConfiguration} from './types';\n\nexport interface Props {\n id?: string;\n accessibility?: {\n announcements?: Announcements;\n container?: Element;\n restoreFocus?: boolean;\n screenReaderInstructions?: ScreenReaderInstructions;\n };\n autoScroll?: boolean | AutoScrollOptions;\n cancelDrop?: CancelDrop;\n children?: React.ReactNode;\n collisionDetection?: CollisionDetection;\n measuring?: MeasuringConfiguration;\n modifiers?: Modifiers;\n sensors?: SensorDescriptor<any>[];\n onDragAbort?(event: DragAbortEvent): void;\n onDragPending?(event: DragPendingEvent): void;\n onDragStart?(event: DragStartEvent): void;\n onDragMove?(event: DragMoveEvent): void;\n onDragOver?(event: DragOverEvent): void;\n onDragEnd?(event: DragEndEvent): void;\n onDragCancel?(event: DragCancelEvent): void;\n}\n\nexport interface CancelDropArguments extends DragEndEvent {}\n\nexport type CancelDrop = (\n args: CancelDropArguments\n) => boolean | Promise<boolean>;\n\ninterface DndEvent extends Event {\n dndKit?: {\n capturedBy: Sensor<any>;\n };\n}\n\nexport const ActiveDraggableContext = createContext<Transform>({\n ...defaultCoordinates,\n scaleX: 1,\n scaleY: 1,\n});\n\nenum Status {\n Uninitialized,\n Initializing,\n Initialized,\n}\n\nexport const DndContext = memo(function DndContext({\n id,\n accessibility,\n autoScroll = true,\n children,\n sensors = defaultSensors,\n collisionDetection = rectIntersection,\n measuring,\n modifiers,\n ...props\n}: Props) {\n const store = useReducer(reducer, undefined, getInitialState);\n const [state, dispatch] = store;\n const [dispatchMonitorEvent, registerMonitorListener] =\n useDndMonitorProvider();\n const [status, setStatus] = useState<Status>(Status.Uninitialized);\n const isInitialized = status === Status.Initialized;\n const {\n draggable: {active: activeId, nodes: draggableNodes, translate},\n droppable: {containers: droppableContainers},\n } = state;\n const node = activeId != null ? draggableNodes.get(activeId) : null;\n const activeRects = useRef<Active['rect']['current']>({\n initial: null,\n translated: null,\n });\n const active = useMemo<Active | null>(\n () =>\n activeId != null\n ? {\n id: activeId,\n // It's possible for the active node to unmount while dragging\n data: node?.data ?? defaultData,\n rect: activeRects,\n }\n : null,\n [activeId, node]\n );\n const activeRef = useRef<UniqueIdentifier | null>(null);\n const [activeSensor, setActiveSensor] = useState<SensorInstance | null>(null);\n const [activatorEvent, setActivatorEvent] = useState<Event | null>(null);\n const latestProps = useLatestValue(props, Object.values(props));\n const draggableDescribedById = useUniqueId(`DndDescribedBy`, id);\n const enabledDroppableContainers = useMemo(\n () => droppableContainers.getEnabled(),\n [droppableContainers]\n );\n const measuringConfiguration = useMeasuringConfiguration(measuring);\n const {droppableRects, measureDroppableContainers, 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(\n () => (activatorEvent ? getEventCoordinates(activatorEvent) : null),\n [activatorEvent]\n );\n const autoScrollOptions = getAutoScrollerOptions();\n const initialActiveNodeRect = useInitialRect(\n activeNode,\n measuringConfiguration.draggable.measure\n );\n\n useLayoutShiftScrollCompensation({\n activeNode: activeId != null ? draggableNodes.get(activeId) : null,\n config: autoScrollOptions.layoutShiftCompensation,\n initialRect: initialActiveNodeRect,\n measure: measuringConfiguration.draggable.measure,\n });\n\n const activeNodeRect = useRect(\n activeNode,\n measuringConfiguration.draggable.measure,\n initialActiveNodeRect\n );\n const containerNodeRect = useRect(\n activeNode ? activeNode.parentElement : null\n );\n const sensorContext = useRef<SensorContext>({\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(\n sensorContext.current.over?.id\n );\n const dragOverlay = useDragOverlayMeasuring({\n measure: measuringConfiguration.dragOverlay.measure,\n });\n\n // Use the rect of the drag overlay if it is mounted\n const draggingNode = dragOverlay.nodeRef.current ?? activeNode;\n const draggingNodeRect = isInitialized\n ? dragOverlay.rect ?? activeNodeRect\n : null;\n const usesDragOverlay = Boolean(\n dragOverlay.nodeRef.current && dragOverlay.rect\n );\n // The delta between the previous and new position of the draggable node\n // is only relevant when there is no drag overlay\n const nodeRectDelta = useRectDelta(usesDragOverlay ? null : activeNodeRect);\n\n // Get the window rect of the dragging node\n const windowRect = useWindowRect(\n draggingNode ? getWindow(draggingNode) : null\n );\n\n // Get scrollable ancestors of the dragging node\n const scrollableAncestors = useScrollableAncestors(\n isInitialized ? overNode ?? activeNode : null\n );\n const scrollableAncestorRects = useRects(scrollableAncestors);\n\n // Apply modifiers\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\n const pointerCoordinates = activationCoordinates\n ? add(activationCoordinates, translate)\n : null;\n\n const scrollOffsets = useScrollOffsets(scrollableAncestors);\n // Represents the scroll delta since dragging was initiated\n const scrollAdjustment = useScrollOffsetsDelta(scrollOffsets);\n // Represents the scroll delta since the last time the active node rect was measured\n const activeNodeScrollDelta = useScrollOffsetsDelta(scrollOffsets, [\n activeNodeRect,\n ]);\n\n const scrollAdjustedTranslate = add(modifiedTranslate, scrollAdjustment);\n\n const collisionRect = draggingNodeRect\n ? getAdjustedRect(draggingNodeRect, modifiedTranslate)\n : null;\n\n const collisions =\n active && collisionRect\n ? collisionDetection({\n active,\n collisionRect,\n droppableRects,\n droppableContainers: enabledDroppableContainers,\n pointerCoordinates,\n })\n : null;\n const overId = getFirstCollision(collisions, 'id');\n const [over, setOver] = useState<Over | null>(null);\n\n // When there is no drag overlay used, we need to account for the\n // window scroll delta\n const appliedTranslate = usesDragOverlay\n ? modifiedTranslate\n : add(modifiedTranslate, activeNodeScrollDelta);\n\n const transform = adjustScale(\n appliedTranslate,\n over?.rect ?? null,\n activeNodeRect\n );\n\n const activeSensorRef = useRef<SensorInstance | null>(null);\n const instantiateSensor = useCallback(\n (\n event: React.SyntheticEvent,\n {sensor: Sensor, options}: SensorDescriptor<any>\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\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 onAbort(id) {\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {onDragAbort} = latestProps.current;\n const event: DragAbortEvent = {id};\n onDragAbort?.(event);\n dispatchMonitorEvent({type: 'onDragAbort', event});\n },\n onPending(id, constraint, initialCoordinates, offset) {\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {onDragPending} = latestProps.current;\n const event: DragPendingEvent = {\n id,\n constraint,\n initialCoordinates,\n offset,\n };\n\n onDragPending?.(event);\n dispatchMonitorEvent({type: 'onDragPending', event});\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 {onDragStart} = latestProps.current;\n const event: DragStartEvent = {\n activatorEvent,\n active: {id, data: draggableNode.data, rect: activeRects},\n };\n\n unstable_batchedUpdates(() => {\n onDragStart?.(event);\n setStatus(Status.Initializing);\n dispatch({\n type: Action.DragStart,\n initialCoordinates,\n active: id,\n });\n dispatchMonitorEvent({type: 'onDragStart', event});\n setActiveSensor(activeSensorRef.current);\n setActivatorEvent(activatorEvent);\n });\n },\n onMove(coordinates) {\n dispatch({\n type: Action.DragMove,\n coordinates,\n });\n },\n onEnd: createHandler(Action.DragEnd),\n onCancel: createHandler(Action.DragCancel),\n });\n\n activeSensorRef.current = sensorInstance;\n\n function createHandler(type: Action.DragEnd | Action.DragCancel) {\n return async function handler() {\n const {active, collisions, over, scrollAdjustedTranslate} =\n sensorContext.current;\n let event: DragEndEvent | null = null;\n\n if (active && scrollAdjustedTranslate) {\n const {cancelDrop} = latestProps.current;\n\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\n unstable_batchedUpdates(() => {\n dispatch({type});\n setStatus(Status.Uninitialized);\n setOver(null);\n setActiveSensor(null);\n setActivatorEvent(null);\n activeSensorRef.current = null;\n\n const eventName =\n type === Action.DragEnd ? 'onDragEnd' : 'onDragCancel';\n\n if (event) {\n const handler = latestProps.current[eventName];\n\n handler?.(event);\n dispatchMonitorEvent({type: eventName, event});\n }\n });\n };\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes]\n );\n\n const bindActivatorToSensorInstantiator = useCallback(\n (\n handler: SensorActivatorFunction<any>,\n sensor: SensorDescriptor<any>\n ): SyntheticListener['handler'] => {\n return (event, active) => {\n const nativeEvent = event.nativeEvent as DndEvent;\n const activeDraggableNode = draggableNodes.get(active);\n\n if (\n // Another sensor is already instantiating\n activeRef.current !== null ||\n // No active draggable\n !activeDraggableNode ||\n // Event has already been captured\n nativeEvent.dndKit ||\n nativeEvent.defaultPrevented\n ) {\n return;\n }\n\n const activationContext = {\n active: activeDraggableNode,\n };\n const shouldActivate = handler(\n event,\n sensor.options,\n activationContext\n );\n\n if (shouldActivate === true) {\n nativeEvent.dndKit = {\n capturedBy: sensor.sensor,\n };\n\n activeRef.current = active;\n instantiateSensor(event, sensor);\n }\n };\n },\n [draggableNodes, instantiateSensor]\n );\n\n const activators = useCombineActivators(\n sensors,\n bindActivatorToSensorInstantiator\n );\n\n useSensorSetup(sensors);\n\n useIsomorphicLayoutEffect(() => {\n if (activeNodeRect && status === Status.Initializing) {\n setStatus(Status.Initialized);\n }\n }, [activeNodeRect, status]);\n\n useEffect(\n () => {\n const {onDragMove} = latestProps.current;\n const {active, activatorEvent, collisions, over} = sensorContext.current;\n\n if (!active || !activatorEvent) {\n return;\n }\n\n const event: DragMoveEvent = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y,\n },\n over,\n };\n\n unstable_batchedUpdates(() => {\n onDragMove?.(event);\n dispatchMonitorEvent({type: 'onDragMove', event});\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [scrollAdjustedTranslate.x, scrollAdjustedTranslate.y]\n );\n\n useEffect(\n () => {\n const {\n active,\n activatorEvent,\n collisions,\n droppableContainers,\n scrollAdjustedTranslate,\n } = sensorContext.current;\n\n if (\n !active ||\n activeRef.current == null ||\n !activatorEvent ||\n !scrollAdjustedTranslate\n ) {\n return;\n }\n\n const {onDragOver} = latestProps.current;\n const overContainer = droppableContainers.get(overId);\n const over =\n overContainer && overContainer.rect.current\n ? {\n id: overContainer.id,\n rect: overContainer.rect.current,\n data: overContainer.data,\n disabled: overContainer.disabled,\n }\n : null;\n const event: DragOverEvent = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y,\n },\n over,\n };\n\n unstable_batchedUpdates(() => {\n setOver(over);\n onDragOver?.(event);\n dispatchMonitorEvent({type: 'onDragOver', event});\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [overId]\n );\n\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\n activeRects.current = {\n initial: draggingNodeRect,\n translated: collisionRect,\n };\n }, [\n active,\n activeNode,\n collisions,\n collisionRect,\n draggableNodes,\n draggingNode,\n draggingNodeRect,\n droppableRects,\n droppableContainers,\n over,\n scrollableAncestors,\n scrollAdjustedTranslate,\n ]);\n\n useAutoScroller({\n ...autoScrollOptions,\n delta: translate,\n draggingRect: collisionRect,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects,\n });\n\n const publicContext = useMemo(() => {\n const context: PublicContextDescriptor = {\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\n return context;\n }, [\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\n const internalContext = useMemo(() => {\n const context: InternalContextDescriptor = {\n activatorEvent,\n activators,\n active,\n activeNodeRect,\n ariaDescribedById: {\n draggable: draggableDescribedById,\n },\n dispatch,\n draggableNodes,\n over,\n measureDroppableContainers,\n };\n\n return context;\n }, [\n activatorEvent,\n activators,\n active,\n activeNodeRect,\n dispatch,\n draggableDescribedById,\n draggableNodes,\n over,\n measureDroppableContainers,\n ]);\n\n return (\n <DndMonitorContext.Provider value={registerMonitorListener}>\n <InternalContext.Provider value={internalContext}>\n <PublicContext.Provider value={publicContext}>\n <ActiveDraggableContext.Provider value={transform}>\n {children}\n </ActiveDraggableContext.Provider>\n </PublicContext.Provider>\n <RestoreFocus disabled={accessibility?.restoreFocus === false} />\n </InternalContext.Provider>\n <Accessibility\n {...accessibility}\n hiddenTextDescribedById={draggableDescribedById}\n />\n </DndMonitorContext.Provider>\n );\n\n function getAutoScrollerOptions() {\n const activeSensorDisablesAutoscroll =\n activeSensor?.autoScrollEnabled === false;\n const autoScrollGloballyDisabled =\n typeof autoScroll === 'object'\n ? autoScroll.enabled === false\n : autoScroll === false;\n const enabled =\n isInitialized &&\n !activeSensorDisablesAutoscroll &&\n !autoScrollGloballyDisabled;\n\n if (typeof autoScroll === 'object') {\n return {\n ...autoScroll,\n enabled,\n };\n }\n\n return {enabled};\n }\n});\n","import {createContext, useContext, useMemo} from 'react';\nimport {\n Transform,\n useNodeRef,\n useIsomorphicLayoutEffect,\n useLatestValue,\n useUniqueId,\n} from '@dnd-kit/utilities';\n\nimport {InternalContext, Data} from '../store';\nimport type {UniqueIdentifier} from '../types';\nimport {ActiveDraggableContext} from '../components/DndContext';\nimport {useSyntheticListeners, SyntheticListenerMap} from './utilities';\n\nexport interface UseDraggableArguments {\n id: UniqueIdentifier;\n data?: Data;\n disabled?: boolean;\n attributes?: {\n role?: string;\n roleDescription?: string;\n tabIndex?: number;\n };\n}\n\nexport interface DraggableAttributes {\n role: string;\n tabIndex: number;\n 'aria-disabled': boolean;\n 'aria-pressed': boolean | undefined;\n 'aria-roledescription': string;\n 'aria-describedby': string;\n}\n\nexport type DraggableSyntheticListeners = SyntheticListenerMap | undefined;\n\nconst NullContext = createContext<any>(null);\n\nconst defaultRole = 'button';\n\nconst ID_PREFIX = 'Draggable';\n\nexport function useDraggable({\n id,\n data,\n disabled = false,\n attributes,\n}: UseDraggableArguments) {\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 ?? {};\n const isDragging = active?.id === id;\n const transform: Transform | null = useContext(\n isDragging ? ActiveDraggableContext : NullContext\n );\n const [node, setNodeRef] = useNodeRef();\n const [activatorNode, setActivatorNodeRef] = useNodeRef();\n const listeners = useSyntheticListeners(activators, id);\n const dataRef = useLatestValue(data);\n\n useIsomorphicLayoutEffect(\n () => {\n draggableNodes.set(id, {id, key, node, activatorNode, 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 },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes, id]\n );\n\n const memoizedAttributes: DraggableAttributes = useMemo(\n () => ({\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 }),\n [\n disabled,\n role,\n tabIndex,\n isDragging,\n roleDescription,\n ariaDescribedById.draggable,\n ]\n );\n\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","import {ContextType, useContext} from 'react';\nimport {PublicContext} from '../store';\n\nexport function useDndContext() {\n return useContext(PublicContext);\n}\n\nexport type UseDndContextReturnValue = ContextType<typeof PublicContext>;\n","import {useCallback, useContext, useEffect, useRef} from 'react';\nimport {useLatestValue, useNodeRef, useUniqueId} from '@dnd-kit/utilities';\n\nimport {InternalContext, Action, Data} from '../store';\nimport type {ClientRect, UniqueIdentifier} from '../types';\n\nimport {useResizeObserver} from './utilities';\n\ninterface ResizeObserverConfig {\n /** Whether the ResizeObserver should be disabled entirely */\n disabled?: boolean;\n /** Resize events may affect the layout and position of other droppable containers.\n * Specify an array of `UniqueIdentifier` of droppable containers that should also be re-measured\n * when this droppable container resizes. Specifying an empty array re-measures all droppable containers.\n */\n updateMeasurementsFor?: UniqueIdentifier[];\n /** Represents the debounce timeout between when resize events are observed and when elements are re-measured */\n timeout?: number;\n}\n\nexport interface UseDroppableArguments {\n id: UniqueIdentifier;\n disabled?: boolean;\n data?: Data;\n resizeObserverConfig?: ResizeObserverConfig;\n}\n\nconst ID_PREFIX = 'Droppable';\n\nconst defaultResizeObserverConfig = {\n timeout: 25,\n};\n\nexport function useDroppable({\n data,\n disabled = false,\n id,\n resizeObserverConfig,\n}: UseDroppableArguments) {\n const key = useUniqueId(ID_PREFIX);\n const {active, dispatch, over, measureDroppableContainers} =\n useContext(InternalContext);\n const previous = useRef({disabled});\n const resizeObserverConnected = useRef(false);\n const rect = useRef<ClientRect | null>(null);\n const callbackId = useRef<NodeJS.Timeout | null>(null);\n const {\n disabled: resizeObserverDisabled,\n updateMeasurementsFor,\n timeout: resizeObserverTimeout,\n } = {\n ...defaultResizeObserverConfig,\n ...resizeObserverConfig,\n };\n const ids = useLatestValue(updateMeasurementsFor ?? id);\n const handleResize = useCallback(\n () => {\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(\n Array.isArray(ids.current) ? ids.current : [ids.current]\n );\n callbackId.current = null;\n }, resizeObserverTimeout);\n },\n //eslint-disable-next-line react-hooks/exhaustive-deps\n [resizeObserverTimeout]\n );\n const resizeObserver = useResizeObserver({\n callback: handleResize,\n disabled: resizeObserverDisabled || !active,\n });\n const handleNodeChange = useCallback(\n (newElement: HTMLElement | null, previousElement: HTMLElement | null) => {\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 },\n [resizeObserver]\n );\n const [nodeRef, setNodeRef] = useNodeRef(handleNodeChange);\n const dataRef = useLatestValue(data);\n\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\n useEffect(\n () => {\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\n return () =>\n dispatch({\n type: Action.UnregisterDroppable,\n key,\n id,\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [id]\n );\n\n useEffect(() => {\n if (disabled !== previous.current.disabled) {\n dispatch({\n type: Action.SetDroppableDisabled,\n id,\n key,\n disabled,\n });\n\n previous.current.disabled = disabled;\n }\n }, [id, key, disabled, dispatch]);\n\n return {\n active,\n rect,\n isOver: over?.id === id,\n node: nodeRef,\n over,\n setNodeRef,\n };\n}\n","import React, {cloneElement, useState} from 'react';\nimport {useIsomorphicLayoutEffect, usePrevious} from '@dnd-kit/utilities';\n\nimport type {UniqueIdentifier} from '../../../../types';\n\nexport type Animation = (\n key: UniqueIdentifier,\n node: HTMLElement\n) => Promise<void> | void;\n\nexport interface Props {\n animation: Animation;\n children: React.ReactElement | null;\n}\n\nexport function AnimationManager({animation, children}: Props) {\n const [\n clonedChildren,\n setClonedChildren,\n ] = useState<React.ReactElement | null>(null);\n const [element, setElement] = useState<HTMLElement | null>(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?.key;\n const id = 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\n return (\n <>\n {children}\n {clonedChildren ? cloneElement(clonedChildren, {ref: setElement}) : null}\n </>\n );\n}\n","import React from 'react';\nimport type {Transform} from '@dnd-kit/utilities';\n\nimport {InternalContext, defaultInternalContext} from '../../../../store';\nimport {ActiveDraggableContext} from '../../../DndContext';\n\ninterface Props {\n children: React.ReactNode;\n}\n\nconst defaultTransform: Transform = {\n x: 0,\n y: 0,\n scaleX: 1,\n scaleY: 1,\n};\n\nexport function NullifiedContextProvider({children}: Props) {\n return (\n <InternalContext.Provider value={defaultInternalContext}>\n <ActiveDraggableContext.Provider value={defaultTransform}>\n {children}\n </ActiveDraggableContext.Provider>\n </InternalContext.Provider>\n );\n}\n","import React, {forwardRef} from 'react';\nimport {CSS, isKeyboardEvent} from '@dnd-kit/utilities';\n\nimport type {Transform} from '@dnd-kit/utilities';\n\nimport {getRelativeTransformOrigin} from '../../../../utilities';\nimport type {ClientRect, UniqueIdentifier} from '../../../../types';\n\ntype TransitionGetter = (\n activatorEvent: Event | null\n) => React.CSSProperties['transition'] | undefined;\n\nexport interface Props {\n as: keyof JSX.IntrinsicElements;\n activatorEvent: Event | null;\n adjustScale?: boolean;\n children?: React.ReactNode;\n className?: string;\n id: UniqueIdentifier;\n rect: ClientRect | null;\n style?: React.CSSProperties;\n transition?: string | TransitionGetter;\n transform: Transform;\n}\n\nconst baseStyles: React.CSSProperties = {\n position: 'fixed',\n touchAction: 'none',\n};\n\nconst defaultTransition: TransitionGetter = (activatorEvent) => {\n const isKeyboardActivator = isKeyboardEvent(activatorEvent);\n\n return isKeyboardActivator ? 'transform 250ms ease' : undefined;\n};\n\nexport const PositionedOverlay = forwardRef<HTMLElement, Props>(\n (\n {\n as,\n activatorEvent,\n adjustScale,\n children,\n className,\n rect,\n style,\n transform,\n transition = defaultTransition,\n },\n ref\n ) => {\n if (!rect) {\n return null;\n }\n\n const scaleAdjustedTransform = adjustScale\n ? transform\n : {\n ...transform,\n scaleX: 1,\n scaleY: 1,\n };\n const styles: React.CSSProperties | undefined = {\n ...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:\n adjustScale && activatorEvent\n ? getRelativeTransformOrigin(\n activatorEvent as MouseEvent | KeyboardEvent | TouchEvent,\n rect\n )\n : undefined,\n transition:\n typeof transition === 'function'\n ? transition(activatorEvent)\n : transition,\n ...style,\n };\n\n return React.createElement(\n as,\n {\n className,\n style: styles,\n ref,\n },\n children\n );\n }\n);\n","import {CSS, useEvent, getWindow} from '@dnd-kit/utilities';\nimport type {DeepRequired, Transform} from '@dnd-kit/utilities';\n\nimport type {\n Active,\n DraggableNode,\n DraggableNodes,\n DroppableContainers,\n} from '../../../store';\nimport type {ClientRect, UniqueIdentifier} from '../../../types';\nimport {getMeasurableNode} from '../../../utilities/nodes';\nimport {scrollIntoViewIfNeeded} from '../../../utilities/scroll';\nimport {parseTransform} from '../../../utilities/transform';\nimport type {MeasuringConfiguration} from '../../DndContext';\nimport type {Animation} from '../components';\n\ninterface SharedParameters {\n active: {\n id: UniqueIdentifier;\n data: Active['data'];\n node: HTMLElement;\n rect: ClientRect;\n };\n dragOverlay: {\n node: HTMLElement;\n rect: ClientRect;\n };\n draggableNodes: DraggableNodes;\n droppableContainers: DroppableContainers;\n measuringConfiguration: DeepRequired<MeasuringConfiguration>;\n}\n\nexport interface KeyframeResolverParameters extends SharedParameters {\n transform: {\n initial: Transform;\n final: Transform;\n };\n}\n\nexport type KeyframeResolver = (\n parameters: KeyframeResolverParameters\n) => Keyframe[];\n\nexport interface DropAnimationOptions {\n keyframes?: KeyframeResolver;\n duration?: number;\n easing?: string;\n sideEffects?: DropAnimationSideEffects | null;\n}\n\nexport type DropAnimation = DropAnimationFunction | DropAnimationOptions;\n\ninterface Arguments {\n draggableNodes: DraggableNodes;\n droppableContainers: DroppableContainers;\n measuringConfiguration: DeepRequired<MeasuringConfiguration>;\n config?: DropAnimation | null;\n}\n\nexport interface DropAnimationFunctionArguments extends SharedParameters {\n transform: Transform;\n}\n\nexport type DropAnimationFunction = (\n args: DropAnimationFunctionArguments\n) => Promise<void> | void;\n\ntype CleanupFunction = () => void;\n\nexport interface DropAnimationSideEffectsParameters extends SharedParameters {}\n\nexport type DropAnimationSideEffects = (\n parameters: DropAnimationSideEffectsParameters\n) => CleanupFunction | void;\n\ntype ExtractStringProperties<T> = {\n [K in keyof T]?: T[K] extends string ? string : never;\n};\n\ntype Styles = ExtractStringProperties<CSSStyleDeclaration>;\n\ninterface DefaultDropAnimationSideEffectsOptions {\n className?: {\n active?: string;\n dragOverlay?: string;\n };\n styles?: {\n active?: Styles;\n dragOverlay?: Styles;\n };\n}\n\nexport const defaultDropAnimationSideEffects = (\n options: DefaultDropAnimationSideEffectsOptions\n): DropAnimationSideEffects => ({active, dragOverlay}) => {\n const originalStyles: Record<string, string> = {};\n const {styles, className} = options;\n\n if (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?.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?.active) {\n active.node.classList.add(className.active);\n }\n\n if (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?.active) {\n active.node.classList.remove(className.active);\n }\n };\n};\n\nconst defaultKeyframeResolver: KeyframeResolver = ({\n transform: {initial, final},\n}) => [\n {\n transform: CSS.Transform.toString(initial),\n },\n {\n transform: CSS.Transform.toString(final),\n },\n];\n\nexport const defaultDropAnimationConfiguration: Required<DropAnimationOptions> = {\n duration: 250,\n easing: 'ease',\n keyframes: defaultKeyframeResolver,\n sideEffects: defaultDropAnimationSideEffects({\n styles: {\n active: {\n opacity: '0',\n },\n },\n }),\n};\n\nexport function useDropAnimation({\n config,\n draggableNodes,\n droppableContainers,\n measuringConfiguration,\n}: Arguments) {\n return useEvent<Animation>((id, node) => {\n if (config === null) {\n return;\n }\n\n const activeDraggable: DraggableNode | undefined = 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 const {transform} = getWindow(node).getComputedStyle(node);\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return;\n }\n\n const animation: DropAnimationFunction =\n typeof config === 'function'\n ? config\n : createDefaultDropAnimation(config);\n\n scrollIntoViewIfNeeded(\n activeNode,\n measuringConfiguration.draggable.measure\n );\n\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(\n options: DropAnimationOptions | undefined\n): DropAnimationFunction {\n const {duration, easing, sideEffects, keyframes} = {\n ...defaultDropAnimationConfiguration,\n ...options,\n };\n\n return ({active, dragOverlay, transform, ...rest}) => {\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\n const scale = {\n scaleX:\n transform.scaleX !== 1\n ? (active.rect.width * transform.scaleX) / dragOverlay.rect.width\n : 1,\n scaleY:\n transform.scaleY !== 1\n ? (active.rect.height * transform.scaleY) / dragOverlay.rect.height\n : 1,\n };\n const finalTransform = {\n x: transform.x - delta.x,\n y: transform.y - delta.y,\n ...scale,\n };\n\n const animationKeyframes = keyframes({\n ...rest,\n active,\n dragOverlay,\n transform: {initial: transform, 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?.({active, dragOverlay, ...rest});\n const animation = dragOverlay.node.animate(animationKeyframes, {\n duration,\n easing,\n fill: 'forwards',\n });\n\n return new Promise((resolve) => {\n animation.onfinish = () => {\n cleanup?.();\n resolve();\n };\n });\n };\n}\n","import {useMemo} from 'react';\n\nimport type {UniqueIdentifier} from '../../../types';\n\nlet key = 0;\n\nexport function useKey(id: UniqueIdentifier | undefined) {\n return useMemo(() => {\n if (id == null) {\n return;\n }\n\n key++;\n return key;\n }, [id]);\n}\n","import React, {useContext} from 'react';\n\nimport {applyModifiers, Modifiers} from '../../modifiers';\nimport {ActiveDraggableContext} from '../DndContext';\nimport {useDndContext} from '../../hooks';\nimport {useInitialValue} from '../../hooks/utilities';\n\nimport {\n AnimationManager,\n NullifiedContextProvider,\n PositionedOverlay,\n} from './components';\nimport type {PositionedOverlayProps} from './components';\n\nimport {useDropAnimation, useKey} from './hooks';\nimport type {DropAnimation} from './hooks';\n\nexport interface Props\n extends Pick<\n PositionedOverlayProps,\n 'adjustScale' | 'children' | 'className' | 'style' | 'transition'\n > {\n dropAnimation?: DropAnimation | null | undefined;\n modifiers?: Modifiers;\n wrapperElement?: keyof JSX.IntrinsicElements;\n zIndex?: number;\n}\n\nexport const DragOverlay = React.memo(\n ({\n adjustScale = false,\n children,\n dropAnimation: dropAnimationConfig,\n style,\n transition,\n modifiers,\n wrapperElement = 'div',\n className,\n zIndex = 999,\n }: Props) => {\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?.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 });\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 const ref = initialRect ? dragOverlay.setRef : undefined;\n\n return (\n <NullifiedContextProvider>\n <AnimationManager animation={dropAnimation}>\n {active && key ? (\n <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 >\n {children}\n </PositionedOverlay>\n ) : null}\n </AnimationManager>\n </NullifiedContextProvider>\n );\n }\n);\n","/**\n * Move an array item to a different position. Returns a new array with the item moved to the new position.\n */\nexport function arrayMove<T>(array: T[], from: number, to: number): T[] {\n const newArray = array.slice();\n newArray.splice(\n to < 0 ? newArray.length + to : to,\n 0,\n newArray.splice(from, 1)[0]\n );\n\n return newArray;\n}\n","import type {\n ClientRect,\n UniqueIdentifier,\n UseDndContextReturnValue,\n} from '@dnd-kit/core';\n\nexport function getSortedRects(\n items: UniqueIdentifier[],\n rects: UseDndContextReturnValue['droppableRects']\n) {\n return items.reduce<ClientRect[]>((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","export function isValidIndex(index: number | null): index is number {\n return index !== null && index >= 0;\n}\n","import type {UniqueIdentifier} from '@dnd-kit/core';\n\nexport function itemsEqual(a: UniqueIdentifier[], b: UniqueIdentifier[]) {\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","import type {Disabled} from '../types';\n\nexport function normalizeDisabled(disabled: boolean | Disabled): Disabled {\n if (typeof disabled === 'boolean') {\n return {\n draggable: disabled,\n droppable: disabled,\n };\n }\n\n return disabled;\n}\n","import {arrayMove} from '../utilities';\nimport type {SortingStrategy} from '../types';\n\nexport const rectSortingStrategy: SortingStrategy = ({\n rects,\n activeIndex,\n overIndex,\n index,\n}) => {\n const newRects = arrayMove(rects, overIndex, activeIndex);\n\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","import type {ClientRect} from '@dnd-kit/core';\nimport type {SortingStrategy} from '../types';\n\n// To-do: We should be calculating scale transformation\nconst defaultScale = {\n scaleX: 1,\n scaleY: 1,\n};\n\nexport const verticalListSortingStrategy: SortingStrategy = ({\n activeIndex,\n activeNodeRect: fallbackActiveRect,\n index,\n rects,\n overIndex,\n}) => {\n const activeNodeRect = 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:\n activeIndex < overIndex\n ? overIndexRect.top +\n overIndexRect.height -\n (activeNodeRect.top + activeNodeRect.height)\n : overIndexRect.top - activeNodeRect.top,\n ...defaultScale,\n };\n }\n\n const itemGap = getItemGap(rects, index, activeIndex);\n\n if (index > activeIndex && index <= overIndex) {\n return {\n x: 0,\n y: -activeNodeRect.height - itemGap,\n ...defaultScale,\n };\n }\n\n if (index < activeIndex && index >= overIndex) {\n return {\n x: 0,\n y: activeNodeRect.height + itemGap,\n ...defaultScale,\n };\n }\n\n return {\n x: 0,\n y: 0,\n ...defaultScale,\n };\n};\n\nfunction getItemGap(\n clientRects: ClientRect[],\n index: number,\n activeIndex: number\n) {\n const currentRect: ClientRect | undefined = clientRects[index];\n const previousRect: ClientRect | undefined = clientRects[index - 1];\n const nextRect: ClientRect | undefined = clientRects[index + 1];\n\n if (!currentRect) {\n return 0;\n }\n\n if (activeIndex < index) {\n return previousRect\n ? currentRect.top - (previousRect.top + previousRect.height)\n : nextRect\n ? nextRect.top - (currentRect.top + currentRect.height)\n : 0;\n }\n\n return nextRect\n ? nextRect.top - (currentRect.top + currentRect.height)\n : previousRect\n ? currentRect.top - (previousRect.top + previousRect.height)\n : 0;\n}\n","import React, {useEffect, useMemo, useRef} from 'react';\nimport {useDndContext, ClientRect, UniqueIdentifier} from '@dnd-kit/core';\nimport {useIsomorphicLayoutEffect, useUniqueId} from '@dnd-kit/utilities';\n\nimport type {Disabled, SortingStrategy} from '../types';\nimport {getSortedRects, itemsEqual, normalizeDisabled} from '../utilities';\nimport {rectSortingStrategy} from '../strategies';\n\nexport interface Props {\n children: React.ReactNode;\n items: (UniqueIdentifier | {id: UniqueIdentifier})[];\n strategy?: SortingStrategy;\n id?: string;\n disabled?: boolean | Disabled;\n}\n\nconst ID_PREFIX = 'Sortable';\n\ninterface ContextDescriptor {\n activeIndex: number;\n containerId: string;\n disabled: Disabled;\n disableTransforms: boolean;\n items: UniqueIdentifier[];\n overIndex: number;\n useDragOverlay: boolean;\n sortedRects: ClientRect[];\n strategy: SortingStrategy;\n}\n\nexport const Context = React.createContext<ContextDescriptor>({\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});\n\nexport function SortableContext({\n children,\n id,\n items: userDefinedItems,\n strategy = rectSortingStrategy,\n disabled: disabledProp = false,\n}: Props) {\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<UniqueIdentifier[]>(\n () =>\n userDefinedItems.map((item) =>\n typeof item === 'object' && 'id' in item ? item.id : item\n ),\n [userDefinedItems]\n );\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 =\n (overIndex !== -1 && activeIndex === -1) || itemsHaveChanged;\n const disabled = normalizeDisabled(disabledProp);\n\n useIsomorphicLayoutEffect(() => {\n if (itemsHaveChanged && isDragging) {\n measureDroppableContainers(items);\n }\n }, [itemsHaveChanged, items, isDragging, measureDroppableContainers]);\n\n useEffect(() => {\n previousItemsRef.current = items;\n }, [items]);\n\n const contextValue = useMemo(\n (): ContextDescriptor => ({\n activeIndex,\n containerId,\n disabled,\n disableTransforms,\n items,\n overIndex,\n useDragOverlay,\n sortedRects: getSortedRects(items, droppableRects),\n strategy,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n activeIndex,\n containerId,\n disabled.draggable,\n disabled.droppable,\n disableTransforms,\n items,\n overIndex,\n droppableRects,\n useDragOverlay,\n strategy,\n ]\n );\n\n return <Context.Provider value={contextValue}>{children}</Context.Provider>;\n}\n","import {CSS} from '@dnd-kit/utilities';\n\nimport {arrayMove} from '../utilities';\n\nimport type {\n AnimateLayoutChanges,\n NewIndexGetter,\n SortableTransition,\n} from './types';\n\nexport const defaultNewIndexGetter: NewIndexGetter = ({\n id,\n items,\n activeIndex,\n overIndex,\n}) => arrayMove(items, activeIndex, overIndex).indexOf(id);\n\nexport const defaultAnimateLayoutChanges: AnimateLayoutChanges = ({\n containerId,\n isSorting,\n wasDragging,\n index,\n items,\n newIndex,\n previousItems,\n previousContainerId,\n transition,\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};\n\nexport const defaultTransition: SortableTransition = {\n duration: 200,\n easing: 'ease',\n};\n\nexport const transitionProperty = 'transform';\n\nexport const disabledTransition = CSS.Transition.toString({\n property: transitionProperty,\n duration: 0,\n easing: 'linear',\n});\n\nexport const defaultAttributes = {\n roleDescription: 'sortable',\n};\n","import {useEffect, useRef, useState} from 'react';\nimport {getClientRect, ClientRect} from '@dnd-kit/core';\nimport {Transform, useIsomorphicLayoutEffect} from '@dnd-kit/utilities';\n\ninterface Arguments {\n rect: React.MutableRefObject<ClientRect | null>;\n disabled: boolean;\n index: number;\n node: React.MutableRefObject<HTMLElement | null>;\n}\n\n/*\n * When the index of an item changes while sorting,\n * we need to temporarily disable the transforms\n */\nexport function useDerivedTransform({disabled, index, node, rect}: Arguments) {\n const [derivedTransform, setDerivedtransform] = useState<Transform | null>(\n null\n );\n const previousIndex = useRef(index);\n\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\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\n useEffect(() => {\n if (derivedTransform) {\n setDerivedtransform(null);\n }\n }, [derivedTransform]);\n\n return derivedTransform;\n}\n","import {useContext, useEffect, useMemo, useRef} from 'react';\nimport {\n useDraggable,\n useDroppable,\n UseDraggableArguments,\n UseDroppableArguments,\n} from '@dnd-kit/core';\nimport type {Data} from '@dnd-kit/core';\nimport {CSS, isKeyboardEvent, useCombinedRefs} from '@dnd-kit/utilities';\n\nimport {Context} from '../components';\nimport type {Disabled, SortableData, SortingStrategy} from '../types';\nimport {isValidIndex} from '../utilities';\nimport {\n defaultAnimateLayoutChanges,\n defaultAttributes,\n defaultNewIndexGetter,\n defaultTransition,\n disabledTransition,\n transitionProperty,\n} from './defaults';\nimport type {\n AnimateLayoutChanges,\n NewIndexGetter,\n SortableTransition,\n} from './types';\nimport {useDerivedTransform} from './utilities';\n\nexport interface Arguments\n extends Omit<UseDraggableArguments, 'disabled'>,\n Pick<UseDroppableArguments, 'resizeObserverConfig'> {\n animateLayoutChanges?: AnimateLayoutChanges;\n disabled?: boolean | Disabled;\n getNewIndex?: NewIndexGetter;\n strategy?: SortingStrategy;\n transition?: SortableTransition | null;\n}\n\nexport function useSortable({\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}: Arguments) {\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: Disabled = normalizeLocalDisabled(\n localDisabled,\n globalDisabled\n );\n const index = items.indexOf(id);\n const data = useMemo<SortableData & Data>(\n () => ({sortable: {containerId, index, items}, ...customData}),\n [containerId, customData, index, items]\n );\n const itemsAfterCurrentSortable = useMemo(\n () => items.slice(items.indexOf(id)),\n [items, id]\n );\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: {\n ...defaultAttributes,\n ...userDefinedAttributes,\n },\n disabled: disabled.draggable,\n });\n const setNodeRef = useCombinedRefs(setDroppableNodeRef, setDraggableNodeRef);\n const isSorting = Boolean(active);\n const displaceItem =\n isSorting &&\n !disableTransforms &&\n isValidIndex(activeIndex) &&\n isValidIndex(overIndex);\n const shouldDisplaceDragSource = !useDragOverlay && isDragging;\n const dragSourceDisplacement =\n shouldDisplaceDragSource && displaceItem ? transform : null;\n const strategy = localStrategy ?? globalStrategy;\n const finalTransform = displaceItem\n ? dragSourceDisplacement ??\n strategy({\n rects: sortedRects,\n activeNodeRect,\n activeIndex,\n overIndex,\n index,\n })\n : null;\n const newIndex =\n isValidIndex(activeIndex) && isValidIndex(overIndex)\n ? getNewIndex({id, items, activeIndex, overIndex})\n : index;\n const activeId = 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\n const derivedTransform = useDerivedTransform({\n disabled: !shouldAnimateLayoutChanges,\n index,\n node,\n rect,\n });\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\n useEffect(() => {\n if (activeId === previous.current.activeId) {\n return;\n }\n\n if (activeId && !previous.current.activeId) {\n previous.current.activeId = activeId;\n return;\n }\n\n const timeoutId = setTimeout(() => {\n previous.current.activeId = activeId;\n }, 50);\n\n return () => clearTimeout(timeoutId);\n }, [activeId]);\n\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 ?? finalTransform,\n transition: getTransition(),\n };\n\n function getTransition() {\n if (\n // Temporarily disable transitions for a single frame to set up derived transforms\n derivedTransform ||\n // Or to prevent items jumping to back to their \"new\" position when items change\n (itemsHaveChanged && previous.current.newIndex === index)\n ) {\n return disabledTransition;\n }\n\n if (\n (shouldDisplaceDragSource && !isKeyboardEvent(activatorEvent)) ||\n !transition\n ) {\n return undefined;\n }\n\n if (isSorting || shouldAnimateLayoutChanges) {\n return CSS.Transition.toString({\n ...transition,\n property: transitionProperty,\n });\n }\n\n return undefined;\n }\n}\n\nfunction normalizeLocalDisabled(\n localDisabled: Arguments['disabled'],\n globalDisabled: Disabled\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?.draggable ?? globalDisabled.draggable,\n droppable: localDisabled?.droppable ?? globalDisabled.droppable,\n };\n}\n","import type {\n Active,\n Data,\n DroppableContainer,\n DraggableNode,\n Over,\n} from '@dnd-kit/core';\n\nimport type {SortableData} from './data';\n\nexport function hasSortableData<\n T extends Active | Over | DraggableNode | DroppableContainer\n>(\n entry: T | null | undefined\n): entry is T & {data: {current: Data<SortableData>}} {\n if (!entry) {\n return false;\n }\n\n const data = entry.data.current;\n\n if (\n data &&\n 'sortable' in data &&\n typeof data.sortable === 'object' &&\n 'containerId' in data.sortable &&\n 'items' in data.sortable &&\n 'index' in data.sortable\n ) {\n return true;\n }\n\n return false;\n}\n","import {\n closestCorners,\n getScrollableAncestors,\n getFirstCollision,\n KeyboardCode,\n DroppableContainer,\n KeyboardCoordinateGetter,\n} from '@dnd-kit/core';\nimport {subtract} from '@dnd-kit/utilities';\n\nimport {hasSortableData} from '../../types';\n\nconst directions: string[] = [\n KeyboardCode.Down,\n KeyboardCode.Right,\n KeyboardCode.Up,\n KeyboardCode.Left,\n];\n\nexport const sortableKeyboardCoordinates: KeyboardCoordinateGetter = (\n event,\n {\n context: {\n active,\n collisionRect,\n droppableRects,\n droppableContainers,\n over,\n scrollableAncestors,\n },\n }\n) => {\n if (directions.includes(event.code)) {\n event.preventDefault();\n\n if (!active || !collisionRect) {\n return;\n }\n\n const filteredContainers: DroppableContainer[] = [];\n\n droppableContainers.getEnabled().forEach((entry) => {\n if (!entry || 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 break;\n case KeyboardCode.Up:\n if (collisionRect.top > rect.top) {\n filteredContainers.push(entry);\n }\n break;\n case KeyboardCode.Left:\n if (collisionRect.left > rect.left) {\n filteredContainers.push(entry);\n }\n break;\n case KeyboardCode.Right:\n if (collisionRect.left < rect.left) {\n filteredContainers.push(entry);\n }\n break;\n }\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?.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?.node.current;\n\n if (newNode && newRect && activeDroppable && newDroppable) {\n const newScrollAncestors = getScrollableAncestors(newNode);\n const hasDifferentScrollAncestors = newScrollAncestors.some(\n (element, index) => scrollableAncestors[index] !== element\n );\n const hasSameContainer = isSameContainer(activeDroppable, newDroppable);\n const isAfterActive = isAfter(activeDroppable, newDroppable);\n const offset =\n hasDifferentScrollAncestors || !hasSameContainer\n ? {\n x: 0,\n y: 0,\n }\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\n const newCoordinates =\n offset.x && offset.y\n ? rectCoordinates\n : subtract(rectCoordinates, offset);\n\n return newCoordinates;\n }\n }\n }\n\n return undefined;\n};\n\nfunction isSameContainer(a: DroppableContainer, b: DroppableContainer) {\n if (!hasSortableData(a) || !hasSortableData(b)) {\n return false;\n }\n\n return (\n a.data.current.sortable.containerId === b.data.current.sortable.containerId\n );\n}\n\nfunction isAfter(a: DroppableContainer, b: DroppableContainer) {\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","import { createContext, useCallback, useContext, useMemo, useRef, useState } from 'react';\nimport type { DragEndEvent, DragStartEvent, Modifier, UniqueIdentifier } from '@dnd-kit/core';\nimport {\n DndContext,\n DragOverlay,\n KeyboardSensor,\n PointerSensor,\n closestCenter,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport { SortableContext, sortableKeyboardCoordinates, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { Blocks } from '@yoopta/editor';\nimport type { YooptaBlockData } from '@yoopta/editor';\n\nimport type { BlockDndContextProps, BlockDndContextValue, SortableBlockData } from './types';\nimport './block-dnd.css';\n\nconst BlockDndReactContext = createContext<BlockDndContextValue | null>(null);\n\nexport const useBlockDndContext = (): BlockDndContextValue => {\n const context = useContext(BlockDndReactContext);\n if (!context) {\n throw new Error('useBlockDndContext must be used within a BlockDndContext');\n }\n return context;\n};\n\n// Custom modifier to restrict to vertical axis\nconst restrictToVerticalAxis: Modifier = ({ transform }) => ({\n ...transform,\n x: 0,\n});\n\nexport const BlockDndContext = ({\n editor,\n children,\n onDragStart,\n onDragEnd,\n renderDragOverlay,\n enableMultiDrag = true,\n}: BlockDndContextProps) => {\n const [activeId, setActiveId] = useState<UniqueIdentifier | null>(null);\n const [draggedIds, setDraggedIds] = useState<UniqueIdentifier[]>([]);\n // Store sortable data by blockId\n const sortableDataRef = useRef<Map<string, SortableBlockData>>(new Map());\n\n // Get sorted block IDs for SortableContext\n const blockIds = useMemo(\n () =>\n Object.keys(editor.children).sort((a, b) => {\n const aOrder = editor.children[a].meta.order;\n const bOrder = editor.children[b].meta.order;\n return aOrder - bOrder;\n }),\n [editor.children],\n );\n\n const activeBlock = (activeId ? editor.children[activeId as string] ?? null : null)\n\n // Get all dragged blocks data\n const draggedBlocks = useMemo(\n () =>\n draggedIds.map((id) => editor.children[id as string]).filter(Boolean) as YooptaBlockData[],\n [draggedIds, editor.children],\n );\n\n // Configure sensors\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n // Small distance to distinguish click from drag\n distance: 5,\n },\n }),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n );\n\n const handleDragStart = useCallback(\n (event: DragStartEvent) => {\n const { active } = event;\n setActiveId(active.id);\n\n // Determine which blocks are being dragged\n const selectedPaths = editor.path.selected;\n let idsToMove: UniqueIdentifier[] = [active.id];\n\n if (enableMultiDrag && Array.isArray(selectedPaths) && selectedPaths.length > 1) {\n // Get block IDs for all selected paths\n const selectedBlockIds = selectedPaths\n .map((path) => {\n const block = Blocks.getBlock(editor, { at: path });\n return block?.id;\n })\n .filter((id): id is string => id !== undefined);\n\n // Only use multi-drag if the active block is part of the selection\n if (selectedBlockIds.includes(active.id as string)) {\n idsToMove = selectedBlockIds;\n }\n }\n\n setDraggedIds(idsToMove);\n\n // Callback\n const blocks = idsToMove\n .map((id) => editor.children[id as string])\n .filter(Boolean) as YooptaBlockData[];\n onDragStart?.(event, blocks);\n },\n [editor, enableMultiDrag, onDragStart],\n );\n\n const handleDragEnd = useCallback(\n (event: DragEndEvent) => {\n const { active, over } = event;\n\n setActiveId(null);\n setDraggedIds([]);\n\n if (!over || active.id === over.id) {\n onDragEnd?.(event, false);\n return;\n }\n\n const currentActiveBlock = editor.children[active.id as string];\n const overBlock = editor.children[over.id as string];\n\n if (!currentActiveBlock || !overBlock) {\n onDragEnd?.(event, false);\n return;\n }\n\n const fromIndex = currentActiveBlock.meta.order;\n const toIndex = overBlock.meta.order;\n\n if (fromIndex === toIndex) {\n onDragEnd?.(event, false);\n return;\n }\n\n // Move the block(s)\n editor.batchOperations(() => {\n if (draggedIds.length > 1) {\n // Multi-block move: move all selected blocks\n // Sort by current order to maintain relative positions\n const sortedIds = [...draggedIds].sort((a, b) => {\n const aOrder = editor.children[a as string]?.meta.order ?? 0;\n const bOrder = editor.children[b as string]?.meta.order ?? 0;\n return aOrder - bOrder;\n });\n\n // Calculate target position\n const targetIndex = toIndex;\n\n // Move each block\n sortedIds.forEach((id, idx) => {\n editor.moveBlock(id as string, targetIndex + idx);\n });\n } else {\n // Single block move\n editor.moveBlock(active.id as string, toIndex);\n }\n });\n\n // Clear selection after move\n editor.setPath({ current: toIndex, selected: null });\n\n onDragEnd?.(event, true);\n },\n [editor, draggedIds, onDragEnd],\n );\n\n const registerSortable = useCallback((blockId: string, data: SortableBlockData) => {\n sortableDataRef.current.set(blockId, data);\n }, []);\n\n const unregisterSortable = useCallback((blockId: string) => {\n sortableDataRef.current.delete(blockId);\n }, []);\n\n const getSortable = useCallback((blockId: string): SortableBlockData | null => sortableDataRef.current.get(blockId) || null, []);\n\n const contextValue = useMemo<BlockDndContextValue>(\n () => ({\n activeId,\n activeBlock,\n isDragging: activeId !== null,\n draggedIds,\n editor,\n registerSortable,\n unregisterSortable,\n getSortable,\n }),\n [activeId, activeBlock, draggedIds, editor, registerSortable, unregisterSortable, getSortable],\n );\n\n // Default drag overlay\n const defaultDragOverlay = draggedBlocks.length > 0 && (\n <div className=\"yoopta-block-dnd-overlay\">\n <div className=\"yoopta-block-dnd-overlay-icon\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M6 2h4M6 8h4M6 14h4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </div>\n <div className=\"yoopta-block-dnd-overlay-content\">\n <span className=\"yoopta-block-dnd-overlay-text\">\n {draggedBlocks.length === 1 ? (\n <>Moving block</>\n ) : (\n <>\n Moving <strong>{draggedBlocks.length}</strong> blocks\n </>\n )}\n </span>\n </div>\n </div>\n );\n\n return (\n <BlockDndReactContext.Provider value={contextValue}>\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n modifiers={[restrictToVerticalAxis]}>\n <SortableContext items={blockIds} strategy={verticalListSortingStrategy}>\n {children}\n </SortableContext>\n <DragOverlay dropAnimation={null}>\n {activeId ? (renderDragOverlay ? renderDragOverlay(draggedBlocks) : defaultDragOverlay) : null}\n </DragOverlay>\n </DndContext>\n </BlockDndReactContext.Provider>\n );\n};\n","import type { CSSProperties } from 'react';\nimport { useEffect } from 'react';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\n\nimport { useBlockDndContext } from './block-dnd-context';\nimport type { SortableBlockProps } from './types';\n\nexport const SortableBlock = ({ id, children, className, disabled = false, useDragHandle = false }: SortableBlockProps) => {\n const { draggedIds, isDragging, registerSortable, unregisterSortable } = useBlockDndContext();\n\n const {\n attributes,\n listeners,\n setNodeRef,\n setActivatorNodeRef,\n transform,\n transition,\n isDragging: isThisDragging,\n isOver,\n } = useSortable({\n id,\n disabled,\n });\n\n // Register sortable data for DragHandle\n useEffect(() => {\n if (useDragHandle) {\n registerSortable(id, {\n setActivatorNodeRef,\n listeners: listeners as Record<string, (event: any) => void>,\n attributes,\n });\n return () => {\n unregisterSortable(id);\n };\n }\n }, [id, useDragHandle, setActivatorNodeRef, listeners, attributes, registerSortable, unregisterSortable]);\n\n // Check if this block is part of a multi-drag\n const isPartOfMultiDrag = draggedIds.includes(id) && draggedIds.length > 1;\n const isBeingDragged = isThisDragging || (isDragging && draggedIds.includes(id));\n\n const style: CSSProperties = {\n transform: CSS.Transform.toString(transform),\n transition,\n opacity: isBeingDragged ? 0.5 : 1,\n position: 'relative' as const,\n };\n\n const combinedClassName = [\n 'yoopta-block-dnd-sortable',\n isThisDragging && 'yoopta-block-dnd-sortable--dragging',\n isOver && 'yoopta-block-dnd-sortable--over',\n isPartOfMultiDrag && 'yoopta-block-dnd-sortable--multi',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div\n ref={setNodeRef}\n style={style}\n className={combinedClassName}\n {...(!useDragHandle ? attributes : {})}\n {...(!useDragHandle ? listeners : {})}\n data-block-dnd-id={id}\n data-block-dnd-dragging={isBeingDragged || undefined}\n data-block-dnd-over={isOver || undefined}>\n {children}\n {isOver && !isThisDragging && <div className=\"yoopta-block-dnd-drop-indicator\" />}\n </div>\n );\n};\n","import type { MouseEvent as ReactMouseEvent } from 'react';\nimport { cloneElement, forwardRef, isValidElement, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { useBlockDndContext } from './block-dnd-context';\nimport type { DragHandleProps } from './types';\n\nexport const DragHandle = forwardRef<HTMLButtonElement, DragHandleProps>(\n ({ blockId, children, className, onClick, asChild = false }, ref) => {\n const { isDragging, getSortable } = useBlockDndContext();\n const [isHolding, setIsHolding] = useState(false);\n const didDragRef = useRef(false);\n\n // Get sortable data for this block\n const sortableData = blockId ? getSortable(blockId) : null;\n\n // Store ref in a mutable ref to avoid assignment issues\n const refCallback = useRef<typeof ref>(ref);\n refCallback.current = ref;\n\n // Combine refs\n const setRefs = useCallback(\n (node: HTMLElement | null) => {\n if (sortableData) {\n sortableData.setActivatorNodeRef(node as HTMLButtonElement | null);\n }\n const currentRef = refCallback.current;\n if (typeof currentRef === 'function') {\n currentRef(node as HTMLButtonElement);\n } else if (currentRef) {\n // eslint-disable-next-line no-param-reassign\n (currentRef as React.MutableRefObject<HTMLButtonElement | null>).current = node as HTMLButtonElement;\n }\n },\n [sortableData],\n );\n\n // Track if drag actually happened\n useEffect(() => {\n if (isDragging) {\n didDragRef.current = true;\n setIsHolding(true);\n } else {\n // Reset after drag ends\n const timer = setTimeout(() => {\n didDragRef.current = false;\n setIsHolding(false);\n }, 100);\n return () => clearTimeout(timer);\n }\n }, [isDragging]);\n\n const handleClick = useCallback(\n (e: ReactMouseEvent<HTMLElement>) => {\n // Only call onClick if we didn't drag\n if (!didDragRef.current && !isDragging) {\n onClick?.(e as unknown as MouseEvent);\n }\n },\n [isDragging, onClick],\n );\n\n const combinedClassName = [\n 'yoopta-block-dnd-handle',\n isHolding && 'yoopta-block-dnd-handle--holding',\n isDragging && 'yoopta-block-dnd-handle--dragging',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n // If no sortable data or no blockId (not inside SortableBlock with useDragHandle), return disabled button\n if (!sortableData || !blockId) {\n if (asChild && isValidElement(children)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const childProps = children.props as any;\n const childRef = childProps.ref;\n\n // Combine refs: our ref + child's ref\n const combinedRef = (node: HTMLElement | null) => {\n // Call our ref\n if (typeof ref === 'function') {\n ref(node as HTMLButtonElement);\n } else if (ref) {\n // eslint-disable-next-line no-param-reassign\n (ref as React.MutableRefObject<HTMLButtonElement | null>).current = node as HTMLButtonElement;\n }\n // Call child's ref if it exists\n if (childRef) {\n if (typeof childRef === 'function') {\n childRef(node);\n } else if (childRef && 'current' in childRef) {\n // eslint-disable-next-line no-param-reassign\n (childRef as React.MutableRefObject<HTMLElement | null>).current = node;\n }\n }\n };\n\n return cloneElement(children, {\n ...childProps,\n ref: combinedRef,\n className,\n disabled: true,\n });\n }\n return (\n <button type=\"button\" ref={ref} className={className} disabled>\n {children}\n </button>\n );\n }\n\n // If asChild is true, merge props with child element\n if (asChild && isValidElement(children)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const childProps = children.props as any;\n const childRef = childProps.ref;\n\n // Combine refs: setActivatorNodeRef + our ref + child's ref\n const combinedRef = (node: HTMLElement | null) => {\n // Set activator node ref for dnd-kit\n if (sortableData) {\n sortableData.setActivatorNodeRef(node as HTMLButtonElement | null);\n }\n \n // Call our ref (from forwardRef)\n const currentRef = refCallback.current;\n if (typeof currentRef === 'function') {\n currentRef(node as HTMLButtonElement);\n } else if (currentRef) {\n // eslint-disable-next-line no-param-reassign\n (currentRef as React.MutableRefObject<HTMLButtonElement | null>).current = node as HTMLButtonElement;\n }\n \n // Call child's ref if it exists (important for dragHandleRef in FloatingBlockActions)\n if (childRef) {\n if (typeof childRef === 'function') {\n childRef(node);\n } else if (childRef && 'current' in childRef) {\n // eslint-disable-next-line no-param-reassign\n (childRef as React.MutableRefObject<HTMLElement | null>).current = node;\n }\n }\n };\n\n return cloneElement(children, {\n ...childProps,\n ref: combinedRef,\n className: [combinedClassName, childProps.className].filter(Boolean).join(' '),\n onClick: (e: ReactMouseEvent<HTMLElement>) => {\n handleClick(e);\n childProps.onClick?.(e);\n },\n ...sortableData.attributes,\n ...sortableData.listeners,\n 'data-block-dnd-handle': true,\n 'data-block-id': blockId,\n 'aria-label': childProps['aria-label'] || 'Drag to reorder block',\n title: childProps.title || 'Drag to reorder',\n });\n }\n\n return (\n <button\n type=\"button\"\n ref={setRefs}\n className={combinedClassName}\n onClick={handleClick}\n {...sortableData.attributes}\n {...sortableData.listeners}\n data-block-dnd-handle\n data-block-id={blockId}\n aria-label=\"Drag to reorder block\"\n title=\"Drag to reorder\">\n {children}\n </button>\n );\n },\n);\n\nDragHandle.displayName = 'DragHandle';\n","import { useCallback, useMemo } from 'react';\nimport { Blocks } from '@yoopta/editor';\nimport type { YooEditor } from '@yoopta/editor';\n\nimport { useBlockDndContext } from './block-dnd-context';\n\nexport type UseBlockDndOptions = {\n blockId?: string | null;\n};\n\nexport type UseBlockDndReturn = {\n /** Whether any block is being dragged */\n isDragging: boolean;\n /** Whether this specific block is being dragged */\n isBlockDragging: boolean;\n /** Whether this block is part of a multi-drag selection */\n isPartOfMultiDrag: boolean;\n /** Number of blocks being dragged */\n dragCount: number;\n /** IDs of blocks being dragged */\n draggedIds: string[];\n /** Move a block to a new position */\n moveBlock: (blockId: string, toIndex: number) => void;\n /** Move multiple blocks to a new position */\n moveBlocks: (blockIds: string[], toIndex: number) => void;\n};\n\n/**\n * Hook to access block DnD state and actions\n */\nexport const useBlockDnd = (options: UseBlockDndOptions = {}): UseBlockDndReturn => {\n const { blockId } = options;\n const context = useBlockDndContext();\n const { isDragging, draggedIds, editor } = context;\n\n const isBlockDragging = useMemo(() => {\n if (!blockId) return false;\n return draggedIds.includes(blockId);\n }, [blockId, draggedIds]);\n\n const isPartOfMultiDrag = useMemo(() => {\n if (!blockId) return false;\n return draggedIds.includes(blockId) && draggedIds.length > 1;\n }, [blockId, draggedIds]);\n\n const moveBlock = useCallback(\n (id: string, toIndex: number) => {\n editor.moveBlock(id, toIndex);\n },\n [editor],\n );\n\n const moveBlocks = useCallback(\n (ids: string[], toIndex: number) => {\n editor.batchOperations(() => {\n // Sort by current order to maintain relative positions\n const sortedIds = [...ids].sort((a, b) => {\n const aOrder = editor.children[a]?.meta.order ?? 0;\n const bOrder = editor.children[b]?.meta.order ?? 0;\n return aOrder - bOrder;\n });\n\n sortedIds.forEach((id, idx) => {\n editor.moveBlock(id, toIndex + idx);\n });\n });\n },\n [editor],\n );\n\n return {\n isDragging,\n isBlockDragging,\n isPartOfMultiDrag,\n dragCount: draggedIds.length,\n draggedIds: draggedIds as string[],\n moveBlock,\n moveBlocks,\n };\n};\n\n/**\n * Get sorted block IDs from the editor\n */\nexport const getOrderedBlockIds = (editor: YooEditor): string[] => {\n return Object.keys(editor.children).sort((a, b) => {\n const aOrder = editor.children[a].meta.order;\n const bOrder = editor.children[b].meta.order;\n return aOrder - bOrder;\n });\n};\n"],"names":["useCombinedRefs","refs","useMemo","node","forEach","ref","canUseDOM","window","document","createElement","isWindow","element","elementString","Object","prototype","toString","call","isNode","getWindow","target","ownerDocument","defaultView","isDocument","Document","isHTMLElement","HTMLElement","isSVGElement","SVGElement","getOwnerDocument","useIsomorphicLayoutEffect","useLayoutEffect","useEffect","useEvent","handler","handlerRef","useRef","current","useCallback","args","useInterval","intervalRef","set","listener","duration","setInterval","clear","clearInterval","useLatestValue","value","dependencies","valueRef","useLazyMemo","callback","newValue","useNodeRef","onChange","onChangeHandler","setNodeRef","usePrevious","ids","useUniqueId","prefix","id","createAdjustmentFn","modifier","object","adjustments","reduce","accumulator","adjustment","entries","key","valueAdjustment","add","subtract","hasViewportRelativeCoordinates","event","isKeyboardEvent","KeyboardEvent","isTouchEvent","TouchEvent","getEventCoordinates","touches","length","clientX","x","clientY","y","changedTouches","CSS","freeze","Translate","transform","Math","round","Scale","scaleX","scaleY","Transform","join","Transition","property","easing","SELECTOR","findFirstFocusableNode","matches","querySelector","hiddenStyles","display","HiddenText","React","style","LiveRegion","announcement","ariaLiveType","visuallyHidden","position","top","left","width","height","margin","border","padding","overflow","clip","clipPath","whiteSpace","role","useAnnouncement","setAnnouncement","useState","announce","DndMonitorContext","createContext","useDndMonitor","registerListener","useContext","Error","unsubscribe","useDndMonitorProvider","listeners","Set","delete","dispatch","type","defaultScreenReaderInstructions","draggable","defaultAnnouncements","onDragStart","active","onDragOver","over","onDragEnd","onDragCancel","Accessibility","announcements","container","hiddenTextDescribedById","screenReaderInstructions","liveRegionId","mounted","setMounted","onDragMove","markup","createPortal","Action","noop","useSensor","sensor","options","useSensors","sensors","filter","defaultCoordinates","distanceBetween","p1","p2","sqrt","pow","getRelativeTransformOrigin","rect","eventCoordinates","transformOrigin","sortCollisionsAsc","data","a","b","sortCollisionsDesc","cornersOfRectangle","getFirstCollision","collisions","firstCollision","centerOfRectangle","closestCenter","collisionRect","droppableRects","droppableContainers","centerRect","droppableContainer","get","distBetween","push","sort","closestCorners","corners","rectCorners","distances","corner","index","effectiveDistance","Number","toFixed","getIntersectionRatio","entry","max","right","min","bottom","targetArea","entryArea","intersectionArea","intersectionRatio","rectIntersection","adjustScale","rect1","rect2","getRectDelta","createRectAdjustmentFn","adjustClientRect","acc","getAdjustedRect","parseTransform","startsWith","transformArray","slice","split","inverseTransform","parsedTransform","translateX","translateY","parseFloat","indexOf","w","h","defaultOptions","ignoreTransform","getClientRect","getBoundingClientRect","getComputedStyle","getTransformAgnosticClientRect","getWindowClientRect","innerWidth","innerHeight","isFixed","computedStyle","isScrollable","overflowRegex","properties","some","test","getScrollableAncestors","limit","scrollParents","findScrollableAncestors","scrollingElement","includes","parentNode","getFirstScrollableAncestor","firstScrollableAncestor","getScrollableElement","getScrollXCoordinate","scrollX","scrollLeft","getScrollYCoordinate","scrollY","scrollTop","getScrollCoordinates","Direction","isDocumentScrollingElement","getScrollPosition","scrollingContainer","minScroll","dimensions","clientHeight","clientWidth","maxScroll","scrollWidth","scrollHeight","isTop","isLeft","isBottom","isRight","defaultThreshold","getScrollDirectionAndSpeed","scrollContainer","scrollContainerRect","acceleration","thresholdPercentage","direction","speed","threshold","Backward","abs","Forward","getScrollElementRect","getScrollOffsets","scrollableAncestors","getScrollXOffset","getScrollYOffset","scrollIntoViewIfNeeded","measure","scrollIntoView","block","inline","Rect","constructor","scrollOffsets","axis","keys","getScrollOffset","defineProperty","currentOffsets","scrollOffsetsDeltla","enumerable","Listeners","removeAll","removeEventListener","eventName","addEventListener","getEventListenerTarget","EventTarget","hasExceededDistance","delta","measurement","dx","dy","EventName","preventDefault","stopPropagation","KeyboardCode","defaultKeyboardCodes","start","Space","Enter","cancel","Esc","end","Tab","defaultKeyboardCoordinateGetter","currentCoordinates","code","Right","Left","Down","Up","undefined","KeyboardSensor","props","autoScrollEnabled","referenceCoordinates","windowListeners","handleKeyDown","bind","handleCancel","attach","handleStart","Resize","VisibilityChange","setTimeout","Keydown","activeNode","onStart","context","keyboardCodes","coordinateGetter","scrollBehavior","handleEnd","newCoordinates","coordinatesDelta","getCoordinatesDelta","scrollDelta","scrollElementRect","clampedCoordinates","canScrollX","canScrollY","newScrollCoordinates","canScrollToNewCoordinates","scrollTo","behavior","scrollBy","handleMove","getAdjustedCoordinates","coordinates","onMove","onEnd","detach","onCancel","activators","onActivation","nativeEvent","activator","activatorNode","isDistanceConstraint","constraint","Boolean","isDelayConstraint","AbstractPointerSensor","events","listenerTarget","activated","initialCoordinates","timeoutId","documentListeners","handleKeydown","removeTextSelection","activationConstraint","bypassActivationConstraint","move","name","passive","DragStart","ContextMenu","delay","handlePending","clearTimeout","offset","onPending","Click","capture","SelectionChange","tolerance","distance","cancelable","onAbort","getSelection","removeAllRanges","PointerSensor","isPrimary","button","MouseButton","MouseSensor","RightClick","TouchSensor","setup","teardown","AutoScrollActivator","TraversalOrder","useAutoScroller","Pointer","canScroll","draggingRect","enabled","interval","order","TreeOrder","pointerCoordinates","scrollableAncestorRects","scrollIntent","useScrollIntent","disabled","setAutoScrollInterval","clearAutoScrollInterval","scrollSpeed","scrollDirection","DraggableRect","scrollContainerRef","autoScroll","sortedScrollableAncestors","reverse","JSON","stringify","defaultScrollIntent","previousDelta","previousIntent","sign","useCachedNode","draggableNodes","draggableNode","cachedNode","useCombineActivators","getSyntheticHandler","Sensor","sensorActivators","map","MeasuringStrategy","MeasuringFrequency","defaultValue","Map","useDroppableMeasuring","containers","dragging","config","queue","setQueue","frequency","strategy","containersRef","isDisabled","disabledRef","measureDroppableContainers","concat","previousValue","measuringScheduled","Always","BeforeDragging","useInitialValue","computeFn","useInitialRect","useMutationObserver","handleMutations","mutationObserver","MutationObserver","disconnect","useResizeObserver","handleResize","resizeObserver","ResizeObserver","defaultMeasure","useRect","fallbackRect","setRect","measureRect","currentRect","isConnected","newRect","records","record","contains","observe","body","childList","subtree","useRectDelta","initialRect","useScrollableAncestors","previousNode","ancestors","useScrollOffsets","elements","scrollCoordinates","setScrollCoordinates","prevElements","handleScroll","previousElements","cleanup","scrollableElement","Array","from","values","useScrollOffsetsDelta","initialScrollOffsets","hasScrollOffsets","useSensorSetup","teardownFns","useSyntheticListeners","useWindowRect","useRects","firstElement","windowRect","rects","setRects","measureRects","getMeasurableNode","children","firstChild","useDragOverlayMeasuring","handleNodeChange","nodeRef","setRef","defaultSensors","defaultData","defaultMeasuringConfiguration","droppable","WhileDragging","Optimized","dragOverlay","DroppableContainersMap","toArray","getEnabled","getNodeFor","defaultPublicContext","activatorEvent","activeNodeRect","containerNodeRect","measuringConfiguration","defaultInternalContext","ariaDescribedById","InternalContext","PublicContext","getInitialState","nodes","translate","reducer","state","action","DragMove","DragEnd","DragCancel","RegisterDroppable","SetDroppableDisabled","UnregisterDroppable","RestoreFocus","previousActivatorEvent","previousActiveId","activeElement","requestAnimationFrame","focusableNode","focus","applyModifiers","modifiers","useMeasuringConfiguration","useLayoutShiftScrollCompensation","initialized","rectDelta","ActiveDraggableContext","Status","DndContext","memo","accessibility","collisionDetection","measuring","store","useReducer","dispatchMonitorEvent","registerMonitorListener","status","setStatus","Uninitialized","isInitialized","Initialized","activeId","activeRects","initial","translated","activeRef","activeSensor","setActiveSensor","setActivatorEvent","latestProps","draggableDescribedById","enabledDroppableContainers","activationCoordinates","autoScrollOptions","getAutoScrollerOptions","initialActiveNodeRect","layoutShiftCompensation","parentElement","sensorContext","draggingNode","draggingNodeRect","scrollAdjustedTranslate","overNode","usesDragOverlay","nodeRectDelta","modifiedTranslate","overlayNodeRect","scrollAdjustment","activeNodeScrollDelta","overId","setOver","appliedTranslate","activeSensorRef","instantiateSensor","sensorInstance","onDragAbort","onDragPending","unstable_batchedUpdates","Initializing","createHandler","cancelDrop","shouldCancel","Promise","resolve","bindActivatorToSensorInstantiator","activeDraggableNode","dndKit","defaultPrevented","activationContext","shouldActivate","capturedBy","overContainer","publicContext","internalContext","Provider","restoreFocus","activeSensorDisablesAutoscroll","autoScrollGloballyDisabled","NullContext","defaultRole","ID_PREFIX","useDraggable","attributes","roleDescription","tabIndex","isDragging","setActivatorNodeRef","dataRef","memoizedAttributes","useDndContext","defaultResizeObserverConfig","timeout","useDroppable","resizeObserverConfig","previous","resizeObserverConnected","callbackId","resizeObserverDisabled","updateMeasurementsFor","resizeObserverTimeout","isArray","newElement","previousElement","unobserve","isOver","AnimationManager","animation","clonedChildren","setClonedChildren","setElement","previousChildren","then","cloneElement","defaultTransform","NullifiedContextProvider","baseStyles","touchAction","defaultTransition","isKeyboardActivator","PositionedOverlay","forwardRef","as","className","transition","scaleAdjustedTransform","styles","defaultDropAnimationSideEffects","originalStyles","getPropertyValue","setProperty","classList","remove","defaultKeyframeResolver","final","defaultDropAnimationConfiguration","keyframes","sideEffects","opacity","useDropAnimation","activeDraggable","measurableNode","createDefaultDropAnimation","rest","scale","finalTransform","animationKeyframes","firstKeyframe","lastKeyframe","animate","fill","onfinish","useKey","DragOverlay","dropAnimation","dropAnimationConfig","wrapperElement","zIndex","modifiedTransform","arrayMove","array","to","newArray","splice","getSortedRects","items","isValidIndex","itemsEqual","i","normalizeDisabled","rectSortingStrategy","activeIndex","overIndex","newRects","oldRect","defaultScale","verticalListSortingStrategy","fallbackActiveRect","overIndexRect","itemGap","getItemGap","clientRects","previousRect","nextRect","Context","containerId","disableTransforms","useDragOverlay","sortedRects","SortableContext","userDefinedItems","disabledProp","item","previousItemsRef","itemsHaveChanged","contextValue","defaultNewIndexGetter","defaultAnimateLayoutChanges","isSorting","wasDragging","newIndex","previousItems","previousContainerId","transitionProperty","disabledTransition","defaultAttributes","useDerivedTransform","derivedTransform","setDerivedtransform","previousIndex","useSortable","animateLayoutChanges","userDefinedAttributes","localDisabled","customData","getNewIndex","localStrategy","globalDisabled","globalStrategy","normalizeLocalDisabled","sortable","itemsAfterCurrentSortable","setDroppableNodeRef","setDraggableNodeRef","displaceItem","shouldDisplaceDragSource","dragSourceDisplacement","shouldAnimateLayoutChanges","getTransition","hasSortableData","directions","sortableKeyboardCoordinates","filteredContainers","closestId","activeDroppable","newDroppable","newNode","newScrollAncestors","hasDifferentScrollAncestors","hasSameContainer","isSameContainer","isAfterActive","isAfter","rectCoordinates","_jsxs","_jsx","_Fragment"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123]}