{"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 { clamp, snapValueToStep } from \"@react-stately/utils\";\nexport { clamp, snapValueToStep };\nimport _clsx from \"clsx\";\nimport _babelRuntimeHelpersEsmExtends from \"@babel/runtime/helpers/esm/extends\";\nimport { useSSRSafeId } from \"@react-aria/ssr\";\nimport _react, { useEffect, useRef, useState, useCallback, useLayoutEffect as _useLayoutEffect } from \"react\";\nexport var useLayoutEffect = typeof window !== 'undefined' ? _react.useLayoutEffect : function () {};\nvar $f8b5fdd96fb429d7102983f777c41307$var$idsUpdaterMap = new Map();\nexport function useId(defaultId) {\n  var isRendering = useRef(true);\n  isRendering.current = true;\n\n  var _useState = useState(defaultId),\n      _useState2 = _slicedToArray(_useState, 2),\n      value = _useState2[0],\n      setValue = _useState2[1];\n\n  var nextId = useRef(null);\n  var res = useSSRSafeId(value);\n\n  var updateValue = function updateValue(val) {\n    if (!isRendering.current) {\n      setValue(val);\n    } else {\n      nextId.current = val;\n    }\n  };\n\n  $f8b5fdd96fb429d7102983f777c41307$var$idsUpdaterMap.set(res, updateValue);\n  useLayoutEffect(function () {\n    isRendering.current = false;\n  }, [updateValue]);\n  useLayoutEffect(function () {\n    var r = res;\n    return function () {\n      $f8b5fdd96fb429d7102983f777c41307$var$idsUpdaterMap.delete(r);\n    };\n  }, [res]);\n  useEffect(function () {\n    var newId = nextId.current;\n\n    if (newId) {\n      setValue(newId);\n      nextId.current = null;\n    }\n  }, [setValue, updateValue]);\n  return res;\n}\nexport function mergeIds(idA, idB) {\n  if (idA === idB) {\n    return idA;\n  }\n\n  var setIdA = $f8b5fdd96fb429d7102983f777c41307$var$idsUpdaterMap.get(idA);\n\n  if (setIdA) {\n    setIdA(idB);\n    return idB;\n  }\n\n  var setIdB = $f8b5fdd96fb429d7102983f777c41307$var$idsUpdaterMap.get(idB);\n\n  if (setIdB) {\n    setIdB(idA);\n    return idA;\n  }\n\n  return idB;\n}\nexport function useSlotId() {\n  var id = useId();\n\n  var _useState3 = useState(id),\n      _useState4 = _slicedToArray(_useState3, 2),\n      resolvedId = _useState4[0],\n      setResolvedId = _useState4[1];\n\n  useLayoutEffect(function () {\n    var setCurr = $f8b5fdd96fb429d7102983f777c41307$var$idsUpdaterMap.get(id);\n\n    if (setCurr && !document.getElementById(id)) {\n      setResolvedId(null);\n    } else {\n      setResolvedId(id);\n    }\n  }, [id]);\n  return resolvedId;\n}\nexport function chain() {\n  for (var _len = arguments.length, callbacks = new Array(_len), _key = 0; _key < _len; _key++) {\n    callbacks[_key] = arguments[_key];\n  }\n\n  return function () {\n    for (var _iterator = _createForOfIteratorHelperLoose(callbacks), _step; !(_step = _iterator()).done;) {\n      var callback = _step.value;\n\n      if (typeof callback === 'function') {\n        callback.apply(void 0, arguments);\n      }\n    }\n  };\n}\nexport function mergeProps() {\n  var result = _babelRuntimeHelpersEsmExtends({}, arguments.length <= 0 ? undefined : arguments[0]);\n\n  for (var i = 1; i < arguments.length; i++) {\n    var props = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n    for (var key in props) {\n      var a = result[key];\n      var b = props[key];\n\n      if (typeof a === 'function' && typeof b === 'function' && key[0] === 'o' && key[1] === 'n' && key.charCodeAt(2) >= 65 && key.charCodeAt(2) <= 90) {\n        result[key] = chain(a, b);\n      } else if ((key === 'className' || key === 'UNSAFE_className') && typeof a === 'string' && typeof b === 'string') {\n        result[key] = _clsx(a, b);\n      } else if (key === 'id' && a && b) {\n        result.id = mergeIds(a, b);\n      } else {\n        result[key] = b !== undefined ? b : a;\n      }\n    }\n  }\n\n  return result;\n}\nvar $f6a965352cabf1a7c37e8c1337e5eab$var$DOMPropNames = new Set(['id']);\nvar $f6a965352cabf1a7c37e8c1337e5eab$var$labelablePropNames = new Set(['aria-label', 'aria-labelledby', 'aria-describedby', 'aria-details']);\nvar $f6a965352cabf1a7c37e8c1337e5eab$var$propRe = /^(data-.*)$/;\nexport function filterDOMProps(props, opts) {\n  if (opts === void 0) {\n    opts = {};\n  }\n\n  var _opts = opts,\n      labelable = _opts.labelable,\n      propNames = _opts.propNames;\n  var filteredProps = {};\n\n  for (var prop in props) {\n    if (Object.prototype.hasOwnProperty.call(props, prop) && ($f6a965352cabf1a7c37e8c1337e5eab$var$DOMPropNames.has(prop) || labelable && $f6a965352cabf1a7c37e8c1337e5eab$var$labelablePropNames.has(prop) || propNames != null && propNames.has(prop) || $f6a965352cabf1a7c37e8c1337e5eab$var$propRe.test(prop))) {\n      filteredProps[prop] = props[prop];\n    }\n  }\n\n  return filteredProps;\n}\nexport function focusWithoutScrolling(element) {\n  if ($bc7c9c3af78f5218ff72cecce15730$var$supportsPreventScroll()) {\n    element.focus({\n      preventScroll: true\n    });\n  } else {\n    var scrollableElements = $bc7c9c3af78f5218ff72cecce15730$var$getScrollableElements(element);\n    element.focus();\n    $bc7c9c3af78f5218ff72cecce15730$var$restoreScrollPosition(scrollableElements);\n  }\n}\nvar $bc7c9c3af78f5218ff72cecce15730$var$supportsPreventScrollCached = null;\n\nfunction $bc7c9c3af78f5218ff72cecce15730$var$supportsPreventScroll() {\n  if ($bc7c9c3af78f5218ff72cecce15730$var$supportsPreventScrollCached == null) {\n    $bc7c9c3af78f5218ff72cecce15730$var$supportsPreventScrollCached = false;\n\n    try {\n      var focusElem = document.createElement('div');\n      focusElem.focus({\n        get preventScroll() {\n          $bc7c9c3af78f5218ff72cecce15730$var$supportsPreventScrollCached = true;\n          return true;\n        }\n\n      });\n    } catch (e) {}\n  }\n\n  return $bc7c9c3af78f5218ff72cecce15730$var$supportsPreventScrollCached;\n}\n\nfunction $bc7c9c3af78f5218ff72cecce15730$var$getScrollableElements(element) {\n  var parent = element.parentNode;\n  var scrollableElements = [];\n  var rootScrollingElement = document.scrollingElement || document.documentElement;\n\n  while (parent instanceof HTMLElement && parent !== rootScrollingElement) {\n    if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) {\n      scrollableElements.push({\n        element: parent,\n        scrollTop: parent.scrollTop,\n        scrollLeft: parent.scrollLeft\n      });\n    }\n\n    parent = parent.parentNode;\n  }\n\n  if (rootScrollingElement instanceof HTMLElement) {\n    scrollableElements.push({\n      element: rootScrollingElement,\n      scrollTop: rootScrollingElement.scrollTop,\n      scrollLeft: rootScrollingElement.scrollLeft\n    });\n  }\n\n  return scrollableElements;\n}\n\nfunction $bc7c9c3af78f5218ff72cecce15730$var$restoreScrollPosition(scrollableElements) {\n  for (var _iterator2 = _createForOfIteratorHelperLoose(scrollableElements), _step2; !(_step2 = _iterator2()).done;) {\n    var _ref = _step2.value;\n    var element = _ref.element;\n    var scrollTop = _ref.scrollTop;\n    var scrollLeft = _ref.scrollLeft;\n    element.scrollTop = scrollTop;\n    element.scrollLeft = scrollLeft;\n  }\n}\n\nexport function getOffset(element, reverse, orientation) {\n  if (orientation === void 0) {\n    orientation = 'horizontal';\n  }\n\n  var rect = element.getBoundingClientRect();\n\n  if (reverse) {\n    return orientation === 'horizontal' ? rect.right : rect.bottom;\n  }\n\n  return orientation === 'horizontal' ? rect.left : rect.top;\n}\nvar $b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionsByElement = new Map();\nvar $b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionCallbacks = new Set();\n\nfunction $b3e8d5c5f32fa26afa6df1b81f09b6b8$var$setupGlobalEvents() {\n  if (typeof window === 'undefined') {\n    return;\n  }\n\n  var onTransitionStart = function onTransitionStart(e) {\n    var transitions = $b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionsByElement.get(e.target);\n\n    if (!transitions) {\n      transitions = new Set();\n      $b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionsByElement.set(e.target, transitions);\n      e.target.addEventListener('transitioncancel', onTransitionEnd);\n    }\n\n    transitions.add(e.propertyName);\n  };\n\n  var onTransitionEnd = function onTransitionEnd(e) {\n    var properties = $b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionsByElement.get(e.target);\n\n    if (!properties) {\n      return;\n    }\n\n    properties.delete(e.propertyName);\n\n    if (properties.size === 0) {\n      e.target.removeEventListener('transitioncancel', onTransitionEnd);\n      $b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionsByElement.delete(e.target);\n    }\n\n    if ($b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionsByElement.size === 0) {\n      for (var _iterator3 = _createForOfIteratorHelperLoose($b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionCallbacks), _step3; !(_step3 = _iterator3()).done;) {\n        var cb = _step3.value;\n        cb();\n      }\n\n      $b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionCallbacks.clear();\n    }\n  };\n\n  document.body.addEventListener('transitionrun', onTransitionStart);\n  document.body.addEventListener('transitionend', onTransitionEnd);\n}\n\nif (typeof document !== 'undefined') {\n  if (document.readyState !== 'loading') {\n    $b3e8d5c5f32fa26afa6df1b81f09b6b8$var$setupGlobalEvents();\n  } else {\n    document.addEventListener('DOMContentLoaded', $b3e8d5c5f32fa26afa6df1b81f09b6b8$var$setupGlobalEvents);\n  }\n}\n\nexport function runAfterTransition(fn) {\n  requestAnimationFrame(function () {\n    if ($b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionsByElement.size === 0) {\n      fn();\n    } else {\n      $b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionCallbacks.add(fn);\n    }\n  });\n}\nvar $be9622dfd8e876c0943b0b4e429554f3$var$draggingElements = [];\nexport function useDrag1D(props) {\n  console.warn('useDrag1D is deprecated, please use `useMove` instead https://react-spectrum.adobe.com/react-aria/useMove.html');\n  var containerRef = props.containerRef,\n      reverse = props.reverse,\n      orientation = props.orientation,\n      onHover = props.onHover,\n      onDrag = props.onDrag,\n      onPositionChange = props.onPositionChange,\n      onIncrement = props.onIncrement,\n      onDecrement = props.onDecrement,\n      onIncrementToMax = props.onIncrementToMax,\n      onDecrementToMin = props.onDecrementToMin,\n      onCollapseToggle = props.onCollapseToggle;\n\n  var getPosition = function getPosition(e) {\n    return orientation === 'horizontal' ? e.clientX : e.clientY;\n  };\n\n  var getNextOffset = function getNextOffset(e) {\n    var containerOffset = getOffset(containerRef.current, reverse, orientation);\n    var mouseOffset = getPosition(e);\n    var nextOffset = reverse ? containerOffset - mouseOffset : mouseOffset - containerOffset;\n    return nextOffset;\n  };\n\n  var dragging = useRef(false);\n  var prevPosition = useRef(0);\n  var handlers = useRef({\n    onPositionChange: onPositionChange,\n    onDrag: onDrag\n  });\n  handlers.current.onDrag = onDrag;\n  handlers.current.onPositionChange = onPositionChange;\n\n  var onMouseDragged = function onMouseDragged(e) {\n    e.preventDefault();\n    var nextOffset = getNextOffset(e);\n\n    if (!dragging.current) {\n      dragging.current = true;\n\n      if (handlers.current.onDrag) {\n        handlers.current.onDrag(true);\n      }\n\n      if (handlers.current.onPositionChange) {\n        handlers.current.onPositionChange(nextOffset);\n      }\n    }\n\n    if (prevPosition.current === nextOffset) {\n      return;\n    }\n\n    prevPosition.current = nextOffset;\n\n    if (onPositionChange) {\n      onPositionChange(nextOffset);\n    }\n  };\n\n  var onMouseUp = function onMouseUp(e) {\n    var target = e.target;\n    dragging.current = false;\n    var nextOffset = getNextOffset(e);\n\n    if (handlers.current.onDrag) {\n      handlers.current.onDrag(false);\n    }\n\n    if (handlers.current.onPositionChange) {\n      handlers.current.onPositionChange(nextOffset);\n    }\n\n    $be9622dfd8e876c0943b0b4e429554f3$var$draggingElements.splice($be9622dfd8e876c0943b0b4e429554f3$var$draggingElements.indexOf(target), 1);\n    window.removeEventListener('mouseup', onMouseUp, false);\n    window.removeEventListener('mousemove', onMouseDragged, false);\n  };\n\n  var onMouseDown = function onMouseDown(e) {\n    var target = e.currentTarget;\n\n    if ($be9622dfd8e876c0943b0b4e429554f3$var$draggingElements.some(function (elt) {\n      return target.contains(elt);\n    })) {\n      return;\n    }\n\n    $be9622dfd8e876c0943b0b4e429554f3$var$draggingElements.push(target);\n    window.addEventListener('mousemove', onMouseDragged, false);\n    window.addEventListener('mouseup', onMouseUp, false);\n  };\n\n  var onMouseEnter = function onMouseEnter() {\n    if (onHover) {\n      onHover(true);\n    }\n  };\n\n  var onMouseOut = function onMouseOut() {\n    if (onHover) {\n      onHover(false);\n    }\n  };\n\n  var onKeyDown = function onKeyDown(e) {\n    switch (e.key) {\n      case 'Left':\n      case 'ArrowLeft':\n        if (orientation === 'horizontal') {\n          e.preventDefault();\n\n          if (onDecrement && !reverse) {\n            onDecrement();\n          } else if (onIncrement && reverse) {\n            onIncrement();\n          }\n        }\n\n        break;\n\n      case 'Up':\n      case 'ArrowUp':\n        if (orientation === 'vertical') {\n          e.preventDefault();\n\n          if (onDecrement && !reverse) {\n            onDecrement();\n          } else if (onIncrement && reverse) {\n            onIncrement();\n          }\n        }\n\n        break;\n\n      case 'Right':\n      case 'ArrowRight':\n        if (orientation === 'horizontal') {\n          e.preventDefault();\n\n          if (onIncrement && !reverse) {\n            onIncrement();\n          } else if (onDecrement && reverse) {\n            onDecrement();\n          }\n        }\n\n        break;\n\n      case 'Down':\n      case 'ArrowDown':\n        if (orientation === 'vertical') {\n          e.preventDefault();\n\n          if (onIncrement && !reverse) {\n            onIncrement();\n          } else if (onDecrement && reverse) {\n            onDecrement();\n          }\n        }\n\n        break;\n\n      case 'Home':\n        e.preventDefault();\n\n        if (onDecrementToMin) {\n          onDecrementToMin();\n        }\n\n        break;\n\n      case 'End':\n        e.preventDefault();\n\n        if (onIncrementToMax) {\n          onIncrementToMax();\n        }\n\n        break;\n\n      case 'Enter':\n        e.preventDefault();\n\n        if (onCollapseToggle) {\n          onCollapseToggle();\n        }\n\n        break;\n    }\n  };\n\n  return {\n    onMouseDown: onMouseDown,\n    onMouseEnter: onMouseEnter,\n    onMouseOut: onMouseOut,\n    onKeyDown: onKeyDown\n  };\n}\nexport function useGlobalListeners() {\n  var globalListeners = useRef(new Map());\n  var addGlobalListener = useCallback(function (eventTarget, type, listener, options) {\n    globalListeners.current.set(listener, {\n      type: type,\n      eventTarget: eventTarget,\n      options: options\n    });\n    eventTarget.addEventListener(type, listener, options);\n  }, []);\n  var removeGlobalListener = useCallback(function (eventTarget, type, listener, options) {\n    eventTarget.removeEventListener(type, listener, options);\n    globalListeners.current.delete(listener);\n  }, []);\n  var removeAllGlobalListeners = useCallback(function () {\n    globalListeners.current.forEach(function (value, key) {\n      removeGlobalListener(value.eventTarget, value.type, key, value.options);\n    });\n  }, [removeGlobalListener]);\n  useEffect(function () {\n    return removeAllGlobalListeners;\n  }, [removeAllGlobalListeners]);\n  return {\n    addGlobalListener: addGlobalListener,\n    removeGlobalListener: removeGlobalListener,\n    removeAllGlobalListeners: removeAllGlobalListeners\n  };\n}\nexport function useLabels(props, defaultLabel) {\n  var id = props.id,\n      label = props['aria-label'],\n      labelledBy = props['aria-labelledby'];\n  id = useId(id);\n\n  if (labelledBy && label) {\n    var ids = new Set([].concat(_toConsumableArray(labelledBy.trim().split(/\\s+/)), [id]));\n    labelledBy = _toConsumableArray(ids).join(' ');\n  } else if (labelledBy) {\n    labelledBy = labelledBy.trim().split(/\\s+/).join(' ');\n  }\n\n  if (!label && !labelledBy && defaultLabel) {\n    label = defaultLabel;\n  }\n\n  return {\n    id: id,\n    'aria-label': label,\n    'aria-labelledby': labelledBy\n  };\n}\nexport function useUpdateEffect(effect, dependencies) {\n  var isInitialMount = useRef(true);\n  useEffect(function () {\n    if (isInitialMount.current) {\n      isInitialMount.current = false;\n    } else {\n      effect();\n    }\n  }, dependencies);\n}\n\nfunction $d642970c01dc21e3fe2261c17768$var$hasResizeObserver() {\n  return typeof window.ResizeObserver !== 'undefined';\n}\n\nexport function useResizeObserver(options) {\n  var ref = options.ref,\n      onResize = options.onResize;\n  useEffect(function () {\n    var element = ref == null ? void 0 : ref.current;\n\n    if (!element) {\n      return;\n    }\n\n    if (!$d642970c01dc21e3fe2261c17768$var$hasResizeObserver()) {\n      window.addEventListener('resize', onResize, false);\n      return function () {\n        window.removeEventListener('resize', onResize, false);\n      };\n    } else {\n      var resizeObserverInstance = new window.ResizeObserver(function (entries) {\n        if (!entries.length) {\n          return;\n        }\n\n        onResize();\n      });\n      resizeObserverInstance.observe(element);\n      return function () {\n        if (element) {\n          resizeObserverInstance.unobserve(element);\n        }\n      };\n    }\n  }, [onResize, ref]);\n}\nexport function useSyncRef(context, ref) {\n  useLayoutEffect(function () {\n    if (context && context.ref && ref) {\n      context.ref.current = ref.current;\n      return function () {\n        context.ref.current = null;\n      };\n    }\n  }, [context, ref]);\n}\nexport function getScrollParent(node) {\n  while (node && !$a164c39662575b65a0b01a73e313e5$var$isScrollable(node)) {\n    node = node.parentElement;\n  }\n\n  return node || document.scrollingElement || document.documentElement;\n}\n\nfunction $a164c39662575b65a0b01a73e313e5$var$isScrollable(node) {\n  var style = window.getComputedStyle(node);\n  return /(auto|scroll)/.test(style.overflow + style.overflowX + style.overflowY);\n}\n\nvar $d662329747d896105af008c761523$var$visualViewport = typeof window !== 'undefined' && window.visualViewport;\nexport function useViewportSize() {\n  var _useState5 = useState(function () {\n    return $d662329747d896105af008c761523$var$getViewportSize();\n  }),\n      _useState6 = _slicedToArray(_useState5, 2),\n      size = _useState6[0],\n      setSize = _useState6[1];\n\n  useEffect(function () {\n    var onResize = function onResize() {\n      setSize(function (size) {\n        var newSize = $d662329747d896105af008c761523$var$getViewportSize();\n\n        if (newSize.width === size.width && newSize.height === size.height) {\n          return size;\n        }\n\n        return newSize;\n      });\n    };\n\n    if (!$d662329747d896105af008c761523$var$visualViewport) {\n      window.addEventListener('resize', onResize);\n    } else {\n      $d662329747d896105af008c761523$var$visualViewport.addEventListener('resize', onResize);\n    }\n\n    return function () {\n      if (!$d662329747d896105af008c761523$var$visualViewport) {\n        window.removeEventListener('resize', onResize);\n      } else {\n        $d662329747d896105af008c761523$var$visualViewport.removeEventListener('resize', onResize);\n      }\n    };\n  }, []);\n  return size;\n}\n\nfunction $d662329747d896105af008c761523$var$getViewportSize() {\n  return {\n    width: ($d662329747d896105af008c761523$var$visualViewport == null ? void 0 : $d662329747d896105af008c761523$var$visualViewport.width) || window.innerWidth,\n    height: ($d662329747d896105af008c761523$var$visualViewport == null ? void 0 : $d662329747d896105af008c761523$var$visualViewport.height) || window.innerHeight\n  };\n}\n\nvar $c8aa524f123a75a64d51e06d16b9568$var$descriptionId = 0;\nvar $c8aa524f123a75a64d51e06d16b9568$var$descriptionNodes = new Map();\nexport function useDescription(description) {\n  var _useState7 = useState(null),\n      _useState8 = _slicedToArray(_useState7, 2),\n      id = _useState8[0],\n      setId = _useState8[1];\n\n  _useLayoutEffect(function () {\n    if (!description) {\n      return;\n    }\n\n    var desc = $c8aa524f123a75a64d51e06d16b9568$var$descriptionNodes.get(description);\n\n    if (!desc) {\n      var _id = \"react-aria-description-\" + $c8aa524f123a75a64d51e06d16b9568$var$descriptionId++;\n\n      setId(_id);\n      var node = document.createElement('div');\n      node.id = _id;\n      node.style.display = 'none';\n      node.textContent = description;\n      document.body.appendChild(node);\n      desc = {\n        refCount: 0,\n        element: node\n      };\n      $c8aa524f123a75a64d51e06d16b9568$var$descriptionNodes.set(description, desc);\n    } else {\n      setId(desc.element.id);\n    }\n\n    desc.refCount++;\n    return function () {\n      if (--desc.refCount === 0) {\n        desc.element.remove();\n        $c8aa524f123a75a64d51e06d16b9568$var$descriptionNodes.delete(description);\n      }\n    };\n  }, [description]);\n\n  return {\n    'aria-describedby': description ? id : undefined\n  };\n}\n\nfunction $b0986c1243f71db8e992f67117a1ed9$var$testUserAgent(re) {\n  return typeof window !== 'undefined' && window.navigator != null ? re.test(window.navigator.userAgent) : false;\n}\n\nfunction $b0986c1243f71db8e992f67117a1ed9$var$testPlatform(re) {\n  return typeof window !== 'undefined' && window.navigator != null ? re.test(window.navigator.platform) : false;\n}\n\nexport function isMac() {\n  return $b0986c1243f71db8e992f67117a1ed9$var$testPlatform(/^Mac/);\n}\nexport function isIPhone() {\n  return $b0986c1243f71db8e992f67117a1ed9$var$testPlatform(/^iPhone/);\n}\nexport function isIPad() {\n  return $b0986c1243f71db8e992f67117a1ed9$var$testPlatform(/^iPad/) || isMac() && navigator.maxTouchPoints > 1;\n}\nexport function isIOS() {\n  return isIPhone() || isIPad();\n}\nexport function isAppleDevice() {\n  return isMac() || isIOS();\n}\nexport function isWebKit() {\n  return $b0986c1243f71db8e992f67117a1ed9$var$testUserAgent(/AppleWebKit/) && !isChrome();\n}\nexport function isChrome() {\n  return $b0986c1243f71db8e992f67117a1ed9$var$testUserAgent(/Chrome/);\n}\nexport function isAndroid() {\n  return $b0986c1243f71db8e992f67117a1ed9$var$testUserAgent(/Android/);\n}\nexport function useEvent(ref, event, handler, options) {\n  var _this = this;\n\n  var handlerRef = useRef(handler);\n  handlerRef.current = handler;\n  var isDisabled = handler == null;\n  useEffect(function () {\n    if (isDisabled) {\n      return;\n    }\n\n    var element = ref.current;\n\n    var handler = function handler(e) {\n      return handlerRef.current.call(_this, e);\n    };\n\n    element.addEventListener(event, handler, options);\n    return function () {\n      element.removeEventListener(event, handler, options);\n    };\n  }, [ref, event, options, isDisabled]);\n}","map":{"version":3,"sources":["packages/@react-aria/utils/src/useLayoutEffect.ts","packages/@react-aria/utils/src/useId.ts","packages/@react-aria/utils/src/chain.ts","packages/@react-aria/utils/src/mergeProps.ts","packages/@react-aria/utils/src/filterDOMProps.ts","packages/@react-aria/utils/src/focusWithoutScrolling.ts","packages/@react-aria/utils/src/getOffset.ts","packages/@react-aria/utils/src/runAfterTransition.ts","packages/@react-aria/utils/src/useDrag1D.ts","packages/@react-aria/utils/src/useGlobalListeners.ts","packages/@react-aria/utils/src/useLabels.ts","packages/@react-aria/utils/src/useUpdateEffect.ts","packages/@react-aria/utils/src/useResizeObserver.ts","packages/@react-aria/utils/src/useSyncRef.ts","packages/@react-aria/utils/src/getScrollParent.ts","packages/@react-aria/utils/src/useViewportSize.ts","packages/@react-aria/utils/src/useDescription.ts","packages/@react-aria/utils/src/platform.ts","packages/@react-aria/utils/src/useEvent.ts"],"names":["useLayoutEffect","React","idsUpdaterMap","isRendering","useRef","useState","nextId","res","useSSRSafeId","updateValue","val","setValue","r","useEffect","newId","idA","setIdA","setIdB","id","useId","setCurr","document","setResolvedId","callbacks","callback","result","i","props","a","b","key","clsx","DOMPropNames","labelablePropNames","propRe","opts","propNames","filteredProps","Object","labelable","supportsPreventScroll","element","preventScroll","scrollableElements","getScrollableElements","restoreScrollPosition","supportsPreventScrollCached","focusElem","parent","rootScrollingElement","scrollTop","scrollLeft","orientation","rect","transitionsByElement","transitionCallbacks","onTransitionStart","e","transitions","onTransitionEnd","properties","cb","setupGlobalEvents","requestAnimationFrame","fn","draggingElements","console","onCollapseToggle","getPosition","getNextOffset","containerOffset","containerRef","mouseOffset","nextOffset","reverse","dragging","prevPosition","handlers","onPositionChange","onDrag","onMouseDragged","onMouseUp","target","window","onMouseDown","elt","onMouseEnter","onHover","onMouseOut","onKeyDown","onDecrement","onIncrement","onDecrementToMin","onIncrementToMax","globalListeners","addGlobalListener","useCallback","type","eventTarget","options","removeGlobalListener","removeAllGlobalListeners","value","labelledBy","ids","label","isInitialMount","effect","onResize","ref","hasResizeObserver","resizeObserverInstance","entries","context","node","isScrollable","style","visualViewport","getViewportSize","setSize","size","newSize","width","height","innerHeight","descriptionId","descriptionNodes","desc","setId","refCount","description","undefined","re","testPlatform","isMac","navigator","isIPhone","isIPad","isIOS","testUserAgent","isChrome","handlerRef","isDisabled","handler"],"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 React from 'react';\n\n// During SSR, React emits a warning when calling useLayoutEffect.\n// Since neither useLayoutEffect nor useEffect run on the server,\n// we can suppress this by replace it with a noop on the server.\nexport const useLayoutEffect = typeof window !== 'undefined'\n  ? React.useLayoutEffect\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 {useEffect, useRef, useState} from 'react';\nimport {useLayoutEffect} from './useLayoutEffect';\nimport {useSSRSafeId} from '@react-aria/ssr';\n\nlet idsUpdaterMap: Map<string, (v: string) => void> = new Map();\n\n/**\n * If a default is not provided, generate an id.\n * @param defaultId - Default component id.\n */\nexport function useId(defaultId?: string): string {\n  let isRendering = useRef(true);\n  isRendering.current = true;\n  let [value, setValue] = useState(defaultId);\n  let nextId = useRef(null);\n\n  let res = useSSRSafeId(value);\n\n  // don't memo this, we want it new each render so that the Effects always run\n  let updateValue = (val) => {\n    if (!isRendering.current) {\n      setValue(val);\n    } else {\n      nextId.current = val;\n    }\n  };\n\n  idsUpdaterMap.set(res, updateValue);\n\n  useLayoutEffect(() => {\n    isRendering.current = false;\n  }, [updateValue]);\n\n  useLayoutEffect(() => {\n    let r = res;\n    return () => {\n      idsUpdaterMap.delete(r);\n    };\n  }, [res]);\n\n  useEffect(() => {\n    let newId = nextId.current;\n    if (newId) {\n      setValue(newId);\n      nextId.current = null;\n    }\n  }, [setValue, updateValue]);\n  return res;\n}\n\n/**\n * Merges two ids.\n * Different ids will trigger a side-effect and re-render components hooked up with `useId`.\n */\nexport function mergeIds(idA: string, idB: string): string {\n  if (idA === idB) {\n    return idA;\n  }\n\n  let setIdA = idsUpdaterMap.get(idA);\n  if (setIdA) {\n    setIdA(idB);\n    return idB;\n  }\n\n  let setIdB = idsUpdaterMap.get(idB);\n  if (setIdB) {\n    setIdB(idA);\n    return idA;\n  }\n\n  return idB;\n}\n\n/**\n * Used to generate an id, and after render, check if that id is rendered so we know\n * if we can use it in places such as labelledby.\n */\nexport function useSlotId(): string {\n  let id = useId();\n  let [resolvedId, setResolvedId] = useState(id);\n  useLayoutEffect(() => {\n    let setCurr = idsUpdaterMap.get(id);\n    if (setCurr && !document.getElementById(id)) {\n      setResolvedId(null);\n    } else {\n      setResolvedId(id);\n    }\n  }, [id]);\n\n  return resolvedId;\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/**\n * Calls all functions in the order they were chained with the same arguments.\n */\nexport function chain(...callbacks: any[]): (...args: any[]) => void {\n  return (...args: any[]) => {\n    for (let callback of callbacks) {\n      if (typeof callback === 'function') {\n        callback(...args);\n      }\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} from './chain';\nimport clsx from 'clsx';\nimport {mergeIds} from './useId';\n\ninterface Props {\n  [key: string]: any\n}\n\n// taken from: https://stackoverflow.com/questions/51603250/typescript-3-parameter-list-intersection-type/51604379#51604379\ntype TupleTypes<T> = { [P in keyof T]: T[P] } extends { [key: number]: infer V } ? V : never;\n// eslint-disable-next-line no-undef, @typescript-eslint/no-unused-vars\ntype UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\n\n/**\n * Merges multiple props objects together. Event handlers are chained,\n * classNames are combined, and ids are deduplicated - different ids\n * will trigger a side-effect and re-render components hooked up with `useId`.\n * For all other props, the last prop object overrides all previous ones.\n * @param args - Multiple sets of props to merge together.\n */\nexport function mergeProps<T extends Props[]>(...args: T): UnionToIntersection<TupleTypes<T>> {\n  // Start with a base clone of the first argument. This is a lot faster than starting\n  // with an empty object and adding properties as we go.\n  let result: Props = {...args[0]};\n  for (let i = 1; i < args.length; i++) {\n    let props = args[i];\n    for (let key in props) {\n      let a = result[key];\n      let b = props[key];\n\n      // Chain events\n      if (\n        typeof a === 'function' &&\n        typeof b === 'function' &&\n        // This is a lot faster than a regex.\n        key[0] === 'o' &&\n        key[1] === 'n' &&\n        key.charCodeAt(2) >= /* 'A' */ 65 &&\n        key.charCodeAt(2) <= /* 'Z' */ 90\n      ) {\n        result[key] = chain(a, b);\n\n        // Merge classnames, sometimes classNames are empty string which eval to false, so we just need to do a type check\n      } else if (\n        (key === 'className' || key === 'UNSAFE_className') &&\n        typeof a === 'string' &&\n        typeof b === 'string'\n      ) {\n        result[key] = clsx(a, b);\n      } else if (key === 'id' && a && b) {\n        result.id = mergeIds(a, b);\n        // Override others\n      } else {\n        result[key] = b !== undefined ? b : a;\n      }\n    }\n  }\n\n  return result as UnionToIntersection<TupleTypes<T>>;\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 {AriaLabelingProps, DOMProps} from '@react-types/shared';\nimport {HTMLAttributes} from 'react';\n\nconst DOMPropNames = new Set([\n  'id'\n]);\n\nconst labelablePropNames = new Set([\n  'aria-label',\n  'aria-labelledby',\n  'aria-describedby',\n  'aria-details'\n]);\n\ninterface Options {\n  /**\n   * If labelling associated aria properties should be included in the filter.\n   */\n  labelable?: boolean,\n  /**\n   * A Set of other property names that should be included in the filter.\n   */\n  propNames?: Set<string>\n}\n\nconst propRe = /^(data-.*)$/;\n\n/**\n * Filters out all props that aren't valid DOM props or defined via override prop obj.\n * @param props - The component props to be filtered.\n * @param opts - Props to override.\n */\nexport function filterDOMProps(props: DOMProps & AriaLabelingProps, opts: Options = {}): DOMProps & AriaLabelingProps {\n  let {labelable, propNames} = opts;\n  let filteredProps: HTMLAttributes<HTMLElement> = {};\n\n  for (const prop in props) {\n    if (\n      Object.prototype.hasOwnProperty.call(props, prop) && (\n        DOMPropNames.has(prop) ||\n        (labelable && labelablePropNames.has(prop)) ||\n        propNames?.has(prop) ||\n        propRe.test(prop)\n      )\n    ) {\n      filteredProps[prop] = props[prop];\n    }\n  }\n\n  return filteredProps;\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// This is a polyfill for element.focus({preventScroll: true});\n// Currently necessary for Safari and old Edge:\n// https://caniuse.com/#feat=mdn-api_htmlelement_focus_preventscroll_option\n// See https://bugs.webkit.org/show_bug.cgi?id=178583\n//\n\n// Original licensing for the following methods can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/calvellido/focus-options-polyfill\n\ninterface ScrollableElement {\n  element: HTMLElement,\n  scrollTop: number,\n  scrollLeft: number\n}\n\nexport function focusWithoutScrolling(element: HTMLElement) {\n  if (supportsPreventScroll()) {\n    element.focus({preventScroll: true});\n  } else {\n    let scrollableElements = getScrollableElements(element);\n    element.focus();\n    restoreScrollPosition(scrollableElements);\n  }\n}\n\nlet supportsPreventScrollCached: boolean = null;\nfunction supportsPreventScroll() {\n  if (supportsPreventScrollCached == null) {\n    supportsPreventScrollCached = false;\n    try {\n      var focusElem = document.createElement('div');\n      focusElem.focus({\n        get preventScroll() {\n          supportsPreventScrollCached = true;\n          return true;\n        }\n      });\n    } catch (e) {\n      // Ignore\n    }\n  }\n\n  return supportsPreventScrollCached;\n}\n\nfunction getScrollableElements(element: HTMLElement): ScrollableElement[] {\n  var parent = element.parentNode;\n  var scrollableElements: ScrollableElement[] = [];\n  var rootScrollingElement = document.scrollingElement || document.documentElement;\n\n  while (parent instanceof HTMLElement && parent !== rootScrollingElement) {\n    if (\n      parent.offsetHeight < parent.scrollHeight ||\n      parent.offsetWidth < parent.scrollWidth\n    ) {\n      scrollableElements.push({\n        element: parent,\n        scrollTop: parent.scrollTop,\n        scrollLeft: parent.scrollLeft\n      });\n    }\n    parent = parent.parentNode;\n  }\n\n  if (rootScrollingElement instanceof HTMLElement) {\n    scrollableElements.push({\n      element: rootScrollingElement,\n      scrollTop: rootScrollingElement.scrollTop,\n      scrollLeft: rootScrollingElement.scrollLeft\n    });\n  }\n\n  return scrollableElements;\n}\n\nfunction restoreScrollPosition(scrollableElements: ScrollableElement[]) {\n  for (let {element, scrollTop, scrollLeft} of scrollableElements) {\n    element.scrollTop = scrollTop;\n    element.scrollLeft = scrollLeft;\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\nexport function getOffset(element, reverse, orientation = 'horizontal') {\n  let rect = element.getBoundingClientRect();\n  if (reverse) {\n    return orientation === 'horizontal' ? rect.right : rect.bottom;\n  }\n  return orientation === 'horizontal' ? rect.left : rect.top;\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// We store a global list of elements that are currently transitioning,\n// mapped to a set of CSS properties that are transitioning for that element.\n// This is necessary rather than a simple count of transitions because of browser\n// bugs, e.g. Chrome sometimes fires both transitionend and transitioncancel rather\n// than one or the other. So we need to track what's actually transitioning so that\n// we can ignore these duplicate events.\nlet transitionsByElement = new Map<EventTarget, Set<string>>();\n\n// A list of callbacks to call once there are no transitioning elements.\nlet transitionCallbacks = new Set<() => void>();\n\nfunction setupGlobalEvents() {\n  if (typeof window === 'undefined') {\n    return;\n  }\n\n  let onTransitionStart = (e: TransitionEvent) => {\n    // Add the transitioning property to the list for this element.\n    let transitions = transitionsByElement.get(e.target);\n    if (!transitions) {\n      transitions = new Set();\n      transitionsByElement.set(e.target, transitions);\n\n      // The transitioncancel event must be registered on the element itself, rather than as a global\n      // event. This enables us to handle when the node is deleted from the document while it is transitioning.\n      // In that case, the cancel event would have nowhere to bubble to so we need to handle it directly.\n      e.target.addEventListener('transitioncancel', onTransitionEnd);\n    }\n\n    transitions.add(e.propertyName);\n  };\n\n  let onTransitionEnd = (e: TransitionEvent) => {\n    // Remove property from list of transitioning properties.\n    let properties = transitionsByElement.get(e.target);\n    if (!properties) {\n      return;\n    }\n\n    properties.delete(e.propertyName);\n\n    // If empty, remove transitioncancel event, and remove the element from the list of transitioning elements.\n    if (properties.size === 0) {\n      e.target.removeEventListener('transitioncancel', onTransitionEnd);\n      transitionsByElement.delete(e.target);\n    }\n\n    // If no transitioning elements, call all of the queued callbacks.\n    if (transitionsByElement.size === 0) {\n      for (let cb of transitionCallbacks) {\n        cb();\n      }\n\n      transitionCallbacks.clear();\n    }\n  };\n\n  document.body.addEventListener('transitionrun', onTransitionStart);\n  document.body.addEventListener('transitionend', onTransitionEnd);\n}\n\nif (typeof document !== 'undefined') {\n  if (document.readyState !== 'loading') {\n    setupGlobalEvents();\n  } else {\n    document.addEventListener('DOMContentLoaded', setupGlobalEvents);\n  }\n}\n\nexport function runAfterTransition(fn: () => void) {\n  // Wait one frame to see if an animation starts, e.g. a transition on mount.\n  requestAnimationFrame(() => {\n    // If no transitions are running, call the function immediately.\n    // Otherwise, add it to a list of callbacks to run at the end of the animation.\n    if (transitionsByElement.size === 0) {\n      fn();\n    } else {\n      transitionCallbacks.add(fn);\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 {getOffset} from './getOffset';\nimport {Orientation} from '@react-types/shared';\nimport React, {HTMLAttributes, MutableRefObject, useRef} from 'react';\n\ninterface UseDrag1DProps {\n  containerRef: MutableRefObject<HTMLElement>,\n  reverse?: boolean,\n  orientation?: Orientation,\n  onHover?: (hovered: boolean) => void,\n  onDrag?: (dragging: boolean) => void,\n  onPositionChange?: (position: number) => void,\n  onIncrement?: () => void,\n  onDecrement?: () => void,\n  onIncrementToMax?: () => void,\n  onDecrementToMin?: () => void,\n  onCollapseToggle?: () => void\n}\n\n// Keep track of elements that we are currently handling dragging for via useDrag1D.\n// If there's an ancestor and a descendant both using useDrag1D(), and the user starts\n// dragging the descendant, we don't want useDrag1D events to fire for the ancestor.\nconst draggingElements: HTMLElement[] = [];\n\n// created for splitview, this should be reusable for things like sliders/dials\n// It also handles keyboard events on the target allowing for increment/decrement by a given stepsize as well as minifying/maximizing and toggling between minified and previous size\n// It can also take a 'reverse' param to say if we should measure from the right/bottom instead of the top/left\n// It can also handle either a vertical or horizontal movement, but not both at the same time\n\nexport function useDrag1D(props: UseDrag1DProps): HTMLAttributes<HTMLElement> {\n  console.warn('useDrag1D is deprecated, please use `useMove` instead https://react-spectrum.adobe.com/react-aria/useMove.html');\n  let {containerRef, reverse, orientation, onHover, onDrag, onPositionChange, onIncrement, onDecrement, onIncrementToMax, onDecrementToMin, onCollapseToggle} = props;\n  let getPosition = (e) => orientation === 'horizontal' ? e.clientX : e.clientY;\n  let getNextOffset = (e: MouseEvent) => {\n    let containerOffset = getOffset(containerRef.current, reverse, orientation);\n    let mouseOffset = getPosition(e);\n    let nextOffset = reverse ? containerOffset - mouseOffset : mouseOffset - containerOffset;\n    return nextOffset;\n  };\n  let dragging = useRef(false);\n  let prevPosition = useRef(0);\n\n  // Keep track of the current handlers in a ref so that the events can access them.\n  let handlers = useRef({onPositionChange, onDrag});\n  handlers.current.onDrag = onDrag;\n  handlers.current.onPositionChange = onPositionChange;\n\n  let onMouseDragged = (e: MouseEvent) => {\n    e.preventDefault();\n    let nextOffset = getNextOffset(e);\n    if (!dragging.current) {\n      dragging.current = true;\n      if (handlers.current.onDrag) {\n        handlers.current.onDrag(true);\n      }\n      if (handlers.current.onPositionChange) {\n        handlers.current.onPositionChange(nextOffset);\n      }\n    }\n    if (prevPosition.current === nextOffset) {\n      return;\n    }\n    prevPosition.current = nextOffset;\n    if (onPositionChange) {\n      onPositionChange(nextOffset);\n    }\n  };\n\n  let onMouseUp = (e: MouseEvent) => {\n    const target = e.target as HTMLElement;\n    dragging.current = false;\n    let nextOffset = getNextOffset(e);\n    if (handlers.current.onDrag) {\n      handlers.current.onDrag(false);\n    }\n    if (handlers.current.onPositionChange) {\n      handlers.current.onPositionChange(nextOffset);\n    }\n\n    draggingElements.splice(draggingElements.indexOf(target), 1);\n    window.removeEventListener('mouseup', onMouseUp, false);\n    window.removeEventListener('mousemove', onMouseDragged, false);\n  };\n\n  let onMouseDown = (e: React.MouseEvent<HTMLElement>) => {\n    const target = e.currentTarget;\n    // If we're already handling dragging on a descendant with useDrag1D, then\n    // we don't want to handle the drag motion on this target as well.\n    if (draggingElements.some(elt => target.contains(elt))) {\n      return;\n    }\n    draggingElements.push(target);\n    window.addEventListener('mousemove', onMouseDragged, false);\n    window.addEventListener('mouseup', onMouseUp, false);\n  };\n\n  let onMouseEnter = () => {\n    if (onHover) {\n      onHover(true);\n    }\n  };\n\n  let onMouseOut = () => {\n    if (onHover) {\n      onHover(false);\n    }\n  };\n\n  let onKeyDown = (e) => {\n    switch (e.key) {\n      case 'Left':\n      case 'ArrowLeft':\n        if (orientation === 'horizontal') {\n          e.preventDefault();\n          if (onDecrement && !reverse) {\n            onDecrement();\n          } else if (onIncrement && reverse) {\n            onIncrement();\n          }\n        }\n        break;\n      case 'Up':\n      case 'ArrowUp':\n        if (orientation === 'vertical') {\n          e.preventDefault();\n          if (onDecrement && !reverse) {\n            onDecrement();\n          } else if (onIncrement && reverse) {\n            onIncrement();\n          }\n        }\n        break;\n      case 'Right':\n      case 'ArrowRight':\n        if (orientation === 'horizontal') {\n          e.preventDefault();\n          if (onIncrement && !reverse) {\n            onIncrement();\n          } else if (onDecrement && reverse) {\n            onDecrement();\n          }\n        }\n        break;\n      case 'Down':\n      case 'ArrowDown':\n        if (orientation === 'vertical') {\n          e.preventDefault();\n          if (onIncrement && !reverse) {\n            onIncrement();\n          } else if (onDecrement && reverse) {\n            onDecrement();\n          }\n        }\n        break;\n      case 'Home':\n        e.preventDefault();\n        if (onDecrementToMin) {\n          onDecrementToMin();\n        }\n        break;\n      case 'End':\n        e.preventDefault();\n        if (onIncrementToMax) {\n          onIncrementToMax();\n        }\n        break;\n      case 'Enter':\n        e.preventDefault();\n        if (onCollapseToggle) {\n          onCollapseToggle();\n        }\n        break;\n    }\n  };\n\n  return {onMouseDown, onMouseEnter, onMouseOut, onKeyDown};\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 {useCallback, useEffect, useRef} from 'react';\n\ninterface GlobalListeners {\n  addGlobalListener<K extends keyof DocumentEventMap>(el: EventTarget, type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void,\n  addGlobalListener(el: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void,\n  removeGlobalListener<K extends keyof DocumentEventMap>(el: EventTarget, type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void,\n  removeGlobalListener(el: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void,\n  removeAllGlobalListeners(): void\n}\n\nexport function useGlobalListeners(): GlobalListeners {\n  let globalListeners = useRef(new Map());\n  let addGlobalListener = useCallback((eventTarget, type, listener, options) => {\n    globalListeners.current.set(listener, {type, eventTarget, options});\n    eventTarget.addEventListener(type, listener, options);\n  }, []);\n  let removeGlobalListener = useCallback((eventTarget, type, listener, options) => {\n    eventTarget.removeEventListener(type, listener, options);\n    globalListeners.current.delete(listener);\n  }, []);\n  let removeAllGlobalListeners = useCallback(() => {\n    globalListeners.current.forEach((value, key) => {\n      removeGlobalListener(value.eventTarget, value.type, key, value.options);\n    });\n  }, [removeGlobalListener]);\n\n  // eslint-disable-next-line arrow-body-style\n  useEffect(() => {\n    return removeAllGlobalListeners;\n  }, [removeAllGlobalListeners]);\n\n  return {addGlobalListener, removeGlobalListener, removeAllGlobalListeners};\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 {AriaLabelingProps, DOMProps} from '@react-types/shared';\nimport {useId} from './useId';\n\n/**\n * Merges aria-label and aria-labelledby into aria-labelledby when both exist.\n * @param props - Aria label props.\n * @param defaultLabel - Default value for aria-label when not present.\n */\nexport function useLabels(props: DOMProps & AriaLabelingProps, defaultLabel?: string): DOMProps & AriaLabelingProps {\n  let {\n    id,\n    'aria-label': label,\n    'aria-labelledby': labelledBy\n  } = props;\n\n  // If there is both an aria-label and aria-labelledby,\n  // combine them by pointing to the element itself.\n  id = useId(id);\n  if (labelledBy && label) {\n    let ids = new Set([...labelledBy.trim().split(/\\s+/), id]);\n    labelledBy = [...ids].join(' ');\n  } else if (labelledBy) {\n    labelledBy = labelledBy.trim().split(/\\s+/).join(' ');\n  }\n\n  // If no labels are provided, use the default\n  if (!label && !labelledBy && defaultLabel) {\n    label = defaultLabel;\n  }\n\n  return {\n    id,\n    'aria-label': label,\n    'aria-labelledby': labelledBy\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 {EffectCallback, useEffect, useRef} from 'react';\n\n// Like useEffect, but only called for updates after the initial render.\nexport function useUpdateEffect(effect: EffectCallback, dependencies: any[]) {\n  const isInitialMount = useRef(true);\n\n  useEffect(() => {\n    if (isInitialMount.current) {\n      isInitialMount.current = false;\n    } else {\n      effect();\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, dependencies);\n}\n","import {RefObject, useEffect} from 'react';\n\nfunction hasResizeObserver() {\n  return typeof window.ResizeObserver !== 'undefined';\n}\n\ntype useResizeObserverOptionsType<T> = {\n  ref: RefObject<T>,\n  onResize: () => void\n}\n\nexport function useResizeObserver<T extends HTMLElement>(options: useResizeObserverOptionsType<T>) {\n  const {ref, onResize} = options;\n\n  useEffect(() => {\n    let element = ref?.current;\n    if (!element) {\n      return;\n    }\n\n    if (!hasResizeObserver()) {\n      window.addEventListener('resize', onResize, false);\n      return () => {\n        window.removeEventListener('resize', onResize, false);\n      };\n    } else {\n\n      const resizeObserverInstance = new window.ResizeObserver((entries) => {\n        if (!entries.length) {\n          return;\n        }\n\n        onResize();\n      });\n      resizeObserverInstance.observe(element);\n\n      return () => {\n        if (element) {\n          resizeObserverInstance.unobserve(element);\n        }\n      };\n    }\n\n  }, [onResize, ref]);\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 {MutableRefObject, RefObject} from 'react';\nimport {useLayoutEffect} from './';\n\ninterface ContextValue<T> {\n  ref?: MutableRefObject<T>\n}\n\n// Syncs ref from context with ref passed to hook\nexport function useSyncRef<T>(context: ContextValue<T>, ref: RefObject<T>) {\n  useLayoutEffect(() => {\n    if (context && context.ref && ref) {\n      context.ref.current = ref.current;\n      return () => {\n        context.ref.current = null;\n      };\n    }\n  }, [context, ref]);\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\nexport function getScrollParent(node: Element): Element {\n  while (node && !isScrollable(node)) {\n    node = node.parentElement;\n  }\n\n  return node || document.scrollingElement || document.documentElement;\n}\n\nfunction isScrollable(node: Element): boolean {\n  let style = window.getComputedStyle(node);\n  return /(auto|scroll)/.test(style.overflow + style.overflowX + style.overflowY);\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 {useEffect, useState} from 'react';\n\ninterface ViewportSize {\n  width: number,\n  height: number\n}\n\n// @ts-ignore\nlet visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\nexport function useViewportSize(): ViewportSize {\n  let [size, setSize] = useState(() => getViewportSize());\n\n  useEffect(() => {\n    // Use visualViewport api to track available height even on iOS virtual keyboard opening\n    let onResize = () => {\n      setSize(size => {\n        let newSize = getViewportSize();\n        if (newSize.width === size.width && newSize.height === size.height) {\n          return size;\n        }\n        return newSize;\n      });\n    };\n\n    if (!visualViewport) {\n      window.addEventListener('resize', onResize);\n    } else {\n      visualViewport.addEventListener('resize', onResize);\n    }\n\n    return () => {\n      if (!visualViewport) {\n        window.removeEventListener('resize', onResize);\n      } else {\n        visualViewport.removeEventListener('resize', onResize);\n      }\n    };\n  }, []);\n\n  return size;\n}\n\nfunction getViewportSize(): ViewportSize {\n  return {\n    width: visualViewport?.width || window.innerWidth,\n    height: visualViewport?.height || window.innerHeight\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 {AriaLabelingProps} from '@react-types/shared';\nimport {useLayoutEffect, useState} from 'react';\n\nlet descriptionId = 0;\nconst descriptionNodes = new Map<string, {refCount: number, element: HTMLElement}>();\n\nexport function useDescription(description: string): AriaLabelingProps {\n  let [id, setId] = useState(null);\n\n  useLayoutEffect(() => {\n    if (!description) {\n      return;\n    }\n\n    let desc = descriptionNodes.get(description);\n    if (!desc) {\n      let id = `react-aria-description-${descriptionId++}`;\n      setId(id);\n\n      let node = document.createElement('div');\n      node.id = id;\n      node.style.display = 'none';\n      node.textContent = description;\n      document.body.appendChild(node);\n      desc = {refCount: 0, element: node};\n      descriptionNodes.set(description, desc);\n    } else {\n      setId(desc.element.id);\n    }\n\n    desc.refCount++;\n    return () => {\n      if (--desc.refCount === 0) {\n        desc.element.remove();\n        descriptionNodes.delete(description);\n      }\n    };\n  }, [description]);\n\n  return {\n    'aria-describedby': description ? id : undefined\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\nfunction testUserAgent(re: RegExp) {\n  return typeof window !== 'undefined' && window.navigator != null\n    ? re.test(window.navigator.userAgent)\n    : false;\n}\n\nfunction testPlatform(re: RegExp) {\n  return typeof window !== 'undefined' && window.navigator != null\n    ? re.test(window.navigator.platform)\n    : false;\n}\n\nexport function isMac() {\n  return testPlatform(/^Mac/);\n}\n\nexport function isIPhone() {\n  return testPlatform(/^iPhone/);\n}\n\nexport function isIPad() {\n  return testPlatform(/^iPad/) ||\n    // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n    (isMac() && navigator.maxTouchPoints > 1);\n}\n\nexport function isIOS() {\n  return isIPhone() || isIPad();\n}\n\nexport function isAppleDevice() {\n  return isMac() || isIOS();\n}\n\nexport function isWebKit() {\n  return testUserAgent(/AppleWebKit/) && !isChrome();\n}\n\nexport function isChrome() {\n  return testUserAgent(/Chrome/);\n}\n\nexport function isAndroid() {\n  return testUserAgent(/Android/);\n}\n","/*\n * Copyright 2021 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, useRef} from 'react';\n\nexport function useEvent<K extends keyof GlobalEventHandlersEventMap>(\n  ref: RefObject<EventTarget>,\n  event: K,\n  handler: (this: Document, ev: GlobalEventHandlersEventMap[K]) => any,\n  options?: boolean | AddEventListenerOptions\n) {\n  let handlerRef = useRef(handler);\n  handlerRef.current = handler;\n\n  let isDisabled = handler == null;\n\n  useEffect(() => {\n    if (isDisabled) {\n      return;\n    }\n\n    let element = ref.current;\n    let handler = (e: GlobalEventHandlersEventMap[K]) => handlerRef.current.call(this, e);\n\n    element.addEventListener(event, handler, options);\n    return () => {\n      element.removeEventListener(event, handler, options);\n    };\n  }, [ref, event, options, isDisabled]);\n}\n"]},"metadata":{},"sourceType":"module"}