{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,I,C,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,C,E,C,M,C,S,C,C,C,C,C,ECUC,IAAA,EAAA,EAAA,kD,E,iB,C,GACD,EAAA,MAAA,CAAA,EAAA,QAAA,IAAA,EAAA,KAAA,EAAA,EAAA,MAAA,CAAA,EAAA,WAAA,IAAA,EAAA,QAAA,EAAA,EAAA,MAAA,CAAA,EAAA,YAAA,IAAA,EAAA,SAAA,EACA,EAAA,MAAA,CAAA,EAAA,QAAA,IAAA,EAAA,KAAA,EACA,EAAA,MAAA,CAAA,EAAA,mBAAA,IAAA,EAAA,gBAAA,EAAA,EAAA,MAAA,CAAA,EAAA,iBAAA,IAAA,EAAA,cAAA,EACA,EAAA,MAAA,CAAA,EAAA,aAAA,IAAA,EAAA,UAAA,EACA,EAAA,MAAA,CAAA,EAAA,YAAA,IAAA,EAAA,SAAA,EACA,EAAA,MAAA,CAAA,EAAA,iBAAA,IAAA,EAAA,cAAA,EACA,EAAA,MAAA,CAAA,EAAA,wBAAA,IAAA,EAAA,qBAAA,EACA,EAAA,MAAA,CAAA,EAAA,YAAA,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","sources":["<anon>","packages/@react-aria/utils/src/index.ts","packages/@react-aria/utils/src/useId.ts","packages/@react-aria/utils/src/useLayoutEffect.ts","packages/@react-aria/ssr/src/index.ts","packages/@react-aria/ssr/src/SSRProvider.tsx","packages/@react-aria/utils/src/chain.ts","packages/@react-aria/utils/src/domHelpers.ts","packages/@react-aria/utils/src/mergeProps.ts","node_modules/clsx/dist/clsx.mjs","packages/@react-aria/utils/src/mergeRefs.ts","packages/@react-aria/utils/src/filterDOMProps.ts","packages/@react-aria/utils/src/focusWithoutScrolling.ts","packages/@react-aria/utils/src/openLink.tsx","packages/@react-aria/utils/src/platform.ts","packages/@react-aria/utils/src/runAfterTransition.ts","packages/@react-aria/utils/src/useGlobalListeners.ts","packages/@react-aria/utils/src/useLabels.ts","packages/@react-aria/utils/src/useObjectRef.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/isScrollable.ts","packages/@react-aria/utils/src/getScrollParents.ts","packages/@react-aria/utils/src/useViewportSize.ts","packages/@react-aria/utils/src/useDescription.ts","packages/@react-aria/utils/src/useEvent.ts","packages/@react-aria/utils/src/useEffectEvent.ts","packages/@react-aria/utils/src/useValueEffect.ts","packages/@react-aria/utils/src/scrollIntoView.ts","packages/@react-stately/utils/src/index.ts","packages/@react-stately/utils/src/useControlledState.ts","packages/@react-stately/utils/src/number.ts","packages/@react-aria/utils/src/isVirtualEvent.ts","packages/@react-aria/utils/src/useDeepMemo.ts","packages/@react-aria/utils/src/useFormReset.ts","packages/@react-aria/utils/src/useLoadMore.ts"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (modules, entry, mainEntry, parcelRequireName, globalName) {\n  /* eslint-disable no-undef */\n  var globalObject =\n    typeof globalThis !== 'undefined'\n      ? globalThis\n      : typeof self !== 'undefined'\n      ? self\n      : typeof window !== 'undefined'\n      ? window\n      : typeof global !== 'undefined'\n      ? global\n      : {};\n  /* eslint-enable no-undef */\n\n  // Save the require from previous bundle to this closure if any\n  var previousRequire =\n    typeof globalObject[parcelRequireName] === 'function' &&\n    globalObject[parcelRequireName];\n\n  var cache = previousRequire.cache || {};\n  // Do not use `require` to prevent Webpack from trying to bundle this call\n  var nodeRequire =\n    typeof module !== 'undefined' &&\n    typeof module.require === 'function' &&\n    module.require.bind(module);\n\n  function newRequire(name, jumped) {\n    if (!cache[name]) {\n      if (!modules[name]) {\n        // if we cannot find the module within our internal map or\n        // cache jump to the current global require ie. the last bundle\n        // that was added to the page.\n        var currentRequire =\n          typeof globalObject[parcelRequireName] === 'function' &&\n          globalObject[parcelRequireName];\n        if (!jumped && currentRequire) {\n          return currentRequire(name, true);\n        }\n\n        // If there are other bundles on this page the require from the\n        // previous one is saved to 'previousRequire'. Repeat this as\n        // many times as there are bundles until the module is found or\n        // we exhaust the require chain.\n        if (previousRequire) {\n          return previousRequire(name, true);\n        }\n\n        // Try the node require function if it exists.\n        if (nodeRequire && typeof name === 'string') {\n          return nodeRequire(name);\n        }\n\n        var err = new Error(\"Cannot find module '\" + name + \"'\");\n        err.code = 'MODULE_NOT_FOUND';\n        throw err;\n      }\n\n      localRequire.resolve = resolve;\n      localRequire.cache = {};\n\n      var module = (cache[name] = new newRequire.Module(name));\n\n      modules[name][0].call(\n        module.exports,\n        localRequire,\n        module,\n        module.exports,\n        this\n      );\n    }\n\n    return cache[name].exports;\n\n    function localRequire(x) {\n      var res = localRequire.resolve(x);\n      return res === false ? {} : newRequire(res);\n    }\n\n    function resolve(x) {\n      var id = modules[name][1][x];\n      return id != null ? id : x;\n    }\n  }\n\n  function Module(moduleName) {\n    this.id = moduleName;\n    this.bundle = newRequire;\n    this.exports = {};\n  }\n\n  newRequire.isParcelRequire = true;\n  newRequire.Module = Module;\n  newRequire.modules = modules;\n  newRequire.cache = cache;\n  newRequire.parent = previousRequire;\n  newRequire.register = function (id, exports) {\n    modules[id] = [\n      function (require, module) {\n        module.exports = exports;\n      },\n      {},\n    ];\n  };\n\n  Object.defineProperty(newRequire, 'root', {\n    get: function () {\n      return globalObject[parcelRequireName];\n    },\n  });\n\n  globalObject[parcelRequireName] = newRequire;\n\n  for (var i = 0; i < entry.length; i++) {\n    newRequire(entry[i]);\n  }\n\n  if (mainEntry) {\n    // Expose entry point to Node, AMD or browser globals\n    // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js\n    var mainExports = newRequire(mainEntry);\n\n    // CommonJS\n    if (typeof exports === 'object' && typeof module !== 'undefined') {\n      module.exports = mainExports;\n\n      // RequireJS\n    } else if (typeof define === 'function' && define.amd) {\n      define(function () {\n        return mainExports;\n      });\n\n      // <script>\n    } else if (globalName) {\n      this[globalName] = mainExports;\n    }\n  }\n})({\"e9Yvo\":[function(require,module,exports) {\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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"useId\", ()=>(0, _useId.useId));\nparcelHelpers.export(exports, \"mergeIds\", ()=>(0, _useId.mergeIds));\nparcelHelpers.export(exports, \"useSlotId\", ()=>(0, _useId.useSlotId));\nparcelHelpers.export(exports, \"chain\", ()=>(0, _chain.chain));\nparcelHelpers.export(exports, \"getOwnerDocument\", ()=>(0, _domHelpers.getOwnerDocument));\nparcelHelpers.export(exports, \"getOwnerWindow\", ()=>(0, _domHelpers.getOwnerWindow));\nparcelHelpers.export(exports, \"mergeProps\", ()=>(0, _mergeProps.mergeProps));\nparcelHelpers.export(exports, \"mergeRefs\", ()=>(0, _mergeRefs.mergeRefs));\nparcelHelpers.export(exports, \"filterDOMProps\", ()=>(0, _filterDOMProps.filterDOMProps));\nparcelHelpers.export(exports, \"focusWithoutScrolling\", ()=>(0, _focusWithoutScrolling.focusWithoutScrolling));\nparcelHelpers.export(exports, \"getOffset\", ()=>(0, _getOffset.getOffset));\nparcelHelpers.export(exports, \"openLink\", ()=>(0, _openLink.openLink));\nparcelHelpers.export(exports, \"getSyntheticLinkProps\", ()=>(0, _openLink.getSyntheticLinkProps));\nparcelHelpers.export(exports, \"useSyntheticLinkProps\", ()=>(0, _openLink.useSyntheticLinkProps));\nparcelHelpers.export(exports, \"RouterProvider\", ()=>(0, _openLink.RouterProvider));\nparcelHelpers.export(exports, \"shouldClientNavigate\", ()=>(0, _openLink.shouldClientNavigate));\nparcelHelpers.export(exports, \"useRouter\", ()=>(0, _openLink.useRouter));\nparcelHelpers.export(exports, \"useLinkProps\", ()=>(0, _openLink.useLinkProps));\nparcelHelpers.export(exports, \"runAfterTransition\", ()=>(0, _runAfterTransition.runAfterTransition));\nparcelHelpers.export(exports, \"useDrag1D\", ()=>(0, _useDrag1D.useDrag1D));\nparcelHelpers.export(exports, \"useGlobalListeners\", ()=>(0, _useGlobalListeners.useGlobalListeners));\nparcelHelpers.export(exports, \"useLabels\", ()=>(0, _useLabels.useLabels));\nparcelHelpers.export(exports, \"useObjectRef\", ()=>(0, _useObjectRef.useObjectRef));\nparcelHelpers.export(exports, \"useUpdateEffect\", ()=>(0, _useUpdateEffect.useUpdateEffect));\nparcelHelpers.export(exports, \"useLayoutEffect\", ()=>(0, _useLayoutEffect.useLayoutEffect));\nparcelHelpers.export(exports, \"useResizeObserver\", ()=>(0, _useResizeObserver.useResizeObserver));\nparcelHelpers.export(exports, \"useSyncRef\", ()=>(0, _useSyncRef.useSyncRef));\nparcelHelpers.export(exports, \"getScrollParent\", ()=>(0, _getScrollParent.getScrollParent));\nparcelHelpers.export(exports, \"getScrollParents\", ()=>(0, _getScrollParents.getScrollParents));\nparcelHelpers.export(exports, \"isScrollable\", ()=>(0, _isScrollable.isScrollable));\nparcelHelpers.export(exports, \"useViewportSize\", ()=>(0, _useViewportSize.useViewportSize));\nparcelHelpers.export(exports, \"useDescription\", ()=>(0, _useDescription.useDescription));\nparcelHelpers.export(exports, \"isMac\", ()=>(0, _platform.isMac));\nparcelHelpers.export(exports, \"isIPhone\", ()=>(0, _platform.isIPhone));\nparcelHelpers.export(exports, \"isIPad\", ()=>(0, _platform.isIPad));\nparcelHelpers.export(exports, \"isIOS\", ()=>(0, _platform.isIOS));\nparcelHelpers.export(exports, \"isAppleDevice\", ()=>(0, _platform.isAppleDevice));\nparcelHelpers.export(exports, \"isWebKit\", ()=>(0, _platform.isWebKit));\nparcelHelpers.export(exports, \"isChrome\", ()=>(0, _platform.isChrome));\nparcelHelpers.export(exports, \"isAndroid\", ()=>(0, _platform.isAndroid));\nparcelHelpers.export(exports, \"isFirefox\", ()=>(0, _platform.isFirefox));\nparcelHelpers.export(exports, \"useEvent\", ()=>(0, _useEvent.useEvent));\nparcelHelpers.export(exports, \"useValueEffect\", ()=>(0, _useValueEffect.useValueEffect));\nparcelHelpers.export(exports, \"scrollIntoView\", ()=>(0, _scrollIntoView.scrollIntoView));\nparcelHelpers.export(exports, \"scrollIntoViewport\", ()=>(0, _scrollIntoView.scrollIntoViewport));\nparcelHelpers.export(exports, \"clamp\", ()=>(0, _utils.clamp));\nparcelHelpers.export(exports, \"snapValueToStep\", ()=>(0, _utils.snapValueToStep));\nparcelHelpers.export(exports, \"isVirtualClick\", ()=>(0, _isVirtualEvent.isVirtualClick));\nparcelHelpers.export(exports, \"isVirtualPointerEvent\", ()=>(0, _isVirtualEvent.isVirtualPointerEvent));\nparcelHelpers.export(exports, \"useEffectEvent\", ()=>(0, _useEffectEvent.useEffectEvent));\nparcelHelpers.export(exports, \"useDeepMemo\", ()=>(0, _useDeepMemo.useDeepMemo));\nparcelHelpers.export(exports, \"useFormReset\", ()=>(0, _useFormReset.useFormReset));\nparcelHelpers.export(exports, \"useLoadMore\", ()=>(0, _useLoadMore.useLoadMore));\nvar _useId = require(\"./useId\");\nvar _chain = require(\"./chain\");\nvar _domHelpers = require(\"./domHelpers\");\nvar _mergeProps = require(\"./mergeProps\");\nvar _mergeRefs = require(\"./mergeRefs\");\nvar _filterDOMProps = require(\"./filterDOMProps\");\nvar _focusWithoutScrolling = require(\"./focusWithoutScrolling\");\nvar _getOffset = require(\"./getOffset\");\nvar _openLink = require(\"./openLink\");\nvar _runAfterTransition = require(\"./runAfterTransition\");\nvar _useDrag1D = require(\"./useDrag1D\");\nvar _useGlobalListeners = require(\"./useGlobalListeners\");\nvar _useLabels = require(\"./useLabels\");\nvar _useObjectRef = require(\"./useObjectRef\");\nvar _useUpdateEffect = require(\"./useUpdateEffect\");\nvar _useLayoutEffect = require(\"./useLayoutEffect\");\nvar _useResizeObserver = require(\"./useResizeObserver\");\nvar _useSyncRef = require(\"./useSyncRef\");\nvar _getScrollParent = require(\"./getScrollParent\");\nvar _getScrollParents = require(\"./getScrollParents\");\nvar _isScrollable = require(\"./isScrollable\");\nvar _useViewportSize = require(\"./useViewportSize\");\nvar _useDescription = require(\"./useDescription\");\nvar _platform = require(\"./platform\");\nvar _useEvent = require(\"./useEvent\");\nvar _useValueEffect = require(\"./useValueEffect\");\nvar _scrollIntoView = require(\"./scrollIntoView\");\nvar _utils = require(\"@react-stately/utils\");\nvar _isVirtualEvent = require(\"./isVirtualEvent\");\nvar _useEffectEvent = require(\"./useEffectEvent\");\nvar _useDeepMemo = require(\"./useDeepMemo\");\nvar _useFormReset = require(\"./useFormReset\");\nvar _useLoadMore = require(\"./useLoadMore\");\n\n},{\"./useId\":\"2KSt6\",\"./chain\":\"406eH\",\"./domHelpers\":\"eaSUW\",\"./mergeProps\":\"8Pnrz\",\"./mergeRefs\":\"dVSJc\",\"./filterDOMProps\":\"cpDYK\",\"./focusWithoutScrolling\":\"jvnlb\",\"./getOffset\":false,\"./openLink\":\"6Wt2T\",\"./runAfterTransition\":\"bFRm8\",\"./useDrag1D\":false,\"./useGlobalListeners\":\"50Zjw\",\"./useLabels\":\"fGs7C\",\"./useObjectRef\":\"i6T8d\",\"./useUpdateEffect\":\"buEdH\",\"./useLayoutEffect\":\"gdGyj\",\"./useResizeObserver\":\"3EOzC\",\"./useSyncRef\":\"6Brid\",\"./getScrollParent\":\"jYjRs\",\"./getScrollParents\":false,\"./isScrollable\":\"8vlnF\",\"./useViewportSize\":\"aQosy\",\"./useDescription\":\"fOWI1\",\"./platform\":\"4YVI3\",\"./useEvent\":\"cSJ1y\",\"./useValueEffect\":\"aLvg5\",\"./scrollIntoView\":\"eT4Hl\",\"@react-stately/utils\":\"8dKgy\",\"./isVirtualEvent\":\"4b45P\",\"./useEffectEvent\":\"836OP\",\"./useDeepMemo\":\"fiRrP\",\"./useFormReset\":\"gCQZF\",\"./useLoadMore\":\"3kpAD\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"2KSt6\":[function(require,module,exports) {\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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\n/**\n * If a default is not provided, generate an id.\n * @param defaultId - Default component id.\n */ parcelHelpers.export(exports, \"useId\", ()=>useId);\n/**\n * Merges two ids.\n * Different ids will trigger a side-effect and re-render components hooked up with `useId`.\n */ parcelHelpers.export(exports, \"mergeIds\", ()=>mergeIds);\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 * @param depArray - When to recalculate if the id is in the DOM.\n */ parcelHelpers.export(exports, \"useSlotId\", ()=>useSlotId);\nvar _react = require(\"react\");\nvar _useLayoutEffect = require(\"./useLayoutEffect\");\nvar _ssr = require(\"@react-aria/ssr\");\nvar _ = require(\"./\");\n// copied from SSRProvider.tsx to reduce exports, if needed again, consider sharing\nlet canUseDOM = Boolean(typeof window !== 'undefined' && window.document && window.document.createElement);\nlet idsUpdaterMap = new Map();\nfunction useId(defaultId) {\n    let [value, setValue] = (0, _react.useState)(defaultId);\n    let nextId = (0, _react.useRef)(null);\n    let res = (0, _ssr.useSSRSafeId)(value);\n    let updateValue = (0, _react.useCallback)((val)=>{\n        nextId.current = val;\n    }, []);\n    if (canUseDOM) {\n        // TS not smart enough to know that `has` means the value exists\n        if (idsUpdaterMap.has(res) && !idsUpdaterMap.get(res).includes(updateValue)) idsUpdaterMap.set(res, [\n            ...idsUpdaterMap.get(res),\n            updateValue\n        ]);\n        else idsUpdaterMap.set(res, [\n            updateValue\n        ]);\n    }\n    (0, _useLayoutEffect.useLayoutEffect)(()=>{\n        let r = res;\n        return ()=>{\n            idsUpdaterMap.delete(r);\n        };\n    }, [\n        res\n    ]);\n    // This cannot cause an infinite loop because the ref is updated first.\n    // eslint-disable-next-line\n    (0, _react.useEffect)(()=>{\n        let newId = nextId.current;\n        if (newId) {\n            nextId.current = null;\n            setValue(newId);\n        }\n    });\n    return res;\n}\nfunction mergeIds(idA, idB) {\n    if (idA === idB) return idA;\n    let setIdsA = idsUpdaterMap.get(idA);\n    if (setIdsA) {\n        setIdsA.forEach((fn)=>fn(idB));\n        return idB;\n    }\n    let setIdsB = idsUpdaterMap.get(idB);\n    if (setIdsB) {\n        setIdsB.forEach((fn)=>fn(idA));\n        return idA;\n    }\n    return idB;\n}\nfunction useSlotId(depArray = []) {\n    let id = useId();\n    let [resolvedId, setResolvedId] = (0, _.useValueEffect)(id);\n    let updateId = (0, _react.useCallback)(()=>{\n        setResolvedId(function*() {\n            yield id;\n            yield document.getElementById(id) ? id : undefined;\n        });\n    }, [\n        id,\n        setResolvedId\n    ]);\n    (0, _useLayoutEffect.useLayoutEffect)(updateId, [\n        id,\n        updateId,\n        ...depArray\n    ]);\n    return resolvedId;\n}\n\n},{\"react\":\"jEiK2\",\"./useLayoutEffect\":\"gdGyj\",\"@react-aria/ssr\":\"jNw7O\",\"./\":\"e9Yvo\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"gdGyj\":[function(require,module,exports) {\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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"useLayoutEffect\", ()=>useLayoutEffect);\nvar _react = require(\"react\");\nvar _reactDefault = parcelHelpers.interopDefault(_react);\nconst useLayoutEffect = typeof document !== 'undefined' ? (0, _reactDefault.default).useLayoutEffect : ()=>{};\n\n},{\"react\":\"jEiK2\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"jNw7O\":[function(require,module,exports) {\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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"SSRProvider\", ()=>(0, _ssrprovider.SSRProvider));\nparcelHelpers.export(exports, \"useSSRSafeId\", ()=>(0, _ssrprovider.useSSRSafeId));\nparcelHelpers.export(exports, \"useIsSSR\", ()=>(0, _ssrprovider.useIsSSR));\nvar _ssrprovider = require(\"./SSRProvider\");\n\n},{\"./SSRProvider\":\"jEWCy\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"jEWCy\":[function(require,module,exports) {\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 */ // We must avoid a circular dependency with @react-aria/utils, and this useLayoutEffect is\n// guarded by a check that it only runs on the client side.\n// eslint-disable-next-line rulesdir/useLayoutEffectRule\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\n/**\n * When using SSR with React Aria in React 16 or 17, applications must be wrapped in an SSRProvider.\n * This ensures that auto generated ids are consistent between the client and server.\n */ parcelHelpers.export(exports, \"SSRProvider\", ()=>SSRProvider);\nparcelHelpers.export(exports, \"useSSRSafeId\", ()=>useSSRSafeId);\n/**\n * Returns whether the component is currently being server side rendered or\n * hydrated on the client. Can be used to delay browser-specific rendering\n * until after hydration.\n */ parcelHelpers.export(exports, \"useIsSSR\", ()=>useIsSSR);\nvar _react = require(\"react\");\nvar _reactDefault = parcelHelpers.interopDefault(_react);\n// Default context value to use in case there is no SSRProvider. This is fine for\n// client-only apps. In order to support multiple copies of React Aria potentially\n// being on the page at once, the prefix is set to a random number. SSRProvider\n// will reset this to zero for consistency between server and client, so in the\n// SSR case multiple copies of React Aria is not supported.\nconst defaultContext = {\n    prefix: String(Math.round(Math.random() * 10000000000)),\n    current: 0\n};\nconst SSRContext = /*#__PURE__*/ (0, _reactDefault.default).createContext(defaultContext);\nconst IsSSRContext = /*#__PURE__*/ (0, _reactDefault.default).createContext(false);\n// This is only used in React < 18.\nfunction LegacySSRProvider(props) {\n    let cur = (0, _react.useContext)(SSRContext);\n    let counter = useCounter(cur === defaultContext);\n    let [isSSR, setIsSSR] = (0, _react.useState)(true);\n    let value = (0, _react.useMemo)(()=>({\n            // If this is the first SSRProvider, start with an empty string prefix, otherwise\n            // append and increment the counter.\n            prefix: cur === defaultContext ? '' : `${cur.prefix}-${counter}`,\n            current: 0\n        }), [\n        cur,\n        counter\n    ]);\n    // If on the client, and the component was initially server rendered,\n    // then schedule a layout effect to update the component after hydration.\n    if (typeof document !== 'undefined') // This if statement technically breaks the rules of hooks, but is safe\n    // because the condition never changes after mounting.\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    (0, _react.useLayoutEffect)(()=>{\n        setIsSSR(false);\n    }, []);\n    return /*#__PURE__*/ (0, _reactDefault.default).createElement(SSRContext.Provider, {\n        value: value\n    }, /*#__PURE__*/ (0, _reactDefault.default).createElement(IsSSRContext.Provider, {\n        value: isSSR\n    }, props.children));\n}\nlet warnedAboutSSRProvider = false;\nfunction SSRProvider(props) {\n    if (typeof (0, _reactDefault.default)['useId'] === 'function') {\n        if (!warnedAboutSSRProvider) {\n            console.warn('In React 18, SSRProvider is not necessary and is a noop. You can remove it from your app.');\n            warnedAboutSSRProvider = true;\n        }\n        return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _reactDefault.default).Fragment, null, props.children);\n    }\n    return /*#__PURE__*/ (0, _reactDefault.default).createElement(LegacySSRProvider, props);\n}\nlet canUseDOM = Boolean(typeof window !== 'undefined' && window.document && window.document.createElement);\nlet componentIds = new WeakMap();\nfunction useCounter(isDisabled = false) {\n    let ctx = (0, _react.useContext)(SSRContext);\n    let ref = (0, _react.useRef)(null);\n    // eslint-disable-next-line rulesdir/pure-render\n    if (ref.current === null && !isDisabled) {\n        // In strict mode, React renders components twice, and the ref will be reset to null on the second render.\n        // This means our id counter will be incremented twice instead of once. This is a problem because on the\n        // server, components are only rendered once and so ids generated on the server won't match the client.\n        // In React 18, useId was introduced to solve this, but it is not available in older versions. So to solve this\n        // we need to use some React internals to access the underlying Fiber instance, which is stable between renders.\n        // This is exposed as ReactCurrentOwner in development, which is all we need since StrictMode only runs in development.\n        // To ensure that we only increment the global counter once, we store the starting id for this component in\n        // a weak map associated with the Fiber. On the second render, we reset the global counter to this value.\n        // Since React runs the second render immediately after the first, this is safe.\n        // @ts-ignore\n        let currentOwner = (0, _reactDefault.default).__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED?.ReactCurrentOwner?.current;\n        if (currentOwner) {\n            let prevComponentValue = componentIds.get(currentOwner);\n            if (prevComponentValue == null) // On the first render, and first call to useId, store the id and state in our weak map.\n            componentIds.set(currentOwner, {\n                id: ctx.current,\n                state: currentOwner.memoizedState\n            });\n            else if (currentOwner.memoizedState !== prevComponentValue.state) {\n                // On the second render, the memoizedState gets reset by React.\n                // Reset the counter, and remove from the weak map so we don't\n                // do this for subsequent useId calls.\n                ctx.current = prevComponentValue.id;\n                componentIds.delete(currentOwner);\n            }\n        }\n        // eslint-disable-next-line rulesdir/pure-render\n        ref.current = ++ctx.current;\n    }\n    // eslint-disable-next-line rulesdir/pure-render\n    return ref.current;\n}\nfunction useLegacySSRSafeId(defaultId) {\n    let ctx = (0, _react.useContext)(SSRContext);\n    // If we are rendering in a non-DOM environment, and there's no SSRProvider,\n    // provide a warning to hint to the developer to add one.\n    if (ctx === defaultContext && !canUseDOM) console.warn('When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.');\n    let counter = useCounter(!!defaultId);\n    let prefix = `react-aria${ctx.prefix}`;\n    return defaultId || `${prefix}-${counter}`;\n}\nfunction useModernSSRSafeId(defaultId) {\n    // @ts-ignore\n    let id = (0, _reactDefault.default).useId();\n    let [didSSR] = (0, _react.useState)(useIsSSR());\n    let prefix = didSSR || false ? 'react-aria' : `react-aria${defaultContext.prefix}`;\n    return defaultId || `${prefix}-${id}`;\n}\nconst useSSRSafeId = typeof (0, _reactDefault.default)['useId'] === 'function' ? useModernSSRSafeId : useLegacySSRSafeId;\nfunction getSnapshot() {\n    return false;\n}\nfunction getServerSnapshot() {\n    return true;\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction subscribe(onStoreChange) {\n    // noop\n    return ()=>{};\n}\nfunction useIsSSR() {\n    // In React 18, we can use useSyncExternalStore to detect if we're server rendering or hydrating.\n    if (typeof (0, _reactDefault.default)['useSyncExternalStore'] === 'function') return (0, _reactDefault.default)['useSyncExternalStore'](subscribe, getSnapshot, getServerSnapshot);\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    return (0, _react.useContext)(IsSSRContext);\n}\n\n},{\"react\":\"jEiK2\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"406eH\":[function(require,module,exports) {\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 * Calls all functions in the order they were chained with the same arguments.\n */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"chain\", ()=>chain);\nfunction chain(...callbacks) {\n    return (...args)=>{\n        for (let callback of callbacks)if (typeof callback === 'function') callback(...args);\n    };\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"eaSUW\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"getOwnerDocument\", ()=>getOwnerDocument);\nparcelHelpers.export(exports, \"getOwnerWindow\", ()=>getOwnerWindow);\nconst getOwnerDocument = (el)=>{\n    return el?.ownerDocument ?? document;\n};\nconst getOwnerWindow = (el)=>{\n    if (el && 'window' in el && el.window === el) return el;\n    const doc = getOwnerDocument(el);\n    return doc.defaultView || window;\n};\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"8Pnrz\":[function(require,module,exports) {\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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\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 */ parcelHelpers.export(exports, \"mergeProps\", ()=>mergeProps);\nvar _chain = require(\"./chain\");\nvar _clsx = require(\"clsx\");\nvar _clsxDefault = parcelHelpers.interopDefault(_clsx);\nvar _useId = require(\"./useId\");\nfunction mergeProps(...args) {\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 = {\n        ...args[0]\n    };\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            // Chain events\n            if (typeof a === 'function' && typeof b === 'function' && // This is a lot faster than a regex.\n            key[0] === 'o' && key[1] === 'n' && key.charCodeAt(2) >= /* 'A' */ 65 && key.charCodeAt(2) <= /* 'Z' */ 90) result[key] = (0, _chain.chain)(a, b);\n            else if ((key === 'className' || key === 'UNSAFE_className') && typeof a === 'string' && typeof b === 'string') result[key] = (0, _clsxDefault.default)(a, b);\n            else if (key === 'id' && a && b) result.id = (0, _useId.mergeIds)(a, b);\n            else result[key] = b !== undefined ? b : a;\n        }\n    }\n    return result;\n}\n\n},{\"./chain\":\"406eH\",\"clsx\":\"8TJoV\",\"./useId\":\"2KSt6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"8TJoV\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"clsx\", ()=>clsx);\nfunction r(e) {\n    var t, f, n = \"\";\n    if (\"string\" == typeof e || \"number\" == typeof e) n += e;\n    else if (\"object\" == typeof e) {\n        if (Array.isArray(e)) for(t = 0; t < e.length; t++)e[t] && (f = r(e[t])) && (n && (n += \" \"), n += f);\n        else for(t in e)e[t] && (n && (n += \" \"), n += t);\n    }\n    return n;\n}\nfunction clsx() {\n    for(var e, t, f = 0, n = \"\"; f < arguments.length;)(e = arguments[f++]) && (t = r(e)) && (n && (n += \" \"), n += t);\n    return n;\n}\nexports.default = clsx;\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"dVSJc\":[function(require,module,exports) {\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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\n/**\n * Merges multiple refs into one. Works with either callback or object refs.\n */ parcelHelpers.export(exports, \"mergeRefs\", ()=>mergeRefs);\nfunction mergeRefs(...refs) {\n    if (refs.length === 1 && refs[0]) return refs[0];\n    return (value)=>{\n        for (let ref of refs){\n            if (typeof ref === 'function') ref(value);\n            else if (ref != null) ref.current = value;\n        }\n    };\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"cpDYK\":[function(require,module,exports) {\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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\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 */ parcelHelpers.export(exports, \"filterDOMProps\", ()=>filterDOMProps);\nconst DOMPropNames = new Set([\n    'id'\n]);\nconst labelablePropNames = new Set([\n    'aria-label',\n    'aria-labelledby',\n    'aria-describedby',\n    'aria-details'\n]);\n// See LinkDOMProps in dom.d.ts.\nconst linkPropNames = new Set([\n    'href',\n    'hrefLang',\n    'target',\n    'rel',\n    'download',\n    'ping',\n    'referrerPolicy'\n]);\nconst propRe = /^(data-.*)$/;\nfunction filterDOMProps(props, opts = {}) {\n    let { labelable, isLink, propNames } = opts;\n    let filteredProps = {};\n    for(const prop in props)if (Object.prototype.hasOwnProperty.call(props, prop) && (DOMPropNames.has(prop) || labelable && labelablePropNames.has(prop) || isLink && linkPropNames.has(prop) || propNames?.has(prop) || propRe.test(prop))) filteredProps[prop] = props[prop];\n    return filteredProps;\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"jvnlb\":[function(require,module,exports) {\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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"focusWithoutScrolling\", ()=>focusWithoutScrolling);\nfunction focusWithoutScrolling(element) {\n    if (supportsPreventScroll()) element.focus({\n        preventScroll: true\n    });\n    else {\n        let scrollableElements = getScrollableElements(element);\n        element.focus();\n        restoreScrollPosition(scrollableElements);\n    }\n}\nlet supportsPreventScrollCached = null;\nfunction supportsPreventScroll() {\n    if (supportsPreventScrollCached == null) {\n        supportsPreventScrollCached = false;\n        try {\n            let focusElem = document.createElement('div');\n            focusElem.focus({\n                get preventScroll () {\n                    supportsPreventScrollCached = true;\n                    return true;\n                }\n            });\n        } catch  {\n        // Ignore\n        }\n    }\n    return supportsPreventScrollCached;\n}\nfunction getScrollableElements(element) {\n    let parent = element.parentNode;\n    let scrollableElements = [];\n    let rootScrollingElement = document.scrollingElement || document.documentElement;\n    while(parent instanceof HTMLElement && parent !== rootScrollingElement){\n        if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) scrollableElements.push({\n            element: parent,\n            scrollTop: parent.scrollTop,\n            scrollLeft: parent.scrollLeft\n        });\n        parent = parent.parentNode;\n    }\n    if (rootScrollingElement instanceof HTMLElement) scrollableElements.push({\n        element: rootScrollingElement,\n        scrollTop: rootScrollingElement.scrollTop,\n        scrollLeft: rootScrollingElement.scrollLeft\n    });\n    return scrollableElements;\n}\nfunction restoreScrollPosition(scrollableElements) {\n    for (let { element, scrollTop, scrollLeft } of scrollableElements){\n        element.scrollTop = scrollTop;\n        element.scrollLeft = scrollLeft;\n    }\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"6Wt2T\":[function(require,module,exports) {\n/*\n * Copyright 2023 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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\n/**\n * A RouterProvider accepts a `navigate` function from a framework or client side router,\n * and provides it to all nested React Aria links to enable client side navigation.\n */ parcelHelpers.export(exports, \"RouterProvider\", ()=>RouterProvider);\nparcelHelpers.export(exports, \"useRouter\", ()=>useRouter);\nparcelHelpers.export(exports, \"shouldClientNavigate\", ()=>shouldClientNavigate);\nparcelHelpers.export(exports, \"openLink\", ()=>openLink);\nparcelHelpers.export(exports, \"useSyntheticLinkProps\", ()=>useSyntheticLinkProps);\n/** @deprecated - For backward compatibility. */ parcelHelpers.export(exports, \"getSyntheticLinkProps\", ()=>getSyntheticLinkProps);\nparcelHelpers.export(exports, \"useLinkProps\", ()=>useLinkProps);\nvar _index = require(\"./index\");\nvar _platform = require(\"./platform\");\nvar _react = require(\"react\");\nvar _reactDefault = parcelHelpers.interopDefault(_react);\nconst RouterContext = /*#__PURE__*/ (0, _react.createContext)({\n    isNative: true,\n    open: openSyntheticLink,\n    useHref: (href)=>href\n});\nfunction RouterProvider(props) {\n    let { children, navigate, useHref } = props;\n    let ctx = (0, _react.useMemo)(()=>({\n            isNative: false,\n            open: (target, modifiers, href, routerOptions)=>{\n                getSyntheticLink(target, (link)=>{\n                    if (shouldClientNavigate(link, modifiers)) navigate(href, routerOptions);\n                    else openLink(link, modifiers);\n                });\n            },\n            useHref: useHref || ((href)=>href)\n        }), [\n        navigate,\n        useHref\n    ]);\n    return /*#__PURE__*/ (0, _reactDefault.default).createElement(RouterContext.Provider, {\n        value: ctx\n    }, children);\n}\nfunction useRouter() {\n    return (0, _react.useContext)(RouterContext);\n}\nfunction shouldClientNavigate(link, modifiers) {\n    // Use getAttribute here instead of link.target. Firefox will default link.target to \"_parent\" when inside an iframe.\n    let target = link.getAttribute('target');\n    return (!target || target === '_self') && link.origin === location.origin && !link.hasAttribute('download') && !modifiers.metaKey && // open in new tab (mac)\n    !modifiers.ctrlKey && // open in new tab (windows)\n    !modifiers.altKey && // download\n    !modifiers.shiftKey;\n}\nfunction openLink(target, modifiers, setOpening = true) {\n    let { metaKey, ctrlKey, altKey, shiftKey } = modifiers;\n    // Firefox does not recognize keyboard events as a user action by default, and the popup blocker\n    // will prevent links with target=\"_blank\" from opening. However, it does allow the event if the\n    // Command/Control key is held, which opens the link in a background tab. This seems like the best we can do.\n    // See https://bugzilla.mozilla.org/show_bug.cgi?id=257870 and https://bugzilla.mozilla.org/show_bug.cgi?id=746640.\n    if ((0, _platform.isFirefox)() && window.event?.type?.startsWith('key') && target.target === '_blank') {\n        if ((0, _index.isMac)()) metaKey = true;\n        else ctrlKey = true;\n    }\n    // WebKit does not support firing click events with modifier keys, but does support keyboard events.\n    // https://github.com/WebKit/WebKit/blob/c03d0ac6e6db178f90923a0a63080b5ca210d25f/Source/WebCore/html/HTMLAnchorElement.cpp#L184\n    let event = (0, _index.isWebKit)() && (0, _index.isMac)() && !(0, _platform.isIPad)() && true ? new KeyboardEvent('keydown', {\n        keyIdentifier: 'Enter',\n        metaKey,\n        ctrlKey,\n        altKey,\n        shiftKey\n    }) : new MouseEvent('click', {\n        metaKey,\n        ctrlKey,\n        altKey,\n        shiftKey,\n        bubbles: true,\n        cancelable: true\n    });\n    openLink.isOpening = setOpening;\n    (0, _index.focusWithoutScrolling)(target);\n    target.dispatchEvent(event);\n    openLink.isOpening = false;\n}\n// https://github.com/parcel-bundler/parcel/issues/8724\nopenLink.isOpening = false;\nfunction getSyntheticLink(target, open) {\n    if (target instanceof HTMLAnchorElement) open(target);\n    else if (target.hasAttribute('data-href')) {\n        let link = document.createElement('a');\n        link.href = target.getAttribute('data-href');\n        if (target.hasAttribute('data-target')) link.target = target.getAttribute('data-target');\n        if (target.hasAttribute('data-rel')) link.rel = target.getAttribute('data-rel');\n        if (target.hasAttribute('data-download')) link.download = target.getAttribute('data-download');\n        if (target.hasAttribute('data-ping')) link.ping = target.getAttribute('data-ping');\n        if (target.hasAttribute('data-referrer-policy')) link.referrerPolicy = target.getAttribute('data-referrer-policy');\n        target.appendChild(link);\n        open(link);\n        target.removeChild(link);\n    }\n}\nfunction openSyntheticLink(target, modifiers) {\n    getSyntheticLink(target, (link)=>openLink(link, modifiers));\n}\nfunction useSyntheticLinkProps(props) {\n    let router = useRouter();\n    const href = router.useHref(props.href ?? '');\n    return {\n        'data-href': props.href ? href : undefined,\n        'data-target': props.target,\n        'data-rel': props.rel,\n        'data-download': props.download,\n        'data-ping': props.ping,\n        'data-referrer-policy': props.referrerPolicy\n    };\n}\nfunction getSyntheticLinkProps(props) {\n    return {\n        'data-href': props.href,\n        'data-target': props.target,\n        'data-rel': props.rel,\n        'data-download': props.download,\n        'data-ping': props.ping,\n        'data-referrer-policy': props.referrerPolicy\n    };\n}\nfunction useLinkProps(props) {\n    let router = useRouter();\n    const href = router.useHref(props?.href ?? '');\n    return {\n        href: props?.href ? href : undefined,\n        target: props?.target,\n        rel: props?.rel,\n        download: props?.download,\n        ping: props?.ping,\n        referrerPolicy: props?.referrerPolicy\n    };\n}\n\n},{\"./index\":\"e9Yvo\",\"./platform\":\"4YVI3\",\"react\":\"jEiK2\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"4YVI3\":[function(require,module,exports) {\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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"isMac\", ()=>isMac);\nparcelHelpers.export(exports, \"isIPhone\", ()=>isIPhone);\nparcelHelpers.export(exports, \"isIPad\", ()=>isIPad);\nparcelHelpers.export(exports, \"isIOS\", ()=>isIOS);\nparcelHelpers.export(exports, \"isAppleDevice\", ()=>isAppleDevice);\nparcelHelpers.export(exports, \"isWebKit\", ()=>isWebKit);\nparcelHelpers.export(exports, \"isChrome\", ()=>isChrome);\nparcelHelpers.export(exports, \"isAndroid\", ()=>isAndroid);\nparcelHelpers.export(exports, \"isFirefox\", ()=>isFirefox);\nfunction testUserAgent(re) {\n    if (typeof window === 'undefined' || window.navigator == null) return false;\n    return window.navigator['userAgentData']?.brands.some((brand)=>re.test(brand.brand)) || re.test(window.navigator.userAgent);\n}\nfunction testPlatform(re) {\n    return typeof window !== 'undefined' && window.navigator != null ? re.test(window.navigator['userAgentData']?.platform || window.navigator.platform) : false;\n}\nfunction cached(fn) {\n    let res = null;\n    return ()=>{\n        if (res == null) res = fn();\n        return res;\n    };\n}\nconst isMac = cached(function() {\n    return testPlatform(/^Mac/i);\n});\nconst isIPhone = cached(function() {\n    return testPlatform(/^iPhone/i);\n});\nconst isIPad = cached(function() {\n    return testPlatform(/^iPad/i) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n    isMac() && navigator.maxTouchPoints > 1;\n});\nconst isIOS = cached(function() {\n    return isIPhone() || isIPad();\n});\nconst isAppleDevice = cached(function() {\n    return isMac() || isIOS();\n});\nconst isWebKit = cached(function() {\n    return testUserAgent(/AppleWebKit/i) && !isChrome();\n});\nconst isChrome = cached(function() {\n    return testUserAgent(/Chrome/i);\n});\nconst isAndroid = cached(function() {\n    return testUserAgent(/Android/i);\n});\nconst isFirefox = cached(function() {\n    return testUserAgent(/Firefox/i);\n});\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"bFRm8\":[function(require,module,exports) {\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 */ // 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.\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"runAfterTransition\", ()=>runAfterTransition);\nlet transitionsByElement = new Map();\n// A list of callbacks to call once there are no transitioning elements.\nlet transitionCallbacks = new Set();\nfunction setupGlobalEvents() {\n    if (typeof window === 'undefined') return;\n    function isTransitionEvent(event) {\n        return 'propertyName' in event;\n    }\n    let onTransitionStart = (e)=>{\n        if (!isTransitionEvent(e) || !e.target) return;\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            // 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                once: true\n            });\n        }\n        transitions.add(e.propertyName);\n    };\n    let onTransitionEnd = (e)=>{\n        if (!isTransitionEvent(e) || !e.target) return;\n        // Remove property from list of transitioning properties.\n        let properties = transitionsByElement.get(e.target);\n        if (!properties) return;\n        properties.delete(e.propertyName);\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        // If no transitioning elements, call all of the queued callbacks.\n        if (transitionsByElement.size === 0) {\n            for (let cb of transitionCallbacks)cb();\n            transitionCallbacks.clear();\n        }\n    };\n    document.body.addEventListener('transitionrun', onTransitionStart);\n    document.body.addEventListener('transitionend', onTransitionEnd);\n}\nif (typeof document !== 'undefined') {\n    if (document.readyState !== 'loading') setupGlobalEvents();\n    else document.addEventListener('DOMContentLoaded', setupGlobalEvents);\n}\nfunction runAfterTransition(fn) {\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) fn();\n        else transitionCallbacks.add(fn);\n    });\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"50Zjw\":[function(require,module,exports) {\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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"useGlobalListeners\", ()=>useGlobalListeners);\nvar _react = require(\"react\");\nfunction useGlobalListeners() {\n    let globalListeners = (0, _react.useRef)(new Map());\n    let addGlobalListener = (0, _react.useCallback)((eventTarget, type, listener, options)=>{\n        // Make sure we remove the listener after it is called with the `once` option.\n        let fn = options?.once ? (...args)=>{\n            globalListeners.current.delete(listener);\n            listener(...args);\n        } : listener;\n        globalListeners.current.set(listener, {\n            type,\n            eventTarget,\n            fn,\n            options\n        });\n        eventTarget.addEventListener(type, listener, options);\n    }, []);\n    let removeGlobalListener = (0, _react.useCallback)((eventTarget, type, listener, options)=>{\n        let fn = globalListeners.current.get(listener)?.fn || listener;\n        eventTarget.removeEventListener(type, fn, options);\n        globalListeners.current.delete(listener);\n    }, []);\n    let removeAllGlobalListeners = (0, _react.useCallback)(()=>{\n        globalListeners.current.forEach((value, key)=>{\n            removeGlobalListener(value.eventTarget, value.type, key, value.options);\n        });\n    }, [\n        removeGlobalListener\n    ]);\n    (0, _react.useEffect)(()=>{\n        return removeAllGlobalListeners;\n    }, [\n        removeAllGlobalListeners\n    ]);\n    return {\n        addGlobalListener,\n        removeGlobalListener,\n        removeAllGlobalListeners\n    };\n}\n\n},{\"react\":\"jEiK2\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"fGs7C\":[function(require,module,exports) {\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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\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 */ parcelHelpers.export(exports, \"useLabels\", ()=>useLabels);\nvar _useId = require(\"./useId\");\nfunction useLabels(props, defaultLabel) {\n    let { id, 'aria-label': label, 'aria-labelledby': labelledBy } = props;\n    // If there is both an aria-label and aria-labelledby,\n    // combine them by pointing to the element itself.\n    id = (0, _useId.useId)(id);\n    if (labelledBy && label) {\n        let ids = new Set([\n            id,\n            ...labelledBy.trim().split(/\\s+/)\n        ]);\n        labelledBy = [\n            ...ids\n        ].join(' ');\n    } else if (labelledBy) labelledBy = labelledBy.trim().split(/\\s+/).join(' ');\n    // If no labels are provided, use the default\n    if (!label && !labelledBy && defaultLabel) label = defaultLabel;\n    return {\n        id,\n        'aria-label': label,\n        'aria-labelledby': labelledBy\n    };\n}\n\n},{\"./useId\":\"2KSt6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"i6T8d\":[function(require,module,exports) {\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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\n/**\n * Offers an object ref for a given callback ref or an object ref. Especially\n * helfpul when passing forwarded refs (created using `React.forwardRef`) to\n * React Aria hooks.\n *\n * @param forwardedRef The original ref intended to be used.\n * @returns An object ref that updates the given ref.\n * @see https://reactjs.org/docs/forwarding-refs.html\n */ parcelHelpers.export(exports, \"useObjectRef\", ()=>useObjectRef);\nvar _react = require(\"react\");\nfunction useObjectRef(forwardedRef) {\n    const objRef = (0, _react.useRef)(null);\n    return (0, _react.useMemo)(()=>({\n            get current () {\n                return objRef.current;\n            },\n            set current (value){\n                objRef.current = value;\n                if (typeof forwardedRef === 'function') forwardedRef(value);\n                else if (forwardedRef) forwardedRef.current = value;\n            }\n        }), [\n        forwardedRef\n    ]);\n}\n\n},{\"react\":\"jEiK2\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"buEdH\":[function(require,module,exports) {\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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\n// Like useEffect, but only called for updates after the initial render.\nparcelHelpers.export(exports, \"useUpdateEffect\", ()=>useUpdateEffect);\nvar _react = require(\"react\");\nfunction useUpdateEffect(effect, dependencies) {\n    const isInitialMount = (0, _react.useRef)(true);\n    const lastDeps = (0, _react.useRef)(null);\n    (0, _react.useEffect)(()=>{\n        isInitialMount.current = true;\n        return ()=>{\n            isInitialMount.current = false;\n        };\n    }, []);\n    (0, _react.useEffect)(()=>{\n        if (isInitialMount.current) isInitialMount.current = false;\n        else if (!lastDeps.current || dependencies.some((dep, i)=>!Object.is(dep, lastDeps[i]))) effect();\n        lastDeps.current = dependencies;\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, dependencies);\n}\n\n},{\"react\":\"jEiK2\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"3EOzC\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"useResizeObserver\", ()=>useResizeObserver);\nvar _react = require(\"react\");\nfunction hasResizeObserver() {\n    return typeof window.ResizeObserver !== 'undefined';\n}\nfunction useResizeObserver(options) {\n    const { ref, box, onResize } = options;\n    (0, _react.useEffect)(()=>{\n        let element = ref?.current;\n        if (!element) return;\n        if (!hasResizeObserver()) {\n            window.addEventListener('resize', onResize, false);\n            return ()=>{\n                window.removeEventListener('resize', onResize, false);\n            };\n        } else {\n            const resizeObserverInstance = new window.ResizeObserver((entries)=>{\n                if (!entries.length) return;\n                onResize();\n            });\n            resizeObserverInstance.observe(element, {\n                box\n            });\n            return ()=>{\n                if (element) resizeObserverInstance.unobserve(element);\n            };\n        }\n    }, [\n        onResize,\n        ref,\n        box\n    ]);\n}\n\n},{\"react\":\"jEiK2\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"6Brid\":[function(require,module,exports) {\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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\n// Syncs ref from context with ref passed to hook\nparcelHelpers.export(exports, \"useSyncRef\", ()=>useSyncRef);\nvar _ = require(\"./\");\nfunction useSyncRef(context, ref) {\n    (0, _.useLayoutEffect)(()=>{\n        if (context && context.ref && ref) {\n            context.ref.current = ref.current;\n            return ()=>{\n                if (context.ref) context.ref.current = null;\n            };\n        }\n    });\n}\n\n},{\"./\":\"e9Yvo\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"jYjRs\":[function(require,module,exports) {\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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"getScrollParent\", ()=>getScrollParent);\nvar _isScrollable = require(\"./isScrollable\");\nfunction getScrollParent(node, checkForOverflow) {\n    let scrollableNode = node;\n    if ((0, _isScrollable.isScrollable)(scrollableNode, checkForOverflow)) scrollableNode = scrollableNode.parentElement;\n    while(scrollableNode && !(0, _isScrollable.isScrollable)(scrollableNode, checkForOverflow))scrollableNode = scrollableNode.parentElement;\n    return scrollableNode || document.scrollingElement || document.documentElement;\n}\n\n},{\"./isScrollable\":\"8vlnF\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"8vlnF\":[function(require,module,exports) {\n/*\n * Copyright 2024 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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"isScrollable\", ()=>isScrollable);\nfunction isScrollable(node, checkForOverflow) {\n    let style = window.getComputedStyle(node);\n    let isScrollable = /(auto|scroll)/.test(style.overflow + style.overflowX + style.overflowY);\n    if (isScrollable && checkForOverflow) isScrollable = node.scrollHeight !== node.clientHeight || node.scrollWidth !== node.clientWidth;\n    return isScrollable;\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"aO1En\":[function(require,module,exports) {\n/*\n * Copyright 2024 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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"getScrollParents\", ()=>getScrollParents);\nvar _isScrollable = require(\"./isScrollable\");\nfunction getScrollParents(node, checkForOverflow) {\n    const scrollParents = [];\n    while(node && node !== document.documentElement){\n        if ((0, _isScrollable.isScrollable)(node, checkForOverflow)) scrollParents.push(node);\n        node = node.parentElement;\n    }\n    return scrollParents;\n}\n\n},{\"./isScrollable\":\"8vlnF\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"aQosy\":[function(require,module,exports) {\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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"useViewportSize\", ()=>useViewportSize);\nvar _react = require(\"react\");\nvar _ssr = require(\"@react-aria/ssr\");\n// @ts-ignore\nlet visualViewport = typeof document !== 'undefined' && window.visualViewport;\nfunction useViewportSize() {\n    let isSSR = (0, _ssr.useIsSSR)();\n    let [size, setSize] = (0, _react.useState)(()=>isSSR ? {\n            width: 0,\n            height: 0\n        } : getViewportSize());\n    (0, _react.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) return size;\n                return newSize;\n            });\n        };\n        if (!visualViewport) window.addEventListener('resize', onResize);\n        else visualViewport.addEventListener('resize', onResize);\n        return ()=>{\n            if (!visualViewport) window.removeEventListener('resize', onResize);\n            else visualViewport.removeEventListener('resize', onResize);\n        };\n    }, []);\n    return size;\n}\nfunction getViewportSize() {\n    return {\n        width: visualViewport && visualViewport?.width || window.innerWidth,\n        height: visualViewport && visualViewport?.height || window.innerHeight\n    };\n}\n\n},{\"react\":\"jEiK2\",\"@react-aria/ssr\":\"jNw7O\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"fOWI1\":[function(require,module,exports) {\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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"useDescription\", ()=>useDescription);\nvar _useLayoutEffect = require(\"./useLayoutEffect\");\nvar _react = require(\"react\");\nlet descriptionId = 0;\nconst descriptionNodes = new Map();\nfunction useDescription(description) {\n    let [id, setId] = (0, _react.useState)();\n    (0, _useLayoutEffect.useLayoutEffect)(()=>{\n        if (!description) return;\n        let desc = descriptionNodes.get(description);\n        if (!desc) {\n            let id = `react-aria-description-${descriptionId++}`;\n            setId(id);\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 = {\n                refCount: 0,\n                element: node\n            };\n            descriptionNodes.set(description, desc);\n        } else setId(desc.element.id);\n        desc.refCount++;\n        return ()=>{\n            if (desc && --desc.refCount === 0) {\n                desc.element.remove();\n                descriptionNodes.delete(description);\n            }\n        };\n    }, [\n        description\n    ]);\n    return {\n        'aria-describedby': description ? id : undefined\n    };\n}\n\n},{\"./useLayoutEffect\":\"gdGyj\",\"react\":\"jEiK2\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"cSJ1y\":[function(require,module,exports) {\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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"useEvent\", ()=>useEvent);\nvar _react = require(\"react\");\nvar _useEffectEvent = require(\"./useEffectEvent\");\nfunction useEvent(ref, event, handler, options) {\n    let handleEvent = (0, _useEffectEvent.useEffectEvent)(handler);\n    let isDisabled = handler == null;\n    (0, _react.useEffect)(()=>{\n        if (isDisabled || !ref.current) return;\n        let element = ref.current;\n        element.addEventListener(event, handleEvent, options);\n        return ()=>{\n            element.removeEventListener(event, handleEvent, options);\n        };\n    }, [\n        ref,\n        event,\n        options,\n        isDisabled,\n        handleEvent\n    ]);\n}\n\n},{\"react\":\"jEiK2\",\"./useEffectEvent\":\"836OP\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"836OP\":[function(require,module,exports) {\n/*\n * Copyright 2023 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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"useEffectEvent\", ()=>useEffectEvent);\nvar _react = require(\"react\");\nvar _useLayoutEffect = require(\"./useLayoutEffect\");\nfunction useEffectEvent(fn) {\n    const ref = (0, _react.useRef)(null);\n    (0, _useLayoutEffect.useLayoutEffect)(()=>{\n        ref.current = fn;\n    }, [\n        fn\n    ]);\n    // @ts-ignore\n    return (0, _react.useCallback)((...args)=>{\n        const f = ref.current;\n        return f?.(...args);\n    }, []);\n}\n\n},{\"react\":\"jEiK2\",\"./useLayoutEffect\":\"gdGyj\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"aLvg5\":[function(require,module,exports) {\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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\n// This hook works like `useState`, but when setting the value, you pass a generator function\n// that can yield multiple values. Each yielded value updates the state and waits for the next\n// layout effect, then continues the generator. This allows sequential updates to state to be\n// written linearly.\nparcelHelpers.export(exports, \"useValueEffect\", ()=>useValueEffect);\nvar _react = require(\"react\");\nvar _ = require(\"./\");\nfunction useValueEffect(defaultValue) {\n    let [value, setValue] = (0, _react.useState)(defaultValue);\n    let effect = (0, _react.useRef)(null);\n    // Store the function in a ref so we can always access the current version\n    // which has the proper `value` in scope.\n    let nextRef = (0, _.useEffectEvent)(()=>{\n        if (!effect.current) return;\n        // Run the generator to the next yield.\n        let newValue = effect.current.next();\n        // If the generator is done, reset the effect.\n        if (newValue.done) {\n            effect.current = null;\n            return;\n        }\n        // If the value is the same as the current value,\n        // then continue to the next yield. Otherwise,\n        // set the value in state and wait for the next layout effect.\n        if (value === newValue.value) nextRef();\n        else setValue(newValue.value);\n    });\n    (0, _.useLayoutEffect)(()=>{\n        // If there is an effect currently running, continue to the next yield.\n        if (effect.current) nextRef();\n    });\n    let queue = (0, _.useEffectEvent)((fn)=>{\n        effect.current = fn(value);\n        nextRef();\n    });\n    return [\n        value,\n        queue\n    ];\n}\n\n},{\"react\":\"jEiK2\",\"./\":\"e9Yvo\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"eT4Hl\":[function(require,module,exports) {\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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\n/**\n * Scrolls `scrollView` so that `element` is visible.\n * Similar to `element.scrollIntoView({block: 'nearest'})` (not supported in Edge),\n * but doesn't affect parents above `scrollView`.\n */ parcelHelpers.export(exports, \"scrollIntoView\", ()=>scrollIntoView);\n/**\n * Scrolls the `targetElement` so it is visible in the viewport. Accepts an optional `opts.containingElement`\n * that will be centered in the viewport prior to scrolling the targetElement into view. If scrolling is prevented on\n * the body (e.g. targetElement is in a popover), this will only scroll the scroll parents of the targetElement up to but not including the body itself.\n */ parcelHelpers.export(exports, \"scrollIntoViewport\", ()=>scrollIntoViewport);\nvar _getScrollParents = require(\"./getScrollParents\");\nfunction scrollIntoView(scrollView, element) {\n    let offsetX = relativeOffset(scrollView, element, 'left');\n    let offsetY = relativeOffset(scrollView, element, 'top');\n    let width = element.offsetWidth;\n    let height = element.offsetHeight;\n    let x = scrollView.scrollLeft;\n    let y = scrollView.scrollTop;\n    // Account for top/left border offsetting the scroll top/Left\n    let { borderTopWidth, borderLeftWidth } = getComputedStyle(scrollView);\n    let borderAdjustedX = scrollView.scrollLeft + parseInt(borderLeftWidth, 10);\n    let borderAdjustedY = scrollView.scrollTop + parseInt(borderTopWidth, 10);\n    // Ignore end/bottom border via clientHeight/Width instead of offsetHeight/Width\n    let maxX = borderAdjustedX + scrollView.clientWidth;\n    let maxY = borderAdjustedY + scrollView.clientHeight;\n    if (offsetX <= x) x = offsetX - parseInt(borderLeftWidth, 10);\n    else if (offsetX + width > maxX) x += offsetX + width - maxX;\n    if (offsetY <= borderAdjustedY) y = offsetY - parseInt(borderTopWidth, 10);\n    else if (offsetY + height > maxY) y += offsetY + height - maxY;\n    scrollView.scrollLeft = x;\n    scrollView.scrollTop = y;\n}\n/**\n * Computes the offset left or top from child to ancestor by accumulating\n * offsetLeft or offsetTop through intervening offsetParents.\n */ function relativeOffset(ancestor, child, axis) {\n    const prop = axis === 'left' ? 'offsetLeft' : 'offsetTop';\n    let sum = 0;\n    while(child.offsetParent){\n        sum += child[prop];\n        if (child.offsetParent === ancestor) break;\n        else if (child.offsetParent.contains(ancestor)) {\n            // If the ancestor is not `position:relative`, then we stop at\n            // _its_ offset parent, and we subtract off _its_ offset, so that\n            // we end up with the proper offset from child to ancestor.\n            sum -= ancestor[prop];\n            break;\n        }\n        child = child.offsetParent;\n    }\n    return sum;\n}\nfunction scrollIntoViewport(targetElement, opts) {\n    if (document.contains(targetElement)) {\n        let root = document.scrollingElement || document.documentElement;\n        let isScrollPrevented = window.getComputedStyle(root).overflow === 'hidden';\n        // If scrolling is not currently prevented then we aren’t in a overlay nor is a overlay open, just use element.scrollIntoView to bring the element into view\n        if (!isScrollPrevented) {\n            let { left: originalLeft, top: originalTop } = targetElement.getBoundingClientRect();\n            // use scrollIntoView({block: 'nearest'}) instead of .focus to check if the element is fully in view or not since .focus()\n            // won't cause a scroll if the element is already focused and doesn't behave consistently when an element is partially out of view horizontally vs vertically\n            targetElement?.scrollIntoView?.({\n                block: 'nearest'\n            });\n            let { left: newLeft, top: newTop } = targetElement.getBoundingClientRect();\n            // Account for sub pixel differences from rounding\n            if (Math.abs(originalLeft - newLeft) > 1 || Math.abs(originalTop - newTop) > 1) {\n                opts?.containingElement?.scrollIntoView?.({\n                    block: 'center',\n                    inline: 'center'\n                });\n                targetElement.scrollIntoView?.({\n                    block: 'nearest'\n                });\n            }\n        } else {\n            let scrollParents = (0, _getScrollParents.getScrollParents)(targetElement);\n            // If scrolling is prevented, we don't want to scroll the body since it might move the overlay partially offscreen and the user can't scroll it back into view.\n            for (let scrollParent of scrollParents)scrollIntoView(scrollParent, targetElement);\n        }\n    }\n}\n\n},{\"./getScrollParents\":\"aO1En\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"8dKgy\":[function(require,module,exports) {\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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"useControlledState\", ()=>(0, _useControlledState.useControlledState));\nparcelHelpers.export(exports, \"clamp\", ()=>(0, _number.clamp));\nparcelHelpers.export(exports, \"snapValueToStep\", ()=>(0, _number.snapValueToStep));\nparcelHelpers.export(exports, \"toFixedNumber\", ()=>(0, _number.toFixedNumber));\nvar _useControlledState = require(\"./useControlledState\");\nvar _number = require(\"./number\");\n\n},{\"./useControlledState\":\"iJEJj\",\"./number\":\"fWr5y\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"iJEJj\":[function(require,module,exports) {\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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"useControlledState\", ()=>useControlledState);\nvar _react = require(\"react\");\nfunction useControlledState(value, defaultValue, onChange) {\n    let [stateValue, setStateValue] = (0, _react.useState)(value || defaultValue);\n    let isControlledRef = (0, _react.useRef)(value !== undefined);\n    let isControlled = value !== undefined;\n    (0, _react.useEffect)(()=>{\n        let wasControlled = isControlledRef.current;\n        if (wasControlled !== isControlled) console.warn(`WARN: A component changed from ${wasControlled ? 'controlled' : 'uncontrolled'} to ${isControlled ? 'controlled' : 'uncontrolled'}.`);\n        isControlledRef.current = isControlled;\n    }, [\n        isControlled\n    ]);\n    let currentValue = isControlled ? value : stateValue;\n    let setValue = (0, _react.useCallback)((value, ...args)=>{\n        let onChangeCaller = (value, ...onChangeArgs)=>{\n            if (onChange) {\n                if (!Object.is(currentValue, value)) onChange(value, ...onChangeArgs);\n            }\n            if (!isControlled) // If uncontrolled, mutate the currentValue local variable so that\n            // calling setState multiple times with the same value only emits onChange once.\n            // We do not use a ref for this because we specifically _do_ want the value to\n            // reset every render, and assigning to a ref in render breaks aborted suspended renders.\n            // eslint-disable-next-line react-hooks/exhaustive-deps\n            currentValue = value;\n        };\n        if (typeof value === 'function') {\n            console.warn('We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320');\n            // this supports functional updates https://reactjs.org/docs/hooks-reference.html#functional-updates\n            // when someone using useControlledState calls setControlledState(myFunc)\n            // this will call our useState setState with a function as well which invokes myFunc and calls onChange with the value from myFunc\n            // if we're in an uncontrolled state, then we also return the value of myFunc which to setState looks as though it was just called with myFunc from the beginning\n            // otherwise we just return the controlled value, which won't cause a rerender because React knows to bail out when the value is the same\n            let updateFunction = (oldValue, ...functionArgs)=>{\n                let interceptedValue = value(isControlled ? currentValue : oldValue, ...functionArgs);\n                onChangeCaller(interceptedValue, ...args);\n                if (!isControlled) return interceptedValue;\n                return oldValue;\n            };\n            setStateValue(updateFunction);\n        } else {\n            if (!isControlled) setStateValue(value);\n            onChangeCaller(value, ...args);\n        }\n    }, [\n        isControlled,\n        currentValue,\n        onChange\n    ]);\n    return [\n        currentValue,\n        setValue\n    ];\n}\n\n},{\"react\":\"jEiK2\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"fWr5y\":[function(require,module,exports) {\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 * Takes a value and forces it to the closest min/max if it's outside. Also forces it to the closest valid step.\n */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"clamp\", ()=>clamp);\nparcelHelpers.export(exports, \"roundToStepPrecision\", ()=>roundToStepPrecision);\nparcelHelpers.export(exports, \"snapValueToStep\", ()=>snapValueToStep);\n/* Takes a value and rounds off to the number of digits. */ parcelHelpers.export(exports, \"toFixedNumber\", ()=>toFixedNumber);\nfunction clamp(value, min = -Infinity, max = Infinity) {\n    let newValue = Math.min(Math.max(value, min), max);\n    return newValue;\n}\nfunction roundToStepPrecision(value, step) {\n    let roundedValue = value;\n    let stepString = step.toString();\n    let pointIndex = stepString.indexOf('.');\n    let precision = pointIndex >= 0 ? stepString.length - pointIndex : 0;\n    if (precision > 0) {\n        let pow = Math.pow(10, precision);\n        roundedValue = Math.round(roundedValue * pow) / pow;\n    }\n    return roundedValue;\n}\nfunction snapValueToStep(value, min, max, step) {\n    min = Number(min);\n    max = Number(max);\n    let remainder = (value - (isNaN(min) ? 0 : min)) % step;\n    let snappedValue = roundToStepPrecision(Math.abs(remainder) * 2 >= step ? value + Math.sign(remainder) * (step - Math.abs(remainder)) : value - remainder, step);\n    if (!isNaN(min)) {\n        if (snappedValue < min) snappedValue = min;\n        else if (!isNaN(max) && snappedValue > max) snappedValue = min + Math.floor(roundToStepPrecision((max - min) / step, step)) * step;\n    } else if (!isNaN(max) && snappedValue > max) snappedValue = Math.floor(roundToStepPrecision(max / step, step)) * step;\n    // correct floating point behavior by rounding to step precision\n    snappedValue = roundToStepPrecision(snappedValue, step);\n    return snappedValue;\n}\nfunction toFixedNumber(value, digits, base = 10) {\n    const pow = Math.pow(base, digits);\n    return Math.round(value * pow) / pow;\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"4b45P\":[function(require,module,exports) {\n/*\n * Copyright 2022 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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\n// Original licensing for the following method can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/blob/3c713d513195a53788b3f8bb4b70279d68b15bcc/packages/react-interactions/events/src/dom/shared/index.js#L74-L87\n// Keyboards, Assistive Technologies, and element.click() all produce a \"virtual\"\n// click event. This is a method of inferring such clicks. Every browser except\n// IE 11 only sets a zero value of \"detail\" for click events that are \"virtual\".\n// However, IE 11 uses a zero value for all click events. For IE 11 we rely on\n// the quirk that it produces click events that are of type PointerEvent, and\n// where only the \"virtual\" click lacks a pointerType field.\nparcelHelpers.export(exports, \"isVirtualClick\", ()=>isVirtualClick);\nparcelHelpers.export(exports, \"isVirtualPointerEvent\", ()=>isVirtualPointerEvent);\nvar _platform = require(\"./platform\");\nfunction isVirtualClick(event) {\n    // JAWS/NVDA with Firefox.\n    if (event.mozInputSource === 0 && event.isTrusted) return true;\n    // Android TalkBack's detail value varies depending on the event listener providing the event so we have specific logic here instead\n    // If pointerType is defined, event is from a click listener. For events from mousedown listener, detail === 0 is a sufficient check\n    // to detect TalkBack virtual clicks.\n    if ((0, _platform.isAndroid)() && event.pointerType) return event.type === 'click' && event.buttons === 1;\n    return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n    // If the pointer size is zero, then we assume it's from a screen reader.\n    // Android TalkBack double tap will sometimes return a event with width and height of 1\n    // and pointerType === 'mouse' so we need to check for a specific combination of event attributes.\n    // Cannot use \"event.pressure === 0\" as the sole check due to Safari pointer events always returning pressure === 0\n    // instead of .5, see https://bugs.webkit.org/show_bug.cgi?id=206216. event.pointerType === 'mouse' is to distingush\n    // Talkback double tap from Windows Firefox touch screen press\n    return !(0, _platform.isAndroid)() && event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'mouse';\n}\n\n},{\"./platform\":\"4YVI3\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"fiRrP\":[function(require,module,exports) {\n/*\n * Copyright 2023 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 */ /* eslint-disable rulesdir/pure-render */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"useDeepMemo\", ()=>useDeepMemo);\nvar _react = require(\"react\");\nfunction useDeepMemo(value, isEqual) {\n    // Using a ref during render is ok here because it's only an optimization – both values are equivalent.\n    // If a render is thrown away, it'll still work the same no matter if the next render is the same or not.\n    let lastValue = (0, _react.useRef)(null);\n    if (value && lastValue.current && isEqual(value, lastValue.current)) value = lastValue.current;\n    lastValue.current = value;\n    return value;\n}\n\n},{\"react\":\"jEiK2\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"gCQZF\":[function(require,module,exports) {\n/*\n * Copyright 2023 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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"useFormReset\", ()=>useFormReset);\nvar _react = require(\"react\");\nvar _useEffectEvent = require(\"./useEffectEvent\");\nfunction useFormReset(ref, initialValue, onReset) {\n    let resetValue = (0, _react.useRef)(initialValue);\n    let handleReset = (0, _useEffectEvent.useEffectEvent)(()=>{\n        if (onReset) onReset(resetValue.current);\n    });\n    (0, _react.useEffect)(()=>{\n        let form = ref?.current?.form;\n        form?.addEventListener('reset', handleReset);\n        return ()=>{\n            form?.removeEventListener('reset', handleReset);\n        };\n    }, [\n        ref,\n        handleReset\n    ]);\n}\n\n},{\"react\":\"jEiK2\",\"./useEffectEvent\":\"836OP\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"3kpAD\":[function(require,module,exports) {\n/*\n * Copyright 2024 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 */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"useLoadMore\", ()=>useLoadMore);\nvar _react = require(\"react\");\nvar _useEvent = require(\"./useEvent\");\nvar _useLayoutEffect = require(\"./useLayoutEffect\");\nfunction useLoadMore(props, ref) {\n    let { isLoading, onLoadMore, scrollOffset = 1, items } = props;\n    // Handle scrolling, and call onLoadMore when nearing the bottom.\n    let isLoadingRef = (0, _react.useRef)(isLoading);\n    let prevProps = (0, _react.useRef)(props);\n    let onScroll = (0, _react.useCallback)(()=>{\n        if (ref.current && !isLoadingRef.current && onLoadMore) {\n            let shouldLoadMore = ref.current.scrollHeight - ref.current.scrollTop - ref.current.clientHeight < ref.current.clientHeight * scrollOffset;\n            if (shouldLoadMore) {\n                isLoadingRef.current = true;\n                onLoadMore();\n            }\n        }\n    }, [\n        onLoadMore,\n        ref,\n        scrollOffset\n    ]);\n    let lastItems = (0, _react.useRef)(items);\n    (0, _useLayoutEffect.useLayoutEffect)(()=>{\n        // Only update isLoadingRef if props object actually changed,\n        // not if a local state change occurred.\n        if (props !== prevProps.current) {\n            isLoadingRef.current = isLoading;\n            prevProps.current = props;\n        }\n        // TODO: Eventually this hook will move back into RAC during which we will accept the collection as a option to this hook.\n        // We will only load more if the collection has changed after the last load to prevent multiple onLoadMore from being called\n        // while the data from the last onLoadMore is being processed by RAC collection.\n        let shouldLoadMore = ref?.current && !isLoadingRef.current && onLoadMore && (!items || items !== lastItems.current) && ref.current.clientHeight === ref.current.scrollHeight;\n        if (shouldLoadMore) {\n            isLoadingRef.current = true;\n            onLoadMore?.();\n        }\n        lastItems.current = items;\n    }, [\n        isLoading,\n        onLoadMore,\n        props,\n        ref,\n        items\n    ]);\n    // TODO: maybe this should still just return scroll props?\n    // Test against case where the ref isn't defined when this is called\n    // Think this was a problem when trying to attach to the scrollable body of the table in OnLoadMoreTableBodyScroll\n    (0, _useEvent.useEvent)(ref, 'scroll', onScroll);\n}\n\n},{\"react\":\"jEiK2\",\"./useEvent\":\"cSJ1y\",\"./useLayoutEffect\":\"gdGyj\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}]},[], null, \"parcelRequire94c2\")\n\n//# sourceMappingURL=useButton.stories.75ff5da7.js.map\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 */\nexport {useId, mergeIds, useSlotId} from './useId';\nexport {chain} from './chain';\nexport {getOwnerDocument, getOwnerWindow} from './domHelpers';\nexport {mergeProps} from './mergeProps';\nexport {mergeRefs} from './mergeRefs';\nexport {filterDOMProps} from './filterDOMProps';\nexport {focusWithoutScrolling} from './focusWithoutScrolling';\nexport {getOffset} from './getOffset';\nexport {openLink, getSyntheticLinkProps, useSyntheticLinkProps, RouterProvider, shouldClientNavigate, useRouter, useLinkProps} from './openLink';\nexport {runAfterTransition} from './runAfterTransition';\nexport {useDrag1D} from './useDrag1D';\nexport {useGlobalListeners} from './useGlobalListeners';\nexport {useLabels} from './useLabels';\nexport {useObjectRef} from './useObjectRef';\nexport {useUpdateEffect} from './useUpdateEffect';\nexport {useLayoutEffect} from './useLayoutEffect';\nexport {useResizeObserver} from './useResizeObserver';\nexport {useSyncRef} from './useSyncRef';\nexport {getScrollParent} from './getScrollParent';\nexport {getScrollParents} from './getScrollParents';\nexport {isScrollable} from './isScrollable';\nexport {useViewportSize} from './useViewportSize';\nexport {useDescription} from './useDescription';\nexport {isMac, isIPhone, isIPad, isIOS, isAppleDevice, isWebKit, isChrome, isAndroid, isFirefox} from './platform';\nexport {useEvent} from './useEvent';\nexport {useValueEffect} from './useValueEffect';\nexport {scrollIntoView, scrollIntoViewport} from './scrollIntoView';\nexport {clamp, snapValueToStep} from '@react-stately/utils';\nexport {isVirtualClick, isVirtualPointerEvent} from './isVirtualEvent';\nexport {useEffectEvent} from './useEffectEvent';\nexport {useDeepMemo} from './useDeepMemo';\nexport {useFormReset} from './useFormReset';\nexport {useLoadMore} from './useLoadMore';\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, useState} from 'react';\nimport {useLayoutEffect} from './useLayoutEffect';\nimport {useSSRSafeId} from '@react-aria/ssr';\nimport {useValueEffect} from './';\n\n// copied from SSRProvider.tsx to reduce exports, if needed again, consider sharing\nlet canUseDOM = Boolean(\n  typeof window !== 'undefined' &&\n  window.document &&\n  window.document.createElement\n);\n\nlet idsUpdaterMap: Map<string, Array<(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 [value, setValue] = useState(defaultId);\n  let nextId = useRef(null);\n\n  let res = useSSRSafeId(value);\n\n  let updateValue = useCallback((val) => {\n    nextId.current = val;\n  }, []);\n\n  if (canUseDOM) {\n    // TS not smart enough to know that `has` means the value exists\n    if (idsUpdaterMap.has(res) && !idsUpdaterMap.get(res)!.includes(updateValue)) {\n      idsUpdaterMap.set(res, [...idsUpdaterMap.get(res)!, updateValue]);\n    } else {\n      idsUpdaterMap.set(res, [updateValue]);\n    }\n  }\n\n  useLayoutEffect(() => {\n    let r = res;\n    return () => {\n      idsUpdaterMap.delete(r);\n    };\n  }, [res]);\n\n  // This cannot cause an infinite loop because the ref is updated first.\n  // eslint-disable-next-line\n  useEffect(() => {\n    let newId = nextId.current;\n    if (newId) {\n      nextId.current = null;\n      setValue(newId);\n    }\n  });\n\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 setIdsA = idsUpdaterMap.get(idA);\n  if (setIdsA) {\n    setIdsA.forEach(fn => fn(idB));\n    return idB;\n  }\n\n  let setIdsB = idsUpdaterMap.get(idB);\n  if (setIdsB) {\n    setIdsB.forEach(fn => fn(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 * @param depArray - When to recalculate if the id is in the DOM.\n */\nexport function useSlotId(depArray: ReadonlyArray<any> = []): string {\n  let id = useId();\n  let [resolvedId, setResolvedId] = useValueEffect(id);\n  let updateId = useCallback(() => {\n    setResolvedId(function *() {\n      yield id;\n\n      yield document.getElementById(id) ? id : undefined;\n    });\n  }, [id, setResolvedId]);\n\n  useLayoutEffect(updateId, [id, updateId, ...depArray]);\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\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 document !== '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 */\nexport {SSRProvider, useSSRSafeId, useIsSSR} from './SSRProvider';\nexport type {SSRProviderProps} from './SSRProvider';\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 must avoid a circular dependency with @react-aria/utils, and this useLayoutEffect is\n// guarded by a check that it only runs on the client side.\n// eslint-disable-next-line rulesdir/useLayoutEffectRule\nimport React, {JSX, ReactNode, useContext, useLayoutEffect, useMemo, useRef, useState} from 'react';\n\n// To support SSR, the auto incrementing id counter is stored in a context. This allows\n// it to be reset on every request to ensure the client and server are consistent.\n// There is also a prefix string that is used to support async loading components\n// Each async boundary must be wrapped in an SSR provider, which appends to the prefix\n// and resets the current id counter. This ensures that async loaded components have\n// consistent ids regardless of the loading order.\ninterface SSRContextValue {\n  prefix: string,\n  current: number\n}\n\n// Default context value to use in case there is no SSRProvider. This is fine for\n// client-only apps. In order to support multiple copies of React Aria potentially\n// being on the page at once, the prefix is set to a random number. SSRProvider\n// will reset this to zero for consistency between server and client, so in the\n// SSR case multiple copies of React Aria is not supported.\nconst defaultContext: SSRContextValue = {\n  prefix: String(Math.round(Math.random() * 10000000000)),\n  current: 0\n};\n\nconst SSRContext = React.createContext<SSRContextValue>(defaultContext);\nconst IsSSRContext = React.createContext(false);\n\nexport interface SSRProviderProps {\n  /** Your application here. */\n  children: ReactNode\n}\n\n// This is only used in React < 18.\nfunction LegacySSRProvider(props: SSRProviderProps): JSX.Element {\n  let cur = useContext(SSRContext);\n  let counter = useCounter(cur === defaultContext);\n  let [isSSR, setIsSSR] = useState(true);\n  let value: SSRContextValue = useMemo(() => ({\n    // If this is the first SSRProvider, start with an empty string prefix, otherwise\n    // append and increment the counter.\n    prefix: cur === defaultContext ? '' : `${cur.prefix}-${counter}`,\n    current: 0\n  }), [cur, counter]);\n\n  // If on the client, and the component was initially server rendered,\n  // then schedule a layout effect to update the component after hydration.\n  if (typeof document !== 'undefined') {\n    // This if statement technically breaks the rules of hooks, but is safe\n    // because the condition never changes after mounting.\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    useLayoutEffect(() => {\n      setIsSSR(false);\n    }, []);\n  }\n\n  return (\n    <SSRContext.Provider value={value}>\n      <IsSSRContext.Provider value={isSSR}>\n        {props.children}\n      </IsSSRContext.Provider>\n    </SSRContext.Provider>\n  );\n}\n\nlet warnedAboutSSRProvider = false;\n\n/**\n * When using SSR with React Aria in React 16 or 17, applications must be wrapped in an SSRProvider.\n * This ensures that auto generated ids are consistent between the client and server.\n */\nexport function SSRProvider(props: SSRProviderProps): JSX.Element {\n  if (typeof React['useId'] === 'function') {\n    if (process.env.NODE_ENV !== 'test' && !warnedAboutSSRProvider) {\n      console.warn('In React 18, SSRProvider is not necessary and is a noop. You can remove it from your app.');\n      warnedAboutSSRProvider = true;\n    }\n    return <>{props.children}</>;\n  }\n  return <LegacySSRProvider {...props} />;\n}\n\nlet canUseDOM = Boolean(\n  typeof window !== 'undefined' &&\n  window.document &&\n  window.document.createElement\n);\n\nlet componentIds = new WeakMap();\n\nfunction useCounter(isDisabled = false) {\n  let ctx = useContext(SSRContext);\n  let ref = useRef<number | null>(null);\n  // eslint-disable-next-line rulesdir/pure-render\n  if (ref.current === null && !isDisabled) {\n    // In strict mode, React renders components twice, and the ref will be reset to null on the second render.\n    // This means our id counter will be incremented twice instead of once. This is a problem because on the\n    // server, components are only rendered once and so ids generated on the server won't match the client.\n    // In React 18, useId was introduced to solve this, but it is not available in older versions. So to solve this\n    // we need to use some React internals to access the underlying Fiber instance, which is stable between renders.\n    // This is exposed as ReactCurrentOwner in development, which is all we need since StrictMode only runs in development.\n    // To ensure that we only increment the global counter once, we store the starting id for this component in\n    // a weak map associated with the Fiber. On the second render, we reset the global counter to this value.\n    // Since React runs the second render immediately after the first, this is safe.\n    // @ts-ignore\n    let currentOwner = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED?.ReactCurrentOwner?.current;\n    if (currentOwner) {\n      let prevComponentValue = componentIds.get(currentOwner);\n      if (prevComponentValue == null) {\n        // On the first render, and first call to useId, store the id and state in our weak map.\n        componentIds.set(currentOwner, {\n          id: ctx.current,\n          state: currentOwner.memoizedState\n        });\n      } else if (currentOwner.memoizedState !== prevComponentValue.state) {\n        // On the second render, the memoizedState gets reset by React.\n        // Reset the counter, and remove from the weak map so we don't\n        // do this for subsequent useId calls.\n        ctx.current = prevComponentValue.id;\n        componentIds.delete(currentOwner);\n      }\n    }\n\n    // eslint-disable-next-line rulesdir/pure-render\n    ref.current = ++ctx.current;\n  }\n\n  // eslint-disable-next-line rulesdir/pure-render\n  return ref.current;\n}\n\nfunction useLegacySSRSafeId(defaultId?: string): string {\n  let ctx = useContext(SSRContext);\n\n  // If we are rendering in a non-DOM environment, and there's no SSRProvider,\n  // provide a warning to hint to the developer to add one.\n  if (ctx === defaultContext && !canUseDOM) {\n    console.warn('When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.');\n  }\n\n  let counter = useCounter(!!defaultId);\n  let prefix = ctx === defaultContext && process.env.NODE_ENV === 'test' ? 'react-aria' : `react-aria${ctx.prefix}`;\n  return defaultId || `${prefix}-${counter}`;\n}\n\nfunction useModernSSRSafeId(defaultId?: string): string {\n  // @ts-ignore\n  let id = React.useId();\n  let [didSSR] = useState(useIsSSR());\n  let prefix = didSSR || process.env.NODE_ENV === 'test' ? 'react-aria' : `react-aria${defaultContext.prefix}`;\n  return defaultId || `${prefix}-${id}`;\n}\n\n// Use React.useId in React 18 if available, otherwise fall back to our old implementation.\n/** @private */\nexport const useSSRSafeId = typeof React['useId'] === 'function' ? useModernSSRSafeId : useLegacySSRSafeId;\n\nfunction getSnapshot() {\n  return false;\n}\n\nfunction getServerSnapshot() {\n  return true;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction subscribe(onStoreChange: () => void): () => void {\n  // noop\n  return () => {};\n}\n\n/**\n * Returns whether the component is currently being server side rendered or\n * hydrated on the client. Can be used to delay browser-specific rendering\n * until after hydration.\n */\nexport function useIsSSR(): boolean {\n  // In React 18, we can use useSyncExternalStore to detect if we're server rendering or hydrating.\n  if (typeof React['useSyncExternalStore'] === 'function') {\n    return React['useSyncExternalStore'](subscribe, getSnapshot, getServerSnapshot);\n  }\n\n  // eslint-disable-next-line react-hooks/rules-of-hooks\n  return useContext(IsSSRContext);\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","export const getOwnerDocument = (el: Element | null | undefined): Document => {\n  return el?.ownerDocument ?? document;\n};\n\nexport const getOwnerWindow = (\n  el: (Window & typeof global) | Element | null | undefined\n): Window & typeof global => {\n  if (el && 'window' in el && el.window === el) {\n    return el;\n  }\n\n  const doc = getOwnerDocument(el as Element | null | undefined);\n  return doc.defaultView || window;\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\ntype PropsArg = Props | null | undefined;\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 } ? NullToObject<V> : never;\ntype NullToObject<T> = T extends (null | undefined) ? {} : T;\n \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 PropsArg[]>(...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","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f);else for(t in e)e[t]&&(n&&(n+=\" \"),n+=t);return n}export function clsx(){for(var e,t,f=0,n=\"\";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","/*\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 {ForwardedRef, MutableRefObject} from 'react';\n\n/**\n * Merges multiple refs into one. Works with either callback or object refs.\n */\nexport function mergeRefs<T>(...refs: Array<ForwardedRef<T> | MutableRefObject<T> | null | undefined>): ForwardedRef<T> {\n  if (refs.length === 1 && refs[0]) {\n    return refs[0];\n  }\n\n  return (value: T | null) => {\n    for (let ref of refs) {\n      if (typeof ref === 'function') {\n        ref(value);\n      } else if (ref != null) {\n        ref.current = value;\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 {AriaLabelingProps, DOMProps, LinkDOMProps} from '@react-types/shared';\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\n// See LinkDOMProps in dom.d.ts.\nconst linkPropNames = new Set([\n  'href',\n  'hrefLang',\n  'target',\n  'rel',\n  'download',\n  'ping',\n  'referrerPolicy'\n]);\n\ninterface Options {\n  /**\n   * If labelling associated aria properties should be included in the filter.\n   */\n  labelable?: boolean,\n  /** Whether the element is a link and should include DOM props for <a> elements. */\n  isLink?: 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 & LinkDOMProps, opts: Options = {}): DOMProps & AriaLabelingProps {\n  let {labelable, isLink, propNames} = opts;\n  let filteredProps = {};\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        (isLink && linkPropNames.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\nimport {FocusableElement} from '@react-types/shared';\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: FocusableElement) {\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 = null;\nfunction supportsPreventScroll() {\n  if (supportsPreventScrollCached == null) {\n    supportsPreventScrollCached = false;\n    try {\n      let focusElem = document.createElement('div');\n      focusElem.focus({\n        get preventScroll() {\n          supportsPreventScrollCached = true;\n          return true;\n        }\n      });\n    } catch {\n      // Ignore\n    }\n  }\n\n  return supportsPreventScrollCached;\n}\n\nfunction getScrollableElements(element: FocusableElement): ScrollableElement[] {\n  let parent = element.parentNode;\n  let scrollableElements: ScrollableElement[] = [];\n  let 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 2023 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 {focusWithoutScrolling, isMac, isWebKit} from './index';\nimport {Href, LinkDOMProps, RouterOptions} from '@react-types/shared';\nimport {isFirefox, isIPad} from './platform';\nimport React, {createContext, ReactNode, useContext, useMemo} from 'react';\n\ninterface Router {\n  isNative: boolean,\n  open: (target: Element, modifiers: Modifiers, href: Href, routerOptions: RouterOptions | undefined) => void,\n  useHref: (href: Href) => string\n}\n\nconst RouterContext = createContext<Router>({\n  isNative: true,\n  open: openSyntheticLink,\n  useHref: (href) => href\n});\n\ninterface RouterProviderProps {\n  navigate: (path: Href, routerOptions: RouterOptions | undefined) => void,\n  useHref?: (href: Href) => string,\n  children: ReactNode\n}\n\n/**\n * A RouterProvider accepts a `navigate` function from a framework or client side router,\n * and provides it to all nested React Aria links to enable client side navigation.\n */\nexport function RouterProvider(props: RouterProviderProps) {\n  let {children, navigate, useHref} = props;\n\n  let ctx = useMemo(() => ({\n    isNative: false,\n    open: (target: Element, modifiers: Modifiers, href: Href, routerOptions: RouterOptions | undefined) => {\n      getSyntheticLink(target, link => {\n        if (shouldClientNavigate(link, modifiers)) {\n          navigate(href, routerOptions);\n        } else {\n          openLink(link, modifiers);\n        }\n      });\n    },\n    useHref: useHref || ((href) => href)\n  }), [navigate, useHref]);\n\n  return (\n    <RouterContext.Provider value={ctx}>\n      {children}\n    </RouterContext.Provider>\n  );\n}\n\nexport function useRouter(): Router {\n  return useContext(RouterContext);\n}\n\ninterface Modifiers {\n  metaKey?: boolean,\n  ctrlKey?: boolean,\n  altKey?: boolean,\n  shiftKey?: boolean\n}\n\nexport function shouldClientNavigate(link: HTMLAnchorElement, modifiers: Modifiers) {\n  // Use getAttribute here instead of link.target. Firefox will default link.target to \"_parent\" when inside an iframe.\n  let target = link.getAttribute('target');\n  return (\n    (!target || target === '_self') &&\n    link.origin === location.origin &&\n    !link.hasAttribute('download') &&\n    !modifiers.metaKey && // open in new tab (mac)\n    !modifiers.ctrlKey && // open in new tab (windows)\n    !modifiers.altKey && // download\n    !modifiers.shiftKey\n  );\n}\n\nexport function openLink(target: HTMLAnchorElement, modifiers: Modifiers, setOpening = true) {\n  let {metaKey, ctrlKey, altKey, shiftKey} = modifiers;\n\n  // Firefox does not recognize keyboard events as a user action by default, and the popup blocker\n  // will prevent links with target=\"_blank\" from opening. However, it does allow the event if the\n  // Command/Control key is held, which opens the link in a background tab. This seems like the best we can do.\n  // See https://bugzilla.mozilla.org/show_bug.cgi?id=257870 and https://bugzilla.mozilla.org/show_bug.cgi?id=746640.\n  if (isFirefox() && window.event?.type?.startsWith('key') && target.target === '_blank') {\n    if (isMac()) {\n      metaKey = true;\n    } else {\n      ctrlKey = true;\n    }\n  }\n\n  // WebKit does not support firing click events with modifier keys, but does support keyboard events.\n  // https://github.com/WebKit/WebKit/blob/c03d0ac6e6db178f90923a0a63080b5ca210d25f/Source/WebCore/html/HTMLAnchorElement.cpp#L184\n  let event = isWebKit() && isMac() && !isIPad() && process.env.NODE_ENV !== 'test'\n    // @ts-ignore - keyIdentifier is a non-standard property, but it's what webkit expects\n    ? new KeyboardEvent('keydown', {keyIdentifier: 'Enter', metaKey, ctrlKey, altKey, shiftKey})\n    : new MouseEvent('click', {metaKey, ctrlKey, altKey, shiftKey, bubbles: true, cancelable: true});\n  (openLink as any).isOpening = setOpening;\n  focusWithoutScrolling(target);\n  target.dispatchEvent(event);\n  (openLink as any).isOpening = false;\n}\n// https://github.com/parcel-bundler/parcel/issues/8724\n(openLink as any).isOpening = false;\n\nfunction getSyntheticLink(target: Element, open: (link: HTMLAnchorElement) => void) {\n  if (target instanceof HTMLAnchorElement) {\n    open(target);\n  } else if (target.hasAttribute('data-href')) {\n    let link = document.createElement('a');\n    link.href = target.getAttribute('data-href')!;\n    if (target.hasAttribute('data-target')) {\n      link.target = target.getAttribute('data-target')!;\n    }\n    if (target.hasAttribute('data-rel')) {\n      link.rel = target.getAttribute('data-rel')!;\n    }\n    if (target.hasAttribute('data-download')) {\n      link.download = target.getAttribute('data-download')!;\n    }\n    if (target.hasAttribute('data-ping')) {\n      link.ping = target.getAttribute('data-ping')!;\n    }\n    if (target.hasAttribute('data-referrer-policy')) {\n      link.referrerPolicy = target.getAttribute('data-referrer-policy')!;\n    }\n    target.appendChild(link);\n    open(link);\n    target.removeChild(link);\n  }\n}\n\nfunction openSyntheticLink(target: Element, modifiers: Modifiers) {\n  getSyntheticLink(target, link => openLink(link, modifiers));\n}\n\nexport function useSyntheticLinkProps(props: LinkDOMProps) {\n  let router = useRouter();\n  const href = router.useHref(props.href ?? '');\n  return {\n    'data-href': props.href ? href : undefined,\n    'data-target': props.target,\n    'data-rel': props.rel,\n    'data-download': props.download,\n    'data-ping': props.ping,\n    'data-referrer-policy': props.referrerPolicy\n  };\n}\n\n/** @deprecated - For backward compatibility. */\nexport function getSyntheticLinkProps(props: LinkDOMProps) {\n  return {\n    'data-href': props.href,\n    'data-target': props.target,\n    'data-rel': props.rel,\n    'data-download': props.download,\n    'data-ping': props.ping,\n    'data-referrer-policy': props.referrerPolicy\n  };\n}\n\nexport function useLinkProps(props: LinkDOMProps) {\n  let router = useRouter();\n  const href = router.useHref(props?.href ?? '');\n  return {\n    href: props?.href ? href : undefined,\n    target: props?.target,\n    rel: props?.rel,\n    download: props?.download,\n    ping: props?.ping,\n    referrerPolicy: props?.referrerPolicy\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  if (typeof window === 'undefined' || window.navigator == null) {\n    return false;\n  }\n  return (\n    window.navigator['userAgentData']?.brands.some((brand: {brand: string, version: string}) => re.test(brand.brand))\n  ) ||\n  re.test(window.navigator.userAgent);\n}\n\nfunction testPlatform(re: RegExp) {\n  return typeof window !== 'undefined' && window.navigator != null\n    ? re.test(window.navigator['userAgentData']?.platform || window.navigator.platform)\n    : false;\n}\n\nfunction cached(fn: () => boolean) {\n  if (process.env.NODE_ENV === 'test') {\n    return fn;\n  }\n  \n  let res: boolean | null = null;\n  return () => {\n    if (res == null) {\n      res = fn();\n    }\n    return res;\n  };\n}\n\nexport const isMac = cached(function () {\n  return testPlatform(/^Mac/i);\n});\n\nexport const isIPhone = cached(function () {\n  return testPlatform(/^iPhone/i);\n});\n\nexport const isIPad = cached(function () {\n  return testPlatform(/^iPad/i) ||\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 const isIOS = cached(function () {\n  return isIPhone() || isIPad();\n});\n\nexport const isAppleDevice = cached(function () {\n  return isMac() || isIOS();\n});\n\nexport const isWebKit = cached(function () {\n  return testUserAgent(/AppleWebKit/i) && !isChrome();\n});\n\nexport const isChrome = cached(function () {\n  return testUserAgent(/Chrome/i);\n});\n\nexport const isAndroid = cached(function () {\n  return testUserAgent(/Android/i);\n});\n\nexport const isFirefox = cached(function () {\n  return testUserAgent(/Firefox/i);\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  function isTransitionEvent(event: Event): event is TransitionEvent {\n    return 'propertyName' in event;\n  }\n\n  let onTransitionStart = (e: Event) => {\n    if (!isTransitionEvent(e) || !e.target) {\n      return;\n    }\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        once: true\n      });\n    }\n\n    transitions.add(e.propertyName);\n  };\n\n  let onTransitionEnd = (e: Event) => {\n    if (!isTransitionEvent(e) || !e.target) {\n      return;\n    }\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 {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    // Make sure we remove the listener after it is called with the `once` option.\n    let fn = options?.once ? (...args) => {\n      globalListeners.current.delete(listener);\n      listener(...args);\n    } : listener;\n    globalListeners.current.set(listener, {type, eventTarget, fn, options});\n    eventTarget.addEventListener(type, listener, options);\n  }, []);\n  let removeGlobalListener = useCallback((eventTarget, type, listener, options) => {\n    let fn = globalListeners.current.get(listener)?.fn || listener;\n    eventTarget.removeEventListener(type, fn, 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   \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([id, ...labelledBy.trim().split(/\\s+/)]);\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 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 {MutableRefObject, useMemo, useRef} from 'react';\n\n/**\n * Offers an object ref for a given callback ref or an object ref. Especially\n * helfpul when passing forwarded refs (created using `React.forwardRef`) to\n * React Aria hooks.\n *\n * @param forwardedRef The original ref intended to be used.\n * @returns An object ref that updates the given ref.\n * @see https://reactjs.org/docs/forwarding-refs.html\n */\nexport function useObjectRef<T>(forwardedRef?: ((instance: T | null) => void) | MutableRefObject<T | null> | null): MutableRefObject<T | null> {\n  const objRef: MutableRefObject<T | null> = useRef<T>(null);\n  return useMemo(() => ({\n    get current() {\n      return objRef.current;\n    },\n    set current(value) {\n      objRef.current = value;\n      if (typeof forwardedRef === 'function') {\n        forwardedRef(value);\n      } else if (forwardedRef) {\n        forwardedRef.current = value;\n      }\n    }\n  }), [forwardedRef]);\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  const lastDeps = useRef<any[] | null>(null);\n\n  useEffect(() => {\n    isInitialMount.current = true;\n    return () => {\n      isInitialMount.current = false;\n    };\n  }, []);\n\n  useEffect(() => {\n    if (isInitialMount.current) {\n      isInitialMount.current = false;\n    } else if (!lastDeps.current || dependencies.some((dep, i) => !Object.is(dep, lastDeps[i]))) {\n      effect();\n    }\n    lastDeps.current = dependencies;\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, dependencies);\n}\n","\nimport {RefObject} from '@react-types/shared';\nimport {useEffect} from 'react';\n\nfunction hasResizeObserver() {\n  return typeof window.ResizeObserver !== 'undefined';\n}\n\ntype useResizeObserverOptionsType<T> = {\n  ref: RefObject<T | undefined | null> | undefined,\n  box?: ResizeObserverBoxOptions,\n  onResize: () => void\n}\n\nexport function useResizeObserver<T extends Element>(options: useResizeObserverOptionsType<T>) {\n  const {ref, box, 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, {box});\n\n      return () => {\n        if (element) {\n          resizeObserverInstance.unobserve(element);\n        }\n      };\n    }\n\n  }, [onResize, ref, box]);\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} from 'react';\nimport {RefObject} from '@react-types/shared';\nimport {useLayoutEffect} from './';\n\ninterface ContextValue<T> {\n  ref?: MutableRefObject<T | null>\n}\n\n// Syncs ref from context with ref passed to hook\nexport function useSyncRef<T>(context?: ContextValue<T> | null, ref?: RefObject<T | null>) {\n  useLayoutEffect(() => {\n    if (context && context.ref && ref) {\n      context.ref.current = ref.current;\n      return () => {\n        if (context.ref) {\n          context.ref.current = null;\n        }\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 {isScrollable} from './isScrollable';\n\nexport function getScrollParent(node: Element, checkForOverflow?: boolean): Element {\n  let scrollableNode: Element | null = node;\n  if (isScrollable(scrollableNode, checkForOverflow)) {\n    scrollableNode = scrollableNode.parentElement;\n  }\n\n  while (scrollableNode && !isScrollable(scrollableNode, checkForOverflow)) {\n    scrollableNode = scrollableNode.parentElement;\n  }\n\n  return scrollableNode || document.scrollingElement || document.documentElement;\n}\n\n","/*\n * Copyright 2024 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 isScrollable(node: Element, checkForOverflow?: boolean): boolean {\n  let style = window.getComputedStyle(node);\n  let isScrollable = /(auto|scroll)/.test(style.overflow + style.overflowX + style.overflowY);\n\n  if (isScrollable && checkForOverflow) {\n    isScrollable = node.scrollHeight !== node.clientHeight || node.scrollWidth !== node.clientWidth;\n  }\n\n  return isScrollable;\n}\n","/*\n * Copyright 2024 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 {isScrollable} from './isScrollable';\n\nexport function getScrollParents(node: Element, checkForOverflow?: boolean): Element[] {\n  const scrollParents: Element[] = [];\n\n  while (node && node !== document.documentElement) {\n    if (isScrollable(node, checkForOverflow)) {\n      scrollParents.push(node);\n    }\n    node = node.parentElement as Element;\n  }\n\n  return scrollParents;\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';\nimport {useIsSSR} from '@react-aria/ssr';\n\ninterface ViewportSize {\n  width: number,\n  height: number\n}\n\n// @ts-ignore\nlet visualViewport = typeof document !== 'undefined' && window.visualViewport;\n\nexport function useViewportSize(): ViewportSize {\n  let isSSR = useIsSSR();\n  let [size, setSize] = useState(() => isSSR ? {width: 0, height: 0} : 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 && visualViewport?.width) || window.innerWidth,\n    height: (visualViewport && 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} from './useLayoutEffect';\nimport {useState} from 'react';\n\nlet descriptionId = 0;\nconst descriptionNodes = new Map<string, {refCount: number, element: Element}>();\n\nexport function useDescription(description?: string): AriaLabelingProps {\n  let [id, setId] = useState<string | undefined>();\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 && --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 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} from '@react-types/shared';\nimport {useEffect} from 'react';\nimport {useEffectEvent} from './useEffectEvent';\n\nexport function useEvent<K extends keyof GlobalEventHandlersEventMap>(\n  ref: RefObject<EventTarget | null>,\n  event: K | (string & {}),\n  handler?: (this: Document, ev: GlobalEventHandlersEventMap[K]) => any,\n  options?: boolean | AddEventListenerOptions\n) {\n  let handleEvent = useEffectEvent(handler);\n  let isDisabled = handler == null;\n\n  useEffect(() => {\n    if (isDisabled || !ref.current) {\n      return;\n    }\n\n    let element = ref.current;\n    element.addEventListener(event, handleEvent as EventListener, options);\n    return () => {\n      element.removeEventListener(event, handleEvent as EventListener, options);\n    };\n  }, [ref, event, options, isDisabled, handleEvent]);\n}\n","/*\n * Copyright 2023 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, useRef} from 'react';\nimport {useLayoutEffect} from './useLayoutEffect';\n\nexport function useEffectEvent<T extends Function>(fn?: T): T {\n  const ref = useRef<T | null | undefined>(null);\n  useLayoutEffect(() => {\n    ref.current = fn;\n  }, [fn]);\n  // @ts-ignore\n  return useCallback<T>((...args) => {\n    const f = ref.current!;\n    return f?.(...args);\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 {Dispatch, MutableRefObject, useRef, useState} from 'react';\nimport {useEffectEvent, useLayoutEffect} from './';\n\ntype SetValueAction<S> = (prev: S) => Generator<any, void, unknown>;\n\n// This hook works like `useState`, but when setting the value, you pass a generator function\n// that can yield multiple values. Each yielded value updates the state and waits for the next\n// layout effect, then continues the generator. This allows sequential updates to state to be\n// written linearly.\nexport function useValueEffect<S>(defaultValue: S | (() => S)): [S, Dispatch<SetValueAction<S>>] {\n  let [value, setValue] = useState(defaultValue);\n  let effect: MutableRefObject<Generator<S> | null> = useRef<Generator<S> | null>(null);\n\n  // Store the function in a ref so we can always access the current version\n  // which has the proper `value` in scope.\n  let nextRef = useEffectEvent(() => {\n    if (!effect.current) {\n      return;\n    }\n    // Run the generator to the next yield.\n    let newValue = effect.current.next();\n\n    // If the generator is done, reset the effect.\n    if (newValue.done) {\n      effect.current = null;\n      return;\n    }\n\n    // If the value is the same as the current value,\n    // then continue to the next yield. Otherwise,\n    // set the value in state and wait for the next layout effect.\n    if (value === newValue.value) {\n      nextRef();\n    } else {\n      setValue(newValue.value);\n    }\n  });\n\n  useLayoutEffect(() => {\n    // If there is an effect currently running, continue to the next yield.\n    if (effect.current) {\n      nextRef();\n    }\n  });\n\n  let queue = useEffectEvent(fn => {\n    effect.current = fn(value);\n    nextRef();\n  });\n\n  return [value, queue];\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 {getScrollParents} from './getScrollParents';\n\ninterface ScrollIntoViewportOpts {\n  /** The optional containing element of the target to be centered in the viewport. */\n  containingElement?: Element\n}\n\n/**\n * Scrolls `scrollView` so that `element` is visible.\n * Similar to `element.scrollIntoView({block: 'nearest'})` (not supported in Edge),\n * but doesn't affect parents above `scrollView`.\n */\nexport function scrollIntoView(scrollView: HTMLElement, element: HTMLElement) {\n  let offsetX = relativeOffset(scrollView, element, 'left');\n  let offsetY = relativeOffset(scrollView, element, 'top');\n  let width = element.offsetWidth;\n  let height = element.offsetHeight;\n  let x = scrollView.scrollLeft;\n  let y = scrollView.scrollTop;\n\n  // Account for top/left border offsetting the scroll top/Left\n  let {borderTopWidth, borderLeftWidth} = getComputedStyle(scrollView);\n  let borderAdjustedX = scrollView.scrollLeft + parseInt(borderLeftWidth, 10);\n  let borderAdjustedY = scrollView.scrollTop + parseInt(borderTopWidth, 10);\n  // Ignore end/bottom border via clientHeight/Width instead of offsetHeight/Width\n  let maxX = borderAdjustedX + scrollView.clientWidth;\n  let maxY = borderAdjustedY + scrollView.clientHeight;\n\n  if (offsetX <= x) {\n    x = offsetX - parseInt(borderLeftWidth, 10);\n  } else if (offsetX + width > maxX) {\n    x += offsetX + width - maxX;\n  }\n  if (offsetY <= borderAdjustedY) {\n    y = offsetY - parseInt(borderTopWidth, 10);\n  } else if (offsetY + height > maxY) {\n    y += offsetY + height - maxY;\n  }\n  scrollView.scrollLeft = x;\n  scrollView.scrollTop = y;\n}\n\n/**\n * Computes the offset left or top from child to ancestor by accumulating\n * offsetLeft or offsetTop through intervening offsetParents.\n */\nfunction relativeOffset(ancestor: HTMLElement, child: HTMLElement, axis: 'left'|'top') {\n  const prop = axis === 'left' ? 'offsetLeft' : 'offsetTop';\n  let sum = 0;\n  while (child.offsetParent) {\n    sum += child[prop];\n    if (child.offsetParent === ancestor) {\n      // Stop once we have found the ancestor we are interested in.\n      break;\n    } else if (child.offsetParent.contains(ancestor)) {\n      // If the ancestor is not `position:relative`, then we stop at\n      // _its_ offset parent, and we subtract off _its_ offset, so that\n      // we end up with the proper offset from child to ancestor.\n      sum -= ancestor[prop];\n      break;\n    }\n    child = child.offsetParent as HTMLElement;\n  }\n  return sum;\n}\n\n/**\n * Scrolls the `targetElement` so it is visible in the viewport. Accepts an optional `opts.containingElement`\n * that will be centered in the viewport prior to scrolling the targetElement into view. If scrolling is prevented on\n * the body (e.g. targetElement is in a popover), this will only scroll the scroll parents of the targetElement up to but not including the body itself.\n */\nexport function scrollIntoViewport(targetElement: Element, opts?: ScrollIntoViewportOpts) {\n  if (document.contains(targetElement)) {\n    let root = document.scrollingElement || document.documentElement;\n    let isScrollPrevented = window.getComputedStyle(root).overflow === 'hidden';\n    // If scrolling is not currently prevented then we aren’t in a overlay nor is a overlay open, just use element.scrollIntoView to bring the element into view\n    if (!isScrollPrevented) {\n      let {left: originalLeft, top: originalTop} = targetElement.getBoundingClientRect();\n\n      // use scrollIntoView({block: 'nearest'}) instead of .focus to check if the element is fully in view or not since .focus()\n      // won't cause a scroll if the element is already focused and doesn't behave consistently when an element is partially out of view horizontally vs vertically\n      targetElement?.scrollIntoView?.({block: 'nearest'});\n      let {left: newLeft, top: newTop} = targetElement.getBoundingClientRect();\n      // Account for sub pixel differences from rounding\n      if ((Math.abs(originalLeft - newLeft) > 1) || (Math.abs(originalTop - newTop) > 1)) {\n        opts?.containingElement?.scrollIntoView?.({block: 'center', inline: 'center'});\n        targetElement.scrollIntoView?.({block: 'nearest'});\n      }\n    } else {\n      let scrollParents = getScrollParents(targetElement);\n      // If scrolling is prevented, we don't want to scroll the body since it might move the overlay partially offscreen and the user can't scroll it back into view.\n      for (let scrollParent of scrollParents) {\n        scrollIntoView(scrollParent as HTMLElement, targetElement as HTMLElement);\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 */\nexport {useControlledState} from './useControlledState';\nexport {clamp, snapValueToStep, toFixedNumber} from './number';\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, useState} from 'react';\n\nexport function useControlledState<T, C = T>(value: Exclude<T, undefined>, defaultValue: Exclude<T, undefined> | undefined, onChange?: (v: C, ...args: any[]) => void): [T, (value: T, ...args: any[]) => void];\nexport function useControlledState<T, C = T>(value: Exclude<T, undefined> | undefined, defaultValue: Exclude<T, undefined>, onChange?: (v: C, ...args: any[]) => void): [T, (value: T, ...args: any[]) => void];\nexport function useControlledState<T, C = T>(value: T, defaultValue: T, onChange?: (v: C, ...args: any[]) => void): [T, (value: T, ...args: any[]) => void] {\n  let [stateValue, setStateValue] = useState(value || defaultValue);\n\n  let isControlledRef = useRef(value !== undefined);\n  let isControlled = value !== undefined;\n  useEffect(() => {\n    let wasControlled = isControlledRef.current;\n    if (wasControlled !== isControlled) {\n      console.warn(`WARN: A component changed from ${wasControlled ? 'controlled' : 'uncontrolled'} to ${isControlled ? 'controlled' : 'uncontrolled'}.`);\n    }\n    isControlledRef.current = isControlled;\n  }, [isControlled]);\n\n  let currentValue = isControlled ? value : stateValue;\n  let setValue = useCallback((value, ...args) => {\n    let onChangeCaller = (value, ...onChangeArgs) => {\n      if (onChange) {\n        if (!Object.is(currentValue, value)) {\n          onChange(value, ...onChangeArgs);\n        }\n      }\n      if (!isControlled) {\n        // If uncontrolled, mutate the currentValue local variable so that\n        // calling setState multiple times with the same value only emits onChange once.\n        // We do not use a ref for this because we specifically _do_ want the value to\n        // reset every render, and assigning to a ref in render breaks aborted suspended renders.\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        currentValue = value;\n      }\n    };\n\n    if (typeof value === 'function') {\n      console.warn('We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320');\n      // this supports functional updates https://reactjs.org/docs/hooks-reference.html#functional-updates\n      // when someone using useControlledState calls setControlledState(myFunc)\n      // this will call our useState setState with a function as well which invokes myFunc and calls onChange with the value from myFunc\n      // if we're in an uncontrolled state, then we also return the value of myFunc which to setState looks as though it was just called with myFunc from the beginning\n      // otherwise we just return the controlled value, which won't cause a rerender because React knows to bail out when the value is the same\n      let updateFunction = (oldValue, ...functionArgs) => {\n        let interceptedValue = value(isControlled ? currentValue : oldValue, ...functionArgs);\n        onChangeCaller(interceptedValue, ...args);\n        if (!isControlled) {\n          return interceptedValue;\n        }\n        return oldValue;\n      };\n      setStateValue(updateFunction);\n    } else {\n      if (!isControlled) {\n        setStateValue(value);\n      }\n      onChangeCaller(value, ...args);\n    }\n  }, [isControlled, currentValue, onChange]);\n\n  return [currentValue, setValue];\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 if it's outside. Also forces it to the closest valid step.\n */\nexport function clamp(value: number, min: number = -Infinity, max: number = Infinity): number {\n  let newValue = Math.min(Math.max(value, min), max);\n  return newValue;\n}\n\nexport function roundToStepPrecision(value: number, step: number) {\n  let roundedValue = value;\n  let stepString = step.toString();\n  let pointIndex = stepString.indexOf('.');\n  let precision = pointIndex >= 0 ? stepString.length - pointIndex : 0;\n  if (precision > 0) {\n    let pow = Math.pow(10, precision);\n    roundedValue = Math.round(roundedValue * pow) / pow;\n  }\n  return roundedValue;\n}\n\nexport function snapValueToStep(value: number, min: number | undefined, max: number | undefined, step: number): number {\n  min = Number(min);\n  max = Number(max);\n  let remainder = ((value - (isNaN(min) ? 0 : min)) % step);\n  let snappedValue = roundToStepPrecision(Math.abs(remainder) * 2 >= step\n    ? value + Math.sign(remainder) * (step - Math.abs(remainder))\n    : value - remainder, step);\n\n  if (!isNaN(min)) {\n    if (snappedValue < min) {\n      snappedValue = min;\n    } else if (!isNaN(max) && snappedValue > max) {\n      snappedValue = min + Math.floor(roundToStepPrecision((max - min) / step, step)) * step;\n    }\n  } else if (!isNaN(max) && snappedValue > max) {\n    snappedValue = Math.floor(roundToStepPrecision(max / step, step)) * step;\n  }\n\n  // correct floating point behavior by rounding to step precision\n  snappedValue = roundToStepPrecision(snappedValue, step);\n\n  return snappedValue;\n}\n\n/* Takes a value and rounds off to the number of digits. */\nexport function toFixedNumber(value: number, digits: number, base: number = 10): number {\n  const pow = Math.pow(base, digits);\n\n  return Math.round(value * pow) / pow;\n}\n","/*\n * Copyright 2022 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 {isAndroid} from './platform';\n\n// Original licensing for the following method can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/blob/3c713d513195a53788b3f8bb4b70279d68b15bcc/packages/react-interactions/events/src/dom/shared/index.js#L74-L87\n\n// Keyboards, Assistive Technologies, and element.click() all produce a \"virtual\"\n// click event. This is a method of inferring such clicks. Every browser except\n// IE 11 only sets a zero value of \"detail\" for click events that are \"virtual\".\n// However, IE 11 uses a zero value for all click events. For IE 11 we rely on\n// the quirk that it produces click events that are of type PointerEvent, and\n// where only the \"virtual\" click lacks a pointerType field.\n\nexport function isVirtualClick(event: MouseEvent | PointerEvent): boolean {\n  // JAWS/NVDA with Firefox.\n  if ((event as any).mozInputSource === 0 && event.isTrusted) {\n    return true;\n  }\n\n  // Android TalkBack's detail value varies depending on the event listener providing the event so we have specific logic here instead\n  // If pointerType is defined, event is from a click listener. For events from mousedown listener, detail === 0 is a sufficient check\n  // to detect TalkBack virtual clicks.\n  if (isAndroid() && (event as PointerEvent).pointerType) {\n    return event.type === 'click' && event.buttons === 1;\n  }\n\n  return event.detail === 0 && !(event as PointerEvent).pointerType;\n}\n\nexport function isVirtualPointerEvent(event: PointerEvent) {\n  // If the pointer size is zero, then we assume it's from a screen reader.\n  // Android TalkBack double tap will sometimes return a event with width and height of 1\n  // and pointerType === 'mouse' so we need to check for a specific combination of event attributes.\n  // Cannot use \"event.pressure === 0\" as the sole check due to Safari pointer events always returning pressure === 0\n  // instead of .5, see https://bugs.webkit.org/show_bug.cgi?id=206216. event.pointerType === 'mouse' is to distingush\n  // Talkback double tap from Windows Firefox touch screen press\n  return (\n    (!isAndroid() && event.width === 0 && event.height === 0) ||\n    (event.width === 1 &&\n      event.height === 1 &&\n      event.pressure === 0 &&\n      event.detail === 0 &&\n      event.pointerType === 'mouse'\n    )\n  );\n}\n","/*\n * Copyright 2023 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/* eslint-disable rulesdir/pure-render */\n\nimport {useRef} from 'react';\n\nexport function useDeepMemo<T>(value: T, isEqual: (a: T, b: T) => boolean): T {\n  // Using a ref during render is ok here because it's only an optimization – both values are equivalent.\n  // If a render is thrown away, it'll still work the same no matter if the next render is the same or not.\n  let lastValue = useRef<T | null>(null);\n  if (value && lastValue.current && isEqual(value, lastValue.current)) {\n    value = lastValue.current;\n  }\n\n  lastValue.current = value;\n  return value;\n}\n","/*\n * Copyright 2023 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} from '@react-types/shared';\nimport {useEffect, useRef} from 'react';\nimport {useEffectEvent} from './useEffectEvent';\n\nexport function useFormReset<T>(\n  ref: RefObject<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | null>,\n  initialValue: T,\n  onReset: (value: T) => void\n) {\n  let resetValue = useRef(initialValue);\n  let handleReset = useEffectEvent(() => {\n    if (onReset) {\n      onReset(resetValue.current);\n    }\n  });\n\n  useEffect(() => {\n    let form = ref?.current?.form;\n    form?.addEventListener('reset', handleReset);\n    return () => {\n      form?.removeEventListener('reset', handleReset);\n    };\n  }, [ref, handleReset]);\n}\n","/*\n * Copyright 2024 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, useCallback, useRef} from 'react';\nimport {useEvent} from './useEvent';\n \nimport {useLayoutEffect} from './useLayoutEffect';\n\nexport interface LoadMoreProps {\n  /** Whether data is currently being loaded. */\n  isLoading?: boolean,\n  /** Handler that is called when more items should be loaded, e.g. while scrolling near the bottom.  */\n  onLoadMore?: () => void,\n  /**\n   * The amount of offset from the bottom of your scrollable region that should trigger load more.\n   * Uses a percentage value relative to the scroll body's client height. Load more is then triggered\n   * when your current scroll position's distance from the bottom of the currently loaded list of items is less than\n   * or equal to the provided value. (e.g. 1 = 100% of the scroll region's height).\n   * @default 1\n   */\n  scrollOffset?: number,\n  /** The data currently loaded. */\n  items?: any\n}\n\nexport function useLoadMore(props: LoadMoreProps, ref: RefObject<HTMLElement | null>) {\n  let {isLoading, onLoadMore, scrollOffset = 1, items} = props;\n\n  // Handle scrolling, and call onLoadMore when nearing the bottom.\n  let isLoadingRef = useRef(isLoading);\n  let prevProps = useRef(props);\n  let onScroll = useCallback(() => {\n    if (ref.current && !isLoadingRef.current && onLoadMore) {\n      let shouldLoadMore = ref.current.scrollHeight - ref.current.scrollTop - ref.current.clientHeight < ref.current.clientHeight * scrollOffset;\n\n      if (shouldLoadMore) {\n        isLoadingRef.current = true;\n        onLoadMore();\n      }\n    }\n  }, [onLoadMore, ref, scrollOffset]);\n\n  let lastItems = useRef(items);\n  useLayoutEffect(() => {\n    // Only update isLoadingRef if props object actually changed,\n    // not if a local state change occurred.\n    if (props !== prevProps.current) {\n      isLoadingRef.current = isLoading;\n      prevProps.current = props;\n    }\n\n    // TODO: Eventually this hook will move back into RAC during which we will accept the collection as a option to this hook.\n    // We will only load more if the collection has changed after the last load to prevent multiple onLoadMore from being called\n    // while the data from the last onLoadMore is being processed by RAC collection.\n    let shouldLoadMore = ref?.current\n      && !isLoadingRef.current\n      && onLoadMore\n      && (!items || items !== lastItems.current)\n      && ref.current.clientHeight === ref.current.scrollHeight;\n\n    if (shouldLoadMore) {\n      isLoadingRef.current = true;\n      onLoadMore?.();\n    }\n\n    lastItems.current = items;\n  }, [isLoading, onLoadMore, props, ref, items]);\n\n  // TODO: maybe this should still just return scroll props?\n  // Test against case where the ref isn't defined when this is called\n  // Think this was a problem when trying to attach to the scrollable body of the table in OnLoadMoreTableBodyScroll\n  useEvent(ref, 'scroll', onScroll);\n}\n"],"names":["modules","entry","mainEntry","parcelRequireName","globalName","globalObject","globalThis","self","window","global","previousRequire","cache","nodeRequire","module","require","bind","newRequire","name","jumped","currentRequire","err","Error","code","localRequire","resolve","x","id","Module","call","exports","res","isParcelRequire","moduleName","bundle","parent","register","Object","defineProperty","get","i","length","parcelHelpers","defineInteropFlag","export","_useId","useId","mergeIds","useSlotId","_chain","chain","_domHelpers","getOwnerDocument","getOwnerWindow","_mergeProps","mergeProps","_mergeRefs","mergeRefs","_filterDOMProps","filterDOMProps","_focusWithoutScrolling","focusWithoutScrolling","_getOffset","getOffset","_openLink","openLink","getSyntheticLinkProps","useSyntheticLinkProps","RouterProvider","shouldClientNavigate","useRouter","useLinkProps","_runAfterTransition","runAfterTransition","_useDrag1D","useDrag1D","_useGlobalListeners","useGlobalListeners","_useLabels","useLabels","_useObjectRef","useObjectRef","_useUpdateEffect","useUpdateEffect","_useLayoutEffect","useLayoutEffect","_useResizeObserver","useResizeObserver","_useSyncRef","useSyncRef","_getScrollParent","getScrollParent","_getScrollParents","getScrollParents","_isScrollable","isScrollable","_useViewportSize","useViewportSize","_useDescription","useDescription","_platform","isMac","isIPhone","isIPad","isIOS","isAppleDevice","isWebKit","isChrome","isAndroid","isFirefox","_useEvent","useEvent","_useValueEffect","useValueEffect","_scrollIntoView","scrollIntoView","scrollIntoViewport","_utils","clamp","snapValueToStep","_isVirtualEvent","isVirtualClick","isVirtualPointerEvent","_useEffectEvent","useEffectEvent","_useDeepMemo","useDeepMemo","_useFormReset","useFormReset","_useLoadMore","useLoadMore","_react","_ssr","_","canUseDOM","Boolean","document","createElement","idsUpdaterMap","Map","defaultId","value","setValue","useState","nextId","useRef","useSSRSafeId","updateValue","useCallback","val","current","has","includes","set","delete","useEffect","newId","idA","idB","setIdsA","forEach","fn","setIdsB","depArray","resolvedId","setResolvedId","updateId","getElementById","undefined","_reactDefault","interopDefault","default","_ssrprovider","SSRProvider","useIsSSR","defaultContext","prefix","String","Math","round","random","SSRContext","createContext","IsSSRContext","LegacySSRProvider","props","cur","useContext","counter","useCounter","isSSR","setIsSSR","useMemo","Provider","children","warnedAboutSSRProvider","console","warn","Fragment","componentIds","WeakMap","isDisabled","ctx","ref","currentOwner","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","prevComponentValue","state","memoizedState","didSSR","getSnapshot","getServerSnapshot","subscribe","onStoreChange","callbacks","args","callback","el","ownerDocument","doc","defaultView","_clsx","_clsxDefault","result","key","a","b","charCodeAt","clsx","e","t","f","n","arguments","r","Array","isArray","refs","DOMPropNames","Set","labelablePropNames","linkPropNames","propRe","opts","labelable","isLink","propNames","filteredProps","prop","prototype","hasOwnProperty","test","element","supportsPreventScroll","supportsPreventScrollCached","focusElem","focus","preventScroll","scrollableElements","getScrollableElements","parentNode","rootScrollingElement","scrollingElement","documentElement","HTMLElement","offsetHeight","scrollHeight","offsetWidth","scrollWidth","push","scrollTop","scrollLeft","restoreScrollPosition","_index","RouterContext","isNative","open","target","modifiers","getSyntheticLink","link","useHref","href","navigate","routerOptions","getAttribute","origin","location","hasAttribute","metaKey","ctrlKey","altKey","shiftKey","setOpening","event","type","startsWith","KeyboardEvent","keyIdentifier","MouseEvent","bubbles","cancelable","isOpening","dispatchEvent","HTMLAnchorElement","rel","download","ping","referrerPolicy","appendChild","removeChild","router","testUserAgent","re","navigator","brands","some","brand","userAgent","testPlatform","platform","cached","maxTouchPoints","transitionsByElement","transitionCallbacks","setupGlobalEvents","isTransitionEvent","onTransitionEnd","properties","propertyName","size","removeEventListener","cb","clear","body","addEventListener","transitions","once","add","requestAnimationFrame","readyState","globalListeners","addGlobalListener","eventTarget","listener","options","removeGlobalListener","removeAllGlobalListeners","defaultLabel","label","labelledBy","trim","split","join","forwardedRef","objRef","effect","dependencies","isInitialMount","lastDeps","dep","is","box","onResize","ResizeObserver","resizeObserverInstance","entries","observe","unobserve","context","node","checkForOverflow","scrollableNode","parentElement","style","getComputedStyle","overflow","overflowX","overflowY","clientHeight","clientWidth","scrollParents","visualViewport","setSize","width","height","getViewportSize","newSize","innerWidth","innerHeight","descriptionId","descriptionNodes","description","setId","desc","display","textContent","refCount","remove","handler","handleEvent","defaultValue","nextRef","newValue","next","done","queue","scrollView","offsetX","relativeOffset","offsetY","y","borderTopWidth","borderLeftWidth","borderAdjustedX","parseInt","borderAdjustedY","maxX","maxY","ancestor","child","axis","sum","offsetParent","contains","targetElement","root","scrollParent","left","originalLeft","top","originalTop","getBoundingClientRect","block","newLeft","newTop","abs","containingElement","inline","_useControlledState","useControlledState","_number","toFixedNumber","onChange","stateValue","setStateValue","isControlledRef","isControlled","wasControlled","currentValue","onChangeCaller","onChangeArgs","oldValue","functionArgs","interceptedValue","min","Infinity","max","roundToStepPrecision","step","roundedValue","stepString","toString","pointIndex","indexOf","precision","pow","Number","remainder","isNaN","snappedValue","sign","floor","digits","base","mozInputSource","isTrusted","pointerType","buttons","detail","pressure","isEqual","lastValue","initialValue","onReset","resetValue","handleReset","form","isLoading","onLoadMore","scrollOffset","items","isLoadingRef","prevProps","onScroll","lastItems"],"version":3,"file":"useButton.stories.75ff5da7.js.map"}