{"ast":null,"code":"import _objectWithoutProperties from \"C:/Users/user/Desktop/portreact/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\";\nimport _toConsumableArray from \"C:/Users/user/Desktop/portreact/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\";\nimport _regeneratorRuntime from \"C:/Users/user/Desktop/portreact/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js\";\nimport _defineProperty from \"C:/Users/user/Desktop/portreact/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\nimport _objectSpread from \"C:/Users/user/Desktop/portreact/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\";\nimport _asyncToGenerator from \"C:/Users/user/Desktop/portreact/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nvar _excluded = [\"crossAxis\", \"alignment\", \"allowedPlacements\", \"autoAlignment\"],\n  _excluded2 = [\"mainAxis\", \"crossAxis\", \"fallbackPlacements\", \"fallbackStrategy\", \"fallbackAxisSideDirection\", \"flipAlignment\"],\n  _excluded3 = [\"strategy\"],\n  _excluded4 = [\"mainAxis\", \"crossAxis\", \"limiter\"],\n  _excluded5 = [\"apply\"];\nimport { 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';\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n  var reference = _ref.reference,\n    floating = _ref.floating;\n  var sideAxis = getSideAxis(placement);\n  var alignmentAxis = getAlignmentAxis(placement);\n  var alignLength = getAxisLength(alignmentAxis);\n  var side = getSide(placement);\n  var isVertical = sideAxis === 'y';\n  var commonX = reference.x + reference.width / 2 - floating.width / 2;\n  var commonY = reference.y + reference.height / 2 - floating.height / 2;\n  var commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n  var 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 */\nvar computePosition = /*#__PURE__*/function () {\n  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(reference, floating, config) {\n    var _config$placement, placement, _config$strategy, strategy, _config$middleware, middleware, platform, validMiddleware, rtl, rects, _computeCoordsFromPla, x, y, statefulPlacement, middlewareData, resetCount, i, _validMiddleware$i, name, fn, _yield$fn, nextX, nextY, data, reset, _computeCoordsFromPla2;\n    return _regeneratorRuntime().wrap(function _callee$(_context) {\n      while (1) switch (_context.prev = _context.next) {\n        case 0:\n          _config$placement = config.placement, placement = _config$placement === void 0 ? 'bottom' : _config$placement, _config$strategy = config.strategy, strategy = _config$strategy === void 0 ? 'absolute' : _config$strategy, _config$middleware = config.middleware, middleware = _config$middleware === void 0 ? [] : _config$middleware, platform = config.platform;\n          validMiddleware = middleware.filter(Boolean);\n          _context.next = 4;\n          return platform.isRTL == null ? void 0 : platform.isRTL(floating);\n        case 4:\n          rtl = _context.sent;\n          _context.next = 7;\n          return platform.getElementRects({\n            reference: reference,\n            floating: floating,\n            strategy: strategy\n          });\n        case 7:\n          rects = _context.sent;\n          _computeCoordsFromPla = computeCoordsFromPlacement(rects, placement, rtl), x = _computeCoordsFromPla.x, y = _computeCoordsFromPla.y;\n          statefulPlacement = placement;\n          middlewareData = {};\n          resetCount = 0;\n          i = 0;\n        case 13:\n          if (!(i < validMiddleware.length)) {\n            _context.next = 46;\n            break;\n          }\n          _validMiddleware$i = validMiddleware[i], name = _validMiddleware$i.name, fn = _validMiddleware$i.fn;\n          _context.next = 17;\n          return fn({\n            x: x,\n            y: y,\n            initialPlacement: placement,\n            placement: statefulPlacement,\n            strategy: strategy,\n            middlewareData: middlewareData,\n            rects: rects,\n            platform: platform,\n            elements: {\n              reference: reference,\n              floating: floating\n            }\n          });\n        case 17:\n          _yield$fn = _context.sent;\n          nextX = _yield$fn.x;\n          nextY = _yield$fn.y;\n          data = _yield$fn.data;\n          reset = _yield$fn.reset;\n          x = nextX != null ? nextX : x;\n          y = nextY != null ? nextY : y;\n          middlewareData = _objectSpread(_objectSpread({}, middlewareData), {}, _defineProperty({}, name, _objectSpread(_objectSpread({}, middlewareData[name]), data)));\n          if (!(reset && resetCount <= 50)) {\n            _context.next = 43;\n            break;\n          }\n          resetCount++;\n          if (!(typeof reset === 'object')) {\n            _context.next = 41;\n            break;\n          }\n          if (reset.placement) {\n            statefulPlacement = reset.placement;\n          }\n          if (!reset.rects) {\n            _context.next = 38;\n            break;\n          }\n          if (!(reset.rects === true)) {\n            _context.next = 36;\n            break;\n          }\n          _context.next = 33;\n          return platform.getElementRects({\n            reference: reference,\n            floating: floating,\n            strategy: strategy\n          });\n        case 33:\n          _context.t0 = _context.sent;\n          _context.next = 37;\n          break;\n        case 36:\n          _context.t0 = reset.rects;\n        case 37:\n          rects = _context.t0;\n        case 38:\n          _computeCoordsFromPla2 = computeCoordsFromPlacement(rects, statefulPlacement, rtl);\n          x = _computeCoordsFromPla2.x;\n          y = _computeCoordsFromPla2.y;\n        case 41:\n          i = -1;\n          return _context.abrupt(\"continue\", 43);\n        case 43:\n          i++;\n          _context.next = 13;\n          break;\n        case 46:\n          return _context.abrupt(\"return\", {\n            x: x,\n            y: y,\n            placement: statefulPlacement,\n            strategy: strategy,\n            middlewareData: middlewareData\n          });\n        case 47:\n        case \"end\":\n          return _context.stop();\n      }\n    }, _callee);\n  }));\n  return function computePosition(_x, _x2, _x3) {\n    return _ref2.apply(this, arguments);\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 */\nfunction detectOverflow(_x4, _x5) {\n  return _detectOverflow.apply(this, arguments);\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 */\nfunction _detectOverflow() {\n  _detectOverflow = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(state, options) {\n    var _await$platform$isEle, x, y, platform, rects, elements, strategy, _evaluate8, _evaluate8$boundary, boundary, _evaluate8$rootBounda, rootBoundary, _evaluate8$elementCon, elementContext, _evaluate8$altBoundar, altBoundary, _evaluate8$padding, padding, paddingObject, altContext, element, clippingClientRect, rect, offsetParent, offsetScale, elementClientRect;\n    return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n      while (1) switch (_context10.prev = _context10.next) {\n        case 0:\n          if (options === void 0) {\n            options = {};\n          }\n          x = state.x, y = state.y, platform = state.platform, rects = state.rects, elements = state.elements, strategy = state.strategy;\n          _evaluate8 = evaluate(options, state), _evaluate8$boundary = _evaluate8.boundary, boundary = _evaluate8$boundary === void 0 ? 'clippingAncestors' : _evaluate8$boundary, _evaluate8$rootBounda = _evaluate8.rootBoundary, rootBoundary = _evaluate8$rootBounda === void 0 ? 'viewport' : _evaluate8$rootBounda, _evaluate8$elementCon = _evaluate8.elementContext, elementContext = _evaluate8$elementCon === void 0 ? 'floating' : _evaluate8$elementCon, _evaluate8$altBoundar = _evaluate8.altBoundary, altBoundary = _evaluate8$altBoundar === void 0 ? false : _evaluate8$altBoundar, _evaluate8$padding = _evaluate8.padding, padding = _evaluate8$padding === void 0 ? 0 : _evaluate8$padding;\n          paddingObject = getPaddingObject(padding);\n          altContext = elementContext === 'floating' ? 'reference' : 'floating';\n          element = elements[altBoundary ? altContext : elementContext];\n          _context10.t0 = rectToClientRect;\n          _context10.t1 = platform;\n          _context10.next = 10;\n          return platform.isElement == null ? void 0 : platform.isElement(element);\n        case 10:\n          _context10.t2 = _await$platform$isEle = _context10.sent;\n          if (!(_context10.t2 != null)) {\n            _context10.next = 15;\n            break;\n          }\n          _context10.t3 = _await$platform$isEle;\n          _context10.next = 16;\n          break;\n        case 15:\n          _context10.t3 = true;\n        case 16:\n          if (!_context10.t3) {\n            _context10.next = 20;\n            break;\n          }\n          _context10.t4 = element;\n          _context10.next = 26;\n          break;\n        case 20:\n          _context10.t5 = element.contextElement;\n          if (_context10.t5) {\n            _context10.next = 25;\n            break;\n          }\n          _context10.next = 24;\n          return platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating);\n        case 24:\n          _context10.t5 = _context10.sent;\n        case 25:\n          _context10.t4 = _context10.t5;\n        case 26:\n          _context10.t6 = _context10.t4;\n          _context10.t7 = boundary;\n          _context10.t8 = rootBoundary;\n          _context10.t9 = strategy;\n          _context10.t10 = {\n            element: _context10.t6,\n            boundary: _context10.t7,\n            rootBoundary: _context10.t8,\n            strategy: _context10.t9\n          };\n          _context10.next = 33;\n          return _context10.t1.getClippingRect.call(_context10.t1, _context10.t10);\n        case 33:\n          _context10.t11 = _context10.sent;\n          clippingClientRect = (0, _context10.t0)(_context10.t11);\n          rect = elementContext === 'floating' ? _objectSpread(_objectSpread({}, rects.floating), {}, {\n            x: x,\n            y: y\n          }) : rects.reference;\n          _context10.next = 38;\n          return platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating);\n        case 38:\n          offsetParent = _context10.sent;\n          _context10.next = 41;\n          return platform.isElement == null ? void 0 : platform.isElement(offsetParent);\n        case 41:\n          if (!_context10.sent) {\n            _context10.next = 50;\n            break;\n          }\n          _context10.next = 44;\n          return platform.getScale == null ? void 0 : platform.getScale(offsetParent);\n        case 44:\n          _context10.t13 = _context10.sent;\n          if (_context10.t13) {\n            _context10.next = 47;\n            break;\n          }\n          _context10.t13 = {\n            x: 1,\n            y: 1\n          };\n        case 47:\n          _context10.t12 = _context10.t13;\n          _context10.next = 51;\n          break;\n        case 50:\n          _context10.t12 = {\n            x: 1,\n            y: 1\n          };\n        case 51:\n          offsetScale = _context10.t12;\n          _context10.t14 = rectToClientRect;\n          if (!platform.convertOffsetParentRelativeRectToViewportRelativeRect) {\n            _context10.next = 59;\n            break;\n          }\n          _context10.next = 56;\n          return platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n            rect: rect,\n            offsetParent: offsetParent,\n            strategy: strategy\n          });\n        case 56:\n          _context10.t15 = _context10.sent;\n          _context10.next = 60;\n          break;\n        case 59:\n          _context10.t15 = rect;\n        case 60:\n          _context10.t16 = _context10.t15;\n          elementClientRect = (0, _context10.t14)(_context10.t16);\n          return _context10.abrupt(\"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        case 63:\n        case \"end\":\n          return _context10.stop();\n      }\n    }, _callee10);\n  }));\n  return _detectOverflow.apply(this, arguments);\n}\nvar arrow = function arrow(options) {\n  return {\n    name: 'arrow',\n    options: options,\n    fn: function fn(state) {\n      return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n        var _data, _ref4;\n        var x, y, placement, rects, platform, elements, _ref3, element, _ref3$padding, padding, paddingObject, coords, axis, length, arrowDimensions, isYAxis, minProp, maxProp, clientProp, endDiff, startDiff, arrowOffsetParent, clientSize, centerToReference, largestPossiblePadding, minPadding, maxPadding, min$1, max, center, offset, shouldAddOffset, alignmentOffset;\n        return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n          while (1) switch (_context2.prev = _context2.next) {\n            case 0:\n              x = state.x, y = state.y, placement = state.placement, rects = state.rects, platform = state.platform, elements = state.elements; // Since `element` is required, we don't Partial<> the type.\n              _ref3 = evaluate(options, state) || {}, element = _ref3.element, _ref3$padding = _ref3.padding, padding = _ref3$padding === void 0 ? 0 : _ref3$padding;\n              if (!(element == null)) {\n                _context2.next = 4;\n                break;\n              }\n              return _context2.abrupt(\"return\", {});\n            case 4:\n              paddingObject = getPaddingObject(padding);\n              coords = {\n                x: x,\n                y: y\n              };\n              axis = getAlignmentAxis(placement);\n              length = getAxisLength(axis);\n              _context2.next = 10;\n              return platform.getDimensions(element);\n            case 10:\n              arrowDimensions = _context2.sent;\n              isYAxis = axis === 'y';\n              minProp = isYAxis ? 'top' : 'left';\n              maxProp = isYAxis ? 'bottom' : 'right';\n              clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n              endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n              startDiff = coords[axis] - rects.reference[axis];\n              _context2.next = 19;\n              return platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element);\n            case 19:\n              arrowOffsetParent = _context2.sent;\n              clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0; // DOM platform can return `window` as the `offsetParent`.\n              _context2.t0 = !clientSize;\n              if (_context2.t0) {\n                _context2.next = 26;\n                break;\n              }\n              _context2.next = 25;\n              return platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent);\n            case 25:\n              _context2.t0 = !_context2.sent;\n            case 26:\n              if (!_context2.t0) {\n                _context2.next = 28;\n                break;\n              }\n              clientSize = elements.floating[clientProp] || rects.floating[length];\n            case 28:\n              centerToReference = endDiff / 2 - startDiff / 2; // 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              largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n              minPadding = min(paddingObject[minProp], largestPossiblePadding);\n              maxPadding = min(paddingObject[maxProp], largestPossiblePadding); // Make sure the arrow doesn't overflow the floating element if the center\n              // point is outside the floating element's bounds.\n              min$1 = minPadding;\n              max = clientSize - arrowDimensions[length] - maxPadding;\n              center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n              offset = clamp(min$1, center, max); // 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. This stops `shift()` from taking action, but can\n              // be worked around by calling it again after the `arrow()` if desired.\n              shouldAddOffset = getAlignment(placement) != null && center != offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n              alignmentOffset = shouldAddOffset ? center < min$1 ? min$1 - center : max - center : 0;\n              return _context2.abrupt(\"return\", (_ref4 = {}, _defineProperty(_ref4, axis, coords[axis] - alignmentOffset), _defineProperty(_ref4, \"data\", (_data = {}, _defineProperty(_data, axis, offset), _defineProperty(_data, \"centerOffset\", center - offset + alignmentOffset), _data)), _ref4));\n            case 39:\n            case \"end\":\n              return _context2.stop();\n          }\n        }, _callee2);\n      }))();\n    }\n  };\n};\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n  var allowedPlacementsSortedByAlignment = alignment ? [].concat(_toConsumableArray(allowedPlacements.filter(function (placement) {\n    return getAlignment(placement) === alignment;\n  })), _toConsumableArray(allowedPlacements.filter(function (placement) {\n    return getAlignment(placement) !== alignment;\n  }))) : allowedPlacements.filter(function (placement) {\n    return getSide(placement) === placement;\n  });\n  return allowedPlacementsSortedByAlignment.filter(function (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 */\nvar autoPlacement = function autoPlacement(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'autoPlacement',\n    options: options,\n    fn: function fn(state) {\n      return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n        var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE, rects, middlewareData, placement, platform, elements, _evaluate, _evaluate$crossAxis, crossAxis, alignment, _evaluate$allowedPlac, allowedPlacements, _evaluate$autoAlignme, autoAlignment, detectOverflowOptions, placements$1, overflow, currentIndex, currentPlacement, alignmentSides, currentOverflows, allOverflows, nextPlacement, placementsSortedByMostSpace, placementsThatFitOnEachSide, resetPlacement;\n        return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n          while (1) switch (_context3.prev = _context3.next) {\n            case 0:\n              rects = state.rects, middlewareData = state.middlewareData, placement = state.placement, platform = state.platform, elements = state.elements;\n              _evaluate = evaluate(options, state), _evaluate$crossAxis = _evaluate.crossAxis, crossAxis = _evaluate$crossAxis === void 0 ? false : _evaluate$crossAxis, alignment = _evaluate.alignment, _evaluate$allowedPlac = _evaluate.allowedPlacements, allowedPlacements = _evaluate$allowedPlac === void 0 ? placements : _evaluate$allowedPlac, _evaluate$autoAlignme = _evaluate.autoAlignment, autoAlignment = _evaluate$autoAlignme === void 0 ? true : _evaluate$autoAlignme, detectOverflowOptions = _objectWithoutProperties(_evaluate, _excluded);\n              placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n              _context3.next = 5;\n              return detectOverflow(state, detectOverflowOptions);\n            case 5:\n              overflow = _context3.sent;\n              currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n              currentPlacement = placements$1[currentIndex];\n              if (!(currentPlacement == null)) {\n                _context3.next = 10;\n                break;\n              }\n              return _context3.abrupt(\"return\", {});\n            case 10:\n              _context3.t0 = getAlignmentSides;\n              _context3.t1 = currentPlacement;\n              _context3.t2 = rects;\n              _context3.next = 15;\n              return platform.isRTL == null ? void 0 : platform.isRTL(elements.floating);\n            case 15:\n              _context3.t3 = _context3.sent;\n              alignmentSides = (0, _context3.t0)(_context3.t1, _context3.t2, _context3.t3);\n              if (!(placement !== currentPlacement)) {\n                _context3.next = 19;\n                break;\n              }\n              return _context3.abrupt(\"return\", {\n                reset: {\n                  placement: placements$1[0]\n                }\n              });\n            case 19:\n              currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n              allOverflows = [].concat(_toConsumableArray(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), [{\n                placement: currentPlacement,\n                overflows: currentOverflows\n              }]);\n              nextPlacement = placements$1[currentIndex + 1]; // There are more placements to check.\n              if (!nextPlacement) {\n                _context3.next = 24;\n                break;\n              }\n              return _context3.abrupt(\"return\", {\n                data: {\n                  index: currentIndex + 1,\n                  overflows: allOverflows\n                },\n                reset: {\n                  placement: nextPlacement\n                }\n              });\n            case 24:\n              placementsSortedByMostSpace = allOverflows.map(function (d) {\n                var 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(function (acc, v) {\n                  return acc + v;\n                }, 0) :\n                // Check only the mainAxis.\n                d.overflows[0], d.overflows];\n              }).sort(function (a, b) {\n                return a[1] - b[1];\n              });\n              placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(function (d) {\n                return d[2].slice(0,\n                // Aligned placements should not check their opposite crossAxis\n                // side.\n                getAlignment(d[0]) ? 2 : 3).every(function (v) {\n                  return v <= 0;\n                });\n              });\n              resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n              if (!(resetPlacement !== placement)) {\n                _context3.next = 29;\n                break;\n              }\n              return _context3.abrupt(\"return\", {\n                data: {\n                  index: currentIndex + 1,\n                  overflows: allOverflows\n                },\n                reset: {\n                  placement: resetPlacement\n                }\n              });\n            case 29:\n              return _context3.abrupt(\"return\", {});\n            case 30:\n            case \"end\":\n              return _context3.stop();\n          }\n        }, _callee3);\n      }))();\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 */\nvar flip = function flip(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'flip',\n    options: options,\n    fn: function fn(state) {\n      return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n        var _middlewareData$flip, placement, middlewareData, rects, initialPlacement, platform, elements, _evaluate2, _evaluate2$mainAxis, checkMainAxis, _evaluate2$crossAxis, checkCrossAxis, specifiedFallbackPlacements, _evaluate2$fallbackSt, fallbackStrategy, _evaluate2$fallbackAx, fallbackAxisSideDirection, _evaluate2$flipAlignm, flipAlignment, detectOverflowOptions, side, isBasePlacement, rtl, fallbackPlacements, placements, overflow, overflows, overflowsData, _sides, _middlewareData$flip2, _overflowsData$filter, nextIndex, nextPlacement, resetPlacement, _overflowsData$map$so, _placement;\n        return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n          while (1) switch (_context4.prev = _context4.next) {\n            case 0:\n              placement = state.placement, middlewareData = state.middlewareData, rects = state.rects, initialPlacement = state.initialPlacement, platform = state.platform, elements = state.elements;\n              _evaluate2 = evaluate(options, state), _evaluate2$mainAxis = _evaluate2.mainAxis, checkMainAxis = _evaluate2$mainAxis === void 0 ? true : _evaluate2$mainAxis, _evaluate2$crossAxis = _evaluate2.crossAxis, checkCrossAxis = _evaluate2$crossAxis === void 0 ? true : _evaluate2$crossAxis, specifiedFallbackPlacements = _evaluate2.fallbackPlacements, _evaluate2$fallbackSt = _evaluate2.fallbackStrategy, fallbackStrategy = _evaluate2$fallbackSt === void 0 ? 'bestFit' : _evaluate2$fallbackSt, _evaluate2$fallbackAx = _evaluate2.fallbackAxisSideDirection, fallbackAxisSideDirection = _evaluate2$fallbackAx === void 0 ? 'none' : _evaluate2$fallbackAx, _evaluate2$flipAlignm = _evaluate2.flipAlignment, flipAlignment = _evaluate2$flipAlignm === void 0 ? true : _evaluate2$flipAlignm, detectOverflowOptions = _objectWithoutProperties(_evaluate2, _excluded2);\n              side = getSide(placement);\n              isBasePlacement = getSide(initialPlacement) === initialPlacement;\n              _context4.next = 6;\n              return platform.isRTL == null ? void 0 : platform.isRTL(elements.floating);\n            case 6:\n              rtl = _context4.sent;\n              fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n              if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {\n                fallbackPlacements.push.apply(fallbackPlacements, _toConsumableArray(getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl)));\n              }\n              placements = [initialPlacement].concat(_toConsumableArray(fallbackPlacements));\n              _context4.next = 12;\n              return detectOverflow(state, detectOverflowOptions);\n            case 12:\n              overflow = _context4.sent;\n              overflows = [];\n              overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n              if (checkMainAxis) {\n                overflows.push(overflow[side]);\n              }\n              if (checkCrossAxis) {\n                _sides = getAlignmentSides(placement, rects, rtl);\n                overflows.push(overflow[_sides[0]], overflow[_sides[1]]);\n              }\n              overflowsData = [].concat(_toConsumableArray(overflowsData), [{\n                placement: placement,\n                overflows: overflows\n              }]);\n\n              // One or more sides is overflowing.\n              if (overflows.every(function (side) {\n                return side <= 0;\n              })) {\n                _context4.next = 35;\n                break;\n              }\n              nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n              nextPlacement = placements[nextIndex];\n              if (!nextPlacement) {\n                _context4.next = 23;\n                break;\n              }\n              return _context4.abrupt(\"return\", {\n                data: {\n                  index: nextIndex,\n                  overflows: overflowsData\n                },\n                reset: {\n                  placement: nextPlacement\n                }\n              });\n            case 23:\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              resetPlacement = (_overflowsData$filter = overflowsData.filter(function (d) {\n                return d.overflows[0] <= 0;\n              }).sort(function (a, b) {\n                return a.overflows[1] - b.overflows[1];\n              })[0]) == null ? void 0 : _overflowsData$filter.placement; // Otherwise fallback.\n              if (resetPlacement) {\n                _context4.next = 33;\n                break;\n              }\n              _context4.t0 = fallbackStrategy;\n              _context4.next = _context4.t0 === 'bestFit' ? 28 : _context4.t0 === 'initialPlacement' ? 31 : 33;\n              break;\n            case 28:\n              _placement = (_overflowsData$map$so = overflowsData.map(function (d) {\n                return [d.placement, d.overflows.filter(function (overflow) {\n                  return overflow > 0;\n                }).reduce(function (acc, overflow) {\n                  return acc + overflow;\n                }, 0)];\n              }).sort(function (a, b) {\n                return a[1] - b[1];\n              })[0]) == null ? void 0 : _overflowsData$map$so[0];\n              if (_placement) {\n                resetPlacement = _placement;\n              }\n              return _context4.abrupt(\"break\", 33);\n            case 31:\n              resetPlacement = initialPlacement;\n              return _context4.abrupt(\"break\", 33);\n            case 33:\n              if (!(placement !== resetPlacement)) {\n                _context4.next = 35;\n                break;\n              }\n              return _context4.abrupt(\"return\", {\n                reset: {\n                  placement: resetPlacement\n                }\n              });\n            case 35:\n              return _context4.abrupt(\"return\", {});\n            case 36:\n            case \"end\":\n              return _context4.stop();\n          }\n        }, _callee4);\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(function (side) {\n    return overflow[side] >= 0;\n  });\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 */\nvar hide = function hide(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'hide',\n    options: options,\n    fn: function fn(state) {\n      return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n        var rects, _evaluate3, _evaluate3$strategy, strategy, detectOverflowOptions, overflow, offsets, _overflow, _offsets;\n        return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n          while (1) switch (_context5.prev = _context5.next) {\n            case 0:\n              rects = state.rects;\n              _evaluate3 = evaluate(options, state), _evaluate3$strategy = _evaluate3.strategy, strategy = _evaluate3$strategy === void 0 ? 'referenceHidden' : _evaluate3$strategy, detectOverflowOptions = _objectWithoutProperties(_evaluate3, _excluded3);\n              _context5.t0 = strategy;\n              _context5.next = _context5.t0 === 'referenceHidden' ? 5 : _context5.t0 === 'escaped' ? 10 : 15;\n              break;\n            case 5:\n              _context5.next = 7;\n              return detectOverflow(state, _objectSpread(_objectSpread({}, detectOverflowOptions), {}, {\n                elementContext: 'reference'\n              }));\n            case 7:\n              overflow = _context5.sent;\n              offsets = getSideOffsets(overflow, rects.reference);\n              return _context5.abrupt(\"return\", {\n                data: {\n                  referenceHiddenOffsets: offsets,\n                  referenceHidden: isAnySideFullyClipped(offsets)\n                }\n              });\n            case 10:\n              _context5.next = 12;\n              return detectOverflow(state, _objectSpread(_objectSpread({}, detectOverflowOptions), {}, {\n                altBoundary: true\n              }));\n            case 12:\n              _overflow = _context5.sent;\n              _offsets = getSideOffsets(_overflow, rects.floating);\n              return _context5.abrupt(\"return\", {\n                data: {\n                  escapedOffsets: _offsets,\n                  escaped: isAnySideFullyClipped(_offsets)\n                }\n              });\n            case 15:\n              return _context5.abrupt(\"return\", {});\n            case 16:\n            case \"end\":\n              return _context5.stop();\n          }\n        }, _callee5);\n      }))();\n    }\n  };\n};\nfunction getBoundingRect(rects) {\n  var minX = min.apply(void 0, _toConsumableArray(rects.map(function (rect) {\n    return rect.left;\n  })));\n  var minY = min.apply(void 0, _toConsumableArray(rects.map(function (rect) {\n    return rect.top;\n  })));\n  var maxX = max.apply(void 0, _toConsumableArray(rects.map(function (rect) {\n    return rect.right;\n  })));\n  var maxY = max.apply(void 0, _toConsumableArray(rects.map(function (rect) {\n    return rect.bottom;\n  })));\n  return {\n    x: minX,\n    y: minY,\n    width: maxX - minX,\n    height: maxY - minY\n  };\n}\nfunction getRectsByLine(rects) {\n  var sortedRects = rects.slice().sort(function (a, b) {\n    return a.y - b.y;\n  });\n  var groups = [];\n  var prevRect = null;\n  for (var i = 0; i < sortedRects.length; i++) {\n    var 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(function (rect) {\n    return rectToClientRect(getBoundingRect(rect));\n  });\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 */\nvar inline = function inline(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'inline',\n    options: options,\n    fn: function fn(state) {\n      return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n        var placement, elements, rects, platform, strategy, _evaluate4, _evaluate4$padding, padding, x, y, nativeClientRects, clientRects, fallback, paddingObject, getBoundingClientRect, resetRects;\n        return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n          while (1) switch (_context6.prev = _context6.next) {\n            case 0:\n              getBoundingClientRect = function _getBoundingClientRec() {\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(function (rect) {\n                    return x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom;\n                  }) || fallback;\n                }\n\n                // There are 2 or more connected rects.\n                if (clientRects.length >= 2) {\n                  if (getSideAxis(placement) === 'y') {\n                    var firstRect = clientRects[0];\n                    var lastRect = clientRects[clientRects.length - 1];\n                    var isTop = getSide(placement) === 'top';\n                    var _top = firstRect.top;\n                    var _bottom = lastRect.bottom;\n                    var _left = isTop ? firstRect.left : lastRect.left;\n                    var _right = isTop ? firstRect.right : lastRect.right;\n                    var _width = _right - _left;\n                    var _height = _bottom - _top;\n                    return {\n                      top: _top,\n                      bottom: _bottom,\n                      left: _left,\n                      right: _right,\n                      width: _width,\n                      height: _height,\n                      x: _left,\n                      y: _top\n                    };\n                  }\n                  var isLeftSide = getSide(placement) === 'left';\n                  var maxRight = max.apply(void 0, _toConsumableArray(clientRects.map(function (rect) {\n                    return rect.right;\n                  })));\n                  var minLeft = min.apply(void 0, _toConsumableArray(clientRects.map(function (rect) {\n                    return rect.left;\n                  })));\n                  var measureRects = clientRects.filter(function (rect) {\n                    return isLeftSide ? rect.left === minLeft : rect.right === maxRight;\n                  });\n                  var top = measureRects[0].top;\n                  var bottom = measureRects[measureRects.length - 1].bottom;\n                  var left = minLeft;\n                  var right = maxRight;\n                  var width = right - left;\n                  var height = bottom - top;\n                  return {\n                    top: top,\n                    bottom: bottom,\n                    left: left,\n                    right: right,\n                    width: width,\n                    height: height,\n                    x: left,\n                    y: top\n                  };\n                }\n                return fallback;\n              };\n              placement = state.placement, elements = state.elements, rects = state.rects, platform = state.platform, strategy = state.strategy; // 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              _evaluate4 = evaluate(options, state), _evaluate4$padding = _evaluate4.padding, padding = _evaluate4$padding === void 0 ? 2 : _evaluate4$padding, x = _evaluate4.x, y = _evaluate4.y;\n              _context6.t0 = Array;\n              _context6.next = 6;\n              return platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference);\n            case 6:\n              _context6.t1 = _context6.sent;\n              if (_context6.t1) {\n                _context6.next = 9;\n                break;\n              }\n              _context6.t1 = [];\n            case 9:\n              _context6.t2 = _context6.t1;\n              nativeClientRects = _context6.t0.from.call(_context6.t0, _context6.t2);\n              clientRects = getRectsByLine(nativeClientRects);\n              fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n              paddingObject = getPaddingObject(padding);\n              _context6.next = 16;\n              return platform.getElementRects({\n                reference: {\n                  getBoundingClientRect: getBoundingClientRect\n                },\n                floating: elements.floating,\n                strategy: strategy\n              });\n            case 16:\n              resetRects = _context6.sent;\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                _context6.next = 19;\n                break;\n              }\n              return _context6.abrupt(\"return\", {\n                reset: {\n                  rects: resetRects\n                }\n              });\n            case 19:\n              return _context6.abrupt(\"return\", {});\n            case 20:\n            case \"end\":\n              return _context6.stop();\n          }\n        }, _callee6);\n      }))();\n    }\n  };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\nfunction convertValueToCoords(_x6, _x7) {\n  return _convertValueToCoords.apply(this, arguments);\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 */\nfunction _convertValueToCoords() {\n  _convertValueToCoords = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(state, options) {\n    var placement, platform, elements, rtl, side, alignment, isVertical, mainAxisMulti, crossAxisMulti, rawValue, _ref6, mainAxis, crossAxis, alignmentAxis;\n    return _regeneratorRuntime().wrap(function _callee11$(_context11) {\n      while (1) switch (_context11.prev = _context11.next) {\n        case 0:\n          placement = state.placement, platform = state.platform, elements = state.elements;\n          _context11.next = 3;\n          return platform.isRTL == null ? void 0 : platform.isRTL(elements.floating);\n        case 3:\n          rtl = _context11.sent;\n          side = getSide(placement);\n          alignment = getAlignment(placement);\n          isVertical = getSideAxis(placement) === 'y';\n          mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n          crossAxisMulti = rtl && isVertical ? -1 : 1;\n          rawValue = evaluate(options, state); // eslint-disable-next-line prefer-const\n          _ref6 = typeof rawValue === 'number' ? {\n            mainAxis: rawValue,\n            crossAxis: 0,\n            alignmentAxis: null\n          } : _objectSpread({\n            mainAxis: 0,\n            crossAxis: 0,\n            alignmentAxis: null\n          }, rawValue), mainAxis = _ref6.mainAxis, crossAxis = _ref6.crossAxis, alignmentAxis = _ref6.alignmentAxis;\n          if (alignment && typeof alignmentAxis === 'number') {\n            crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n          }\n          return _context11.abrupt(\"return\", isVertical ? {\n            x: crossAxis * crossAxisMulti,\n            y: mainAxis * mainAxisMulti\n          } : {\n            x: mainAxis * mainAxisMulti,\n            y: crossAxis * crossAxisMulti\n          });\n        case 13:\n        case \"end\":\n          return _context11.stop();\n      }\n    }, _callee11);\n  }));\n  return _convertValueToCoords.apply(this, arguments);\n}\nvar offset = function offset(options) {\n  if (options === void 0) {\n    options = 0;\n  }\n  return {\n    name: 'offset',\n    options: options,\n    fn: function fn(state) {\n      return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n        var x, y, diffCoords;\n        return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n          while (1) switch (_context7.prev = _context7.next) {\n            case 0:\n              x = state.x, y = state.y;\n              _context7.next = 3;\n              return convertValueToCoords(state, options);\n            case 3:\n              diffCoords = _context7.sent;\n              return _context7.abrupt(\"return\", {\n                x: x + diffCoords.x,\n                y: y + diffCoords.y,\n                data: diffCoords\n              });\n            case 5:\n            case \"end\":\n              return _context7.stop();\n          }\n        }, _callee7);\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 */\nvar shift = function shift(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'shift',\n    options: options,\n    fn: function fn(state) {\n      return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n        var _objectSpread3;\n        var x, y, placement, _evaluate5, _evaluate5$mainAxis, checkMainAxis, _evaluate5$crossAxis, checkCrossAxis, _evaluate5$limiter, limiter, detectOverflowOptions, coords, overflow, crossAxis, mainAxis, mainAxisCoord, crossAxisCoord, minSide, maxSide, _min, _max, _minSide, _maxSide, _min2, _max2, limitedCoords;\n        return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n          while (1) switch (_context8.prev = _context8.next) {\n            case 0:\n              x = state.x, y = state.y, placement = state.placement;\n              _evaluate5 = evaluate(options, state), _evaluate5$mainAxis = _evaluate5.mainAxis, checkMainAxis = _evaluate5$mainAxis === void 0 ? true : _evaluate5$mainAxis, _evaluate5$crossAxis = _evaluate5.crossAxis, checkCrossAxis = _evaluate5$crossAxis === void 0 ? false : _evaluate5$crossAxis, _evaluate5$limiter = _evaluate5.limiter, limiter = _evaluate5$limiter === void 0 ? {\n                fn: function fn(_ref) {\n                  var x = _ref.x,\n                    y = _ref.y;\n                  return {\n                    x: x,\n                    y: y\n                  };\n                }\n              } : _evaluate5$limiter, detectOverflowOptions = _objectWithoutProperties(_evaluate5, _excluded4);\n              coords = {\n                x: x,\n                y: y\n              };\n              _context8.next = 5;\n              return detectOverflow(state, detectOverflowOptions);\n            case 5:\n              overflow = _context8.sent;\n              crossAxis = getSideAxis(getSide(placement));\n              mainAxis = getOppositeAxis(crossAxis);\n              mainAxisCoord = coords[mainAxis];\n              crossAxisCoord = coords[crossAxis];\n              if (checkMainAxis) {\n                minSide = mainAxis === 'y' ? 'top' : 'left';\n                maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n                _min = mainAxisCoord + overflow[minSide];\n                _max = mainAxisCoord - overflow[maxSide];\n                mainAxisCoord = clamp(_min, mainAxisCoord, _max);\n              }\n              if (checkCrossAxis) {\n                _minSide = crossAxis === 'y' ? 'top' : 'left';\n                _maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n                _min2 = crossAxisCoord + overflow[_minSide];\n                _max2 = crossAxisCoord - overflow[_maxSide];\n                crossAxisCoord = clamp(_min2, crossAxisCoord, _max2);\n              }\n              limitedCoords = limiter.fn(_objectSpread(_objectSpread({}, state), {}, (_objectSpread3 = {}, _defineProperty(_objectSpread3, mainAxis, mainAxisCoord), _defineProperty(_objectSpread3, crossAxis, crossAxisCoord), _objectSpread3)));\n              return _context8.abrupt(\"return\", _objectSpread(_objectSpread({}, limitedCoords), {}, {\n                data: {\n                  x: limitedCoords.x - x,\n                  y: limitedCoords.y - y\n                }\n              }));\n            case 14:\n            case \"end\":\n              return _context8.stop();\n          }\n        }, _callee8);\n      }))();\n    }\n  };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nvar limitShift = function limitShift(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    options: options,\n    fn: function fn(state) {\n      var _ref5;\n      var x = state.x,\n        y = state.y,\n        placement = state.placement,\n        rects = state.rects,\n        middlewareData = state.middlewareData;\n      var _evaluate6 = evaluate(options, state),\n        _evaluate6$offset = _evaluate6.offset,\n        offset = _evaluate6$offset === void 0 ? 0 : _evaluate6$offset,\n        _evaluate6$mainAxis = _evaluate6.mainAxis,\n        checkMainAxis = _evaluate6$mainAxis === void 0 ? true : _evaluate6$mainAxis,\n        _evaluate6$crossAxis = _evaluate6.crossAxis,\n        checkCrossAxis = _evaluate6$crossAxis === void 0 ? true : _evaluate6$crossAxis;\n      var coords = {\n        x: x,\n        y: y\n      };\n      var crossAxis = getSideAxis(placement);\n      var mainAxis = getOppositeAxis(crossAxis);\n      var mainAxisCoord = coords[mainAxis];\n      var crossAxisCoord = coords[crossAxis];\n      var rawOffset = evaluate(offset, state);\n      var computedOffset = typeof rawOffset === 'number' ? {\n        mainAxis: rawOffset,\n        crossAxis: 0\n      } : _objectSpread({\n        mainAxis: 0,\n        crossAxis: 0\n      }, rawOffset);\n      if (checkMainAxis) {\n        var len = mainAxis === 'y' ? 'height' : 'width';\n        var limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n        var 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        var _len = mainAxis === 'y' ? 'width' : 'height';\n        var isOriginSide = ['top', 'left'].includes(getSide(placement));\n        var _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        var _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 _ref5 = {}, _defineProperty(_ref5, mainAxis, mainAxisCoord), _defineProperty(_ref5, crossAxis, crossAxisCoord), _ref5;\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 */\nvar size = function size(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'size',\n    options: options,\n    fn: function fn(state) {\n      return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {\n        var placement, rects, platform, elements, _evaluate7, _evaluate7$apply, apply, detectOverflowOptions, overflow, side, alignment, isYAxis, _rects$floating, width, height, heightSide, widthSide, overflowAvailableHeight, overflowAvailableWidth, noShift, availableHeight, availableWidth, maximumClippingWidth, maximumClippingHeight, xMin, xMax, yMin, yMax, nextDimensions;\n        return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n          while (1) switch (_context9.prev = _context9.next) {\n            case 0:\n              placement = state.placement, rects = state.rects, platform = state.platform, elements = state.elements;\n              _evaluate7 = evaluate(options, state), _evaluate7$apply = _evaluate7.apply, apply = _evaluate7$apply === void 0 ? function () {} : _evaluate7$apply, detectOverflowOptions = _objectWithoutProperties(_evaluate7, _excluded5);\n              _context9.next = 4;\n              return detectOverflow(state, detectOverflowOptions);\n            case 4:\n              overflow = _context9.sent;\n              side = getSide(placement);\n              alignment = getAlignment(placement);\n              isYAxis = getSideAxis(placement) === 'y';\n              _rects$floating = rects.floating, width = _rects$floating.width, height = _rects$floating.height;\n              if (!(side === 'top' || side === 'bottom')) {\n                _context9.next = 28;\n                break;\n              }\n              heightSide = side;\n              _context9.t0 = alignment;\n              _context9.next = 14;\n              return platform.isRTL == null ? void 0 : platform.isRTL(elements.floating);\n            case 14:\n              if (!_context9.sent) {\n                _context9.next = 18;\n                break;\n              }\n              _context9.t1 = 'start';\n              _context9.next = 19;\n              break;\n            case 18:\n              _context9.t1 = 'end';\n            case 19:\n              _context9.t2 = _context9.t1;\n              if (!(_context9.t0 === _context9.t2)) {\n                _context9.next = 24;\n                break;\n              }\n              _context9.t3 = 'left';\n              _context9.next = 25;\n              break;\n            case 24:\n              _context9.t3 = 'right';\n            case 25:\n              widthSide = _context9.t3;\n              _context9.next = 30;\n              break;\n            case 28:\n              widthSide = side;\n              heightSide = alignment === 'end' ? 'top' : 'bottom';\n            case 30:\n              overflowAvailableHeight = height - overflow[heightSide];\n              overflowAvailableWidth = width - overflow[widthSide];\n              noShift = !state.middlewareData.shift;\n              availableHeight = overflowAvailableHeight;\n              availableWidth = overflowAvailableWidth;\n              if (isYAxis) {\n                maximumClippingWidth = width - overflow.left - overflow.right;\n                availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n              } else {\n                maximumClippingHeight = height - overflow.top - overflow.bottom;\n                availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;\n              }\n              if (noShift && !alignment) {\n                xMin = max(overflow.left, 0);\n                xMax = max(overflow.right, 0);\n                yMin = max(overflow.top, 0);\n                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              _context9.next = 39;\n              return apply(_objectSpread(_objectSpread({}, state), {}, {\n                availableWidth: availableWidth,\n                availableHeight: availableHeight\n              }));\n            case 39:\n              _context9.next = 41;\n              return platform.getDimensions(elements.floating);\n            case 41:\n              nextDimensions = _context9.sent;\n              if (!(width !== nextDimensions.width || height !== nextDimensions.height)) {\n                _context9.next = 44;\n                break;\n              }\n              return _context9.abrupt(\"return\", {\n                reset: {\n                  rects: true\n                }\n              });\n            case 44:\n              return _context9.abrupt(\"return\", {});\n            case 45:\n            case \"end\":\n              return _context9.stop();\n          }\n        }, _callee9);\n      }))();\n    }\n  };\n};\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };","map":{"version":3,"names":["getSideAxis","getAlignmentAxis","getAxisLength","getSide","getAlignment","evaluate","getPaddingObject","rectToClientRect","min","clamp","placements","getAlignmentSides","getOppositeAlignmentPlacement","getOppositePlacement","getExpandedPlacements","getOppositeAxisPlacements","sides","max","getOppositeAxis","computeCoordsFromPlacement","_ref","placement","rtl","reference","floating","sideAxis","alignmentAxis","alignLength","side","isVertical","commonX","x","width","commonY","y","height","commonAlign","coords","computePosition","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","config","_config$placement","_config$strategy","strategy","_config$middleware","middleware","platform","validMiddleware","rects","_computeCoordsFromPla","statefulPlacement","middlewareData","resetCount","i","_validMiddleware$i","name","fn","_yield$fn","nextX","nextY","data","reset","_computeCoordsFromPla2","wrap","_callee$","_context","prev","next","filter","Boolean","isRTL","sent","getElementRects","length","initialPlacement","elements","_objectSpread","_defineProperty","t0","abrupt","stop","_x","_x2","_x3","apply","arguments","detectOverflow","_x4","_x5","_detectOverflow","_callee10","state","options","_await$platform$isEle","_evaluate8","_evaluate8$boundary","boundary","_evaluate8$rootBounda","rootBoundary","_evaluate8$elementCon","elementContext","_evaluate8$altBoundar","altBoundary","_evaluate8$padding","padding","paddingObject","altContext","element","clippingClientRect","rect","offsetParent","offsetScale","elementClientRect","_callee10$","_context10","t1","isElement","t2","t3","t4","t5","contextElement","getDocumentElement","t6","t7","t8","t9","t10","getClippingRect","call","t11","getOffsetParent","getScale","t13","t12","t14","convertOffsetParentRelativeRectToViewportRelativeRect","t15","t16","top","bottom","left","right","arrow","_callee2","_data","_ref4","_ref3","_ref3$padding","axis","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","offset","shouldAddOffset","alignmentOffset","_callee2$","_context2","getDimensions","getPlacementList","alignment","autoAlignment","allowedPlacements","allowedPlacementsSortedByAlignment","concat","_toConsumableArray","autoPlacement","_callee3","_middlewareData$autoP","_middlewareData$autoP2","_placementsThatFitOnE","_evaluate","_evaluate$crossAxis","crossAxis","_evaluate$allowedPlac","_evaluate$autoAlignme","detectOverflowOptions","placements$1","overflow","currentIndex","currentPlacement","alignmentSides","currentOverflows","allOverflows","nextPlacement","placementsSortedByMostSpace","placementsThatFitOnEachSide","resetPlacement","_callee3$","_context3","_objectWithoutProperties","_excluded","undefined","index","overflows","map","d","slice","reduce","acc","v","sort","a","b","every","flip","_callee4","_middlewareData$flip","_evaluate2","_evaluate2$mainAxis","checkMainAxis","_evaluate2$crossAxis","checkCrossAxis","specifiedFallbackPlacements","_evaluate2$fallbackSt","fallbackStrategy","_evaluate2$fallbackAx","fallbackAxisSideDirection","_evaluate2$flipAlignm","flipAlignment","isBasePlacement","fallbackPlacements","overflowsData","_sides","_middlewareData$flip2","_overflowsData$filter","nextIndex","_overflowsData$map$so","_placement","_callee4$","_context4","mainAxis","_excluded2","push","getSideOffsets","isAnySideFullyClipped","some","hide","_callee5","_evaluate3","_evaluate3$strategy","offsets","_overflow","_offsets","_callee5$","_context5","_excluded3","referenceHiddenOffsets","referenceHidden","escapedOffsets","escaped","getBoundingRect","minX","minY","maxX","maxY","getRectsByLine","sortedRects","groups","prevRect","inline","_callee6","_evaluate4","_evaluate4$padding","nativeClientRects","clientRects","fallback","getBoundingClientRect","resetRects","_callee6$","_context6","_getBoundingClientRec","find","firstRect","lastRect","isTop","isLeftSide","maxRight","minLeft","measureRects","Array","getClientRects","from","convertValueToCoords","_x6","_x7","_convertValueToCoords","_callee11","mainAxisMulti","crossAxisMulti","rawValue","_ref6","_callee11$","_context11","includes","_callee7","diffCoords","_callee7$","_context7","shift","_callee8","_objectSpread3","_evaluate5","_evaluate5$mainAxis","_evaluate5$crossAxis","_evaluate5$limiter","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","_min","_max","_minSide","_maxSide","_min2","_max2","limitedCoords","_callee8$","_context8","_excluded4","limitShift","_ref5","_evaluate6","_evaluate6$offset","_evaluate6$mainAxis","_evaluate6$crossAxis","rawOffset","computedOffset","len","limitMin","limitMax","_middlewareData$offse","_middlewareData$offse2","isOriginSide","size","_callee9","_evaluate7","_evaluate7$apply","_rects$floating","heightSide","widthSide","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","maximumClippingWidth","maximumClippingHeight","xMin","xMax","yMin","yMax","nextDimensions","_callee9$","_context9","_excluded5"],"sources":["C:/Users/user/Desktop/portreact/node_modules/@floating-ui/core/dist/floating-ui.core.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    } = 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. This stops `shift()` from taking action, but can\n    // be worked around by calling it again after the `arrow()` if desired.\n    const shouldAddOffset = 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 ? min$1 - center : max - center : 0;\n    return {\n      [axis]: coords[axis] - alignmentOffset,\n      data: {\n        [axis]: offset,\n        centerOffset: center - offset + alignmentOffset\n      }\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$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      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"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}