{"version":3,"file":"js/vendors-b73ebf5e.min.js?t=1743759387229","mappings":"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","sources":["webpack://frontend/./node_modules/@vonage/vivid/shared/definition63.js"],"sourcesContent":["import { a as attr, F as FoundationElement, o as observable, h as html, r as registerFactory } from './index.js';\nimport { B as Button, a as buttonRegistries } from './definition11.js';\nimport { E as Elevation, e as elevationRegistries } from './definition62.js';\nimport { r as ref } from './ref.js';\nimport { w as when } from './when.js';\nimport { c as classNames } from './class-names.js';\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n  x: v,\n  y: v\n});\nconst oppositeSideMap = {\n  left: 'right',\n  right: 'left',\n  bottom: 'top',\n  top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n  start: 'end',\n  end: 'start'\n};\nfunction clamp(start, value, end) {\n  return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n  return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n  return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n  return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n  return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n  return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n  return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n  return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n  if (rtl === void 0) {\n    rtl = false;\n  }\n  const alignment = getAlignment(placement);\n  const alignmentAxis = getAlignmentAxis(placement);\n  const length = getAxisLength(alignmentAxis);\n  let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n  if (rects.reference[length] > rects.floating[length]) {\n    mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n  }\n  return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n  const oppositePlacement = getOppositePlacement(placement);\n  return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n  return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n  const lr = ['left', 'right'];\n  const rl = ['right', 'left'];\n  const tb = ['top', 'bottom'];\n  const bt = ['bottom', 'top'];\n  switch (side) {\n    case 'top':\n    case 'bottom':\n      if (rtl) return isStart ? rl : lr;\n      return isStart ? lr : rl;\n    case 'left':\n    case 'right':\n      return isStart ? tb : bt;\n    default:\n      return [];\n  }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n  const alignment = getAlignment(placement);\n  let list = getSideList(getSide(placement), direction === 'start', rtl);\n  if (alignment) {\n    list = list.map(side => side + \"-\" + alignment);\n    if (flipAlignment) {\n      list = list.concat(list.map(getOppositeAlignmentPlacement));\n    }\n  }\n  return list;\n}\nfunction getOppositePlacement(placement) {\n  return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n  return {\n    top: 0,\n    right: 0,\n    bottom: 0,\n    left: 0,\n    ...padding\n  };\n}\nfunction getPaddingObject(padding) {\n  return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n    top: padding,\n    right: padding,\n    bottom: padding,\n    left: padding\n  };\n}\nfunction rectToClientRect(rect) {\n  return {\n    ...rect,\n    top: rect.y,\n    left: rect.x,\n    right: rect.x + rect.width,\n    bottom: rect.y + rect.height\n  };\n}\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$1 = 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\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  return {\n    name: 'offset',\n    options,\n    async fn(state) {\n      var _middlewareData$offse, _middlewareData$arrow;\n      const {\n        x,\n        y,\n        placement,\n        middlewareData\n      } = state;\n      const diffCoords = await convertValueToCoords(state, options);\n\n      // If the placement is the same and the arrow caused an alignment offset\n      // then we don't need to change the positioning coordinates.\n      if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n        return {};\n      }\n      return {\n        x: x + diffCoords.x,\n        y: y + diffCoords.y,\n        data: {\n          ...diffCoords,\n          placement\n        }\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\nfunction 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\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 <html> 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 `<html>` and `<body>` 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 <iframe>s\n        root: root.ownerDocument\n      });\n    } catch (e) {\n      io = new IntersectionObserver(handleObserve, options);\n    }\n    io.observe(element);\n  }\n  refresh(true);\n  return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    ancestorScroll = true,\n    ancestorResize = true,\n    elementResize = typeof ResizeObserver === 'function',\n    layoutShift = typeof IntersectionObserver === 'function',\n    animationFrame = false\n  } = options;\n  const referenceEl = unwrapElement(reference);\n  const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n  ancestors.forEach(ancestor => {\n    ancestorScroll && ancestor.addEventListener('scroll', update, {\n      passive: true\n    });\n    ancestorResize && ancestor.addEventListener('resize', update);\n  });\n  const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n  let reobserveFrame = -1;\n  let resizeObserver = null;\n  if (elementResize) {\n    resizeObserver = new ResizeObserver(_ref => {\n      let [firstEntry] = _ref;\n      if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n        // Prevent update loops when using the `size` middleware.\n        // https://github.com/floating-ui/floating-ui/issues/1740\n        resizeObserver.unobserve(floating);\n        cancelAnimationFrame(reobserveFrame);\n        reobserveFrame = requestAnimationFrame(() => {\n          resizeObserver && resizeObserver.observe(floating);\n        });\n      }\n      update();\n    });\n    if (referenceEl && !animationFrame) {\n      resizeObserver.observe(referenceEl);\n    }\n    resizeObserver.observe(floating);\n  }\n  let frameId;\n  let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n  if (animationFrame) {\n    frameLoop();\n  }\n  function frameLoop() {\n    const nextRefRect = getBoundingClientRect(reference);\n    if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n      update();\n    }\n    prevRefRect = nextRefRect;\n    frameId = requestAnimationFrame(frameLoop);\n  }\n  update();\n  return () => {\n    ancestors.forEach(ancestor => {\n      ancestorScroll && ancestor.removeEventListener('scroll', update);\n      ancestorResize && ancestor.removeEventListener('resize', update);\n    });\n    cleanupIo && cleanupIo();\n    resizeObserver && resizeObserver.disconnect();\n    resizeObserver = null;\n    if (animationFrame) {\n      cancelAnimationFrame(frameId);\n    }\n  };\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 CSS positioning\n * strategy.\n */\nconst computePosition = (reference, floating, options) => {\n  // This caches the expensive `getClippingElementAncestors` function so that\n  // multiple lifecycle resets re-use the same result. It only lives for a\n  // single call. If other functions become expensive, we can add them as well.\n  const cache = new Map();\n  const mergedOptions = {\n    platform,\n    ...options\n  };\n  const platformWithCache = {\n    ...mergedOptions.platform,\n    _c: cache\n  };\n  return computePosition$1(reference, floating, {\n    ...mergedOptions,\n    platform: platformWithCache\n  });\n};\n\nvar __defProp = Object.defineProperty;\nvar __decorateClass = (decorators, target, key, kind) => {\n  var result = void 0 ;\n  for (var i = decorators.length - 1, decorator; i >= 0; i--)\n    if (decorator = decorators[i])\n      result = (decorator(target, key, result) ) || result;\n  if (result)\n    __defProp(target, key, result);\n  return result;\n};\nclass Popup extends FoundationElement {\n  constructor() {\n    super(...arguments);\n    this.open = false;\n    this.dismissible = false;\n    this.arrow = false;\n    this.alternate = false;\n    this.strategy = \"fixed\";\n  }\n  get #middleware() {\n    let middleware = [\n      inline(),\n      flip(),\n      hide(),\n      size({\n        apply({ availableWidth, availableHeight, elements }) {\n          Object.assign(elements.floating.style, {\n            maxWidth: `${availableWidth}px`,\n            maxHeight: `${availableHeight}px`\n          });\n        }\n      })\n    ];\n    if (this.arrow) {\n      middleware = [\n        offset(12),\n        ...middleware,\n        arrow({ element: this.arrowEl, padding: 10 })\n      ];\n    }\n    return middleware;\n  }\n  #cleanup;\n  openChanged(_, newValue) {\n    newValue ? this.$emit(\"vwc-popup:open\") : this.$emit(\"vwc-popup:close\");\n    this.#updateAutoUpdate();\n  }\n  /**\n   * @internal\n   */\n  anchorChanged() {\n    this.#updateAutoUpdate();\n  }\n  connectedCallback() {\n    super.connectedCallback();\n    this.#updateAutoUpdate();\n  }\n  disconnectedCallback() {\n    super.disconnectedCallback();\n    this.#updateAutoUpdate();\n  }\n  #updateAutoUpdate() {\n    this.#cleanup?.();\n    if (this.anchorEl && this.open && this.popupEl) {\n      this.#cleanup = autoUpdate(\n        this.anchorEl,\n        this.popupEl,\n        () => this.updatePosition()\n      );\n    }\n  }\n  /**\n   * Updates popup's position\n   *\n   * @public\n   */\n  async updatePosition() {\n    if (!this.open || !this.anchorEl) {\n      return;\n    }\n    const positionData = await computePosition(this.anchorEl, this.popupEl, {\n      placement: this.placement,\n      strategy: this.strategy,\n      middleware: this.#middleware\n    });\n    this.#assignPopupPosition(positionData);\n    if (this.arrow) {\n      this.#assignArrowPosition(positionData);\n    }\n  }\n  #assignPopupPosition(data) {\n    const { x: popupX, y: popupY } = data;\n    const { referenceHidden } = data.middlewareData.hide;\n    Object.assign(this.popupEl.style, {\n      left: `${popupX}px`,\n      top: `${popupY}px`,\n      visibility: referenceHidden ? \"hidden\" : \"visible\"\n    });\n  }\n  #assignArrowPosition(data) {\n    const { x: arrowX, y: arrowY } = data.middlewareData.arrow;\n    const styles = {\n      left: \"calc(100% - 4px)\",\n      right: \"-4px\",\n      top: \"calc(100% - 4px)\",\n      bottom: \"-4px\"\n    };\n    const staticAxis = data.placement.split(\"-\")[0];\n    Object.assign(this.arrowEl.style, {\n      left: arrowX ? `${arrowX}px` : styles[staticAxis],\n      top: arrowY ? `${arrowY}px` : styles[staticAxis]\n    });\n  }\n  get anchorEl() {\n    return this.anchor ?? null;\n  }\n  show() {\n    this.open = true;\n  }\n  hide() {\n    this.open = false;\n  }\n}\n__decorateClass([\n  attr({\n    mode: \"boolean\"\n  })\n], Popup.prototype, \"open\");\n__decorateClass([\n  attr({\n    mode: \"boolean\"\n  })\n], Popup.prototype, \"dismissible\");\n__decorateClass([\n  attr({\n    mode: \"boolean\"\n  })\n], Popup.prototype, \"arrow\");\n__decorateClass([\n  attr({\n    mode: \"boolean\"\n  })\n], Popup.prototype, \"alternate\");\n__decorateClass([\n  attr({ mode: \"fromView\" })\n], Popup.prototype, \"placement\");\n__decorateClass([\n  attr({ mode: \"fromView\" })\n], Popup.prototype, \"strategy\");\n__decorateClass([\n  observable\n], Popup.prototype, \"anchor\");\n\nconst styles = \":host{display:var(--_popup-display, inline)}.control{border-radius:inherit;background:var(--vvd-color-surface-4dp);contain:layout}.control:not(.open){display:none}.popup-wrapper{white-space:initial;z-index:var(--_popup-z-index, 10);border-radius:8px;inline-size:max-content}.popup-wrapper:not(.absolute){position:fixed}.popup-wrapper.absolute{position:absolute;top:0;left:0}.popup-content{display:grid;color:var(--vvd-color-canvas-text)}.dismissible .popup-content{align-content:start;grid-template-columns:1fr auto}.arrow{position:absolute;z-index:-1;width:8px;height:8px;background:var(--vvd-color-surface-4dp);transform:rotate(45deg)}.dismissible-button{align-self:flex-start;margin-block-start:4px;margin-inline-end:4px}\";\n\nconst getClasses = ({ open, dismissible, alternate }) => classNames(\n  \"control\",\n  [\"open\", Boolean(open)],\n  [\"dismissible\", Boolean(dismissible)],\n  [\"alternate\", Boolean(alternate)]\n);\nconst popupTemplate = (context) => {\n  const elevationTag = context.tagFor(Elevation);\n  const buttonTag = context.tagFor(Button);\n  return html`\n  <${elevationTag}>\n\t  <div class=\"popup-wrapper ${(x) => x.strategy}\" ${ref(\n    \"popupEl\"\n  )} part=\"popup-base\">\n\t\t\t<div class=\"${getClasses}\" aria-hidden=\"${(x) => x.open ? \"false\" : \"true\"}\"\n\t\t\t\tpart=\"${(x) => x.alternate ? \"vvd-theme-alternate\" : \"\"}\">\n\t\t\t\t<div class=\"popup-content\">\n\t\t\t\t\t<slot></slot>\n\t\t\t\t\t${when(\n    (x) => x.dismissible,\n    html`<${buttonTag} size=\"condensed\" @click=\"${(x) => x.open = false}\"\n\t\t\t\t\t\tclass=\"dismissible-button\" icon=\"close-small-solid\" shape=\"pill\"></${buttonTag}>`\n  )}\n\t\t\t\t</div>\n\t\t\t\t${when(\n    (x) => x.arrow,\n    html`<div class=\"arrow\" ${ref(\"arrowEl\")}></div>`\n  )}\n\t\t\t</div>\n    </div>\n  </${elevationTag}>`;\n};\n\nconst popupDefinition = Popup.compose({\n  baseName: \"popup\",\n  template: popupTemplate,\n  styles\n});\nconst popupRegistries = [\n  popupDefinition(),\n  ...elevationRegistries,\n  ...buttonRegistries\n];\nconst registerPopup = registerFactory(popupRegistries);\n\nexport { Popup as P, popupRegistries as p, registerPopup as r };\n"],"names":["sides","min","Math","max","round","floor","createCoords","v","x","y","oppositeSideMap","left","right","bottom","top","oppositeAlignmentMap","start","end","clamp","value","evaluate","param","getSide","placement","split","getAlignment","getAxisLength","axis","getSideAxis","includes","getAlignmentAxis","getOppositeAlignmentPlacement","replace","alignment","getOppositePlacement","side","getPaddingObject","padding","expandPaddingObject","rectToClientRect","rect","width","height","computeCoordsFromPlacement","_ref","rtl","reference","floating","sideAxis","alignmentAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","async","detectOverflow","state","options","_await$platform$isEle","platform","rects","elements","strategy","boundary","rootBoundary","elementContext","altBoundary","paddingObject","element","clippingClientRect","getClippingRect","isElement","contextElement","getDocumentElement","offsetParent","getOffsetParent","offsetScale","getScale","elementClientRect","convertOffsetParentRelativeRectToViewportRelativeRect","arrow","name","fn","middlewareData","length","arrowDimensions","getDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","offset","shouldAddOffset","alignmentOffset","data","centerOffset","reset","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","mainAxis","checkMainAxis","crossAxis","checkCrossAxis","fallbackPlacements","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment","detectOverflowOptions","isBasePlacement","isRTL","oppositePlacement","getExpandedPlacements","push","direction","list","isStart","lr","rl","tb","bt","getSideList","map","concat","getOppositeAxisPlacements","placements","overflow","overflows","overflowsData","mainAlignmentSide","getAlignmentSides","every","_middlewareData$flip2","_overflowsData$filter","nextIndex","index","nextPlacement","resetPlacement","filter","d","sort","a","b","_overflowsData$map$so","reduce","acc","getSideOffsets","isAnySideFullyClipped","some","getBoundingRect","minX","minY","inline","nativeClientRects","Array","from","getClientRects","clientRects","sortedRects","slice","groups","prevRect","i","getRectsByLine","fallback","resetRects","getElementRects","getBoundingClientRect","find","firstRect","lastRect","isTop","isLeftSide","maxRight","minLeft","measureRects","_middlewareData$offse","diffCoords","mainAxisMulti","crossAxisMulti","rawValue","convertValueToCoords","size","apply","heightSide","widthSide","overflowAvailableHeight","overflowAvailableWidth","noShift","shift","availableHeight","availableWidth","maximumClippingWidth","maximumClippingHeight","xMin","xMax","yMin","yMax","nextDimensions","getNodeName","node","isNode","nodeName","toLowerCase","getWindow","_node$ownerDocument","ownerDocument","defaultView","window","document","documentElement","Node","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","isOverflowElement","overflowX","overflowY","display","getComputedStyle","test","isTableElement","isContainingBlock","webkit","isWebKit","css","transform","perspective","containerType","backdropFilter","willChange","contain","CSS","supports","isLastTraversableNode","getNodeScroll","scrollLeft","scrollTop","pageXOffset","pageYOffset","getParentNode","result","assignedSlot","parentNode","host","getNearestOverflowAncestor","body","getOverflowAncestors","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","visualViewport","frameElement","getCssDimensions","parseFloat","hasOffset","offsetWidth","offsetHeight","shouldFallback","$","unwrapElement","domElement","Number","isFinite","noOffsets","getVisualOffsets","offsetLeft","offsetTop","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","isFixed","floatingOffsetParent","shouldAddVisualOffsets","offsetWin","currentIFrame","iframeScale","iframeRect","clientLeft","paddingLeft","clientTop","paddingTop","getWindowScrollBarX","getClientRectFromClippingAncestor","clippingAncestor","html","clientWidth","clientHeight","visualViewportBased","getViewportRect","scroll","scrollWidth","scrollHeight","getDocumentRect","getInnerBoundingClientRect","hasFixedPositionAncestor","stopNode","position","getRectRelativeToOffsetParent","isOffsetParentAnElement","offsets","offsetRect","getTrueOffsetParent","polyfill","currentNode","getContainingBlock","clippingAncestors","cache","cachedResult","get","el","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","set","getClippingElementAncestors","this","_c","firstClippingAncestor","clippingRect","accRect","getOffsetParentFn","getDimensionsFn","__defProp","Object","defineProperty","__decorateClass","decorators","target","key","kind","decorator","Popup","F","constructor","super","arguments","open","dismissible","alternate","middleware","referenceHiddenOffsets","referenceHidden","escapedOffsets","escaped","assign","style","maxWidth","maxHeight","arrowEl","openChanged","_","newValue","$emit","anchorChanged","connectedCallback","disconnectedCallback","anchorEl","popupEl","update","ancestorScroll","ancestorResize","elementResize","ResizeObserver","layoutShift","IntersectionObserver","animationFrame","referenceEl","ancestors","forEach","addEventListener","passive","cleanupIo","onMove","timeoutId","io","root","cleanup","clearTimeout","disconnect","refresh","skip","threshold","rootMargin","isFirstUpdate","handleObserve","entries","ratio","intersectionRatio","setTimeout","e","observe","observeMove","frameId","reobserveFrame","resizeObserver","firstEntry","unobserve","cancelAnimationFrame","requestAnimationFrame","prevRefRect","frameLoop","nextRefRect","removeEventListener","autoUpdate","updatePosition","positionData","Map","mergedOptions","platformWithCache","config","validMiddleware","Boolean","statefulPlacement","resetCount","nextX","nextY","computePosition$1","computePosition","popupX","popupY","hide","visibility","arrowX","arrowY","styles","staticAxis","anchor","show","mode","prototype","o","getClasses","c","popupRegistries","compose","baseName","template","context","elevationTag","tagFor","E","buttonTag","B","h","r","w","popupDefinition"],"sourceRoot":""}