{"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,E,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,C,C,ECUC,IAAA,EAAA,EAAA,kD,E,iB,C,GAED,EAAA,MAAA,CAAA,EAAA,YAAA,IAAA,EAAA,SAAA,EACA,EAAA,MAAA,CAAA,EAAA,iBAAA,IAAA,EAAA,cAAA,EAAA,EAAA,MAAA,CAAA,EAAA,sBAAA,IAAA,EAAA,mBAAA,EACA,EAAA,MAAA,CAAA,EAAA,WAAA,IAAA,EAAA,QAAA,EACA,EAAA,MAAA,CAAA,EAAA,iBAAA,IAAA,EAAA,cAAA,EAAA,EAAA,MAAA,CAAA,EAAA,yBAAA,IAAA,EAAA,sBAAA,EAAA,EAAA,MAAA,CAAA,EAAA,yBAAA,IAAA,EAAA,sBAAA,EAAA,EAAA,MAAA,CAAA,EAAA,yBAAA,IAAA,EAAA,sBAAA,EAAA,EAAA,MAAA,CAAA,EAAA,yBAAA,IAAA,EAAA,sBAAA,EAAA,EAAA,MAAA,CAAA,EAAA,kBAAA,IAAA,EAAA,eAAA,EAAA,EAAA,MAAA,CAAA,E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","sources":["<anon>","packages/@react-aria/interactions/src/index.ts","packages/@react-aria/interactions/src/PressResponder.tsx","packages/@react-aria/interactions/src/context.ts","packages/@react-aria/interactions/src/useFocus.ts","packages/@react-aria/interactions/src/utils.ts","packages/@react-aria/interactions/src/useFocusVisible.ts","packages/@react-aria/interactions/src/useFocusWithin.ts","packages/@react-aria/interactions/src/useHover.ts","packages/@react-aria/interactions/src/useInteractOutside.ts","packages/@react-aria/interactions/src/useKeyboard.ts","packages/@react-aria/interactions/src/createEventHandler.ts","packages/@react-aria/interactions/src/useMove.ts","packages/@react-aria/interactions/src/textSelection.ts","packages/@react-aria/interactions/src/usePress.ts","packages/@react-aria/interactions/src/useScrollWheel.ts","packages/@react-aria/interactions/src/useLongPress.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 globalObject\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})({\"dtdXE\":[function(require,module,exports,__globalThis) {\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, \"Pressable\", ()=>(0, _pressable.Pressable));\nparcelHelpers.export(exports, \"PressResponder\", ()=>(0, _pressResponder.PressResponder));\nparcelHelpers.export(exports, \"ClearPressResponder\", ()=>(0, _pressResponder.ClearPressResponder));\nparcelHelpers.export(exports, \"useFocus\", ()=>(0, _useFocus.useFocus));\nparcelHelpers.export(exports, \"isFocusVisible\", ()=>(0, _useFocusVisible.isFocusVisible));\nparcelHelpers.export(exports, \"getInteractionModality\", ()=>(0, _useFocusVisible.getInteractionModality));\nparcelHelpers.export(exports, \"setInteractionModality\", ()=>(0, _useFocusVisible.setInteractionModality));\nparcelHelpers.export(exports, \"addWindowFocusTracking\", ()=>(0, _useFocusVisible.addWindowFocusTracking));\nparcelHelpers.export(exports, \"useInteractionModality\", ()=>(0, _useFocusVisible.useInteractionModality));\nparcelHelpers.export(exports, \"useFocusVisible\", ()=>(0, _useFocusVisible.useFocusVisible));\nparcelHelpers.export(exports, \"useFocusVisibleListener\", ()=>(0, _useFocusVisible.useFocusVisibleListener));\nparcelHelpers.export(exports, \"useFocusWithin\", ()=>(0, _useFocusWithin.useFocusWithin));\nparcelHelpers.export(exports, \"useHover\", ()=>(0, _useHover.useHover));\nparcelHelpers.export(exports, \"useInteractOutside\", ()=>(0, _useInteractOutside.useInteractOutside));\nparcelHelpers.export(exports, \"useKeyboard\", ()=>(0, _useKeyboard.useKeyboard));\nparcelHelpers.export(exports, \"useMove\", ()=>(0, _useMove.useMove));\nparcelHelpers.export(exports, \"usePress\", ()=>(0, _usePress.usePress));\nparcelHelpers.export(exports, \"useScrollWheel\", ()=>(0, _useScrollWheel.useScrollWheel));\nparcelHelpers.export(exports, \"useLongPress\", ()=>(0, _useLongPress.useLongPress));\nvar _pressable = require(\"./Pressable\");\nvar _pressResponder = require(\"./PressResponder\");\nvar _useFocus = require(\"./useFocus\");\nvar _useFocusVisible = require(\"./useFocusVisible\");\nvar _useFocusWithin = require(\"./useFocusWithin\");\nvar _useHover = require(\"./useHover\");\nvar _useInteractOutside = require(\"./useInteractOutside\");\nvar _useKeyboard = require(\"./useKeyboard\");\nvar _useMove = require(\"./useMove\");\nvar _usePress = require(\"./usePress\");\nvar _useScrollWheel = require(\"./useScrollWheel\");\nvar _useLongPress = require(\"./useLongPress\");\n\n},{\"./Pressable\":false,\"./PressResponder\":\"gV9F2\",\"./useFocus\":\"5lXaz\",\"./useFocusVisible\":\"cebUE\",\"./useFocusWithin\":\"ldMvb\",\"./useHover\":\"jXiCN\",\"./useInteractOutside\":\"az5o7\",\"./useKeyboard\":\"6oNef\",\"./useMove\":\"fAGcD\",\"./usePress\":\"fOpRp\",\"./useScrollWheel\":\"4d7Vp\",\"./useLongPress\":\"6FTm4\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"gV9F2\":[function(require,module,exports,__globalThis) {\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, \"PressResponder\", ()=>PressResponder);\nparcelHelpers.export(exports, \"ClearPressResponder\", ()=>ClearPressResponder);\nvar _utils = require(\"@react-aria/utils\");\nvar _context = require(\"./context\");\nvar _react = require(\"react\");\nvar _reactDefault = parcelHelpers.interopDefault(_react);\nconst PressResponder = /*#__PURE__*/ (0, _reactDefault.default).forwardRef(({ children, ...props }, ref)=>{\n let isRegistered = (0, _react.useRef)(false);\n let prevContext = (0, _react.useContext)((0, _context.PressResponderContext));\n ref = (0, _utils.useObjectRef)(ref || prevContext?.ref);\n let context = (0, _utils.mergeProps)(prevContext || {}, {\n ...props,\n ref,\n register () {\n isRegistered.current = true;\n if (prevContext) prevContext.register();\n }\n });\n (0, _utils.useSyncRef)(prevContext, ref);\n (0, _react.useEffect)(()=>{\n if (!isRegistered.current) {\n console.warn(\"A PressResponder was rendered without a pressable child. Either call the usePress hook, or wrap your DOM node with <Pressable> component.\");\n isRegistered.current = true; // only warn once in strict mode.\n }\n }, []);\n return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _context.PressResponderContext).Provider, {\n value: context\n }, children);\n});\nfunction ClearPressResponder({ children }) {\n let context = (0, _react.useMemo)(()=>({\n register: ()=>{}\n }), []);\n return /*#__PURE__*/ (0, _reactDefault.default).createElement((0, _context.PressResponderContext).Provider, {\n value: context\n }, children);\n}\n\n},{\"@react-aria/utils\":\"e9Yvo\",\"./context\":\"6hjZq\",\"react\":\"jEiK2\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"6hjZq\":[function(require,module,exports,__globalThis) {\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, \"PressResponderContext\", ()=>PressResponderContext);\nvar _react = require(\"react\");\nvar _reactDefault = parcelHelpers.interopDefault(_react);\nconst PressResponderContext = (0, _reactDefault.default).createContext({\n register: ()=>{}\n});\nPressResponderContext.displayName = 'PressResponderContext';\n\n},{\"react\":\"jEiK2\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"5lXaz\":[function(require,module,exports,__globalThis) {\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 */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\n/**\n * Handles focus events for the immediate target.\n * Focus events on child elements will be ignored.\n */ parcelHelpers.export(exports, \"useFocus\", ()=>useFocus);\nvar _react = require(\"react\");\nvar _utils = require(\"@react-aria/utils\");\nvar _utils1 = require(\"./utils\");\nfunction useFocus(props) {\n let { isDisabled, onFocus: onFocusProp, onBlur: onBlurProp, onFocusChange } = props;\n const onBlur = (0, _react.useCallback)((e)=>{\n if (e.target === e.currentTarget) {\n if (onBlurProp) onBlurProp(e);\n if (onFocusChange) onFocusChange(false);\n return true;\n }\n }, [\n onBlurProp,\n onFocusChange\n ]);\n const onSyntheticFocus = (0, _utils1.useSyntheticBlurEvent)(onBlur);\n const onFocus = (0, _react.useCallback)((e)=>{\n // Double check that document.activeElement actually matches e.target in case a previously chained\n // focus handler already moved focus somewhere else.\n const ownerDocument = (0, _utils.getOwnerDocument)(e.target);\n if (e.target === e.currentTarget && ownerDocument.activeElement === e.target) {\n if (onFocusProp) onFocusProp(e);\n if (onFocusChange) onFocusChange(true);\n onSyntheticFocus(e);\n }\n }, [\n onFocusChange,\n onFocusProp,\n onSyntheticFocus\n ]);\n return {\n focusProps: {\n onFocus: !isDisabled && (onFocusProp || onFocusChange || onBlurProp) ? onFocus : undefined,\n onBlur: !isDisabled && (onBlurProp || onFocusChange) ? onBlur : undefined\n }\n };\n}\n\n},{\"react\":\"jEiK2\",\"@react-aria/utils\":\"e9Yvo\",\"./utils\":\"9VJmY\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"9VJmY\":[function(require,module,exports,__globalThis) {\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, \"SyntheticFocusEvent\", ()=>SyntheticFocusEvent);\nparcelHelpers.export(exports, \"useSyntheticBlurEvent\", ()=>useSyntheticBlurEvent);\nparcelHelpers.export(exports, \"ignoreFocusEvent\", ()=>ignoreFocusEvent);\n/**\n * This function prevents the next focus event fired on `target`, without using `event.preventDefault()`.\n * It works by waiting for the series of focus events to occur, and reverts focus back to where it was before.\n * It also makes these events mostly non-observable by using a capturing listener on the window and stopping propagation.\n */ parcelHelpers.export(exports, \"preventFocus\", ()=>preventFocus);\nvar _utils = require(\"@react-aria/utils\");\nvar _react = require(\"react\");\nclass SyntheticFocusEvent {\n constructor(type, nativeEvent){\n this.nativeEvent = nativeEvent;\n this.target = nativeEvent.target;\n this.currentTarget = nativeEvent.currentTarget;\n this.relatedTarget = nativeEvent.relatedTarget;\n this.bubbles = nativeEvent.bubbles;\n this.cancelable = nativeEvent.cancelable;\n this.defaultPrevented = nativeEvent.defaultPrevented;\n this.eventPhase = nativeEvent.eventPhase;\n this.isTrusted = nativeEvent.isTrusted;\n this.timeStamp = nativeEvent.timeStamp;\n this.type = type;\n }\n isDefaultPrevented() {\n return this.nativeEvent.defaultPrevented;\n }\n preventDefault() {\n this.defaultPrevented = true;\n this.nativeEvent.preventDefault();\n }\n stopPropagation() {\n this.nativeEvent.stopPropagation();\n this.isPropagationStopped = ()=>true;\n }\n isPropagationStopped() {\n return false;\n }\n persist() {}\n}\nfunction useSyntheticBlurEvent(onBlur) {\n let stateRef = (0, _react.useRef)({\n isFocused: false,\n observer: null\n });\n // Clean up MutationObserver on unmount. See below.\n (0, _utils.useLayoutEffect)(()=>{\n const state = stateRef.current;\n return ()=>{\n if (state.observer) {\n state.observer.disconnect();\n state.observer = null;\n }\n };\n }, []);\n let dispatchBlur = (0, _utils.useEffectEvent)((e)=>{\n onBlur?.(e);\n });\n // This function is called during a React onFocus event.\n return (0, _react.useCallback)((e)=>{\n // React does not fire onBlur when an element is disabled. https://github.com/facebook/react/issues/9142\n // Most browsers fire a native focusout event in this case, except for Firefox. In that case, we use a\n // MutationObserver to watch for the disabled attribute, and dispatch these events ourselves.\n // For browsers that do, focusout fires before the MutationObserver, so onBlur should not fire twice.\n if (e.target instanceof HTMLButtonElement || e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLSelectElement) {\n stateRef.current.isFocused = true;\n let target = e.target;\n let onBlurHandler = (e)=>{\n stateRef.current.isFocused = false;\n if (target.disabled) // For backward compatibility, dispatch a (fake) React synthetic event.\n dispatchBlur(new SyntheticFocusEvent('blur', e));\n // We no longer need the MutationObserver once the target is blurred.\n if (stateRef.current.observer) {\n stateRef.current.observer.disconnect();\n stateRef.current.observer = null;\n }\n };\n target.addEventListener('focusout', onBlurHandler, {\n once: true\n });\n stateRef.current.observer = new MutationObserver(()=>{\n if (stateRef.current.isFocused && target.disabled) {\n stateRef.current.observer?.disconnect();\n let relatedTargetEl = target === document.activeElement ? null : document.activeElement;\n target.dispatchEvent(new FocusEvent('blur', {\n relatedTarget: relatedTargetEl\n }));\n target.dispatchEvent(new FocusEvent('focusout', {\n bubbles: true,\n relatedTarget: relatedTargetEl\n }));\n }\n });\n stateRef.current.observer.observe(target, {\n attributes: true,\n attributeFilter: [\n 'disabled'\n ]\n });\n }\n }, [\n dispatchBlur\n ]);\n}\nlet ignoreFocusEvent = false;\nfunction preventFocus(target) {\n // The browser will focus the nearest focusable ancestor of our target.\n while(target && !(0, _utils.isFocusable)(target))target = target.parentElement;\n let window = (0, _utils.getOwnerWindow)(target);\n let activeElement = window.document.activeElement;\n if (!activeElement || activeElement === target) return;\n ignoreFocusEvent = true;\n let isRefocusing = false;\n let onBlur = (e)=>{\n if (e.target === activeElement || isRefocusing) e.stopImmediatePropagation();\n };\n let onFocusOut = (e)=>{\n if (e.target === activeElement || isRefocusing) {\n e.stopImmediatePropagation();\n // If there was no focusable ancestor, we don't expect a focus event.\n // Re-focus the original active element here.\n if (!target && !isRefocusing) {\n isRefocusing = true;\n (0, _utils.focusWithoutScrolling)(activeElement);\n cleanup();\n }\n }\n };\n let onFocus = (e)=>{\n if (e.target === target || isRefocusing) e.stopImmediatePropagation();\n };\n let onFocusIn = (e)=>{\n if (e.target === target || isRefocusing) {\n e.stopImmediatePropagation();\n if (!isRefocusing) {\n isRefocusing = true;\n (0, _utils.focusWithoutScrolling)(activeElement);\n cleanup();\n }\n }\n };\n window.addEventListener('blur', onBlur, true);\n window.addEventListener('focusout', onFocusOut, true);\n window.addEventListener('focusin', onFocusIn, true);\n window.addEventListener('focus', onFocus, true);\n let cleanup = ()=>{\n cancelAnimationFrame(raf);\n window.removeEventListener('blur', onBlur, true);\n window.removeEventListener('focusout', onFocusOut, true);\n window.removeEventListener('focusin', onFocusIn, true);\n window.removeEventListener('focus', onFocus, true);\n ignoreFocusEvent = false;\n isRefocusing = false;\n };\n let raf = requestAnimationFrame(cleanup);\n return cleanup;\n}\n\n},{\"@react-aria/utils\":\"e9Yvo\",\"react\":\"jEiK2\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"cebUE\":[function(require,module,exports,__globalThis) {\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 */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"hasSetupGlobalListeners\", ()=>hasSetupGlobalListeners);\n/**\n * EXPERIMENTAL\n * Adds a window (i.e. iframe) to the list of windows that are being tracked for focus visible.\n *\n * Sometimes apps render portions of their tree into an iframe. In this case, we cannot accurately track if the focus\n * is visible because we cannot see interactions inside the iframe. If you have this in your application's architecture,\n * then this function will attach event listeners inside the iframe. You should call `addWindowFocusTracking` with an\n * element from inside the window you wish to add. We'll retrieve the relevant elements based on that.\n * Note, you do not need to call this for the default window, as we call it for you.\n *\n * When you are ready to stop listening, but you do not wish to unmount the iframe, you may call the cleanup function\n * returned by `addWindowFocusTracking`. Otherwise, when you unmount the iframe, all listeners and state will be cleaned\n * up automatically for you.\n *\n * @param element @default document.body - The element provided will be used to get the window to add.\n * @returns A function to remove the event listeners and cleanup the state.\n */ parcelHelpers.export(exports, \"addWindowFocusTracking\", ()=>addWindowFocusTracking);\n/**\n * If true, keyboard focus is visible.\n */ parcelHelpers.export(exports, \"isFocusVisible\", ()=>isFocusVisible);\nparcelHelpers.export(exports, \"getInteractionModality\", ()=>getInteractionModality);\nparcelHelpers.export(exports, \"setInteractionModality\", ()=>setInteractionModality);\n/**\n * Keeps state of the current modality.\n */ parcelHelpers.export(exports, \"useInteractionModality\", ()=>useInteractionModality);\n/**\n * Manages focus visible state for the page, and subscribes individual components for updates.\n */ parcelHelpers.export(exports, \"useFocusVisible\", ()=>useFocusVisible);\n/**\n * Listens for trigger change and reports if focus is visible (i.e., modality is not pointer).\n */ parcelHelpers.export(exports, \"useFocusVisibleListener\", ()=>useFocusVisibleListener);\nvar _utils = require(\"@react-aria/utils\");\nvar _utils1 = require(\"./utils\");\nvar _react = require(\"react\");\nvar _ssr = require(\"@react-aria/ssr\");\nlet currentModality = null;\nlet changeHandlers = new Set();\nlet hasSetupGlobalListeners = new Map(); // We use a map here to support setting event listeners across multiple document objects.\nlet hasEventBeforeFocus = false;\nlet hasBlurredWindowRecently = false;\n// Only Tab or Esc keys will make focus visible on text input elements\nconst FOCUS_VISIBLE_INPUT_KEYS = {\n Tab: true,\n Escape: true\n};\nfunction triggerChangeHandlers(modality, e) {\n for (let handler of changeHandlers)handler(modality, e);\n}\n/**\n * Helper function to determine if a KeyboardEvent is unmodified and could make keyboard focus styles visible.\n */ function isValidKey(e) {\n // Control and Shift keys trigger when navigating back to the tab with keyboard.\n return !(e.metaKey || !(0, _utils.isMac)() && e.altKey || e.ctrlKey || e.key === 'Control' || e.key === 'Shift' || e.key === 'Meta');\n}\nfunction handleKeyboardEvent(e) {\n hasEventBeforeFocus = true;\n if (isValidKey(e)) {\n currentModality = 'keyboard';\n triggerChangeHandlers('keyboard', e);\n }\n}\nfunction handlePointerEvent(e) {\n currentModality = 'pointer';\n if (e.type === 'mousedown' || e.type === 'pointerdown') {\n hasEventBeforeFocus = true;\n triggerChangeHandlers('pointer', e);\n }\n}\nfunction handleClickEvent(e) {\n if ((0, _utils.isVirtualClick)(e)) {\n hasEventBeforeFocus = true;\n currentModality = 'virtual';\n }\n}\nfunction handleFocusEvent(e) {\n // Firefox fires two extra focus events when the user first clicks into an iframe:\n // first on the window, then on the document. We ignore these events so they don't\n // cause keyboard focus rings to appear.\n if (e.target === window || e.target === document || (0, _utils1.ignoreFocusEvent)) return;\n // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.\n // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {\n currentModality = 'virtual';\n triggerChangeHandlers('virtual', e);\n }\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = false;\n}\nfunction handleWindowBlur() {\n if (0, _utils1.ignoreFocusEvent) return;\n // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n // for example, since a subsequent focus event won't be fired.\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = true;\n}\n/**\n * Setup global event listeners to control when keyboard focus style should be visible.\n */ function setupGlobalFocusEvents(element) {\n if (typeof window === 'undefined' || hasSetupGlobalListeners.get((0, _utils.getOwnerWindow)(element))) return;\n const windowObject = (0, _utils.getOwnerWindow)(element);\n const documentObject = (0, _utils.getOwnerDocument)(element);\n // Programmatic focus() calls shouldn't affect the current input modality.\n // However, we need to detect other cases when a focus event occurs without\n // a preceding user event (e.g. screen reader focus). Overriding the focus\n // method on HTMLElement.prototype is a bit hacky, but works.\n let focus = windowObject.HTMLElement.prototype.focus;\n windowObject.HTMLElement.prototype.focus = function() {\n hasEventBeforeFocus = true;\n focus.apply(this, arguments);\n };\n documentObject.addEventListener('keydown', handleKeyboardEvent, true);\n documentObject.addEventListener('keyup', handleKeyboardEvent, true);\n documentObject.addEventListener('click', handleClickEvent, true);\n // Register focus events on the window so they are sure to happen\n // before React's event listeners (registered on the document).\n windowObject.addEventListener('focus', handleFocusEvent, true);\n windowObject.addEventListener('blur', handleWindowBlur, false);\n if (typeof PointerEvent !== 'undefined') {\n documentObject.addEventListener('pointerdown', handlePointerEvent, true);\n documentObject.addEventListener('pointermove', handlePointerEvent, true);\n documentObject.addEventListener('pointerup', handlePointerEvent, true);\n } else {\n documentObject.addEventListener('mousedown', handlePointerEvent, true);\n documentObject.addEventListener('mousemove', handlePointerEvent, true);\n documentObject.addEventListener('mouseup', handlePointerEvent, true);\n }\n // Add unmount handler\n windowObject.addEventListener('beforeunload', ()=>{\n tearDownWindowFocusTracking(element);\n }, {\n once: true\n });\n hasSetupGlobalListeners.set(windowObject, {\n focus\n });\n}\nconst tearDownWindowFocusTracking = (element, loadListener)=>{\n const windowObject = (0, _utils.getOwnerWindow)(element);\n const documentObject = (0, _utils.getOwnerDocument)(element);\n if (loadListener) documentObject.removeEventListener('DOMContentLoaded', loadListener);\n if (!hasSetupGlobalListeners.has(windowObject)) return;\n windowObject.HTMLElement.prototype.focus = hasSetupGlobalListeners.get(windowObject).focus;\n documentObject.removeEventListener('keydown', handleKeyboardEvent, true);\n documentObject.removeEventListener('keyup', handleKeyboardEvent, true);\n documentObject.removeEventListener('click', handleClickEvent, true);\n windowObject.removeEventListener('focus', handleFocusEvent, true);\n windowObject.removeEventListener('blur', handleWindowBlur, false);\n if (typeof PointerEvent !== 'undefined') {\n documentObject.removeEventListener('pointerdown', handlePointerEvent, true);\n documentObject.removeEventListener('pointermove', handlePointerEvent, true);\n documentObject.removeEventListener('pointerup', handlePointerEvent, true);\n } else {\n documentObject.removeEventListener('mousedown', handlePointerEvent, true);\n documentObject.removeEventListener('mousemove', handlePointerEvent, true);\n documentObject.removeEventListener('mouseup', handlePointerEvent, true);\n }\n hasSetupGlobalListeners.delete(windowObject);\n};\nfunction addWindowFocusTracking(element) {\n const documentObject = (0, _utils.getOwnerDocument)(element);\n let loadListener;\n if (documentObject.readyState !== 'loading') setupGlobalFocusEvents(element);\n else {\n loadListener = ()=>{\n setupGlobalFocusEvents(element);\n };\n documentObject.addEventListener('DOMContentLoaded', loadListener);\n }\n return ()=>tearDownWindowFocusTracking(element, loadListener);\n}\n// Server-side rendering does not have the document object defined\n// eslint-disable-next-line no-restricted-globals\nif (typeof document !== 'undefined') addWindowFocusTracking();\nfunction isFocusVisible() {\n return currentModality !== 'pointer';\n}\nfunction getInteractionModality() {\n return currentModality;\n}\nfunction setInteractionModality(modality) {\n currentModality = modality;\n triggerChangeHandlers(modality, null);\n}\nfunction useInteractionModality() {\n setupGlobalFocusEvents();\n let [modality, setModality] = (0, _react.useState)(currentModality);\n (0, _react.useEffect)(()=>{\n let handler = ()=>{\n setModality(currentModality);\n };\n changeHandlers.add(handler);\n return ()=>{\n changeHandlers.delete(handler);\n };\n }, []);\n return (0, _ssr.useIsSSR)() ? null : modality;\n}\nconst nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\n/**\n * If this is attached to text input component, return if the event is a focus event (Tab/Escape keys pressed) so that\n * focus visible style can be properly set.\n */ function isKeyboardFocusEvent(isTextInput, modality, e) {\n let document1 = (0, _utils.getOwnerDocument)(e?.target);\n const IHTMLInputElement = typeof window !== 'undefined' ? (0, _utils.getOwnerWindow)(e?.target).HTMLInputElement : HTMLInputElement;\n const IHTMLTextAreaElement = typeof window !== 'undefined' ? (0, _utils.getOwnerWindow)(e?.target).HTMLTextAreaElement : HTMLTextAreaElement;\n const IHTMLElement = typeof window !== 'undefined' ? (0, _utils.getOwnerWindow)(e?.target).HTMLElement : HTMLElement;\n const IKeyboardEvent = typeof window !== 'undefined' ? (0, _utils.getOwnerWindow)(e?.target).KeyboardEvent : KeyboardEvent;\n // For keyboard events that occur on a non-input element that will move focus into input element (aka ArrowLeft going from Datepicker button to the main input group)\n // we need to rely on the user passing isTextInput into here. This way we can skip toggling focus visiblity for said input element\n isTextInput = isTextInput || document1.activeElement instanceof IHTMLInputElement && !nonTextInputTypes.has(document1.activeElement.type) || document1.activeElement instanceof IHTMLTextAreaElement || document1.activeElement instanceof IHTMLElement && document1.activeElement.isContentEditable;\n return !(isTextInput && modality === 'keyboard' && e instanceof IKeyboardEvent && !FOCUS_VISIBLE_INPUT_KEYS[e.key]);\n}\nfunction useFocusVisible(props = {}) {\n let { isTextInput, autoFocus } = props;\n let [isFocusVisibleState, setFocusVisible] = (0, _react.useState)(autoFocus || isFocusVisible());\n useFocusVisibleListener((isFocusVisible)=>{\n setFocusVisible(isFocusVisible);\n }, [\n isTextInput\n ], {\n isTextInput\n });\n return {\n isFocusVisible: isFocusVisibleState\n };\n}\nfunction useFocusVisibleListener(fn, deps, opts) {\n setupGlobalFocusEvents();\n (0, _react.useEffect)(()=>{\n let handler = (modality, e)=>{\n // We want to early return for any keyboard events that occur inside text inputs EXCEPT for Tab and Escape\n if (!isKeyboardFocusEvent(!!opts?.isTextInput, modality, e)) return;\n fn(isFocusVisible());\n };\n changeHandlers.add(handler);\n return ()=>{\n changeHandlers.delete(handler);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n}\n\n},{\"@react-aria/utils\":\"e9Yvo\",\"./utils\":\"9VJmY\",\"react\":\"jEiK2\",\"@react-aria/ssr\":\"jNw7O\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"ldMvb\":[function(require,module,exports,__globalThis) {\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 */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\n/**\n * Handles focus events for the target and its descendants.\n */ parcelHelpers.export(exports, \"useFocusWithin\", ()=>useFocusWithin);\nvar _react = require(\"react\");\nvar _utils = require(\"./utils\");\nfunction useFocusWithin(props) {\n let { isDisabled, onBlurWithin, onFocusWithin, onFocusWithinChange } = props;\n let state = (0, _react.useRef)({\n isFocusWithin: false\n });\n let onBlur = (0, _react.useCallback)((e)=>{\n // We don't want to trigger onBlurWithin and then immediately onFocusWithin again\n // when moving focus inside the element. Only trigger if the currentTarget doesn't\n // include the relatedTarget (where focus is moving).\n if (state.current.isFocusWithin && !e.currentTarget.contains(e.relatedTarget)) {\n state.current.isFocusWithin = false;\n if (onBlurWithin) onBlurWithin(e);\n if (onFocusWithinChange) onFocusWithinChange(false);\n }\n }, [\n onBlurWithin,\n onFocusWithinChange,\n state\n ]);\n let onSyntheticFocus = (0, _utils.useSyntheticBlurEvent)(onBlur);\n let onFocus = (0, _react.useCallback)((e)=>{\n // Double check that document.activeElement actually matches e.target in case a previously chained\n // focus handler already moved focus somewhere else.\n if (!state.current.isFocusWithin && document.activeElement === e.target) {\n if (onFocusWithin) onFocusWithin(e);\n if (onFocusWithinChange) onFocusWithinChange(true);\n state.current.isFocusWithin = true;\n onSyntheticFocus(e);\n }\n }, [\n onFocusWithin,\n onFocusWithinChange,\n onSyntheticFocus\n ]);\n if (isDisabled) return {\n focusWithinProps: {\n // These should not have been null, that would conflict in mergeProps\n onFocus: undefined,\n onBlur: undefined\n }\n };\n return {\n focusWithinProps: {\n onFocus,\n onBlur\n }\n };\n}\n\n},{\"react\":\"jEiK2\",\"./utils\":\"9VJmY\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"jXiCN\":[function(require,module,exports,__globalThis) {\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 */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\n/**\n * Handles pointer hover interactions for an element. Normalizes behavior\n * across browsers and platforms, and ignores emulated mouse events on touch devices.\n */ parcelHelpers.export(exports, \"useHover\", ()=>useHover);\nvar _react = require(\"react\");\n// iOS fires onPointerEnter twice: once with pointerType=\"touch\" and again with pointerType=\"mouse\".\n// We want to ignore these emulated events so they do not trigger hover behavior.\n// See https://bugs.webkit.org/show_bug.cgi?id=214609.\nlet globalIgnoreEmulatedMouseEvents = false;\nlet hoverCount = 0;\nfunction setGlobalIgnoreEmulatedMouseEvents() {\n globalIgnoreEmulatedMouseEvents = true;\n // Clear globalIgnoreEmulatedMouseEvents after a short timeout. iOS fires onPointerEnter\n // with pointerType=\"mouse\" immediately after onPointerUp and before onFocus. On other\n // devices that don't have this quirk, we don't want to ignore a mouse hover sometime in\n // the distant future because a user previously touched the element.\n setTimeout(()=>{\n globalIgnoreEmulatedMouseEvents = false;\n }, 50);\n}\nfunction handleGlobalPointerEvent(e) {\n if (e.pointerType === 'touch') setGlobalIgnoreEmulatedMouseEvents();\n}\nfunction setupGlobalTouchEvents() {\n if (typeof document === 'undefined') return;\n if (typeof PointerEvent !== 'undefined') document.addEventListener('pointerup', handleGlobalPointerEvent);\n else document.addEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n hoverCount++;\n return ()=>{\n hoverCount--;\n if (hoverCount > 0) return;\n if (typeof PointerEvent !== 'undefined') document.removeEventListener('pointerup', handleGlobalPointerEvent);\n else document.removeEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n };\n}\nfunction useHover(props) {\n let { onHoverStart, onHoverChange, onHoverEnd, isDisabled } = props;\n let [isHovered, setHovered] = (0, _react.useState)(false);\n let state = (0, _react.useRef)({\n isHovered: false,\n ignoreEmulatedMouseEvents: false,\n pointerType: '',\n target: null\n }).current;\n (0, _react.useEffect)(setupGlobalTouchEvents, []);\n let { hoverProps, triggerHoverEnd } = (0, _react.useMemo)(()=>{\n let triggerHoverStart = (event, pointerType)=>{\n state.pointerType = pointerType;\n if (isDisabled || pointerType === 'touch' || state.isHovered || !event.currentTarget.contains(event.target)) return;\n state.isHovered = true;\n let target = event.currentTarget;\n state.target = target;\n if (onHoverStart) onHoverStart({\n type: 'hoverstart',\n target,\n pointerType\n });\n if (onHoverChange) onHoverChange(true);\n setHovered(true);\n };\n let triggerHoverEnd = (event, pointerType)=>{\n state.pointerType = '';\n state.target = null;\n if (pointerType === 'touch' || !state.isHovered) return;\n state.isHovered = false;\n let target = event.currentTarget;\n if (onHoverEnd) onHoverEnd({\n type: 'hoverend',\n target,\n pointerType\n });\n if (onHoverChange) onHoverChange(false);\n setHovered(false);\n };\n let hoverProps = {};\n if (typeof PointerEvent !== 'undefined') {\n hoverProps.onPointerEnter = (e)=>{\n if (globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') return;\n triggerHoverStart(e, e.pointerType);\n };\n hoverProps.onPointerLeave = (e)=>{\n if (!isDisabled && e.currentTarget.contains(e.target)) triggerHoverEnd(e, e.pointerType);\n };\n } else {\n hoverProps.onTouchStart = ()=>{\n state.ignoreEmulatedMouseEvents = true;\n };\n hoverProps.onMouseEnter = (e)=>{\n if (!state.ignoreEmulatedMouseEvents && !globalIgnoreEmulatedMouseEvents) triggerHoverStart(e, 'mouse');\n state.ignoreEmulatedMouseEvents = false;\n };\n hoverProps.onMouseLeave = (e)=>{\n if (!isDisabled && e.currentTarget.contains(e.target)) triggerHoverEnd(e, 'mouse');\n };\n }\n return {\n hoverProps,\n triggerHoverEnd\n };\n }, [\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n isDisabled,\n state\n ]);\n (0, _react.useEffect)(()=>{\n // Call the triggerHoverEnd as soon as isDisabled changes to true\n // Safe to call triggerHoverEnd, it will early return if we aren't currently hovering\n if (isDisabled) triggerHoverEnd({\n currentTarget: state.target\n }, state.pointerType);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n isDisabled\n ]);\n return {\n hoverProps,\n isHovered\n };\n}\n\n},{\"react\":\"jEiK2\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"az5o7\":[function(require,module,exports,__globalThis) {\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 */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\n/**\n * Example, used in components like Dialogs and Popovers so they can close\n * when a user clicks outside them.\n */ parcelHelpers.export(exports, \"useInteractOutside\", ()=>useInteractOutside);\nvar _utils = require(\"@react-aria/utils\");\nvar _react = require(\"react\");\nfunction useInteractOutside(props) {\n let { ref, onInteractOutside, isDisabled, onInteractOutsideStart } = props;\n let stateRef = (0, _react.useRef)({\n isPointerDown: false,\n ignoreEmulatedMouseEvents: false\n });\n let onPointerDown = (0, _utils.useEffectEvent)((e)=>{\n if (onInteractOutside && isValidEvent(e, ref)) {\n if (onInteractOutsideStart) onInteractOutsideStart(e);\n stateRef.current.isPointerDown = true;\n }\n });\n let triggerInteractOutside = (0, _utils.useEffectEvent)((e)=>{\n if (onInteractOutside) onInteractOutside(e);\n });\n (0, _react.useEffect)(()=>{\n let state = stateRef.current;\n if (isDisabled) return;\n const element = ref.current;\n const documentObject = (0, _utils.getOwnerDocument)(element);\n // Use pointer events if available. Otherwise, fall back to mouse and touch events.\n if (typeof PointerEvent !== 'undefined') {\n let onPointerUp = (e)=>{\n if (state.isPointerDown && isValidEvent(e, ref)) triggerInteractOutside(e);\n state.isPointerDown = false;\n };\n // changing these to capture phase fixed combobox\n documentObject.addEventListener('pointerdown', onPointerDown, true);\n documentObject.addEventListener('pointerup', onPointerUp, true);\n return ()=>{\n documentObject.removeEventListener('pointerdown', onPointerDown, true);\n documentObject.removeEventListener('pointerup', onPointerUp, true);\n };\n } else {\n let onMouseUp = (e)=>{\n if (state.ignoreEmulatedMouseEvents) state.ignoreEmulatedMouseEvents = false;\n else if (state.isPointerDown && isValidEvent(e, ref)) triggerInteractOutside(e);\n state.isPointerDown = false;\n };\n let onTouchEnd = (e)=>{\n state.ignoreEmulatedMouseEvents = true;\n if (state.isPointerDown && isValidEvent(e, ref)) triggerInteractOutside(e);\n state.isPointerDown = false;\n };\n documentObject.addEventListener('mousedown', onPointerDown, true);\n documentObject.addEventListener('mouseup', onMouseUp, true);\n documentObject.addEventListener('touchstart', onPointerDown, true);\n documentObject.addEventListener('touchend', onTouchEnd, true);\n return ()=>{\n documentObject.removeEventListener('mousedown', onPointerDown, true);\n documentObject.removeEventListener('mouseup', onMouseUp, true);\n documentObject.removeEventListener('touchstart', onPointerDown, true);\n documentObject.removeEventListener('touchend', onTouchEnd, true);\n };\n }\n }, [\n ref,\n isDisabled,\n onPointerDown,\n triggerInteractOutside\n ]);\n}\nfunction isValidEvent(event, ref) {\n if (event.button > 0) return false;\n if (event.target) {\n // if the event target is no longer in the document, ignore\n const ownerDocument = event.target.ownerDocument;\n if (!ownerDocument || !ownerDocument.documentElement.contains(event.target)) return false;\n // If the target is within a top layer element (e.g. toasts), ignore.\n if (event.target.closest('[data-react-aria-top-layer]')) return false;\n }\n return ref.current && !ref.current.contains(event.target);\n}\n\n},{\"@react-aria/utils\":\"e9Yvo\",\"react\":\"jEiK2\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"6oNef\":[function(require,module,exports,__globalThis) {\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 * Handles keyboard interactions for a focusable element.\n */ parcelHelpers.export(exports, \"useKeyboard\", ()=>useKeyboard);\nvar _createEventHandler = require(\"./createEventHandler\");\nfunction useKeyboard(props) {\n return {\n keyboardProps: props.isDisabled ? {} : {\n onKeyDown: (0, _createEventHandler.createEventHandler)(props.onKeyDown),\n onKeyUp: (0, _createEventHandler.createEventHandler)(props.onKeyUp)\n }\n };\n}\n\n},{\"./createEventHandler\":\"1as4h\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"1as4h\":[function(require,module,exports,__globalThis) {\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 * This function wraps a React event handler to make stopPropagation the default, and support continuePropagation instead.\n */ parcelHelpers.export(exports, \"createEventHandler\", ()=>createEventHandler);\nfunction createEventHandler(handler) {\n if (!handler) return undefined;\n let shouldStopPropagation = true;\n return (e)=>{\n let event = {\n ...e,\n preventDefault () {\n e.preventDefault();\n },\n isDefaultPrevented () {\n return e.isDefaultPrevented();\n },\n stopPropagation () {\n if (shouldStopPropagation) console.error('stopPropagation is now the default behavior for events in React Spectrum. You can use continuePropagation() to revert this behavior.');\n else shouldStopPropagation = true;\n },\n continuePropagation () {\n shouldStopPropagation = false;\n },\n isPropagationStopped () {\n return shouldStopPropagation;\n }\n };\n handler(event);\n if (shouldStopPropagation) e.stopPropagation();\n };\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"fAGcD\":[function(require,module,exports,__globalThis) {\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 * Handles move interactions across mouse, touch, and keyboard, including dragging with\n * the mouse or touch, and using the arrow keys. Normalizes behavior across browsers and\n * platforms, and ignores emulated mouse events on touch devices.\n */ parcelHelpers.export(exports, \"useMove\", ()=>useMove);\nvar _textSelection = require(\"./textSelection\");\nvar _react = require(\"react\");\nvar _utils = require(\"@react-aria/utils\");\nfunction useMove(props) {\n let { onMoveStart, onMove, onMoveEnd } = props;\n let state = (0, _react.useRef)({\n didMove: false,\n lastPosition: null,\n id: null\n });\n let { addGlobalListener, removeGlobalListener } = (0, _utils.useGlobalListeners)();\n let move = (0, _utils.useEffectEvent)((originalEvent, pointerType, deltaX, deltaY)=>{\n if (deltaX === 0 && deltaY === 0) return;\n if (!state.current.didMove) {\n state.current.didMove = true;\n onMoveStart?.({\n type: 'movestart',\n pointerType,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n onMove?.({\n type: 'move',\n pointerType,\n deltaX: deltaX,\n deltaY: deltaY,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n });\n let end = (0, _utils.useEffectEvent)((originalEvent, pointerType)=>{\n (0, _textSelection.restoreTextSelection)();\n if (state.current.didMove) onMoveEnd?.({\n type: 'moveend',\n pointerType,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n });\n let moveProps = (0, _react.useMemo)(()=>{\n let moveProps = {};\n let start = ()=>{\n (0, _textSelection.disableTextSelection)();\n state.current.didMove = false;\n };\n if (typeof PointerEvent === 'undefined') {\n let onMouseMove = (e)=>{\n if (e.button === 0) {\n move(e, 'mouse', e.pageX - (state.current.lastPosition?.pageX ?? 0), e.pageY - (state.current.lastPosition?.pageY ?? 0));\n state.current.lastPosition = {\n pageX: e.pageX,\n pageY: e.pageY\n };\n }\n };\n let onMouseUp = (e)=>{\n if (e.button === 0) {\n end(e, 'mouse');\n removeGlobalListener(window, 'mousemove', onMouseMove, false);\n removeGlobalListener(window, 'mouseup', onMouseUp, false);\n }\n };\n moveProps.onMouseDown = (e)=>{\n if (e.button === 0) {\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {\n pageX: e.pageX,\n pageY: e.pageY\n };\n addGlobalListener(window, 'mousemove', onMouseMove, false);\n addGlobalListener(window, 'mouseup', onMouseUp, false);\n }\n };\n let onTouchMove = (e)=>{\n let touch = [\n ...e.changedTouches\n ].findIndex(({ identifier })=>identifier === state.current.id);\n if (touch >= 0) {\n let { pageX, pageY } = e.changedTouches[touch];\n move(e, 'touch', pageX - (state.current.lastPosition?.pageX ?? 0), pageY - (state.current.lastPosition?.pageY ?? 0));\n state.current.lastPosition = {\n pageX,\n pageY\n };\n }\n };\n let onTouchEnd = (e)=>{\n let touch = [\n ...e.changedTouches\n ].findIndex(({ identifier })=>identifier === state.current.id);\n if (touch >= 0) {\n end(e, 'touch');\n state.current.id = null;\n removeGlobalListener(window, 'touchmove', onTouchMove);\n removeGlobalListener(window, 'touchend', onTouchEnd);\n removeGlobalListener(window, 'touchcancel', onTouchEnd);\n }\n };\n moveProps.onTouchStart = (e)=>{\n if (e.changedTouches.length === 0 || state.current.id != null) return;\n let { pageX, pageY, identifier } = e.changedTouches[0];\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {\n pageX,\n pageY\n };\n state.current.id = identifier;\n addGlobalListener(window, 'touchmove', onTouchMove, false);\n addGlobalListener(window, 'touchend', onTouchEnd, false);\n addGlobalListener(window, 'touchcancel', onTouchEnd, false);\n };\n } else {\n let onPointerMove = (e)=>{\n if (e.pointerId === state.current.id) {\n let pointerType = e.pointerType || 'mouse';\n // Problems with PointerEvent#movementX/movementY:\n // 1. it is always 0 on macOS Safari.\n // 2. On Chrome Android, it's scaled by devicePixelRatio, but not on Chrome macOS\n move(e, pointerType, e.pageX - (state.current.lastPosition?.pageX ?? 0), e.pageY - (state.current.lastPosition?.pageY ?? 0));\n state.current.lastPosition = {\n pageX: e.pageX,\n pageY: e.pageY\n };\n }\n };\n let onPointerUp = (e)=>{\n if (e.pointerId === state.current.id) {\n let pointerType = e.pointerType || 'mouse';\n end(e, pointerType);\n state.current.id = null;\n removeGlobalListener(window, 'pointermove', onPointerMove, false);\n removeGlobalListener(window, 'pointerup', onPointerUp, false);\n removeGlobalListener(window, 'pointercancel', onPointerUp, false);\n }\n };\n moveProps.onPointerDown = (e)=>{\n if (e.button === 0 && state.current.id == null) {\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {\n pageX: e.pageX,\n pageY: e.pageY\n };\n state.current.id = e.pointerId;\n addGlobalListener(window, 'pointermove', onPointerMove, false);\n addGlobalListener(window, 'pointerup', onPointerUp, false);\n addGlobalListener(window, 'pointercancel', onPointerUp, false);\n }\n };\n }\n let triggerKeyboardMove = (e, deltaX, deltaY)=>{\n start();\n move(e, 'keyboard', deltaX, deltaY);\n end(e, 'keyboard');\n };\n moveProps.onKeyDown = (e)=>{\n switch(e.key){\n case 'Left':\n case 'ArrowLeft':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, -1, 0);\n break;\n case 'Right':\n case 'ArrowRight':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 1, 0);\n break;\n case 'Up':\n case 'ArrowUp':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 0, -1);\n break;\n case 'Down':\n case 'ArrowDown':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 0, 1);\n break;\n }\n };\n return moveProps;\n }, [\n state,\n addGlobalListener,\n removeGlobalListener,\n move,\n end\n ]);\n return {\n moveProps\n };\n}\n\n},{\"./textSelection\":\"7DdaW\",\"react\":\"jEiK2\",\"@react-aria/utils\":\"e9Yvo\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"7DdaW\":[function(require,module,exports,__globalThis) {\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, \"disableTextSelection\", ()=>disableTextSelection);\nparcelHelpers.export(exports, \"restoreTextSelection\", ()=>restoreTextSelection);\nvar _utils = require(\"@react-aria/utils\");\n// Note that state only matters here for iOS. Non-iOS gets user-select: none applied to the target element\n// rather than at the document level so we just need to apply/remove user-select: none for each pressed element individually\nlet state = 'default';\nlet savedUserSelect = '';\nlet modifiedElementMap = new WeakMap();\nfunction disableTextSelection(target) {\n if ((0, _utils.isIOS)()) {\n if (state === 'default') {\n const documentObject = (0, _utils.getOwnerDocument)(target);\n savedUserSelect = documentObject.documentElement.style.webkitUserSelect;\n documentObject.documentElement.style.webkitUserSelect = 'none';\n }\n state = 'disabled';\n } else if (target instanceof HTMLElement || target instanceof SVGElement) {\n // If not iOS, store the target's original user-select and change to user-select: none\n // Ignore state since it doesn't apply for non iOS\n modifiedElementMap.set(target, target.style.userSelect);\n target.style.userSelect = 'none';\n }\n}\nfunction restoreTextSelection(target) {\n if ((0, _utils.isIOS)()) {\n // If the state is already default, there's nothing to do.\n // If it is restoring, then there's no need to queue a second restore.\n if (state !== 'disabled') return;\n state = 'restoring';\n // There appears to be a delay on iOS where selection still might occur\n // after pointer up, so wait a bit before removing user-select.\n setTimeout(()=>{\n // Wait for any CSS transitions to complete so we don't recompute style\n // for the whole page in the middle of the animation and cause jank.\n (0, _utils.runAfterTransition)(()=>{\n // Avoid race conditions\n if (state === 'restoring') {\n const documentObject = (0, _utils.getOwnerDocument)(target);\n if (documentObject.documentElement.style.webkitUserSelect === 'none') documentObject.documentElement.style.webkitUserSelect = savedUserSelect || '';\n savedUserSelect = '';\n state = 'default';\n }\n });\n }, 300);\n } else if (target instanceof HTMLElement || target instanceof SVGElement) // If not iOS, restore the target's original user-select if any\n // Ignore state since it doesn't apply for non iOS\n {\n if (target && modifiedElementMap.has(target)) {\n let targetOldUserSelect = modifiedElementMap.get(target);\n if (target.style.userSelect === 'none') target.style.userSelect = targetOldUserSelect;\n if (target.getAttribute('style') === '') target.removeAttribute('style');\n modifiedElementMap.delete(target);\n }\n }\n}\n\n},{\"@react-aria/utils\":\"e9Yvo\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"fOpRp\":[function(require,module,exports,__globalThis) {\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 */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\n/**\n * Handles press interactions across mouse, touch, keyboard, and screen readers.\n * It normalizes behavior across browsers and platforms, and handles many nuances\n * of dealing with pointer and keyboard events.\n */ parcelHelpers.export(exports, \"usePress\", ()=>usePress);\nvar _utils = require(\"@react-aria/utils\");\nvar _textSelection = require(\"./textSelection\");\nvar _reactDom = require(\"react-dom\");\nvar _context = require(\"./context\");\nvar _utils1 = require(\"./utils\");\nvar _react = require(\"react\");\nfunction usePressResponderContext(props) {\n // Consume context from <PressResponder> and merge with props.\n let context = (0, _react.useContext)((0, _context.PressResponderContext));\n if (context) {\n let { register, ...contextProps } = context;\n props = (0, _utils.mergeProps)(contextProps, props);\n register();\n }\n (0, _utils.useSyncRef)(context, props.ref);\n return props;\n}\nclass PressEvent {\n #shouldStopPropagation;\n constructor(type, pointerType, originalEvent, state){\n this.#shouldStopPropagation = true;\n let currentTarget = state?.target ?? originalEvent.currentTarget;\n const rect = currentTarget?.getBoundingClientRect();\n let x, y = 0;\n let clientX, clientY = null;\n if (originalEvent.clientX != null && originalEvent.clientY != null) {\n clientX = originalEvent.clientX;\n clientY = originalEvent.clientY;\n }\n if (rect) {\n if (clientX != null && clientY != null) {\n x = clientX - rect.left;\n y = clientY - rect.top;\n } else {\n x = rect.width / 2;\n y = rect.height / 2;\n }\n }\n this.type = type;\n this.pointerType = pointerType;\n this.target = originalEvent.currentTarget;\n this.shiftKey = originalEvent.shiftKey;\n this.metaKey = originalEvent.metaKey;\n this.ctrlKey = originalEvent.ctrlKey;\n this.altKey = originalEvent.altKey;\n this.x = x;\n this.y = y;\n }\n continuePropagation() {\n this.#shouldStopPropagation = false;\n }\n get shouldStopPropagation() {\n return this.#shouldStopPropagation;\n }\n}\nconst LINK_CLICKED = Symbol('linkClicked');\nfunction usePress(props) {\n let { onPress, onPressChange, onPressStart, onPressEnd, onPressUp, isDisabled, isPressed: isPressedProp, preventFocusOnPress, shouldCancelOnPointerExit, allowTextSelectionOnPress, // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ref: _, ...domProps } = usePressResponderContext(props);\n let [isPressed, setPressed] = (0, _react.useState)(false);\n let ref = (0, _react.useRef)({\n isPressed: false,\n ignoreEmulatedMouseEvents: false,\n didFirePressStart: false,\n isTriggeringEvent: false,\n activePointerId: null,\n target: null,\n isOverTarget: false,\n pointerType: null,\n disposables: []\n });\n let { addGlobalListener, removeAllGlobalListeners } = (0, _utils.useGlobalListeners)();\n let triggerPressStart = (0, _utils.useEffectEvent)((originalEvent, pointerType)=>{\n let state = ref.current;\n if (isDisabled || state.didFirePressStart) return false;\n let shouldStopPropagation = true;\n state.isTriggeringEvent = true;\n if (onPressStart) {\n let event = new PressEvent('pressstart', pointerType, originalEvent);\n onPressStart(event);\n shouldStopPropagation = event.shouldStopPropagation;\n }\n if (onPressChange) onPressChange(true);\n state.isTriggeringEvent = false;\n state.didFirePressStart = true;\n setPressed(true);\n return shouldStopPropagation;\n });\n let triggerPressEnd = (0, _utils.useEffectEvent)((originalEvent, pointerType, wasPressed = true)=>{\n let state = ref.current;\n if (!state.didFirePressStart) return false;\n state.didFirePressStart = false;\n state.isTriggeringEvent = true;\n let shouldStopPropagation = true;\n if (onPressEnd) {\n let event = new PressEvent('pressend', pointerType, originalEvent);\n onPressEnd(event);\n shouldStopPropagation = event.shouldStopPropagation;\n }\n if (onPressChange) onPressChange(false);\n setPressed(false);\n if (onPress && wasPressed && !isDisabled) {\n let event = new PressEvent('press', pointerType, originalEvent);\n onPress(event);\n shouldStopPropagation &&= event.shouldStopPropagation;\n }\n state.isTriggeringEvent = false;\n return shouldStopPropagation;\n });\n let triggerPressUp = (0, _utils.useEffectEvent)((originalEvent, pointerType)=>{\n let state = ref.current;\n if (isDisabled) return false;\n if (onPressUp) {\n state.isTriggeringEvent = true;\n let event = new PressEvent('pressup', pointerType, originalEvent);\n onPressUp(event);\n state.isTriggeringEvent = false;\n return event.shouldStopPropagation;\n }\n return true;\n });\n let cancel = (0, _utils.useEffectEvent)((e)=>{\n let state = ref.current;\n if (state.isPressed && state.target) {\n if (state.didFirePressStart && state.pointerType != null) triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) (0, _textSelection.restoreTextSelection)(state.target);\n for (let dispose of state.disposables)dispose();\n state.disposables = [];\n }\n });\n let cancelOnPointerExit = (0, _utils.useEffectEvent)((e)=>{\n if (shouldCancelOnPointerExit) cancel(e);\n });\n let pressProps = (0, _react.useMemo)(()=>{\n let state = ref.current;\n let pressProps = {\n onKeyDown (e) {\n if (isValidKeyboardEvent(e.nativeEvent, e.currentTarget) && e.currentTarget.contains(e.target)) {\n if (shouldPreventDefaultKeyboard(e.target, e.key)) e.preventDefault();\n // If the event is repeating, it may have started on a different element\n // after which focus moved to the current element. Ignore these events and\n // only handle the first key down event.\n let shouldStopPropagation = true;\n if (!state.isPressed && !e.repeat) {\n state.target = e.currentTarget;\n state.isPressed = true;\n state.pointerType = 'keyboard';\n shouldStopPropagation = triggerPressStart(e, 'keyboard');\n // Focus may move before the key up event, so register the event on the document\n // instead of the same element where the key down event occurred. Make it capturing so that it will trigger\n // before stopPropagation from useKeyboard on a child element may happen and thus we can still call triggerPress for the parent element.\n let originalTarget = e.currentTarget;\n let pressUp = (e)=>{\n if (isValidKeyboardEvent(e, originalTarget) && !e.repeat && originalTarget.contains(e.target) && state.target) triggerPressUp(createEvent(state.target, e), 'keyboard');\n };\n addGlobalListener((0, _utils.getOwnerDocument)(e.currentTarget), 'keyup', (0, _utils.chain)(pressUp, onKeyUp), true);\n }\n if (shouldStopPropagation) e.stopPropagation();\n // Keep track of the keydown events that occur while the Meta (e.g. Command) key is held.\n // macOS has a bug where keyup events are not fired while the Meta key is down.\n // When the Meta key itself is released we will get an event for that, and we'll act as if\n // all of these other keys were released as well.\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1393524\n // https://bugs.webkit.org/show_bug.cgi?id=55291\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1299553\n if (e.metaKey && (0, _utils.isMac)()) state.metaKeyEvents?.set(e.key, e.nativeEvent);\n } else if (e.key === 'Meta') state.metaKeyEvents = new Map();\n },\n onClick (e) {\n if (e && !e.currentTarget.contains(e.target)) return;\n if (e && e.button === 0 && !state.isTriggeringEvent && !(0, _utils.openLink).isOpening) {\n let shouldStopPropagation = true;\n if (isDisabled) e.preventDefault();\n // If triggered from a screen reader or by using element.click(),\n // trigger as if it were a keyboard click.\n if (!state.ignoreEmulatedMouseEvents && !state.isPressed && (state.pointerType === 'virtual' || (0, _utils.isVirtualClick)(e.nativeEvent))) {\n let stopPressStart = triggerPressStart(e, 'virtual');\n let stopPressUp = triggerPressUp(e, 'virtual');\n let stopPressEnd = triggerPressEnd(e, 'virtual');\n shouldStopPropagation = stopPressStart && stopPressUp && stopPressEnd;\n } else if (state.isPressed && state.pointerType !== 'keyboard') {\n let pointerType = state.pointerType || e.nativeEvent.pointerType || 'virtual';\n shouldStopPropagation = triggerPressEnd(createEvent(e.currentTarget, e), pointerType, true);\n state.isOverTarget = false;\n cancel(e);\n }\n state.ignoreEmulatedMouseEvents = false;\n if (shouldStopPropagation) e.stopPropagation();\n }\n }\n };\n let onKeyUp = (e)=>{\n if (state.isPressed && state.target && isValidKeyboardEvent(e, state.target)) {\n if (shouldPreventDefaultKeyboard(e.target, e.key)) e.preventDefault();\n let target = e.target;\n triggerPressEnd(createEvent(state.target, e), 'keyboard', state.target.contains(target));\n removeAllGlobalListeners();\n // If a link was triggered with a key other than Enter, open the URL ourselves.\n // This means the link has a role override, and the default browser behavior\n // only applies when using the Enter key.\n if (e.key !== 'Enter' && isHTMLAnchorLink(state.target) && state.target.contains(target) && !e[LINK_CLICKED]) {\n // Store a hidden property on the event so we only trigger link click once,\n // even if there are multiple usePress instances attached to the element.\n e[LINK_CLICKED] = true;\n (0, _utils.openLink)(state.target, e, false);\n }\n state.isPressed = false;\n state.metaKeyEvents?.delete(e.key);\n } else if (e.key === 'Meta' && state.metaKeyEvents?.size) {\n // If we recorded keydown events that occurred while the Meta key was pressed,\n // and those haven't received keyup events already, fire keyup events ourselves.\n // See comment above for more info about the macOS bug causing this.\n let events = state.metaKeyEvents;\n state.metaKeyEvents = undefined;\n for (let event of events.values())state.target?.dispatchEvent(new KeyboardEvent('keyup', event));\n }\n };\n if (typeof PointerEvent !== 'undefined') {\n pressProps.onPointerDown = (e)=>{\n // Only handle left clicks, and ignore events that bubbled through portals.\n if (e.button !== 0 || !e.currentTarget.contains(e.target)) return;\n // iOS safari fires pointer events from VoiceOver with incorrect coordinates/target.\n // Ignore and let the onClick handler take care of it instead.\n // https://bugs.webkit.org/show_bug.cgi?id=222627\n // https://bugs.webkit.org/show_bug.cgi?id=223202\n if ((0, _utils.isVirtualPointerEvent)(e.nativeEvent)) {\n state.pointerType = 'virtual';\n return;\n }\n state.pointerType = e.pointerType;\n let shouldStopPropagation = true;\n if (!state.isPressed) {\n state.isPressed = true;\n state.isOverTarget = true;\n state.activePointerId = e.pointerId;\n state.target = e.currentTarget;\n if (!allowTextSelectionOnPress) (0, _textSelection.disableTextSelection)(state.target);\n shouldStopPropagation = triggerPressStart(e, state.pointerType);\n // Release pointer capture so that touch interactions can leave the original target.\n // This enables onPointerLeave and onPointerEnter to fire.\n let target = e.target;\n if ('releasePointerCapture' in target) target.releasePointerCapture(e.pointerId);\n addGlobalListener((0, _utils.getOwnerDocument)(e.currentTarget), 'pointerup', onPointerUp, false);\n addGlobalListener((0, _utils.getOwnerDocument)(e.currentTarget), 'pointercancel', onPointerCancel, false);\n }\n if (shouldStopPropagation) e.stopPropagation();\n };\n pressProps.onMouseDown = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n if (e.button === 0) {\n if (preventFocusOnPress) {\n let dispose = (0, _utils1.preventFocus)(e.target);\n if (dispose) state.disposables.push(dispose);\n }\n e.stopPropagation();\n }\n };\n pressProps.onPointerUp = (e)=>{\n // iOS fires pointerup with zero width and height, so check the pointerType recorded during pointerdown.\n if (!e.currentTarget.contains(e.target) || state.pointerType === 'virtual') return;\n // Only handle left clicks\n if (e.button === 0) triggerPressUp(e, state.pointerType || e.pointerType);\n };\n pressProps.onPointerEnter = (e)=>{\n if (e.pointerId === state.activePointerId && state.target && !state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = true;\n triggerPressStart(createEvent(state.target, e), state.pointerType);\n }\n };\n pressProps.onPointerLeave = (e)=>{\n if (e.pointerId === state.activePointerId && state.target && state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = false;\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n cancelOnPointerExit(e);\n }\n };\n let onPointerUp = (e)=>{\n if (e.pointerId === state.activePointerId && state.isPressed && e.button === 0 && state.target) {\n if (state.target.contains(e.target) && state.pointerType != null) {\n // Wait for onClick to fire onPress. This avoids browser issues when the DOM\n // is mutated between onPointerUp and onClick, and is more compatible with third party libraries.\n // https://github.com/adobe/react-spectrum/issues/1513\n // https://issues.chromium.org/issues/40732224\n // However, iOS and Android do not focus or fire onClick after a long press.\n // We work around this by triggering a click ourselves after a timeout.\n // This timeout is canceled during the click event in case the real one fires first.\n // In testing, a 0ms delay is too short. 5ms seems long enough for the browser to fire the real events.\n let clicked = false;\n let timeout = setTimeout(()=>{\n if (state.isPressed && state.target instanceof HTMLElement) {\n if (clicked) cancel(e);\n else {\n (0, _utils.focusWithoutScrolling)(state.target);\n state.target.click();\n }\n }\n }, 5);\n // Use a capturing listener to track if a click occurred.\n // If stopPropagation is called it may never reach our handler.\n addGlobalListener(e.currentTarget, 'click', ()=>clicked = true, true);\n state.disposables.push(()=>clearTimeout(timeout));\n } else cancel(e);\n // Ignore subsequent onPointerLeave event before onClick on touch devices.\n state.isOverTarget = false;\n }\n };\n let onPointerCancel = (e)=>{\n cancel(e);\n };\n pressProps.onDragStart = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n // Safari does not call onPointerCancel when a drag starts, whereas Chrome and Firefox do.\n cancel(e);\n };\n } else {\n // NOTE: this fallback branch is almost entirely used by unit tests.\n // All browsers now support pointer events, but JSDOM still does not.\n pressProps.onMouseDown = (e)=>{\n // Only handle left clicks\n if (e.button !== 0 || !e.currentTarget.contains(e.target)) return;\n if (state.ignoreEmulatedMouseEvents) {\n e.stopPropagation();\n return;\n }\n state.isPressed = true;\n state.isOverTarget = true;\n state.target = e.currentTarget;\n state.pointerType = (0, _utils.isVirtualClick)(e.nativeEvent) ? 'virtual' : 'mouse';\n // Flush sync so that focus moved during react re-renders occurs before we yield back to the browser.\n let shouldStopPropagation = (0, _reactDom.flushSync)(()=>triggerPressStart(e, state.pointerType));\n if (shouldStopPropagation) e.stopPropagation();\n if (preventFocusOnPress) {\n let dispose = (0, _utils1.preventFocus)(e.target);\n if (dispose) state.disposables.push(dispose);\n }\n addGlobalListener((0, _utils.getOwnerDocument)(e.currentTarget), 'mouseup', onMouseUp, false);\n };\n pressProps.onMouseEnter = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n let shouldStopPropagation = true;\n if (state.isPressed && !state.ignoreEmulatedMouseEvents && state.pointerType != null) {\n state.isOverTarget = true;\n shouldStopPropagation = triggerPressStart(e, state.pointerType);\n }\n if (shouldStopPropagation) e.stopPropagation();\n };\n pressProps.onMouseLeave = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n let shouldStopPropagation = true;\n if (state.isPressed && !state.ignoreEmulatedMouseEvents && state.pointerType != null) {\n state.isOverTarget = false;\n shouldStopPropagation = triggerPressEnd(e, state.pointerType, false);\n cancelOnPointerExit(e);\n }\n if (shouldStopPropagation) e.stopPropagation();\n };\n pressProps.onMouseUp = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n if (!state.ignoreEmulatedMouseEvents && e.button === 0) triggerPressUp(e, state.pointerType || 'mouse');\n };\n let onMouseUp = (e)=>{\n // Only handle left clicks\n if (e.button !== 0) return;\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n return;\n }\n if (state.target && state.target.contains(e.target) && state.pointerType != null) ;\n else cancel(e);\n state.isOverTarget = false;\n };\n pressProps.onTouchStart = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n let touch = getTouchFromEvent(e.nativeEvent);\n if (!touch) return;\n state.activePointerId = touch.identifier;\n state.ignoreEmulatedMouseEvents = true;\n state.isOverTarget = true;\n state.isPressed = true;\n state.target = e.currentTarget;\n state.pointerType = 'touch';\n if (!allowTextSelectionOnPress) (0, _textSelection.disableTextSelection)(state.target);\n let shouldStopPropagation = triggerPressStart(createTouchEvent(state.target, e), state.pointerType);\n if (shouldStopPropagation) e.stopPropagation();\n addGlobalListener((0, _utils.getOwnerWindow)(e.currentTarget), 'scroll', onScroll, true);\n };\n pressProps.onTouchMove = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n if (!state.isPressed) {\n e.stopPropagation();\n return;\n }\n let touch = getTouchById(e.nativeEvent, state.activePointerId);\n let shouldStopPropagation = true;\n if (touch && isOverTarget(touch, e.currentTarget)) {\n if (!state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = true;\n shouldStopPropagation = triggerPressStart(createTouchEvent(state.target, e), state.pointerType);\n }\n } else if (state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = false;\n shouldStopPropagation = triggerPressEnd(createTouchEvent(state.target, e), state.pointerType, false);\n cancelOnPointerExit(createTouchEvent(state.target, e));\n }\n if (shouldStopPropagation) e.stopPropagation();\n };\n pressProps.onTouchEnd = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n if (!state.isPressed) {\n e.stopPropagation();\n return;\n }\n let touch = getTouchById(e.nativeEvent, state.activePointerId);\n let shouldStopPropagation = true;\n if (touch && isOverTarget(touch, e.currentTarget) && state.pointerType != null) {\n triggerPressUp(createTouchEvent(state.target, e), state.pointerType);\n shouldStopPropagation = triggerPressEnd(createTouchEvent(state.target, e), state.pointerType);\n } else if (state.isOverTarget && state.pointerType != null) shouldStopPropagation = triggerPressEnd(createTouchEvent(state.target, e), state.pointerType, false);\n if (shouldStopPropagation) e.stopPropagation();\n state.isPressed = false;\n state.activePointerId = null;\n state.isOverTarget = false;\n state.ignoreEmulatedMouseEvents = true;\n if (state.target && !allowTextSelectionOnPress) (0, _textSelection.restoreTextSelection)(state.target);\n removeAllGlobalListeners();\n };\n pressProps.onTouchCancel = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n e.stopPropagation();\n if (state.isPressed) cancel(createTouchEvent(state.target, e));\n };\n let onScroll = (e)=>{\n if (state.isPressed && e.target.contains(state.target)) cancel({\n currentTarget: state.target,\n shiftKey: false,\n ctrlKey: false,\n metaKey: false,\n altKey: false\n });\n };\n pressProps.onDragStart = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n cancel(e);\n };\n }\n return pressProps;\n }, [\n addGlobalListener,\n isDisabled,\n preventFocusOnPress,\n removeAllGlobalListeners,\n allowTextSelectionOnPress,\n cancel,\n cancelOnPointerExit,\n triggerPressEnd,\n triggerPressStart,\n triggerPressUp\n ]);\n // Remove user-select: none in case component unmounts immediately after pressStart\n (0, _react.useEffect)(()=>{\n let state = ref.current;\n return ()=>{\n if (!allowTextSelectionOnPress) (0, _textSelection.restoreTextSelection)(state.target ?? undefined);\n for (let dispose of state.disposables)dispose();\n state.disposables = [];\n };\n }, [\n allowTextSelectionOnPress\n ]);\n return {\n isPressed: isPressedProp || isPressed,\n pressProps: (0, _utils.mergeProps)(domProps, pressProps)\n };\n}\nfunction isHTMLAnchorLink(target) {\n return target.tagName === 'A' && target.hasAttribute('href');\n}\nfunction isValidKeyboardEvent(event, currentTarget) {\n const { key, code } = event;\n const element = currentTarget;\n const role = element.getAttribute('role');\n // Accessibility for keyboards. Space and Enter only.\n // \"Spacebar\" is for IE 11\n return (key === 'Enter' || key === ' ' || key === 'Spacebar' || code === 'Space') && !(element instanceof (0, _utils.getOwnerWindow)(element).HTMLInputElement && !isValidInputKey(element, key) || element instanceof (0, _utils.getOwnerWindow)(element).HTMLTextAreaElement || element.isContentEditable) && // Links should only trigger with Enter key\n !((role === 'link' || !role && isHTMLAnchorLink(element)) && key !== 'Enter');\n}\nfunction getTouchFromEvent(event) {\n const { targetTouches } = event;\n if (targetTouches.length > 0) return targetTouches[0];\n return null;\n}\nfunction getTouchById(event, pointerId) {\n const changedTouches = event.changedTouches;\n for(let i = 0; i < changedTouches.length; i++){\n const touch = changedTouches[i];\n if (touch.identifier === pointerId) return touch;\n }\n return null;\n}\nfunction createTouchEvent(target, e) {\n let clientX = 0;\n let clientY = 0;\n if (e.targetTouches && e.targetTouches.length === 1) {\n clientX = e.targetTouches[0].clientX;\n clientY = e.targetTouches[0].clientY;\n }\n return {\n currentTarget: target,\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey,\n clientX,\n clientY\n };\n}\nfunction createEvent(target, e) {\n let clientX = e.clientX;\n let clientY = e.clientY;\n return {\n currentTarget: target,\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey,\n clientX,\n clientY\n };\n}\nfunction getPointClientRect(point) {\n let offsetX = 0;\n let offsetY = 0;\n if (point.width !== undefined) offsetX = point.width / 2;\n else if (point.radiusX !== undefined) offsetX = point.radiusX;\n if (point.height !== undefined) offsetY = point.height / 2;\n else if (point.radiusY !== undefined) offsetY = point.radiusY;\n return {\n top: point.clientY - offsetY,\n right: point.clientX + offsetX,\n bottom: point.clientY + offsetY,\n left: point.clientX - offsetX\n };\n}\nfunction areRectanglesOverlapping(a, b) {\n // check if they cannot overlap on x axis\n if (a.left > b.right || b.left > a.right) return false;\n // check if they cannot overlap on y axis\n if (a.top > b.bottom || b.top > a.bottom) return false;\n return true;\n}\nfunction isOverTarget(point, target) {\n let rect = target.getBoundingClientRect();\n let pointRect = getPointClientRect(point);\n return areRectanglesOverlapping(rect, pointRect);\n}\nfunction shouldPreventDefaultUp(target) {\n if (target instanceof HTMLInputElement) return false;\n if (target instanceof HTMLButtonElement) return target.type !== 'submit' && target.type !== 'reset';\n if (isHTMLAnchorLink(target)) return false;\n return true;\n}\nfunction shouldPreventDefaultKeyboard(target, key) {\n if (target instanceof HTMLInputElement) return !isValidInputKey(target, key);\n return shouldPreventDefaultUp(target);\n}\nconst nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\nfunction isValidInputKey(target, key) {\n // Only space should toggle checkboxes and radios, not enter.\n return target.type === 'checkbox' || target.type === 'radio' ? key === ' ' : nonTextInputTypes.has(target.type);\n}\n\n},{\"@react-aria/utils\":\"e9Yvo\",\"./textSelection\":\"7DdaW\",\"react-dom\":\"a0ZmT\",\"./context\":\"6hjZq\",\"./utils\":\"9VJmY\",\"react\":\"jEiK2\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"4d7Vp\":[function(require,module,exports,__globalThis) {\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// scroll wheel needs to be added not passively so it's cancelable, small helper hook to remember that\nparcelHelpers.export(exports, \"useScrollWheel\", ()=>useScrollWheel);\nvar _react = require(\"react\");\nvar _utils = require(\"@react-aria/utils\");\nfunction useScrollWheel(props, ref) {\n let { onScroll, isDisabled } = props;\n let onScrollHandler = (0, _react.useCallback)((e)=>{\n // If the ctrlKey is pressed, this is a zoom event, do nothing.\n if (e.ctrlKey) return;\n // stop scrolling the page\n e.preventDefault();\n e.stopPropagation();\n if (onScroll) onScroll({\n deltaX: e.deltaX,\n deltaY: e.deltaY\n });\n }, [\n onScroll\n ]);\n (0, _utils.useEvent)(ref, 'wheel', isDisabled ? undefined : onScrollHandler);\n}\n\n},{\"react\":\"jEiK2\",\"@react-aria/utils\":\"e9Yvo\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"6FTm4\":[function(require,module,exports,__globalThis) {\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 * Handles long press interactions across mouse and touch devices. Supports a customizable time threshold,\n * accessibility description, and normalizes behavior across browsers and devices.\n */ parcelHelpers.export(exports, \"useLongPress\", ()=>useLongPress);\nvar _utils = require(\"@react-aria/utils\");\nvar _usePress = require(\"./usePress\");\nvar _react = require(\"react\");\nconst DEFAULT_THRESHOLD = 500;\nfunction useLongPress(props) {\n let { isDisabled, onLongPressStart, onLongPressEnd, onLongPress, threshold = DEFAULT_THRESHOLD, accessibilityDescription } = props;\n const timeRef = (0, _react.useRef)(undefined);\n let { addGlobalListener, removeGlobalListener } = (0, _utils.useGlobalListeners)();\n let { pressProps } = (0, _usePress.usePress)({\n isDisabled,\n onPressStart (e) {\n e.continuePropagation();\n if (e.pointerType === 'mouse' || e.pointerType === 'touch') {\n if (onLongPressStart) onLongPressStart({\n ...e,\n type: 'longpressstart'\n });\n timeRef.current = setTimeout(()=>{\n // Prevent other usePress handlers from also handling this event.\n e.target.dispatchEvent(new PointerEvent('pointercancel', {\n bubbles: true\n }));\n // Ensure target is focused. On touch devices, browsers typically focus on pointer up.\n if ((0, _utils.getOwnerDocument)(e.target).activeElement !== e.target) (0, _utils.focusWithoutScrolling)(e.target);\n if (onLongPress) onLongPress({\n ...e,\n type: 'longpress'\n });\n timeRef.current = undefined;\n }, threshold);\n // Prevent context menu, which may be opened on long press on touch devices\n if (e.pointerType === 'touch') {\n let onContextMenu = (e)=>{\n e.preventDefault();\n };\n addGlobalListener(e.target, 'contextmenu', onContextMenu, {\n once: true\n });\n addGlobalListener(window, 'pointerup', ()=>{\n // If no contextmenu event is fired quickly after pointerup, remove the handler\n // so future context menu events outside a long press are not prevented.\n setTimeout(()=>{\n removeGlobalListener(e.target, 'contextmenu', onContextMenu);\n }, 30);\n }, {\n once: true\n });\n }\n }\n },\n onPressEnd (e) {\n if (timeRef.current) clearTimeout(timeRef.current);\n if (onLongPressEnd && (e.pointerType === 'mouse' || e.pointerType === 'touch')) onLongPressEnd({\n ...e,\n type: 'longpressend'\n });\n }\n });\n let descriptionProps = (0, _utils.useDescription)(onLongPress && !isDisabled ? accessibilityDescription : undefined);\n return {\n longPressProps: (0, _utils.mergeProps)(pressProps, descriptionProps)\n };\n}\n\n},{\"@react-aria/utils\":\"e9Yvo\",\"./usePress\":\"fOpRp\",\"react\":\"jEiK2\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}]},[], null, \"parcelRequire94c2\")\n\n//# sourceMappingURL=useButton.stories.70bdf924.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 */\n\nexport {Pressable} from './Pressable';\nexport {PressResponder, ClearPressResponder} from './PressResponder';\nexport {useFocus} from './useFocus';\nexport {\n isFocusVisible,\n getInteractionModality,\n setInteractionModality,\n addWindowFocusTracking,\n useInteractionModality,\n useFocusVisible,\n useFocusVisibleListener\n} from './useFocusVisible';\nexport {useFocusWithin} from './useFocusWithin';\nexport {useHover} from './useHover';\nexport {useInteractOutside} from './useInteractOutside';\nexport {useKeyboard} from './useKeyboard';\nexport {useMove} from './useMove';\nexport {usePress} from './usePress';\nexport {useScrollWheel} from './useScrollWheel';\nexport {useLongPress} from './useLongPress';\n\nexport type {FocusProps, FocusResult} from './useFocus';\nexport type {FocusVisibleHandler, FocusVisibleProps, FocusVisibleResult, Modality} from './useFocusVisible';\nexport type {FocusWithinProps, FocusWithinResult} from './useFocusWithin';\nexport type {HoverProps, HoverResult} from './useHover';\nexport type {InteractOutsideProps} from './useInteractOutside';\nexport type {KeyboardProps, KeyboardResult} from './useKeyboard';\nexport type {PressProps, PressHookProps, PressResult} from './usePress';\nexport type {PressEvent, PressEvents, MoveStartEvent, MoveMoveEvent, MoveEndEvent, MoveEvents, HoverEvent, HoverEvents, FocusEvents, KeyboardEvents} from '@react-types/shared';\nexport type {MoveResult} from './useMove';\nexport type {LongPressProps, LongPressResult} from './useLongPress';\nexport type {ScrollWheelProps} from './useScrollWheel';\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';\nimport {mergeProps, useObjectRef, useSyncRef} from '@react-aria/utils';\nimport {PressProps} from './usePress';\nimport {PressResponderContext} from './context';\nimport React, {ForwardedRef, ReactNode, useContext, useEffect, useMemo, useRef} from 'react';\n\ninterface PressResponderProps extends PressProps {\n children: ReactNode\n}\n\nexport const PressResponder = React.forwardRef(({children, ...props}: PressResponderProps, ref: ForwardedRef<FocusableElement>) => {\n let isRegistered = useRef(false);\n let prevContext = useContext(PressResponderContext);\n ref = useObjectRef(ref || prevContext?.ref);\n let context = mergeProps(prevContext || {}, {\n ...props,\n ref,\n register() {\n isRegistered.current = true;\n if (prevContext) {\n prevContext.register();\n }\n }\n });\n\n useSyncRef(prevContext, ref);\n\n useEffect(() => {\n if (!isRegistered.current) {\n console.warn(\n 'A PressResponder was rendered without a pressable child. ' +\n 'Either call the usePress hook, or wrap your DOM node with <Pressable> component.'\n );\n isRegistered.current = true; // only warn once in strict mode.\n }\n }, []);\n\n return (\n <PressResponderContext.Provider value={context}>\n {children}\n </PressResponderContext.Provider>\n );\n});\n\nexport function ClearPressResponder({children}: {children: ReactNode}) {\n let context = useMemo(() => ({register: () => {}}), []);\n return (\n <PressResponderContext.Provider value={context}>\n {children}\n </PressResponderContext.Provider>\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 {FocusableElement} from '@react-types/shared';\nimport {PressProps} from './usePress';\nimport React, {MutableRefObject} from 'react';\n\ninterface IPressResponderContext extends PressProps {\n register(): void,\n ref?: MutableRefObject<FocusableElement>\n}\n\nexport const PressResponderContext = React.createContext<IPressResponderContext>({register: () => {}});\nPressResponderContext.displayName = 'PressResponderContext';\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// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {DOMAttributes, FocusableElement, FocusEvents} from '@react-types/shared';\nimport {FocusEvent, useCallback} from 'react';\nimport {getOwnerDocument} from '@react-aria/utils';\nimport {useSyntheticBlurEvent} from './utils';\n\nexport interface FocusProps<Target = FocusableElement> extends FocusEvents<Target> {\n /** Whether the focus events should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface FocusResult<Target = FocusableElement> {\n /** Props to spread onto the target element. */\n focusProps: DOMAttributes<Target>\n}\n\n/**\n * Handles focus events for the immediate target.\n * Focus events on child elements will be ignored.\n */\nexport function useFocus<Target extends FocusableElement = FocusableElement>(props: FocusProps<Target>): FocusResult<Target> {\n let {\n isDisabled,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n onFocusChange\n } = props;\n\n const onBlur: FocusProps<Target>['onBlur'] = useCallback((e: FocusEvent<Target>) => {\n if (e.target === e.currentTarget) {\n if (onBlurProp) {\n onBlurProp(e);\n }\n\n if (onFocusChange) {\n onFocusChange(false);\n }\n\n return true;\n }\n }, [onBlurProp, onFocusChange]);\n\n\n const onSyntheticFocus = useSyntheticBlurEvent<Target>(onBlur);\n\n const onFocus: FocusProps<Target>['onFocus'] = useCallback((e: FocusEvent<Target>) => {\n // Double check that document.activeElement actually matches e.target in case a previously chained\n // focus handler already moved focus somewhere else.\n\n const ownerDocument = getOwnerDocument(e.target);\n\n if (e.target === e.currentTarget && ownerDocument.activeElement === e.target) {\n if (onFocusProp) {\n onFocusProp(e);\n }\n\n if (onFocusChange) {\n onFocusChange(true);\n }\n\n onSyntheticFocus(e);\n }\n }, [onFocusChange, onFocusProp, onSyntheticFocus]);\n\n return {\n focusProps: {\n onFocus: (!isDisabled && (onFocusProp || onFocusChange || onBlurProp)) ? onFocus : undefined,\n onBlur: (!isDisabled && (onBlurProp || onFocusChange)) ? onBlur : undefined\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 {FocusableElement} from '@react-types/shared';\nimport {focusWithoutScrolling, getOwnerWindow, isFocusable, useEffectEvent, useLayoutEffect} from '@react-aria/utils';\nimport {FocusEvent as ReactFocusEvent, useCallback, useRef} from 'react';\n\nexport class SyntheticFocusEvent<Target = Element> implements ReactFocusEvent<Target> {\n nativeEvent: FocusEvent;\n target: EventTarget & Target;\n currentTarget: EventTarget & Target;\n relatedTarget: Element;\n bubbles: boolean;\n cancelable: boolean;\n defaultPrevented: boolean;\n eventPhase: number;\n isTrusted: boolean;\n timeStamp: number;\n type: string;\n\n constructor(type: string, nativeEvent: FocusEvent) {\n this.nativeEvent = nativeEvent;\n this.target = nativeEvent.target as EventTarget & Target;\n this.currentTarget = nativeEvent.currentTarget as EventTarget & Target;\n this.relatedTarget = nativeEvent.relatedTarget as Element;\n this.bubbles = nativeEvent.bubbles;\n this.cancelable = nativeEvent.cancelable;\n this.defaultPrevented = nativeEvent.defaultPrevented;\n this.eventPhase = nativeEvent.eventPhase;\n this.isTrusted = nativeEvent.isTrusted;\n this.timeStamp = nativeEvent.timeStamp;\n this.type = type;\n }\n\n isDefaultPrevented(): boolean {\n return this.nativeEvent.defaultPrevented;\n }\n\n preventDefault(): void {\n this.defaultPrevented = true;\n this.nativeEvent.preventDefault();\n }\n\n stopPropagation(): void {\n this.nativeEvent.stopPropagation();\n this.isPropagationStopped = () => true;\n }\n\n isPropagationStopped(): boolean {\n return false;\n }\n\n persist() {}\n}\n\nexport function useSyntheticBlurEvent<Target = Element>(onBlur: (e: ReactFocusEvent<Target>) => void) {\n let stateRef = useRef({\n isFocused: false,\n observer: null as MutationObserver | null\n });\n\n // Clean up MutationObserver on unmount. See below.\n \n useLayoutEffect(() => {\n const state = stateRef.current;\n return () => {\n if (state.observer) {\n state.observer.disconnect();\n state.observer = null;\n }\n };\n }, []);\n\n let dispatchBlur = useEffectEvent((e: SyntheticFocusEvent<Target>) => {\n onBlur?.(e);\n });\n\n // This function is called during a React onFocus event.\n return useCallback((e: ReactFocusEvent<Target>) => {\n // React does not fire onBlur when an element is disabled. https://github.com/facebook/react/issues/9142\n // Most browsers fire a native focusout event in this case, except for Firefox. In that case, we use a\n // MutationObserver to watch for the disabled attribute, and dispatch these events ourselves.\n // For browsers that do, focusout fires before the MutationObserver, so onBlur should not fire twice.\n if (\n e.target instanceof HTMLButtonElement ||\n e.target instanceof HTMLInputElement ||\n e.target instanceof HTMLTextAreaElement ||\n e.target instanceof HTMLSelectElement\n ) {\n stateRef.current.isFocused = true;\n\n let target = e.target;\n let onBlurHandler: EventListenerOrEventListenerObject | null = (e) => {\n stateRef.current.isFocused = false;\n\n if (target.disabled) {\n // For backward compatibility, dispatch a (fake) React synthetic event.\n dispatchBlur(new SyntheticFocusEvent('blur', e as FocusEvent));\n }\n\n // We no longer need the MutationObserver once the target is blurred.\n if (stateRef.current.observer) {\n stateRef.current.observer.disconnect();\n stateRef.current.observer = null;\n }\n };\n\n target.addEventListener('focusout', onBlurHandler, {once: true});\n\n stateRef.current.observer = new MutationObserver(() => {\n if (stateRef.current.isFocused && target.disabled) {\n stateRef.current.observer?.disconnect();\n let relatedTargetEl = target === document.activeElement ? null : document.activeElement;\n target.dispatchEvent(new FocusEvent('blur', {relatedTarget: relatedTargetEl}));\n target.dispatchEvent(new FocusEvent('focusout', {bubbles: true, relatedTarget: relatedTargetEl}));\n }\n });\n\n stateRef.current.observer.observe(target, {attributes: true, attributeFilter: ['disabled']});\n }\n }, [dispatchBlur]);\n}\n\nexport let ignoreFocusEvent = false;\n\n/**\n * This function prevents the next focus event fired on `target`, without using `event.preventDefault()`.\n * It works by waiting for the series of focus events to occur, and reverts focus back to where it was before.\n * It also makes these events mostly non-observable by using a capturing listener on the window and stopping propagation.\n */\nexport function preventFocus(target: FocusableElement | null) {\n // The browser will focus the nearest focusable ancestor of our target.\n while (target && !isFocusable(target)) {\n target = target.parentElement;\n }\n\n let window = getOwnerWindow(target);\n let activeElement = window.document.activeElement as FocusableElement | null;\n if (!activeElement || activeElement === target) {\n return;\n }\n \n ignoreFocusEvent = true;\n let isRefocusing = false;\n let onBlur = (e: FocusEvent) => {\n if (e.target === activeElement || isRefocusing) {\n e.stopImmediatePropagation();\n }\n };\n\n let onFocusOut = (e: FocusEvent) => {\n if (e.target === activeElement || isRefocusing) {\n e.stopImmediatePropagation();\n\n // If there was no focusable ancestor, we don't expect a focus event.\n // Re-focus the original active element here.\n if (!target && !isRefocusing) {\n isRefocusing = true;\n focusWithoutScrolling(activeElement);\n cleanup();\n }\n }\n };\n \n let onFocus = (e: FocusEvent) => {\n if (e.target === target || isRefocusing) {\n e.stopImmediatePropagation();\n }\n };\n\n let onFocusIn = (e: FocusEvent) => {\n if (e.target === target || isRefocusing) {\n e.stopImmediatePropagation();\n\n if (!isRefocusing) {\n isRefocusing = true;\n focusWithoutScrolling(activeElement);\n cleanup();\n }\n }\n };\n\n window.addEventListener('blur', onBlur, true);\n window.addEventListener('focusout', onFocusOut, true);\n window.addEventListener('focusin', onFocusIn, true);\n window.addEventListener('focus', onFocus, true);\n\n let cleanup = () => {\n cancelAnimationFrame(raf);\n window.removeEventListener('blur', onBlur, true);\n window.removeEventListener('focusout', onFocusOut, true);\n window.removeEventListener('focusin', onFocusIn, true);\n window.removeEventListener('focus', onFocus, true);\n ignoreFocusEvent = false;\n isRefocusing = false;\n };\n\n let raf = requestAnimationFrame(cleanup);\n return cleanup;\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// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {getOwnerDocument, getOwnerWindow, isMac, isVirtualClick} from '@react-aria/utils';\nimport {ignoreFocusEvent} from './utils';\nimport {useEffect, useState} from 'react';\nimport {useIsSSR} from '@react-aria/ssr';\n\nexport type Modality = 'keyboard' | 'pointer' | 'virtual';\ntype HandlerEvent = PointerEvent | MouseEvent | KeyboardEvent | FocusEvent | null;\ntype Handler = (modality: Modality, e: HandlerEvent) => void;\nexport type FocusVisibleHandler = (isFocusVisible: boolean) => void;\nexport interface FocusVisibleProps {\n /** Whether the element is a text input. */\n isTextInput?: boolean,\n /** Whether the element will be auto focused. */\n autoFocus?: boolean\n}\n\nexport interface FocusVisibleResult {\n /** Whether keyboard focus is visible globally. */\n isFocusVisible: boolean\n}\n\nlet currentModality: null | Modality = null;\nlet changeHandlers = new Set<Handler>();\ninterface GlobalListenerData {\n focus: () => void\n}\nexport let hasSetupGlobalListeners = new Map<Window, GlobalListenerData>(); // We use a map here to support setting event listeners across multiple document objects.\nlet hasEventBeforeFocus = false;\nlet hasBlurredWindowRecently = false;\n\n// Only Tab or Esc keys will make focus visible on text input elements\nconst FOCUS_VISIBLE_INPUT_KEYS = {\n Tab: true,\n Escape: true\n};\n\nfunction triggerChangeHandlers(modality: Modality, e: HandlerEvent) {\n for (let handler of changeHandlers) {\n handler(modality, e);\n }\n}\n\n/**\n * Helper function to determine if a KeyboardEvent is unmodified and could make keyboard focus styles visible.\n */\nfunction isValidKey(e: KeyboardEvent) {\n // Control and Shift keys trigger when navigating back to the tab with keyboard.\n return !(e.metaKey || (!isMac() && e.altKey) || e.ctrlKey || e.key === 'Control' || e.key === 'Shift' || e.key === 'Meta');\n}\n\n\nfunction handleKeyboardEvent(e: KeyboardEvent) {\n hasEventBeforeFocus = true;\n if (isValidKey(e)) {\n currentModality = 'keyboard';\n triggerChangeHandlers('keyboard', e);\n }\n}\n\nfunction handlePointerEvent(e: PointerEvent | MouseEvent) {\n currentModality = 'pointer';\n if (e.type === 'mousedown' || e.type === 'pointerdown') {\n hasEventBeforeFocus = true;\n triggerChangeHandlers('pointer', e);\n }\n}\n\nfunction handleClickEvent(e: MouseEvent) {\n if (isVirtualClick(e)) {\n hasEventBeforeFocus = true;\n currentModality = 'virtual';\n }\n}\n\nfunction handleFocusEvent(e: FocusEvent) {\n // Firefox fires two extra focus events when the user first clicks into an iframe:\n // first on the window, then on the document. We ignore these events so they don't\n // cause keyboard focus rings to appear.\n if (e.target === window || e.target === document || ignoreFocusEvent) {\n return;\n }\n\n // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.\n // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {\n currentModality = 'virtual';\n triggerChangeHandlers('virtual', e);\n }\n\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = false;\n}\n\nfunction handleWindowBlur() {\n if (ignoreFocusEvent) {\n return;\n }\n\n // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n // for example, since a subsequent focus event won't be fired.\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = true;\n}\n\n/**\n * Setup global event listeners to control when keyboard focus style should be visible.\n */\nfunction setupGlobalFocusEvents(element?: HTMLElement | null) {\n if (typeof window === 'undefined' || hasSetupGlobalListeners.get(getOwnerWindow(element))) {\n return;\n }\n\n const windowObject = getOwnerWindow(element);\n const documentObject = getOwnerDocument(element);\n\n // Programmatic focus() calls shouldn't affect the current input modality.\n // However, we need to detect other cases when a focus event occurs without\n // a preceding user event (e.g. screen reader focus). Overriding the focus\n // method on HTMLElement.prototype is a bit hacky, but works.\n let focus = windowObject.HTMLElement.prototype.focus;\n windowObject.HTMLElement.prototype.focus = function () {\n hasEventBeforeFocus = true;\n focus.apply(this, arguments as unknown as [options?: FocusOptions | undefined]);\n };\n\n documentObject.addEventListener('keydown', handleKeyboardEvent, true);\n documentObject.addEventListener('keyup', handleKeyboardEvent, true);\n documentObject.addEventListener('click', handleClickEvent, true);\n\n // Register focus events on the window so they are sure to happen\n // before React's event listeners (registered on the document).\n windowObject.addEventListener('focus', handleFocusEvent, true);\n windowObject.addEventListener('blur', handleWindowBlur, false);\n\n if (typeof PointerEvent !== 'undefined') {\n documentObject.addEventListener('pointerdown', handlePointerEvent, true);\n documentObject.addEventListener('pointermove', handlePointerEvent, true);\n documentObject.addEventListener('pointerup', handlePointerEvent, true);\n } else {\n documentObject.addEventListener('mousedown', handlePointerEvent, true);\n documentObject.addEventListener('mousemove', handlePointerEvent, true);\n documentObject.addEventListener('mouseup', handlePointerEvent, true);\n }\n\n // Add unmount handler\n windowObject.addEventListener('beforeunload', () => {\n tearDownWindowFocusTracking(element);\n }, {once: true});\n\n hasSetupGlobalListeners.set(windowObject, {focus});\n}\n\nconst tearDownWindowFocusTracking = (element, loadListener?: () => void) => {\n const windowObject = getOwnerWindow(element);\n const documentObject = getOwnerDocument(element);\n if (loadListener) {\n documentObject.removeEventListener('DOMContentLoaded', loadListener);\n }\n if (!hasSetupGlobalListeners.has(windowObject)) {\n return;\n }\n windowObject.HTMLElement.prototype.focus = hasSetupGlobalListeners.get(windowObject)!.focus;\n\n documentObject.removeEventListener('keydown', handleKeyboardEvent, true);\n documentObject.removeEventListener('keyup', handleKeyboardEvent, true);\n documentObject.removeEventListener('click', handleClickEvent, true);\n windowObject.removeEventListener('focus', handleFocusEvent, true);\n windowObject.removeEventListener('blur', handleWindowBlur, false);\n\n if (typeof PointerEvent !== 'undefined') {\n documentObject.removeEventListener('pointerdown', handlePointerEvent, true);\n documentObject.removeEventListener('pointermove', handlePointerEvent, true);\n documentObject.removeEventListener('pointerup', handlePointerEvent, true);\n } else {\n documentObject.removeEventListener('mousedown', handlePointerEvent, true);\n documentObject.removeEventListener('mousemove', handlePointerEvent, true);\n documentObject.removeEventListener('mouseup', handlePointerEvent, true);\n }\n\n hasSetupGlobalListeners.delete(windowObject);\n};\n\n/**\n * EXPERIMENTAL\n * Adds a window (i.e. iframe) to the list of windows that are being tracked for focus visible.\n *\n * Sometimes apps render portions of their tree into an iframe. In this case, we cannot accurately track if the focus\n * is visible because we cannot see interactions inside the iframe. If you have this in your application's architecture,\n * then this function will attach event listeners inside the iframe. You should call `addWindowFocusTracking` with an\n * element from inside the window you wish to add. We'll retrieve the relevant elements based on that.\n * Note, you do not need to call this for the default window, as we call it for you.\n *\n * When you are ready to stop listening, but you do not wish to unmount the iframe, you may call the cleanup function\n * returned by `addWindowFocusTracking`. Otherwise, when you unmount the iframe, all listeners and state will be cleaned\n * up automatically for you.\n *\n * @param element @default document.body - The element provided will be used to get the window to add.\n * @returns A function to remove the event listeners and cleanup the state.\n */\nexport function addWindowFocusTracking(element?: HTMLElement | null): () => void {\n const documentObject = getOwnerDocument(element);\n let loadListener;\n if (documentObject.readyState !== 'loading') {\n setupGlobalFocusEvents(element);\n } else {\n loadListener = () => {\n setupGlobalFocusEvents(element);\n };\n documentObject.addEventListener('DOMContentLoaded', loadListener);\n }\n\n return () => tearDownWindowFocusTracking(element, loadListener);\n}\n\n// Server-side rendering does not have the document object defined\n// eslint-disable-next-line no-restricted-globals\nif (typeof document !== 'undefined') {\n addWindowFocusTracking();\n}\n\n/**\n * If true, keyboard focus is visible.\n */\nexport function isFocusVisible(): boolean {\n return currentModality !== 'pointer';\n}\n\nexport function getInteractionModality(): Modality | null {\n return currentModality;\n}\n\nexport function setInteractionModality(modality: Modality) {\n currentModality = modality;\n triggerChangeHandlers(modality, null);\n}\n\n/**\n * Keeps state of the current modality.\n */\nexport function useInteractionModality(): Modality | null {\n setupGlobalFocusEvents();\n\n let [modality, setModality] = useState(currentModality);\n useEffect(() => {\n let handler = () => {\n setModality(currentModality);\n };\n\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n }, []);\n\n return useIsSSR() ? null : modality;\n}\n\nconst nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\n\n/**\n * If this is attached to text input component, return if the event is a focus event (Tab/Escape keys pressed) so that\n * focus visible style can be properly set.\n */\nfunction isKeyboardFocusEvent(isTextInput: boolean, modality: Modality, e: HandlerEvent) {\n let document = getOwnerDocument(e?.target as Element);\n const IHTMLInputElement = typeof window !== 'undefined' ? getOwnerWindow(e?.target as Element).HTMLInputElement : HTMLInputElement;\n const IHTMLTextAreaElement = typeof window !== 'undefined' ? getOwnerWindow(e?.target as Element).HTMLTextAreaElement : HTMLTextAreaElement;\n const IHTMLElement = typeof window !== 'undefined' ? getOwnerWindow(e?.target as Element).HTMLElement : HTMLElement;\n const IKeyboardEvent = typeof window !== 'undefined' ? getOwnerWindow(e?.target as Element).KeyboardEvent : KeyboardEvent;\n\n // For keyboard events that occur on a non-input element that will move focus into input element (aka ArrowLeft going from Datepicker button to the main input group)\n // we need to rely on the user passing isTextInput into here. This way we can skip toggling focus visiblity for said input element\n isTextInput = isTextInput ||\n (document.activeElement instanceof IHTMLInputElement && !nonTextInputTypes.has(document.activeElement.type)) ||\n document.activeElement instanceof IHTMLTextAreaElement ||\n (document.activeElement instanceof IHTMLElement && document.activeElement.isContentEditable);\n return !(isTextInput && modality === 'keyboard' && e instanceof IKeyboardEvent && !FOCUS_VISIBLE_INPUT_KEYS[e.key]);\n}\n\n/**\n * Manages focus visible state for the page, and subscribes individual components for updates.\n */\nexport function useFocusVisible(props: FocusVisibleProps = {}): FocusVisibleResult {\n let {isTextInput, autoFocus} = props;\n let [isFocusVisibleState, setFocusVisible] = useState(autoFocus || isFocusVisible());\n useFocusVisibleListener((isFocusVisible) => {\n setFocusVisible(isFocusVisible);\n }, [isTextInput], {isTextInput});\n\n return {isFocusVisible: isFocusVisibleState};\n}\n\n/**\n * Listens for trigger change and reports if focus is visible (i.e., modality is not pointer).\n */\nexport function useFocusVisibleListener(fn: FocusVisibleHandler, deps: ReadonlyArray<any>, opts?: {isTextInput?: boolean}): void {\n setupGlobalFocusEvents();\n\n useEffect(() => {\n let handler = (modality: Modality, e: HandlerEvent) => {\n // We want to early return for any keyboard events that occur inside text inputs EXCEPT for Tab and Escape\n if (!isKeyboardFocusEvent(!!(opts?.isTextInput), modality, e)) {\n return;\n }\n fn(isFocusVisible());\n };\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\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// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {DOMAttributes} from '@react-types/shared';\nimport {FocusEvent, useCallback, useRef} from 'react';\nimport {useSyntheticBlurEvent} from './utils';\n\nexport interface FocusWithinProps {\n /** Whether the focus within events should be disabled. */\n isDisabled?: boolean,\n /** Handler that is called when the target element or a descendant receives focus. */\n onFocusWithin?: (e: FocusEvent) => void,\n /** Handler that is called when the target element and all descendants lose focus. */\n onBlurWithin?: (e: FocusEvent) => void,\n /** Handler that is called when the the focus within state changes. */\n onFocusWithinChange?: (isFocusWithin: boolean) => void\n}\n\nexport interface FocusWithinResult {\n /** Props to spread onto the target element. */\n focusWithinProps: DOMAttributes\n}\n\n/**\n * Handles focus events for the target and its descendants.\n */\nexport function useFocusWithin(props: FocusWithinProps): FocusWithinResult {\n let {\n isDisabled,\n onBlurWithin,\n onFocusWithin,\n onFocusWithinChange\n } = props;\n let state = useRef({\n isFocusWithin: false\n });\n\n let onBlur = useCallback((e: FocusEvent) => {\n // We don't want to trigger onBlurWithin and then immediately onFocusWithin again\n // when moving focus inside the element. Only trigger if the currentTarget doesn't\n // include the relatedTarget (where focus is moving).\n if (state.current.isFocusWithin && !(e.currentTarget as Element).contains(e.relatedTarget as Element)) {\n state.current.isFocusWithin = false;\n\n if (onBlurWithin) {\n onBlurWithin(e);\n }\n\n if (onFocusWithinChange) {\n onFocusWithinChange(false);\n }\n }\n }, [onBlurWithin, onFocusWithinChange, state]);\n\n let onSyntheticFocus = useSyntheticBlurEvent(onBlur);\n let onFocus = useCallback((e: FocusEvent) => {\n // Double check that document.activeElement actually matches e.target in case a previously chained\n // focus handler already moved focus somewhere else.\n if (!state.current.isFocusWithin && document.activeElement === e.target) {\n if (onFocusWithin) {\n onFocusWithin(e);\n }\n\n if (onFocusWithinChange) {\n onFocusWithinChange(true);\n }\n\n state.current.isFocusWithin = true;\n onSyntheticFocus(e);\n }\n }, [onFocusWithin, onFocusWithinChange, onSyntheticFocus]);\n\n if (isDisabled) {\n return {\n focusWithinProps: {\n // These should not have been null, that would conflict in mergeProps\n onFocus: undefined,\n onBlur: undefined\n }\n };\n }\n\n return {\n focusWithinProps: {\n onFocus,\n onBlur\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {DOMAttributes, HoverEvents} from '@react-types/shared';\nimport {useEffect, useMemo, useRef, useState} from 'react';\n\nexport interface HoverProps extends HoverEvents {\n /** Whether the hover events should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface HoverResult {\n /** Props to spread on the target element. */\n hoverProps: DOMAttributes,\n isHovered: boolean\n}\n\n// iOS fires onPointerEnter twice: once with pointerType=\"touch\" and again with pointerType=\"mouse\".\n// We want to ignore these emulated events so they do not trigger hover behavior.\n// See https://bugs.webkit.org/show_bug.cgi?id=214609.\nlet globalIgnoreEmulatedMouseEvents = false;\nlet hoverCount = 0;\n\nfunction setGlobalIgnoreEmulatedMouseEvents() {\n globalIgnoreEmulatedMouseEvents = true;\n\n // Clear globalIgnoreEmulatedMouseEvents after a short timeout. iOS fires onPointerEnter\n // with pointerType=\"mouse\" immediately after onPointerUp and before onFocus. On other\n // devices that don't have this quirk, we don't want to ignore a mouse hover sometime in\n // the distant future because a user previously touched the element.\n setTimeout(() => {\n globalIgnoreEmulatedMouseEvents = false;\n }, 50);\n}\n\nfunction handleGlobalPointerEvent(e) {\n if (e.pointerType === 'touch') {\n setGlobalIgnoreEmulatedMouseEvents();\n }\n}\n\nfunction setupGlobalTouchEvents() {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.addEventListener('pointerup', handleGlobalPointerEvent);\n } else {\n document.addEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n }\n\n hoverCount++;\n return () => {\n hoverCount--;\n if (hoverCount > 0) {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.removeEventListener('pointerup', handleGlobalPointerEvent);\n } else {\n document.removeEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n }\n };\n}\n\n/**\n * Handles pointer hover interactions for an element. Normalizes behavior\n * across browsers and platforms, and ignores emulated mouse events on touch devices.\n */\nexport function useHover(props: HoverProps): HoverResult {\n let {\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n isDisabled\n } = props;\n\n let [isHovered, setHovered] = useState(false);\n let state = useRef({\n isHovered: false,\n ignoreEmulatedMouseEvents: false,\n pointerType: '',\n target: null\n }).current;\n\n useEffect(setupGlobalTouchEvents, []);\n\n let {hoverProps, triggerHoverEnd} = useMemo(() => {\n let triggerHoverStart = (event, pointerType) => {\n state.pointerType = pointerType;\n if (isDisabled || pointerType === 'touch' || state.isHovered || !event.currentTarget.contains(event.target)) {\n return;\n }\n\n state.isHovered = true;\n let target = event.currentTarget;\n state.target = target;\n\n if (onHoverStart) {\n onHoverStart({\n type: 'hoverstart',\n target,\n pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(true);\n }\n\n setHovered(true);\n };\n\n let triggerHoverEnd = (event, pointerType) => {\n state.pointerType = '';\n state.target = null;\n\n if (pointerType === 'touch' || !state.isHovered) {\n return;\n }\n\n state.isHovered = false;\n let target = event.currentTarget;\n if (onHoverEnd) {\n onHoverEnd({\n type: 'hoverend',\n target,\n pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(false);\n }\n\n setHovered(false);\n };\n\n let hoverProps: DOMAttributes = {};\n\n if (typeof PointerEvent !== 'undefined') {\n hoverProps.onPointerEnter = (e) => {\n if (globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') {\n return;\n }\n\n triggerHoverStart(e, e.pointerType);\n };\n\n hoverProps.onPointerLeave = (e) => {\n if (!isDisabled && e.currentTarget.contains(e.target as Element)) {\n triggerHoverEnd(e, e.pointerType);\n }\n };\n } else {\n hoverProps.onTouchStart = () => {\n state.ignoreEmulatedMouseEvents = true;\n };\n\n hoverProps.onMouseEnter = (e) => {\n if (!state.ignoreEmulatedMouseEvents && !globalIgnoreEmulatedMouseEvents) {\n triggerHoverStart(e, 'mouse');\n }\n\n state.ignoreEmulatedMouseEvents = false;\n };\n\n hoverProps.onMouseLeave = (e) => {\n if (!isDisabled && e.currentTarget.contains(e.target as Element)) {\n triggerHoverEnd(e, 'mouse');\n }\n };\n }\n return {hoverProps, triggerHoverEnd};\n }, [onHoverStart, onHoverChange, onHoverEnd, isDisabled, state]);\n\n useEffect(() => {\n // Call the triggerHoverEnd as soon as isDisabled changes to true\n // Safe to call triggerHoverEnd, it will early return if we aren't currently hovering\n if (isDisabled) {\n triggerHoverEnd({currentTarget: state.target}, state.pointerType);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDisabled]);\n\n return {\n hoverProps,\n isHovered\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {getOwnerDocument, useEffectEvent} from '@react-aria/utils';\nimport {RefObject} from '@react-types/shared';\nimport {useEffect, useRef} from 'react';\n\nexport interface InteractOutsideProps {\n ref: RefObject<Element | null>,\n onInteractOutside?: (e: PointerEvent) => void,\n onInteractOutsideStart?: (e: PointerEvent) => void,\n /** Whether the interact outside events should be disabled. */\n isDisabled?: boolean\n}\n\n/**\n * Example, used in components like Dialogs and Popovers so they can close\n * when a user clicks outside them.\n */\nexport function useInteractOutside(props: InteractOutsideProps) {\n let {ref, onInteractOutside, isDisabled, onInteractOutsideStart} = props;\n let stateRef = useRef({\n isPointerDown: false,\n ignoreEmulatedMouseEvents: false\n });\n\n let onPointerDown = useEffectEvent((e) => {\n if (onInteractOutside && isValidEvent(e, ref)) {\n if (onInteractOutsideStart) {\n onInteractOutsideStart(e);\n }\n stateRef.current.isPointerDown = true;\n }\n });\n\n let triggerInteractOutside = useEffectEvent((e: PointerEvent) => {\n if (onInteractOutside) {\n onInteractOutside(e);\n }\n });\n\n useEffect(() => {\n let state = stateRef.current;\n if (isDisabled) {\n return;\n }\n\n const element = ref.current;\n const documentObject = getOwnerDocument(element);\n\n // Use pointer events if available. Otherwise, fall back to mouse and touch events.\n if (typeof PointerEvent !== 'undefined') {\n let onPointerUp = (e) => {\n if (state.isPointerDown && isValidEvent(e, ref)) {\n triggerInteractOutside(e);\n }\n state.isPointerDown = false;\n };\n\n // changing these to capture phase fixed combobox\n documentObject.addEventListener('pointerdown', onPointerDown, true);\n documentObject.addEventListener('pointerup', onPointerUp, true);\n\n return () => {\n documentObject.removeEventListener('pointerdown', onPointerDown, true);\n documentObject.removeEventListener('pointerup', onPointerUp, true);\n };\n } else {\n let onMouseUp = (e) => {\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n } else if (state.isPointerDown && isValidEvent(e, ref)) {\n triggerInteractOutside(e);\n }\n state.isPointerDown = false;\n };\n\n let onTouchEnd = (e) => {\n state.ignoreEmulatedMouseEvents = true;\n if (state.isPointerDown && isValidEvent(e, ref)) {\n triggerInteractOutside(e);\n }\n state.isPointerDown = false;\n };\n\n documentObject.addEventListener('mousedown', onPointerDown, true);\n documentObject.addEventListener('mouseup', onMouseUp, true);\n documentObject.addEventListener('touchstart', onPointerDown, true);\n documentObject.addEventListener('touchend', onTouchEnd, true);\n\n return () => {\n documentObject.removeEventListener('mousedown', onPointerDown, true);\n documentObject.removeEventListener('mouseup', onMouseUp, true);\n documentObject.removeEventListener('touchstart', onPointerDown, true);\n documentObject.removeEventListener('touchend', onTouchEnd, true);\n };\n }\n }, [ref, isDisabled, onPointerDown, triggerInteractOutside]);\n}\n\nfunction isValidEvent(event, ref) {\n if (event.button > 0) {\n return false;\n }\n\n if (event.target) {\n // if the event target is no longer in the document, ignore\n const ownerDocument = event.target.ownerDocument;\n if (!ownerDocument || !ownerDocument.documentElement.contains(event.target)) {\n return false;\n }\n\n // If the target is within a top layer element (e.g. toasts), ignore.\n if (event.target.closest('[data-react-aria-top-layer]')) {\n return false;\n }\n }\n\n return ref.current && !ref.current.contains(event.target);\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 {createEventHandler} from './createEventHandler';\nimport {DOMAttributes, KeyboardEvents} from '@react-types/shared';\n\nexport interface KeyboardProps extends KeyboardEvents {\n /** Whether the keyboard events should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface KeyboardResult {\n /** Props to spread onto the target element. */\n keyboardProps: DOMAttributes\n}\n\n/**\n * Handles keyboard interactions for a focusable element.\n */\nexport function useKeyboard(props: KeyboardProps): KeyboardResult {\n return {\n keyboardProps: props.isDisabled ? {} : {\n onKeyDown: createEventHandler(props.onKeyDown),\n onKeyUp: createEventHandler(props.onKeyUp)\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 {BaseEvent} from '@react-types/shared';\nimport {SyntheticEvent} from 'react';\n\n/**\n * This function wraps a React event handler to make stopPropagation the default, and support continuePropagation instead.\n */\nexport function createEventHandler<T extends SyntheticEvent>(handler?: (e: BaseEvent<T>) => void): ((e: T) => void) | undefined {\n if (!handler) {\n return undefined;\n }\n\n let shouldStopPropagation = true;\n return (e: T) => {\n let event: BaseEvent<T> = {\n ...e,\n preventDefault() {\n e.preventDefault();\n },\n isDefaultPrevented() {\n return e.isDefaultPrevented();\n },\n stopPropagation() {\n if (shouldStopPropagation) {\n console.error('stopPropagation is now the default behavior for events in React Spectrum. You can use continuePropagation() to revert this behavior.');\n } else {\n shouldStopPropagation = true;\n }\n },\n continuePropagation() {\n shouldStopPropagation = false;\n },\n isPropagationStopped() {\n return shouldStopPropagation;\n }\n };\n\n handler(event);\n\n if (shouldStopPropagation) {\n e.stopPropagation();\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 {disableTextSelection, restoreTextSelection} from './textSelection';\nimport {DOMAttributes, MoveEvents, PointerType} from '@react-types/shared';\nimport React, {useMemo, useRef} from 'react';\nimport {useEffectEvent, useGlobalListeners} from '@react-aria/utils';\n\nexport interface MoveResult {\n /** Props to spread on the target element. */\n moveProps: DOMAttributes\n}\n\ninterface EventBase {\n shiftKey: boolean,\n ctrlKey: boolean,\n metaKey: boolean,\n altKey: boolean\n}\n\n/**\n * Handles move interactions across mouse, touch, and keyboard, including dragging with\n * the mouse or touch, and using the arrow keys. Normalizes behavior across browsers and\n * platforms, and ignores emulated mouse events on touch devices.\n */\nexport function useMove(props: MoveEvents): MoveResult {\n let {onMoveStart, onMove, onMoveEnd} = props;\n\n let state = useRef<{\n didMove: boolean,\n lastPosition: {pageX: number, pageY: number} | null,\n id: number | null\n }>({didMove: false, lastPosition: null, id: null});\n\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let move = useEffectEvent((originalEvent: EventBase, pointerType: PointerType, deltaX: number, deltaY: number) => {\n if (deltaX === 0 && deltaY === 0) {\n return;\n }\n\n if (!state.current.didMove) {\n state.current.didMove = true;\n onMoveStart?.({\n type: 'movestart',\n pointerType,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n onMove?.({\n type: 'move',\n pointerType,\n deltaX: deltaX,\n deltaY: deltaY,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n });\n\n let end = useEffectEvent((originalEvent: EventBase, pointerType: PointerType) => {\n restoreTextSelection();\n if (state.current.didMove) {\n onMoveEnd?.({\n type: 'moveend',\n pointerType,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n });\n\n let moveProps = useMemo(() => {\n let moveProps: DOMAttributes = {};\n\n let start = () => {\n disableTextSelection();\n state.current.didMove = false;\n };\n\n if (typeof PointerEvent === 'undefined') {\n let onMouseMove = (e: MouseEvent) => {\n if (e.button === 0) {\n move(e, 'mouse', e.pageX - (state.current.lastPosition?.pageX ?? 0), e.pageY - (state.current.lastPosition?.pageY ?? 0));\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n }\n };\n let onMouseUp = (e: MouseEvent) => {\n if (e.button === 0) {\n end(e, 'mouse');\n removeGlobalListener(window, 'mousemove', onMouseMove, false);\n removeGlobalListener(window, 'mouseup', onMouseUp, false);\n }\n };\n moveProps.onMouseDown = (e: React.MouseEvent) => {\n if (e.button === 0) {\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n addGlobalListener(window, 'mousemove', onMouseMove, false);\n addGlobalListener(window, 'mouseup', onMouseUp, false);\n }\n };\n\n let onTouchMove = (e: TouchEvent) => {\n let touch = [...e.changedTouches].findIndex(({identifier}) => identifier === state.current.id);\n if (touch >= 0) {\n let {pageX, pageY} = e.changedTouches[touch];\n move(e, 'touch', pageX - (state.current.lastPosition?.pageX ?? 0), pageY - (state.current.lastPosition?.pageY ?? 0));\n state.current.lastPosition = {pageX, pageY};\n }\n };\n let onTouchEnd = (e: TouchEvent) => {\n let touch = [...e.changedTouches].findIndex(({identifier}) => identifier === state.current.id);\n if (touch >= 0) {\n end(e, 'touch');\n state.current.id = null;\n removeGlobalListener(window, 'touchmove', onTouchMove);\n removeGlobalListener(window, 'touchend', onTouchEnd);\n removeGlobalListener(window, 'touchcancel', onTouchEnd);\n }\n };\n moveProps.onTouchStart = (e: React.TouchEvent) => {\n if (e.changedTouches.length === 0 || state.current.id != null) {\n return;\n }\n\n let {pageX, pageY, identifier} = e.changedTouches[0];\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {pageX, pageY};\n state.current.id = identifier;\n addGlobalListener(window, 'touchmove', onTouchMove, false);\n addGlobalListener(window, 'touchend', onTouchEnd, false);\n addGlobalListener(window, 'touchcancel', onTouchEnd, false);\n };\n } else {\n let onPointerMove = (e: PointerEvent) => {\n if (e.pointerId === state.current.id) {\n let pointerType = (e.pointerType || 'mouse') as PointerType;\n\n // Problems with PointerEvent#movementX/movementY:\n // 1. it is always 0 on macOS Safari.\n // 2. On Chrome Android, it's scaled by devicePixelRatio, but not on Chrome macOS\n move(e, pointerType, e.pageX - (state.current.lastPosition?.pageX ?? 0), e.pageY - (state.current.lastPosition?.pageY ?? 0));\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n }\n };\n\n let onPointerUp = (e: PointerEvent) => {\n if (e.pointerId === state.current.id) {\n let pointerType = (e.pointerType || 'mouse') as PointerType;\n end(e, pointerType);\n state.current.id = null;\n removeGlobalListener(window, 'pointermove', onPointerMove, false);\n removeGlobalListener(window, 'pointerup', onPointerUp, false);\n removeGlobalListener(window, 'pointercancel', onPointerUp, false);\n }\n };\n\n moveProps.onPointerDown = (e: React.PointerEvent) => {\n if (e.button === 0 && state.current.id == null) {\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n state.current.id = e.pointerId;\n addGlobalListener(window, 'pointermove', onPointerMove, false);\n addGlobalListener(window, 'pointerup', onPointerUp, false);\n addGlobalListener(window, 'pointercancel', onPointerUp, false);\n }\n };\n }\n\n let triggerKeyboardMove = (e: EventBase, deltaX: number, deltaY: number) => {\n start();\n move(e, 'keyboard', deltaX, deltaY);\n end(e, 'keyboard');\n };\n\n moveProps.onKeyDown = (e) => {\n switch (e.key) {\n case 'Left':\n case 'ArrowLeft':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, -1, 0);\n break;\n case 'Right':\n case 'ArrowRight':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 1, 0);\n break;\n case 'Up':\n case 'ArrowUp':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 0, -1);\n break;\n case 'Down':\n case 'ArrowDown':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 0, 1);\n break;\n }\n };\n\n return moveProps;\n }, [state, addGlobalListener, removeGlobalListener, move, end]);\n\n return {moveProps};\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 {getOwnerDocument, isIOS, runAfterTransition} from '@react-aria/utils';\n\n// Safari on iOS starts selecting text on long press. The only way to avoid this, it seems,\n// is to add user-select: none to the entire page. Adding it to the pressable element prevents\n// that element from being selected, but nearby elements may still receive selection. We add\n// user-select: none on touch start, and remove it again on touch end to prevent this.\n// This must be implemented using global state to avoid race conditions between multiple elements.\n\n// There are three possible states due to the delay before removing user-select: none after\n// pointer up. The 'default' state always transitions to the 'disabled' state, which transitions\n// to 'restoring'. The 'restoring' state can either transition back to 'disabled' or 'default'.\n\n// For non-iOS devices, we apply user-select: none to the pressed element instead to avoid possible\n// performance issues that arise from applying and removing user-select: none to the entire page\n// (see https://github.com/adobe/react-spectrum/issues/1609).\ntype State = 'default' | 'disabled' | 'restoring';\n\n// Note that state only matters here for iOS. Non-iOS gets user-select: none applied to the target element\n// rather than at the document level so we just need to apply/remove user-select: none for each pressed element individually\nlet state: State = 'default';\nlet savedUserSelect = '';\nlet modifiedElementMap = new WeakMap<Element, string>();\n\nexport function disableTextSelection(target?: Element) {\n if (isIOS()) {\n if (state === 'default') {\n \n const documentObject = getOwnerDocument(target);\n savedUserSelect = documentObject.documentElement.style.webkitUserSelect;\n documentObject.documentElement.style.webkitUserSelect = 'none';\n }\n\n state = 'disabled';\n } else if (target instanceof HTMLElement || target instanceof SVGElement) {\n // If not iOS, store the target's original user-select and change to user-select: none\n // Ignore state since it doesn't apply for non iOS\n modifiedElementMap.set(target, target.style.userSelect);\n target.style.userSelect = 'none';\n }\n}\n\nexport function restoreTextSelection(target?: Element) {\n if (isIOS()) {\n // If the state is already default, there's nothing to do.\n // If it is restoring, then there's no need to queue a second restore.\n if (state !== 'disabled') {\n return;\n }\n\n state = 'restoring';\n\n // There appears to be a delay on iOS where selection still might occur\n // after pointer up, so wait a bit before removing user-select.\n setTimeout(() => {\n // Wait for any CSS transitions to complete so we don't recompute style\n // for the whole page in the middle of the animation and cause jank.\n runAfterTransition(() => {\n // Avoid race conditions\n if (state === 'restoring') {\n \n const documentObject = getOwnerDocument(target);\n if (documentObject.documentElement.style.webkitUserSelect === 'none') {\n documentObject.documentElement.style.webkitUserSelect = savedUserSelect || '';\n }\n\n savedUserSelect = '';\n state = 'default';\n }\n });\n }, 300);\n } else if (target instanceof HTMLElement || target instanceof SVGElement) {\n // If not iOS, restore the target's original user-select if any\n // Ignore state since it doesn't apply for non iOS\n if (target && modifiedElementMap.has(target)) {\n let targetOldUserSelect = modifiedElementMap.get(target) as string;\n\n if (target.style.userSelect === 'none') {\n target.style.userSelect = targetOldUserSelect;\n }\n\n if (target.getAttribute('style') === '') {\n target.removeAttribute('style');\n }\n modifiedElementMap.delete(target);\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {chain, focusWithoutScrolling, getOwnerDocument, getOwnerWindow, isMac, isVirtualClick, isVirtualPointerEvent, mergeProps, openLink, useEffectEvent, useGlobalListeners, useSyncRef} from '@react-aria/utils';\nimport {disableTextSelection, restoreTextSelection} from './textSelection';\nimport {DOMAttributes, FocusableElement, PressEvent as IPressEvent, PointerType, PressEvents, RefObject} from '@react-types/shared';\nimport {flushSync} from 'react-dom';\nimport {PressResponderContext} from './context';\nimport {preventFocus} from './utils';\nimport {TouchEvent as RTouchEvent, useContext, useEffect, useMemo, useRef, useState} from 'react';\n\nexport interface PressProps extends PressEvents {\n /** Whether the target is in a controlled press state (e.g. an overlay it triggers is open). */\n isPressed?: boolean,\n /** Whether the press events should be disabled. */\n isDisabled?: boolean,\n /** Whether the target should not receive focus on press. */\n preventFocusOnPress?: boolean,\n /**\n * Whether press events should be canceled when the pointer leaves the target while pressed.\n * By default, this is `false`, which means if the pointer returns back over the target while\n * still pressed, onPressStart will be fired again. If set to `true`, the press is canceled\n * when the pointer leaves the target and onPressStart will not be fired if the pointer returns.\n */\n shouldCancelOnPointerExit?: boolean,\n /** Whether text selection should be enabled on the pressable element. */\n allowTextSelectionOnPress?: boolean\n}\n\nexport interface PressHookProps extends PressProps {\n /** A ref to the target element. */\n ref?: RefObject<Element | null>\n}\n\ninterface PressState {\n isPressed: boolean,\n ignoreEmulatedMouseEvents: boolean,\n didFirePressStart: boolean,\n isTriggeringEvent: boolean,\n activePointerId: any,\n target: FocusableElement | null,\n isOverTarget: boolean,\n pointerType: PointerType | null,\n userSelect?: string,\n metaKeyEvents?: Map<string, KeyboardEvent>,\n disposables: Array<() => void>\n}\n\ninterface EventBase {\n currentTarget: EventTarget | null,\n shiftKey: boolean,\n ctrlKey: boolean,\n metaKey: boolean,\n altKey: boolean,\n clientX?: number,\n clientY?: number,\n targetTouches?: Array<{clientX?: number, clientY?: number}>\n}\n\nexport interface PressResult {\n /** Whether the target is currently pressed. */\n isPressed: boolean,\n /** Props to spread on the target element. */\n pressProps: DOMAttributes\n}\n\nfunction usePressResponderContext(props: PressHookProps): PressHookProps {\n // Consume context from <PressResponder> and merge with props.\n let context = useContext(PressResponderContext);\n if (context) {\n let {register, ...contextProps} = context;\n props = mergeProps(contextProps, props) as PressHookProps;\n register();\n }\n useSyncRef(context, props.ref);\n\n return props;\n}\n\nclass PressEvent implements IPressEvent {\n type: IPressEvent['type'];\n pointerType: PointerType;\n target: Element;\n shiftKey: boolean;\n ctrlKey: boolean;\n metaKey: boolean;\n altKey: boolean;\n x: number;\n y: number;\n #shouldStopPropagation = true;\n\n constructor(type: IPressEvent['type'], pointerType: PointerType, originalEvent: EventBase, state?: PressState) {\n let currentTarget = state?.target ?? originalEvent.currentTarget;\n const rect: DOMRect | undefined = (currentTarget as Element)?.getBoundingClientRect();\n let x, y = 0;\n let clientX, clientY: number | null = null;\n if (originalEvent.clientX != null && originalEvent.clientY != null) {\n clientX = originalEvent.clientX;\n clientY = originalEvent.clientY;\n }\n if (rect) {\n if (clientX != null && clientY != null) {\n x = clientX - rect.left;\n y = clientY - rect.top;\n } else {\n x = rect.width / 2;\n y = rect.height / 2;\n }\n }\n this.type = type;\n this.pointerType = pointerType;\n this.target = originalEvent.currentTarget as Element;\n this.shiftKey = originalEvent.shiftKey;\n this.metaKey = originalEvent.metaKey;\n this.ctrlKey = originalEvent.ctrlKey;\n this.altKey = originalEvent.altKey;\n this.x = x;\n this.y = y;\n }\n\n continuePropagation() {\n this.#shouldStopPropagation = false;\n }\n\n get shouldStopPropagation() {\n return this.#shouldStopPropagation;\n }\n}\n\nconst LINK_CLICKED = Symbol('linkClicked');\n\n/**\n * Handles press interactions across mouse, touch, keyboard, and screen readers.\n * It normalizes behavior across browsers and platforms, and handles many nuances\n * of dealing with pointer and keyboard events.\n */\nexport function usePress(props: PressHookProps): PressResult {\n let {\n onPress,\n onPressChange,\n onPressStart,\n onPressEnd,\n onPressUp,\n isDisabled,\n isPressed: isPressedProp,\n preventFocusOnPress,\n shouldCancelOnPointerExit,\n allowTextSelectionOnPress,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ref: _, // Removing `ref` from `domProps` because TypeScript is dumb\n ...domProps\n } = usePressResponderContext(props);\n\n let [isPressed, setPressed] = useState(false);\n let ref = useRef<PressState>({\n isPressed: false,\n ignoreEmulatedMouseEvents: false,\n didFirePressStart: false,\n isTriggeringEvent: false,\n activePointerId: null,\n target: null,\n isOverTarget: false,\n pointerType: null,\n disposables: []\n });\n\n let {addGlobalListener, removeAllGlobalListeners} = useGlobalListeners();\n\n let triggerPressStart = useEffectEvent((originalEvent: EventBase, pointerType: PointerType) => {\n let state = ref.current;\n if (isDisabled || state.didFirePressStart) {\n return false;\n }\n\n let shouldStopPropagation = true;\n state.isTriggeringEvent = true;\n if (onPressStart) {\n let event = new PressEvent('pressstart', pointerType, originalEvent);\n onPressStart(event);\n shouldStopPropagation = event.shouldStopPropagation;\n }\n\n if (onPressChange) {\n onPressChange(true);\n }\n\n state.isTriggeringEvent = false;\n state.didFirePressStart = true;\n setPressed(true);\n return shouldStopPropagation;\n });\n\n let triggerPressEnd = useEffectEvent((originalEvent: EventBase, pointerType: PointerType, wasPressed = true) => {\n let state = ref.current;\n if (!state.didFirePressStart) {\n return false;\n }\n\n state.didFirePressStart = false;\n state.isTriggeringEvent = true;\n\n let shouldStopPropagation = true;\n if (onPressEnd) {\n let event = new PressEvent('pressend', pointerType, originalEvent);\n onPressEnd(event);\n shouldStopPropagation = event.shouldStopPropagation;\n }\n\n if (onPressChange) {\n onPressChange(false);\n }\n\n setPressed(false);\n\n if (onPress && wasPressed && !isDisabled) {\n let event = new PressEvent('press', pointerType, originalEvent);\n onPress(event);\n shouldStopPropagation &&= event.shouldStopPropagation;\n }\n\n state.isTriggeringEvent = false;\n return shouldStopPropagation;\n });\n\n let triggerPressUp = useEffectEvent((originalEvent: EventBase, pointerType: PointerType) => {\n let state = ref.current;\n if (isDisabled) {\n return false;\n }\n\n if (onPressUp) {\n state.isTriggeringEvent = true;\n let event = new PressEvent('pressup', pointerType, originalEvent);\n onPressUp(event);\n state.isTriggeringEvent = false;\n return event.shouldStopPropagation;\n }\n\n return true;\n });\n\n let cancel = useEffectEvent((e: EventBase) => {\n let state = ref.current;\n if (state.isPressed && state.target) {\n if (state.didFirePressStart && state.pointerType != null) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n for (let dispose of state.disposables) {\n dispose();\n }\n state.disposables = [];\n }\n });\n\n let cancelOnPointerExit = useEffectEvent((e: EventBase) => {\n if (shouldCancelOnPointerExit) {\n cancel(e);\n }\n });\n\n let pressProps = useMemo(() => {\n let state = ref.current;\n let pressProps: DOMAttributes = {\n onKeyDown(e) {\n if (isValidKeyboardEvent(e.nativeEvent, e.currentTarget) && e.currentTarget.contains(e.target as Element)) {\n if (shouldPreventDefaultKeyboard(e.target as Element, e.key)) {\n e.preventDefault();\n }\n\n // If the event is repeating, it may have started on a different element\n // after which focus moved to the current element. Ignore these events and\n // only handle the first key down event.\n let shouldStopPropagation = true;\n if (!state.isPressed && !e.repeat) {\n state.target = e.currentTarget;\n state.isPressed = true;\n state.pointerType = 'keyboard';\n shouldStopPropagation = triggerPressStart(e, 'keyboard');\n\n // Focus may move before the key up event, so register the event on the document\n // instead of the same element where the key down event occurred. Make it capturing so that it will trigger\n // before stopPropagation from useKeyboard on a child element may happen and thus we can still call triggerPress for the parent element.\n let originalTarget = e.currentTarget;\n let pressUp = (e) => {\n if (isValidKeyboardEvent(e, originalTarget) && !e.repeat && originalTarget.contains(e.target as Element) && state.target) {\n triggerPressUp(createEvent(state.target, e), 'keyboard');\n }\n };\n\n addGlobalListener(getOwnerDocument(e.currentTarget), 'keyup', chain(pressUp, onKeyUp), true);\n }\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n\n // Keep track of the keydown events that occur while the Meta (e.g. Command) key is held.\n // macOS has a bug where keyup events are not fired while the Meta key is down.\n // When the Meta key itself is released we will get an event for that, and we'll act as if\n // all of these other keys were released as well.\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1393524\n // https://bugs.webkit.org/show_bug.cgi?id=55291\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1299553\n if (e.metaKey && isMac()) {\n state.metaKeyEvents?.set(e.key, e.nativeEvent);\n }\n } else if (e.key === 'Meta') {\n state.metaKeyEvents = new Map();\n }\n },\n onClick(e) {\n if (e && !e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (e && e.button === 0 && !state.isTriggeringEvent && !(openLink as any).isOpening) {\n let shouldStopPropagation = true;\n if (isDisabled) {\n e.preventDefault();\n }\n \n // If triggered from a screen reader or by using element.click(),\n // trigger as if it were a keyboard click.\n if (!state.ignoreEmulatedMouseEvents && !state.isPressed && (state.pointerType === 'virtual' || isVirtualClick(e.nativeEvent))) {\n let stopPressStart = triggerPressStart(e, 'virtual');\n let stopPressUp = triggerPressUp(e, 'virtual');\n let stopPressEnd = triggerPressEnd(e, 'virtual');\n shouldStopPropagation = stopPressStart && stopPressUp && stopPressEnd;\n } else if (state.isPressed && state.pointerType !== 'keyboard') {\n let pointerType = state.pointerType || (e.nativeEvent as PointerEvent).pointerType as PointerType || 'virtual';\n shouldStopPropagation = triggerPressEnd(createEvent(e.currentTarget, e), pointerType, true);\n state.isOverTarget = false;\n cancel(e);\n }\n\n state.ignoreEmulatedMouseEvents = false;\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n }\n }\n };\n\n let onKeyUp = (e: KeyboardEvent) => {\n if (state.isPressed && state.target && isValidKeyboardEvent(e, state.target)) {\n if (shouldPreventDefaultKeyboard(e.target as Element, e.key)) {\n e.preventDefault();\n }\n\n let target = e.target as Element;\n triggerPressEnd(createEvent(state.target, e), 'keyboard', state.target.contains(target));\n removeAllGlobalListeners();\n\n // If a link was triggered with a key other than Enter, open the URL ourselves.\n // This means the link has a role override, and the default browser behavior\n // only applies when using the Enter key.\n if (e.key !== 'Enter' && isHTMLAnchorLink(state.target) && state.target.contains(target) && !e[LINK_CLICKED]) {\n // Store a hidden property on the event so we only trigger link click once,\n // even if there are multiple usePress instances attached to the element.\n e[LINK_CLICKED] = true;\n openLink(state.target, e, false);\n }\n\n state.isPressed = false;\n state.metaKeyEvents?.delete(e.key);\n } else if (e.key === 'Meta' && state.metaKeyEvents?.size) {\n // If we recorded keydown events that occurred while the Meta key was pressed,\n // and those haven't received keyup events already, fire keyup events ourselves.\n // See comment above for more info about the macOS bug causing this.\n let events = state.metaKeyEvents;\n state.metaKeyEvents = undefined;\n for (let event of events.values()) {\n state.target?.dispatchEvent(new KeyboardEvent('keyup', event));\n }\n }\n };\n\n if (typeof PointerEvent !== 'undefined') {\n pressProps.onPointerDown = (e) => {\n // Only handle left clicks, and ignore events that bubbled through portals.\n if (e.button !== 0 || !e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n // iOS safari fires pointer events from VoiceOver with incorrect coordinates/target.\n // Ignore and let the onClick handler take care of it instead.\n // https://bugs.webkit.org/show_bug.cgi?id=222627\n // https://bugs.webkit.org/show_bug.cgi?id=223202\n if (isVirtualPointerEvent(e.nativeEvent)) {\n state.pointerType = 'virtual';\n return;\n }\n\n state.pointerType = e.pointerType;\n\n let shouldStopPropagation = true;\n if (!state.isPressed) {\n state.isPressed = true;\n state.isOverTarget = true;\n state.activePointerId = e.pointerId;\n state.target = e.currentTarget;\n\n if (!allowTextSelectionOnPress) {\n disableTextSelection(state.target);\n }\n\n shouldStopPropagation = triggerPressStart(e, state.pointerType);\n\n // Release pointer capture so that touch interactions can leave the original target.\n // This enables onPointerLeave and onPointerEnter to fire.\n let target = e.target as Element;\n if ('releasePointerCapture' in target) {\n target.releasePointerCapture(e.pointerId);\n }\n\n addGlobalListener(getOwnerDocument(e.currentTarget), 'pointerup', onPointerUp, false);\n addGlobalListener(getOwnerDocument(e.currentTarget), 'pointercancel', onPointerCancel, false);\n }\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n };\n\n pressProps.onMouseDown = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (e.button === 0) {\n if (preventFocusOnPress) {\n let dispose = preventFocus(e.target as FocusableElement);\n if (dispose) {\n state.disposables.push(dispose);\n }\n }\n\n e.stopPropagation();\n }\n };\n\n pressProps.onPointerUp = (e) => {\n // iOS fires pointerup with zero width and height, so check the pointerType recorded during pointerdown.\n if (!e.currentTarget.contains(e.target as Element) || state.pointerType === 'virtual') {\n return;\n }\n\n // Only handle left clicks\n if (e.button === 0) {\n triggerPressUp(e, state.pointerType || e.pointerType);\n }\n };\n\n pressProps.onPointerEnter = (e) => {\n if (e.pointerId === state.activePointerId && state.target && !state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = true;\n triggerPressStart(createEvent(state.target, e), state.pointerType);\n }\n };\n\n pressProps.onPointerLeave = (e) => {\n if (e.pointerId === state.activePointerId && state.target && state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = false;\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n cancelOnPointerExit(e);\n }\n };\n\n let onPointerUp = (e: PointerEvent) => {\n if (e.pointerId === state.activePointerId && state.isPressed && e.button === 0 && state.target) {\n if (state.target.contains(e.target as Element) && state.pointerType != null) {\n // Wait for onClick to fire onPress. This avoids browser issues when the DOM\n // is mutated between onPointerUp and onClick, and is more compatible with third party libraries.\n // https://github.com/adobe/react-spectrum/issues/1513\n // https://issues.chromium.org/issues/40732224\n // However, iOS and Android do not focus or fire onClick after a long press.\n // We work around this by triggering a click ourselves after a timeout.\n // This timeout is canceled during the click event in case the real one fires first.\n // In testing, a 0ms delay is too short. 5ms seems long enough for the browser to fire the real events.\n let clicked = false;\n let timeout = setTimeout(() => {\n if (state.isPressed && state.target instanceof HTMLElement) {\n if (clicked) {\n cancel(e);\n } else {\n focusWithoutScrolling(state.target);\n state.target.click();\n }\n }\n }, 5);\n // Use a capturing listener to track if a click occurred.\n // If stopPropagation is called it may never reach our handler.\n addGlobalListener(e.currentTarget as Document, 'click', () => clicked = true, true);\n state.disposables.push(() => clearTimeout(timeout));\n } else {\n cancel(e);\n }\n\n // Ignore subsequent onPointerLeave event before onClick on touch devices.\n state.isOverTarget = false;\n }\n };\n\n let onPointerCancel = (e: PointerEvent) => {\n cancel(e);\n };\n\n pressProps.onDragStart = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n // Safari does not call onPointerCancel when a drag starts, whereas Chrome and Firefox do.\n cancel(e);\n };\n } else {\n // NOTE: this fallback branch is almost entirely used by unit tests.\n // All browsers now support pointer events, but JSDOM still does not.\n\n pressProps.onMouseDown = (e) => {\n // Only handle left clicks\n if (e.button !== 0 || !e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (state.ignoreEmulatedMouseEvents) {\n e.stopPropagation();\n return;\n }\n\n state.isPressed = true;\n state.isOverTarget = true;\n state.target = e.currentTarget;\n state.pointerType = isVirtualClick(e.nativeEvent) ? 'virtual' : 'mouse';\n\n // Flush sync so that focus moved during react re-renders occurs before we yield back to the browser.\n let shouldStopPropagation = flushSync(() => triggerPressStart(e, state.pointerType!));\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n\n if (preventFocusOnPress) {\n let dispose = preventFocus(e.target as FocusableElement);\n if (dispose) {\n state.disposables.push(dispose);\n }\n }\n\n addGlobalListener(getOwnerDocument(e.currentTarget), 'mouseup', onMouseUp, false);\n };\n\n pressProps.onMouseEnter = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n let shouldStopPropagation = true;\n if (state.isPressed && !state.ignoreEmulatedMouseEvents && state.pointerType != null) {\n state.isOverTarget = true;\n shouldStopPropagation = triggerPressStart(e, state.pointerType);\n }\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n };\n\n pressProps.onMouseLeave = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n let shouldStopPropagation = true;\n if (state.isPressed && !state.ignoreEmulatedMouseEvents && state.pointerType != null) {\n state.isOverTarget = false;\n shouldStopPropagation = triggerPressEnd(e, state.pointerType, false);\n cancelOnPointerExit(e);\n }\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n };\n\n pressProps.onMouseUp = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (!state.ignoreEmulatedMouseEvents && e.button === 0) {\n triggerPressUp(e, state.pointerType || 'mouse');\n }\n };\n\n let onMouseUp = (e: MouseEvent) => {\n // Only handle left clicks\n if (e.button !== 0) {\n return;\n }\n\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n return;\n }\n\n if (state.target && state.target.contains(e.target as Element) && state.pointerType != null) {\n // Wait for onClick to fire onPress. This avoids browser issues when the DOM\n // is mutated between onMouseUp and onClick, and is more compatible with third party libraries.\n } else {\n cancel(e);\n }\n\n state.isOverTarget = false;\n };\n\n pressProps.onTouchStart = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n let touch = getTouchFromEvent(e.nativeEvent);\n if (!touch) {\n return;\n }\n state.activePointerId = touch.identifier;\n state.ignoreEmulatedMouseEvents = true;\n state.isOverTarget = true;\n state.isPressed = true;\n state.target = e.currentTarget;\n state.pointerType = 'touch';\n\n if (!allowTextSelectionOnPress) {\n disableTextSelection(state.target);\n }\n\n let shouldStopPropagation = triggerPressStart(createTouchEvent(state.target, e), state.pointerType);\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n\n addGlobalListener(getOwnerWindow(e.currentTarget), 'scroll', onScroll, true);\n };\n\n pressProps.onTouchMove = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (!state.isPressed) {\n e.stopPropagation();\n return;\n }\n\n let touch = getTouchById(e.nativeEvent, state.activePointerId);\n let shouldStopPropagation = true;\n if (touch && isOverTarget(touch, e.currentTarget)) {\n if (!state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = true;\n shouldStopPropagation = triggerPressStart(createTouchEvent(state.target!, e), state.pointerType);\n }\n } else if (state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = false;\n shouldStopPropagation = triggerPressEnd(createTouchEvent(state.target!, e), state.pointerType, false);\n cancelOnPointerExit(createTouchEvent(state.target!, e));\n }\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n };\n\n pressProps.onTouchEnd = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (!state.isPressed) {\n e.stopPropagation();\n return;\n }\n\n let touch = getTouchById(e.nativeEvent, state.activePointerId);\n let shouldStopPropagation = true;\n if (touch && isOverTarget(touch, e.currentTarget) && state.pointerType != null) {\n triggerPressUp(createTouchEvent(state.target!, e), state.pointerType);\n shouldStopPropagation = triggerPressEnd(createTouchEvent(state.target!, e), state.pointerType);\n } else if (state.isOverTarget && state.pointerType != null) {\n shouldStopPropagation = triggerPressEnd(createTouchEvent(state.target!, e), state.pointerType, false);\n }\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n\n state.isPressed = false;\n state.activePointerId = null;\n state.isOverTarget = false;\n state.ignoreEmulatedMouseEvents = true;\n if (state.target && !allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n removeAllGlobalListeners();\n };\n\n pressProps.onTouchCancel = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n e.stopPropagation();\n if (state.isPressed) {\n cancel(createTouchEvent(state.target!, e));\n }\n };\n\n let onScroll = (e: Event) => {\n if (state.isPressed && (e.target as Element).contains(state.target)) {\n cancel({\n currentTarget: state.target,\n shiftKey: false,\n ctrlKey: false,\n metaKey: false,\n altKey: false\n });\n }\n };\n\n pressProps.onDragStart = (e) => {\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n cancel(e);\n };\n }\n\n return pressProps;\n }, [\n addGlobalListener,\n isDisabled,\n preventFocusOnPress,\n removeAllGlobalListeners,\n allowTextSelectionOnPress,\n cancel,\n cancelOnPointerExit,\n triggerPressEnd,\n triggerPressStart,\n triggerPressUp\n ]);\n\n // Remove user-select: none in case component unmounts immediately after pressStart\n\n useEffect(() => {\n let state = ref.current;\n return () => {\n if (!allowTextSelectionOnPress) {\n \n restoreTextSelection(state.target ?? undefined);\n }\n for (let dispose of state.disposables) {\n dispose();\n }\n state.disposables = [];\n };\n }, [allowTextSelectionOnPress]);\n\n return {\n isPressed: isPressedProp || isPressed,\n pressProps: mergeProps(domProps, pressProps)\n };\n}\n\nfunction isHTMLAnchorLink(target: Element): target is HTMLAnchorElement {\n return target.tagName === 'A' && target.hasAttribute('href');\n}\n\nfunction isValidKeyboardEvent(event: KeyboardEvent, currentTarget: Element): boolean {\n const {key, code} = event;\n const element = currentTarget as HTMLElement;\n const role = element.getAttribute('role');\n // Accessibility for keyboards. Space and Enter only.\n // \"Spacebar\" is for IE 11\n return (\n (key === 'Enter' || key === ' ' || key === 'Spacebar' || code === 'Space') &&\n !((element instanceof getOwnerWindow(element).HTMLInputElement && !isValidInputKey(element, key)) ||\n element instanceof getOwnerWindow(element).HTMLTextAreaElement ||\n element.isContentEditable) &&\n // Links should only trigger with Enter key\n !((role === 'link' || (!role && isHTMLAnchorLink(element))) && key !== 'Enter')\n );\n}\n\nfunction getTouchFromEvent(event: TouchEvent): Touch | null {\n const {targetTouches} = event;\n if (targetTouches.length > 0) {\n return targetTouches[0];\n }\n return null;\n}\n\nfunction getTouchById(\n event: TouchEvent,\n pointerId: null | number\n): null | Touch {\n const changedTouches = event.changedTouches;\n for (let i = 0; i < changedTouches.length; i++) {\n const touch = changedTouches[i];\n if (touch.identifier === pointerId) {\n return touch;\n }\n }\n return null;\n}\n\nfunction createTouchEvent(target: FocusableElement, e: RTouchEvent<FocusableElement>): EventBase {\n let clientX = 0;\n let clientY = 0;\n if (e.targetTouches && e.targetTouches.length === 1) {\n clientX = e.targetTouches[0].clientX;\n clientY = e.targetTouches[0].clientY;\n }\n return {\n currentTarget: target,\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey,\n clientX,\n clientY\n };\n}\n\nfunction createEvent(target: FocusableElement, e: EventBase): EventBase {\n let clientX = e.clientX;\n let clientY = e.clientY;\n return {\n currentTarget: target,\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey,\n clientX,\n clientY\n };\n}\n\ninterface Rect {\n top: number,\n right: number,\n bottom: number,\n left: number\n}\n\ninterface EventPoint {\n clientX: number,\n clientY: number,\n width?: number,\n height?: number,\n radiusX?: number,\n radiusY?: number\n}\n\nfunction getPointClientRect(point: EventPoint): Rect {\n let offsetX = 0;\n let offsetY = 0;\n if (point.width !== undefined) {\n offsetX = (point.width / 2);\n } else if (point.radiusX !== undefined) {\n offsetX = point.radiusX;\n }\n if (point.height !== undefined) {\n offsetY = (point.height / 2);\n } else if (point.radiusY !== undefined) {\n offsetY = point.radiusY;\n }\n\n return {\n top: point.clientY - offsetY,\n right: point.clientX + offsetX,\n bottom: point.clientY + offsetY,\n left: point.clientX - offsetX\n };\n}\n\nfunction areRectanglesOverlapping(a: Rect, b: Rect) {\n // check if they cannot overlap on x axis\n if (a.left > b.right || b.left > a.right) {\n return false;\n }\n // check if they cannot overlap on y axis\n if (a.top > b.bottom || b.top > a.bottom) {\n return false;\n }\n return true;\n}\n\nfunction isOverTarget(point: EventPoint, target: Element) {\n let rect = target.getBoundingClientRect();\n let pointRect = getPointClientRect(point);\n return areRectanglesOverlapping(rect, pointRect);\n}\n\nfunction shouldPreventDefaultUp(target: Element) {\n if (target instanceof HTMLInputElement) {\n return false;\n }\n\n if (target instanceof HTMLButtonElement) {\n return target.type !== 'submit' && target.type !== 'reset';\n }\n\n if (isHTMLAnchorLink(target)) {\n return false;\n }\n\n return true;\n}\n\nfunction shouldPreventDefaultKeyboard(target: Element, key: string) {\n if (target instanceof HTMLInputElement) {\n return !isValidInputKey(target, key);\n }\n\n return shouldPreventDefaultUp(target);\n}\n\nconst nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\n\nfunction isValidInputKey(target: HTMLInputElement, key: string) {\n // Only space should toggle checkboxes and radios, not enter.\n return target.type === 'checkbox' || target.type === 'radio'\n ? key === ' '\n : nonTextInputTypes.has(target.type);\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, ScrollEvents} from '@react-types/shared';\nimport {useCallback} from 'react';\nimport {useEvent} from '@react-aria/utils';\n\nexport interface ScrollWheelProps extends ScrollEvents {\n /** Whether the scroll listener should be disabled. */\n isDisabled?: boolean\n}\n\n// scroll wheel needs to be added not passively so it's cancelable, small helper hook to remember that\nexport function useScrollWheel(props: ScrollWheelProps, ref: RefObject<HTMLElement | null>): void {\n let {onScroll, isDisabled} = props;\n let onScrollHandler = useCallback((e) => {\n // If the ctrlKey is pressed, this is a zoom event, do nothing.\n if (e.ctrlKey) {\n return;\n }\n\n // stop scrolling the page\n e.preventDefault();\n e.stopPropagation();\n\n if (onScroll) {\n onScroll({deltaX: e.deltaX, deltaY: e.deltaY});\n }\n }, [onScroll]);\n\n useEvent(ref, 'wheel', isDisabled ? undefined : onScrollHandler);\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 {DOMAttributes, FocusableElement, LongPressEvent} from '@react-types/shared';\nimport {focusWithoutScrolling, getOwnerDocument, mergeProps, useDescription, useGlobalListeners} from '@react-aria/utils';\nimport {usePress} from './usePress';\nimport {useRef} from 'react';\n\nexport interface LongPressProps {\n /** Whether long press events should be disabled. */\n isDisabled?: boolean,\n /** Handler that is called when a long press interaction starts. */\n onLongPressStart?: (e: LongPressEvent) => void,\n /**\n * Handler that is called when a long press interaction ends, either\n * over the target or when the pointer leaves the target.\n */\n onLongPressEnd?: (e: LongPressEvent) => void,\n /**\n * Handler that is called when the threshold time is met while\n * the press is over the target.\n */\n onLongPress?: (e: LongPressEvent) => void,\n /**\n * The amount of time in milliseconds to wait before triggering a long press.\n * @default 500ms\n */\n threshold?: number,\n /**\n * A description for assistive techology users indicating that a long press\n * action is available, e.g. \"Long press to open menu\".\n */\n accessibilityDescription?: string\n}\n\nexport interface LongPressResult {\n /** Props to spread on the target element. */\n longPressProps: DOMAttributes\n}\n\nconst DEFAULT_THRESHOLD = 500;\n\n/**\n * Handles long press interactions across mouse and touch devices. Supports a customizable time threshold,\n * accessibility description, and normalizes behavior across browsers and devices.\n */\nexport function useLongPress(props: LongPressProps): LongPressResult {\n let {\n isDisabled,\n onLongPressStart,\n onLongPressEnd,\n onLongPress,\n threshold = DEFAULT_THRESHOLD,\n accessibilityDescription\n } = props;\n\n const timeRef = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let {pressProps} = usePress({\n isDisabled,\n onPressStart(e) {\n e.continuePropagation();\n if (e.pointerType === 'mouse' || e.pointerType === 'touch') {\n if (onLongPressStart) {\n onLongPressStart({\n ...e,\n type: 'longpressstart'\n });\n }\n\n timeRef.current = setTimeout(() => {\n // Prevent other usePress handlers from also handling this event.\n e.target.dispatchEvent(new PointerEvent('pointercancel', {bubbles: true}));\n\n // Ensure target is focused. On touch devices, browsers typically focus on pointer up.\n if (getOwnerDocument(e.target).activeElement !== e.target) {\n focusWithoutScrolling(e.target as FocusableElement);\n }\n\n if (onLongPress) {\n onLongPress({\n ...e,\n type: 'longpress'\n });\n }\n timeRef.current = undefined;\n }, threshold);\n\n // Prevent context menu, which may be opened on long press on touch devices\n if (e.pointerType === 'touch') {\n let onContextMenu = e => {\n e.preventDefault();\n };\n\n addGlobalListener(e.target, 'contextmenu', onContextMenu, {once: true});\n addGlobalListener(window, 'pointerup', () => {\n // If no contextmenu event is fired quickly after pointerup, remove the handler\n // so future context menu events outside a long press are not prevented.\n setTimeout(() => {\n removeGlobalListener(e.target, 'contextmenu', onContextMenu);\n }, 30);\n }, {once: true});\n }\n }\n },\n onPressEnd(e) {\n if (timeRef.current) {\n clearTimeout(timeRef.current);\n }\n\n if (onLongPressEnd && (e.pointerType === 'mouse' || e.pointerType === 'touch')) {\n onLongPressEnd({\n ...e,\n type: 'longpressend'\n });\n }\n }\n });\n\n let descriptionProps = useDescription(onLongPress && !isDisabled ? accessibilityDescription : undefined);\n\n return {\n longPressProps: mergeProps(pressProps, descriptionProps)\n };\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","__globalThis","parcelHelpers","defineInteropFlag","export","_pressable","Pressable","_pressResponder","PressResponder","ClearPressResponder","_useFocus","useFocus","_useFocusVisible","isFocusVisible","getInteractionModality","setInteractionModality","addWindowFocusTracking","useInteractionModality","useFocusVisible","useFocusVisibleListener","_useFocusWithin","useFocusWithin","_useHover","useHover","_useInteractOutside","useInteractOutside","_useKeyboard","useKeyboard","_useMove","useMove","_usePress","usePress","_useScrollWheel","useScrollWheel","_useLongPress","useLongPress","_utils","_context","_react","_reactDefault","interopDefault","default","forwardRef","children","props","ref","isRegistered","useRef","prevContext","useContext","PressResponderContext","useObjectRef","context","mergeProps","current","useSyncRef","useEffect","console","warn","createElement","Provider","value","useMemo","createContext","displayName","_utils1","isDisabled","onFocus","onFocusProp","onBlur","onBlurProp","onFocusChange","useCallback","e","target","currentTarget","onSyntheticFocus","useSyntheticBlurEvent","ownerDocument","getOwnerDocument","activeElement","focusProps","undefined","SyntheticFocusEvent","ignoreFocusEvent","preventFocus","constructor","type","nativeEvent","relatedTarget","bubbles","cancelable","defaultPrevented","eventPhase","isTrusted","timeStamp","isDefaultPrevented","preventDefault","stopPropagation","isPropagationStopped","persist","stateRef","isFocused","observer","useLayoutEffect","state","disconnect","dispatchBlur","useEffectEvent","HTMLButtonElement","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","addEventListener","disabled","once","MutationObserver","relatedTargetEl","document","dispatchEvent","FocusEvent","observe","attributes","attributeFilter","isFocusable","parentElement","getOwnerWindow","isRefocusing","stopImmediatePropagation","onFocusOut","focusWithoutScrolling","cleanup","onFocusIn","cancelAnimationFrame","raf","removeEventListener","requestAnimationFrame","hasSetupGlobalListeners","_ssr","currentModality","changeHandlers","Set","Map","hasEventBeforeFocus","hasBlurredWindowRecently","FOCUS_VISIBLE_INPUT_KEYS","Tab","Escape","triggerChangeHandlers","modality","handler","handleKeyboardEvent","metaKey","isMac","altKey","ctrlKey","key","handlePointerEvent","handleClickEvent","isVirtualClick","handleFocusEvent","handleWindowBlur","setupGlobalFocusEvents","element","windowObject","documentObject","focus","HTMLElement","prototype","apply","arguments","PointerEvent","tearDownWindowFocusTracking","set","loadListener","has","delete","readyState","setModality","useState","add","useIsSSR","nonTextInputTypes","isTextInput","autoFocus","isFocusVisibleState","setFocusVisible","fn","deps","opts","isKeyboardFocusEvent","document1","IHTMLInputElement","IHTMLTextAreaElement","IHTMLElement","IKeyboardEvent","KeyboardEvent","isContentEditable","onBlurWithin","onFocusWithin","onFocusWithinChange","isFocusWithin","contains","focusWithinProps","globalIgnoreEmulatedMouseEvents","hoverCount","setGlobalIgnoreEmulatedMouseEvents","setTimeout","handleGlobalPointerEvent","pointerType","setupGlobalTouchEvents","onHoverStart","onHoverChange","onHoverEnd","isHovered","setHovered","ignoreEmulatedMouseEvents","hoverProps","triggerHoverEnd","triggerHoverStart","event","onPointerEnter","onPointerLeave","onTouchStart","onMouseEnter","onMouseLeave","onInteractOutside","onInteractOutsideStart","isPointerDown","onPointerDown","isValidEvent","triggerInteractOutside","onPointerUp","onMouseUp","onTouchEnd","button","documentElement","closest","_createEventHandler","keyboardProps","onKeyDown","createEventHandler","onKeyUp","shouldStopPropagation","error","continuePropagation","_textSelection","onMoveStart","onMove","onMoveEnd","didMove","lastPosition","addGlobalListener","removeGlobalListener","useGlobalListeners","move","originalEvent","deltaX","deltaY","shiftKey","end","restoreTextSelection","moveProps","start","disableTextSelection","onMouseMove","pageX","pageY","onMouseDown","onTouchMove","touch","changedTouches","findIndex","identifier","onPointerMove","pointerId","triggerKeyboardMove","savedUserSelect","modifiedElementMap","WeakMap","isIOS","style","webkitUserSelect","SVGElement","userSelect","runAfterTransition","targetOldUserSelect","getAttribute","removeAttribute","_reactDom","PressEvent","rect","getBoundingClientRect","y","clientX","clientY","left","top","width","height","LINK_CLICKED","Symbol","onPress","onPressChange","onPressStart","onPressEnd","onPressUp","isPressed","isPressedProp","preventFocusOnPress","shouldCancelOnPointerExit","allowTextSelectionOnPress","_","domProps","usePressResponderContext","contextProps","setPressed","didFirePressStart","isTriggeringEvent","activePointerId","isOverTarget","disposables","removeAllGlobalListeners","triggerPressStart","triggerPressEnd","wasPressed","triggerPressUp","cancel","dispose","createEvent","cancelOnPointerExit","pressProps","isValidKeyboardEvent","shouldPreventDefaultKeyboard","repeat","originalTarget","chain","metaKeyEvents","onClick","openLink","isOpening","stopPressStart","stopPressUp","stopPressEnd","isHTMLAnchorLink","size","events","values","isVirtualPointerEvent","releasePointerCapture","onPointerCancel","push","clicked","timeout","click","clearTimeout","onDragStart","flushSync","getTouchFromEvent","targetTouches","createTouchEvent","onScroll","getTouchById","onTouchCancel","tagName","hasAttribute","role","isValidInputKey","point","offsetX","offsetY","pointRect","radiusX","radiusY","right","bottom","a","b","onScrollHandler","useEvent","onLongPressStart","onLongPressEnd","onLongPress","threshold","accessibilityDescription","timeRef","onContextMenu","descriptionProps","useDescription","longPressProps"],"version":3,"file":"useButton.stories.70bdf924.js.map"}