{"ast":null,"code":"import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nvar _excluded = [\"portalContainer\"];\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport $P78NQ$react, { useState as $P78NQ$useState, useCallback as $P78NQ$useCallback, useRef as $P78NQ$useRef, useEffect as $P78NQ$useEffect, useContext as $P78NQ$useContext, useMemo as $P78NQ$useMemo } from \"react\";\nimport { useLayoutEffect as $P78NQ$useLayoutEffect, useId as $P78NQ$useId, isIOS as $P78NQ$isIOS, chain as $P78NQ$chain, getScrollParent as $P78NQ$getScrollParent } from \"@react-aria/utils\";\nimport { useLocale as $P78NQ$useLocale, useMessageFormatter as $P78NQ$useMessageFormatter } from \"@react-aria/i18n\";\nimport $P78NQ$domhelpersstyle from \"dom-helpers/style\";\nimport $P78NQ$domhelpersqueryoffset from \"dom-helpers/query/offset\";\nimport $P78NQ$domhelpersqueryposition from \"dom-helpers/query/position\";\nimport $P78NQ$domhelpersqueryscrollLeft from \"dom-helpers/query/scrollLeft\";\nimport $P78NQ$domhelpersqueryscrollTop from \"dom-helpers/query/scrollTop\";\nimport $P78NQ$domhelpersownerDocument from \"dom-helpers/ownerDocument\";\nimport { useInteractOutside as $P78NQ$useInteractOutside, useFocusWithin as $P78NQ$useFocusWithin } from \"@react-aria/interactions\";\nimport $P78NQ$reactdom from \"react-dom\";\nimport { VisuallyHidden as $P78NQ$VisuallyHidden } from \"@react-aria/visually-hidden\";\n\nfunction $parcel$export(e, n, v, s) {\n  Object.defineProperty(e, n, {\n    get: v,\n    set: s,\n    enumerable: true,\n    configurable: true\n  });\n}\n\nfunction $parcel$interopDefault(a) {\n  return a && a.__esModule ? a.default : a;\n}\n\nvar $257fdf58e89203e8$exports = {};\n$parcel$export($257fdf58e89203e8$exports, \"useOverlayPosition\", function () {\n  return $257fdf58e89203e8$export$d39e1813b3bdd0e1;\n});\nvar $9510af50157ce9d5$var$AXIS = {\n  top: 'top',\n  bottom: 'top',\n  left: 'left',\n  right: 'left'\n};\nvar $9510af50157ce9d5$var$FLIPPED_DIRECTION = {\n  top: 'bottom',\n  bottom: 'top',\n  left: 'right',\n  right: 'left'\n};\nvar $9510af50157ce9d5$var$CROSS_AXIS = {\n  top: 'left',\n  left: 'top'\n};\nvar $9510af50157ce9d5$var$AXIS_SIZE = {\n  top: 'height',\n  left: 'width'\n};\nvar $9510af50157ce9d5$var$PARSED_PLACEMENT_CACHE = {};\nvar $9510af50157ce9d5$var$visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\nfunction $9510af50157ce9d5$var$getContainerDimensions(containerNode) {\n  var width = 0,\n      height = 0,\n      top = 0,\n      left = 0;\n  var scroll = {};\n\n  if (containerNode.tagName === 'BODY') {\n    var _$9510af50157ce9d5$va, _$9510af50157ce9d5$va2;\n\n    width = (_$9510af50157ce9d5$va = $9510af50157ce9d5$var$visualViewport == null ? void 0 : $9510af50157ce9d5$var$visualViewport.width) != null ? _$9510af50157ce9d5$va : document.documentElement.clientWidth;\n    height = (_$9510af50157ce9d5$va2 = $9510af50157ce9d5$var$visualViewport == null ? void 0 : $9510af50157ce9d5$var$visualViewport.height) != null ? _$9510af50157ce9d5$va2 : document.documentElement.clientHeight;\n    scroll.top = $P78NQ$domhelpersqueryscrollTop($P78NQ$domhelpersownerDocument(containerNode).documentElement) || $P78NQ$domhelpersqueryscrollTop(containerNode);\n    scroll.left = $P78NQ$domhelpersqueryscrollLeft($P78NQ$domhelpersownerDocument(containerNode).documentElement) || $P78NQ$domhelpersqueryscrollLeft(containerNode);\n  } else {\n    var _$P78NQ$domhelpersque = $P78NQ$domhelpersqueryoffset(containerNode);\n\n    width = _$P78NQ$domhelpersque.width;\n    height = _$P78NQ$domhelpersque.height;\n    top = _$P78NQ$domhelpersque.top;\n    left = _$P78NQ$domhelpersque.left;\n    scroll.top = $P78NQ$domhelpersqueryscrollTop(containerNode);\n    scroll.left = $P78NQ$domhelpersqueryscrollLeft(containerNode);\n  }\n\n  return {\n    width: width,\n    height: height,\n    scroll: scroll,\n    top: top,\n    left: left\n  };\n}\n\nfunction $9510af50157ce9d5$var$getScroll(node) {\n  return {\n    top: node.scrollTop,\n    left: node.scrollLeft,\n    width: node.scrollWidth,\n    height: node.scrollHeight\n  };\n}\n\nfunction $9510af50157ce9d5$var$getDelta(axis, offset, size, containerDimensions, padding) {\n  var containerScroll = containerDimensions.scroll[axis];\n  var containerHeight = containerDimensions[$9510af50157ce9d5$var$AXIS_SIZE[axis]];\n  var startEdgeOffset = offset - padding - containerScroll;\n  var endEdgeOffset = offset + padding - containerScroll + size;\n  if (startEdgeOffset < 0) return -startEdgeOffset;else if (endEdgeOffset > containerHeight) return Math.max(containerHeight - endEdgeOffset, -startEdgeOffset);else return 0;\n}\n\nfunction $9510af50157ce9d5$var$getMargins(node) {\n  var style = window.getComputedStyle(node);\n  return {\n    top: parseInt(style.marginTop, 10) || 0,\n    bottom: parseInt(style.marginBottom, 10) || 0,\n    left: parseInt(style.marginLeft, 10) || 0,\n    right: parseInt(style.marginRight, 10) || 0\n  };\n}\n\nfunction $9510af50157ce9d5$var$parsePlacement(input) {\n  if ($9510af50157ce9d5$var$PARSED_PLACEMENT_CACHE[input]) return $9510af50157ce9d5$var$PARSED_PLACEMENT_CACHE[input];\n\n  var _input$split = input.split(' '),\n      _input$split2 = _slicedToArray(_input$split, 2),\n      placement = _input$split2[0],\n      crossPlacement = _input$split2[1];\n\n  var axis = $9510af50157ce9d5$var$AXIS[placement] || 'right';\n  var crossAxis = $9510af50157ce9d5$var$CROSS_AXIS[axis];\n  if (!$9510af50157ce9d5$var$AXIS[crossPlacement]) crossPlacement = 'center';\n  var size = $9510af50157ce9d5$var$AXIS_SIZE[axis];\n  var crossSize = $9510af50157ce9d5$var$AXIS_SIZE[crossAxis];\n  $9510af50157ce9d5$var$PARSED_PLACEMENT_CACHE[input] = {\n    placement: placement,\n    crossPlacement: crossPlacement,\n    axis: axis,\n    crossAxis: crossAxis,\n    size: size,\n    crossSize: crossSize\n  };\n  return $9510af50157ce9d5$var$PARSED_PLACEMENT_CACHE[input];\n}\n\nfunction $9510af50157ce9d5$var$computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned) {\n  var placement = placementInfo.placement,\n      crossPlacement = placementInfo.crossPlacement,\n      axis = placementInfo.axis,\n      crossAxis = placementInfo.crossAxis,\n      size = placementInfo.size,\n      crossSize = placementInfo.crossSize;\n  var position = {};\n  position[crossAxis] = childOffset[crossAxis];\n  if (crossPlacement === 'center') position[crossAxis] += (childOffset[crossSize] - overlaySize[crossSize]) / 2;else if (crossPlacement !== crossAxis) position[crossAxis] += childOffset[crossSize] - overlaySize[crossSize];\n  position[crossAxis] += crossOffset;\n  var minViablePosition = childOffset[crossAxis] + childOffset[crossSize] / 2 - overlaySize[crossSize];\n  var maxViablePosition = childOffset[crossAxis] + childOffset[crossSize] / 2;\n  position[crossAxis] = Math.min(Math.max(minViablePosition, position[crossAxis]), maxViablePosition);\n\n  if (placement === axis) {\n    var containerHeight = isContainerPositioned ? containerOffsetWithBoundary[size] : boundaryDimensions[size];\n    position[$9510af50157ce9d5$var$FLIPPED_DIRECTION[axis]] = Math.floor(containerHeight - childOffset[axis] + offset);\n  } else position[axis] = Math.floor(childOffset[axis] + childOffset[size] + offset);\n\n  return position;\n}\n\nfunction $9510af50157ce9d5$var$getMaxHeight(position, boundaryDimensions, containerOffsetWithBoundary, childOffset, margins, padding) {\n  return position.top != null ? Math.max(0, boundaryDimensions.height + boundaryDimensions.top + boundaryDimensions.scroll.top - (containerOffsetWithBoundary.top + position.top) - (margins.top + margins.bottom + padding)) : Math.max(0, childOffset.top + containerOffsetWithBoundary.top - (boundaryDimensions.top + boundaryDimensions.scroll.top) - (margins.top + margins.bottom + padding));\n}\n\nfunction $9510af50157ce9d5$var$getAvailableSpace(boundaryDimensions, containerOffsetWithBoundary, childOffset, margins, padding, placementInfo) {\n  var placement = placementInfo.placement,\n      axis = placementInfo.axis,\n      size = placementInfo.size;\n  if (placement === axis) return Math.max(0, childOffset[axis] - boundaryDimensions[axis] - boundaryDimensions.scroll[axis] + containerOffsetWithBoundary[axis] - margins[axis] - margins[$9510af50157ce9d5$var$FLIPPED_DIRECTION[axis]] - padding);\n  return Math.max(0, boundaryDimensions[size] + boundaryDimensions[axis] + boundaryDimensions.scroll[axis] - containerOffsetWithBoundary[axis] - childOffset[axis] - childOffset[size] - margins[axis] - margins[$9510af50157ce9d5$var$FLIPPED_DIRECTION[axis]] - padding);\n}\n\nfunction $9510af50157ce9d5$export$6839422d1f33cee9(placementInput, childOffset, overlaySize, scrollSize, margins, padding, flip, boundaryDimensions, containerOffsetWithBoundary, offset, crossOffset, isContainerPositioned, userSetMaxHeight) {\n  var placementInfo = $9510af50157ce9d5$var$parsePlacement(placementInput);\n  var _placementInfo = placementInfo,\n      size = _placementInfo.size,\n      crossAxis = _placementInfo.crossAxis,\n      crossSize = _placementInfo.crossSize,\n      placement = _placementInfo.placement,\n      crossPlacement = _placementInfo.crossPlacement;\n  var position = $9510af50157ce9d5$var$computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n  var normalizedOffset = offset;\n  var space = $9510af50157ce9d5$var$getAvailableSpace(boundaryDimensions, containerOffsetWithBoundary, childOffset, margins, padding + offset, placementInfo);\n\n  if (flip && scrollSize[size] > space) {\n    var flippedPlacementInfo = $9510af50157ce9d5$var$parsePlacement($9510af50157ce9d5$var$FLIPPED_DIRECTION[placement] + \" \" + crossPlacement);\n    var flippedPosition = $9510af50157ce9d5$var$computePosition(childOffset, boundaryDimensions, overlaySize, flippedPlacementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n    var flippedSpace = $9510af50157ce9d5$var$getAvailableSpace(boundaryDimensions, containerOffsetWithBoundary, childOffset, margins, padding + offset, flippedPlacementInfo);\n\n    if (flippedSpace > space) {\n      placementInfo = flippedPlacementInfo;\n      position = flippedPosition;\n      normalizedOffset = offset;\n    }\n  }\n\n  var delta = $9510af50157ce9d5$var$getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);\n  position[crossAxis] += delta;\n  var maxHeight = $9510af50157ce9d5$var$getMaxHeight(position, boundaryDimensions, containerOffsetWithBoundary, childOffset, margins, padding);\n  if (userSetMaxHeight && userSetMaxHeight < maxHeight) maxHeight = userSetMaxHeight;\n  overlaySize.height = Math.min(overlaySize.height, maxHeight);\n  position = $9510af50157ce9d5$var$computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, normalizedOffset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n  delta = $9510af50157ce9d5$var$getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);\n  position[crossAxis] += delta;\n  var arrowPosition = {};\n  arrowPosition[crossAxis] = childOffset[crossAxis] - position[crossAxis] + childOffset[crossSize] / 2;\n  return {\n    position: position,\n    maxHeight: maxHeight,\n    arrowOffsetLeft: arrowPosition.left,\n    arrowOffsetTop: arrowPosition.top,\n    placement: placementInfo.placement\n  };\n}\n\nfunction $9510af50157ce9d5$export$b3ceb0cbf1056d98(opts) {\n  var placement = opts.placement,\n      targetNode = opts.targetNode,\n      overlayNode = opts.overlayNode,\n      scrollNode = opts.scrollNode,\n      padding = opts.padding,\n      shouldFlip = opts.shouldFlip,\n      boundaryElement = opts.boundaryElement,\n      offset = opts.offset,\n      crossOffset = opts.crossOffset,\n      maxHeight = opts.maxHeight;\n  var container = overlayNode.offsetParent || document.body;\n  var isBodyContainer = container.tagName === 'BODY';\n  var containerPositionStyle = window.getComputedStyle(container).position;\n  var isContainerPositioned = !!containerPositionStyle && containerPositionStyle !== 'static';\n  var childOffset = isBodyContainer ? $P78NQ$domhelpersqueryoffset(targetNode) : $P78NQ$domhelpersqueryposition(targetNode, container);\n\n  if (!isBodyContainer) {\n    childOffset.top += parseInt($P78NQ$domhelpersstyle(targetNode, 'marginTop'), 10) || 0;\n    childOffset.left += parseInt($P78NQ$domhelpersstyle(targetNode, 'marginLeft'), 10) || 0;\n  }\n\n  var overlaySize = $P78NQ$domhelpersqueryoffset(overlayNode);\n  var margins = $9510af50157ce9d5$var$getMargins(overlayNode);\n  overlaySize.width += margins.left + margins.right;\n  overlaySize.height += margins.top + margins.bottom;\n  var scrollSize = $9510af50157ce9d5$var$getScroll(scrollNode);\n  var boundaryDimensions = $9510af50157ce9d5$var$getContainerDimensions(boundaryElement);\n  var containerOffsetWithBoundary = boundaryElement.tagName === 'BODY' ? $P78NQ$domhelpersqueryoffset(container) : $P78NQ$domhelpersqueryposition(container, boundaryElement);\n  return $9510af50157ce9d5$export$6839422d1f33cee9(placement, childOffset, overlaySize, scrollSize, margins, padding, shouldFlip, boundaryDimensions, containerOffsetWithBoundary, offset, crossOffset, isContainerPositioned, maxHeight);\n}\n\nvar $e51657e17bcf89d1$export$f6211563215e3b37 = new WeakMap();\n\nfunction $e51657e17bcf89d1$export$18fc8428861184da(opts) {\n  var triggerRef = opts.triggerRef,\n      isOpen = opts.isOpen,\n      onClose = opts.onClose;\n  $P78NQ$useEffect(function () {\n    if (!isOpen) return;\n\n    var onScroll = function onScroll(e) {\n      var target = e.target;\n      if (!triggerRef.current || target instanceof Node && !target.contains(triggerRef.current)) return;\n      var onCloseHandler = onClose || $e51657e17bcf89d1$export$f6211563215e3b37.get(triggerRef.current);\n      if (onCloseHandler) onCloseHandler();\n    };\n\n    window.addEventListener('scroll', onScroll, true);\n    return function () {\n      window.removeEventListener('scroll', onScroll, true);\n    };\n  }, [isOpen, onClose, triggerRef]);\n}\n\nvar $257fdf58e89203e8$var$visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\nfunction $257fdf58e89203e8$export$d39e1813b3bdd0e1(props) {\n  var _$P78NQ$useLocale = $P78NQ$useLocale(),\n      direction = _$P78NQ$useLocale.direction;\n\n  var targetRef = props.targetRef,\n      overlayRef = props.overlayRef,\n      _props$scrollRef = props.scrollRef,\n      scrollRef = _props$scrollRef === void 0 ? overlayRef : _props$scrollRef,\n      _props$placement = props.placement,\n      placement = _props$placement === void 0 ? 'bottom' : _props$placement,\n      _props$containerPaddi = props.containerPadding,\n      containerPadding = _props$containerPaddi === void 0 ? 12 : _props$containerPaddi,\n      _props$shouldFlip = props.shouldFlip,\n      shouldFlip = _props$shouldFlip === void 0 ? true : _props$shouldFlip,\n      _props$boundaryElemen = props.boundaryElement,\n      boundaryElement = _props$boundaryElemen === void 0 ? typeof document !== 'undefined' ? document.body : null : _props$boundaryElemen,\n      _props$offset = props.offset,\n      offset = _props$offset === void 0 ? 0 : _props$offset,\n      _props$crossOffset = props.crossOffset,\n      crossOffset = _props$crossOffset === void 0 ? 0 : _props$crossOffset,\n      _props$shouldUpdatePo = props.shouldUpdatePosition,\n      shouldUpdatePosition = _props$shouldUpdatePo === void 0 ? true : _props$shouldUpdatePo,\n      _props$isOpen = props.isOpen,\n      isOpen = _props$isOpen === void 0 ? true : _props$isOpen,\n      onClose = props.onClose,\n      maxHeight = props.maxHeight;\n\n  var _$P78NQ$useState = $P78NQ$useState({\n    position: {},\n    arrowOffsetLeft: undefined,\n    arrowOffsetTop: undefined,\n    maxHeight: undefined,\n    placement: undefined\n  }),\n      _$P78NQ$useState2 = _slicedToArray(_$P78NQ$useState, 2),\n      position = _$P78NQ$useState2[0],\n      setPosition = _$P78NQ$useState2[1];\n\n  var deps = [shouldUpdatePosition, placement, overlayRef.current, targetRef.current, scrollRef.current, containerPadding, shouldFlip, boundaryElement, offset, crossOffset, isOpen, direction, maxHeight];\n  var updatePosition = $P78NQ$useCallback(function () {\n    if (shouldUpdatePosition === false || !isOpen || !overlayRef.current || !targetRef.current || !scrollRef.current || !boundaryElement) return;\n    setPosition($9510af50157ce9d5$export$b3ceb0cbf1056d98({\n      placement: $257fdf58e89203e8$var$translateRTL(placement, direction),\n      overlayNode: overlayRef.current,\n      targetNode: targetRef.current,\n      scrollNode: scrollRef.current,\n      padding: containerPadding,\n      shouldFlip: shouldFlip,\n      boundaryElement: boundaryElement,\n      offset: offset,\n      crossOffset: crossOffset,\n      maxHeight: maxHeight\n    }));\n  }, deps);\n  $P78NQ$useLayoutEffect(updatePosition, deps);\n  $257fdf58e89203e8$var$useResize(updatePosition);\n  var isResizing = $P78NQ$useRef(false);\n  $P78NQ$useLayoutEffect(function () {\n    var timeout;\n\n    var onResize = function onResize() {\n      isResizing.current = true;\n      clearTimeout(timeout);\n      timeout = setTimeout(function () {\n        isResizing.current = false;\n      }, 500);\n      updatePosition();\n    };\n\n    $257fdf58e89203e8$var$visualViewport == null ? void 0 : $257fdf58e89203e8$var$visualViewport.addEventListener('resize', onResize);\n    return function () {\n      $257fdf58e89203e8$var$visualViewport == null ? void 0 : $257fdf58e89203e8$var$visualViewport.removeEventListener('resize', onResize);\n    };\n  }, [updatePosition]);\n  var close = $P78NQ$useCallback(function () {\n    if (!isResizing.current) onClose();\n  }, [onClose, isResizing]);\n  $e51657e17bcf89d1$export$18fc8428861184da({\n    triggerRef: targetRef,\n    isOpen: isOpen,\n    onClose: onClose ? close : undefined\n  });\n  return {\n    overlayProps: {\n      style: _objectSpread(_objectSpread({\n        position: 'absolute',\n        zIndex: 100000\n      }, position.position), {}, {\n        maxHeight: position.maxHeight\n      })\n    },\n    placement: position.placement,\n    arrowProps: {\n      style: {\n        left: position.arrowOffsetLeft,\n        top: position.arrowOffsetTop\n      }\n    },\n    updatePosition: updatePosition\n  };\n}\n\nfunction $257fdf58e89203e8$var$useResize(onResize) {\n  $P78NQ$useLayoutEffect(function () {\n    window.addEventListener('resize', onResize, false);\n    return function () {\n      window.removeEventListener('resize', onResize, false);\n    };\n  }, [onResize]);\n}\n\nfunction $257fdf58e89203e8$var$translateRTL(position, direction) {\n  if (direction === 'rtl') return position.replace('start', 'right').replace('end', 'left');\n  return position.replace('start', 'left').replace('end', 'right');\n}\n\nvar $3e0c6adf4453f3f2$exports = {};\n$parcel$export($3e0c6adf4453f3f2$exports, \"useOverlay\", function () {\n  return $3e0c6adf4453f3f2$export$ea8f71083e90600f;\n});\nvar $3e0c6adf4453f3f2$var$visibleOverlays = [];\n\nfunction $3e0c6adf4453f3f2$export$ea8f71083e90600f(props, ref) {\n  var onClose = props.onClose,\n      shouldCloseOnBlur = props.shouldCloseOnBlur,\n      isOpen = props.isOpen,\n      _props$isDismissable = props.isDismissable,\n      isDismissable = _props$isDismissable === void 0 ? false : _props$isDismissable,\n      _props$isKeyboardDism = props.isKeyboardDismissDisabled,\n      isKeyboardDismissDisabled = _props$isKeyboardDism === void 0 ? false : _props$isKeyboardDism,\n      shouldCloseOnInteractOutside = props.shouldCloseOnInteractOutside;\n  $P78NQ$useEffect(function () {\n    if (isOpen) $3e0c6adf4453f3f2$var$visibleOverlays.push(ref);\n    return function () {\n      var index = $3e0c6adf4453f3f2$var$visibleOverlays.indexOf(ref);\n      if (index >= 0) $3e0c6adf4453f3f2$var$visibleOverlays.splice(index, 1);\n    };\n  }, [isOpen, ref]);\n\n  var onHide = function onHide() {\n    if ($3e0c6adf4453f3f2$var$visibleOverlays[$3e0c6adf4453f3f2$var$visibleOverlays.length - 1] === ref && onClose) onClose();\n  };\n\n  var onInteractOutsideStart = function onInteractOutsideStart(e) {\n    if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.target)) {\n      if ($3e0c6adf4453f3f2$var$visibleOverlays[$3e0c6adf4453f3f2$var$visibleOverlays.length - 1] === ref) {\n        e.stopPropagation();\n        e.preventDefault();\n      }\n    }\n  };\n\n  var onInteractOutside = function onInteractOutside(e) {\n    if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.target)) {\n      if ($3e0c6adf4453f3f2$var$visibleOverlays[$3e0c6adf4453f3f2$var$visibleOverlays.length - 1] === ref) {\n        e.stopPropagation();\n        e.preventDefault();\n      }\n\n      onHide();\n    }\n  };\n\n  var onKeyDown = function onKeyDown(e) {\n    if (e.key === 'Escape' && !isKeyboardDismissDisabled) {\n      e.preventDefault();\n      onHide();\n    }\n  };\n\n  $P78NQ$useInteractOutside({\n    ref: ref,\n    onInteractOutside: isDismissable ? onInteractOutside : null,\n    onInteractOutsideStart: onInteractOutsideStart\n  });\n\n  var _$P78NQ$useFocusWithi = $P78NQ$useFocusWithin({\n    isDisabled: !shouldCloseOnBlur,\n    onBlurWithin: function onBlurWithin(e) {\n      if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.relatedTarget)) onClose();\n    }\n  }),\n      focusWithinProps = _$P78NQ$useFocusWithi.focusWithinProps;\n\n  var onPointerDownUnderlay = function onPointerDownUnderlay(e) {\n    if (e.target === e.currentTarget) e.preventDefault();\n  };\n\n  return {\n    overlayProps: _objectSpread({\n      onKeyDown: onKeyDown\n    }, focusWithinProps),\n    underlayProps: {\n      onPointerDown: onPointerDownUnderlay\n    }\n  };\n}\n\nvar $090c2b640a9525fd$exports = {};\n$parcel$export($090c2b640a9525fd$exports, \"useOverlayTrigger\", function () {\n  return $090c2b640a9525fd$export$f9d5c8beee7d008d;\n});\n\nfunction $090c2b640a9525fd$export$f9d5c8beee7d008d(props, state, ref) {\n  var type = props.type;\n  var isOpen = state.isOpen;\n  $P78NQ$useEffect(function () {\n    if (ref && ref.current) $e51657e17bcf89d1$export$f6211563215e3b37.set(ref.current, state.close);\n  });\n  var ariaHasPopup = undefined;\n  if (type === 'menu') ariaHasPopup = true;else if (type === 'listbox') ariaHasPopup = 'listbox';\n  var overlayId = $P78NQ$useId();\n  return {\n    triggerProps: {\n      'aria-haspopup': ariaHasPopup,\n      'aria-expanded': isOpen,\n      'aria-controls': isOpen ? overlayId : null\n    },\n    overlayProps: {\n      id: overlayId\n    }\n  };\n}\n\nvar $48168a03440bff21$exports = {};\n$parcel$export($48168a03440bff21$exports, \"usePreventScroll\", function () {\n  return $48168a03440bff21$export$ee0f7cc6afcd1c18;\n});\nvar $48168a03440bff21$var$visualViewport = typeof window !== 'undefined' && window.visualViewport;\nvar $48168a03440bff21$var$nonTextInputTypes = new Set(['checkbox', 'radio', 'range', 'color', 'file', 'image', 'button', 'submit', 'reset']);\n\nfunction $48168a03440bff21$export$ee0f7cc6afcd1c18() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var isDisabled = options.isDisabled;\n  $P78NQ$useLayoutEffect(function () {\n    if (isDisabled) return;\n    if ($P78NQ$isIOS()) return $48168a03440bff21$var$preventScrollMobileSafari();else return $48168a03440bff21$var$preventScrollStandard();\n  }, [isDisabled]);\n}\n\nfunction $48168a03440bff21$var$preventScrollStandard() {\n  return $P78NQ$chain($48168a03440bff21$var$setStyle(document.documentElement, 'paddingRight', window.innerWidth - document.documentElement.clientWidth + \"px\"), $48168a03440bff21$var$setStyle(document.documentElement, 'overflow', 'hidden'));\n}\n\nfunction $48168a03440bff21$var$preventScrollMobileSafari() {\n  var scrollable;\n  var lastY = 0;\n\n  var onTouchStart = function onTouchStart(e) {\n    scrollable = $P78NQ$getScrollParent(e.target);\n    if (scrollable === document.documentElement && scrollable === document.body) return;\n    lastY = e.changedTouches[0].pageY;\n  };\n\n  var onTouchMove = function onTouchMove(e) {\n    if (scrollable === document.documentElement || scrollable === document.body) {\n      e.preventDefault();\n      return;\n    }\n\n    var y = e.changedTouches[0].pageY;\n    var scrollTop = scrollable.scrollTop;\n    var bottom = scrollable.scrollHeight - scrollable.clientHeight;\n    if (scrollTop <= 0 && y > lastY || scrollTop >= bottom && y < lastY) e.preventDefault();\n    lastY = y;\n  };\n\n  var onTouchEnd = function onTouchEnd(e) {\n    var target = e.target;\n\n    if (target instanceof HTMLInputElement && !$48168a03440bff21$var$nonTextInputTypes.has(target.type)) {\n      e.preventDefault();\n      target.style.transform = 'translateY(-2000px)';\n      target.focus();\n      requestAnimationFrame(function () {\n        target.style.transform = '';\n      });\n    }\n  };\n\n  var onFocus = function onFocus(e) {\n    var target = e.target;\n\n    if (target instanceof HTMLInputElement && !$48168a03440bff21$var$nonTextInputTypes.has(target.type)) {\n      target.style.transform = 'translateY(-2000px)';\n      requestAnimationFrame(function () {\n        target.style.transform = '';\n\n        if ($48168a03440bff21$var$visualViewport) {\n          if ($48168a03440bff21$var$visualViewport.height < window.innerHeight) requestAnimationFrame(function () {\n              $48168a03440bff21$var$scrollIntoView(target);\n            });else $48168a03440bff21$var$visualViewport.addEventListener('resize', function () {\n              return $48168a03440bff21$var$scrollIntoView(target);\n            }, {\n              once: true\n            });\n        }\n      });\n    }\n  };\n\n  var onWindowScroll = function onWindowScroll() {\n    window.scrollTo(0, 0);\n  };\n\n  var scrollX = window.pageXOffset;\n  var scrollY = window.pageYOffset;\n  var restoreStyles = $P78NQ$chain($48168a03440bff21$var$setStyle(document.documentElement, 'paddingRight', window.innerWidth - document.documentElement.clientWidth + \"px\"), $48168a03440bff21$var$setStyle(document.documentElement, 'overflow', 'hidden'), $48168a03440bff21$var$setStyle(document.body, 'marginTop', \"-\" + scrollY + \"px\"));\n  window.scrollTo(0, 0);\n  var removeEvents = $P78NQ$chain($48168a03440bff21$var$addEvent(document, 'touchstart', onTouchStart, {\n    passive: false,\n    capture: true\n  }), $48168a03440bff21$var$addEvent(document, 'touchmove', onTouchMove, {\n    passive: false,\n    capture: true\n  }), $48168a03440bff21$var$addEvent(document, 'touchend', onTouchEnd, {\n    passive: false,\n    capture: true\n  }), $48168a03440bff21$var$addEvent(document, 'focus', onFocus, true), $48168a03440bff21$var$addEvent(window, 'scroll', onWindowScroll));\n  return function () {\n    restoreStyles();\n    removeEvents();\n    window.scrollTo(scrollX, scrollY);\n  };\n}\n\nfunction $48168a03440bff21$var$setStyle(element, style, value) {\n  var cur = element.style[style];\n  element.style[style] = value;\n  return function () {\n    element.style[style] = cur;\n  };\n}\n\nfunction $48168a03440bff21$var$addEvent(target, event, handler, options) {\n  target.addEventListener(event, handler, options);\n  return function () {\n    target.removeEventListener(event, handler, options);\n  };\n}\n\nfunction $48168a03440bff21$var$scrollIntoView(target) {\n  var scrollable = $P78NQ$getScrollParent(target);\n\n  if (scrollable !== document.documentElement && scrollable !== document.body) {\n    var scrollableTop = scrollable.getBoundingClientRect().top;\n    var targetTop = target.getBoundingClientRect().top;\n    if (targetTop > scrollableTop + target.clientHeight) scrollable.scrollTop += targetTop - scrollableTop;\n  }\n}\n\nvar $698c70f6640041fb$exports = {};\n$parcel$export($698c70f6640041fb$exports, \"ModalProvider\", function () {\n  return $698c70f6640041fb$export$178405afcd8c5eb;\n});\n$parcel$export($698c70f6640041fb$exports, \"useModalProvider\", function () {\n  return $698c70f6640041fb$export$d9aaed4c3ece1bc0;\n});\n$parcel$export($698c70f6640041fb$exports, \"OverlayProvider\", function () {\n  return $698c70f6640041fb$export$bf688221f59024e5;\n});\n$parcel$export($698c70f6640041fb$exports, \"OverlayContainer\", function () {\n  return $698c70f6640041fb$export$b47c3594eab58386;\n});\n$parcel$export($698c70f6640041fb$exports, \"useModal\", function () {\n  return $698c70f6640041fb$export$33ffd74ebf07f060;\n});\nvar $698c70f6640041fb$var$Context = $P78NQ$react.createContext(null);\n\nfunction $698c70f6640041fb$export$178405afcd8c5eb(props) {\n  var children = props.children;\n  var parent = $P78NQ$useContext($698c70f6640041fb$var$Context);\n\n  var _$P78NQ$useState3 = $P78NQ$useState(0),\n      _$P78NQ$useState4 = _slicedToArray(_$P78NQ$useState3, 2),\n      modalCount = _$P78NQ$useState4[0],\n      setModalCount = _$P78NQ$useState4[1];\n\n  var context = $P78NQ$useMemo(function () {\n    return {\n      parent: parent,\n      modalCount: modalCount,\n      addModal: function addModal() {\n        setModalCount(function (count) {\n          return count + 1;\n        });\n        if (parent) parent.addModal();\n      },\n      removeModal: function removeModal() {\n        setModalCount(function (count) {\n          return count - 1;\n        });\n        if (parent) parent.removeModal();\n      }\n    };\n  }, [parent, modalCount]);\n  return $P78NQ$react.createElement($698c70f6640041fb$var$Context.Provider, {\n    value: context\n  }, children);\n}\n\nfunction $698c70f6640041fb$export$d9aaed4c3ece1bc0() {\n  var context = $P78NQ$useContext($698c70f6640041fb$var$Context);\n  return {\n    modalProviderProps: {\n      'aria-hidden': context && context.modalCount > 0 ? true : null\n    }\n  };\n}\n\nfunction $698c70f6640041fb$var$OverlayContainerDOM(props) {\n  var _$698c70f6640041fb$ex = $698c70f6640041fb$export$d9aaed4c3ece1bc0(),\n      modalProviderProps = _$698c70f6640041fb$ex.modalProviderProps;\n\n  return $P78NQ$react.createElement(\"div\", _objectSpread(_objectSpread({\n    \"data-overlay-container\": true\n  }, props), modalProviderProps));\n}\n\nfunction $698c70f6640041fb$export$bf688221f59024e5(props) {\n  return $P78NQ$react.createElement($698c70f6640041fb$export$178405afcd8c5eb, null, $P78NQ$react.createElement($698c70f6640041fb$var$OverlayContainerDOM, props));\n}\n\nfunction $698c70f6640041fb$export$b47c3594eab58386(props) {\n  var _props$portalContaine = props.portalContainer,\n      portalContainer = _props$portalContaine === void 0 ? document.body : _props$portalContaine,\n      rest = _objectWithoutProperties(props, _excluded);\n\n  $P78NQ$react.useEffect(function () {\n    if (portalContainer.closest('[data-overlay-container]')) throw new Error('An OverlayContainer must not be inside another container. Please change the portalContainer prop.');\n  }, [portalContainer]);\n  var contents = $P78NQ$react.createElement($698c70f6640041fb$export$bf688221f59024e5, rest);\n  return $P78NQ$reactdom.createPortal(contents, portalContainer);\n}\n\nfunction $698c70f6640041fb$export$33ffd74ebf07f060(options) {\n  var context = $P78NQ$useContext($698c70f6640041fb$var$Context);\n  if (!context) throw new Error('Modal is not contained within a provider');\n  $P78NQ$useEffect(function () {\n    if (options != null && options.isDisabled || !context || !context.parent) return;\n    context.parent.addModal();\n    return function () {\n      if (context && context.parent) context.parent.removeModal();\n    };\n  }, [context, context.parent, options == null ? void 0 : options.isDisabled]);\n  return {\n    modalProps: {\n      'data-ismodal': !(options != null && options.isDisabled)\n    }\n  };\n}\n\nvar $c675415561d15622$exports = {};\n$parcel$export($c675415561d15622$exports, \"DismissButton\", function () {\n  return $c675415561d15622$export$2317d149ed6f78c4;\n});\nvar $02edbce599d2a482$exports = {};\nvar $894cbc4537768d91$exports = {};\n$894cbc4537768d91$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"تجاهل\\\"}\");\nvar $b3037443d6d04400$exports = {};\n$b3037443d6d04400$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Отхвърляне\\\"}\");\nvar $a5db12f8f0b58660$exports = {};\n$a5db12f8f0b58660$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Odstranit\\\"}\");\nvar $1a7841b4e06a11e8$exports = {};\n$1a7841b4e06a11e8$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Luk\\\"}\");\nvar $124fab0eaf782fbc$exports = {};\n$124fab0eaf782fbc$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Schließen\\\"}\");\nvar $19a7653b4d35790b$exports = {};\n$19a7653b4d35790b$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Απόρριψη\\\"}\");\nvar $90d7e59bd6434dae$exports = {};\n$90d7e59bd6434dae$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Dismiss\\\"}\");\nvar $e95dd61436d5b5c4$exports = {};\n$e95dd61436d5b5c4$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Descartar\\\"}\");\nvar $9aca3d8aa936d4a2$exports = {};\n$9aca3d8aa936d4a2$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Lõpeta\\\"}\");\nvar $bfb31bf6ed15a4f3$exports = {};\n$bfb31bf6ed15a4f3$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Hylkää\\\"}\");\nvar $10892de272a1fe06$exports = {};\n$10892de272a1fe06$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Rejeter\\\"}\");\nvar $251aad704c8cbc16$exports = {};\n$251aad704c8cbc16$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"התעלם\\\"}\");\nvar $c140b094f285049b$exports = {};\n$c140b094f285049b$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Odbaci\\\"}\");\nvar $4bd0dfd4cee040e8$exports = {};\n$4bd0dfd4cee040e8$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Elutasítás\\\"}\");\nvar $2a30a145c02426ca$exports = {};\n$2a30a145c02426ca$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Ignora\\\"}\");\nvar $0932316666a118a6$exports = {};\n$0932316666a118a6$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"閉じる\\\"}\");\nvar $c92bdb70c994b117$exports = {};\n$c92bdb70c994b117$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"무시\\\"}\");\nvar $48bd32e18c2de957$exports = {};\n$48bd32e18c2de957$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Atmesti\\\"}\");\nvar $9a989803d24f2269$exports = {};\n$9a989803d24f2269$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Nerādīt\\\"}\");\nvar $91107aa294d0e39b$exports = {};\n$91107aa294d0e39b$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Lukk\\\"}\");\nvar $ca7a4e64db50d2a5$exports = {};\n$ca7a4e64db50d2a5$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Negeren\\\"}\");\nvar $5b67223cfb013804$exports = {};\n$5b67223cfb013804$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Zignoruj\\\"}\");\nvar $34b24f6ab11b3a53$exports = {};\n$34b24f6ab11b3a53$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Descartar\\\"}\");\nvar $e5da89c3e1b61eb4$exports = {};\n$e5da89c3e1b61eb4$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Dispensar\\\"}\");\nvar $54e1bea854d55a99$exports = {};\n$54e1bea854d55a99$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Revocare\\\"}\");\nvar $525921cc6bb2c07d$exports = {};\n$525921cc6bb2c07d$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Пропустить\\\"}\");\nvar $5844db859c817f4e$exports = {};\n$5844db859c817f4e$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Zrušiť\\\"}\");\nvar $cbfffeb7cdbe3dff$exports = {};\n$cbfffeb7cdbe3dff$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Opusti\\\"}\");\nvar $2d9ef1a359230bec$exports = {};\n$2d9ef1a359230bec$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Odbaci\\\"}\");\nvar $d8ad4c5a678a9175$exports = {};\n$d8ad4c5a678a9175$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Avvisa\\\"}\");\nvar $09b94e3fac869f85$exports = {};\n$09b94e3fac869f85$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Kapat\\\"}\");\nvar $f1804546d19a547d$exports = {};\n$f1804546d19a547d$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Скасувати\\\"}\");\nvar $68e45e9a239e137d$exports = {};\n$68e45e9a239e137d$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"取消\\\"}\");\nvar $8a8b95d8ded2c350$exports = {};\n$8a8b95d8ded2c350$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"關閉\\\"}\");\n$02edbce599d2a482$exports = {\n  \"ar-AE\": $894cbc4537768d91$exports,\n  \"bg-BG\": $b3037443d6d04400$exports,\n  \"cs-CZ\": $a5db12f8f0b58660$exports,\n  \"da-DK\": $1a7841b4e06a11e8$exports,\n  \"de-DE\": $124fab0eaf782fbc$exports,\n  \"el-GR\": $19a7653b4d35790b$exports,\n  \"en-US\": $90d7e59bd6434dae$exports,\n  \"es-ES\": $e95dd61436d5b5c4$exports,\n  \"et-EE\": $9aca3d8aa936d4a2$exports,\n  \"fi-FI\": $bfb31bf6ed15a4f3$exports,\n  \"fr-FR\": $10892de272a1fe06$exports,\n  \"he-IL\": $251aad704c8cbc16$exports,\n  \"hr-HR\": $c140b094f285049b$exports,\n  \"hu-HU\": $4bd0dfd4cee040e8$exports,\n  \"it-IT\": $2a30a145c02426ca$exports,\n  \"ja-JP\": $0932316666a118a6$exports,\n  \"ko-KR\": $c92bdb70c994b117$exports,\n  \"lt-LT\": $48bd32e18c2de957$exports,\n  \"lv-LV\": $9a989803d24f2269$exports,\n  \"nb-NO\": $91107aa294d0e39b$exports,\n  \"nl-NL\": $ca7a4e64db50d2a5$exports,\n  \"pl-PL\": $5b67223cfb013804$exports,\n  \"pt-BR\": $34b24f6ab11b3a53$exports,\n  \"pt-PT\": $e5da89c3e1b61eb4$exports,\n  \"ro-RO\": $54e1bea854d55a99$exports,\n  \"ru-RU\": $525921cc6bb2c07d$exports,\n  \"sk-SK\": $5844db859c817f4e$exports,\n  \"sl-SI\": $cbfffeb7cdbe3dff$exports,\n  \"sr-SP\": $2d9ef1a359230bec$exports,\n  \"sv-SE\": $d8ad4c5a678a9175$exports,\n  \"tr-TR\": $09b94e3fac869f85$exports,\n  \"uk-UA\": $f1804546d19a547d$exports,\n  \"zh-CN\": $68e45e9a239e137d$exports,\n  \"zh-TW\": $8a8b95d8ded2c350$exports\n};\n\nfunction $c675415561d15622$export$2317d149ed6f78c4(props) {\n  var onDismiss = props.onDismiss;\n  var formatMessage = $P78NQ$useMessageFormatter($parcel$interopDefault($02edbce599d2a482$exports));\n\n  var onClick = function onClick() {\n    if (onDismiss) onDismiss();\n  };\n\n  return $P78NQ$react.createElement($P78NQ$VisuallyHidden, null, $P78NQ$react.createElement(\"button\", {\n    tabIndex: -1,\n    \"aria-label\": formatMessage('dismiss'),\n    onClick: onClick\n  }));\n}\n\nvar $bf241ecdd7b50fca$exports = {};\n$parcel$export($bf241ecdd7b50fca$exports, \"ariaHideOutside\", function () {\n  return $bf241ecdd7b50fca$export$1c3ebcada18427bf;\n});\nvar $bf241ecdd7b50fca$var$refCountMap = new WeakMap();\n\nfunction $bf241ecdd7b50fca$export$1c3ebcada18427bf(targets) {\n  var root = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.body;\n  var visibleNodes = new Set(targets);\n  var hiddenNodes = new Set();\n  var walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {\n    acceptNode: function acceptNode(node) {\n      if (node instanceof HTMLElement && node.dataset.liveAnnouncer === 'true') visibleNodes.add(node);\n      if (visibleNodes.has(node) || hiddenNodes.has(node.parentElement)) return NodeFilter.FILTER_REJECT;\n      if (node instanceof HTMLElement && node.getAttribute('role') === 'row') return NodeFilter.FILTER_SKIP;\n      if (targets.some(function (target) {\n        return node.contains(target);\n      })) return NodeFilter.FILTER_SKIP;\n      return NodeFilter.FILTER_ACCEPT;\n    }\n  });\n\n  var hide = function hide(node) {\n    var _$bf241ecdd7b50fca$va;\n\n    var refCount = (_$bf241ecdd7b50fca$va = $bf241ecdd7b50fca$var$refCountMap.get(node)) != null ? _$bf241ecdd7b50fca$va : 0;\n    if (node.getAttribute('aria-hidden') === 'true' && refCount === 0) return;\n    if (refCount === 0) node.setAttribute('aria-hidden', 'true');\n    hiddenNodes.add(node);\n    $bf241ecdd7b50fca$var$refCountMap.set(node, refCount + 1);\n  };\n\n  var node1 = walker.nextNode();\n\n  while (node1 != null) {\n    hide(node1);\n    node1 = walker.nextNode();\n  }\n\n  var observer = new MutationObserver(function (changes) {\n    var _loop = function _loop(change) {\n      if (change.type !== 'childList' || change.addedNodes.length === 0) return \"continue\";\n\n      if (![].concat(_toConsumableArray(visibleNodes), _toConsumableArray(hiddenNodes)).some(function (node) {\n        return node.contains(change.target);\n      })) {\n        for (var _iterator2 = _createForOfIteratorHelperLoose(change.addedNodes), _step2; !(_step2 = _iterator2()).done;) {\n          var node2 = _step2.value;\n          if (node2 instanceof HTMLElement && node2.dataset.liveAnnouncer === 'true') visibleNodes.add(node2);else if (node2 instanceof Element) hide(node2);\n        }\n      }\n    };\n\n    for (var _iterator = _createForOfIteratorHelperLoose(changes), _step; !(_step = _iterator()).done;) {\n      var change = _step.value;\n\n      var _ret = _loop(change);\n\n      if (_ret === \"continue\") continue;\n    }\n  });\n  observer.observe(root, {\n    childList: true,\n    subtree: true\n  });\n  return function () {\n    observer.disconnect();\n\n    for (var _iterator3 = _createForOfIteratorHelperLoose(hiddenNodes), _step3; !(_step3 = _iterator3()).done;) {\n      var node = _step3.value;\n      var count = $bf241ecdd7b50fca$var$refCountMap.get(node);\n\n      if (count === 1) {\n        node.removeAttribute('aria-hidden');\n        $bf241ecdd7b50fca$var$refCountMap.delete(node);\n      } else $bf241ecdd7b50fca$var$refCountMap.set(node, count - 1);\n    }\n  };\n}\n\nexport { $257fdf58e89203e8$export$d39e1813b3bdd0e1 as useOverlayPosition, $3e0c6adf4453f3f2$export$ea8f71083e90600f as useOverlay, $090c2b640a9525fd$export$f9d5c8beee7d008d as useOverlayTrigger, $48168a03440bff21$export$ee0f7cc6afcd1c18 as usePreventScroll, $698c70f6640041fb$export$178405afcd8c5eb as ModalProvider, $698c70f6640041fb$export$d9aaed4c3ece1bc0 as useModalProvider, $698c70f6640041fb$export$bf688221f59024e5 as OverlayProvider, $698c70f6640041fb$export$b47c3594eab58386 as OverlayContainer, $698c70f6640041fb$export$33ffd74ebf07f060 as useModal, $c675415561d15622$export$2317d149ed6f78c4 as DismissButton, $bf241ecdd7b50fca$export$1c3ebcada18427bf as ariaHideOutside };","map":{"version":3,"sources":["packages/@react-aria/overlays/src/useOverlayPosition.ts","packages/@react-aria/overlays/src/calculatePosition.ts","packages/@react-aria/overlays/src/useCloseOnScroll.ts","packages/@react-aria/overlays/src/useOverlay.ts","packages/@react-aria/overlays/src/useOverlayTrigger.ts","packages/@react-aria/overlays/src/usePreventScroll.ts","packages/@react-aria/overlays/src/useModal.tsx","packages/@react-aria/overlays/src/DismissButton.tsx","packages/@react-aria/overlays/intl/*.js","packages/@react-aria/overlays/intl/ar-AE.json","packages/@react-aria/overlays/intl/bg-BG.json","packages/@react-aria/overlays/intl/cs-CZ.json","packages/@react-aria/overlays/intl/da-DK.json","packages/@react-aria/overlays/intl/de-DE.json","packages/@react-aria/overlays/intl/el-GR.json","packages/@react-aria/overlays/intl/en-US.json","packages/@react-aria/overlays/intl/es-ES.json","packages/@react-aria/overlays/intl/et-EE.json","packages/@react-aria/overlays/intl/fi-FI.json","packages/@react-aria/overlays/intl/fr-FR.json","packages/@react-aria/overlays/intl/he-IL.json","packages/@react-aria/overlays/intl/hr-HR.json","packages/@react-aria/overlays/intl/hu-HU.json","packages/@react-aria/overlays/intl/it-IT.json","packages/@react-aria/overlays/intl/ja-JP.json","packages/@react-aria/overlays/intl/ko-KR.json","packages/@react-aria/overlays/intl/lt-LT.json","packages/@react-aria/overlays/intl/lv-LV.json","packages/@react-aria/overlays/intl/nb-NO.json","packages/@react-aria/overlays/intl/nl-NL.json","packages/@react-aria/overlays/intl/pl-PL.json","packages/@react-aria/overlays/intl/pt-BR.json","packages/@react-aria/overlays/intl/pt-PT.json","packages/@react-aria/overlays/intl/ro-RO.json","packages/@react-aria/overlays/intl/ru-RU.json","packages/@react-aria/overlays/intl/sk-SK.json","packages/@react-aria/overlays/intl/sl-SI.json","packages/@react-aria/overlays/intl/sr-SP.json","packages/@react-aria/overlays/intl/sv-SE.json","packages/@react-aria/overlays/intl/tr-TR.json","packages/@react-aria/overlays/intl/uk-UA.json","packages/@react-aria/overlays/intl/zh-CN.json","packages/@react-aria/overlays/intl/zh-TW.json","packages/@react-aria/overlays/src/ariaHideOutside.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {calculatePosition, PositionResult} from './calculatePosition';\nimport {HTMLAttributes, RefObject, useCallback, useRef, useState} from 'react';\nimport {Placement, PlacementAxis, PositionProps} from '@react-types/overlays';\nimport {useCloseOnScroll} from './useCloseOnScroll';\nimport {useLayoutEffect} from '@react-aria/utils';\nimport {useLocale} from '@react-aria/i18n';\n\ninterface AriaPositionProps extends PositionProps {\n  /**\n   * Element that that serves as the positioning boundary.\n   * @default document.body\n   */\n  boundaryElement?: HTMLElement,\n  /**\n   * The ref for the element which the overlay positions itself with respect to.\n   */\n  targetRef: RefObject<HTMLElement>,\n  /**\n   * The ref for the overlay element.\n   */\n  overlayRef: RefObject<HTMLElement>,\n  /**\n   * A ref for the scrollable region within the overlay.\n   * @default overlayRef\n   */\n  scrollRef?: RefObject<HTMLElement>,\n  /**\n   * Whether the overlay should update its position automatically.\n   * @default true\n   */\n  shouldUpdatePosition?: boolean,\n  /** Handler that is called when the overlay should close. */\n  onClose?: () => void,\n  /**\n   * The maxHeight specified for the overlay element. \n   * By default, it will take all space up to the current viewport height.\n   */\n  maxHeight?: number\n}\n\ninterface PositionAria {\n  /** Props for the overlay container element. */\n  overlayProps: HTMLAttributes<Element>,\n  /** Props for the overlay tip arrow if any. */\n  arrowProps: HTMLAttributes<Element>,\n  /** Placement of the overlay with respect to the overlay trigger. */\n  placement: PlacementAxis,\n  /** Updates the position of the overlay. */\n  updatePosition(): void\n}\n\n// @ts-ignore\nlet visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\n/**\n * Handles positioning overlays like popovers and menus relative to a trigger\n * element, and updating the position when the window resizes.\n */\nexport function useOverlayPosition(props: AriaPositionProps): PositionAria {\n  let {direction} = useLocale();\n  let {\n    targetRef,\n    overlayRef,\n    scrollRef = overlayRef,\n    placement = 'bottom' as Placement,\n    containerPadding = 12,\n    shouldFlip = true,\n    boundaryElement = typeof document !== 'undefined' ? document.body : null,\n    offset = 0,\n    crossOffset = 0,\n    shouldUpdatePosition = true,\n    isOpen = true,\n    onClose,\n    maxHeight\n  } = props;\n  let [position, setPosition] = useState<PositionResult>({\n    position: {},\n    arrowOffsetLeft: undefined,\n    arrowOffsetTop: undefined,\n    maxHeight: undefined,\n    placement: undefined\n  });\n\n  let deps = [\n    shouldUpdatePosition,\n    placement,\n    overlayRef.current,\n    targetRef.current,\n    scrollRef.current,\n    containerPadding,\n    shouldFlip,\n    boundaryElement,\n    offset,\n    crossOffset,\n    isOpen,\n    direction,\n    maxHeight\n  ];\n\n  let updatePosition = useCallback(() => {\n    if (shouldUpdatePosition === false || !isOpen || !overlayRef.current || !targetRef.current || !scrollRef.current || !boundaryElement) {\n      return;\n    }\n\n    setPosition(\n      calculatePosition({\n        placement: translateRTL(placement, direction),\n        overlayNode: overlayRef.current,\n        targetNode: targetRef.current,\n        scrollNode: scrollRef.current,\n        padding: containerPadding,\n        shouldFlip,\n        boundaryElement,\n        offset,\n        crossOffset,\n        maxHeight\n      })\n    );\n  }, deps);\n\n  // Update position when anything changes\n  useLayoutEffect(updatePosition, deps);\n\n  // Update position on window resize\n  useResize(updatePosition);\n\n  // Reposition the overlay and do not close on scroll while the visual viewport is resizing.\n  // This will ensure that overlays adjust their positioning when the iOS virtual keyboard appears.\n  let isResizing = useRef(false);\n  useLayoutEffect(() => {\n    let timeout: NodeJS.Timeout;\n    let onResize = () => {\n      isResizing.current = true;\n      clearTimeout(timeout);\n\n      timeout = setTimeout(() => {\n        isResizing.current = false;\n      }, 500);\n\n      updatePosition();\n    };\n\n    visualViewport?.addEventListener('resize', onResize);\n\n    return () => {\n      visualViewport?.removeEventListener('resize', onResize);\n    };\n  }, [updatePosition]);\n\n  let close = useCallback(() => {\n    if (!isResizing.current) {\n      onClose();\n    }\n  }, [onClose, isResizing]);\n\n  // When scrolling a parent scrollable region of the trigger (other than the body),\n  // we hide the popover. Otherwise, its position would be incorrect.\n  useCloseOnScroll({\n    triggerRef: targetRef,\n    isOpen,\n    onClose: onClose ? close : undefined\n  });\n\n  return {\n    overlayProps: {\n      style: {\n        position: 'absolute',\n        zIndex: 100000, // should match the z-index in ModalTrigger\n        ...position.position,\n        maxHeight: position.maxHeight\n      }\n    },\n    placement: position.placement,\n    arrowProps: {\n      style: {\n        left: position.arrowOffsetLeft,\n        top: position.arrowOffsetTop\n      }\n    },\n    updatePosition\n  };\n}\n\nfunction useResize(onResize) {\n  useLayoutEffect(() => {\n    window.addEventListener('resize', onResize, false);\n    return () => {\n      window.removeEventListener('resize', onResize, false);\n    };\n  }, [onResize]);\n}\n\nfunction translateRTL(position, direction) {\n  if (direction === 'rtl') {\n    return position.replace('start', 'right').replace('end', 'left');\n  }\n  return position.replace('start', 'left').replace('end', 'right');\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Axis, Placement, PlacementAxis, SizeAxis} from '@react-types/overlays';\nimport getCss from 'dom-helpers/style';\nimport getOffset from 'dom-helpers/query/offset';\nimport getPosition from 'dom-helpers/query/position';\nimport getScrollLeft from 'dom-helpers/query/scrollLeft';\nimport getScrollTop from 'dom-helpers/query/scrollTop';\nimport ownerDocument from 'dom-helpers/ownerDocument';\n\ninterface Position {\n  top?: number,\n  left?: number,\n  bottom?: number,\n  right?: number\n}\n\ninterface Dimensions {\n  width: number,\n  height: number,\n  top: number,\n  left: number,\n  scroll: Position\n}\n\ninterface ParsedPlacement {\n  placement: PlacementAxis,\n  crossPlacement: PlacementAxis,\n  axis: Axis,\n  crossAxis: Axis,\n  size: SizeAxis,\n  crossSize: SizeAxis\n}\n\ninterface Offset {\n  top: number,\n  left: number,\n  width: number,\n  height: number\n}\n\ninterface PositionOpts {\n  placement: Placement,\n  targetNode: HTMLElement,\n  overlayNode: HTMLElement,\n  scrollNode: HTMLElement,\n  padding: number,\n  shouldFlip: boolean,\n  boundaryElement: HTMLElement,\n  offset: number,\n  crossOffset: number,\n  maxHeight?: number\n}\n\nexport interface PositionResult {\n  position?: Position,\n  arrowOffsetLeft?: number,\n  arrowOffsetTop?: number,\n  maxHeight?: number,\n  placement: PlacementAxis\n}\n\nconst AXIS = {\n  top: 'top',\n  bottom: 'top',\n  left: 'left',\n  right: 'left'\n};\n\nconst FLIPPED_DIRECTION = {\n  top: 'bottom',\n  bottom: 'top',\n  left: 'right',\n  right: 'left'\n};\n\nconst CROSS_AXIS = {\n  top: 'left',\n  left: 'top'\n};\n\nconst AXIS_SIZE = {\n  top: 'height',\n  left: 'width'\n};\n\nconst PARSED_PLACEMENT_CACHE = {};\n\n// @ts-ignore\nlet visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\nfunction getContainerDimensions(containerNode: Element): Dimensions {\n  let width = 0, height = 0, top = 0, left = 0;\n  let scroll: Position = {};\n\n  if (containerNode.tagName === 'BODY') {\n    width = visualViewport?.width ?? document.documentElement.clientWidth;\n    height = visualViewport?.height ?? document.documentElement.clientHeight;\n\n    scroll.top =\n      getScrollTop(ownerDocument(containerNode).documentElement) ||\n      getScrollTop(containerNode);\n    scroll.left =\n      getScrollLeft(ownerDocument(containerNode).documentElement) ||\n      getScrollLeft(containerNode);\n  } else {\n    ({width, height, top, left} = getOffset(containerNode));\n    scroll.top = getScrollTop(containerNode);\n    scroll.left = getScrollLeft(containerNode);\n  }\n\n  return {width, height, scroll, top, left};\n}\n\nfunction getScroll(node: HTMLElement): Offset {\n  return {\n    top: node.scrollTop,\n    left: node.scrollLeft,\n    width: node.scrollWidth,\n    height: node.scrollHeight\n  };\n}\n\nfunction getDelta(\n  axis: Axis,\n  offset: number,\n  size: number,\n  containerDimensions: Dimensions,\n  padding: number\n) {\n  let containerScroll = containerDimensions.scroll[axis];\n  let containerHeight = containerDimensions[AXIS_SIZE[axis]];\n\n  let startEdgeOffset = offset - padding - containerScroll;\n  let endEdgeOffset = offset + padding - containerScroll + size;\n\n  if (startEdgeOffset < 0) {\n    return -startEdgeOffset;\n  } else if (endEdgeOffset > containerHeight) {\n    return Math.max(containerHeight - endEdgeOffset, -startEdgeOffset);\n  } else {\n    return 0;\n  }\n}\n\nfunction getMargins(node: HTMLElement): Position {\n  let style = window.getComputedStyle(node);\n  return {\n    top: parseInt(style.marginTop, 10) || 0,\n    bottom: parseInt(style.marginBottom, 10) || 0,\n    left: parseInt(style.marginLeft, 10) || 0,\n    right: parseInt(style.marginRight, 10) || 0\n  };\n}\n\nfunction parsePlacement(input: Placement): ParsedPlacement {\n  if (PARSED_PLACEMENT_CACHE[input]) {\n    return PARSED_PLACEMENT_CACHE[input];\n  }\n\n  let [placement, crossPlacement] = input.split(' ');\n  let axis: Axis = AXIS[placement] || 'right';\n  let crossAxis: Axis = CROSS_AXIS[axis];\n\n  if (!AXIS[crossPlacement]) {\n    crossPlacement = 'center';\n  }\n\n  let size = AXIS_SIZE[axis];\n  let crossSize = AXIS_SIZE[crossAxis];\n  PARSED_PLACEMENT_CACHE[input] = {placement, crossPlacement, axis, crossAxis, size, crossSize};\n  return PARSED_PLACEMENT_CACHE[input];\n}\n\nfunction computePosition(\n  childOffset: Offset,\n  boundaryDimensions: Dimensions,\n  overlaySize: Offset,\n  placementInfo: ParsedPlacement,\n  offset: number,\n  crossOffset: number,\n  containerOffsetWithBoundary: Offset,\n  isContainerPositioned: boolean\n) {\n  let {placement, crossPlacement, axis, crossAxis, size, crossSize} = placementInfo;\n  let position: Position = {};\n\n  // button position\n  position[crossAxis] = childOffset[crossAxis];\n  if (crossPlacement === 'center') {\n    //  + (button size / 2) - (overlay size / 2)\n    // at this point the overlay center should match the button center\n    position[crossAxis] += (childOffset[crossSize] - overlaySize[crossSize]) / 2;\n  } else if (crossPlacement !== crossAxis) {\n    //  + (button size) - (overlay size)\n    // at this point the overlay bottom should match the button bottom\n    position[crossAxis] += (childOffset[crossSize] - overlaySize[crossSize]);\n  }/* else {\n    the overlay top should match the button top\n  } */\n  // add the crossOffset from props\n  position[crossAxis] += crossOffset;\n\n  // this is button center position - the overlay size + half of the button to align bottom of overlay with button center\n  let minViablePosition = childOffset[crossAxis] + (childOffset[crossSize] / 2) - overlaySize[crossSize];\n  // this is button position of center, aligns top of overlay with button center\n  let maxViablePosition = childOffset[crossAxis] + (childOffset[crossSize] / 2);\n\n  // clamp it into the range of the min/max positions\n  position[crossAxis] = Math.min(Math.max(minViablePosition, position[crossAxis]), maxViablePosition);\n\n  // Floor these so the position isn't placed on a partial pixel, only whole pixels. Shouldn't matter if it was floored or ceiled, so chose one.\n  if (placement === axis) {\n    // If the container is positioned (non-static), then we use the container's actual\n    // height, as `bottom` will be relative to this height.  But if the container is static,\n    // then it can only be the `document.body`, and `bottom` will be relative to _its_\n    // container, which should be as large as boundaryDimensions.\n    const containerHeight = (isContainerPositioned ? containerOffsetWithBoundary[size] : boundaryDimensions[size]);\n    position[FLIPPED_DIRECTION[axis]] = Math.floor(containerHeight - childOffset[axis] + offset);\n  } else {\n    position[axis] = Math.floor(childOffset[axis] + childOffset[size] + offset);\n  }\n\n  return position;\n}\n\nfunction getMaxHeight(\n  position: Position,\n  boundaryDimensions: Dimensions,\n  containerOffsetWithBoundary: Offset,\n  childOffset: Offset,\n  margins: Position,\n  padding: number\n) {\n  return position.top != null\n    // We want the distance between the top of the overlay to the bottom of the boundary\n    ? Math.max(0,\n      (boundaryDimensions.height + boundaryDimensions.top + boundaryDimensions.scroll.top) // this is the bottom of the boundary\n      - (containerOffsetWithBoundary.top + position.top) // this is the top of the overlay\n      - (margins.top + margins.bottom + padding) // save additional space for margin and padding\n    )\n    // We want the distance between the top of the trigger to the top of the boundary\n    : Math.max(0,\n      (childOffset.top + containerOffsetWithBoundary.top) // this is the top of the trigger\n      - (boundaryDimensions.top + boundaryDimensions.scroll.top) // this is the top of the boundary\n      - (margins.top + margins.bottom + padding) // save additional space for margin and padding\n    );\n}\n\nfunction getAvailableSpace(\n  boundaryDimensions: Dimensions,\n  containerOffsetWithBoundary: Offset,\n  childOffset: Offset,\n  margins: Position,\n  padding: number,\n  placementInfo: ParsedPlacement\n) {\n  let {placement, axis, size} = placementInfo;\n  if (placement === axis) {\n    return Math.max(0, childOffset[axis] - boundaryDimensions[axis] - boundaryDimensions.scroll[axis] + containerOffsetWithBoundary[axis] - margins[axis] - margins[FLIPPED_DIRECTION[axis]] - padding);\n  }\n\n  return Math.max(0, boundaryDimensions[size] + boundaryDimensions[axis] + boundaryDimensions.scroll[axis] - containerOffsetWithBoundary[axis] - childOffset[axis] - childOffset[size] - margins[axis] - margins[FLIPPED_DIRECTION[axis]] - padding);\n}\n\nexport function calculatePositionInternal(\n  placementInput: Placement,\n  childOffset: Offset,\n  overlaySize: Offset,\n  scrollSize: Offset,\n  margins: Position,\n  padding: number,\n  flip: boolean,\n  boundaryDimensions: Dimensions,\n  containerOffsetWithBoundary: Offset,\n  offset: number,\n  crossOffset: number,\n  isContainerPositioned: boolean,\n  userSetMaxHeight?: number\n): PositionResult {\n  let placementInfo = parsePlacement(placementInput);\n  let {size, crossAxis, crossSize, placement, crossPlacement} = placementInfo;\n  let position = computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n  let normalizedOffset = offset;\n  let space = getAvailableSpace(\n    boundaryDimensions,\n    containerOffsetWithBoundary,\n    childOffset,\n    margins,\n    padding + offset,\n    placementInfo\n  );\n\n  // Check if the scroll size of the overlay is greater than the available space to determine if we need to flip\n  if (flip && scrollSize[size] > space) {\n    let flippedPlacementInfo = parsePlacement(`${FLIPPED_DIRECTION[placement]} ${crossPlacement}` as Placement);\n    let flippedPosition = computePosition(childOffset, boundaryDimensions, overlaySize, flippedPlacementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n    let flippedSpace = getAvailableSpace(\n      boundaryDimensions,\n      containerOffsetWithBoundary,\n      childOffset,\n      margins,\n      padding + offset,\n      flippedPlacementInfo\n    );\n\n    // If the available space for the flipped position is greater than the original available space, flip.\n    if (flippedSpace > space) {\n      placementInfo = flippedPlacementInfo;\n      position = flippedPosition;\n      normalizedOffset = offset;\n    }\n  }\n\n  let delta = getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);\n  position[crossAxis] += delta;\n\n  let maxHeight = getMaxHeight(\n    position,\n    boundaryDimensions,\n    containerOffsetWithBoundary,\n    childOffset,\n    margins,\n    padding\n  );\n\n  if (userSetMaxHeight && userSetMaxHeight < maxHeight) {\n    maxHeight = userSetMaxHeight;\n  }\n\n  overlaySize.height = Math.min(overlaySize.height, maxHeight);\n\n  position = computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, normalizedOffset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n  delta = getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);\n  position[crossAxis] += delta;\n\n  let arrowPosition: Position = {};\n  arrowPosition[crossAxis] = (childOffset[crossAxis] - position[crossAxis] + childOffset[crossSize] / 2);\n\n  return {\n    position,\n    maxHeight: maxHeight,\n    arrowOffsetLeft: arrowPosition.left,\n    arrowOffsetTop: arrowPosition.top,\n    placement: placementInfo.placement\n  };\n}\n\n/**\n * Determines where to place the overlay with regards to the target and the position of an optional indicator.\n */\nexport function calculatePosition(opts: PositionOpts): PositionResult {\n  let {\n    placement,\n    targetNode,\n    overlayNode,\n    scrollNode,\n    padding,\n    shouldFlip,\n    boundaryElement,\n    offset,\n    crossOffset,\n    maxHeight\n  } = opts;\n\n  let container = overlayNode.offsetParent || document.body;\n  let isBodyContainer = container.tagName === 'BODY';\n  const containerPositionStyle = window.getComputedStyle(container).position;\n  let isContainerPositioned = !!containerPositionStyle && containerPositionStyle !== 'static';\n  let childOffset: Offset = isBodyContainer ? getOffset(targetNode) : getPosition(targetNode, container);\n\n  if (!isBodyContainer) {\n    childOffset.top += parseInt(getCss(targetNode, 'marginTop'), 10) || 0;\n    childOffset.left += parseInt(getCss(targetNode, 'marginLeft'), 10) || 0;\n  }\n\n  let overlaySize: Offset = getOffset(overlayNode);\n  let margins = getMargins(overlayNode);\n  overlaySize.width += margins.left + margins.right;\n  overlaySize.height += margins.top + margins.bottom;\n\n  let scrollSize = getScroll(scrollNode);\n  let boundaryDimensions = getContainerDimensions(boundaryElement);\n  let containerOffsetWithBoundary: Offset = boundaryElement.tagName === 'BODY' ? getOffset(container) : getPosition(container, boundaryElement);\n\n  return calculatePositionInternal(\n    placement,\n    childOffset,\n    overlaySize,\n    scrollSize,\n    margins,\n    padding,\n    shouldFlip,\n    boundaryDimensions,\n    containerOffsetWithBoundary,\n    offset,\n    crossOffset,\n    isContainerPositioned,\n    maxHeight\n  );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {RefObject, useEffect} from 'react';\n\n// This behavior moved from useOverlayTrigger to useOverlayPosition.\n// For backward compatibility, where useOverlayTrigger handled hiding the popover on close,\n// it sets a close function here mapped from the trigger element. This way we can avoid\n// forcing users to pass an onClose function to useOverlayPosition which could be considered\n// a breaking change.\nexport const onCloseMap: WeakMap<HTMLElement, () => void> = new WeakMap();\n\ninterface CloseOnScrollOptions {\n  triggerRef: RefObject<HTMLElement>,\n  isOpen?: boolean,\n  onClose?: () => void\n}\n\n/** @private */\nexport function useCloseOnScroll(opts: CloseOnScrollOptions) {\n  let {triggerRef, isOpen, onClose} = opts;\n\n  useEffect(() => {\n    if (!isOpen) {\n      return;\n    }\n\n    let onScroll = (e: MouseEvent) => {\n      // Ignore if scrolling an scrollable region outside the trigger's tree.\n      let target = e.target;\n      // window is not a Node and doesn't have contain, but window contains everything\n      if (!triggerRef.current || ((target instanceof Node) && !target.contains(triggerRef.current))) {\n        return;\n      }\n\n      let onCloseHandler = onClose || onCloseMap.get(triggerRef.current);\n      if (onCloseHandler) {\n        onCloseHandler();\n      }\n    };\n\n    window.addEventListener('scroll', onScroll, true);\n    return () => {\n      window.removeEventListener('scroll', onScroll, true);\n    };\n  }, [isOpen, onClose, triggerRef]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {HTMLAttributes, RefObject, SyntheticEvent, useEffect} from 'react';\nimport {useFocusWithin, useInteractOutside} from '@react-aria/interactions';\n\ninterface OverlayProps {\n  /** Whether the overlay is currently open. */\n  isOpen?: boolean,\n\n  /** Handler that is called when the overlay should close. */\n  onClose?: () => void,\n\n  /**\n   * Whether to close the overlay when the user interacts outside it.\n   * @default false\n   */\n  isDismissable?: boolean,\n\n  /** Whether the overlay should close when focus is lost or moves outside it. */\n  shouldCloseOnBlur?: boolean,\n\n  /**\n   * Whether pressing the escape key to close the overlay should be disabled.\n   * @default false\n   */\n  isKeyboardDismissDisabled?: boolean,\n\n  /**\n   * When user interacts with the argument element outside of the overlay ref,\n   * return true if onClose should be called.  This gives you a chance to filter\n   * out interaction with elements that should not dismiss the overlay.\n   * By default, onClose will always be called on interaction outside the overlay ref.\n   */\n  shouldCloseOnInteractOutside?: (element: HTMLElement) => boolean\n}\n\ninterface OverlayAria {\n  /** Props to apply to the overlay container element. */\n  overlayProps: HTMLAttributes<HTMLElement>,\n  /** Props to apply to the underlay element, if any. */\n  underlayProps: HTMLAttributes<HTMLElement>\n}\n\nconst visibleOverlays: RefObject<HTMLElement>[] = [];\n\n/**\n * Provides the behavior for overlays such as dialogs, popovers, and menus.\n * Hides the overlay when the user interacts outside it, when the Escape key is pressed,\n * or optionally, on blur. Only the top-most overlay will close at once.\n */\nexport function useOverlay(props: OverlayProps, ref: RefObject<HTMLElement>): OverlayAria {\n  let {\n    onClose,\n    shouldCloseOnBlur,\n    isOpen,\n    isDismissable = false,\n    isKeyboardDismissDisabled = false,\n    shouldCloseOnInteractOutside\n  } = props;\n\n  // Add the overlay ref to the stack of visible overlays on mount, and remove on unmount.\n  useEffect(() => {\n    if (isOpen) {\n      visibleOverlays.push(ref);\n    }\n\n    return () => {\n      let index = visibleOverlays.indexOf(ref);\n      if (index >= 0) {\n        visibleOverlays.splice(index, 1);\n      }\n    };\n  }, [isOpen, ref]);\n\n  // Only hide the overlay when it is the topmost visible overlay in the stack.\n  let onHide = () => {\n    if (visibleOverlays[visibleOverlays.length - 1] === ref && onClose) {\n      onClose();\n    }\n  };\n\n  let onInteractOutsideStart = (e: SyntheticEvent<HTMLElement>) => {\n    if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.target as HTMLElement)) {\n      if (visibleOverlays[visibleOverlays.length - 1] === ref) {\n        e.stopPropagation();\n        e.preventDefault();\n      }\n    }\n  };\n\n  let onInteractOutside = (e: SyntheticEvent<HTMLElement>) => {\n    if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.target as HTMLElement)) {\n      if (visibleOverlays[visibleOverlays.length - 1] === ref) {\n        e.stopPropagation();\n        e.preventDefault();\n      }\n      onHide();\n    }\n  };\n\n  // Handle the escape key\n  let onKeyDown = (e) => {\n    if (e.key === 'Escape' && !isKeyboardDismissDisabled) {\n      e.preventDefault();\n      onHide();\n    }\n  };\n\n  // Handle clicking outside the overlay to close it\n  useInteractOutside({ref, onInteractOutside: isDismissable ? onInteractOutside : null, onInteractOutsideStart});\n\n  let {focusWithinProps} = useFocusWithin({\n    isDisabled: !shouldCloseOnBlur,\n    onBlurWithin: (e) => {\n      if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.relatedTarget as HTMLElement)) {\n        onClose();\n      }\n    }\n  });\n\n  let onPointerDownUnderlay = e => {\n    // fixes a firefox issue that starts text selection https://bugzilla.mozilla.org/show_bug.cgi?id=1675846\n    if (e.target === e.currentTarget) {\n      e.preventDefault();\n    }\n  };\n\n  return {\n    overlayProps: {\n      onKeyDown,\n      ...focusWithinProps\n    },\n    underlayProps: {\n      onPointerDown: onPointerDownUnderlay\n    }\n  };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaButtonProps} from '@react-types/button';\nimport {HTMLAttributes, RefObject, useEffect} from 'react';\nimport {onCloseMap} from './useCloseOnScroll';\nimport {OverlayTriggerState} from '@react-stately/overlays';\nimport {useId} from '@react-aria/utils';\n\ninterface OverlayTriggerProps {\n  /** Type of overlay that is opened by the trigger. */\n  type: 'dialog' | 'menu' | 'listbox' | 'tree' | 'grid'\n}\n\ninterface OverlayTriggerAria {\n  /** Props for the trigger element. */\n  triggerProps: AriaButtonProps,\n\n  /** Props for the overlay container element. */\n  overlayProps: HTMLAttributes<HTMLElement>\n}\n\n/**\n * Handles the behavior and accessibility for an overlay trigger, e.g. a button\n * that opens a popover, menu, or other overlay that is positioned relative to the trigger.\n */\nexport function useOverlayTrigger(props: OverlayTriggerProps, state: OverlayTriggerState, ref: RefObject<HTMLElement>): OverlayTriggerAria {\n  let {type} = props;\n  let {isOpen} = state;\n\n  // Backward compatibility. Share state close function with useOverlayPosition so it can close on scroll\n  // without forcing users to pass onClose.\n  useEffect(() => {\n    if (ref && ref.current) {\n      onCloseMap.set(ref.current, state.close);\n    }\n  });\n\n  // Aria 1.1 supports multiple values for aria-haspopup other than just menus.\n  // https://www.w3.org/TR/wai-aria-1.1/#aria-haspopup\n  // However, we only add it for menus for now because screen readers often\n  // announce it as a menu even for other values.\n  let ariaHasPopup = undefined;\n  if (type === 'menu') {\n    ariaHasPopup = true;\n  } else if (type === 'listbox') {\n    ariaHasPopup = 'listbox';\n  }\n\n  let overlayId = useId();\n  return {\n    triggerProps: {\n      'aria-haspopup': ariaHasPopup,\n      'aria-expanded': isOpen,\n      'aria-controls': isOpen ? overlayId : null\n    },\n    overlayProps: {\n      id: overlayId\n    }\n  };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {chain, getScrollParent, isIOS, useLayoutEffect} from '@react-aria/utils';\n\ninterface PreventScrollOptions {\n  /** Whether the scroll lock is disabled. */\n  isDisabled?: boolean\n}\n\n// @ts-ignore\nconst visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\n// HTML input types that do not cause the software keyboard to appear.\nconst nonTextInputTypes = new Set([\n  'checkbox',\n  'radio',\n  'range',\n  'color',\n  'file',\n  'image',\n  'button',\n  'submit',\n  'reset'\n]);\n\n/**\n * Prevents scrolling on the document body on mount, and\n * restores it on unmount. Also ensures that content does not\n * shift due to the scrollbars disappearing.\n */\nexport function usePreventScroll(options: PreventScrollOptions = {}) {\n  let {isDisabled} = options;\n\n  useLayoutEffect(() => {\n    if (isDisabled) {\n      return;\n    }\n\n    if (isIOS()) {\n      return preventScrollMobileSafari();\n    } else {\n      return preventScrollStandard();\n    }\n  }, [isDisabled]);\n}\n\n// For most browsers, all we need to do is set `overflow: hidden` on the root element, and\n// add some padding to prevent the page from shifting when the scrollbar is hidden.\nfunction preventScrollStandard() {\n  return chain(\n    setStyle(document.documentElement, 'paddingRight', `${window.innerWidth - document.documentElement.clientWidth}px`),\n    setStyle(document.documentElement, 'overflow', 'hidden')\n  );\n}\n\n// Mobile Safari is a whole different beast. Even with overflow: hidden,\n// it still scrolls the page in many situations:\n//\n// 1. When the bottom toolbar and address bar are collapsed, page scrolling is always allowed.\n// 2. When the keyboard is visible, the viewport does not resize. Instead, the keyboard covers part of\n//    it, so it becomes scrollable.\n// 3. When tapping on an input, the page always scrolls so that the input is centered in the visual viewport.\n//    This may cause even fixed position elements to scroll off the screen.\n// 4. When using the next/previous buttons in the keyboard to navigate between inputs, the whole page always\n//    scrolls, even if the input is inside a nested scrollable element that could be scrolled instead.\n//\n// In order to work around these cases, and prevent scrolling without jankiness, we do a few things:\n//\n// 1. Prevent default on `touchmove` events that are not in a scrollable element. This prevents touch scrolling\n//    on the window.\n// 2. Prevent default on `touchmove` events inside a scrollable element when the scroll position is at the\n//    top or bottom. This avoids the whole page scrolling instead, but does prevent overscrolling.\n// 3. Prevent default on `touchend` events on input elements and handle focusing the element ourselves.\n// 4. When focusing an input, apply a transform to trick Safari into thinking the input is at the top\n//    of the page, which prevents it from scrolling the page. After the input is focused, scroll the element\n//    into view ourselves, without scrolling the whole page.\n// 5. Offset the body by the scroll position using a negative margin and scroll to the top. This should appear the\n//    same visually, but makes the actual scroll position always zero. This is required to make all of the\n//    above work or Safari will still try to scroll the page when focusing an input.\n// 6. As a last resort, handle window scroll events, and scroll back to the top. This can happen when attempting\n//    to navigate to an input with the next/previous buttons that's outside a modal.\nfunction preventScrollMobileSafari() {\n  let scrollable: Element;\n  let lastY = 0;\n  let onTouchStart = (e: TouchEvent) => {\n    // Store the nearest scrollable parent element from the element that the user touched.\n    scrollable = getScrollParent(e.target as Element);\n    if (scrollable === document.documentElement && scrollable === document.body) {\n      return;\n    }\n\n    lastY = e.changedTouches[0].pageY;\n  };\n\n  let onTouchMove = (e: TouchEvent) => {\n    // Prevent scrolling the window.\n    if (scrollable === document.documentElement || scrollable === document.body) {\n      e.preventDefault();\n      return;\n    }\n\n    // Prevent scrolling up when at the top and scrolling down when at the bottom\n    // of a nested scrollable area, otherwise mobile Safari will start scrolling\n    // the window instead. Unfortunately, this disables bounce scrolling when at\n    // the top but it's the best we can do.\n    let y = e.changedTouches[0].pageY;\n    let scrollTop = scrollable.scrollTop;\n    let bottom = scrollable.scrollHeight - scrollable.clientHeight;\n\n    if ((scrollTop <= 0 && y > lastY) || (scrollTop >= bottom && y < lastY)) {\n      e.preventDefault();\n    }\n\n    lastY = y;\n  };\n\n  let onTouchEnd = (e: TouchEvent) => {\n    let target = e.target as HTMLElement;\n    if (target instanceof HTMLInputElement && !nonTextInputTypes.has(target.type)) {\n      e.preventDefault();\n\n      // Apply a transform to trick Safari into thinking the input is at the top of the page\n      // so it doesn't try to scroll it into view. When tapping on an input, this needs to\n      // be done before the \"focus\" event, so we have to focus the element ourselves.\n      target.style.transform = 'translateY(-2000px)';\n      target.focus();\n      requestAnimationFrame(() => {\n        target.style.transform = '';\n      });\n    }\n  };\n\n  let onFocus = (e: FocusEvent) => {\n    let target = e.target as HTMLElement;\n    if (target instanceof HTMLInputElement && !nonTextInputTypes.has(target.type)) {\n      // Transform also needs to be applied in the focus event in cases where focus moves\n      // other than tapping on an input directly, e.g. the next/previous buttons in the\n      // software keyboard. In these cases, it seems applying the transform in the focus event\n      // is good enough, whereas when tapping an input, it must be done before the focus event. 🤷‍♂️\n      target.style.transform = 'translateY(-2000px)';\n      requestAnimationFrame(() => {\n        target.style.transform = '';\n\n        // This will have prevented the browser from scrolling the focused element into view,\n        // so we need to do this ourselves in a way that doesn't cause the whole page to scroll.\n        if (visualViewport) {\n          if (visualViewport.height < window.innerHeight) {\n            // If the keyboard is already visible, do this after one additional frame\n            // to wait for the transform to be removed.\n            requestAnimationFrame(() => {\n              scrollIntoView(target);\n            });\n          } else {\n            // Otherwise, wait for the visual viewport to resize before scrolling so we can\n            // measure the correct position to scroll to.\n            visualViewport.addEventListener('resize', () => scrollIntoView(target), {once: true});\n          }\n        }\n      });\n    }\n  };\n\n  let onWindowScroll = () => {\n    // Last resort. If the window scrolled, scroll it back to the top.\n    // It should always be at the top because the body will have a negative margin (see below).\n    window.scrollTo(0, 0);\n  };\n\n  // Record the original scroll position so we can restore it.\n  // Then apply a negative margin to the body to offset it by the scroll position. This will\n  // enable us to scroll the window to the top, which is required for the rest of this to work.\n  let scrollX = window.pageXOffset;\n  let scrollY = window.pageYOffset;\n  let restoreStyles = chain(\n    setStyle(document.documentElement, 'paddingRight', `${window.innerWidth - document.documentElement.clientWidth}px`),\n    setStyle(document.documentElement, 'overflow', 'hidden'),\n    setStyle(document.body, 'marginTop', `-${scrollY}px`)\n  );\n\n  // Scroll to the top. The negative margin on the body will make this appear the same.\n  window.scrollTo(0, 0);\n\n  let removeEvents = chain(\n    addEvent(document, 'touchstart', onTouchStart, {passive: false, capture: true}),\n    addEvent(document, 'touchmove', onTouchMove, {passive: false, capture: true}),\n    addEvent(document, 'touchend', onTouchEnd, {passive: false, capture: true}),\n    addEvent(document, 'focus', onFocus, true),\n    addEvent(window, 'scroll', onWindowScroll)\n  );\n\n  return () => {\n    // Restore styles and scroll the page back to where it was.\n    restoreStyles();\n    removeEvents();\n    window.scrollTo(scrollX, scrollY);\n  };\n}\n\n// Sets a CSS property on an element, and returns a function to revert it to the previous value.\nfunction setStyle(element: HTMLElement, style: string, value: string) {\n  let cur = element.style[style];\n  element.style[style] = value;\n  return () => {\n    element.style[style] = cur;\n  };\n}\n\n// Adds an event listener to an element, and returns a function to remove it.\nfunction addEvent<K extends keyof GlobalEventHandlersEventMap>(\n  target: EventTarget,\n  event: K,\n  handler: (this: Document, ev: GlobalEventHandlersEventMap[K]) => any,\n  options?: boolean | AddEventListenerOptions\n) {\n  target.addEventListener(event, handler, options);\n  return () => {\n    target.removeEventListener(event, handler, options);\n  };\n}\n\nfunction scrollIntoView(target: Element) {\n  // Find the parent scrollable element and adjust the scroll position if the target is not already in view.\n  let scrollable = getScrollParent(target);\n  if (scrollable !== document.documentElement && scrollable !== document.body) {\n    let scrollableTop = scrollable.getBoundingClientRect().top;\n    let targetTop = target.getBoundingClientRect().top;\n    if (targetTop > scrollableTop + target.clientHeight) {\n      scrollable.scrollTop += targetTop - scrollableTop;\n    }\n  }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport React, {AriaAttributes, HTMLAttributes, ReactNode, useContext, useEffect, useMemo, useState} from 'react';\nimport ReactDOM from 'react-dom';\n\ninterface ModalProviderProps extends HTMLAttributes<HTMLElement> {\n  children: ReactNode\n}\n\ninterface ModalContext {\n  parent: ModalContext | null,\n  modalCount: number,\n  addModal: () => void,\n  removeModal: () => void\n}\n\nconst Context = React.createContext<ModalContext | null>(null);\n\n/**\n * Each ModalProvider tracks how many modals are open in its subtree. On mount, the modals\n * trigger `addModal` to increment the count, and trigger `removeModal` on unmount to decrement it.\n * This is done recursively so that all parent providers are incremented and decremented.\n * If the modal count is greater than zero, we add `aria-hidden` to this provider to hide its\n * subtree from screen readers. This is done using React context in order to account for things\n * like portals, which can cause the React tree and the DOM tree to differ significantly in structure.\n */\nexport function ModalProvider(props: ModalProviderProps) {\n  let {children} = props;\n  let parent = useContext(Context);\n  let [modalCount, setModalCount] = useState(0);\n  let context = useMemo(() => ({\n    parent,\n    modalCount,\n    addModal() {\n      setModalCount(count => count + 1);\n      if (parent) {\n        parent.addModal();\n      }\n    },\n    removeModal() {\n      setModalCount(count => count - 1);\n      if (parent) {\n        parent.removeModal();\n      }\n    }\n  }), [parent, modalCount]);\n\n  return (\n    <Context.Provider value={context}>\n      {children}\n    </Context.Provider>\n  );\n}\n\ninterface ModalProviderAria {\n  /**\n   * Props to be spread on the container element.\n   */\n  modalProviderProps: AriaAttributes\n}\n\n/**\n * Used to determine if the tree should be aria-hidden based on how many\n * modals are open.\n */\nexport function useModalProvider(): ModalProviderAria {\n  let context = useContext(Context);\n  return {\n    modalProviderProps: {\n      'aria-hidden': context && context.modalCount > 0 ? true : null\n    }\n  };\n}\n\n/**\n * Creates a root node that will be aria-hidden if there are other modals open.\n */\nfunction OverlayContainerDOM(props: ModalProviderProps) {\n  let {modalProviderProps} = useModalProvider();\n  return <div data-overlay-container {...props} {...modalProviderProps} />;\n}\n\n/**\n * An OverlayProvider acts as a container for the top-level application.\n * Any application that uses modal dialogs or other overlays should\n * be wrapped in a `<OverlayProvider>`. This is used to ensure that\n * the main content of the application is hidden from screen readers\n * if a modal or other overlay is opened. Only the top-most modal or\n * overlay should be accessible at once.\n */\nexport function OverlayProvider(props: ModalProviderProps) {\n  return (\n    <ModalProvider>\n      <OverlayContainerDOM {...props} />\n    </ModalProvider>\n  );\n}\n\ninterface OverlayContainerProps extends ModalProviderProps {\n  /**\n   * The container element in which the overlay portal will be placed.\n   * @default document.body\n   */\n  portalContainer?: HTMLElement\n}\n\n/**\n * A container for overlays like modals and popovers. Renders the overlay\n * into a Portal which is placed at the end of the document body.\n * Also ensures that the overlay is hidden from screen readers if a\n * nested modal is opened. Only the top-most modal or overlay should\n * be accessible at once.\n */\nexport function OverlayContainer(props: OverlayContainerProps): React.ReactPortal {\n  let {portalContainer = document.body, ...rest} = props;\n\n  React.useEffect(() => {\n    if (portalContainer.closest('[data-overlay-container]')) {\n      throw new Error('An OverlayContainer must not be inside another container. Please change the portalContainer prop.');\n    }\n  }, [portalContainer]);\n\n  let contents = <OverlayProvider {...rest} />;\n  return ReactDOM.createPortal(contents, portalContainer);\n}\n\ninterface ModalAriaProps extends HTMLAttributes<HTMLElement> {\n  /** Data attribute marks the dom node as a modal for the aria-modal-polyfill. */\n  'data-ismodal': boolean\n}\n\ninterface ModalOptions {\n  isDisabled?: boolean\n}\n\ninterface ModalAria {\n  /** Props for the modal content element. */\n  modalProps: ModalAriaProps\n}\n\n/**\n * Hides content outside the current `<OverlayContainer>` from screen readers\n * on mount and restores it on unmount. Typically used by modal dialogs and\n * other types of overlays to ensure that only the top-most modal is\n * accessible at once.\n */\nexport function useModal(options?: ModalOptions): ModalAria {\n  // Add aria-hidden to all parent providers on mount, and restore on unmount.\n  let context = useContext(Context);\n  if (!context) {\n    throw new Error('Modal is not contained within a provider');\n  }\n\n  useEffect(() => {\n    if (options?.isDisabled || !context || !context.parent) {\n      return;\n    }\n\n    // The immediate context is from the provider containing this modal, so we only\n    // want to trigger aria-hidden on its parents not on the modal provider itself.\n    context.parent.addModal();\n    return () => {\n      if (context && context.parent) {\n        context.parent.removeModal();\n      }\n    };\n  }, [context, context.parent, options?.isDisabled]);\n\n  return {\n    modalProps: {\n      'data-ismodal': !options?.isDisabled\n    }\n  };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport React from 'react';\nimport {useMessageFormatter} from '@react-aria/i18n';\nimport {VisuallyHidden} from '@react-aria/visually-hidden';\n\ninterface DismissButtonProps {\n  /** Called when the dismiss button is activated. */\n  onDismiss?: () => void\n}\n\n/**\n * A visually hidden button that can be used to allow screen reader\n * users to dismiss a modal or popup when there is no visual\n * affordance to do so.\n */\nexport function DismissButton(props: DismissButtonProps) {\n  let {onDismiss} = props;\n  let formatMessage = useMessageFormatter(intlMessages);\n  let onClick = () => {\n    if (onDismiss) {\n      onDismiss();\n    }\n  };\n\n  return (\n    <VisuallyHidden>\n      <button\n        tabIndex={-1}\n        aria-label={formatMessage('dismiss')}\n        onClick={onClick} />\n    </VisuallyHidden>\n  );\n}\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n  \"ar-AE\": _temp0,\n  \"bg-BG\": _temp1,\n  \"cs-CZ\": _temp2,\n  \"da-DK\": _temp3,\n  \"de-DE\": _temp4,\n  \"el-GR\": _temp5,\n  \"en-US\": _temp6,\n  \"es-ES\": _temp7,\n  \"et-EE\": _temp8,\n  \"fi-FI\": _temp9,\n  \"fr-FR\": _temp10,\n  \"he-IL\": _temp11,\n  \"hr-HR\": _temp12,\n  \"hu-HU\": _temp13,\n  \"it-IT\": _temp14,\n  \"ja-JP\": _temp15,\n  \"ko-KR\": _temp16,\n  \"lt-LT\": _temp17,\n  \"lv-LV\": _temp18,\n  \"nb-NO\": _temp19,\n  \"nl-NL\": _temp20,\n  \"pl-PL\": _temp21,\n  \"pt-BR\": _temp22,\n  \"pt-PT\": _temp23,\n  \"ro-RO\": _temp24,\n  \"ru-RU\": _temp25,\n  \"sk-SK\": _temp26,\n  \"sl-SI\": _temp27,\n  \"sr-SP\": _temp28,\n  \"sv-SE\": _temp29,\n  \"tr-TR\": _temp30,\n  \"uk-UA\": _temp31,\n  \"zh-CN\": _temp32,\n  \"zh-TW\": _temp33\n}","{\n  \"dismiss\": \"تجاهل\"\n}\n","{\n  \"dismiss\": \"Отхвърляне\"\n}\n","{\n  \"dismiss\": \"Odstranit\"\n}\n","{\n  \"dismiss\": \"Luk\"\n}\n","{\n  \"dismiss\": \"Schließen\"\n}\n","{\n  \"dismiss\": \"Απόρριψη\"\n}\n","{\n  \"dismiss\": \"Dismiss\"\n}\n","{\n  \"dismiss\": \"Descartar\"\n}\n","{\n  \"dismiss\": \"Lõpeta\"\n}\n","{\n  \"dismiss\": \"Hylkää\"\n}\n","{\n  \"dismiss\": \"Rejeter\"\n}\n","{\n  \"dismiss\": \"התעלם\"\n}\n","{\n  \"dismiss\": \"Odbaci\"\n}\n","{\n  \"dismiss\": \"Elutasítás\"\n}\n","{\n  \"dismiss\": \"Ignora\"\n}\n","{\n  \"dismiss\": \"閉じる\"\n}\n","{\n  \"dismiss\": \"무시\"\n}\n","{\n  \"dismiss\": \"Atmesti\"\n}\n","{\n  \"dismiss\": \"Nerādīt\"\n}\n","{\n  \"dismiss\": \"Lukk\"\n}\n","{\n  \"dismiss\": \"Negeren\"\n}\n","{\n  \"dismiss\": \"Zignoruj\"\n}\n","{\n  \"dismiss\": \"Descartar\"\n}\n","{\n  \"dismiss\": \"Dispensar\"\n}\n","{\n  \"dismiss\": \"Revocare\"\n}\n","{\n  \"dismiss\": \"Пропустить\"\n}\n","{\n  \"dismiss\": \"Zrušiť\"\n}\n","{\n  \"dismiss\": \"Opusti\"\n}\n","{\n  \"dismiss\": \"Odbaci\"\n}\n","{\n  \"dismiss\": \"Avvisa\"\n}\n","{\n  \"dismiss\": \"Kapat\"\n}\n","{\n  \"dismiss\": \"Скасувати\"\n}\n","{\n  \"dismiss\": \"取消\"\n}\n","{\n  \"dismiss\": \"關閉\"\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Keeps a ref count of all hidden elements. Added to when hiding an element, and\n// subtracted from when showing it again. When it reaches zero, aria-hidden is removed.\nlet refCountMap = new WeakMap<Element, number>();\n\n/**\n * Hides all elements in the DOM outside the given targets from screen readers using aria-hidden,\n * and returns a function to revert these changes. In addition, changes to the DOM are watched\n * and new elements outside the targets are automatically hidden.\n * @param targets - The elements that should remain visible.\n * @param root - Nothing will be hidden above this element.\n * @returns - A function to restore all hidden elements.\n */\nexport function ariaHideOutside(targets: HTMLElement[], root = document.body) {\n  let visibleNodes = new Set<Element>(targets);\n  let hiddenNodes = new Set<Element>();\n  let walker = document.createTreeWalker(\n    root,\n    NodeFilter.SHOW_ELEMENT,\n    {\n      acceptNode(node) {\n        // If this node is a live announcer, add it to the set of nodes to keep visible.\n        if ((node instanceof HTMLElement && node.dataset.liveAnnouncer === 'true')) {\n          visibleNodes.add(node);\n        }\n\n        // Skip this node and its children if it is one of the target nodes, or a live announcer.\n        // Also skip children of already hidden nodes, as aria-hidden is recursive.\n        if (\n          visibleNodes.has(node as Element) ||\n          hiddenNodes.has(node.parentElement)\n        ) {\n          return NodeFilter.FILTER_REJECT;\n        }\n\n        // VoiceOver on iOS has issues hiding elements with role=\"row\". Hide the cells inside instead.\n        // https://bugs.webkit.org/show_bug.cgi?id=222623\n        if (node instanceof HTMLElement && node.getAttribute('role') === 'row') {\n          return NodeFilter.FILTER_SKIP;\n        }\n\n        // Skip this node but continue to children if one of the targets is inside the node.\n        if (targets.some(target => node.contains(target))) {\n          return NodeFilter.FILTER_SKIP;\n        }\n\n        return NodeFilter.FILTER_ACCEPT;\n      }\n    }\n  );\n\n  let hide = (node: Element) => {\n    let refCount = refCountMap.get(node) ?? 0;\n\n    // If already aria-hidden, and the ref count is zero, then this element\n    // was already hidden and there's nothing for us to do.\n    if (node.getAttribute('aria-hidden') === 'true' && refCount === 0) {\n      return;\n    }\n\n    if (refCount === 0) {\n      node.setAttribute('aria-hidden', 'true');\n    }\n\n    hiddenNodes.add(node);\n    refCountMap.set(node, refCount + 1);\n  };\n\n  let node = walker.nextNode() as Element;\n  while (node != null) {\n    hide(node);\n    node = walker.nextNode() as Element;\n  }\n\n  let observer = new MutationObserver(changes => {\n    for (let change of changes) {\n      if (change.type !== 'childList' || change.addedNodes.length === 0) {\n        continue;\n      }\n\n      // If the parent element of the added nodes is not within one of the targets,\n      // and not already inside a hidden node, hide all of the new children.\n      if (![...visibleNodes, ...hiddenNodes].some(node => node.contains(change.target))) {\n        for (let node of change.addedNodes) {\n          if ((node instanceof HTMLElement && node.dataset.liveAnnouncer === 'true')) {\n            visibleNodes.add(node);\n          } else if (node instanceof Element) {\n            hide(node);\n          }\n        }\n      }\n    }\n  });\n\n  observer.observe(root, {childList: true, subtree: true});\n\n  return () => {\n    observer.disconnect();\n\n    for (let node of hiddenNodes) {\n      let count = refCountMap.get(node);\n      if (count === 1) {\n        node.removeAttribute('aria-hidden');\n        refCountMap.delete(node);\n      } else {\n        refCountMap.set(node, count - 1);\n      }\n    }\n  };\n}\n"]},"metadata":{},"sourceType":"module"}