{"ast":null,"code":"import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { 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.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\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\nimport { VisuallyHidden } from \"@react-aria/visually-hidden\";\nimport _babelRuntimeHelpersEsmInteropRequireDefault from \"@babel/runtime/helpers/esm/interopRequireDefault\";\nimport _reactDom from \"react-dom\";\nimport { useId, chain, getScrollParent, isIOS, useLayoutEffect } from \"@react-aria/utils\";\nimport { useFocusWithin, useInteractOutside } from \"@react-aria/interactions\";\nimport { useLocale, useMessageFormatter } from \"@react-aria/i18n\";\nimport _react, { useCallback, useEffect, useRef, useState, useContext, useMemo } from \"react\";\nimport _domHelpersOwnerDocument from \"dom-helpers/ownerDocument\";\nimport _domHelpersQueryScrollTop from \"dom-helpers/query/scrollTop\";\nimport _domHelpersQueryScrollLeft from \"dom-helpers/query/scrollLeft\";\nimport _domHelpersQueryPosition from \"dom-helpers/query/position\";\nimport _domHelpersQueryOffset from \"dom-helpers/query/offset\";\nimport _domHelpersStyle from \"dom-helpers/style\";\nimport _babelRuntimeHelpersEsmExtends from \"@babel/runtime/helpers/esm/extends\";\nvar $d45e305fb90d49e7c81f49bb4afe323b$var$AXIS = {\n  top: 'top',\n  bottom: 'top',\n  left: 'left',\n  right: 'left'\n};\nvar $d45e305fb90d49e7c81f49bb4afe323b$var$FLIPPED_DIRECTION = {\n  top: 'bottom',\n  bottom: 'top',\n  left: 'right',\n  right: 'left'\n};\nvar $d45e305fb90d49e7c81f49bb4afe323b$var$CROSS_AXIS = {\n  top: 'left',\n  left: 'top'\n};\nvar $d45e305fb90d49e7c81f49bb4afe323b$var$AXIS_SIZE = {\n  top: 'height',\n  left: 'width'\n};\nvar $d45e305fb90d49e7c81f49bb4afe323b$var$PARSED_PLACEMENT_CACHE = {};\nvar $d45e305fb90d49e7c81f49bb4afe323b$var$visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\nfunction $d45e305fb90d49e7c81f49bb4afe323b$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 _visualViewport$width, _visualViewport$heigh;\n\n    width = (_visualViewport$width = $d45e305fb90d49e7c81f49bb4afe323b$var$visualViewport == null ? void 0 : $d45e305fb90d49e7c81f49bb4afe323b$var$visualViewport.width) != null ? _visualViewport$width : document.documentElement.clientWidth;\n    height = (_visualViewport$heigh = $d45e305fb90d49e7c81f49bb4afe323b$var$visualViewport == null ? void 0 : $d45e305fb90d49e7c81f49bb4afe323b$var$visualViewport.height) != null ? _visualViewport$heigh : document.documentElement.clientHeight;\n    scroll.top = _domHelpersQueryScrollTop(_domHelpersOwnerDocument(containerNode).documentElement) || _domHelpersQueryScrollTop(containerNode);\n    scroll.left = _domHelpersQueryScrollLeft(_domHelpersOwnerDocument(containerNode).documentElement) || _domHelpersQueryScrollLeft(containerNode);\n  } else {\n    var _domHelpersQueryOffse = _domHelpersQueryOffset(containerNode);\n\n    width = _domHelpersQueryOffse.width;\n    height = _domHelpersQueryOffse.height;\n    top = _domHelpersQueryOffse.top;\n    left = _domHelpersQueryOffse.left;\n    scroll.top = _domHelpersQueryScrollTop(containerNode);\n    scroll.left = _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 $d45e305fb90d49e7c81f49bb4afe323b$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 $d45e305fb90d49e7c81f49bb4afe323b$var$getDelta(axis, offset, size, containerDimensions, padding) {\n  var containerScroll = containerDimensions.scroll[axis];\n  var containerHeight = containerDimensions[$d45e305fb90d49e7c81f49bb4afe323b$var$AXIS_SIZE[axis]];\n  var startEdgeOffset = offset - padding - containerScroll;\n  var 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 $d45e305fb90d49e7c81f49bb4afe323b$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 $d45e305fb90d49e7c81f49bb4afe323b$var$parsePlacement(input) {\n  if ($d45e305fb90d49e7c81f49bb4afe323b$var$PARSED_PLACEMENT_CACHE[input]) {\n    return $d45e305fb90d49e7c81f49bb4afe323b$var$PARSED_PLACEMENT_CACHE[input];\n  }\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 = $d45e305fb90d49e7c81f49bb4afe323b$var$AXIS[placement] || 'right';\n  var crossAxis = $d45e305fb90d49e7c81f49bb4afe323b$var$CROSS_AXIS[axis];\n\n  if (!$d45e305fb90d49e7c81f49bb4afe323b$var$AXIS[crossPlacement]) {\n    crossPlacement = 'center';\n  }\n\n  var size = $d45e305fb90d49e7c81f49bb4afe323b$var$AXIS_SIZE[axis];\n  var crossSize = $d45e305fb90d49e7c81f49bb4afe323b$var$AXIS_SIZE[crossAxis];\n  $d45e305fb90d49e7c81f49bb4afe323b$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 $d45e305fb90d49e7c81f49bb4afe323b$var$PARSED_PLACEMENT_CACHE[input];\n}\n\nfunction $d45e305fb90d49e7c81f49bb4afe323b$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\n  if (crossPlacement === 'center') {\n    position[crossAxis] += (childOffset[crossSize] - overlaySize[crossSize]) / 2;\n  } else if (crossPlacement !== crossAxis) {\n    position[crossAxis] += childOffset[crossSize] - overlaySize[crossSize];\n  }\n\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[$d45e305fb90d49e7c81f49bb4afe323b$var$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 $d45e305fb90d49e7c81f49bb4afe323b$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 $d45e305fb90d49e7c81f49bb4afe323b$var$getAvailableSpace(boundaryDimensions, containerOffsetWithBoundary, childOffset, margins, padding, placementInfo) {\n  var placement = placementInfo.placement,\n      axis = placementInfo.axis,\n      size = placementInfo.size;\n\n  if (placement === axis) {\n    return Math.max(0, childOffset[axis] - boundaryDimensions[axis] - boundaryDimensions.scroll[axis] + containerOffsetWithBoundary[axis] - margins[axis] - margins[$d45e305fb90d49e7c81f49bb4afe323b$var$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[$d45e305fb90d49e7c81f49bb4afe323b$var$FLIPPED_DIRECTION[axis]] - padding);\n}\n\nfunction $d45e305fb90d49e7c81f49bb4afe323b$export$calculatePositionInternal(placementInput, childOffset, overlaySize, scrollSize, margins, padding, flip, boundaryDimensions, containerOffsetWithBoundary, offset, crossOffset, isContainerPositioned) {\n  var placementInfo = $d45e305fb90d49e7c81f49bb4afe323b$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 = $d45e305fb90d49e7c81f49bb4afe323b$var$computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n  var normalizedOffset = offset;\n  var space = $d45e305fb90d49e7c81f49bb4afe323b$var$getAvailableSpace(boundaryDimensions, containerOffsetWithBoundary, childOffset, margins, padding + offset, placementInfo);\n\n  if (flip && scrollSize[size] > space) {\n    var flippedPlacementInfo = $d45e305fb90d49e7c81f49bb4afe323b$var$parsePlacement($d45e305fb90d49e7c81f49bb4afe323b$var$FLIPPED_DIRECTION[placement] + \" \" + crossPlacement);\n    var flippedPosition = $d45e305fb90d49e7c81f49bb4afe323b$var$computePosition(childOffset, boundaryDimensions, overlaySize, flippedPlacementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n    var flippedSpace = $d45e305fb90d49e7c81f49bb4afe323b$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 = $d45e305fb90d49e7c81f49bb4afe323b$var$getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);\n  position[crossAxis] += delta;\n  var maxHeight = $d45e305fb90d49e7c81f49bb4afe323b$var$getMaxHeight(position, boundaryDimensions, containerOffsetWithBoundary, childOffset, margins, padding);\n  overlaySize.height = Math.min(overlaySize.height, maxHeight);\n  position = $d45e305fb90d49e7c81f49bb4afe323b$var$computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, normalizedOffset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n  delta = $d45e305fb90d49e7c81f49bb4afe323b$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 $d45e305fb90d49e7c81f49bb4afe323b$export$calculatePosition(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  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 ? _domHelpersQueryOffset(targetNode) : _domHelpersQueryPosition(targetNode, container);\n\n  if (!isBodyContainer) {\n    childOffset.top += parseInt(_domHelpersStyle(targetNode, 'marginTop'), 10) || 0;\n    childOffset.left += parseInt(_domHelpersStyle(targetNode, 'marginLeft'), 10) || 0;\n  }\n\n  var overlaySize = _domHelpersQueryOffset(overlayNode);\n\n  var margins = $d45e305fb90d49e7c81f49bb4afe323b$var$getMargins(overlayNode);\n  overlaySize.width += margins.left + margins.right;\n  overlaySize.height += margins.top + margins.bottom;\n  var scrollSize = $d45e305fb90d49e7c81f49bb4afe323b$var$getScroll(scrollNode);\n  var boundaryDimensions = $d45e305fb90d49e7c81f49bb4afe323b$var$getContainerDimensions(boundaryElement);\n  var containerOffsetWithBoundary = boundaryElement.tagName === 'BODY' ? _domHelpersQueryOffset(container) : _domHelpersQueryPosition(container, boundaryElement);\n  return $d45e305fb90d49e7c81f49bb4afe323b$export$calculatePositionInternal(placement, childOffset, overlaySize, scrollSize, margins, padding, shouldFlip, boundaryDimensions, containerOffsetWithBoundary, offset, crossOffset, isContainerPositioned);\n}\n\nvar $df1b2f080f58bf9e74aeb666b8c96ba$export$onCloseMap = new WeakMap();\n\nfunction $df1b2f080f58bf9e74aeb666b8c96ba$export$useCloseOnScroll(opts) {\n  var triggerRef = opts.triggerRef,\n      isOpen = opts.isOpen,\n      onClose = opts.onClose;\n  useEffect(function () {\n    if (!isOpen) {\n      return;\n    }\n\n    var onScroll = function onScroll(e) {\n      var target = e.target;\n\n      if (!triggerRef.current || !target.contains(triggerRef.current)) {\n        return;\n      }\n\n      var onCloseHandler = onClose || $df1b2f080f58bf9e74aeb666b8c96ba$export$onCloseMap.get(triggerRef.current);\n\n      if (onCloseHandler) {\n        onCloseHandler();\n      }\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 $ae841ee9d3f76b31663cf0594adb0fc$var$visualViewport = typeof window !== 'undefined' && window.visualViewport;\nexport function useOverlayPosition(props) {\n  var _useLocale = useLocale(),\n      direction = _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\n  var _useState = useState({\n    position: {},\n    arrowOffsetLeft: undefined,\n    arrowOffsetTop: undefined,\n    maxHeight: undefined,\n    placement: undefined\n  }),\n      _useState2 = _slicedToArray(_useState, 2),\n      position = _useState2[0],\n      setPosition = _useState2[1];\n\n  var deps = [shouldUpdatePosition, placement, overlayRef.current, targetRef.current, scrollRef.current, containerPadding, shouldFlip, boundaryElement, offset, crossOffset, isOpen, direction];\n  var updatePosition = useCallback(function () {\n    if (shouldUpdatePosition === false || !isOpen || !overlayRef.current || !targetRef.current || !scrollRef.current || !boundaryElement) {\n      return;\n    }\n\n    setPosition($d45e305fb90d49e7c81f49bb4afe323b$export$calculatePosition({\n      placement: $ae841ee9d3f76b31663cf0594adb0fc$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    }));\n  }, deps);\n  useEffect(updatePosition, deps);\n  $ae841ee9d3f76b31663cf0594adb0fc$var$useResize(updatePosition);\n  var isResizing = useRef(false);\n  useEffect(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    $ae841ee9d3f76b31663cf0594adb0fc$var$visualViewport == null ? void 0 : $ae841ee9d3f76b31663cf0594adb0fc$var$visualViewport.addEventListener('resize', onResize);\n    return function () {\n      $ae841ee9d3f76b31663cf0594adb0fc$var$visualViewport == null ? void 0 : $ae841ee9d3f76b31663cf0594adb0fc$var$visualViewport.removeEventListener('resize', onResize);\n    };\n  }, [updatePosition]);\n  var close = useCallback(function () {\n    if (!isResizing.current) {\n      onClose();\n    }\n  }, [onClose, isResizing]);\n  $df1b2f080f58bf9e74aeb666b8c96ba$export$useCloseOnScroll({\n    triggerRef: targetRef,\n    isOpen: isOpen,\n    onClose: onClose ? close : undefined\n  });\n  return {\n    overlayProps: {\n      style: _babelRuntimeHelpersEsmExtends({\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 $ae841ee9d3f76b31663cf0594adb0fc$var$useResize(onResize) {\n  useEffect(function () {\n    window.addEventListener('resize', onResize, false);\n    return function () {\n      window.removeEventListener('resize', onResize, false);\n    };\n  }, [onResize]);\n}\n\nfunction $ae841ee9d3f76b31663cf0594adb0fc$var$translateRTL(position, direction) {\n  if (direction === 'rtl') {\n    return position.replace('start', 'right').replace('end', 'left');\n  }\n\n  return position.replace('start', 'left').replace('end', 'right');\n}\n\nvar $e4d5b842fe0e1058e95712442330b88c$var$visibleOverlays = [];\nexport function useOverlay(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  useEffect(function () {\n    if (isOpen) {\n      $e4d5b842fe0e1058e95712442330b88c$var$visibleOverlays.push(ref);\n    }\n\n    return function () {\n      var index = $e4d5b842fe0e1058e95712442330b88c$var$visibleOverlays.indexOf(ref);\n\n      if (index >= 0) {\n        $e4d5b842fe0e1058e95712442330b88c$var$visibleOverlays.splice(index, 1);\n      }\n    };\n  }, [isOpen, ref]);\n\n  var onHide = function onHide() {\n    if ($e4d5b842fe0e1058e95712442330b88c$var$visibleOverlays[$e4d5b842fe0e1058e95712442330b88c$var$visibleOverlays.length - 1] === ref && onClose) {\n      onClose();\n    }\n  };\n\n  var onInteractOutside = function onInteractOutside(e) {\n    if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.target)) {\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  useInteractOutside({\n    ref: ref,\n    onInteractOutside: isDismissable ? onInteractOutside : null\n  });\n\n  var _useFocusWithin = useFocusWithin({\n    isDisabled: !shouldCloseOnBlur,\n    onBlurWithin: function onBlurWithin(e) {\n      if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.relatedTarget)) {\n        onClose();\n      }\n    }\n  }),\n      focusWithinProps = _useFocusWithin.focusWithinProps;\n\n  return {\n    overlayProps: _babelRuntimeHelpersEsmExtends({\n      onKeyDown: onKeyDown\n    }, focusWithinProps)\n  };\n}\nexport function useOverlayTrigger(props, state, ref) {\n  var type = props.type;\n  var isOpen = state.isOpen;\n  useEffect(function () {\n    if (ref.current) {\n      $df1b2f080f58bf9e74aeb666b8c96ba$export$onCloseMap.set(ref.current, state.close);\n    }\n  });\n  var ariaHasPopup = undefined;\n\n  if (type === 'menu') {\n    ariaHasPopup = true;\n  } else if (type === 'listbox') {\n    ariaHasPopup = 'listbox';\n  }\n\n  var 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}\nvar $ece0076f06e8a828c60ba0c94f22f89$var$visualViewport = typeof window !== 'undefined' && window.visualViewport;\nvar $ece0076f06e8a828c60ba0c94f22f89$var$nonTextInputTypes = new Set(['checkbox', 'radio', 'range', 'color', 'file', 'image', 'button', 'submit', 'reset']);\nexport function usePreventScroll(options) {\n  if (options === void 0) {\n    options = {};\n  }\n\n  var _options = options,\n      isDisabled = _options.isDisabled;\n  useLayoutEffect(function () {\n    if (isDisabled) {\n      return;\n    }\n\n    if (isIOS()) {\n      return $ece0076f06e8a828c60ba0c94f22f89$var$preventScrollMobileSafari();\n    } else {\n      return $ece0076f06e8a828c60ba0c94f22f89$var$preventScrollStandard();\n    }\n  }, [isDisabled]);\n}\n\nfunction $ece0076f06e8a828c60ba0c94f22f89$var$preventScrollStandard() {\n  return chain($ece0076f06e8a828c60ba0c94f22f89$var$setStyle(document.documentElement, 'paddingRight', window.innerWidth - document.documentElement.clientWidth + \"px\"), $ece0076f06e8a828c60ba0c94f22f89$var$setStyle(document.documentElement, 'overflow', 'hidden'));\n}\n\nfunction $ece0076f06e8a828c60ba0c94f22f89$var$preventScrollMobileSafari() {\n  var scrollable;\n  var lastY = 0;\n\n  var onTouchStart = function onTouchStart(e) {\n    scrollable = getScrollParent(e.target);\n\n    if (scrollable === document.documentElement && scrollable === document.body) {\n      return;\n    }\n\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\n    if (scrollTop <= 0 && y > lastY || scrollTop >= bottom && y < lastY) {\n      e.preventDefault();\n    }\n\n    lastY = y;\n  };\n\n  var onTouchEnd = function onTouchEnd(e) {\n    var target = e.target;\n\n    if (target instanceof HTMLInputElement && !$ece0076f06e8a828c60ba0c94f22f89$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 && !$ece0076f06e8a828c60ba0c94f22f89$var$nonTextInputTypes.has(target.type)) {\n      target.style.transform = 'translateY(-2000px)';\n      requestAnimationFrame(function () {\n        target.style.transform = '';\n\n        if ($ece0076f06e8a828c60ba0c94f22f89$var$visualViewport) {\n          if ($ece0076f06e8a828c60ba0c94f22f89$var$visualViewport.height < window.innerHeight) {\n            requestAnimationFrame(function () {\n              $ece0076f06e8a828c60ba0c94f22f89$var$scrollIntoView(target);\n            });\n          } else {\n            $ece0076f06e8a828c60ba0c94f22f89$var$visualViewport.addEventListener('resize', function () {\n              return $ece0076f06e8a828c60ba0c94f22f89$var$scrollIntoView(target);\n            }, {\n              once: true\n            });\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 = chain($ece0076f06e8a828c60ba0c94f22f89$var$setStyle(document.documentElement, 'paddingRight', window.innerWidth - document.documentElement.clientWidth + \"px\"), $ece0076f06e8a828c60ba0c94f22f89$var$setStyle(document.documentElement, 'overflow', 'hidden'), $ece0076f06e8a828c60ba0c94f22f89$var$setStyle(document.body, 'marginTop', \"-\" + scrollY + \"px\"));\n  window.scrollTo(0, 0);\n  var removeEvents = chain($ece0076f06e8a828c60ba0c94f22f89$var$addEvent(document, 'touchstart', onTouchStart, {\n    passive: false,\n    capture: true\n  }), $ece0076f06e8a828c60ba0c94f22f89$var$addEvent(document, 'touchmove', onTouchMove, {\n    passive: false,\n    capture: true\n  }), $ece0076f06e8a828c60ba0c94f22f89$var$addEvent(document, 'touchend', onTouchEnd, {\n    passive: false,\n    capture: true\n  }), $ece0076f06e8a828c60ba0c94f22f89$var$addEvent(document, 'focus', onFocus, true), $ece0076f06e8a828c60ba0c94f22f89$var$addEvent(window, 'scroll', onWindowScroll));\n  return function () {\n    restoreStyles();\n    removeEvents();\n    window.scrollTo(scrollX, scrollY);\n  };\n}\n\nfunction $ece0076f06e8a828c60ba0c94f22f89$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 $ece0076f06e8a828c60ba0c94f22f89$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 $ece0076f06e8a828c60ba0c94f22f89$var$scrollIntoView(target) {\n  var scrollable = getScrollParent(target);\n\n  if (scrollable !== document.documentElement && scrollable !== document.body) {\n    var scrollableTop = scrollable.getBoundingClientRect().top;\n    var targetTop = target.getBoundingClientRect().top;\n\n    if (targetTop > scrollableTop + target.clientHeight) {\n      scrollable.scrollTop += targetTop - scrollableTop;\n    }\n  }\n}\n\nvar $b876e5ac9c98db373bf726bce3d604e$var$Context = _react.createContext(null);\n\nexport function ModalProvider(props) {\n  var children = props.children;\n  var parent = useContext($b876e5ac9c98db373bf726bce3d604e$var$Context);\n\n  var _useState3 = useState(0),\n      _useState4 = _slicedToArray(_useState3, 2),\n      modalCount = _useState4[0],\n      setModalCount = _useState4[1];\n\n  var context = useMemo(function () {\n    return {\n      parent: parent,\n      modalCount: modalCount,\n      addModal: function addModal() {\n        setModalCount(function (count) {\n          return count + 1;\n        });\n\n        if (parent) {\n          parent.addModal();\n        }\n      },\n      removeModal: function removeModal() {\n        setModalCount(function (count) {\n          return count - 1;\n        });\n\n        if (parent) {\n          parent.removeModal();\n        }\n      }\n    };\n  }, [parent, modalCount]);\n  return _react.createElement($b876e5ac9c98db373bf726bce3d604e$var$Context.Provider, {\n    value: context\n  }, children);\n}\nexport function useModalProvider() {\n  var context = useContext($b876e5ac9c98db373bf726bce3d604e$var$Context);\n  return {\n    modalProviderProps: {\n      'aria-hidden': context && context.modalCount > 0 ? true : null\n    }\n  };\n}\n\nfunction $b876e5ac9c98db373bf726bce3d604e$var$OverlayContainerDOM(props) {\n  var _useModalProvider = useModalProvider(),\n      modalProviderProps = _useModalProvider.modalProviderProps;\n\n  return _react.createElement(\"div\", _babelRuntimeHelpersEsmExtends({}, props, modalProviderProps));\n}\n\nexport function OverlayProvider(props) {\n  return _react.createElement(ModalProvider, null, _react.createElement($b876e5ac9c98db373bf726bce3d604e$var$OverlayContainerDOM, props));\n}\nexport function OverlayContainer(props) {\n  var contents = _react.createElement(OverlayProvider, props);\n\n  return _reactDom.createPortal(contents, document.body);\n}\nexport function useModal(options) {\n  var context = useContext($b876e5ac9c98db373bf726bce3d604e$var$Context);\n\n  if (!context) {\n    throw new Error('Modal is not contained within a provider');\n  }\n\n  useEffect(function () {\n    if ((options == null ? void 0 : options.isDisabled) || !context || !context.parent) {\n      return;\n    }\n\n    context.parent.addModal();\n    return function () {\n      if (context && context.parent) {\n        context.parent.removeModal();\n      }\n    };\n  }, [context, context.parent, options == null ? void 0 : options.isDisabled]);\n  return {\n    modalProps: {\n      'data-ismodal': !(options == null ? void 0 : options.isDisabled)\n    }\n  };\n}\nvar $e325a364098e05bf51160d06dcffdbe$exports = {};\n$e325a364098e05bf51160d06dcffdbe$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"تجاهل\\\"}\");\nvar $ab088cc547d59c1be83369f8351a064$exports = {};\n$ab088cc547d59c1be83369f8351a064$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Отхвърляне\\\"}\");\nvar $cec67ea16ca47059e10ca5e77187d8c2$exports = {};\n$cec67ea16ca47059e10ca5e77187d8c2$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Odstranit\\\"}\");\nvar $d962fe1ed718c5ca37da1414136036f8$exports = {};\n$d962fe1ed718c5ca37da1414136036f8$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Luk\\\"}\");\nvar $c5167dda40dde69038848f007e5$exports = {};\n$c5167dda40dde69038848f007e5$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Schließen\\\"}\");\nvar $ecdd1ac0020e47f58a9ed51b5fb$exports = {};\n$ecdd1ac0020e47f58a9ed51b5fb$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Απόρριψη\\\"}\");\nvar $f33e30a89f4dff807f90ebe8c$exports = {};\n$f33e30a89f4dff807f90ebe8c$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Dismiss\\\"}\");\nvar $ba353e2c61dcc5141af4537eeb3ef85c$exports = {};\n$ba353e2c61dcc5141af4537eeb3ef85c$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Descartar\\\"}\");\nvar $dd3e8aaecbf1f2c2c0f9d51aacfd$exports = {};\n$dd3e8aaecbf1f2c2c0f9d51aacfd$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Lõpeta\\\"}\");\nvar $f730aaed9f4652842b2a8f94a4a$exports = {};\n$f730aaed9f4652842b2a8f94a4a$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Hylkää\\\"}\");\nvar $e76b22aab4e46b7806205b4af9ca3$exports = {};\n$e76b22aab4e46b7806205b4af9ca3$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Rejeter\\\"}\");\nvar $c33ffdd5a9931bfc82c1c9b55e98de2f$exports = {};\n$c33ffdd5a9931bfc82c1c9b55e98de2f$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"התעלם\\\"}\");\nvar $d64cb70d4ce170f599f4df5adf4e9898$exports = {};\n$d64cb70d4ce170f599f4df5adf4e9898$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Odbaci\\\"}\");\nvar $c05270a6513a8b6d8a6552a35a162$exports = {};\n$c05270a6513a8b6d8a6552a35a162$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Elutasítás\\\"}\");\nvar $df915df637af1f3c14c8376c69dfd$exports = {};\n$df915df637af1f3c14c8376c69dfd$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Ignora\\\"}\");\nvar $e8bf1e6480d2c65d558c3537ec0d59ce$exports = {};\n$e8bf1e6480d2c65d558c3537ec0d59ce$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"閉じる\\\"}\");\nvar $e06e93e1c9472a7e2fc5b26a87ea7$exports = {};\n$e06e93e1c9472a7e2fc5b26a87ea7$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"무시\\\"}\");\nvar $fef82498418eab30c69349263b64e050$exports = {};\n$fef82498418eab30c69349263b64e050$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Atmesti\\\"}\");\nvar $c4df2502cb7b65c6578bcb8a165f6fc$exports = {};\n$c4df2502cb7b65c6578bcb8a165f6fc$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Nerādīt\\\"}\");\nvar $b50f4e499c19f4d55113139bba$exports = {};\n$b50f4e499c19f4d55113139bba$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Lukk\\\"}\");\nvar $e45d2f0079f29e4f5c6469cca7c$exports = {};\n$e45d2f0079f29e4f5c6469cca7c$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Negeren\\\"}\");\nvar $fcb5bfa87b2378a249bd7fb591ec22c2$exports = {};\n$fcb5bfa87b2378a249bd7fb591ec22c2$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Zignoruj\\\"}\");\nvar $edae5c6f18c937cf0015f2aa266d9fea$exports = {};\n$edae5c6f18c937cf0015f2aa266d9fea$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Descartar\\\"}\");\nvar $df1162b231d383d942e0fdb2bbf$exports = {};\n$df1162b231d383d942e0fdb2bbf$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Revocare\\\"}\");\nvar $fa17537bfd201c57fa41fd31dbd9f074$exports = {};\n$fa17537bfd201c57fa41fd31dbd9f074$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Пропустить\\\"}\");\nvar $c30db5bcff54a9e266ee7379a6cb8$exports = {};\n$c30db5bcff54a9e266ee7379a6cb8$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Zrušiť\\\"}\");\nvar $c86d8cad7c0045ad51a1fea185411a61$exports = {};\n$c86d8cad7c0045ad51a1fea185411a61$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Opusti\\\"}\");\nvar $c610b0b50ebc0061e6c42c420a2e1be$exports = {};\n$c610b0b50ebc0061e6c42c420a2e1be$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Odbaci\\\"}\");\nvar $c298c5c92c55ce8d8289d8cc18ea512$exports = {};\n$c298c5c92c55ce8d8289d8cc18ea512$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Avvisa\\\"}\");\nvar $f438196d9674b9d180ea6e74d7$exports = {};\n$f438196d9674b9d180ea6e74d7$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Kapat\\\"}\");\nvar $fa842ebaf07187d5bc74e0fa6c4679b$exports = {};\n$fa842ebaf07187d5bc74e0fa6c4679b$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"Скасувати\\\"}\");\nvar $cdcbe39f22ae1814551e7f30dcfc8$exports = {};\n$cdcbe39f22ae1814551e7f30dcfc8$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"取消\\\"}\");\nvar $a8c729d90cde82a4eb34bebfb46a6$exports = {};\n$a8c729d90cde82a4eb34bebfb46a6$exports = JSON.parse(\"{\\\"dismiss\\\":\\\"關閉\\\"}\");\nvar $c94f95b3263b356bb2e58a3832a84$var$intlMessages = {\n  \"ar-AE\": _babelRuntimeHelpersEsmInteropRequireDefault($e325a364098e05bf51160d06dcffdbe$exports).default,\n  \"bg-BG\": _babelRuntimeHelpersEsmInteropRequireDefault($ab088cc547d59c1be83369f8351a064$exports).default,\n  \"cs-CZ\": _babelRuntimeHelpersEsmInteropRequireDefault($cec67ea16ca47059e10ca5e77187d8c2$exports).default,\n  \"da-DK\": _babelRuntimeHelpersEsmInteropRequireDefault($d962fe1ed718c5ca37da1414136036f8$exports).default,\n  \"de-DE\": _babelRuntimeHelpersEsmInteropRequireDefault($c5167dda40dde69038848f007e5$exports).default,\n  \"el-GR\": _babelRuntimeHelpersEsmInteropRequireDefault($ecdd1ac0020e47f58a9ed51b5fb$exports).default,\n  \"en-US\": _babelRuntimeHelpersEsmInteropRequireDefault($f33e30a89f4dff807f90ebe8c$exports).default,\n  \"es-ES\": _babelRuntimeHelpersEsmInteropRequireDefault($ba353e2c61dcc5141af4537eeb3ef85c$exports).default,\n  \"et-EE\": _babelRuntimeHelpersEsmInteropRequireDefault($dd3e8aaecbf1f2c2c0f9d51aacfd$exports).default,\n  \"fi-FI\": _babelRuntimeHelpersEsmInteropRequireDefault($f730aaed9f4652842b2a8f94a4a$exports).default,\n  \"fr-FR\": _babelRuntimeHelpersEsmInteropRequireDefault($e76b22aab4e46b7806205b4af9ca3$exports).default,\n  \"he-IL\": _babelRuntimeHelpersEsmInteropRequireDefault($c33ffdd5a9931bfc82c1c9b55e98de2f$exports).default,\n  \"hr-HR\": _babelRuntimeHelpersEsmInteropRequireDefault($d64cb70d4ce170f599f4df5adf4e9898$exports).default,\n  \"hu-HU\": _babelRuntimeHelpersEsmInteropRequireDefault($c05270a6513a8b6d8a6552a35a162$exports).default,\n  \"it-IT\": _babelRuntimeHelpersEsmInteropRequireDefault($df915df637af1f3c14c8376c69dfd$exports).default,\n  \"ja-JP\": _babelRuntimeHelpersEsmInteropRequireDefault($e8bf1e6480d2c65d558c3537ec0d59ce$exports).default,\n  \"ko-KR\": _babelRuntimeHelpersEsmInteropRequireDefault($e06e93e1c9472a7e2fc5b26a87ea7$exports).default,\n  \"lt-LT\": _babelRuntimeHelpersEsmInteropRequireDefault($fef82498418eab30c69349263b64e050$exports).default,\n  \"lv-LV\": _babelRuntimeHelpersEsmInteropRequireDefault($c4df2502cb7b65c6578bcb8a165f6fc$exports).default,\n  \"nb-NO\": _babelRuntimeHelpersEsmInteropRequireDefault($b50f4e499c19f4d55113139bba$exports).default,\n  \"nl-NL\": _babelRuntimeHelpersEsmInteropRequireDefault($e45d2f0079f29e4f5c6469cca7c$exports).default,\n  \"pl-PL\": _babelRuntimeHelpersEsmInteropRequireDefault($fcb5bfa87b2378a249bd7fb591ec22c2$exports).default,\n  \"pt-BR\": _babelRuntimeHelpersEsmInteropRequireDefault($edae5c6f18c937cf0015f2aa266d9fea$exports).default,\n  \"ro-RO\": _babelRuntimeHelpersEsmInteropRequireDefault($df1162b231d383d942e0fdb2bbf$exports).default,\n  \"ru-RU\": _babelRuntimeHelpersEsmInteropRequireDefault($fa17537bfd201c57fa41fd31dbd9f074$exports).default,\n  \"sk-SK\": _babelRuntimeHelpersEsmInteropRequireDefault($c30db5bcff54a9e266ee7379a6cb8$exports).default,\n  \"sl-SI\": _babelRuntimeHelpersEsmInteropRequireDefault($c86d8cad7c0045ad51a1fea185411a61$exports).default,\n  \"sr-SP\": _babelRuntimeHelpersEsmInteropRequireDefault($c610b0b50ebc0061e6c42c420a2e1be$exports).default,\n  \"sv-SE\": _babelRuntimeHelpersEsmInteropRequireDefault($c298c5c92c55ce8d8289d8cc18ea512$exports).default,\n  \"tr-TR\": _babelRuntimeHelpersEsmInteropRequireDefault($f438196d9674b9d180ea6e74d7$exports).default,\n  \"uk-UA\": _babelRuntimeHelpersEsmInteropRequireDefault($fa842ebaf07187d5bc74e0fa6c4679b$exports).default,\n  \"zh-CN\": _babelRuntimeHelpersEsmInteropRequireDefault($cdcbe39f22ae1814551e7f30dcfc8$exports).default,\n  \"zh-TW\": _babelRuntimeHelpersEsmInteropRequireDefault($a8c729d90cde82a4eb34bebfb46a6$exports).default\n};\nexport function DismissButton(props) {\n  var onDismiss = props.onDismiss;\n  var formatMessage = useMessageFormatter($c94f95b3263b356bb2e58a3832a84$var$intlMessages);\n\n  var onClick = function onClick() {\n    if (onDismiss) {\n      onDismiss();\n    }\n  };\n\n  return _react.createElement(VisuallyHidden, null, _react.createElement(\"button\", {\n    tabIndex: -1,\n    \"aria-label\": formatMessage('dismiss'),\n    onClick: onClick\n  }));\n}\nvar $d006cf2ec48f5151923b9435b3d$var$refCountMap = new WeakMap();\nexport function ariaHideOutside(targets, root) {\n  if (root === void 0) {\n    root = document.body;\n  }\n\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') {\n        visibleNodes.add(node);\n      }\n\n      if (visibleNodes.has(node) || hiddenNodes.has(node.parentElement)) {\n        return NodeFilter.FILTER_REJECT;\n      }\n\n      if (targets.some(function (target) {\n        return node.contains(target);\n      })) {\n        return NodeFilter.FILTER_SKIP;\n      }\n\n      return NodeFilter.FILTER_ACCEPT;\n    }\n  });\n\n  var hide = function hide(node) {\n    var _refCountMap$get;\n\n    var refCount = (_refCountMap$get = $d006cf2ec48f5151923b9435b3d$var$refCountMap.get(node)) != null ? _refCountMap$get : 0;\n\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    $d006cf2ec48f5151923b9435b3d$var$refCountMap.set(node, refCount + 1);\n  };\n\n  var node = walker.nextNode();\n\n  while (node != null) {\n    hide(node);\n    node = 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) {\n        return \"continue\";\n      }\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 _node = _step2.value;\n\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    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 _node2 = _step3.value;\n      var count = $d006cf2ec48f5151923b9435b3d$var$refCountMap.get(_node2);\n\n      if (count === 1) {\n        _node2.removeAttribute('aria-hidden');\n\n        $d006cf2ec48f5151923b9435b3d$var$refCountMap.delete(_node2);\n      } else {\n        $d006cf2ec48f5151923b9435b3d$var$refCountMap.set(_node2, count - 1);\n      }\n    }\n  };\n}","map":{"version":3,"sources":["packages/@react-aria/overlays/src/calculatePosition.ts","packages/@react-aria/overlays/src/useCloseOnScroll.ts","packages/@react-aria/overlays/src/useOverlayPosition.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/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/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/DismissButton.tsx","packages/@react-aria/overlays/src/ariaHideOutside.ts"],"names":["AXIS","top","bottom","left","right","FLIPPED_DIRECTION","CROSS_AXIS","AXIS_SIZE","PARSED_PLACEMENT_CACHE","visualViewport","window","width","height","scroll","containerNode","document","getScrollTop","ownerDocument","getScrollLeft","getOffset","node","scrollHeight","containerScroll","containerDimensions","containerHeight","startEdgeOffset","offset","endEdgeOffset","Math","style","parseInt","input","axis","crossAxis","crossPlacement","size","crossSize","placement","position","childOffset","overlaySize","minViablePosition","maxViablePosition","isContainerPositioned","containerOffsetWithBoundary","boundaryDimensions","margins","placementInfo","parsePlacement","computePosition","normalizedOffset","space","getAvailableSpace","padding","flip","scrollSize","flippedPlacementInfo","flippedPosition","flippedSpace","delta","getDelta","maxHeight","getMaxHeight","arrowPosition","arrowOffsetLeft","arrowOffsetTop","crossOffset","container","overlayNode","isBodyContainer","containerPositionStyle","getPosition","getCss","getMargins","getScroll","getContainerDimensions","boundaryElement","calculatePositionInternal","onCloseMap","onClose","useEffect","onScroll","e","target","triggerRef","onCloseHandler","direction","useLocale","scrollRef","containerPadding","shouldFlip","shouldUpdatePosition","isOpen","useState","undefined","deps","overlayRef","targetRef","updatePosition","useCallback","setPosition","translateRTL","targetNode","scrollNode","useResize","isResizing","useRef","onResize","clearTimeout","timeout","setTimeout","close","overlayProps","zIndex","arrowProps","visibleOverlays","isDismissable","isKeyboardDismissDisabled","shouldCloseOnInteractOutside","index","onHide","onInteractOutside","onKeyDown","useInteractOutside","ref","focusWithinProps","useFocusWithin","isDisabled","onBlurWithin","type","state","ariaHasPopup","overlayId","useId","triggerProps","id","nonTextInputTypes","options","useLayoutEffect","isIOS","preventScrollMobileSafari","preventScrollStandard","chain","setStyle","lastY","onTouchStart","scrollable","getScrollParent","onTouchMove","y","scrollTop","onTouchEnd","requestAnimationFrame","onFocus","scrollIntoView","once","onWindowScroll","scrollX","scrollY","restoreStyles","removeEvents","addEvent","passive","capture","cur","element","scrollableTop","targetTop","Context","React","children","parent","useContext","context","useMemo","modalCount","addModal","setModalCount","count","removeModal","modalProviderProps","useModalProvider","contents","ReactDOM","modalProps","JSON","onDismiss","formatMessage","useMessageFormatter","onClick","refCountMap","root","body","visibleNodes","hiddenNodes","walker","NodeFilter","acceptNode","targets","hide","refCount","observer","changes","change","childList","subtree"],"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 {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}\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): 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  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  } = 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  );\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 as HTMLElement;\n      if (!triggerRef.current || !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 {calculatePosition, PositionResult} from './calculatePosition';\nimport {HTMLAttributes, RefObject, useCallback, useEffect, useRef, useState} from 'react';\nimport {Placement, PlacementAxis, PositionProps} from '@react-types/overlays';\nimport {useCloseOnScroll} from './useCloseOnScroll';\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\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  } = 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  ];\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      })\n    );\n  }, deps);\n\n  // Update position when anything changes\n  useEffect(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  useEffect(() => {\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  useEffect(() => {\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 {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}\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 {onClose, shouldCloseOnBlur, isOpen, isDismissable = false, isKeyboardDismissDisabled = false, shouldCloseOnInteractOutside} = 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 onInteractOutside = (e: SyntheticEvent<HTMLElement>) => {\n    if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.target as HTMLElement)) {\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});\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  return {\n    overlayProps: {\n      onKeyDown,\n      ...focusWithinProps\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.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 {...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\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: ModalProviderProps): React.ReactPortal {\n  let contents = <OverlayProvider {...props} />;\n  return ReactDOM.createPortal(contents, document.body);\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  \"dismiss\": \"تجاهل\"\n}","{\n  \"dismiss\": \"Отхвърляне\"\n}","{\n  \"dismiss\": \"Odstranit\"\n}","{\n  \"dismiss\": \"Luk\"\n}","{\n  \"dismiss\": \"Schließen\"\n}","{\n  \"dismiss\": \"Απόρριψη\"\n}","{\n  \"dismiss\": \"Dismiss\"\n}\n","{\n  \"dismiss\": \"Descartar\"\n}","{\n  \"dismiss\": \"Lõpeta\"\n}","{\n  \"dismiss\": \"Hylkää\"\n}","{\n  \"dismiss\": \"Rejeter\"\n}","{\n  \"dismiss\": \"התעלם\"\n}","{\n  \"dismiss\": \"Odbaci\"\n}","{\n  \"dismiss\": \"Elutasítás\"\n}","{\n  \"dismiss\": \"Ignora\"\n}","{\n  \"dismiss\": \"閉じる\"\n}","{\n  \"dismiss\": \"무시\"\n}","{\n  \"dismiss\": \"Atmesti\"\n}","{\n  \"dismiss\": \"Nerādīt\"\n}","{\n  \"dismiss\": \"Lukk\"\n}","{\n  \"dismiss\": \"Negeren\"\n}","{\n  \"dismiss\": \"Zignoruj\"\n}","{\n  \"dismiss\": \"Descartar\"\n}","{\n  \"dismiss\": \"Revocare\"\n}","{\n  \"dismiss\": \"Пропустить\"\n}","{\n  \"dismiss\": \"Zrušiť\"\n}","{\n  \"dismiss\": \"Opusti\"\n}","{\n  \"dismiss\": \"Odbaci\"\n}","{\n  \"dismiss\": \"Avvisa\"\n}","{\n  \"dismiss\": \"Kapat\"\n}","{\n  \"dismiss\": \"Скасувати\"\n}","{\n  \"dismiss\": \"取消\"\n}","{\n  \"dismiss\": \"關閉\"\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","/*\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        // 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"}