{"version":3,"file":"static/npm.floating-ui.2f05c767.js","mappings":"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","sources":["../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/@floating-ui/utils/dom/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs"],"sourcesContent":["import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain positioning strategy.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n continue;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n ...rects.floating,\n x,\n y\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center != offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$map$so;\n const placement = (_overflowsData$map$so = overflowsData.map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n const {\n x,\n y\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const overflowAvailableHeight = height - overflow[heightSide];\n const overflowAvailableWidth = width - overflow[widthSide];\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isYAxis) {\n const maximumClippingWidth = width - overflow.left - overflow.right;\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null ? void 0 : (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n // Browsers without `ShadowRoot` support.\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n const webkit = isWebKit();\n const css = getComputedStyle(element);\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = getParentNode(currentNode);\n }\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isWebKit };\n","import { rectToClientRect, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { arrow, autoPlacement, detectOverflow, flip, hide, inline, limitShift, offset, shift, size } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getDocumentElement, getNodeName, isOverflowElement, getNodeScroll, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentIFrame = win.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== win) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentIFrame = getWindow(currentIFrame).frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n if (offsetParent === documentElement) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\nfunction getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `
` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n return getCssDimensions(element);\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const window = getWindow(element);\n if (!isHTMLElement(element)) {\n return window;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n}\n\nconst getElementRects = async function (_ref) {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),\n floating: {\n x: 0,\n y: 0,\n ...(await getDimensionsFn(floating))\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n clearTimeout(timeoutId);\n io && io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle