@vuu-ui/vuu-utils 3.1.0-beta.2 → 3.1.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +10 -8
- package/src/index.js +4 -4
- package/src/vendor/@dnd-kit/abstract/index.d.ts +1279 -0
- package/src/vendor/@dnd-kit/abstract/index.js +1472 -0
- package/src/vendor/@dnd-kit/abstract/index.js.map +1 -0
- package/src/vendor/@dnd-kit/abstract/modifiers.d.ts +134 -0
- package/src/vendor/@dnd-kit/abstract/modifiers.js +100 -0
- package/src/vendor/@dnd-kit/abstract/modifiers.js.map +1 -0
- package/src/vendor/@dnd-kit/abstract/package.json +60 -0
- package/src/vendor/@dnd-kit/collision/dist/index.d.ts +46 -0
- package/src/vendor/@dnd-kit/collision/dist/index.js +175 -0
- package/src/vendor/@dnd-kit/collision/package.json +42 -0
- package/src/vendor/@dnd-kit/dom/index.d.ts +298 -0
- package/src/vendor/@dnd-kit/dom/index.js +1977 -0
- package/src/vendor/@dnd-kit/dom/index.js.map +1 -0
- package/src/vendor/@dnd-kit/dom/modifiers.d.ts +26 -0
- package/src/vendor/@dnd-kit/dom/modifiers.js +117 -0
- package/src/vendor/@dnd-kit/dom/modifiers.js.map +1 -0
- package/src/vendor/@dnd-kit/dom/package.json +92 -0
- package/src/vendor/@dnd-kit/dom/plugins/debug.d.ts +8 -0
- package/src/vendor/@dnd-kit/dom/plugins/debug.js +125 -0
- package/src/vendor/@dnd-kit/dom/plugins/debug.js.map +1 -0
- package/src/vendor/@dnd-kit/dom/sortable.d.ts +125 -0
- package/src/vendor/@dnd-kit/dom/sortable.js +822 -0
- package/src/vendor/@dnd-kit/dom/sortable.js.map +1 -0
- package/src/vendor/@dnd-kit/dom/utilities.d.ts +215 -0
- package/src/vendor/@dnd-kit/dom/utilities.js +1361 -0
- package/src/vendor/@dnd-kit/dom/utilities.js.map +1 -0
- package/src/vendor/@dnd-kit/geometry/dist/index.d.ts +178 -0
- package/src/vendor/@dnd-kit/geometry/dist/index.js +347 -0
- package/src/vendor/@dnd-kit/geometry/package.json +31 -0
- package/src/vendor/@dnd-kit/react/hooks.d.ts +30 -0
- package/src/vendor/@dnd-kit/react/hooks.js +133 -0
- package/src/vendor/@dnd-kit/react/index.d.ts +84 -0
- package/src/vendor/@dnd-kit/react/index.js +617 -0
- package/src/vendor/@dnd-kit/react/package.json +80 -0
- package/src/vendor/@dnd-kit/react/sortable.d.ts +26 -0
- package/src/vendor/@dnd-kit/react/sortable.js +175 -0
- package/src/vendor/@dnd-kit/react/utilities.d.ts +7 -0
- package/src/vendor/@dnd-kit/react/utilities.js +18 -0
- package/src/vendor/@dnd-kit/state/dist/index.d.ts +54 -0
- package/src/vendor/@dnd-kit/state/dist/index.js +328 -0
- package/src/vendor/@dnd-kit/state/package.json +33 -0
- package/src/vendor/@preact/signals-core/dist/signals-core.js +1 -0
- package/src/vendor/@preact/signals-core/dist/signals-core.js.map +1 -0
- package/src/vendor/@preact/signals-core/package.json +4 -0
- package/src/vendor/tslib/CopyrightNotice.txt +15 -0
- package/src/vendor/tslib/LICENSE.txt +12 -0
- package/src/vendor/tslib/README.md +164 -0
- package/src/vendor/tslib/SECURITY.md +41 -0
- package/src/vendor/tslib/modules/index.d.ts +38 -0
- package/src/vendor/tslib/modules/index.js +70 -0
- package/src/vendor/tslib/modules/package.json +3 -0
- package/src/vendor/tslib/package.json +47 -0
- package/src/vendor/tslib/tslib.d.ts +460 -0
- package/src/vendor/tslib/tslib.es6.html +1 -0
- package/src/vendor/tslib/tslib.es6.js +402 -0
- package/src/vendor/tslib/tslib.es6.mjs +401 -0
- package/src/vendor/tslib/tslib.html +1 -0
- package/src/vendor/tslib/tslib.js +484 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["src/utilities/type-guards/isKeyframeEffect.ts","src/utilities/animations/getFinalKeyframe.ts","src/utilities/bounding-rectangle/getBoundingRectangle.ts","src/utilities/execution-context/canUseDOM.ts","src/utilities/type-guards/isWindow.ts","src/utilities/type-guards/isNode.ts","src/utilities/execution-context/getWindow.ts","src/utilities/type-guards/isDocument.ts","src/utilities/type-guards/isHTMLElement.ts","src/utilities/type-guards/isSVGElement.ts","src/utilities/execution-context/getDocument.ts","src/utilities/bounding-rectangle/getViewportBoundingRectangle.ts","src/utilities/bounding-rectangle/isOverflowVisible.ts","src/utilities/bounding-rectangle/getVisibleBoundingRectangle.ts","src/utilities/execution-context/isSafari.ts","src/utilities/element/cloneElement.ts","src/utilities/element/getElementFromPoint.ts","src/utilities/element/proxiedElements.ts","src/utilities/event-listeners/Listeners.ts","src/utilities/frame/getFrameElement.ts","src/utilities/frame/getFrameElements.ts","src/utilities/scheduling/timeout.ts","src/utilities/scheduling/throttle.ts","src/utilities/bounding-rectangle/isRectEqual.ts","src/utilities/bounding-rectangle/isVisible.ts","src/utilities/observers/ResizeNotifier.ts","src/utilities/observers/PositionObserver.ts","src/utilities/observers/FrameObserver.ts","src/utilities/popover/supportsPopover.ts","src/utilities/popover/showPopover.ts","src/utilities/popover/hidePopover.ts","src/utilities/scroll/documentScrollingElement.ts","src/utilities/scroll/getScrollPosition.ts","src/utilities/scroll/canScroll.ts","src/utilities/scheduling/scheduler.ts","src/utilities/styles/getComputedStyles.ts","src/utilities/scroll/isFixed.ts","src/utilities/scroll/isScrollable.ts","src/utilities/scroll/getScrollableAncestors.ts","src/utilities/frame/getFrameTransform.ts","src/utilities/transform/parseScale.ts","src/utilities/transform/parseTranslate.ts","src/utilities/transform/parseTransform.ts","src/utilities/scroll/detectScrollIntent.ts","src/utilities/scroll/scrollIntoViewIfNeeded.ts","src/utilities/transform/applyTransform.ts","src/utilities/transform/inverseTransform.ts","src/utilities/transform/animateTransform.ts","src/utilities/transform/computeTranslate.ts","src/utilities/animations/forceFinishAnimations.ts","src/utilities/shapes/DOMRectangle.ts","src/utilities/type-guards/supportsStyle.ts","src/utilities/styles/Styles.ts","src/utilities/type-guards/isElement.ts","src/utilities/type-guards/isKeyboardEvent.ts","src/utilities/type-guards/isPointerEvent.ts","src/utilities/type-guards/supportsViewTransition.ts","src/utilities/type-guards/isTextInput.ts","src/utilities/misc/generateUniqueId.ts"],"names":["animations","document","target","cached","callback","listeners","_disconnected","window","scheduler","ScrollDirection","Rectangle","threshold","keyframe","translate","clear"],"mappings":"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","file":"utilities.js","sourcesContent":["export function isKeyframeEffect(\n effect: AnimationEffect | null | undefined\n): effect is KeyframeEffect {\n if (!effect) return false;\n\n if (effect instanceof KeyframeEffect) return true;\n\n return 'getKeyframes' in effect && typeof effect.getKeyframes === 'function';\n}\n","import {isKeyframeEffect} from '../type-guards/isKeyframeEffect.ts';\n\nexport function getFinalKeyframe(\n element: Element,\n match: (keyframe: Keyframe) => boolean\n): [Keyframe, Animation] | null {\n const animations = element.getAnimations();\n\n if (animations.length > 0) {\n for (const animation of animations) {\n if (animation.playState !== 'running') continue;\n const {effect} = animation;\n const keyframes = isKeyframeEffect(effect) ? effect.getKeyframes() : [];\n const matchedKeyframes = keyframes.filter(match);\n\n if (matchedKeyframes.length > 0) {\n return [matchedKeyframes[matchedKeyframes.length - 1], animation];\n }\n }\n }\n\n return null;\n}\n","import {BoundingRectangle} from '@dnd-kit/geometry';\n\nexport function getBoundingRectangle(element: Element): BoundingRectangle {\n const {width, height, top, left, bottom, right} =\n element.getBoundingClientRect();\n\n return {width, height, top, left, bottom, right};\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.ts';\nimport {isNode} from '../type-guards/isNode.ts';\n\nexport function getWindow(\n target: Event['target'] | null | undefined\n): 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 if ('defaultView' in target) {\n return (target.defaultView as typeof window | null) ?? window;\n }\n\n return target.ownerDocument?.defaultView ?? window;\n}\n","import {getWindow} from '../execution-context/getWindow.ts';\n\nexport function isDocument(node: Node): node is Document {\n const {Document} = getWindow(node);\n\n return (\n node instanceof Document ||\n ('nodeType' in node && node.nodeType === Node.DOCUMENT_NODE)\n );\n}\n","import {getWindow} from '../execution-context/getWindow.ts';\n\nimport {isWindow} from './isWindow.ts';\n\nexport function isHTMLElement(\n node: Node | Window | null | undefined\n): node is HTMLElement {\n if (!node || isWindow(node)) return false;\n\n return (\n node instanceof getWindow(node).HTMLElement ||\n ('namespaceURI' in node &&\n typeof node.namespaceURI === 'string' &&\n node.namespaceURI.endsWith('html'))\n );\n}\n","import {getWindow} from '../execution-context/getWindow.ts';\n\nexport function isSVGElement(node: Node): node is SVGElement {\n return (\n node instanceof getWindow(node).SVGElement ||\n ('namespaceURI' in node &&\n typeof node.namespaceURI === 'string' &&\n node.namespaceURI.endsWith('svg'))\n );\n}\n","import {isDocument} from '../type-guards/isDocument.ts';\nimport {isHTMLElement} from '../type-guards/isHTMLElement.ts';\nimport {isNode} from '../type-guards/isNode.ts';\nimport {isSVGElement} from '../type-guards/isSVGElement.ts';\nimport {isWindow} from '../type-guards/isWindow.ts';\n\nexport function getDocument(target: Event['target'] | undefined): 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 type {BoundingRectangle} from '@dnd-kit/geometry';\n\nimport {getDocument} from '../execution-context/index.ts';\n\n/**\n * Returns the bounding rectangle of the viewport\n * @param element\n * @returns BoundingRectangle\n */\nexport function getViewportBoundingRectangle(\n element: Element\n): BoundingRectangle {\n const {documentElement} = getDocument(element);\n const width = documentElement.clientWidth;\n const height = documentElement.clientHeight;\n\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height,\n };\n}\n","/*\n * Check if an element has visible overflow.\n * @param element\n * @param style\n * @returns boolean\n */\nexport function isOverflowVisible(\n element: Element,\n style?: CSSStyleDeclaration\n) {\n if (isDetailsElement(element) && element.open === false) {\n return false;\n }\n\n const {overflow, overflowX, overflowY} = style ?? getComputedStyle(element);\n\n return (\n overflow === 'visible' && overflowX === 'visible' && overflowY === 'visible'\n );\n}\n\nfunction isDetailsElement(element: Element): element is HTMLDetailsElement {\n return element.tagName === 'DETAILS';\n}\n","import type {BoundingRectangle} from '@dnd-kit/geometry';\n\nimport {isOverflowVisible} from './isOverflowVisible.ts';\n\n/*\n * Get the currently visible bounding rectangle of an element\n * @param element\n * @param boundingClientRect\n * @returns Rect\n */\nexport function getVisibleBoundingRectangle(\n element: Element,\n boundingClientRect = element.getBoundingClientRect(),\n margin = 0\n): BoundingRectangle {\n // Get the initial bounding client rect of the element\n let rect: BoundingRectangle = boundingClientRect;\n const {ownerDocument} = element;\n const ownerWindow = ownerDocument.defaultView ?? window;\n\n // Traverse up the DOM tree to clip the rect based on ancestors' bounding rects\n let ancestor: HTMLElement | null = element.parentElement;\n\n while (ancestor && ancestor !== ownerDocument.documentElement) {\n if (!isOverflowVisible(ancestor)) {\n const ancestorRect = ancestor.getBoundingClientRect();\n\n const marginTop = margin * (ancestorRect.bottom - ancestorRect.top);\n const marginRight = margin * (ancestorRect.right - ancestorRect.left);\n const marginBottom = margin * (ancestorRect.bottom - ancestorRect.top);\n const marginLeft = margin * (ancestorRect.right - ancestorRect.left);\n\n // Clip the rect based on the ancestor's bounding rect\n rect = {\n top: Math.max(rect.top, ancestorRect.top - marginTop),\n right: Math.min(rect.right, ancestorRect.right + marginRight),\n bottom: Math.min(rect.bottom, ancestorRect.bottom + marginBottom),\n left: Math.max(rect.left, ancestorRect.left - marginLeft),\n width: 0, // Will be calculated next\n height: 0, // Will be calculated next\n };\n\n // Calculate the width and height after clipping\n rect.width = rect.right - rect.left;\n rect.height = rect.bottom - rect.top;\n }\n\n // Move to the next ancestor\n ancestor = ancestor.parentElement;\n }\n\n // Clip the rect based on the viewport (window)\n const viewportWidth = ownerWindow.innerWidth;\n const viewportHeight = ownerWindow.innerHeight;\n const viewportMarginY = margin * viewportHeight;\n const viewportMarginX = margin * viewportWidth;\n\n rect = {\n top: Math.max(rect.top, 0 - viewportMarginY),\n right: Math.min(rect.right, viewportWidth + viewportMarginX),\n bottom: Math.min(rect.bottom, viewportHeight + viewportMarginY),\n left: Math.max(rect.left, 0 - viewportMarginX),\n width: 0, // Will be calculated next\n height: 0, // Will be calculated next\n };\n\n // Calculate the width and height after clipping\n rect.width = rect.right - rect.left;\n rect.height = rect.bottom - rect.top;\n\n if (rect.width < 0) {\n rect.width = 0;\n }\n\n if (rect.height < 0) {\n rect.height = 0;\n }\n\n return rect;\n}\n","export function isSafari() {\n return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n}\n","export function cloneElement(element: Element): Element {\n const selector = 'input, textarea, select, canvas, [contenteditable]';\n const clonedElement = element.cloneNode(true) as HTMLElement;\n const fields = Array.from(element.querySelectorAll(selector));\n const clonedFields = Array.from(clonedElement.querySelectorAll(selector));\n\n clonedFields.forEach((field, index) => {\n const originalField = fields[index];\n\n if (isField(field) && isField(originalField)) {\n if (field.type !== 'file') {\n field.value = originalField.value;\n }\n\n // Fixes an issue with original radio buttons losing their value once the\n // clone is inserted in the DOM, as radio button `name` attributes must be unique\n if (field.type === 'radio' && field.name) {\n field.name = `Cloned__${field.name}`;\n }\n }\n\n if (\n isCanvasElement(field) &&\n isCanvasElement(originalField) &&\n originalField.width > 0 &&\n originalField.height > 0\n ) {\n const destCtx = field.getContext('2d');\n destCtx?.drawImage(originalField, 0, 0);\n }\n });\n\n return clonedElement;\n}\n\nfunction isField(\n element: Element\n): element is HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement {\n return 'value' in element;\n}\n\nfunction isCanvasElement(element: Element): element is HTMLCanvasElement {\n return element.tagName === 'CANVAS';\n}\n","import type {Coordinates} from '@dnd-kit/geometry';\n\nexport function getElementFromPoint(\n document: Document,\n {x, y}: Coordinates\n): Element | null {\n const element = document.elementFromPoint(x, y);\n\n if (isIFrameElement(element)) {\n const {contentDocument} = element;\n\n if (contentDocument) {\n const {left, top} = element.getBoundingClientRect();\n\n return getElementFromPoint(contentDocument, {\n x: x - left,\n y: y - top,\n });\n }\n }\n\n return element;\n}\n\nfunction isIFrameElement(\n element: Element | null\n): element is HTMLIFrameElement {\n return element?.tagName === 'IFRAME';\n}\n","export const ProxiedElements = new WeakMap<Element, Element>();\n","export interface EventListenerDescriptor {\n type: string;\n listener(event: Event): void;\n options?: AddEventListenerOptions;\n}\n\ntype EventListenerInput = EventListenerDescriptor[] | EventListenerDescriptor;\n\ntype EventListenerEntry = [EventTarget, EventListenerDescriptor];\n\nexport class Listeners {\n private entries: Set<EventListenerEntry> = new Set();\n\n constructor() {}\n\n public bind(target: EventTarget, input: EventListenerInput) {\n const listeners = Array.isArray(input) ? input : [input];\n const entries: EventListenerEntry[] = [];\n\n for (const descriptor of listeners) {\n const {type, listener, options} = descriptor;\n const entry: EventListenerEntry = [target, descriptor];\n\n target.addEventListener(type, listener, options);\n this.entries.add(entry);\n entries.push(entry);\n }\n\n return function cleanup() {\n for (const [target, {type, listener, options}] of entries) {\n target.removeEventListener(type, listener, options);\n }\n };\n }\n\n public clear = () => {\n for (const entry of this.entries) {\n const [target, {type, listener, options}] = entry;\n\n target.removeEventListener(type, listener, options);\n }\n\n this.entries.clear();\n };\n}\n","export function getFrameElement(el: Element | undefined) {\n const refWindow = el?.ownerDocument.defaultView;\n\n if (refWindow && refWindow.self !== refWindow.parent) {\n return refWindow.frameElement;\n }\n}\n","import {getFrameElement} from './getFrameElement.ts';\n\nexport function getFrameElements(el: Element | undefined) {\n const frames = new Set<Element>();\n let frame = getFrameElement(el);\n\n while (frame) {\n frames.add(frame);\n frame = getFrameElement(frame);\n }\n\n return frames;\n}\n","export function timeout(callback: () => void, duration: number): () => void {\n const id = setTimeout(callback, duration);\n\n return () => clearTimeout(id);\n}\n","import {timeout} from './timeout.ts';\n\nexport function throttle<T extends (...args: any[]) => any>(\n func: T,\n limit: number\n): (...args: Parameters<T>) => void {\n const time = () => performance.now();\n let cancel: () => void | undefined;\n let lastRan: number;\n\n return function (this: any, ...args: Parameters<T>) {\n const context = this;\n if (!lastRan) {\n func.apply(context, args);\n lastRan = time();\n } else {\n cancel?.();\n cancel = timeout(\n () => {\n func.apply(context, args);\n lastRan = time();\n },\n limit - (time() - lastRan)\n );\n }\n };\n}\n","import type {BoundingRectangle} from '@dnd-kit/geometry';\n\nexport function isRectEqual(\n a: BoundingRectangle | undefined,\n b: BoundingRectangle | undefined\n) {\n if (a === b) return true;\n if (!a || !b) return false;\n\n return (\n a.top == b.top &&\n a.left == b.left &&\n a.right == b.right &&\n a.bottom == b.bottom\n );\n}\n","import {getVisibleBoundingRectangle} from './getVisibleBoundingRectangle.ts';\n\nexport function isVisible(\n element: Element,\n boundingClientRect = element.getBoundingClientRect()\n): boolean {\n const {width, height} = getVisibleBoundingRectangle(\n element,\n boundingClientRect\n );\n\n return width > 0 && height > 0;\n}\n","import {canUseDOM} from '../execution-context/canUseDOM.ts';\n\nconst Observer = canUseDOM\n ? ResizeObserver\n : class MockResizeObserver implements ResizeObserver {\n observe() {}\n unobserve() {}\n disconnect() {}\n };\n\nexport class ResizeNotifier extends Observer {\n #initialized = false;\n\n constructor(callback: ResizeObserverCallback) {\n super((entries) => {\n if (!this.#initialized) {\n this.#initialized = true;\n return;\n }\n callback(entries, this);\n });\n }\n}\n","import {BoundingRectangle, Rectangle} from '@dnd-kit/geometry';\n\nimport {throttle} from '../scheduling/throttle.ts';\n\nimport {isRectEqual} from '../bounding-rectangle/isRectEqual.ts';\nimport {isVisible} from '../bounding-rectangle/isVisible.ts';\nimport {getVisibleBoundingRectangle} from '../bounding-rectangle/getVisibleBoundingRectangle.ts';\n\nimport {ResizeNotifier} from './ResizeNotifier.ts';\n\nexport type PositionObserverCallback = (\n boundingClientRect: BoundingRectangle | null\n) => void;\n\nconst threshold = Array.from({length: 100}, (_, index) => index / 100);\nexport const THROTTLE_INTERVAL = 75;\n\nexport class PositionObserver {\n constructor(\n public element: Element,\n public callback: PositionObserverCallback,\n options: {debug?: boolean; skipInitial?: boolean} = {\n debug: false,\n skipInitial: false,\n }\n ) {\n this.boundingClientRect = element.getBoundingClientRect();\n this.#visible = isVisible(element, this.boundingClientRect);\n\n let initial = true;\n this.callback = (boundingClientRect) => {\n if (initial) {\n initial = false;\n if (options.skipInitial) return;\n }\n\n callback(boundingClientRect);\n };\n\n const root = element.ownerDocument;\n\n if (options?.debug) {\n this.#debug = document.createElement('div');\n this.#debug.style.background = 'rgba(0,0,0,0.15)';\n this.#debug.style.position = 'fixed';\n this.#debug.style.pointerEvents = 'none';\n root.body.appendChild(this.#debug);\n }\n\n this.#visibilityObserver = new IntersectionObserver(\n (entries: IntersectionObserverEntry[]) => {\n const entry = entries[entries.length - 1];\n const {boundingClientRect, isIntersecting: visible} = entry;\n const {width, height} = boundingClientRect;\n const previousVisible = this.#visible;\n\n this.#visible = visible;\n\n if (!width && !height) return;\n\n if (previousVisible && !visible) {\n this.#positionObserver?.disconnect();\n this.callback(null);\n this.#resizeObserver?.disconnect();\n this.#resizeObserver = undefined;\n\n if (this.#debug) this.#debug.style.visibility = 'hidden';\n } else {\n this.#observePosition();\n }\n\n if (visible && !this.#resizeObserver) {\n this.#resizeObserver = new ResizeNotifier(this.#observePosition);\n this.#resizeObserver.observe(element);\n }\n },\n {\n threshold,\n root,\n }\n );\n\n if (this.#visible && !options.skipInitial) {\n this.callback(this.boundingClientRect);\n }\n\n this.#visibilityObserver.observe(element);\n }\n\n public boundingClientRect: DOMRectReadOnly;\n\n public disconnect = () => {\n this.#disconnected = true;\n this.#resizeObserver?.disconnect();\n this.#positionObserver?.disconnect();\n this.#visibilityObserver.disconnect();\n this.#debug?.remove();\n };\n\n #visible = true;\n #previousBoundingClientRect: DOMRectReadOnly | undefined;\n #resizeObserver: ResizeNotifier | undefined;\n #positionObserver: IntersectionObserver | undefined;\n #visibilityObserver: IntersectionObserver;\n #debug: HTMLElement | undefined;\n #disconnected = false;\n\n #observePosition = throttle(() => {\n const {element} = this;\n\n this.#positionObserver?.disconnect();\n\n if (this.#disconnected || !this.#visible || !element.isConnected) {\n return;\n }\n\n const root = element.ownerDocument ?? document;\n const {innerHeight, innerWidth} = root.defaultView ?? window;\n const clientRect = element.getBoundingClientRect();\n const visibleRect = getVisibleBoundingRectangle(element, clientRect);\n const {top, left, bottom, right} = visibleRect;\n const insetTop = -Math.floor(top);\n const insetLeft = -Math.floor(left);\n const insetRight = -Math.floor(innerWidth - right);\n const insetBottom = -Math.floor(innerHeight - bottom);\n const rootMargin = `${insetTop}px ${insetRight}px ${insetBottom}px ${insetLeft}px`;\n\n this.boundingClientRect = clientRect;\n this.#positionObserver = new IntersectionObserver(\n (entries: IntersectionObserverEntry[]) => {\n const [entry] = entries;\n const {intersectionRect} = entry;\n /*\n * The intersection ratio returned by the intersection observer entry\n * represents the ratio of the intersectionRect to the boundingClientRect,\n * which is not what we want. We want the ratio of the intersectionRect\n * to the rootBounds (visible rect).\n */\n const intersectionRatio =\n entry.intersectionRatio !== 1\n ? entry.intersectionRatio\n : Rectangle.intersectionRatio(\n intersectionRect,\n getVisibleBoundingRectangle(element)\n );\n\n if (intersectionRatio !== 1) {\n this.#observePosition();\n }\n },\n {\n threshold,\n rootMargin,\n root,\n }\n );\n\n this.#positionObserver.observe(element);\n this.#notify();\n }, THROTTLE_INTERVAL);\n\n #notify() {\n if (this.#disconnected) return;\n\n this.#updateDebug();\n\n if (isRectEqual(this.boundingClientRect, this.#previousBoundingClientRect))\n return;\n\n this.callback(this.boundingClientRect);\n this.#previousBoundingClientRect = this.boundingClientRect;\n }\n\n #updateDebug() {\n if (this.#debug) {\n const {top, left, width, height} = getVisibleBoundingRectangle(\n this.element\n );\n\n this.#debug.style.overflow = 'hidden';\n this.#debug.style.visibility = 'visible';\n this.#debug.style.top = `${Math.floor(top)}px`;\n this.#debug.style.left = `${Math.floor(left)}px`;\n this.#debug.style.width = `${Math.floor(width)}px`;\n this.#debug.style.height = `${Math.floor(height)}px`;\n }\n }\n}\n","import {getFrameElements} from '../frame/getFrameElements.ts';\nimport {throttle} from '../scheduling/throttle.ts';\nimport {\n PositionObserver,\n THROTTLE_INTERVAL,\n type PositionObserverCallback,\n} from './PositionObserver.ts';\n\nconst framePositionObservers = new WeakMap<\n Element,\n {\n disconnect: () => void;\n callbacks: Set<PositionObserverCallback>;\n }\n>();\n\nconst scrollListeners = new WeakMap<\n Document,\n {\n disconnect: () => void;\n listeners: Set<EventListener>;\n }\n>();\n\nfunction addFrameListener(frame: Element, callback: PositionObserverCallback) {\n // Check if already observed globally\n let cached = framePositionObservers.get(frame);\n\n if (!cached) {\n const observer = new PositionObserver(\n frame,\n (boundingClientRect) => {\n const cached = framePositionObservers.get(frame);\n if (!cached) return;\n\n cached.callbacks.forEach((callback) => callback(boundingClientRect));\n },\n {skipInitial: true}\n );\n\n cached = {disconnect: observer.disconnect, callbacks: new Set()};\n }\n\n cached.callbacks.add(callback);\n framePositionObservers.set(frame, cached);\n\n return () => {\n cached.callbacks.delete(callback);\n\n if (cached.callbacks.size === 0) {\n framePositionObservers.delete(frame);\n cached.disconnect();\n }\n };\n}\n\nfunction observeParentFrames(\n frames: Set<Element>,\n callback: PositionObserverCallback\n) {\n const cleanup = new Set<() => void>();\n\n for (const frame of frames) {\n const remove = addFrameListener(frame, callback);\n cleanup.add(remove);\n }\n\n return () => cleanup.forEach((remove) => remove());\n}\n\nfunction addScrollListener(element: Element, callback: EventListener) {\n const doc = element.ownerDocument;\n\n if (!scrollListeners.has(doc)) {\n const controller = new AbortController();\n const listeners = new Set<EventListener>();\n\n document.addEventListener(\n 'scroll',\n (event) => listeners.forEach((listener) => listener(event)),\n {\n capture: true,\n passive: true,\n signal: controller.signal,\n }\n );\n\n scrollListeners.set(doc, {disconnect: () => controller.abort(), listeners});\n }\n\n const {listeners, disconnect} = scrollListeners.get(doc) ?? {};\n\n if (!listeners || !disconnect) return () => {};\n\n listeners.add(callback);\n\n return () => {\n listeners.delete(callback);\n\n if (listeners.size === 0) {\n disconnect();\n scrollListeners.delete(doc);\n }\n };\n}\n\nexport class FrameObserver {\n #elementObserver: PositionObserver;\n #disconnected = false;\n #frames: Set<Element>;\n\n constructor(\n element: Element,\n private callback: PositionObserverCallback,\n options?: {debug?: boolean}\n ) {\n const frames = getFrameElements(element);\n const unobserveParentFrames = observeParentFrames(frames, callback);\n const removeScrollListener = addScrollListener(element, this.#handleScroll);\n\n this.#frames = frames;\n this.#elementObserver = new PositionObserver(element, callback, options);\n this.disconnect = () => {\n if (this.#disconnected) return;\n this.#disconnected = true;\n\n unobserveParentFrames();\n removeScrollListener();\n this.#elementObserver.disconnect();\n };\n }\n\n disconnect: () => void;\n\n #handleScroll = throttle((event: Event) => {\n if (this.#disconnected) return;\n if (!event.target) return;\n if (\n 'contains' in event.target &&\n typeof event.target.contains === 'function'\n ) {\n for (const frame of this.#frames) {\n if (event.target.contains(frame)) {\n this.callback(this.#elementObserver.boundingClientRect);\n break;\n }\n }\n }\n }, THROTTLE_INTERVAL);\n}\n","export function supportsPopover(element: Element): element is Element & {\n showPopover(): void;\n hidePopover(): void;\n} {\n return (\n 'showPopover' in element &&\n 'hidePopover' in element &&\n typeof element.showPopover === 'function' &&\n typeof element.hidePopover === 'function'\n );\n}\n","import {supportsPopover} from './supportsPopover.ts';\n\nexport function showPopover(element: Element) {\n try {\n if (\n supportsPopover(element) &&\n element.isConnected &&\n element.hasAttribute('popover') &&\n // This selector can throw an error in browsers that don't support it\n !element.matches(':popover-open')\n ) {\n element.showPopover();\n }\n } catch (error) {\n // no-op\n }\n}\n","import {supportsPopover} from './supportsPopover.ts';\n\nexport function hidePopover(element: Element) {\n try {\n if (\n supportsPopover(element) &&\n element.isConnected &&\n element.hasAttribute('popover') &&\n // This selector can throw an error in browsers that don't support it\n element.matches(':popover-open')\n ) {\n element.hidePopover();\n }\n } catch (error) {\n // no-op\n }\n}\n","import {canUseDOM} from '../execution-context/canUseDOM.ts';\nimport {getDocument} from '../execution-context/getDocument.ts';\n\nexport function isDocumentScrollingElement(element: Element | null) {\n if (!canUseDOM || !element) {\n return false;\n }\n\n return element === getDocument(element).scrollingElement;\n}\n","import {getBoundingRectangle} from '../bounding-rectangle/getBoundingRectangle.ts';\nimport {getViewportBoundingRectangle} from '../bounding-rectangle/getViewportBoundingRectangle.ts';\nimport {getWindow} from '../execution-context/getWindow.ts';\nimport {isDocumentScrollingElement} from './documentScrollingElement.ts';\n\nexport function getScrollPosition(scrollableElement: Element) {\n const window = getWindow(scrollableElement);\n const rect = isDocumentScrollingElement(scrollableElement)\n ? getViewportBoundingRectangle(scrollableElement)\n : getBoundingRectangle(scrollableElement);\n\n const dimensions = isDocumentScrollingElement(scrollableElement)\n ? {\n height: window.innerHeight,\n width: window.innerWidth,\n }\n : {\n height: scrollableElement.clientHeight,\n width: scrollableElement.clientWidth,\n };\n const position = {\n current: {\n x: scrollableElement.scrollLeft,\n y: scrollableElement.scrollTop,\n },\n max: {\n x: scrollableElement.scrollWidth - dimensions.width,\n y: scrollableElement.scrollHeight - dimensions.height,\n },\n };\n\n const isTop = position.current.y <= 0;\n const isLeft = position.current.x <= 0;\n const isBottom = position.current.y >= position.max.y;\n const isRight = position.current.x >= position.max.x;\n\n return {\n rect,\n position,\n isTop,\n isLeft,\n isBottom,\n isRight,\n };\n}\n","import type {Coordinates} from '@dnd-kit/geometry';\n\nimport {getScrollPosition} from './getScrollPosition.ts';\n\nexport function canScroll(scrollableElement: Element, by?: Coordinates) {\n const {isTop, isBottom, isLeft, isRight, position} =\n getScrollPosition(scrollableElement);\n\n const {x, y} = by ?? {x: 0, y: 0};\n\n const top = !isTop && position.current.y + y > 0;\n const bottom = !isBottom && position.current.y + y < position.max.y;\n const left = !isLeft && position.current.x + x > 0;\n const right = !isRight && position.current.x + x < position.max.x;\n\n return {\n top,\n bottom,\n left,\n right,\n x: left || right,\n y: top || bottom,\n };\n}\n","type Callback = () => void;\n\nexport class Scheduler<T extends (callback: Callback) => any> {\n constructor(private scheduler: T) {}\n\n private pending: boolean = false;\n private tasks: Set<() => void> = new Set();\n private resolvers: Set<() => void> = new Set();\n\n public schedule(task: () => void): Promise<void> {\n this.tasks.add(task);\n\n if (!this.pending) {\n this.pending = true;\n this.scheduler(this.flush);\n }\n\n return new Promise<void>((resolve) => this.resolvers.add(resolve));\n }\n\n public flush = () => {\n const {tasks, resolvers} = this;\n\n this.pending = false;\n this.tasks = new Set();\n this.resolvers = new Set();\n\n for (const task of tasks) {\n task();\n }\n\n for (const resolve of resolvers) {\n resolve();\n }\n };\n}\n\nexport const scheduler = new Scheduler((callback) => {\n if (typeof requestAnimationFrame === 'function') {\n requestAnimationFrame(callback);\n } else {\n callback();\n }\n});\n","import {getWindow} from '../execution-context/getWindow.ts';\nimport {Scheduler} from '../scheduling/scheduler.ts';\n\nconst scheduler = new Scheduler((callback) => setTimeout(callback, 50));\nconst cachedStyles = new Map<Element, CSSStyleDeclaration>();\nconst clear = cachedStyles.clear.bind(cachedStyles);\n\n/**\n * Get the computed styles for an element.\n * @param element - The element to get the computed styles for.\n * @param cached - Whether to cache the computed styles.\n * @returns The computed styles for the element.\n */\nexport function getComputedStyles(\n element: Element,\n cached = false\n): CSSStyleDeclaration {\n if (!cached) return computeStyles(element);\n\n let styles = cachedStyles.get(element);\n\n if (styles) return styles;\n\n styles = computeStyles(element);\n cachedStyles.set(element, styles);\n scheduler.schedule(clear);\n\n return styles;\n}\n\nfunction computeStyles(element: Element): CSSStyleDeclaration {\n return getWindow(element).getComputedStyle(element);\n}\n","import {getComputedStyles} from '../styles/getComputedStyles.ts';\n\nexport function isFixed(\n node: Element,\n computedStyle: CSSStyleDeclaration = getComputedStyles(node, true)\n): boolean {\n return (\n computedStyle.position === 'fixed' || computedStyle.position === 'sticky'\n );\n}\n","import {getComputedStyles} from '../styles/getComputedStyles.ts';\n\nexport function isScrollable(\n element: HTMLElement,\n computedStyle: CSSStyleDeclaration = getComputedStyles(element, true)\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 {getWindow} from '../execution-context/getWindow.ts';\nimport {isDocument} from '../type-guards/isDocument.ts';\nimport {isHTMLElement} from '../type-guards/isHTMLElement.ts';\nimport {isSVGElement} from '../type-guards/isSVGElement.ts';\nimport {getComputedStyles} from '../styles/getComputedStyles.ts';\nimport {isFixed} from './isFixed.ts';\nimport {isScrollable} from './isScrollable.ts';\n\ninterface Options {\n limit?: number;\n excludeElement?: boolean;\n}\n\nconst defaultOptions: Options = {\n excludeElement: true,\n};\n\nexport function getScrollableAncestors(\n element: Node | null,\n options: Options = defaultOptions\n): Set<Element> {\n const {limit, excludeElement} = options;\n const scrollParents = new Set<Element>();\n\n function findScrollableAncestors(node: Node | null): Set<Element> {\n if (limit != null && scrollParents.size >= 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.has(node.scrollingElement)\n ) {\n scrollParents.add(node.scrollingElement);\n\n return scrollParents;\n }\n\n if (!isHTMLElement(node)) {\n if (isSVGElement(node)) {\n return findScrollableAncestors(node.parentElement);\n }\n\n return scrollParents;\n }\n\n if (scrollParents.has(node)) {\n return scrollParents;\n }\n\n const computedStyle = getComputedStyles(node, true);\n\n if (excludeElement && node === element) {\n // no-op\n } else if (isScrollable(node, computedStyle)) {\n scrollParents.add(node);\n }\n\n if (isFixed(node, computedStyle)) {\n const {scrollingElement} = node.ownerDocument;\n\n if (scrollingElement) scrollParents.add(scrollingElement);\n\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, {limit: 1});\n\n return firstScrollableAncestor ?? null;\n}\n","import {getComputedStyles} from '../styles/getComputedStyles.ts';\nimport {isHTMLElement} from '../type-guards/isHTMLElement.ts';\nimport type {Transform} from '../transform/index.ts';\n\nimport {getFrameElement} from './getFrameElement.ts';\nimport {getBoundingRectangle} from '../bounding-rectangle/getBoundingRectangle.ts';\n\nexport function getFrameTransform(\n el: Element | undefined,\n boundary: Element | null = window.frameElement\n): Transform {\n const transform: Transform = {\n x: 0,\n y: 0,\n scaleX: 1,\n scaleY: 1,\n };\n\n if (!el) return transform;\n\n let frame = getFrameElement(el);\n\n while (frame) {\n if (frame === boundary) {\n return transform;\n }\n\n const rect = getBoundingRectangle(frame);\n const {x: scaleX, y: scaleY} = getScale(frame, rect);\n\n transform.x = transform.x + rect.left;\n transform.y = transform.y + rect.top;\n transform.scaleX = transform.scaleX * scaleX;\n transform.scaleY = transform.scaleY * scaleY;\n\n frame = getFrameElement(frame);\n }\n\n return transform;\n}\n\nfunction getScale(\n element: Element,\n boundingRectangle = getBoundingRectangle(element)\n) {\n const width = Math.round(boundingRectangle.width);\n const height = Math.round(boundingRectangle.height);\n\n if (isHTMLElement(element)) {\n return {\n x: width / element.offsetWidth,\n y: height / element.offsetHeight,\n };\n }\n\n const styles = getComputedStyles(element, true);\n\n return {\n x: (parseFloat(styles.width) || width) / width,\n y: (parseFloat(styles.height) || height) / height,\n };\n}\n","export function parseScale(scale: string) {\n if (scale === 'none') {\n return null;\n }\n\n const values = scale.split(' ');\n const x = parseFloat(values[0]);\n const y = parseFloat(values[1]);\n\n if (isNaN(x) && isNaN(y)) {\n return null;\n }\n\n return {\n x: isNaN(x) ? y : x,\n y: isNaN(y) ? x : y,\n };\n}\n","export function parseTranslate(translate: string) {\n if (translate === 'none') {\n return null;\n }\n\n const [x, y, z = '0'] = translate.split(' ');\n const output = {x: parseFloat(x), y: parseFloat(y), z: parseInt(z, 10)};\n\n if (isNaN(output.x) && isNaN(output.y)) {\n return null;\n }\n\n return {\n x: isNaN(output.x) ? 0 : output.x,\n y: isNaN(output.y) ? 0 : output.y,\n z: isNaN(output.z) ? 0 : output.z,\n };\n}\n","import type {Coordinates} from '@dnd-kit/geometry';\n\nimport {parseScale} from './parseScale.ts';\nimport {parseTranslate} from './parseTranslate.ts';\n\nexport interface Transform extends Coordinates {\n z?: number;\n scaleX: number;\n scaleY: number;\n}\n\nexport function parseTransform(computedStyles: {\n scale: string;\n transform: string;\n translate: string;\n}): Transform | null {\n const {scale, transform, translate} = computedStyles;\n const parsedScale = parseScale(scale);\n const parsedTranslate = parseTranslate(translate);\n const parsedMatrix = parseTransformMatrix(transform);\n\n if (!parsedMatrix && !parsedScale && !parsedTranslate) {\n return null;\n }\n\n const normalizedScale = {\n x: parsedScale?.x ?? 1,\n y: parsedScale?.y ?? 1,\n };\n\n const normalizedTranslate = {\n x: parsedTranslate?.x ?? 0,\n y: parsedTranslate?.y ?? 0,\n };\n\n const normalizedMatrix = {\n x: parsedMatrix?.x ?? 0,\n y: parsedMatrix?.y ?? 0,\n scaleX: parsedMatrix?.scaleX ?? 1,\n scaleY: parsedMatrix?.scaleY ?? 1,\n };\n\n return {\n x: normalizedTranslate.x + normalizedMatrix.x,\n y: normalizedTranslate.y + normalizedMatrix.y,\n z: parsedTranslate?.z ?? 0,\n scaleX: normalizedScale.x * normalizedMatrix.scaleX,\n scaleY: normalizedScale.y * normalizedMatrix.scaleY,\n };\n}\n\nfunction parseTransformMatrix(transform: string) {\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 {Rectangle, type Axis, type Coordinates} from '@dnd-kit/geometry';\n\nimport {getScrollPosition} from './getScrollPosition.ts';\nimport {getFrameTransform} from '../frame/getFrameTransform.ts';\nimport {getComputedStyles} from '../styles/getComputedStyles.ts';\nimport {parseTransform} from '../transform/parseTransform.ts';\n\nexport enum ScrollDirection {\n Idle = 0,\n Forward = 1,\n Reverse = -1,\n}\n\nconst defaultThreshold: Record<Axis, number> = {\n x: 0.2,\n y: 0.2,\n};\n\nconst defaultTolerance: Record<Axis, number> = {\n x: 10,\n y: 10,\n};\n\ninterface ScrollIntent {\n x: ScrollDirection;\n y: ScrollDirection;\n}\n\nexport function detectScrollIntent(\n scrollableElement: Element,\n coordinates: Coordinates,\n intent?: ScrollIntent,\n acceleration = 25,\n thresholdPercentage = defaultThreshold,\n tolerance = defaultTolerance\n) {\n const {x, y} = coordinates;\n const {rect, isTop, isBottom, isLeft, isRight} =\n getScrollPosition(scrollableElement);\n const frameTransform = getFrameTransform(scrollableElement);\n const computedStyles = getComputedStyles(scrollableElement, true);\n const parsedTransform = parseTransform(computedStyles);\n const isXAxisInverted =\n parsedTransform !== null ? parsedTransform?.scaleX < 0 : false;\n const isYAxisInverted =\n parsedTransform !== null ? parsedTransform?.scaleY < 0 : false;\n const scrollContainerRect = new Rectangle(\n rect.left * frameTransform.scaleX + frameTransform.x,\n rect.top * frameTransform.scaleY + frameTransform.y,\n rect.width * frameTransform.scaleX,\n rect.height * frameTransform.scaleY\n );\n const direction: Record<Axis, ScrollDirection> = {\n x: ScrollDirection.Idle,\n y: ScrollDirection.Idle,\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 (\n (!isTop || (isYAxisInverted && !isBottom)) &&\n y <= scrollContainerRect.top + threshold.height &&\n intent?.y !== ScrollDirection.Forward &&\n x >= scrollContainerRect.left - tolerance.x &&\n x <= scrollContainerRect.right + tolerance.x\n ) {\n // Scroll Up (or Down if inverted)\n direction.y = isYAxisInverted\n ? ScrollDirection.Forward\n : ScrollDirection.Reverse;\n speed.y =\n acceleration *\n Math.abs(\n (scrollContainerRect.top + threshold.height - y) / threshold.height\n );\n } else if (\n (!isBottom || (isYAxisInverted && !isTop)) &&\n y >= scrollContainerRect.bottom - threshold.height &&\n intent?.y !== ScrollDirection.Reverse &&\n x >= scrollContainerRect.left - tolerance.x &&\n x <= scrollContainerRect.right + tolerance.x\n ) {\n // Scroll Down (or Up if inverted)\n direction.y = isYAxisInverted\n ? ScrollDirection.Reverse\n : ScrollDirection.Forward;\n speed.y =\n acceleration *\n Math.abs(\n (scrollContainerRect.bottom - threshold.height - y) / threshold.height\n );\n }\n\n if (\n (!isRight || (isXAxisInverted && !isLeft)) &&\n x >= scrollContainerRect.right - threshold.width &&\n intent?.x !== ScrollDirection.Reverse &&\n y >= scrollContainerRect.top - tolerance.y &&\n y <= scrollContainerRect.bottom + tolerance.y\n ) {\n // Scroll Right (or Left if inverted)\n direction.x = isXAxisInverted\n ? ScrollDirection.Reverse\n : ScrollDirection.Forward;\n speed.x =\n acceleration *\n Math.abs(\n (scrollContainerRect.right - threshold.width - x) / threshold.width\n );\n } else if (\n (!isLeft || (isXAxisInverted && !isRight)) &&\n x <= scrollContainerRect.left + threshold.width &&\n intent?.x !== ScrollDirection.Forward &&\n y >= scrollContainerRect.top - tolerance.y &&\n y <= scrollContainerRect.bottom + tolerance.y\n ) {\n // Scroll Left (or Right if inverted)\n direction.x = isXAxisInverted\n ? ScrollDirection.Forward\n : ScrollDirection.Reverse;\n speed.x =\n acceleration *\n Math.abs(\n (scrollContainerRect.left + threshold.width - x) / threshold.width\n );\n }\n\n return {\n direction,\n speed,\n };\n}\n","import {getComputedStyles} from '../styles/getComputedStyles.ts';\nimport {isHTMLElement} from '../type-guards/isHTMLElement.ts';\nimport {getFirstScrollableAncestor} from './getScrollableAncestors.ts';\n\nfunction supportsScrollIntoViewIfNeeded(\n element: Element\n): element is Element & {\n scrollIntoViewIfNeeded: (centerIfNeeded?: boolean) => void;\n} {\n return (\n 'scrollIntoViewIfNeeded' in element &&\n typeof element.scrollIntoViewIfNeeded === 'function'\n );\n}\n\nexport function scrollIntoViewIfNeeded(el: Element, centerIfNeeded = false) {\n if (supportsScrollIntoViewIfNeeded(el)) {\n el.scrollIntoViewIfNeeded(centerIfNeeded);\n return;\n }\n\n if (!isHTMLElement(el)) {\n return el.scrollIntoView();\n }\n\n var parent = getFirstScrollableAncestor(el);\n\n if (!isHTMLElement(parent)) {\n return;\n }\n\n const parentComputedStyle = getComputedStyles(parent, true),\n parentBorderTopWidth = parseInt(\n parentComputedStyle.getPropertyValue('border-top-width')\n ),\n parentBorderLeftWidth = parseInt(\n parentComputedStyle.getPropertyValue('border-left-width')\n ),\n overTop = el.offsetTop - parent.offsetTop < parent.scrollTop,\n overBottom =\n el.offsetTop - parent.offsetTop + el.clientHeight - parentBorderTopWidth >\n parent.scrollTop + parent.clientHeight,\n overLeft = el.offsetLeft - parent.offsetLeft < parent.scrollLeft,\n overRight =\n el.offsetLeft -\n parent.offsetLeft +\n el.clientWidth -\n parentBorderLeftWidth >\n parent.scrollLeft + parent.clientWidth,\n alignWithTop = overTop && !overBottom;\n\n if ((overTop || overBottom) && centerIfNeeded) {\n parent.scrollTop =\n el.offsetTop -\n parent.offsetTop -\n parent.clientHeight / 2 -\n parentBorderTopWidth +\n el.clientHeight / 2;\n }\n\n if ((overLeft || overRight) && centerIfNeeded) {\n parent.scrollLeft =\n el.offsetLeft -\n parent.offsetLeft -\n parent.clientWidth / 2 -\n parentBorderLeftWidth +\n el.clientWidth / 2;\n }\n\n if ((overTop || overBottom || overLeft || overRight) && !centerIfNeeded) {\n el.scrollIntoView(alignWithTop);\n }\n}\n","import type {BoundingRectangle} from '@dnd-kit/geometry';\n\nimport {type Transform} from './parseTransform.ts';\n\nexport function applyTransform(\n rect: BoundingRectangle,\n parsedTransform: Transform,\n transformOrigin: string\n): BoundingRectangle {\n const {scaleX, scaleY, x: translateX, y: translateY} = parsedTransform;\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 type {BoundingRectangle} from '@dnd-kit/geometry';\n\nimport {type Transform} from './parseTransform.ts';\n\nexport function inverseTransform(\n rect: BoundingRectangle,\n parsedTransform: Transform,\n transformOrigin: string\n): BoundingRectangle {\n const {scaleX, scaleY, x: translateX, y: translateY} = parsedTransform;\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","interface Arguments {\n element: Element;\n keyframes: PropertyIndexedKeyframes | Keyframe[];\n options: KeyframeAnimationOptions;\n}\n\nexport function animateTransform({element, keyframes, options}: Arguments) {\n return element.animate(keyframes, options).finished;\n}\n","import {getFinalKeyframe} from '../animations/getFinalKeyframe.ts';\nimport {getComputedStyles} from '../styles/getComputedStyles.ts';\n\nimport {parseTranslate} from './parseTranslate.ts';\n\nexport function computeTranslate(\n element: Element,\n translate = getComputedStyles(element).translate,\n projected = true\n): {\n x: number;\n y: number;\n z: number;\n} {\n if (projected) {\n const keyframe = getFinalKeyframe(\n element,\n (keyframe) => 'translate' in keyframe\n );\n\n if (keyframe) {\n const {translate = ''} = keyframe[0];\n\n if (typeof translate === 'string') {\n const finalTranslate = parseTranslate(translate);\n\n if (finalTranslate) {\n return finalTranslate;\n }\n }\n }\n }\n\n if (translate) {\n const finalTranslate = parseTranslate(translate);\n\n if (finalTranslate) {\n return finalTranslate;\n }\n }\n\n return {x: 0, y: 0, z: 0};\n}\n","import {Scheduler} from '../scheduling/scheduler.ts';\nimport {isKeyframeEffect} from '../type-guards/isKeyframeEffect.ts';\n\nconst scheduler = new Scheduler((callback) => setTimeout(callback, 0));\nconst animations = new Map<Document | Element, Animation[]>();\nconst clear = animations.clear.bind(animations);\n\nfunction getDocumentAnimations(element: Element): Animation[] {\n const document = element.ownerDocument;\n let documentAnimations = animations.get(document);\n\n if (documentAnimations) return documentAnimations;\n\n documentAnimations = document.getAnimations();\n animations.set(document, documentAnimations);\n scheduler.schedule(clear);\n\n const elementAnimations = documentAnimations.filter(\n (animation) =>\n isKeyframeEffect(animation.effect) && animation.effect.target === element\n );\n\n animations.set(element, elementAnimations);\n\n return documentAnimations;\n}\n\n/*\n * Force animations on ancestors of the element into their end state\n * and return a function to reset them back to their current state.\n *\n * This is useful as it allows us to immediately calculate the final position\n * of an element without having to wait for the animations to finish.\n */\nexport function forceFinishAnimations(\n element: Element,\n options: {\n properties: string[];\n isValidTarget?: (target: Element) => boolean;\n }\n): (() => void) | undefined {\n const animations = getDocumentAnimations(element)\n .filter((animation) => {\n if (isKeyframeEffect(animation.effect)) {\n const {target} = animation.effect;\n const isValidTarget =\n (target && options.isValidTarget?.(target)) ?? true;\n\n if (isValidTarget) {\n return animation.effect.getKeyframes().some((keyframe) => {\n for (const property of options.properties) {\n if (keyframe[property]) return true;\n }\n });\n }\n }\n })\n .map((animation) => {\n const {effect, currentTime} = animation;\n const duration = effect?.getComputedTiming().duration;\n\n if (animation.pending || animation.playState === 'finished') return;\n\n if (\n typeof duration == 'number' &&\n typeof currentTime == 'number' &&\n currentTime < duration\n ) {\n animation.currentTime = duration;\n\n return () => {\n animation.currentTime = currentTime;\n };\n }\n });\n\n if (animations.length > 0) {\n return () => animations.forEach((reset) => reset?.());\n }\n}\n","import {Rectangle, type BoundingRectangle} from '@dnd-kit/geometry';\n\nimport {applyTransform} from '../transform/applyTransform.ts';\nimport {inverseTransform} from '../transform/inverseTransform.ts';\nimport {getComputedStyles} from '../styles/getComputedStyles.ts';\nimport {parseTransform, type Transform} from '../transform/index.ts';\nimport {getBoundingRectangle} from '../bounding-rectangle/getBoundingRectangle.ts';\nimport {getFrameTransform} from '../frame/getFrameTransform.ts';\nimport {isKeyframeEffect} from '../type-guards/isKeyframeEffect.ts';\nimport {forceFinishAnimations} from '../animations/forceFinishAnimations.ts';\nimport {isSafari} from '../execution-context/isSafari.ts';\n\nexport interface DOMRectangleOptions {\n getBoundingClientRect?: (element: Element) => BoundingRectangle;\n /* Whether to ignore transforms when calculating the rectangle */\n ignoreTransforms?: boolean;\n frameTransform?: Transform | null;\n}\n\nexport class DOMRectangle extends Rectangle {\n constructor(element: Element, options: DOMRectangleOptions = {}) {\n const {\n frameTransform = getFrameTransform(element),\n ignoreTransforms,\n getBoundingClientRect = getBoundingRectangle,\n } = options;\n const resetAnimations = forceFinishAnimations(element, {\n properties: ['transform', 'translate', 'scale', 'width', 'height'],\n isValidTarget: (target) =>\n (target !== element || isSafari()) && target.contains(element),\n });\n const boundingRectangle = getBoundingClientRect(element);\n let {top, left, width, height} = boundingRectangle;\n let updated: BoundingRectangle | undefined;\n\n const computedStyles = getComputedStyles(element);\n const parsedTransform = parseTransform(computedStyles);\n\n const scale = {\n x: parsedTransform?.scaleX ?? 1,\n y: parsedTransform?.scaleY ?? 1,\n };\n\n const projectedTransform = getProjectedTransform(element, computedStyles);\n\n resetAnimations?.();\n\n if (parsedTransform) {\n updated = inverseTransform(\n boundingRectangle,\n parsedTransform,\n computedStyles.transformOrigin\n );\n\n if (ignoreTransforms || projectedTransform) {\n top = updated.top;\n left = updated.left;\n width = updated.width;\n height = updated.height;\n }\n }\n\n const intrinsic = {\n width: updated?.width ?? width,\n height: updated?.height ?? height,\n };\n\n if (projectedTransform && !ignoreTransforms && updated) {\n const projected = applyTransform(\n updated,\n projectedTransform,\n computedStyles.transformOrigin\n );\n\n top = projected.top;\n left = projected.left;\n width = projected.width;\n height = projected.height;\n scale.x = projectedTransform.scaleX;\n scale.y = projectedTransform.scaleY;\n }\n\n if (frameTransform) {\n if (!ignoreTransforms) {\n left *= frameTransform.scaleX;\n width *= frameTransform.scaleX;\n top *= frameTransform.scaleY;\n height *= frameTransform.scaleY;\n }\n\n left += frameTransform.x;\n top += frameTransform.y;\n }\n\n super(left, top, width, height);\n\n this.scale = scale;\n this.intrinsicWidth = intrinsic.width;\n this.intrinsicHeight = intrinsic.height;\n }\n\n public intrinsicWidth: number;\n public intrinsicHeight: number;\n}\n\n/*\n * Get the projected transform of an element based on its final keyframe\n */\nfunction getProjectedTransform(\n element: Element,\n computedStyles: CSSStyleDeclaration\n): Transform | null {\n // Always get the latest animations on the element itself\n const animations = element.getAnimations();\n let projectedTransform: Transform | null = null;\n\n if (!animations.length) return null;\n\n for (const animation of animations) {\n if (animation.playState !== 'running') continue;\n const keyframes = isKeyframeEffect(animation.effect)\n ? animation.effect.getKeyframes()\n : [];\n const keyframe = keyframes[keyframes.length - 1];\n\n if (!keyframe) continue;\n\n const {transform, translate, scale} = keyframe;\n\n if (transform || translate || scale) {\n const parsedTransform = parseTransform({\n transform:\n typeof transform === 'string' && transform\n ? transform\n : computedStyles.transform,\n translate:\n typeof translate === 'string' && translate\n ? translate\n : computedStyles.translate,\n scale:\n typeof scale === 'string' && scale ? scale : computedStyles.scale,\n });\n\n if (parsedTransform) {\n projectedTransform = projectedTransform\n ? {\n x: projectedTransform.x + parsedTransform.x,\n y: projectedTransform.y + parsedTransform.y,\n z: projectedTransform.z ?? parsedTransform.z,\n scaleX: projectedTransform.scaleX * parsedTransform.scaleX,\n scaleY: projectedTransform.scaleY * parsedTransform.scaleY,\n }\n : parsedTransform;\n }\n }\n }\n\n return projectedTransform;\n}\n","export function supportsStyle(\n element: Element\n): element is Element & {style: CSSStyleDeclaration} {\n return (\n 'style' in element &&\n typeof element.style === 'object' &&\n element.style !== null &&\n 'setProperty' in element.style &&\n 'removeProperty' in element.style &&\n typeof element.style.setProperty === 'function' &&\n typeof element.style.removeProperty === 'function'\n );\n}\n","import {supportsStyle} from '../type-guards/supportsStyle.ts';\n\ntype ExtractStringProperties<T> = {\n [K in keyof T]?: T[K] extends string ? string : never;\n};\n\nexport type StyleDeclaration = ExtractStringProperties<CSSStyleDeclaration> & {\n viewTransitionName?: string;\n};\n\nexport class Styles {\n private initial = new Map<string, string>();\n\n constructor(private element: Element) {}\n\n public set(properties: Record<string, string | number>, prefix = '') {\n const {element} = this;\n\n if (!supportsStyle(element)) {\n return;\n }\n\n for (const [key, value] of Object.entries(properties)) {\n const property = `${prefix}${key}`;\n\n if (!this.initial.has(property)) {\n this.initial.set(property, element.style.getPropertyValue(property));\n }\n\n element.style.setProperty(\n property,\n typeof value === 'string' ? value : `${value}px`\n );\n }\n }\n\n public remove(properties: string[], prefix = '') {\n const {element} = this;\n\n if (!supportsStyle(element)) {\n return;\n }\n\n for (const key of properties) {\n const property = `${prefix}${key}`;\n\n element.style.removeProperty(property);\n }\n }\n\n public reset() {\n const {element} = this;\n\n if (!supportsStyle(element)) {\n return;\n }\n\n for (const [key, value] of this.initial) {\n element.style.setProperty(key, value);\n }\n\n if (element.getAttribute('style') === '') {\n element.removeAttribute('style');\n }\n }\n}\n","import {getWindow} from '../execution-context/getWindow.ts';\nimport {isNode} from './isNode.ts';\n\nexport function isElement(target: EventTarget | null): target is Element {\n if (!target) return false;\n\n return (\n target instanceof getWindow(target).Element ||\n (isNode(target) && target.nodeType === Node.ELEMENT_NODE)\n );\n}\n","import {getWindow} from '../execution-context/getWindow.ts';\n\nexport function isKeyboardEvent(\n event: Event | null | undefined\n): event is KeyboardEvent {\n if (!event) return false;\n\n const {KeyboardEvent} = getWindow(event.target);\n\n return event instanceof KeyboardEvent;\n}\n","import {getWindow} from '../execution-context/getWindow.ts';\n\nexport function isPointerEvent(\n event: Event | null | undefined\n): event is PointerEvent {\n if (!event) return false;\n\n const {PointerEvent} = getWindow(event.target);\n\n return event instanceof PointerEvent;\n}\n","interface ViewTransition {\n ready: Promise<void>;\n updateCallbackDone: Promise<void>;\n finished: Promise<void>;\n skipTransition(): void;\n}\n\nexport function supportsViewTransition(\n document: Document\n): document is Document & {\n startViewTransition(updateCallback: () => void): ViewTransition;\n} {\n return 'startViewTransition' in document;\n}\n","import {isElement} from './isElement.js';\n\nexport function isTextInput(target: EventTarget | null) {\n if (!isElement(target)) return false;\n\n const {tagName} = target;\n\n return (\n tagName === 'INPUT' || tagName === 'TEXTAREA' || isContentEditable(target)\n );\n}\n\nfunction isContentEditable(element: Element) {\n return (\n element.hasAttribute('contenteditable') &&\n element.getAttribute('contenteditable') !== 'false'\n );\n}\n","const ids: Record<string, number> = {};\n\nexport function generateUniqueId(prefix: string) {\n const id = ids[prefix] == null ? 0 : ids[prefix] + 1;\n ids[prefix] = id;\n\n return `${prefix}-${id}`;\n}\n"]}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { ValueHistory } from '@dnd-kit/state';
|
|
2
|
+
|
|
3
|
+
declare enum Axis {
|
|
4
|
+
Horizontal = "x",
|
|
5
|
+
Vertical = "y"
|
|
6
|
+
}
|
|
7
|
+
declare const Axes: Axis[];
|
|
8
|
+
|
|
9
|
+
type Align = 'center' | 'start' | 'end';
|
|
10
|
+
interface Alignment {
|
|
11
|
+
x: Align;
|
|
12
|
+
y: Align;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
type Coordinates = Record<Axis, number>;
|
|
16
|
+
|
|
17
|
+
interface BoundingRectangle {
|
|
18
|
+
width: number;
|
|
19
|
+
height: number;
|
|
20
|
+
left: number;
|
|
21
|
+
right: number;
|
|
22
|
+
top: number;
|
|
23
|
+
bottom: number;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* A Point represents a location in a two-dimensional coordinate system.
|
|
28
|
+
*
|
|
29
|
+
*/
|
|
30
|
+
declare class Point implements Coordinates {
|
|
31
|
+
x: number;
|
|
32
|
+
y: number;
|
|
33
|
+
/**
|
|
34
|
+
* @param {number} Coordinate of the point on the horizontal axis
|
|
35
|
+
* @param {number} Coordinate of the point on the vertical axis
|
|
36
|
+
*/
|
|
37
|
+
constructor(x: number, y: number);
|
|
38
|
+
/**
|
|
39
|
+
* Returns the delta between this point and another point.
|
|
40
|
+
*
|
|
41
|
+
* @param {Point} a - A point
|
|
42
|
+
* @param {Point} b - Another point
|
|
43
|
+
*/
|
|
44
|
+
static delta(a: Point, b: Point): Point;
|
|
45
|
+
/**
|
|
46
|
+
* Returns the distance (hypotenuse) between this point and another point.
|
|
47
|
+
*
|
|
48
|
+
* @param {Point} a - A point
|
|
49
|
+
* @param {Point} b - Another point
|
|
50
|
+
*/
|
|
51
|
+
static distance(a: Point, b: Point): number;
|
|
52
|
+
/**
|
|
53
|
+
* Returns true if both points are equal.
|
|
54
|
+
*
|
|
55
|
+
* @param {Point} a - A point
|
|
56
|
+
* @param {Point} b - Another point
|
|
57
|
+
*/
|
|
58
|
+
static equals(a: Point, b: Point): boolean;
|
|
59
|
+
static from({ x, y }: Coordinates): Point;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* An abstract class representing a 2D geometric shape, such as
|
|
64
|
+
* a polygon or circle. Shapes are used for collision detection
|
|
65
|
+
* during drag and drop operations.
|
|
66
|
+
*/
|
|
67
|
+
declare abstract class Shape {
|
|
68
|
+
/**
|
|
69
|
+
* Get the bounding rectangle of the 2D shape.
|
|
70
|
+
* @returns The bounding rectangle of the shape.
|
|
71
|
+
*/
|
|
72
|
+
abstract get boundingRectangle(): BoundingRectangle;
|
|
73
|
+
/**
|
|
74
|
+
* Get the center point of the 2D shape.
|
|
75
|
+
* @returns The center point of the shape.
|
|
76
|
+
*/
|
|
77
|
+
abstract get center(): Point;
|
|
78
|
+
/**
|
|
79
|
+
* Get the total space taken up by the 2D shape.
|
|
80
|
+
* @returns The area of the shape.
|
|
81
|
+
*/
|
|
82
|
+
abstract get area(): number;
|
|
83
|
+
/**
|
|
84
|
+
* Get the scale transformation of the shape on the 2D plane.
|
|
85
|
+
* @returns The scale of the shape.
|
|
86
|
+
*/
|
|
87
|
+
abstract get scale(): {
|
|
88
|
+
x: number;
|
|
89
|
+
y: number;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Get the inverse scale transformation of the shape on the 2D plane.
|
|
93
|
+
* @returns The inverse scale of the shape.
|
|
94
|
+
*/
|
|
95
|
+
abstract get inverseScale(): {
|
|
96
|
+
x: number;
|
|
97
|
+
y: number;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Get the aspect ratio of the 2D shape.
|
|
101
|
+
* @returns The aspect ratio of the shape.
|
|
102
|
+
*/
|
|
103
|
+
abstract get aspectRatio(): number;
|
|
104
|
+
/**
|
|
105
|
+
* Returns whether or not this shape is equal to another shape.
|
|
106
|
+
*
|
|
107
|
+
* @param shape The other shape to compare with.
|
|
108
|
+
* @returns Whether or not the two shapes are equal.
|
|
109
|
+
*/
|
|
110
|
+
abstract equals(shape: Shape): boolean;
|
|
111
|
+
/**
|
|
112
|
+
* Returns the intersection area between this shape and another shape.
|
|
113
|
+
*
|
|
114
|
+
* @param shape The other shape to calculate the intersection area with.
|
|
115
|
+
* @returns The intersection area between the two shapes.
|
|
116
|
+
*/
|
|
117
|
+
abstract intersectionArea(shape: Shape): number;
|
|
118
|
+
/**
|
|
119
|
+
* Test a point for containment within this shape.
|
|
120
|
+
*
|
|
121
|
+
* @param point A point in world coordinates.
|
|
122
|
+
*/
|
|
123
|
+
abstract containsPoint(point: Point): boolean;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
declare class Rectangle implements Shape {
|
|
127
|
+
left: number;
|
|
128
|
+
top: number;
|
|
129
|
+
width: number;
|
|
130
|
+
height: number;
|
|
131
|
+
constructor(left: number, top: number, width: number, height: number);
|
|
132
|
+
scale: {
|
|
133
|
+
x: number;
|
|
134
|
+
y: number;
|
|
135
|
+
};
|
|
136
|
+
get inverseScale(): {
|
|
137
|
+
x: number;
|
|
138
|
+
y: number;
|
|
139
|
+
};
|
|
140
|
+
translate(x: number, y: number): Rectangle;
|
|
141
|
+
get boundingRectangle(): BoundingRectangle;
|
|
142
|
+
get center(): Point;
|
|
143
|
+
get area(): number;
|
|
144
|
+
equals(shape: Shape): boolean;
|
|
145
|
+
containsPoint(point: Point): boolean;
|
|
146
|
+
intersectionArea(shape: Shape): number;
|
|
147
|
+
intersectionRatio(shape: Shape): number;
|
|
148
|
+
get bottom(): number;
|
|
149
|
+
get right(): number;
|
|
150
|
+
get aspectRatio(): number;
|
|
151
|
+
get corners(): {
|
|
152
|
+
x: number;
|
|
153
|
+
y: number;
|
|
154
|
+
}[];
|
|
155
|
+
static from({ top, left, width, height }: BoundingRectangle): Rectangle;
|
|
156
|
+
static delta(a: BoundingRectangle, b: BoundingRectangle, alignment?: Alignment): Point;
|
|
157
|
+
static intersectionRatio(a: BoundingRectangle, b: BoundingRectangle): number;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
declare class Position extends ValueHistory<Point> {
|
|
161
|
+
#private;
|
|
162
|
+
constructor(initialValue: Coordinates);
|
|
163
|
+
velocity: Point;
|
|
164
|
+
get delta(): Point;
|
|
165
|
+
get direction(): "right" | "left" | "down" | "up" | null;
|
|
166
|
+
get current(): Coordinates;
|
|
167
|
+
set current(coordinates: Coordinates);
|
|
168
|
+
reset(coordinates?: Point): void;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
type Distance = number | Coordinates | Pick<Coordinates, Axis.Horizontal> | Pick<Coordinates, Axis.Vertical>;
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Returns true if a set of relative coordinates exceeds a given distance.
|
|
175
|
+
*/
|
|
176
|
+
declare function exceedsDistance({ x, y }: Coordinates, distance: Distance): boolean;
|
|
177
|
+
|
|
178
|
+
export { type Alignment, Axes, Axis, type BoundingRectangle, type Coordinates, type Distance, Point, Position, Rectangle, Shape, exceedsDistance };
|