{"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 _clsx from \"clsx\";\nimport { useSSRSafeId } from \"@react-aria/ssr\";\nimport _react, { useEffect, useRef, useState, useCallback } from \"react\";\nexport var useLayoutEffect = typeof window !== 'undefined' ? _react.useLayoutEffect : function () {};\nvar $f8b5fdd96fb429d7102983f777c41307$var$map = 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\n  var updateValue = function updateValue(val) {\n    if (!isRendering.current) {\n      setValue(val);\n    } else {\n      nextId.current = val;\n    }\n  };\n\n  useLayoutEffect(function () {\n    isRendering.current = false;\n  }, [updateValue]);\n  useEffect(function () {\n    var newId = nextId.current;\n\n    if (newId) {\n      setValue(newId);\n      nextId.current = null;\n    }\n  }, [setValue, updateValue]);\n  var res = useSSRSafeId(value);\n  $f8b5fdd96fb429d7102983f777c41307$var$map.set(res, updateValue);\n  return res;\n}\nexport function mergeIds(a, b) {\n  if (a === b) {\n    return a;\n  }\n\n  var setA = $f8b5fdd96fb429d7102983f777c41307$var$map.get(a);\n\n  if (setA) {\n    setA(b);\n    return b;\n  }\n\n  var setB = $f8b5fdd96fb429d7102983f777c41307$var$map.get(b);\n\n  if (setB) {\n    setB(a);\n    return a;\n  }\n\n  return b;\n}\nexport function useSlotId() {\n  var _useState3 = useState(useId()),\n      _useState4 = _slicedToArray(_useState3, 2),\n      id = _useState4[0],\n      setId = _useState4[1];\n\n  useLayoutEffect(function () {\n    var setCurr = $f8b5fdd96fb429d7102983f777c41307$var$map.get(id);\n\n    if (setCurr && !document.getElementById(id)) {\n      setId(null);\n    }\n  }, [id]);\n  return id;\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 = {};\n\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  for (var _i = 0, _args = args; _i < _args.length; _i++) {\n    var props = _args[_i];\n\n    for (var key in result) {\n      if (/^on[A-Z]/.test(key) && typeof result[key] === 'function' && typeof props[key] === 'function') {\n        result[key] = chain(result[key], props[key]);\n      } else if (key === 'className' && typeof result.className === 'string' && typeof props.className === 'string') {\n        result[key] = _clsx(result.className, props.className);\n      } else if (key === 'UNSAFE_className' && typeof result.UNSAFE_className === 'string' && typeof props.UNSAFE_className === 'string') {\n        result[key] = _clsx(result.UNSAFE_className, props.UNSAFE_className);\n      } else if (key === 'id' && result.id && props.id) {\n        result.id = mergeIds(result.id, props.id);\n      } else {\n        result[key] = props[key] !== undefined ? props[key] : result[key];\n      }\n    }\n\n    for (var _key2 in props) {\n      if (result[_key2] === undefined) {\n        result[_key2] = props[_key2];\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 ? void 0 : 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}\nexport function clamp(value, min, max) {\n  if (min === void 0) {\n    min = -Infinity;\n  }\n\n  if (max === void 0) {\n    max = Infinity;\n  }\n\n  return Math.min(Math.max(value, min), max);\n}\nexport function snapValueToStep(value, min, max, step) {\n  var remainder = (value - min) % step;\n  var snappedValue = Math.abs(remainder) * 2 >= step ? value - Math.abs(remainder) + step : value - remainder;\n\n  if (snappedValue < min) {\n    snappedValue = min;\n  } else if (snappedValue > max) {\n    snappedValue = min + Math.floor((max - min) / step) * step;\n  }\n\n  var string = step.toString();\n  var index = string.indexOf('.');\n  var precision = index >= 0 ? string.length - index : 0;\n\n  if (precision > 0) {\n    var pow = Math.pow(10, precision);\n    snappedValue = Math.round(snappedValue * pow) / pow;\n  }\n\n  return snappedValue;\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  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  useEffect(function () {\n    return function () {\n      globalListeners.current.forEach(function (value, key) {\n        removeGlobalListener(value.eventTarget, value.type, key, value.options);\n      });\n    };\n  }, [removeGlobalListener]);\n  return {\n    addGlobalListener: addGlobalListener,\n    removeGlobalListener: removeGlobalListener\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 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($d662329747d896105af008c761523$var$getViewportSize());\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}","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/number.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/getScrollParent.ts","packages/@react-aria/utils/src/useViewportSize.ts"],"names":["useLayoutEffect","React","map","isRendering","useRef","useState","nextId","updateValue","val","setValue","useEffect","newId","res","useSSRSafeId","a","setA","setB","useId","setCurr","document","setId","callbacks","callback","args","result","props","key","clsx","DOMPropNames","labelablePropNames","propRe","opts","propNames","filteredProps","Object","labelable","supportsPreventScroll","element","preventScroll","scrollableElements","getScrollableElements","restoreScrollPosition","supportsPreventScrollCached","focusElem","parent","rootScrollingElement","scrollTop","scrollLeft","orientation","rect","min","Infinity","max","Math","remainder","value","snappedValue","string","step","index","precision","pow","transitionsByElement","transitionCallbacks","onTransitionStart","e","transitions","onTransitionEnd","properties","cb","setupGlobalEvents","requestAnimationFrame","fn","draggingElements","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","labelledBy","id","ids","label","isInitialMount","effect","onResize","ref","hasResizeObserver","resizeObserverInstance","entries","node","isScrollable","style","visualViewport","getViewportSize","setSize","width","height","innerHeight"],"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 map: 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  // 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  useLayoutEffect(() => {\n    isRendering.current = false;\n  }, [updateValue]);\n\n  useEffect(() => {\n    let newId = nextId.current;\n    if (newId) {\n      setValue(newId);\n      nextId.current = null;\n    }\n  }, [setValue, updateValue]);\n\n  let res = useSSRSafeId(value);\n  map.set(res, updateValue);\n  return res;\n}\n\n/**\n * Merges two ids.\n */\nexport function mergeIds(a: string, b: string): string {\n  if (a === b) {\n    return a;\n  }\n\n  let setA = map.get(a);\n  if (setA) {\n    setA(b);\n    return b;\n  }\n\n  let setB = map.get(b);\n  if (setB) {\n    setB(a);\n    return a;\n  }\n\n  return b;\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, setId] = useState(useId());\n  useLayoutEffect(() => {\n    let setCurr = map.get(id);\n    if (setCurr && !document.getElementById(id)) {\n      setId(null);\n    }\n  }, [id]);\n\n  return id;\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. For all other props,\n * 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  let result: Props = {};\n  for (let props of args) {\n    for (let key in result) {\n      // Chain events\n      if (\n        /^on[A-Z]/.test(key) &&\n        typeof result[key] === 'function' &&\n        typeof props[key] === 'function'\n      ) {\n        result[key] = chain(result[key], props[key]);\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' &&\n        typeof result.className === 'string' &&\n        typeof props.className === 'string'\n      ) {\n        result[key] = clsx(result.className, props.className);\n      } else if (\n        key === 'UNSAFE_className' &&\n        typeof result.UNSAFE_className === 'string' &&\n        typeof props.UNSAFE_className === 'string'\n      ) {\n        result[key] = clsx(result.UNSAFE_className, props.UNSAFE_className);\n      } else if (key === 'id' && result.id && props.id) {\n        result.id = mergeIds(result.id, props.id);\n        // Override others\n      } else {\n        result[key] = props[key] !== undefined ? props[key] : result[key];\n      }\n    }\n\n    // Add props from b that are not in a\n    for (let key in props) {\n      if (result[key] === undefined) {\n        result[key] = props[key];\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/**\n * Takes a value and forces it to the closest min/max.\n */\nexport function clamp(value: number, min: number = -Infinity, max: number = Infinity): number {\n  return Math.min(Math.max(value, min), max);\n}\n\nexport function snapValueToStep(value: number, min: number, max: number, step: number): number {\n  let remainder = ((value - min) % step);\n  let snappedValue = Math.abs(remainder) * 2 >= step\n    ? (value - Math.abs(remainder)) + step\n    : value - remainder;\n\n  if (snappedValue < min) {\n    snappedValue = min;\n  } else if (snappedValue > max) {\n    snappedValue = min + Math.floor((max - min) / step) * step;\n  }\n\n  // correct floating point behavior by rounding to step precision\n  let string = step.toString();\n  let index = string.indexOf('.');\n  let precision = index >= 0 ? string.length - index : 0;\n\n  if (precision > 0) {\n    let pow = Math.pow(10, precision);\n    snappedValue = Math.round(snappedValue * pow) / pow;\n  }\n\n  return snappedValue;\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  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}\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\n  // eslint-disable-next-line arrow-body-style\n  useEffect(() => {\n    return () => {\n      globalListeners.current.forEach((value, key) => {\n        removeGlobalListener(value.eventTarget, value.type, key, value.options);\n      });\n    };\n  }, [removeGlobalListener]);\n\n  return {addGlobalListener, removeGlobalListener};\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\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(getViewportSize());\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"]},"metadata":{},"sourceType":"module"}