{"version":3,"file":"global-CUFE0bUm.cjs","sources":["../node_modules/.pnpm/phosphor-react@1.4.1_react@19.2.0/node_modules/phosphor-react/dist/lib/index.esm.js","../node_modules/.pnpm/phosphor-react@1.4.1_react@19.2.0/node_modules/phosphor-react/dist/_virtual/_rollupPluginBabelHelpers.js","../node_modules/.pnpm/phosphor-react@1.4.1_react@19.2.0/node_modules/phosphor-react/dist/lib/IconBase.esm.js","../node_modules/.pnpm/phosphor-react@1.4.1_react@19.2.0/node_modules/phosphor-react/dist/icons/ArrowLeft.esm.js","../node_modules/.pnpm/phosphor-react@1.4.1_react@19.2.0/node_modules/phosphor-react/dist/icons/CircleNotch.esm.js","../node_modules/.pnpm/phosphor-react@1.4.1_react@19.2.0/node_modules/phosphor-react/dist/icons/Trash.esm.js","../node_modules/.pnpm/phosphor-react@1.4.1_react@19.2.0/node_modules/phosphor-react/dist/icons/Upload.esm.js","../node_modules/.pnpm/phosphor-react@1.4.1_react@19.2.0/node_modules/phosphor-react/dist/icons/X.esm.js","../node_modules/.pnpm/@react-aria+utils@3.31.0_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@react-aria/utils/dist/useLayoutEffect.mjs","../node_modules/.pnpm/@react-aria+utils@3.31.0_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@react-aria/utils/dist/useEffectEvent.mjs","../node_modules/.pnpm/@react-aria+utils@3.31.0_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@react-aria/utils/dist/domHelpers.mjs","../node_modules/.pnpm/@react-stately+flags@3.1.2/node_modules/@react-stately/flags/dist/import.mjs","../node_modules/.pnpm/@react-aria+utils@3.31.0_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@react-aria/utils/dist/DOMFunctions.mjs","../node_modules/.pnpm/@react-aria+utils@3.31.0_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@react-aria/utils/dist/platform.mjs","../node_modules/.pnpm/@react-aria+utils@3.31.0_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@react-aria/utils/dist/useGlobalListeners.mjs","../node_modules/.pnpm/@react-aria+utils@3.31.0_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@react-aria/utils/dist/isVirtualEvent.mjs","../node_modules/.pnpm/@react-aria+interactions@3.25.6_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@react-aria/interactions/dist/utils.mjs","../node_modules/.pnpm/@react-aria+interactions@3.25.6_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@react-aria/interactions/dist/useFocusVisible.mjs","../node_modules/.pnpm/@react-aria+interactions@3.25.6_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@react-aria/interactions/dist/useFocus.mjs","../node_modules/.pnpm/@react-aria+interactions@3.25.6_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@react-aria/interactions/dist/useFocusWithin.mjs","../node_modules/.pnpm/@react-aria+interactions@3.25.6_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@react-aria/interactions/dist/useHover.mjs","../node_modules/.pnpm/@react-aria+focus@3.21.2_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@react-aria/focus/dist/useFocusRing.mjs","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/utils/env.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/utils/owner.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/utils/micro-task.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/utils/disposables.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/use-disposables.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/use-latest-value.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/use-event.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/use-active-press.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/use-slot.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/utils/class-names.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/utils/match.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/utils/render.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/internal/hidden.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/utils/dom.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/utils/bugs.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/use-sync-refs.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/components/keyboard.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/internal/close-provider.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/use-element-size.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/utils/default-map.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/machine.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/machines/stack-machine.js","../node_modules/.pnpm/use-sync-external-store@1.6.0_react@19.2.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js","../node_modules/.pnpm/use-sync-external-store@1.6.0_react@19.2.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js","../node_modules/.pnpm/use-sync-external-store@1.6.0_react@19.2.0/node_modules/use-sync-external-store/with-selector.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/react-glue.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/use-is-top-layer.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/use-on-disappear.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/utils/focus-management.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/utils/platform.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/use-document-event.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/use-window-event.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/use-outside-click.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/use-owner.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/use-event-listener.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/use-store.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/utils/store.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/document-overflow/adjust-scrollbar-padding.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/document-overflow/handle-ios-locking.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/document-overflow/prevent-scroll.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/document-overflow/overflow-store.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/document-overflow/use-document-overflow.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/use-scroll-lock.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/use-flags.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/use-transition.js","../node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/.pnpm/@floating-ui+react@0.26.28_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@floating-ui/react/dist/floating-ui.react.utils.mjs","../node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/.pnpm/@floating-ui+core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/.pnpm/@floating-ui+dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../node_modules/.pnpm/@floating-ui+react-dom@2.1.6_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","../node_modules/.pnpm/@floating-ui+react@0.26.28_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@floating-ui/react/dist/floating-ui.react.mjs","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/internal/floating.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/internal/open-closed.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/use-on-unmount.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/internal/portal-force-root.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/components/portal/portal.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/use-root-containers.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/hooks/use-tab-direction.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/components/popover/popover-machine.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/components/popover/popover-machine-glue.js","../node_modules/.pnpm/@headlessui+react@2.2.9_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@headlessui/react/dist/components/popover/popover.js","../src/components/close-button.tsx","../src/components/loading.tsx","../src/components/widget-form/image-preview.tsx","../src/components/widget-form/upload-button.tsx","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/bind.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/utils.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/core/AxiosError.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/null.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/toFormData.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/buildURL.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/core/InterceptorManager.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/defaults/transitional.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/platform/browser/index.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/platform/common/utils.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/platform/index.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/defaults/index.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/core/transformData.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/cancel/isCancel.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/cancel/CanceledError.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/core/settle.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/speedometer.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/throttle.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/cookies.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/combineURLs.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/core/buildFullPath.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/core/mergeConfig.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/adapters/xhr.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/composeSignals.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/trackStream.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/adapters/fetch.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/adapters/adapters.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/core/dispatchRequest.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/env/data.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/validator.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/core/Axios.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/cancel/CancelToken.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/spread.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/axios.js","../node_modules/.pnpm/axios@1.13.2/node_modules/axios/index.js","../src/lib/api.ts","../src/components/widget-form/steps/feedback-content-step.tsx","../src/assets/success.svg","../src/components/widget-form/steps/feedback-success-step.tsx","../src/components/widget-form/steps/feedback-type-step.tsx","../src/assets/bug_report.svg","../src/assets/emoji_objects.svg","../src/assets/psychology_alt.svg","../src/components/widget-form/index.tsx","../src/assets/logo.svg","../src/components/widget.tsx"],"sourcesContent":["import { createContext } from 'react';\n\nvar IconContext = /*#__PURE__*/createContext({\n  color: \"currentColor\",\n  size: \"1em\",\n  weight: \"regular\",\n  mirrored: false\n});\nvar renderPathForWeight = function renderPathForWeight(weight, color, pathsByWeight) {\n  var path = pathsByWeight.get(weight);\n  if (!!path) return path(color);\n  console.error('Unsupported icon weight. Choose from \"thin\", \"light\", \"regular\", \"bold\", \"fill\", or \"duotone\".');\n  return null;\n};\n\nexport { IconContext, renderPathForWeight };\n//# sourceMappingURL=index.esm.js.map\n","function _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\nexport { _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose };\n//# sourceMappingURL=_rollupPluginBabelHelpers.js.map\n","import React, { forwardRef, useContext } from 'react';\nimport { IconContext } from './index.esm.js';\nimport { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose } from '../_virtual/_rollupPluginBabelHelpers.js';\n\nvar IconBase = /*#__PURE__*/forwardRef(function (props, ref) {\n  var alt = props.alt,\n      color = props.color,\n      size = props.size,\n      weight = props.weight,\n      mirrored = props.mirrored,\n      children = props.children,\n      renderPath = props.renderPath,\n      restProps = _objectWithoutPropertiesLoose(props, [\"alt\", \"color\", \"size\", \"weight\", \"mirrored\", \"children\", \"renderPath\"]);\n\n  var _useContext = useContext(IconContext),\n      _useContext$color = _useContext.color,\n      contextColor = _useContext$color === void 0 ? \"currentColor\" : _useContext$color,\n      contextSize = _useContext.size,\n      _useContext$weight = _useContext.weight,\n      contextWeight = _useContext$weight === void 0 ? \"regular\" : _useContext$weight,\n      _useContext$mirrored = _useContext.mirrored,\n      contextMirrored = _useContext$mirrored === void 0 ? false : _useContext$mirrored,\n      restContext = _objectWithoutPropertiesLoose(_useContext, [\"color\", \"size\", \"weight\", \"mirrored\"]);\n\n  return React.createElement(\"svg\", Object.assign({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size != null ? size : contextSize,\n    height: size != null ? size : contextSize,\n    fill: color != null ? color : contextColor,\n    viewBox: \"0 0 256 256\",\n    transform: mirrored || contextMirrored ? \"scale(-1, 1)\" : undefined\n  }, restContext, restProps), !!alt && React.createElement(\"title\", null, alt), children, React.createElement(\"rect\", {\n    width: \"256\",\n    height: \"256\",\n    fill: \"none\"\n  }), renderPath(weight != null ? weight : contextWeight, color != null ? color : contextColor));\n});\nIconBase.displayName = \"IconBase\";\n\nexport default IconBase;\n//# sourceMappingURL=IconBase.esm.js.map\n","import React, { forwardRef } from 'react';\nimport { renderPathForWeight } from '../lib/index.esm.js';\nimport IconBase from '../lib/IconBase.esm.js';\n\n/* GENERATED FILE */\nvar pathsByWeight = /*#__PURE__*/new Map();\npathsByWeight.set(\"bold\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"line\", {\n    x1: \"216\",\n    y1: \"128\",\n    x2: \"40\",\n    y2: \"128\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"24\"\n  }), React.createElement(\"polyline\", {\n    points: \"112 56 40 128 112 200\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"24\"\n  }));\n});\npathsByWeight.set(\"duotone\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"line\", {\n    x1: \"216\",\n    y1: \"128\",\n    x2: \"40\",\n    y2: \"128\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }), React.createElement(\"polyline\", {\n    points: \"112 56 40 128 112 200\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }));\n});\npathsByWeight.set(\"fill\", function () {\n  return React.createElement(React.Fragment, null, React.createElement(\"path\", {\n    d: \"M224,128a8,8,0,0,1-8,8H120v64a8,8,0,0,1-4.9,7.4,8.5,8.5,0,0,1-3.1.6,8.3,8.3,0,0,1-5.7-2.3l-72-72a8.1,8.1,0,0,1,0-11.4l72-72a8.4,8.4,0,0,1,8.8-1.7A8,8,0,0,1,120,56v64h96A8,8,0,0,1,224,128Z\"\n  }));\n});\npathsByWeight.set(\"light\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"line\", {\n    x1: \"216\",\n    y1: \"128\",\n    x2: \"40\",\n    y2: \"128\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"12\"\n  }), React.createElement(\"polyline\", {\n    points: \"112 56 40 128 112 200\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"12\"\n  }));\n});\npathsByWeight.set(\"thin\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"line\", {\n    x1: \"216\",\n    y1: \"128\",\n    x2: \"40\",\n    y2: \"128\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"8\"\n  }), React.createElement(\"polyline\", {\n    points: \"112 56 40 128 112 200\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"8\"\n  }));\n});\npathsByWeight.set(\"regular\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"line\", {\n    x1: \"216\",\n    y1: \"128\",\n    x2: \"40\",\n    y2: \"128\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }), React.createElement(\"polyline\", {\n    points: \"112 56 40 128 112 200\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }));\n});\n\nvar renderPath = function renderPath(weight, color) {\n  return renderPathForWeight(weight, color, pathsByWeight);\n};\n\nvar ArrowLeft = /*#__PURE__*/forwardRef(function (props, ref) {\n  return React.createElement(IconBase, Object.assign({\n    ref: ref\n  }, props, {\n    renderPath: renderPath\n  }));\n});\nArrowLeft.displayName = \"ArrowLeft\";\n\nexport default ArrowLeft;\n//# sourceMappingURL=ArrowLeft.esm.js.map\n","import React, { forwardRef } from 'react';\nimport { renderPathForWeight } from '../lib/index.esm.js';\nimport IconBase from '../lib/IconBase.esm.js';\n\n/* GENERATED FILE */\nvar pathsByWeight = /*#__PURE__*/new Map();\npathsByWeight.set(\"bold\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"path\", {\n    d: \"M168,40.7a96,96,0,1,1-80,0\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"24\"\n  }));\n});\npathsByWeight.set(\"duotone\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"path\", {\n    d: \"M168,40.7a96,96,0,1,1-80,0\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }));\n});\npathsByWeight.set(\"fill\", function () {\n  return React.createElement(React.Fragment, null, React.createElement(\"path\", {\n    d: \"M232,128A104,104,0,1,1,84.7,33.4a8.1,8.1,0,0,1,10.6,4,8,8,0,0,1-4,10.6,88,88,0,1,0,73.4,0,8,8,0,0,1-4-10.6,8.1,8.1,0,0,1,10.6-4A104.4,104.4,0,0,1,232,128Z\"\n  }));\n});\npathsByWeight.set(\"light\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"path\", {\n    d: \"M168,40.7a96,96,0,1,1-80,0\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"12\"\n  }));\n});\npathsByWeight.set(\"thin\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"path\", {\n    d: \"M168,40.7a96,96,0,1,1-80,0\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"8\"\n  }));\n});\npathsByWeight.set(\"regular\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"path\", {\n    d: \"M168,40.7a96,96,0,1,1-80,0\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }));\n});\n\nvar renderPath = function renderPath(weight, color) {\n  return renderPathForWeight(weight, color, pathsByWeight);\n};\n\nvar CircleNotch = /*#__PURE__*/forwardRef(function (props, ref) {\n  return React.createElement(IconBase, Object.assign({\n    ref: ref\n  }, props, {\n    renderPath: renderPath\n  }));\n});\nCircleNotch.displayName = \"CircleNotch\";\n\nexport default CircleNotch;\n//# sourceMappingURL=CircleNotch.esm.js.map\n","import React, { forwardRef } from 'react';\nimport { renderPathForWeight } from '../lib/index.esm.js';\nimport IconBase from '../lib/IconBase.esm.js';\n\n/* GENERATED FILE */\nvar pathsByWeight = /*#__PURE__*/new Map();\npathsByWeight.set(\"bold\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"line\", {\n    x1: \"216\",\n    y1: \"60\",\n    x2: \"40\",\n    y2: \"60\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"24\"\n  }), React.createElement(\"line\", {\n    x1: \"104\",\n    y1: \"104\",\n    x2: \"104\",\n    y2: \"168\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"24\"\n  }), React.createElement(\"line\", {\n    x1: \"152\",\n    y1: \"104\",\n    x2: \"152\",\n    y2: \"168\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"24\"\n  }), React.createElement(\"path\", {\n    d: \"M200,60V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V60\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"24\"\n  }), React.createElement(\"path\", {\n    d: \"M168,60V36a16,16,0,0,0-16-16H104A16,16,0,0,0,88,36V60\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"24\"\n  }));\n});\npathsByWeight.set(\"duotone\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"path\", {\n    d: \"M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56Z\",\n    opacity: \"0.2\"\n  }), React.createElement(\"line\", {\n    x1: \"216\",\n    y1: \"56\",\n    x2: \"40\",\n    y2: \"56\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }), React.createElement(\"line\", {\n    x1: \"104\",\n    y1: \"104\",\n    x2: \"104\",\n    y2: \"168\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }), React.createElement(\"line\", {\n    x1: \"152\",\n    y1: \"104\",\n    x2: \"152\",\n    y2: \"168\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }), React.createElement(\"path\", {\n    d: \"M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }), React.createElement(\"path\", {\n    d: \"M168,56V40a16,16,0,0,0-16-16H104A16,16,0,0,0,88,40V56\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }));\n});\npathsByWeight.set(\"fill\", function () {\n  return React.createElement(React.Fragment, null, React.createElement(\"path\", {\n    d: \"M216,48H176V40a24.1,24.1,0,0,0-24-24H104A24.1,24.1,0,0,0,80,40v8H40a8,8,0,0,0,0,16h8V208a16,16,0,0,0,16,16H192a16,16,0,0,0,16-16V64h8a8,8,0,0,0,0-16ZM112,168a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Zm48,0a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Zm0-120H96V40a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8Z\"\n  }));\n});\npathsByWeight.set(\"light\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"line\", {\n    x1: \"216\",\n    y1: \"56\",\n    x2: \"40\",\n    y2: \"56\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"12\"\n  }), React.createElement(\"line\", {\n    x1: \"104\",\n    y1: \"104\",\n    x2: \"104\",\n    y2: \"168\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"12\"\n  }), React.createElement(\"line\", {\n    x1: \"152\",\n    y1: \"104\",\n    x2: \"152\",\n    y2: \"168\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"12\"\n  }), React.createElement(\"path\", {\n    d: \"M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"12\"\n  }), React.createElement(\"path\", {\n    d: \"M168,56V40a16,16,0,0,0-16-16H104A16,16,0,0,0,88,40V56\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"12\"\n  }));\n});\npathsByWeight.set(\"thin\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"line\", {\n    x1: \"216\",\n    y1: \"56\",\n    x2: \"40\",\n    y2: \"56\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"8\"\n  }), React.createElement(\"line\", {\n    x1: \"104\",\n    y1: \"104\",\n    x2: \"104\",\n    y2: \"168\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"8\"\n  }), React.createElement(\"line\", {\n    x1: \"152\",\n    y1: \"104\",\n    x2: \"152\",\n    y2: \"168\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"8\"\n  }), React.createElement(\"path\", {\n    d: \"M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"8\"\n  }), React.createElement(\"path\", {\n    d: \"M168,56V40a16,16,0,0,0-16-16H104A16,16,0,0,0,88,40V56\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"8\"\n  }));\n});\npathsByWeight.set(\"regular\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"line\", {\n    x1: \"216\",\n    y1: \"56\",\n    x2: \"40\",\n    y2: \"56\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }), React.createElement(\"line\", {\n    x1: \"104\",\n    y1: \"104\",\n    x2: \"104\",\n    y2: \"168\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }), React.createElement(\"line\", {\n    x1: \"152\",\n    y1: \"104\",\n    x2: \"152\",\n    y2: \"168\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }), React.createElement(\"path\", {\n    d: \"M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }), React.createElement(\"path\", {\n    d: \"M168,56V40a16,16,0,0,0-16-16H104A16,16,0,0,0,88,40V56\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }));\n});\n\nvar renderPath = function renderPath(weight, color) {\n  return renderPathForWeight(weight, color, pathsByWeight);\n};\n\nvar Trash = /*#__PURE__*/forwardRef(function (props, ref) {\n  return React.createElement(IconBase, Object.assign({\n    ref: ref\n  }, props, {\n    renderPath: renderPath\n  }));\n});\nTrash.displayName = \"Trash\";\n\nexport default Trash;\n//# sourceMappingURL=Trash.esm.js.map\n","import React, { forwardRef } from 'react';\nimport { renderPathForWeight } from '../lib/index.esm.js';\nimport IconBase from '../lib/IconBase.esm.js';\n\n/* GENERATED FILE */\nvar pathsByWeight = /*#__PURE__*/new Map();\npathsByWeight.set(\"bold\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"path\", {\n    d: \"M172,128h52a8,8,0,0,1,8,8v64a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8V136a8,8,0,0,1,8-8H84\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"24\"\n  }), React.createElement(\"line\", {\n    x1: \"128\",\n    y1: \"128\",\n    x2: \"128\",\n    y2: \"24\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"24\"\n  }), React.createElement(\"polyline\", {\n    points: \"80 72 128 24 176 72\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"24\"\n  }), React.createElement(\"circle\", {\n    cx: \"188\",\n    cy: \"168\",\n    r: \"16\"\n  }));\n});\npathsByWeight.set(\"duotone\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"rect\", {\n    x: \"24\",\n    y: \"128\",\n    width: \"208\",\n    height: \"80\",\n    rx: \"8\",\n    opacity: \"0.2\"\n  }), React.createElement(\"path\", {\n    d: \"M176,128h48a8,8,0,0,1,8,8v64a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8V136a8,8,0,0,1,8-8H80\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }), React.createElement(\"line\", {\n    x1: \"128\",\n    y1: \"128\",\n    x2: \"128\",\n    y2: \"24\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }), React.createElement(\"polyline\", {\n    points: \"80 72 128 24 176 72\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }), React.createElement(\"circle\", {\n    cx: \"188\",\n    cy: \"168\",\n    r: \"12\"\n  }));\n});\npathsByWeight.set(\"fill\", function () {\n  return React.createElement(React.Fragment, null, React.createElement(\"path\", {\n    d: \"M74.3,77.7a8.1,8.1,0,0,1,0-11.4l48-48a8.1,8.1,0,0,1,11.4,0l48,48a8.1,8.1,0,0,1,0,11.4,8.2,8.2,0,0,1-11.4,0L136,43.3V128a8,8,0,0,1-16,0V43.3L85.7,77.7A8.1,8.1,0,0,1,74.3,77.7ZM240,136v64a16,16,0,0,1-16,16H32a16,16,0,0,1-16-16V136a16,16,0,0,1,16-16h68a4,4,0,0,1,4,4v3.5c0,13.4,11,24.8,24.5,24.5A24,24,0,0,0,152,128v-4a4,4,0,0,1,4-4h68A16,16,0,0,1,240,136Zm-40,32a12,12,0,1,0-12,12A12,12,0,0,0,200,168Z\"\n  }));\n});\npathsByWeight.set(\"light\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"path\", {\n    d: \"M176,128h48a8,8,0,0,1,8,8v64a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8V136a8,8,0,0,1,8-8H80\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"12\"\n  }), React.createElement(\"line\", {\n    x1: \"128\",\n    y1: \"128\",\n    x2: \"128\",\n    y2: \"24\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"12\"\n  }), React.createElement(\"polyline\", {\n    points: \"80 72 128 24 176 72\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"12\"\n  }), React.createElement(\"circle\", {\n    cx: \"188\",\n    cy: \"168\",\n    r: \"10\"\n  }));\n});\npathsByWeight.set(\"thin\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"path\", {\n    d: \"M176,128h48a8,8,0,0,1,8,8v64a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8V136a8,8,0,0,1,8-8H80\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"8\"\n  }), React.createElement(\"line\", {\n    x1: \"128\",\n    y1: \"128\",\n    x2: \"128\",\n    y2: \"24\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"8\"\n  }), React.createElement(\"polyline\", {\n    points: \"80 72 128 24 176 72\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"8\"\n  }), React.createElement(\"circle\", {\n    cx: \"188\",\n    cy: \"168\",\n    r: \"8\"\n  }));\n});\npathsByWeight.set(\"regular\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"path\", {\n    d: \"M176,128h48a8,8,0,0,1,8,8v64a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8V136a8,8,0,0,1,8-8H80\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }), React.createElement(\"line\", {\n    x1: \"128\",\n    y1: \"128\",\n    x2: \"128\",\n    y2: \"24\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }), React.createElement(\"polyline\", {\n    points: \"80 72 128 24 176 72\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }), React.createElement(\"circle\", {\n    cx: \"188\",\n    cy: \"168\",\n    r: \"12\"\n  }));\n});\n\nvar renderPath = function renderPath(weight, color) {\n  return renderPathForWeight(weight, color, pathsByWeight);\n};\n\nvar Upload = /*#__PURE__*/forwardRef(function (props, ref) {\n  return React.createElement(IconBase, Object.assign({\n    ref: ref\n  }, props, {\n    renderPath: renderPath\n  }));\n});\nUpload.displayName = \"Upload\";\n\nexport default Upload;\n//# sourceMappingURL=Upload.esm.js.map\n","import React, { forwardRef } from 'react';\nimport { renderPathForWeight } from '../lib/index.esm.js';\nimport IconBase from '../lib/IconBase.esm.js';\n\n/* GENERATED FILE */\nvar pathsByWeight = /*#__PURE__*/new Map();\npathsByWeight.set(\"bold\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"line\", {\n    x1: \"200\",\n    y1: \"56\",\n    x2: \"56\",\n    y2: \"200\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"24\"\n  }), React.createElement(\"line\", {\n    x1: \"200\",\n    y1: \"200\",\n    x2: \"56\",\n    y2: \"56\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"24\"\n  }));\n});\npathsByWeight.set(\"duotone\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"line\", {\n    x1: \"200\",\n    y1: \"56\",\n    x2: \"56\",\n    y2: \"200\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }), React.createElement(\"line\", {\n    x1: \"200\",\n    y1: \"200\",\n    x2: \"56\",\n    y2: \"56\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }));\n});\npathsByWeight.set(\"fill\", function () {\n  return React.createElement(React.Fragment, null, React.createElement(\"path\", {\n    d: \"M139.3,128l66.4-66.3a8.1,8.1,0,0,0-11.4-11.4L128,116.7,61.7,50.3A8.1,8.1,0,0,0,50.3,61.7L116.7,128,50.3,194.3a8.1,8.1,0,0,0,0,11.4,8.2,8.2,0,0,0,11.4,0L128,139.3l66.3,66.4a8.2,8.2,0,0,0,11.4,0,8.1,8.1,0,0,0,0-11.4Z\"\n  }));\n});\npathsByWeight.set(\"light\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"line\", {\n    x1: \"200\",\n    y1: \"56\",\n    x2: \"56\",\n    y2: \"200\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"12\"\n  }), React.createElement(\"line\", {\n    x1: \"200\",\n    y1: \"200\",\n    x2: \"56\",\n    y2: \"56\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"12\"\n  }));\n});\npathsByWeight.set(\"thin\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"line\", {\n    x1: \"200\",\n    y1: \"56\",\n    x2: \"56\",\n    y2: \"200\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"8\"\n  }), React.createElement(\"line\", {\n    x1: \"200\",\n    y1: \"200\",\n    x2: \"56\",\n    y2: \"56\",\n    fill: \"none\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"8\"\n  }));\n});\npathsByWeight.set(\"regular\", function (color) {\n  return React.createElement(React.Fragment, null, React.createElement(\"line\", {\n    x1: \"200\",\n    y1: \"56\",\n    x2: \"56\",\n    y2: \"200\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }), React.createElement(\"line\", {\n    x1: \"200\",\n    y1: \"200\",\n    x2: \"56\",\n    y2: \"56\",\n    stroke: color,\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    strokeWidth: \"16\"\n  }));\n});\n\nvar renderPath = function renderPath(weight, color) {\n  return renderPathForWeight(weight, color, pathsByWeight);\n};\n\nvar X = /*#__PURE__*/forwardRef(function (props, ref) {\n  return React.createElement(IconBase, Object.assign({\n    ref: ref\n  }, props, {\n    renderPath: renderPath\n  }));\n});\nX.displayName = \"X\";\n\nexport default X;\n//# sourceMappingURL=X.esm.js.map\n","import $HgANd$react from \"react\";\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 */ \nconst $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c = typeof document !== 'undefined' ? (0, $HgANd$react).useLayoutEffect : ()=>{};\n\n\nexport {$f0a04ccd8dbdd83b$export$e5c5a5f917a5871c as useLayoutEffect};\n//# sourceMappingURL=useLayoutEffect.module.js.map\n","import {useLayoutEffect as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c} from \"./useLayoutEffect.mjs\";\nimport $lmaYr$react, {useRef as $lmaYr$useRef, useCallback as $lmaYr$useCallback} from \"react\";\n\n/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nvar $8ae05eaa5c114e9c$var$_React_useInsertionEffect;\n// Use the earliest effect type possible. useInsertionEffect runs during the mutation phase,\n// before all layout effects, but is available only in React 18 and later.\nconst $8ae05eaa5c114e9c$var$useEarlyEffect = ($8ae05eaa5c114e9c$var$_React_useInsertionEffect = (0, $lmaYr$react)['useInsertionEffect']) !== null && $8ae05eaa5c114e9c$var$_React_useInsertionEffect !== void 0 ? $8ae05eaa5c114e9c$var$_React_useInsertionEffect : (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c);\nfunction $8ae05eaa5c114e9c$export$7f54fc3180508a52(fn) {\n    const ref = (0, $lmaYr$useRef)(null);\n    $8ae05eaa5c114e9c$var$useEarlyEffect(()=>{\n        ref.current = fn;\n    }, [\n        fn\n    ]);\n    // @ts-ignore\n    return (0, $lmaYr$useCallback)((...args)=>{\n        const f = ref.current;\n        return f === null || f === void 0 ? void 0 : f(...args);\n    }, []);\n}\n\n\nexport {$8ae05eaa5c114e9c$export$7f54fc3180508a52 as useEffectEvent};\n//# sourceMappingURL=useEffectEvent.module.js.map\n","const $431fbd86ca7dc216$export$b204af158042fbac = (el)=>{\n    var _el_ownerDocument;\n    return (_el_ownerDocument = el === null || el === void 0 ? void 0 : el.ownerDocument) !== null && _el_ownerDocument !== void 0 ? _el_ownerDocument : document;\n};\nconst $431fbd86ca7dc216$export$f21a1ffae260145a = (el)=>{\n    if (el && 'window' in el && el.window === el) return el;\n    const doc = $431fbd86ca7dc216$export$b204af158042fbac(el);\n    return doc.defaultView || window;\n};\n/**\n * Type guard that checks if a value is a Node. Verifies the presence and type of the nodeType property.\n */ function $431fbd86ca7dc216$var$isNode(value) {\n    return value !== null && typeof value === 'object' && 'nodeType' in value && typeof value.nodeType === 'number';\n}\nfunction $431fbd86ca7dc216$export$af51f0f06c0f328a(node) {\n    return $431fbd86ca7dc216$var$isNode(node) && node.nodeType === Node.DOCUMENT_FRAGMENT_NODE && 'host' in node;\n}\n\n\nexport {$431fbd86ca7dc216$export$b204af158042fbac as getOwnerDocument, $431fbd86ca7dc216$export$f21a1ffae260145a as getOwnerWindow, $431fbd86ca7dc216$export$af51f0f06c0f328a as isShadowRoot};\n//# sourceMappingURL=domHelpers.module.js.map\n","/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ let $f4e2df6bd15f8569$var$_tableNestedRows = false;\nlet $f4e2df6bd15f8569$var$_shadowDOM = false;\nfunction $f4e2df6bd15f8569$export$d9d8a0f82de49530() {\n    $f4e2df6bd15f8569$var$_tableNestedRows = true;\n}\nfunction $f4e2df6bd15f8569$export$1b00cb14a96194e6() {\n    return $f4e2df6bd15f8569$var$_tableNestedRows;\n}\nfunction $f4e2df6bd15f8569$export$12b151d9882e9985() {\n    $f4e2df6bd15f8569$var$_shadowDOM = true;\n}\nfunction $f4e2df6bd15f8569$export$98658e8c59125e6a() {\n    return $f4e2df6bd15f8569$var$_shadowDOM;\n}\n\n\nexport {$f4e2df6bd15f8569$export$d9d8a0f82de49530 as enableTableNestedRows, $f4e2df6bd15f8569$export$1b00cb14a96194e6 as tableNestedRows, $f4e2df6bd15f8569$export$12b151d9882e9985 as enableShadowDOM, $f4e2df6bd15f8569$export$98658e8c59125e6a as shadowDOM};\n//# sourceMappingURL=module.js.map\n","import {isShadowRoot as $431fbd86ca7dc216$export$af51f0f06c0f328a} from \"./domHelpers.mjs\";\nimport {shadowDOM as $lcSu5$shadowDOM} from \"@react-stately/flags\";\n\n// Source: https://github.com/microsoft/tabster/blob/a89fc5d7e332d48f68d03b1ca6e344489d1c3898/src/Shadowdomize/DOMFunctions.ts#L16\n\n\nfunction $d4ee10de306f2510$export$4282f70798064fe0(node, otherNode) {\n    if (!(0, $lcSu5$shadowDOM)()) return otherNode && node ? node.contains(otherNode) : false;\n    if (!node || !otherNode) return false;\n    let currentNode = otherNode;\n    while(currentNode !== null){\n        if (currentNode === node) return true;\n        if (currentNode.tagName === 'SLOT' && currentNode.assignedSlot) // Element is slotted\n        currentNode = currentNode.assignedSlot.parentNode;\n        else if ((0, $431fbd86ca7dc216$export$af51f0f06c0f328a)(currentNode)) // Element is in shadow root\n        currentNode = currentNode.host;\n        else currentNode = currentNode.parentNode;\n    }\n    return false;\n}\nconst $d4ee10de306f2510$export$cd4e5573fbe2b576 = (doc = document)=>{\n    var _activeElement_shadowRoot;\n    if (!(0, $lcSu5$shadowDOM)()) return doc.activeElement;\n    let activeElement = doc.activeElement;\n    while(activeElement && 'shadowRoot' in activeElement && ((_activeElement_shadowRoot = activeElement.shadowRoot) === null || _activeElement_shadowRoot === void 0 ? void 0 : _activeElement_shadowRoot.activeElement))activeElement = activeElement.shadowRoot.activeElement;\n    return activeElement;\n};\nfunction $d4ee10de306f2510$export$e58f029f0fbfdb29(event) {\n    if ((0, $lcSu5$shadowDOM)() && event.target.shadowRoot) {\n        if (event.composedPath) return event.composedPath()[0];\n    }\n    return event.target;\n}\n\n\nexport {$d4ee10de306f2510$export$4282f70798064fe0 as nodeContains, $d4ee10de306f2510$export$cd4e5573fbe2b576 as getActiveElement, $d4ee10de306f2510$export$e58f029f0fbfdb29 as getEventTarget};\n//# sourceMappingURL=DOMFunctions.module.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 */ function $c87311424ea30a05$var$testUserAgent(re) {\n    var _window_navigator_userAgentData;\n    if (typeof window === 'undefined' || window.navigator == null) return false;\n    let brands = (_window_navigator_userAgentData = window.navigator['userAgentData']) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.brands;\n    return Array.isArray(brands) && brands.some((brand)=>re.test(brand.brand)) || re.test(window.navigator.userAgent);\n}\nfunction $c87311424ea30a05$var$testPlatform(re) {\n    var _window_navigator_userAgentData;\n    return typeof window !== 'undefined' && window.navigator != null ? re.test(((_window_navigator_userAgentData = window.navigator['userAgentData']) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.platform) || window.navigator.platform) : false;\n}\nfunction $c87311424ea30a05$var$cached(fn) {\n    if (process.env.NODE_ENV === 'test') return fn;\n    let res = null;\n    return ()=>{\n        if (res == null) res = fn();\n        return res;\n    };\n}\nconst $c87311424ea30a05$export$9ac100e40613ea10 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testPlatform(/^Mac/i);\n});\nconst $c87311424ea30a05$export$186c6964ca17d99 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testPlatform(/^iPhone/i);\n});\nconst $c87311424ea30a05$export$7bef049ce92e4224 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testPlatform(/^iPad/i) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n    $c87311424ea30a05$export$9ac100e40613ea10() && navigator.maxTouchPoints > 1;\n});\nconst $c87311424ea30a05$export$fedb369cb70207f1 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$export$186c6964ca17d99() || $c87311424ea30a05$export$7bef049ce92e4224();\n});\nconst $c87311424ea30a05$export$e1865c3bedcd822b = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$export$9ac100e40613ea10() || $c87311424ea30a05$export$fedb369cb70207f1();\n});\nconst $c87311424ea30a05$export$78551043582a6a98 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/AppleWebKit/i) && !$c87311424ea30a05$export$6446a186d09e379e();\n});\nconst $c87311424ea30a05$export$6446a186d09e379e = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/Chrome/i);\n});\nconst $c87311424ea30a05$export$a11b0059900ceec8 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/Android/i);\n});\nconst $c87311424ea30a05$export$b7d78993b74f766d = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/Firefox/i);\n});\n\n\nexport {$c87311424ea30a05$export$9ac100e40613ea10 as isMac, $c87311424ea30a05$export$186c6964ca17d99 as isIPhone, $c87311424ea30a05$export$7bef049ce92e4224 as isIPad, $c87311424ea30a05$export$fedb369cb70207f1 as isIOS, $c87311424ea30a05$export$e1865c3bedcd822b as isAppleDevice, $c87311424ea30a05$export$78551043582a6a98 as isWebKit, $c87311424ea30a05$export$6446a186d09e379e as isChrome, $c87311424ea30a05$export$a11b0059900ceec8 as isAndroid, $c87311424ea30a05$export$b7d78993b74f766d as isFirefox};\n//# sourceMappingURL=platform.module.js.map\n","import {useRef as $lPAwt$useRef, useCallback as $lPAwt$useCallback, useEffect as $lPAwt$useEffect} from \"react\";\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 */ \nfunction $03deb23ff14920c4$export$4eaf04e54aa8eed6() {\n    let globalListeners = (0, $lPAwt$useRef)(new Map());\n    let addGlobalListener = (0, $lPAwt$useCallback)((eventTarget, type, listener, options)=>{\n        // Make sure we remove the listener after it is called with the `once` option.\n        let fn = (options === null || options === void 0 ? void 0 : options.once) ? (...args)=>{\n            globalListeners.current.delete(listener);\n            listener(...args);\n        } : listener;\n        globalListeners.current.set(listener, {\n            type: type,\n            eventTarget: eventTarget,\n            fn: fn,\n            options: options\n        });\n        eventTarget.addEventListener(type, fn, options);\n    }, []);\n    let removeGlobalListener = (0, $lPAwt$useCallback)((eventTarget, type, listener, options)=>{\n        var _globalListeners_current_get;\n        let fn = ((_globalListeners_current_get = globalListeners.current.get(listener)) === null || _globalListeners_current_get === void 0 ? void 0 : _globalListeners_current_get.fn) || listener;\n        eventTarget.removeEventListener(type, fn, options);\n        globalListeners.current.delete(listener);\n    }, []);\n    let removeAllGlobalListeners = (0, $lPAwt$useCallback)(()=>{\n        globalListeners.current.forEach((value, key)=>{\n            removeGlobalListener(value.eventTarget, value.type, key, value.options);\n        });\n    }, [\n        removeGlobalListener\n    ]);\n    (0, $lPAwt$useEffect)(()=>{\n        return removeAllGlobalListeners;\n    }, [\n        removeAllGlobalListeners\n    ]);\n    return {\n        addGlobalListener: addGlobalListener,\n        removeGlobalListener: removeGlobalListener,\n        removeAllGlobalListeners: removeAllGlobalListeners\n    };\n}\n\n\nexport {$03deb23ff14920c4$export$4eaf04e54aa8eed6 as useGlobalListeners};\n//# sourceMappingURL=useGlobalListeners.module.js.map\n","import {isAndroid as $c87311424ea30a05$export$a11b0059900ceec8} from \"./platform.mjs\";\n\n/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $6a7db85432448f7f$export$60278871457622de(event) {\n    // JAWS/NVDA with Firefox.\n    if (event.pointerType === '' && event.isTrusted) return true;\n    // Android TalkBack's detail value varies depending on the event listener providing the event so we have specific logic here instead\n    // If pointerType is defined, event is from a click listener. For events from mousedown listener, detail === 0 is a sufficient check\n    // to detect TalkBack virtual clicks.\n    if ((0, $c87311424ea30a05$export$a11b0059900ceec8)() && event.pointerType) return event.type === 'click' && event.buttons === 1;\n    return event.detail === 0 && !event.pointerType;\n}\nfunction $6a7db85432448f7f$export$29bf1b5f2c56cf63(event) {\n    // If the pointer size is zero, then we assume it's from a screen reader.\n    // Android TalkBack double tap will sometimes return a event with width and height of 1\n    // and pointerType === 'mouse' so we need to check for a specific combination of event attributes.\n    // Cannot use \"event.pressure === 0\" as the sole check due to Safari pointer events always returning pressure === 0\n    // instead of .5, see https://bugs.webkit.org/show_bug.cgi?id=206216. event.pointerType === 'mouse' is to distingush\n    // Talkback double tap from Windows Firefox touch screen press\n    return !(0, $c87311424ea30a05$export$a11b0059900ceec8)() && event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'mouse';\n}\n\n\nexport {$6a7db85432448f7f$export$60278871457622de as isVirtualClick, $6a7db85432448f7f$export$29bf1b5f2c56cf63 as isVirtualPointerEvent};\n//# sourceMappingURL=isVirtualEvent.module.js.map\n","import {useLayoutEffect as $6dfIe$useLayoutEffect, useEffectEvent as $6dfIe$useEffectEvent, isFocusable as $6dfIe$isFocusable, getOwnerWindow as $6dfIe$getOwnerWindow, focusWithoutScrolling as $6dfIe$focusWithoutScrolling} from \"@react-aria/utils\";\nimport {useRef as $6dfIe$useRef, useCallback as $6dfIe$useCallback} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $8a9cb279dc87e130$export$525bc4921d56d4a(nativeEvent) {\n    let event = nativeEvent;\n    event.nativeEvent = nativeEvent;\n    event.isDefaultPrevented = ()=>event.defaultPrevented;\n    // cancelBubble is technically deprecated in the spec, but still supported in all browsers.\n    event.isPropagationStopped = ()=>event.cancelBubble;\n    event.persist = ()=>{};\n    return event;\n}\nfunction $8a9cb279dc87e130$export$c2b7abe5d61ec696(event, target) {\n    Object.defineProperty(event, 'target', {\n        value: target\n    });\n    Object.defineProperty(event, 'currentTarget', {\n        value: target\n    });\n}\nfunction $8a9cb279dc87e130$export$715c682d09d639cc(onBlur) {\n    let stateRef = (0, $6dfIe$useRef)({\n        isFocused: false,\n        observer: null\n    });\n    // Clean up MutationObserver on unmount. See below.\n    (0, $6dfIe$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, $6dfIe$useEffectEvent)((e)=>{\n        onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n    });\n    // This function is called during a React onFocus event.\n    return (0, $6dfIe$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) {\n                    // For backward compatibility, dispatch a (fake) React synthetic event.\n                    let event = $8a9cb279dc87e130$export$525bc4921d56d4a(e);\n                    dispatchBlur(event);\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            target.addEventListener('focusout', onBlurHandler, {\n                once: true\n            });\n            stateRef.current.observer = new MutationObserver(()=>{\n                if (stateRef.current.isFocused && target.disabled) {\n                    var _stateRef_current_observer;\n                    (_stateRef_current_observer = stateRef.current.observer) === null || _stateRef_current_observer === void 0 ? void 0 : _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 $8a9cb279dc87e130$export$fda7da73ab5d4c48 = false;\nfunction $8a9cb279dc87e130$export$cabe61c495ee3649(target) {\n    // The browser will focus the nearest focusable ancestor of our target.\n    while(target && !(0, $6dfIe$isFocusable)(target))target = target.parentElement;\n    let window = (0, $6dfIe$getOwnerWindow)(target);\n    let activeElement = window.document.activeElement;\n    if (!activeElement || activeElement === target) return;\n    $8a9cb279dc87e130$export$fda7da73ab5d4c48 = 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, $6dfIe$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, $6dfIe$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        $8a9cb279dc87e130$export$fda7da73ab5d4c48 = false;\n        isRefocusing = false;\n    };\n    let raf = requestAnimationFrame(cleanup);\n    return cleanup;\n}\n\n\nexport {$8a9cb279dc87e130$export$525bc4921d56d4a as createSyntheticEvent, $8a9cb279dc87e130$export$c2b7abe5d61ec696 as setEventTarget, $8a9cb279dc87e130$export$715c682d09d639cc as useSyntheticBlurEvent, $8a9cb279dc87e130$export$fda7da73ab5d4c48 as ignoreFocusEvent, $8a9cb279dc87e130$export$cabe61c495ee3649 as preventFocus};\n//# sourceMappingURL=utils.module.js.map\n","import {ignoreFocusEvent as $8a9cb279dc87e130$export$fda7da73ab5d4c48} from \"./utils.mjs\";\nimport {isMac as $28AnR$isMac, isVirtualClick as $28AnR$isVirtualClick, getOwnerWindow as $28AnR$getOwnerWindow, getOwnerDocument as $28AnR$getOwnerDocument} from \"@react-aria/utils\";\nimport {useState as $28AnR$useState, useEffect as $28AnR$useEffect} from \"react\";\nimport {useIsSSR as $28AnR$useIsSSR} from \"@react-aria/ssr\";\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 */ // 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\n\n\n\nlet $507fabe10e71c6fb$var$currentModality = null;\nlet $507fabe10e71c6fb$var$changeHandlers = new Set();\nlet $507fabe10e71c6fb$export$d90243b58daecda7 = new Map(); // We use a map here to support setting event listeners across multiple document objects.\nlet $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\nlet $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;\n// Only Tab or Esc keys will make focus visible on text input elements\nconst $507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS = {\n    Tab: true,\n    Escape: true\n};\nfunction $507fabe10e71c6fb$var$triggerChangeHandlers(modality, e) {\n    for (let handler of $507fabe10e71c6fb$var$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 $507fabe10e71c6fb$var$isValidKey(e) {\n    // Control and Shift keys trigger when navigating back to the tab with keyboard.\n    return !(e.metaKey || !(0, $28AnR$isMac)() && e.altKey || e.ctrlKey || e.key === 'Control' || e.key === 'Shift' || e.key === 'Meta');\n}\nfunction $507fabe10e71c6fb$var$handleKeyboardEvent(e) {\n    $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n    if ($507fabe10e71c6fb$var$isValidKey(e)) {\n        $507fabe10e71c6fb$var$currentModality = 'keyboard';\n        $507fabe10e71c6fb$var$triggerChangeHandlers('keyboard', e);\n    }\n}\nfunction $507fabe10e71c6fb$var$handlePointerEvent(e) {\n    $507fabe10e71c6fb$var$currentModality = 'pointer';\n    if (e.type === 'mousedown' || e.type === 'pointerdown') {\n        $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n        $507fabe10e71c6fb$var$triggerChangeHandlers('pointer', e);\n    }\n}\nfunction $507fabe10e71c6fb$var$handleClickEvent(e) {\n    if ((0, $28AnR$isVirtualClick)(e)) {\n        $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n        $507fabe10e71c6fb$var$currentModality = 'virtual';\n    }\n}\nfunction $507fabe10e71c6fb$var$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, $8a9cb279dc87e130$export$fda7da73ab5d4c48) || !e.isTrusted) 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 (!$507fabe10e71c6fb$var$hasEventBeforeFocus && !$507fabe10e71c6fb$var$hasBlurredWindowRecently) {\n        $507fabe10e71c6fb$var$currentModality = 'virtual';\n        $507fabe10e71c6fb$var$triggerChangeHandlers('virtual', e);\n    }\n    $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\n    $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;\n}\nfunction $507fabe10e71c6fb$var$handleWindowBlur() {\n    if (0, $8a9cb279dc87e130$export$fda7da73ab5d4c48) 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    $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\n    $507fabe10e71c6fb$var$hasBlurredWindowRecently = true;\n}\n/**\n * Setup global event listeners to control when keyboard focus style should be visible.\n */ function $507fabe10e71c6fb$var$setupGlobalFocusEvents(element) {\n    if (typeof window === 'undefined' || typeof document === 'undefined' || $507fabe10e71c6fb$export$d90243b58daecda7.get((0, $28AnR$getOwnerWindow)(element))) return;\n    const windowObject = (0, $28AnR$getOwnerWindow)(element);\n    const documentObject = (0, $28AnR$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        $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n        focus.apply(this, arguments);\n    };\n    documentObject.addEventListener('keydown', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.addEventListener('keyup', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.addEventListener('click', $507fabe10e71c6fb$var$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', $507fabe10e71c6fb$var$handleFocusEvent, true);\n    windowObject.addEventListener('blur', $507fabe10e71c6fb$var$handleWindowBlur, false);\n    if (typeof PointerEvent !== 'undefined') {\n        documentObject.addEventListener('pointerdown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('pointermove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('pointerup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    } else if (process.env.NODE_ENV === 'test') {\n        documentObject.addEventListener('mousedown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('mousemove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('mouseup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    }\n    // Add unmount handler\n    windowObject.addEventListener('beforeunload', ()=>{\n        $507fabe10e71c6fb$var$tearDownWindowFocusTracking(element);\n    }, {\n        once: true\n    });\n    $507fabe10e71c6fb$export$d90243b58daecda7.set(windowObject, {\n        focus: focus\n    });\n}\nconst $507fabe10e71c6fb$var$tearDownWindowFocusTracking = (element, loadListener)=>{\n    const windowObject = (0, $28AnR$getOwnerWindow)(element);\n    const documentObject = (0, $28AnR$getOwnerDocument)(element);\n    if (loadListener) documentObject.removeEventListener('DOMContentLoaded', loadListener);\n    if (!$507fabe10e71c6fb$export$d90243b58daecda7.has(windowObject)) return;\n    windowObject.HTMLElement.prototype.focus = $507fabe10e71c6fb$export$d90243b58daecda7.get(windowObject).focus;\n    documentObject.removeEventListener('keydown', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.removeEventListener('keyup', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.removeEventListener('click', $507fabe10e71c6fb$var$handleClickEvent, true);\n    windowObject.removeEventListener('focus', $507fabe10e71c6fb$var$handleFocusEvent, true);\n    windowObject.removeEventListener('blur', $507fabe10e71c6fb$var$handleWindowBlur, false);\n    if (typeof PointerEvent !== 'undefined') {\n        documentObject.removeEventListener('pointerdown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('pointermove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('pointerup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    } else if (process.env.NODE_ENV === 'test') {\n        documentObject.removeEventListener('mousedown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('mousemove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('mouseup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    }\n    $507fabe10e71c6fb$export$d90243b58daecda7.delete(windowObject);\n};\nfunction $507fabe10e71c6fb$export$2f1888112f558a7d(element) {\n    const documentObject = (0, $28AnR$getOwnerDocument)(element);\n    let loadListener;\n    if (documentObject.readyState !== 'loading') $507fabe10e71c6fb$var$setupGlobalFocusEvents(element);\n    else {\n        loadListener = ()=>{\n            $507fabe10e71c6fb$var$setupGlobalFocusEvents(element);\n        };\n        documentObject.addEventListener('DOMContentLoaded', loadListener);\n    }\n    return ()=>$507fabe10e71c6fb$var$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') $507fabe10e71c6fb$export$2f1888112f558a7d();\nfunction $507fabe10e71c6fb$export$b9b3dfddab17db27() {\n    return $507fabe10e71c6fb$var$currentModality !== 'pointer';\n}\nfunction $507fabe10e71c6fb$export$630ff653c5ada6a9() {\n    return $507fabe10e71c6fb$var$currentModality;\n}\nfunction $507fabe10e71c6fb$export$8397ddfc504fdb9a(modality) {\n    $507fabe10e71c6fb$var$currentModality = modality;\n    $507fabe10e71c6fb$var$triggerChangeHandlers(modality, null);\n}\nfunction $507fabe10e71c6fb$export$98e20ec92f614cfe() {\n    $507fabe10e71c6fb$var$setupGlobalFocusEvents();\n    let [modality, setModality] = (0, $28AnR$useState)($507fabe10e71c6fb$var$currentModality);\n    (0, $28AnR$useEffect)(()=>{\n        let handler = ()=>{\n            setModality($507fabe10e71c6fb$var$currentModality);\n        };\n        $507fabe10e71c6fb$var$changeHandlers.add(handler);\n        return ()=>{\n            $507fabe10e71c6fb$var$changeHandlers.delete(handler);\n        };\n    }, []);\n    return (0, $28AnR$useIsSSR)() ? null : modality;\n}\nconst $507fabe10e71c6fb$var$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 $507fabe10e71c6fb$var$isKeyboardFocusEvent(isTextInput, modality, e) {\n    let document1 = (0, $28AnR$getOwnerDocument)(e === null || e === void 0 ? void 0 : e.target);\n    const IHTMLInputElement = typeof window !== 'undefined' ? (0, $28AnR$getOwnerWindow)(e === null || e === void 0 ? void 0 : e.target).HTMLInputElement : HTMLInputElement;\n    const IHTMLTextAreaElement = typeof window !== 'undefined' ? (0, $28AnR$getOwnerWindow)(e === null || e === void 0 ? void 0 : e.target).HTMLTextAreaElement : HTMLTextAreaElement;\n    const IHTMLElement = typeof window !== 'undefined' ? (0, $28AnR$getOwnerWindow)(e === null || e === void 0 ? void 0 : e.target).HTMLElement : HTMLElement;\n    const IKeyboardEvent = typeof window !== 'undefined' ? (0, $28AnR$getOwnerWindow)(e === null || e === void 0 ? void 0 : 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 && !$507fabe10e71c6fb$var$nonTextInputTypes.has(document1.activeElement.type) || document1.activeElement instanceof IHTMLTextAreaElement || document1.activeElement instanceof IHTMLElement && document1.activeElement.isContentEditable;\n    return !(isTextInput && modality === 'keyboard' && e instanceof IKeyboardEvent && !$507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS[e.key]);\n}\nfunction $507fabe10e71c6fb$export$ffd9e5021c1fb2d6(props = {}) {\n    let { isTextInput: isTextInput, autoFocus: autoFocus } = props;\n    let [isFocusVisibleState, setFocusVisible] = (0, $28AnR$useState)(autoFocus || $507fabe10e71c6fb$export$b9b3dfddab17db27());\n    $507fabe10e71c6fb$export$ec71b4b83ac08ec3((isFocusVisible)=>{\n        setFocusVisible(isFocusVisible);\n    }, [\n        isTextInput\n    ], {\n        isTextInput: isTextInput\n    });\n    return {\n        isFocusVisible: isFocusVisibleState\n    };\n}\nfunction $507fabe10e71c6fb$export$ec71b4b83ac08ec3(fn, deps, opts) {\n    $507fabe10e71c6fb$var$setupGlobalFocusEvents();\n    (0, $28AnR$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 (!$507fabe10e71c6fb$var$isKeyboardFocusEvent(!!(opts === null || opts === void 0 ? void 0 : opts.isTextInput), modality, e)) return;\n            fn($507fabe10e71c6fb$export$b9b3dfddab17db27());\n        };\n        $507fabe10e71c6fb$var$changeHandlers.add(handler);\n        return ()=>{\n            $507fabe10e71c6fb$var$changeHandlers.delete(handler);\n        };\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, deps);\n}\n\n\nexport {$507fabe10e71c6fb$export$d90243b58daecda7 as hasSetupGlobalListeners, $507fabe10e71c6fb$export$2f1888112f558a7d as addWindowFocusTracking, $507fabe10e71c6fb$export$b9b3dfddab17db27 as isFocusVisible, $507fabe10e71c6fb$export$630ff653c5ada6a9 as getInteractionModality, $507fabe10e71c6fb$export$8397ddfc504fdb9a as setInteractionModality, $507fabe10e71c6fb$export$98e20ec92f614cfe as useInteractionModality, $507fabe10e71c6fb$export$ffd9e5021c1fb2d6 as useFocusVisible, $507fabe10e71c6fb$export$ec71b4b83ac08ec3 as useFocusVisibleListener};\n//# sourceMappingURL=useFocusVisible.module.js.map\n","import {useSyntheticBlurEvent as $8a9cb279dc87e130$export$715c682d09d639cc} from \"./utils.mjs\";\nimport {useCallback as $hf0lj$useCallback} from \"react\";\nimport {getOwnerDocument as $hf0lj$getOwnerDocument, getActiveElement as $hf0lj$getActiveElement, getEventTarget as $hf0lj$getEventTarget} from \"@react-aria/utils\";\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 */ // 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\n\n\nfunction $a1ea59d68270f0dd$export$f8168d8dd8fd66e6(props) {\n    let { isDisabled: isDisabled, onFocus: onFocusProp, onBlur: onBlurProp, onFocusChange: onFocusChange } = props;\n    const onBlur = (0, $hf0lj$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, $8a9cb279dc87e130$export$715c682d09d639cc)(onBlur);\n    const onFocus = (0, $hf0lj$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, $hf0lj$getOwnerDocument)(e.target);\n        const activeElement = ownerDocument ? (0, $hf0lj$getActiveElement)(ownerDocument) : (0, $hf0lj$getActiveElement)();\n        if (e.target === e.currentTarget && activeElement === (0, $hf0lj$getEventTarget)(e.nativeEvent)) {\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\nexport {$a1ea59d68270f0dd$export$f8168d8dd8fd66e6 as useFocus};\n//# sourceMappingURL=useFocus.module.js.map\n","import {createSyntheticEvent as $8a9cb279dc87e130$export$525bc4921d56d4a, setEventTarget as $8a9cb279dc87e130$export$c2b7abe5d61ec696, useSyntheticBlurEvent as $8a9cb279dc87e130$export$715c682d09d639cc} from \"./utils.mjs\";\nimport {useRef as $3b9Q0$useRef, useCallback as $3b9Q0$useCallback} from \"react\";\nimport {useGlobalListeners as $3b9Q0$useGlobalListeners, getOwnerDocument as $3b9Q0$getOwnerDocument, getActiveElement as $3b9Q0$getActiveElement, getEventTarget as $3b9Q0$getEventTarget, nodeContains as $3b9Q0$nodeContains} from \"@react-aria/utils\";\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 */ // 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\n\n\nfunction $9ab94262bd0047c7$export$420e68273165f4ec(props) {\n    let { isDisabled: isDisabled, onBlurWithin: onBlurWithin, onFocusWithin: onFocusWithin, onFocusWithinChange: onFocusWithinChange } = props;\n    let state = (0, $3b9Q0$useRef)({\n        isFocusWithin: false\n    });\n    let { addGlobalListener: addGlobalListener, removeAllGlobalListeners: removeAllGlobalListeners } = (0, $3b9Q0$useGlobalListeners)();\n    let onBlur = (0, $3b9Q0$useCallback)((e)=>{\n        // Ignore events bubbling through portals.\n        if (!e.currentTarget.contains(e.target)) return;\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            removeAllGlobalListeners();\n            if (onBlurWithin) onBlurWithin(e);\n            if (onFocusWithinChange) onFocusWithinChange(false);\n        }\n    }, [\n        onBlurWithin,\n        onFocusWithinChange,\n        state,\n        removeAllGlobalListeners\n    ]);\n    let onSyntheticFocus = (0, $8a9cb279dc87e130$export$715c682d09d639cc)(onBlur);\n    let onFocus = (0, $3b9Q0$useCallback)((e)=>{\n        // Ignore events bubbling through portals.\n        if (!e.currentTarget.contains(e.target)) return;\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, $3b9Q0$getOwnerDocument)(e.target);\n        const activeElement = (0, $3b9Q0$getActiveElement)(ownerDocument);\n        if (!state.current.isFocusWithin && activeElement === (0, $3b9Q0$getEventTarget)(e.nativeEvent)) {\n            if (onFocusWithin) onFocusWithin(e);\n            if (onFocusWithinChange) onFocusWithinChange(true);\n            state.current.isFocusWithin = true;\n            onSyntheticFocus(e);\n            // Browsers don't fire blur events when elements are removed from the DOM.\n            // However, if a focus event occurs outside the element we're tracking, we\n            // can manually fire onBlur.\n            let currentTarget = e.currentTarget;\n            addGlobalListener(ownerDocument, 'focus', (e)=>{\n                if (state.current.isFocusWithin && !(0, $3b9Q0$nodeContains)(currentTarget, e.target)) {\n                    let nativeEvent = new ownerDocument.defaultView.FocusEvent('blur', {\n                        relatedTarget: e.target\n                    });\n                    (0, $8a9cb279dc87e130$export$c2b7abe5d61ec696)(nativeEvent, currentTarget);\n                    let event = (0, $8a9cb279dc87e130$export$525bc4921d56d4a)(nativeEvent);\n                    onBlur(event);\n                }\n            }, {\n                capture: true\n            });\n        }\n    }, [\n        onFocusWithin,\n        onFocusWithinChange,\n        onSyntheticFocus,\n        addGlobalListener,\n        onBlur\n    ]);\n    if (isDisabled) return {\n        focusWithinProps: {\n            // These cannot be null, that would conflict in mergeProps\n            onFocus: undefined,\n            onBlur: undefined\n        }\n    };\n    return {\n        focusWithinProps: {\n            onFocus: onFocus,\n            onBlur: onBlur\n        }\n    };\n}\n\n\nexport {$9ab94262bd0047c7$export$420e68273165f4ec as useFocusWithin};\n//# sourceMappingURL=useFocusWithin.module.js.map\n","import {useGlobalListeners as $AWxnT$useGlobalListeners, getOwnerDocument as $AWxnT$getOwnerDocument, nodeContains as $AWxnT$nodeContains} from \"@react-aria/utils\";\nimport {useState as $AWxnT$useState, useRef as $AWxnT$useRef, useEffect as $AWxnT$useEffect, useMemo as $AWxnT$useMemo} from \"react\";\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 */ // 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\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 $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;\nlet $6179b936705e76d3$var$hoverCount = 0;\nfunction $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents() {\n    $6179b936705e76d3$var$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        $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;\n    }, 50);\n}\nfunction $6179b936705e76d3$var$handleGlobalPointerEvent(e) {\n    if (e.pointerType === 'touch') $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents();\n}\nfunction $6179b936705e76d3$var$setupGlobalTouchEvents() {\n    if (typeof document === 'undefined') return;\n    if ($6179b936705e76d3$var$hoverCount === 0) {\n        if (typeof PointerEvent !== 'undefined') document.addEventListener('pointerup', $6179b936705e76d3$var$handleGlobalPointerEvent);\n        else if (process.env.NODE_ENV === 'test') document.addEventListener('touchend', $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);\n    }\n    $6179b936705e76d3$var$hoverCount++;\n    return ()=>{\n        $6179b936705e76d3$var$hoverCount--;\n        if ($6179b936705e76d3$var$hoverCount > 0) return;\n        if (typeof PointerEvent !== 'undefined') document.removeEventListener('pointerup', $6179b936705e76d3$var$handleGlobalPointerEvent);\n        else if (process.env.NODE_ENV === 'test') document.removeEventListener('touchend', $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);\n    };\n}\nfunction $6179b936705e76d3$export$ae780daf29e6d456(props) {\n    let { onHoverStart: onHoverStart, onHoverChange: onHoverChange, onHoverEnd: onHoverEnd, isDisabled: isDisabled } = props;\n    let [isHovered, setHovered] = (0, $AWxnT$useState)(false);\n    let state = (0, $AWxnT$useRef)({\n        isHovered: false,\n        ignoreEmulatedMouseEvents: false,\n        pointerType: '',\n        target: null\n    }).current;\n    (0, $AWxnT$useEffect)($6179b936705e76d3$var$setupGlobalTouchEvents, []);\n    let { addGlobalListener: addGlobalListener, removeAllGlobalListeners: removeAllGlobalListeners } = (0, $AWxnT$useGlobalListeners)();\n    let { hoverProps: hoverProps, triggerHoverEnd: triggerHoverEnd } = (0, $AWxnT$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            // When an element that is hovered over is removed, no pointerleave event is fired by the browser,\n            // even though the originally hovered target may have shrunk in size so it is no longer hovered.\n            // However, a pointerover event will be fired on the new target the mouse is over.\n            // In Chrome this happens immediately. In Safari and Firefox, it happens upon moving the mouse one pixel.\n            addGlobalListener((0, $AWxnT$getOwnerDocument)(event.target), 'pointerover', (e)=>{\n                if (state.isHovered && state.target && !(0, $AWxnT$nodeContains)(state.target, e.target)) triggerHoverEnd(e, e.pointerType);\n            }, {\n                capture: true\n            });\n            if (onHoverStart) onHoverStart({\n                type: 'hoverstart',\n                target: target,\n                pointerType: pointerType\n            });\n            if (onHoverChange) onHoverChange(true);\n            setHovered(true);\n        };\n        let triggerHoverEnd = (event, pointerType)=>{\n            let target = state.target;\n            state.pointerType = '';\n            state.target = null;\n            if (pointerType === 'touch' || !state.isHovered || !target) return;\n            state.isHovered = false;\n            removeAllGlobalListeners();\n            if (onHoverEnd) onHoverEnd({\n                type: 'hoverend',\n                target: target,\n                pointerType: 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 ($6179b936705e76d3$var$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 if (process.env.NODE_ENV === 'test') {\n            hoverProps.onTouchStart = ()=>{\n                state.ignoreEmulatedMouseEvents = true;\n            };\n            hoverProps.onMouseEnter = (e)=>{\n                if (!state.ignoreEmulatedMouseEvents && !$6179b936705e76d3$var$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: hoverProps,\n            triggerHoverEnd: triggerHoverEnd\n        };\n    }, [\n        onHoverStart,\n        onHoverChange,\n        onHoverEnd,\n        isDisabled,\n        state,\n        addGlobalListener,\n        removeAllGlobalListeners\n    ]);\n    (0, $AWxnT$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: hoverProps,\n        isHovered: isHovered\n    };\n}\n\n\nexport {$6179b936705e76d3$export$ae780daf29e6d456 as useHover};\n//# sourceMappingURL=useHover.module.js.map\n","import {isFocusVisible as $isWE5$isFocusVisible, useFocusVisibleListener as $isWE5$useFocusVisibleListener, useFocus as $isWE5$useFocus, useFocusWithin as $isWE5$useFocusWithin} from \"@react-aria/interactions\";\nimport {useRef as $isWE5$useRef, useState as $isWE5$useState, useCallback as $isWE5$useCallback} from \"react\";\n\n\n\nfunction $f7dceffc5ad7768b$export$4e328f61c538687f(props = {}) {\n    let { autoFocus: autoFocus = false, isTextInput: isTextInput, within: within } = props;\n    let state = (0, $isWE5$useRef)({\n        isFocused: false,\n        isFocusVisible: autoFocus || (0, $isWE5$isFocusVisible)()\n    });\n    let [isFocused, setFocused] = (0, $isWE5$useState)(false);\n    let [isFocusVisibleState, setFocusVisible] = (0, $isWE5$useState)(()=>state.current.isFocused && state.current.isFocusVisible);\n    let updateState = (0, $isWE5$useCallback)(()=>setFocusVisible(state.current.isFocused && state.current.isFocusVisible), []);\n    let onFocusChange = (0, $isWE5$useCallback)((isFocused)=>{\n        state.current.isFocused = isFocused;\n        setFocused(isFocused);\n        updateState();\n    }, [\n        updateState\n    ]);\n    (0, $isWE5$useFocusVisibleListener)((isFocusVisible)=>{\n        state.current.isFocusVisible = isFocusVisible;\n        updateState();\n    }, [], {\n        isTextInput: isTextInput\n    });\n    let { focusProps: focusProps } = (0, $isWE5$useFocus)({\n        isDisabled: within,\n        onFocusChange: onFocusChange\n    });\n    let { focusWithinProps: focusWithinProps } = (0, $isWE5$useFocusWithin)({\n        isDisabled: !within,\n        onFocusWithinChange: onFocusChange\n    });\n    return {\n        isFocused: isFocused,\n        isFocusVisible: isFocusVisibleState,\n        focusProps: within ? focusWithinProps : focusProps\n    };\n}\n\n\nexport {$f7dceffc5ad7768b$export$4e328f61c538687f as useFocusRing};\n//# sourceMappingURL=useFocusRing.module.js.map\n","var i=Object.defineProperty;var d=(t,e,n)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var r=(t,e,n)=>(d(t,typeof e!=\"symbol\"?e+\"\":e,n),n);class o{constructor(){r(this,\"current\",this.detect());r(this,\"handoffState\",\"pending\");r(this,\"currentId\",0)}set(e){this.current!==e&&(this.handoffState=\"pending\",this.currentId=0,this.current=e)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current===\"server\"}get isClient(){return this.current===\"client\"}detect(){return typeof window==\"undefined\"||typeof document==\"undefined\"?\"server\":\"client\"}handoff(){this.handoffState===\"pending\"&&(this.handoffState=\"complete\")}get isHandoffComplete(){return this.handoffState===\"complete\"}}let s=new o;export{s as env};\n","import{env as t}from'./env.js';function l(n){var u;return t.isServer?null:n==null?document:(u=n==null?void 0:n.ownerDocument)!=null?u:document}function r(n){var u,o;return t.isServer?null:n==null?document:(o=(u=n==null?void 0:n.getRootNode)==null?void 0:u.call(n))!=null?o:document}function e(n){var u,o;return(o=(u=r(n))==null?void 0:u.activeElement)!=null?o:null}function d(n){return e(n)===n}export{e as getActiveElement,l as getOwnerDocument,r as getRootNode,d as isActiveElement};\n","function t(e){typeof queueMicrotask==\"function\"?queueMicrotask(e):Promise.resolve().then(e).catch(o=>setTimeout(()=>{throw o}))}export{t as microTask};\n","import{microTask as a}from'./micro-task.js';function o(){let s=[],r={addEventListener(e,t,n,i){return e.addEventListener(t,n,i),r.add(()=>e.removeEventListener(t,n,i))},requestAnimationFrame(...e){let t=requestAnimationFrame(...e);return r.add(()=>cancelAnimationFrame(t))},nextFrame(...e){return r.requestAnimationFrame(()=>r.requestAnimationFrame(...e))},setTimeout(...e){let t=setTimeout(...e);return r.add(()=>clearTimeout(t))},microTask(...e){let t={current:!0};return a(()=>{t.current&&e[0]()}),r.add(()=>{t.current=!1})},style(e,t,n){let i=e.style.getPropertyValue(t);return Object.assign(e.style,{[t]:n}),this.add(()=>{Object.assign(e.style,{[t]:i})})},group(e){let t=o();return e(t),this.add(()=>t.dispose())},add(e){return s.includes(e)||s.push(e),()=>{let t=s.indexOf(e);if(t>=0)for(let n of s.splice(t,1))n()}},dispose(){for(let e of s.splice(0))e()}};return r}export{o as disposables};\n","import{useEffect as s,useState as o}from\"react\";import{disposables as t}from'../utils/disposables.js';function p(){let[e]=o(t);return s(()=>()=>e.dispose(),[e]),e}export{p as useDisposables};\n","import{useEffect as f,useLayoutEffect as c}from\"react\";import{env as i}from'../utils/env.js';let n=(e,t)=>{i.isServer?f(e,t):c(e,t)};export{n as useIsoMorphicEffect};\n","import{useRef as t}from\"react\";import{useIsoMorphicEffect as o}from'./use-iso-morphic-effect.js';function s(e){let r=t(e);return o(()=>{r.current=e},[e]),r}export{s as useLatestValue};\n","import a from\"react\";import{useLatestValue as n}from'./use-latest-value.js';let o=function(t){let e=n(t);return a.useCallback((...r)=>e.current(...r),[e])};export{o as useEvent};\n","import{useRef as a,useState as m}from\"react\";import{getOwnerDocument as d}from'../utils/owner.js';import{useDisposables as g}from'./use-disposables.js';import{useEvent as u}from'./use-event.js';function E(e){let t=e.width/2,n=e.height/2;return{top:e.clientY-n,right:e.clientX+t,bottom:e.clientY+n,left:e.clientX-t}}function P(e,t){return!(!e||!t||e.right<t.left||e.left>t.right||e.bottom<t.top||e.top>t.bottom)}function w({disabled:e=!1}={}){let t=a(null),[n,l]=m(!1),r=g(),o=u(()=>{t.current=null,l(!1),r.dispose()}),f=u(s=>{if(r.dispose(),t.current===null){t.current=s.currentTarget,l(!0);{let i=d(s.currentTarget);r.addEventListener(i,\"pointerup\",o,!1),r.addEventListener(i,\"pointermove\",c=>{if(t.current){let p=E(c);l(P(p,t.current.getBoundingClientRect()))}},!1),r.addEventListener(i,\"pointercancel\",o,!1)}}});return{pressed:n,pressProps:e?{}:{onPointerDown:f,onPointerUp:o,onClick:o}}}export{w as useActivePress};\n","import{useMemo as t}from\"react\";function n(e){return t(()=>e,Object.values(e))}export{n as useSlot};\n","function t(...r){return Array.from(new Set(r.flatMap(n=>typeof n==\"string\"?n.split(\" \"):[]))).filter(Boolean).join(\" \")}export{t as classNames};\n","function u(r,n,...a){if(r in n){let e=n[r];return typeof e==\"function\"?e(...a):e}let t=new Error(`Tried to handle \"${r}\" but there is no handler defined. Only defined handlers are: ${Object.keys(n).map(e=>`\"${e}\"`).join(\", \")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,u),t}export{u as match};\n","import E,{Fragment as j,cloneElement as v,createElement as S,forwardRef as w,isValidElement as k,useCallback as x,useRef as M}from\"react\";import{classNames as N}from'./class-names.js';import{match as O}from'./match.js';var A=(a=>(a[a.None=0]=\"None\",a[a.RenderStrategy=1]=\"RenderStrategy\",a[a.Static=2]=\"Static\",a))(A||{}),C=(e=>(e[e.Unmount=0]=\"Unmount\",e[e.Hidden=1]=\"Hidden\",e))(C||{});function K(){let n=$();return x(r=>U({mergeRefs:n,...r}),[n])}function U({ourProps:n,theirProps:r,slot:e,defaultTag:a,features:s,visible:t=!0,name:l,mergeRefs:i}){i=i!=null?i:I;let o=P(r,n);if(t)return F(o,e,a,l,i);let y=s!=null?s:0;if(y&2){let{static:f=!1,...u}=o;if(f)return F(u,e,a,l,i)}if(y&1){let{unmount:f=!0,...u}=o;return O(f?0:1,{[0](){return null},[1](){return F({...u,hidden:!0,style:{display:\"none\"}},e,a,l,i)}})}return F(o,e,a,l,i)}function F(n,r={},e,a,s){let{as:t=e,children:l,refName:i=\"ref\",...o}=h(n,[\"unmount\",\"static\"]),y=n.ref!==void 0?{[i]:n.ref}:{},f=typeof l==\"function\"?l(r):l;\"className\"in o&&o.className&&typeof o.className==\"function\"&&(o.className=o.className(r)),o[\"aria-labelledby\"]&&o[\"aria-labelledby\"]===o.id&&(o[\"aria-labelledby\"]=void 0);let u={};if(r){let d=!1,p=[];for(let[c,T]of Object.entries(r))typeof T==\"boolean\"&&(d=!0),T===!0&&p.push(c.replace(/([A-Z])/g,g=>`-${g.toLowerCase()}`));if(d){u[\"data-headlessui-state\"]=p.join(\" \");for(let c of p)u[`data-${c}`]=\"\"}}if(b(t)&&(Object.keys(m(o)).length>0||Object.keys(m(u)).length>0))if(!k(f)||Array.isArray(f)&&f.length>1||D(f)){if(Object.keys(m(o)).length>0)throw new Error(['Passing props on \"Fragment\"!',\"\",`The current component <${a} /> is rendering a \"Fragment\".`,\"However we need to passthrough the following props:\",Object.keys(m(o)).concat(Object.keys(m(u))).map(d=>`  - ${d}`).join(`\n`),\"\",\"You can apply a few solutions:\",['Add an `as=\"...\"` prop, to ensure that we render an actual element instead of a \"Fragment\".',\"Render a single element as the child so that we can forward the props onto that element.\"].map(d=>`  - ${d}`).join(`\n`)].join(`\n`))}else{let d=f.props,p=d==null?void 0:d.className,c=typeof p==\"function\"?(...R)=>N(p(...R),o.className):N(p,o.className),T=c?{className:c}:{},g=P(f.props,m(h(o,[\"ref\"])));for(let R in u)R in g&&delete u[R];return v(f,Object.assign({},g,u,y,{ref:s(H(f),y.ref)},T))}return S(t,Object.assign({},h(o,[\"ref\"]),!b(t)&&y,!b(t)&&u),f)}function $(){let n=M([]),r=x(e=>{for(let a of n.current)a!=null&&(typeof a==\"function\"?a(e):a.current=e)},[]);return(...e)=>{if(!e.every(a=>a==null))return n.current=e,r}}function I(...n){return n.every(r=>r==null)?void 0:r=>{for(let e of n)e!=null&&(typeof e==\"function\"?e(r):e.current=r)}}function P(...n){var a;if(n.length===0)return{};if(n.length===1)return n[0];let r={},e={};for(let s of n)for(let t in s)t.startsWith(\"on\")&&typeof s[t]==\"function\"?((a=e[t])!=null||(e[t]=[]),e[t].push(s[t])):r[t]=s[t];if(r.disabled||r[\"aria-disabled\"])for(let s in e)/^(on(?:Click|Pointer|Mouse|Key)(?:Down|Up|Press)?)$/.test(s)&&(e[s]=[t=>{var l;return(l=t==null?void 0:t.preventDefault)==null?void 0:l.call(t)}]);for(let s in e)Object.assign(r,{[s](t,...l){let i=e[s];for(let o of i){if((t instanceof Event||(t==null?void 0:t.nativeEvent)instanceof Event)&&t.defaultPrevented)return;o(t,...l)}}});return r}function V(...n){var a;if(n.length===0)return{};if(n.length===1)return n[0];let r={},e={};for(let s of n)for(let t in s)t.startsWith(\"on\")&&typeof s[t]==\"function\"?((a=e[t])!=null||(e[t]=[]),e[t].push(s[t])):r[t]=s[t];for(let s in e)Object.assign(r,{[s](...t){let l=e[s];for(let i of l)i==null||i(...t)}});return r}function Y(n){var r;return Object.assign(w(n),{displayName:(r=n.displayName)!=null?r:n.name})}function m(n){let r=Object.assign({},n);for(let e in r)r[e]===void 0&&delete r[e];return r}function h(n,r=[]){let e=Object.assign({},n);for(let a of r)a in e&&delete e[a];return e}function H(n){return E.version.split(\".\")[0]>=\"19\"?n.props.ref:n.ref}function b(n){return n===j||n===Symbol.for(\"react.fragment\")}function D(n){return b(n.type)}export{A as RenderFeatures,C as RenderStrategy,m as compact,Y as forwardRefWithAs,b as isFragment,D as isFragmentInstance,V as mergeProps,K as useRender};\n","import{forwardRefWithAs as i,useRender as p}from'../utils/render.js';let a=\"span\";var s=(e=>(e[e.None=1]=\"None\",e[e.Focusable=2]=\"Focusable\",e[e.Hidden=4]=\"Hidden\",e))(s||{});function l(t,r){var n;let{features:d=1,...e}=t,o={ref:r,\"aria-hidden\":(d&2)===2?!0:(n=e[\"aria-hidden\"])!=null?n:void 0,hidden:(d&4)===4?!0:void 0,style:{position:\"fixed\",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",borderWidth:\"0\",...(d&4)===4&&(d&2)!==2&&{display:\"none\"}}};return p()({ourProps:o,theirProps:e,slot:{},defaultTag:a,name:\"Hidden\"})}let f=i(l);export{f as Hidden,s as HiddenFeatures};\n","function o(e){return typeof e!=\"object\"||e===null?!1:\"nodeType\"in e}function t(e){return o(e)&&\"tagName\"in e}function n(e){return t(e)&&\"accessKey\"in e}function i(e){return t(e)&&\"tabIndex\"in e}function r(e){return t(e)&&\"style\"in e}function u(e){return n(e)&&e.nodeName===\"IFRAME\"}function l(e){return n(e)&&e.nodeName===\"INPUT\"}function s(e){return n(e)&&e.nodeName===\"TEXTAREA\"}function m(e){return n(e)&&e.nodeName===\"LABEL\"}function a(e){return n(e)&&e.nodeName===\"FIELDSET\"}function E(e){return n(e)&&e.nodeName===\"LEGEND\"}function L(e){return t(e)?e.matches('a[href],audio[controls],button,details,embed,iframe,img[usemap],input:not([type=\"hidden\"]),label,select,textarea,video[controls]'):!1}export{r as hasInlineStyle,t as isElement,n as isHTMLElement,a as isHTMLFieldSetElement,u as isHTMLIframeElement,l as isHTMLInputElement,m as isHTMLLabelElement,E as isHTMLLegendElement,s as isHTMLTextAreaElement,i as isHTMLorSVGElement,L as isInteractiveElement,o as isNode};\n","import*as n from'./dom.js';function s(l){let e=l.parentElement,t=null;for(;e&&!n.isHTMLFieldSetElement(e);)n.isHTMLLegendElement(e)&&(t=e),e=e.parentElement;let i=(e==null?void 0:e.getAttribute(\"disabled\"))===\"\";return i&&r(t)?!1:i}function r(l){if(!l)return!1;let e=l.previousElementSibling;for(;e!==null;){if(n.isHTMLLegendElement(e))return!1;e=e.previousElementSibling}return!0}export{s as isDisabledReactIssue7711};\n","import{useEffect as l,useRef as i}from\"react\";import{useEvent as r}from'./use-event.js';let u=Symbol();function T(t,n=!0){return Object.assign(t,{[u]:n})}function y(...t){let n=i(t);l(()=>{n.current=t},[t]);let c=r(e=>{for(let o of n.current)o!=null&&(typeof o==\"function\"?o(e):o.current=e)});return t.every(e=>e==null||(e==null?void 0:e[u]))?void 0:c}export{T as optionalRef,y as useSyncRefs};\n","var o=(r=>(r.Space=\" \",r.Enter=\"Enter\",r.Escape=\"Escape\",r.Backspace=\"Backspace\",r.Delete=\"Delete\",r.ArrowLeft=\"ArrowLeft\",r.ArrowUp=\"ArrowUp\",r.ArrowRight=\"ArrowRight\",r.ArrowDown=\"ArrowDown\",r.Home=\"Home\",r.End=\"End\",r.PageUp=\"PageUp\",r.PageDown=\"PageDown\",r.Tab=\"Tab\",r))(o||{});export{o as Keys};\n","\"use client\";import r,{createContext as n,useContext as i}from\"react\";let e=n(()=>{});function u(){return i(e)}function C({value:t,children:o}){return r.createElement(e.Provider,{value:t},o)}export{C as CloseProvider,u as useClose};\n","import{useState as l}from\"react\";import{disposables as m}from'../utils/disposables.js';import{useIsoMorphicEffect as p}from'./use-iso-morphic-effect.js';function h(i){if(i===null)return{width:0,height:0};let{width:t,height:e}=i.getBoundingClientRect();return{width:t,height:e}}function w(i,t,e=!1){let[r,f]=l(()=>h(t));return p(()=>{if(!t||!i)return;let n=m();return n.requestAnimationFrame(function s(){n.requestAnimationFrame(s),f(u=>{let o=h(t);return o.width===u.width&&o.height===u.height?u:o})}),()=>{n.dispose()}},[t,i]),e?{width:`${r.width}px`,height:`${r.height}px`}:r}export{w as useElementSize};\n","class a extends Map{constructor(t){super();this.factory=t}get(t){let e=super.get(t);return e===void 0&&(e=this.factory(t),this.set(t,e)),e}}export{a as DefaultMap};\n","var h=Object.defineProperty;var v=(t,e,r)=>e in t?h(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var S=(t,e,r)=>(v(t,typeof e!=\"symbol\"?e+\"\":e,r),r),b=(t,e,r)=>{if(!e.has(t))throw TypeError(\"Cannot \"+r)};var i=(t,e,r)=>(b(t,e,\"read from private field\"),r?r.call(t):e.get(t)),c=(t,e,r)=>{if(e.has(t))throw TypeError(\"Cannot add the same private member more than once\");e instanceof WeakSet?e.add(t):e.set(t,r)},u=(t,e,r,s)=>(b(t,e,\"write to private field\"),s?s.call(t,r):e.set(t,r),r);var n,a,o;import{DefaultMap as m}from'./utils/default-map.js';import{disposables as y}from'./utils/disposables.js';import{env as d}from'./utils/env.js';class T{constructor(e){c(this,n,{});c(this,a,new m(()=>new Set));c(this,o,new Set);S(this,\"disposables\",y());u(this,n,e),d.isServer&&this.disposables.microTask(()=>{this.dispose()})}dispose(){this.disposables.dispose()}get state(){return i(this,n)}subscribe(e,r){if(d.isServer)return()=>{};let s={selector:e,callback:r,current:e(i(this,n))};return i(this,o).add(s),this.disposables.add(()=>{i(this,o).delete(s)})}on(e,r){return d.isServer?()=>{}:(i(this,a).get(e).add(r),this.disposables.add(()=>{i(this,a).get(e).delete(r)}))}send(e){let r=this.reduce(i(this,n),e);if(r!==i(this,n)){u(this,n,r);for(let s of i(this,o)){let l=s.selector(i(this,n));j(s.current,l)||(s.current=l,s.callback(l))}for(let s of i(this,a).get(e.type))s(i(this,n),e)}}}n=new WeakMap,a=new WeakMap,o=new WeakMap;function j(t,e){return Object.is(t,e)?!0:typeof t!=\"object\"||t===null||typeof e!=\"object\"||e===null?!1:Array.isArray(t)&&Array.isArray(e)?t.length!==e.length?!1:f(t[Symbol.iterator](),e[Symbol.iterator]()):t instanceof Map&&e instanceof Map||t instanceof Set&&e instanceof Set?t.size!==e.size?!1:f(t.entries(),e.entries()):p(t)&&p(e)?f(Object.entries(t)[Symbol.iterator](),Object.entries(e)[Symbol.iterator]()):!1}function f(t,e){do{let r=t.next(),s=e.next();if(r.done&&s.done)return!0;if(r.done||s.done||!Object.is(r.value,s.value))return!1}while(!0)}function p(t){if(Object.prototype.toString.call(t)!==\"[object Object]\")return!1;let e=Object.getPrototypeOf(t);return e===null||Object.getPrototypeOf(e)===null}function k(t){let[e,r]=t(),s=y();return(...l)=>{e(...l),s.dispose(),s.microTask(r)}}export{T as Machine,k as batch,j as shallowEqual};\n","var a=Object.defineProperty;var r=(e,c,t)=>c in e?a(e,c,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[c]=t;var p=(e,c,t)=>(r(e,typeof c!=\"symbol\"?c+\"\":c,t),t);import{Machine as d}from'../machine.js';import{DefaultMap as l}from'../utils/default-map.js';import{match as u}from'../utils/match.js';var k=(t=>(t[t.Push=0]=\"Push\",t[t.Pop=1]=\"Pop\",t))(k||{});let y={[0](e,c){let t=c.id,s=e.stack,i=e.stack.indexOf(t);if(i!==-1){let n=e.stack.slice();return n.splice(i,1),n.push(t),s=n,{...e,stack:s}}return{...e,stack:[...e.stack,t]}},[1](e,c){let t=c.id,s=e.stack.indexOf(t);if(s===-1)return e;let i=e.stack.slice();return i.splice(s,1),{...e,stack:i}}};class o extends d{constructor(){super(...arguments);p(this,\"actions\",{push:t=>this.send({type:0,id:t}),pop:t=>this.send({type:1,id:t})});p(this,\"selectors\",{isTop:(t,s)=>t.stack[t.stack.length-1]===s,inStack:(t,s)=>t.stack.includes(s)})}static new(){return new o({stack:[]})}reduce(t,s){return u(s.type,y,t,s)}}const x=new l(()=>o.new());export{k as ActionTypes,x as stackMachines};\n","/**\n * @license React\n * use-sync-external-store-with-selector.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n  return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n  useSyncExternalStore = React.useSyncExternalStore,\n  useRef = React.useRef,\n  useEffect = React.useEffect,\n  useMemo = React.useMemo,\n  useDebugValue = React.useDebugValue;\nexports.useSyncExternalStoreWithSelector = function (\n  subscribe,\n  getSnapshot,\n  getServerSnapshot,\n  selector,\n  isEqual\n) {\n  var instRef = useRef(null);\n  if (null === instRef.current) {\n    var inst = { hasValue: !1, value: null };\n    instRef.current = inst;\n  } else inst = instRef.current;\n  instRef = useMemo(\n    function () {\n      function memoizedSelector(nextSnapshot) {\n        if (!hasMemo) {\n          hasMemo = !0;\n          memoizedSnapshot = nextSnapshot;\n          nextSnapshot = selector(nextSnapshot);\n          if (void 0 !== isEqual && inst.hasValue) {\n            var currentSelection = inst.value;\n            if (isEqual(currentSelection, nextSnapshot))\n              return (memoizedSelection = currentSelection);\n          }\n          return (memoizedSelection = nextSnapshot);\n        }\n        currentSelection = memoizedSelection;\n        if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;\n        var nextSelection = selector(nextSnapshot);\n        if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))\n          return (memoizedSnapshot = nextSnapshot), currentSelection;\n        memoizedSnapshot = nextSnapshot;\n        return (memoizedSelection = nextSelection);\n      }\n      var hasMemo = !1,\n        memoizedSnapshot,\n        memoizedSelection,\n        maybeGetServerSnapshot =\n          void 0 === getServerSnapshot ? null : getServerSnapshot;\n      return [\n        function () {\n          return memoizedSelector(getSnapshot());\n        },\n        null === maybeGetServerSnapshot\n          ? void 0\n          : function () {\n              return memoizedSelector(maybeGetServerSnapshot());\n            }\n      ];\n    },\n    [getSnapshot, getServerSnapshot, selector, isEqual]\n  );\n  var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);\n  useEffect(\n    function () {\n      inst.hasValue = !0;\n      inst.value = value;\n    },\n    [value]\n  );\n  useDebugValue(value);\n  return value;\n};\n","/**\n * @license React\n * use-sync-external-store-with-selector.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n  (function () {\n    function is(x, y) {\n      return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n    }\n    \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n      \"function\" ===\n        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n    var React = require(\"react\"),\n      objectIs = \"function\" === typeof Object.is ? Object.is : is,\n      useSyncExternalStore = React.useSyncExternalStore,\n      useRef = React.useRef,\n      useEffect = React.useEffect,\n      useMemo = React.useMemo,\n      useDebugValue = React.useDebugValue;\n    exports.useSyncExternalStoreWithSelector = function (\n      subscribe,\n      getSnapshot,\n      getServerSnapshot,\n      selector,\n      isEqual\n    ) {\n      var instRef = useRef(null);\n      if (null === instRef.current) {\n        var inst = { hasValue: !1, value: null };\n        instRef.current = inst;\n      } else inst = instRef.current;\n      instRef = useMemo(\n        function () {\n          function memoizedSelector(nextSnapshot) {\n            if (!hasMemo) {\n              hasMemo = !0;\n              memoizedSnapshot = nextSnapshot;\n              nextSnapshot = selector(nextSnapshot);\n              if (void 0 !== isEqual && inst.hasValue) {\n                var currentSelection = inst.value;\n                if (isEqual(currentSelection, nextSnapshot))\n                  return (memoizedSelection = currentSelection);\n              }\n              return (memoizedSelection = nextSnapshot);\n            }\n            currentSelection = memoizedSelection;\n            if (objectIs(memoizedSnapshot, nextSnapshot))\n              return currentSelection;\n            var nextSelection = selector(nextSnapshot);\n            if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))\n              return (memoizedSnapshot = nextSnapshot), currentSelection;\n            memoizedSnapshot = nextSnapshot;\n            return (memoizedSelection = nextSelection);\n          }\n          var hasMemo = !1,\n            memoizedSnapshot,\n            memoizedSelection,\n            maybeGetServerSnapshot =\n              void 0 === getServerSnapshot ? null : getServerSnapshot;\n          return [\n            function () {\n              return memoizedSelector(getSnapshot());\n            },\n            null === maybeGetServerSnapshot\n              ? void 0\n              : function () {\n                  return memoizedSelector(maybeGetServerSnapshot());\n                }\n          ];\n        },\n        [getSnapshot, getServerSnapshot, selector, isEqual]\n      );\n      var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);\n      useEffect(\n        function () {\n          inst.hasValue = !0;\n          inst.value = value;\n        },\n        [value]\n      );\n      useDebugValue(value);\n      return value;\n    };\n    \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n      \"function\" ===\n        typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n  })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/use-sync-external-store-with-selector.production.js');\n} else {\n  module.exports = require('./cjs/use-sync-external-store-with-selector.development.js');\n}\n","import{useSyncExternalStoreWithSelector as a}from\"use-sync-external-store/with-selector\";import{useEvent as t}from'./hooks/use-event.js';import{shallowEqual as o}from'./machine.js';function S(e,n,r=o){return a(t(i=>e.subscribe(s,i)),t(()=>e.state),t(()=>e.state),t(n),r)}function s(e){return e}export{S as useSlice};\n","import{useCallback as n,useId as u}from\"react\";import{stackMachines as p}from'../machines/stack-machine.js';import{useSlice as f}from'../react-glue.js';import{useIsoMorphicEffect as a}from'./use-iso-morphic-effect.js';function I(o,s){let t=u(),r=p.get(s),[i,c]=f(r,n(e=>[r.selectors.isTop(e,t),r.selectors.inStack(e,t)],[r,t]));return a(()=>{if(o)return r.actions.push(t),()=>r.actions.pop(t)},[r,o,t]),o?c?i:!0:!1}export{I as useIsTopLayer};\n","import{useEffect as l}from\"react\";import{disposables as u}from'../utils/disposables.js';import*as c from'../utils/dom.js';import{useLatestValue as d}from'./use-latest-value.js';function p(s,n,o){let i=d(t=>{let e=t.getBoundingClientRect();e.x===0&&e.y===0&&e.width===0&&e.height===0&&o()});l(()=>{if(!s)return;let t=n===null?null:c.isHTMLElement(n)?n:n.current;if(!t)return;let e=u();if(typeof ResizeObserver!=\"undefined\"){let r=new ResizeObserver(()=>i.current(t));r.observe(t),e.add(()=>r.disconnect())}if(typeof IntersectionObserver!=\"undefined\"){let r=new IntersectionObserver(()=>i.current(t));r.observe(t),e.add(()=>r.disconnect())}return()=>e.dispose()},[n,i,s])}export{p as useOnDisappear};\n","import{disposables as p}from'./disposables.js';import*as y from'./dom.js';import{match as L}from'./match.js';import{getActiveElement as b,getOwnerDocument as F,getRootNode as f}from'./owner.js';let E=[\"[contentEditable=true]\",\"[tabindex]\",\"a[href]\",\"area[href]\",\"button:not([disabled])\",\"iframe\",\"input:not([disabled])\",\"select:not([disabled])\",\"details>summary\",\"textarea:not([disabled])\"].map(e=>`${e}:not([tabindex='-1'])`).join(\",\"),S=[\"[data-autofocus]\"].map(e=>`${e}:not([tabindex='-1'])`).join(\",\");var T=(o=>(o[o.First=1]=\"First\",o[o.Previous=2]=\"Previous\",o[o.Next=4]=\"Next\",o[o.Last=8]=\"Last\",o[o.WrapAround=16]=\"WrapAround\",o[o.NoScroll=32]=\"NoScroll\",o[o.AutoFocus=64]=\"AutoFocus\",o))(T||{}),A=(n=>(n[n.Error=0]=\"Error\",n[n.Overflow=1]=\"Overflow\",n[n.Success=2]=\"Success\",n[n.Underflow=3]=\"Underflow\",n))(A||{}),O=(t=>(t[t.Previous=-1]=\"Previous\",t[t.Next=1]=\"Next\",t))(O||{});function x(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(E)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}function h(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(S)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}var I=(t=>(t[t.Strict=0]=\"Strict\",t[t.Loose=1]=\"Loose\",t))(I||{});function H(e,r=0){var t;return e===((t=F(e))==null?void 0:t.body)?!1:L(r,{[0](){return e.matches(E)},[1](){let l=e;for(;l!==null;){if(l.matches(E))return!0;l=l.parentElement}return!1}})}function K(e){p().nextFrame(()=>{let r=b(e);r&&y.isHTMLorSVGElement(r)&&!H(r,0)&&w(e)})}var g=(t=>(t[t.Keyboard=0]=\"Keyboard\",t[t.Mouse=1]=\"Mouse\",t))(g||{});typeof window!=\"undefined\"&&typeof document!=\"undefined\"&&(document.addEventListener(\"keydown\",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0),document.addEventListener(\"click\",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0));function w(e){e==null||e.focus({preventScroll:!0})}let _=[\"textarea\",\"input\"].join(\",\");function P(e){var r,t;return(t=(r=e==null?void 0:e.matches)==null?void 0:r.call(e,_))!=null?t:!1}function G(e,r=t=>t){return e.slice().sort((t,l)=>{let n=r(t),a=r(l);if(n===null||a===null)return 0;let u=n.compareDocumentPosition(a);return u&Node.DOCUMENT_POSITION_FOLLOWING?-1:u&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function R(e,r,t=e===null?document.body:f(e)){return v(x(t),r,{relativeTo:e})}function v(e,r,{sorted:t=!0,relativeTo:l=null,skipElements:n=[]}={}){let a=Array.isArray(e)?e.length>0?f(e[0]):document:f(e),u=Array.isArray(e)?t?G(e):e:r&64?h(e):x(e);n.length>0&&u.length>1&&(u=u.filter(i=>!n.some(d=>d!=null&&\"current\"in d?(d==null?void 0:d.current)===i:d===i))),l=l!=null?l:a==null?void 0:a.activeElement;let o=(()=>{if(r&5)return 1;if(r&10)return-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),M=(()=>{if(r&1)return 0;if(r&2)return Math.max(0,u.indexOf(l))-1;if(r&4)return Math.max(0,u.indexOf(l))+1;if(r&8)return u.length-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),N=r&32?{preventScroll:!0}:{},m=0,c=u.length,s;do{if(m>=c||m+c<=0)return 0;let i=M+m;if(r&16)i=(i+c)%c;else{if(i<0)return 3;if(i>=c)return 1}s=u[i],s==null||s.focus(N),m+=o}while(s!==b(s));return r&6&&P(s)&&s.select(),2}export{T as Focus,A as FocusResult,I as FocusableMode,w as focusElement,R as focusFrom,v as focusIn,E as focusableSelector,h as getAutoFocusableElements,x as getFocusableElements,H as isFocusableElement,K as restoreFocusIfNecessary,G as sortByDomNode};\n","function t(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function i(){return/Android/gi.test(window.navigator.userAgent)}function n(){return t()||i()}export{i as isAndroid,t as isIOS,n as isMobile};\n","import{useEffect as c}from\"react\";import{useLatestValue as a}from'./use-latest-value.js';function i(t,e,o,n){let u=a(o);c(()=>{if(!t)return;function r(m){u.current(m)}return document.addEventListener(e,r,n),()=>document.removeEventListener(e,r,n)},[t,e,n])}export{i as useDocumentEvent};\n","import{useEffect as a}from\"react\";import{useLatestValue as f}from'./use-latest-value.js';function s(t,e,o,n){let i=f(o);a(()=>{if(!t)return;function r(d){i.current(d)}return window.addEventListener(e,r,n),()=>window.removeEventListener(e,r,n)},[t,e,n])}export{s as useWindowEvent};\n","import{useCallback as T,useRef as E}from\"react\";import*as d from'../utils/dom.js';import{FocusableMode as g,isFocusableElement as y}from'../utils/focus-management.js';import{isMobile as p}from'../utils/platform.js';import{useDocumentEvent as a}from'./use-document-event.js';import{useLatestValue as L}from'./use-latest-value.js';import{useWindowEvent as x}from'./use-window-event.js';const C=30;function k(o,f,h){let m=L(h),s=T(function(e,c){if(e.defaultPrevented)return;let r=c(e);if(r===null||!r.getRootNode().contains(r)||!r.isConnected)return;let M=function u(n){return typeof n==\"function\"?u(n()):Array.isArray(n)||n instanceof Set?n:[n]}(f);for(let u of M)if(u!==null&&(u.contains(r)||e.composed&&e.composedPath().includes(u)))return;return!y(r,g.Loose)&&r.tabIndex!==-1&&e.preventDefault(),m.current(e,r)},[m,f]),i=E(null);a(o,\"pointerdown\",t=>{var e,c;p()||(i.current=((c=(e=t.composedPath)==null?void 0:e.call(t))==null?void 0:c[0])||t.target)},!0),a(o,\"pointerup\",t=>{if(p()||!i.current)return;let e=i.current;return i.current=null,s(t,()=>e)},!0);let l=E({x:0,y:0});a(o,\"touchstart\",t=>{l.current.x=t.touches[0].clientX,l.current.y=t.touches[0].clientY},!0),a(o,\"touchend\",t=>{let e={x:t.changedTouches[0].clientX,y:t.changedTouches[0].clientY};if(!(Math.abs(e.x-l.current.x)>=C||Math.abs(e.y-l.current.y)>=C))return s(t,()=>d.isHTMLorSVGElement(t.target)?t.target:null)},!0),x(o,\"blur\",t=>s(t,()=>d.isHTMLIframeElement(window.document.activeElement)?window.document.activeElement:null),!0)}export{k as useOutsideClick};\n","import{useMemo as o}from\"react\";import{getOwnerDocument as t,getRootNode as r}from'../utils/owner.js';function u(...e){return o(()=>t(...e),[...e])}function c(...e){return o(()=>r(...e),[...e])}export{u as useOwnerDocument,c as useRootDocument};\n","import{useEffect as d}from\"react\";import{useLatestValue as s}from'./use-latest-value.js';function E(n,e,a,t){let i=s(a);d(()=>{n=n!=null?n:window;function r(o){i.current(o)}return n.addEventListener(e,r,t),()=>n.removeEventListener(e,r,t)},[n,e,t])}export{E as useEventListener};\n","import{useMemo as a}from\"react\";function e(t,u){return a(()=>{var n;if(t.type)return t.type;let r=(n=t.as)!=null?n:\"button\";if(typeof r==\"string\"&&r.toLowerCase()===\"button\"||(u==null?void 0:u.tagName)===\"BUTTON\"&&!u.hasAttribute(\"type\"))return\"button\"},[t.type,t.as,u])}export{e as useResolveButtonType};\n","import{useSyncExternalStore as e}from\"react\";function o(t){return e(t.subscribe,t.getSnapshot,t.getSnapshot)}export{o as useStore};\n","function a(o,r){let t=o(),n=new Set;return{getSnapshot(){return t},subscribe(e){return n.add(e),()=>n.delete(e)},dispatch(e,...s){let i=r[e].call(t,...s);i&&(t=i,n.forEach(c=>c()))}}}export{a as createStore};\n","function d(){let r;return{before({doc:e}){var l;let o=e.documentElement,t=(l=e.defaultView)!=null?l:window;r=Math.max(0,t.innerWidth-o.clientWidth)},after({doc:e,d:o}){let t=e.documentElement,l=Math.max(0,t.clientWidth-t.offsetWidth),n=Math.max(0,r-l);o.style(t,\"paddingRight\",`${n}px`)}}}export{d as adjustScrollbarPadding};\n","import{disposables as u}from'../../utils/disposables.js';import*as i from'../../utils/dom.js';import{isIOS as p}from'../../utils/platform.js';function w(){return p()?{before({doc:o,d:r,meta:m}){function a(s){for(let l of m().containers)for(let c of l())if(c.contains(s))return!0;return!1}r.microTask(()=>{var c;if(window.getComputedStyle(o.documentElement).scrollBehavior!==\"auto\"){let t=u();t.style(o.documentElement,\"scrollBehavior\",\"auto\"),r.add(()=>r.microTask(()=>t.dispose()))}let s=(c=window.scrollY)!=null?c:window.pageYOffset,l=null;r.addEventListener(o,\"click\",t=>{if(i.isHTMLorSVGElement(t.target))try{let e=t.target.closest(\"a\");if(!e)return;let{hash:n}=new URL(e.href),f=o.querySelector(n);i.isHTMLorSVGElement(f)&&!a(f)&&(l=f)}catch{}},!0),r.group(t=>{r.addEventListener(o,\"touchstart\",e=>{if(t.dispose(),i.isHTMLorSVGElement(e.target)&&i.hasInlineStyle(e.target))if(a(e.target)){let n=e.target;for(;n.parentElement&&a(n.parentElement);)n=n.parentElement;t.style(n,\"overscrollBehavior\",\"contain\")}else t.style(e.target,\"touchAction\",\"none\")})}),r.addEventListener(o,\"touchmove\",t=>{if(i.isHTMLorSVGElement(t.target)){if(i.isHTMLInputElement(t.target))return;if(a(t.target)){let e=t.target;for(;e.parentElement&&e.dataset.headlessuiPortal!==\"\"&&!(e.scrollHeight>e.clientHeight||e.scrollWidth>e.clientWidth);)e=e.parentElement;e.dataset.headlessuiPortal===\"\"&&t.preventDefault()}else t.preventDefault()}},{passive:!1}),r.add(()=>{var e;let t=(e=window.scrollY)!=null?e:window.pageYOffset;s!==t&&window.scrollTo(0,s),l&&l.isConnected&&(l.scrollIntoView({block:\"nearest\"}),l=null)})})}}:{}}export{w as handleIOSLocking};\n","function r(){return{before({doc:e,d:o}){o.style(e.documentElement,\"overflow\",\"hidden\")}}}export{r as preventScroll};\n","import{disposables as s}from'../../utils/disposables.js';import{createStore as d}from'../../utils/store.js';import{adjustScrollbarPadding as i}from'./adjust-scrollbar-padding.js';import{handleIOSLocking as l}from'./handle-ios-locking.js';import{preventScroll as p}from'./prevent-scroll.js';function r(e){let o={};for(let t of e)Object.assign(o,t(o));return o}let c=d(()=>new Map,{PUSH(e,o){var n;let t=(n=this.get(e))!=null?n:{doc:e,count:0,d:s(),meta:new Set,computedMeta:{}};return t.count++,t.meta.add(o),t.computedMeta=r(t.meta),this.set(e,t),this},POP(e,o){let t=this.get(e);return t&&(t.count--,t.meta.delete(o),t.computedMeta=r(t.meta)),this},SCROLL_PREVENT(e){let o={doc:e.doc,d:e.d,meta(){return e.computedMeta}},t=[l(),i(),p()];t.forEach(({before:n})=>n==null?void 0:n(o)),t.forEach(({after:n})=>n==null?void 0:n(o))},SCROLL_ALLOW({d:e}){e.dispose()},TEARDOWN({doc:e}){this.delete(e)}});c.subscribe(()=>{let e=c.getSnapshot(),o=new Map;for(let[t]of e)o.set(t,t.documentElement.style.overflow);for(let t of e.values()){let n=o.get(t.doc)===\"hidden\",a=t.count!==0;(a&&!n||!a&&n)&&c.dispatch(t.count>0?\"SCROLL_PREVENT\":\"SCROLL_ALLOW\",t),t.count===0&&c.dispatch(\"TEARDOWN\",t)}});export{c as overflows};\n","import{useStore as s}from'../../hooks/use-store.js';import{useIsoMorphicEffect as u}from'../use-iso-morphic-effect.js';import{overflows as t}from'./overflow-store.js';function a(r,e,n=()=>({containers:[]})){let f=s(t),o=e?f.get(e):void 0,i=o?o.count>0:!1;return u(()=>{if(!(!e||!r))return t.dispatch(\"PUSH\",e,n),()=>t.dispatch(\"POP\",e,n)},[r,e]),i}export{a as useDocumentOverflowLockedEffect};\n","import{useDocumentOverflowLockedEffect as l}from'./document-overflow/use-document-overflow.js';import{useIsTopLayer as m}from'./use-is-top-layer.js';function f(e,c,n=()=>[document.body]){let r=m(e,\"scroll-lock\");l(r,c,t=>{var o;return{containers:[...(o=t.containers)!=null?o:[],n]}})}export{f as useScrollLock};\n","import{useCallback as t,useState as b}from\"react\";function c(u=0){let[r,a]=b(u),g=t(e=>a(e),[]),s=t(e=>a(l=>l|e),[]),m=t(e=>(r&e)===e,[r]),n=t(e=>a(l=>l&~e),[]),F=t(e=>a(l=>l^e),[]);return{flags:r,setFlag:g,addFlag:s,hasFlag:m,removeFlag:n,toggleFlag:F}}export{c as useFlags};\n","var T,S;import{useRef as c,useState as b}from\"react\";import{disposables as m}from'../utils/disposables.js';import{useDisposables as g}from'./use-disposables.js';import{useFlags as y}from'./use-flags.js';import{useIsoMorphicEffect as L}from'./use-iso-morphic-effect.js';typeof process!=\"undefined\"&&typeof globalThis!=\"undefined\"&&typeof Element!=\"undefined\"&&((T=process==null?void 0:process.env)==null?void 0:T[\"NODE_ENV\"])===\"test\"&&typeof((S=Element==null?void 0:Element.prototype)==null?void 0:S.getAnimations)==\"undefined\"&&(Element.prototype.getAnimations=function(){return console.warn([\"Headless UI has polyfilled `Element.prototype.getAnimations` for your tests.\",\"Please install a proper polyfill e.g. `jsdom-testing-mocks`, to silence these warnings.\",\"\",\"Example usage:\",\"```js\",\"import { mockAnimationsApi } from 'jsdom-testing-mocks'\",\"mockAnimationsApi()\",\"```\"].join(`\n`)),[]});var A=(i=>(i[i.None=0]=\"None\",i[i.Closed=1]=\"Closed\",i[i.Enter=2]=\"Enter\",i[i.Leave=4]=\"Leave\",i))(A||{});function x(e){let r={};for(let t in e)e[t]===!0&&(r[`data-${t}`]=\"\");return r}function N(e,r,t,n){let[i,a]=b(t),{hasFlag:s,addFlag:o,removeFlag:l}=y(e&&i?3:0),u=c(!1),f=c(!1),E=g();return L(()=>{var d;if(e){if(t&&a(!0),!r){t&&o(3);return}return(d=n==null?void 0:n.start)==null||d.call(n,t),C(r,{inFlight:u,prepare(){f.current?f.current=!1:f.current=u.current,u.current=!0,!f.current&&(t?(o(3),l(4)):(o(4),l(2)))},run(){f.current?t?(l(3),o(4)):(l(4),o(3)):t?l(1):o(1)},done(){var p;f.current&&D(r)||(u.current=!1,l(7),t||a(!1),(p=n==null?void 0:n.end)==null||p.call(n,t))}})}},[e,t,r,E]),e?[i,{closed:s(1),enter:s(2),leave:s(4),transition:s(2)||s(4)}]:[t,{closed:void 0,enter:void 0,leave:void 0,transition:void 0}]}function C(e,{prepare:r,run:t,done:n,inFlight:i}){let a=m();return j(e,{prepare:r,inFlight:i}),a.nextFrame(()=>{t(),a.requestAnimationFrame(()=>{a.add(M(e,n))})}),a.dispose}function M(e,r){var a,s;let t=m();if(!e)return t.dispose;let n=!1;t.add(()=>{n=!0});let i=(s=(a=e.getAnimations)==null?void 0:a.call(e).filter(o=>o instanceof CSSTransition))!=null?s:[];return i.length===0?(r(),t.dispose):(Promise.allSettled(i.map(o=>o.finished)).then(()=>{n||r()}),t.dispose)}function j(e,{inFlight:r,prepare:t}){if(r!=null&&r.current){t();return}let n=e.style.transition;e.style.transition=\"none\",t(),e.offsetHeight,e.style.transition=n}function D(e){var t,n;return((n=(t=e.getAnimations)==null?void 0:t.call(e))!=null?n:[]).some(i=>i instanceof CSSTransition&&i.playState!==\"finished\")}export{x as transitionDataAttributes,N as useTransition};\n","function hasWindow() {\n  return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n  if (isNode(node)) {\n    return (node.nodeName || '').toLowerCase();\n  }\n  // Mocked nodes in testing environments may not be instances of Node. By\n  // returning `#document` an infinite loop won't occur.\n  // https://github.com/floating-ui/floating-ui/issues/2317\n  return '#document';\n}\nfunction getWindow(node) {\n  var _node$ownerDocument;\n  return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n  var _ref;\n  return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n  if (!hasWindow()) {\n    return false;\n  }\n  return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n  if (!hasWindow()) {\n    return false;\n  }\n  return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n  if (!hasWindow()) {\n    return false;\n  }\n  return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n  if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n    return false;\n  }\n  return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nconst invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);\nfunction isOverflowElement(element) {\n  const {\n    overflow,\n    overflowX,\n    overflowY,\n    display\n  } = getComputedStyle(element);\n  return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);\n}\nconst tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);\nfunction isTableElement(element) {\n  return tableElements.has(getNodeName(element));\n}\nconst topLayerSelectors = [':popover-open', ':modal'];\nfunction isTopLayer(element) {\n  return topLayerSelectors.some(selector => {\n    try {\n      return element.matches(selector);\n    } catch (_e) {\n      return false;\n    }\n  });\n}\nconst transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];\nconst willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];\nconst containValues = ['paint', 'layout', 'strict', 'content'];\nfunction isContainingBlock(elementOrCss) {\n  const webkit = isWebKit();\n  const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n  // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n  return transformProperties.some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || willChangeValues.some(value => (css.willChange || '').includes(value)) || containValues.some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n  let currentNode = getParentNode(element);\n  while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n    if (isContainingBlock(currentNode)) {\n      return currentNode;\n    } else if (isTopLayer(currentNode)) {\n      return null;\n    }\n    currentNode = getParentNode(currentNode);\n  }\n  return null;\n}\nfunction isWebKit() {\n  if (typeof CSS === 'undefined' || !CSS.supports) return false;\n  return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nconst lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);\nfunction isLastTraversableNode(node) {\n  return lastTraversableNodeNames.has(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n  return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n  if (isElement(element)) {\n    return {\n      scrollLeft: element.scrollLeft,\n      scrollTop: element.scrollTop\n    };\n  }\n  return {\n    scrollLeft: element.scrollX,\n    scrollTop: element.scrollY\n  };\n}\nfunction getParentNode(node) {\n  if (getNodeName(node) === 'html') {\n    return node;\n  }\n  const result =\n  // Step into the shadow DOM of the parent of a slotted node.\n  node.assignedSlot ||\n  // DOM Element detected.\n  node.parentNode ||\n  // ShadowRoot detected.\n  isShadowRoot(node) && node.host ||\n  // Fallback.\n  getDocumentElement(node);\n  return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n  const parentNode = getParentNode(node);\n  if (isLastTraversableNode(parentNode)) {\n    return node.ownerDocument ? node.ownerDocument.body : node.body;\n  }\n  if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n    return parentNode;\n  }\n  return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n  var _node$ownerDocument2;\n  if (list === void 0) {\n    list = [];\n  }\n  if (traverseIframes === void 0) {\n    traverseIframes = true;\n  }\n  const scrollableAncestor = getNearestOverflowAncestor(node);\n  const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n  const win = getWindow(scrollableAncestor);\n  if (isBody) {\n    const frameElement = getFrameElement(win);\n    return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n  }\n  return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n  return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { isShadowRoot, isHTMLElement } from '@floating-ui/utils/dom';\n\nfunction activeElement(doc) {\n  let activeElement = doc.activeElement;\n  while (((_activeElement = activeElement) == null || (_activeElement = _activeElement.shadowRoot) == null ? void 0 : _activeElement.activeElement) != null) {\n    var _activeElement;\n    activeElement = activeElement.shadowRoot.activeElement;\n  }\n  return activeElement;\n}\nfunction contains(parent, child) {\n  if (!parent || !child) {\n    return false;\n  }\n  const rootNode = child.getRootNode == null ? void 0 : child.getRootNode();\n\n  // First, attempt with faster native method\n  if (parent.contains(child)) {\n    return true;\n  }\n\n  // then fallback to custom implementation with Shadow DOM support\n  if (rootNode && isShadowRoot(rootNode)) {\n    let next = child;\n    while (next) {\n      if (parent === next) {\n        return true;\n      }\n      // @ts-ignore\n      next = next.parentNode || next.host;\n    }\n  }\n\n  // Give up, the result is false\n  return false;\n}\n// Avoid Chrome DevTools blue warning.\nfunction getPlatform() {\n  const uaData = navigator.userAgentData;\n  if (uaData != null && uaData.platform) {\n    return uaData.platform;\n  }\n  return navigator.platform;\n}\nfunction getUserAgent() {\n  const uaData = navigator.userAgentData;\n  if (uaData && Array.isArray(uaData.brands)) {\n    return uaData.brands.map(_ref => {\n      let {\n        brand,\n        version\n      } = _ref;\n      return brand + \"/\" + version;\n    }).join(' ');\n  }\n  return navigator.userAgent;\n}\n\n// License: https://github.com/adobe/react-spectrum/blob/b35d5c02fe900badccd0cf1a8f23bb593419f238/packages/@react-aria/utils/src/isVirtualEvent.ts\nfunction isVirtualClick(event) {\n  // FIXME: Firefox is now emitting a deprecation warning for `mozInputSource`.\n  // Try to find a workaround for this. `react-aria` source still has the check.\n  if (event.mozInputSource === 0 && event.isTrusted) {\n    return true;\n  }\n  if (isAndroid() && event.pointerType) {\n    return event.type === 'click' && event.buttons === 1;\n  }\n  return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n  if (isJSDOM()) return false;\n  return !isAndroid() && event.width === 0 && event.height === 0 || isAndroid() && event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'mouse' ||\n  // iOS VoiceOver returns 0.333• for width/height.\n  event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'touch';\n}\nfunction isSafari() {\n  // Chrome DevTools does not complain about navigator.vendor\n  return /apple/i.test(navigator.vendor);\n}\nfunction isAndroid() {\n  const re = /android/i;\n  return re.test(getPlatform()) || re.test(getUserAgent());\n}\nfunction isMac() {\n  return getPlatform().toLowerCase().startsWith('mac') && !navigator.maxTouchPoints;\n}\nfunction isJSDOM() {\n  return getUserAgent().includes('jsdom/');\n}\nfunction isMouseLikePointerType(pointerType, strict) {\n  // On some Linux machines with Chromium, mouse inputs return a `pointerType`\n  // of \"pen\": https://github.com/floating-ui/floating-ui/issues/2015\n  const values = ['mouse', 'pen'];\n  if (!strict) {\n    values.push('', undefined);\n  }\n  return values.includes(pointerType);\n}\nfunction isReactEvent(event) {\n  return 'nativeEvent' in event;\n}\nfunction isRootElement(element) {\n  return element.matches('html,body');\n}\nfunction getDocument(node) {\n  return (node == null ? void 0 : node.ownerDocument) || document;\n}\nfunction isEventTargetWithin(event, node) {\n  if (node == null) {\n    return false;\n  }\n  if ('composedPath' in event) {\n    return event.composedPath().includes(node);\n  }\n\n  // TS thinks `event` is of type never as it assumes all browsers support composedPath, but browsers without shadow dom don't\n  const e = event;\n  return e.target != null && node.contains(e.target);\n}\nfunction getTarget(event) {\n  if ('composedPath' in event) {\n    return event.composedPath()[0];\n  }\n\n  // TS thinks `event` is of type never as it assumes all browsers support\n  // `composedPath()`, but browsers without shadow DOM don't.\n  return event.target;\n}\nconst TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),\" + \"[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nfunction isTypeableElement(element) {\n  return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\nfunction stopEvent(event) {\n  event.preventDefault();\n  event.stopPropagation();\n}\nfunction isTypeableCombobox(element) {\n  if (!element) return false;\n  return element.getAttribute('role') === 'combobox' && isTypeableElement(element);\n}\n\nexport { TYPEABLE_SELECTOR, activeElement, contains, getDocument, getPlatform, getTarget, getUserAgent, isAndroid, isEventTargetWithin, isJSDOM, isMac, isMouseLikePointerType, isReactEvent, isRootElement, isSafari, isTypeableCombobox, isTypeableElement, isVirtualClick, isVirtualPointerEvent, stopEvent };\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n  x: v,\n  y: v\n});\nconst oppositeSideMap = {\n  left: 'right',\n  right: 'left',\n  bottom: 'top',\n  top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n  start: 'end',\n  end: 'start'\n};\nfunction clamp(start, value, end) {\n  return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n  return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n  return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n  return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n  return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n  return axis === 'y' ? 'height' : 'width';\n}\nconst yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);\nfunction getSideAxis(placement) {\n  return yAxisSides.has(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n  return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n  if (rtl === void 0) {\n    rtl = false;\n  }\n  const alignment = getAlignment(placement);\n  const alignmentAxis = getAlignmentAxis(placement);\n  const length = getAxisLength(alignmentAxis);\n  let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n  if (rects.reference[length] > rects.floating[length]) {\n    mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n  }\n  return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n  const oppositePlacement = getOppositePlacement(placement);\n  return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n  return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n  switch (side) {\n    case 'top':\n    case 'bottom':\n      if (rtl) return isStart ? rlPlacement : lrPlacement;\n      return isStart ? lrPlacement : rlPlacement;\n    case 'left':\n    case 'right':\n      return isStart ? tbPlacement : btPlacement;\n    default:\n      return [];\n  }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n  const alignment = getAlignment(placement);\n  let list = getSideList(getSide(placement), direction === 'start', rtl);\n  if (alignment) {\n    list = list.map(side => side + \"-\" + alignment);\n    if (flipAlignment) {\n      list = list.concat(list.map(getOppositeAlignmentPlacement));\n    }\n  }\n  return list;\n}\nfunction getOppositePlacement(placement) {\n  return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n  return {\n    top: 0,\n    right: 0,\n    bottom: 0,\n    left: 0,\n    ...padding\n  };\n}\nfunction getPaddingObject(padding) {\n  return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n    top: padding,\n    right: padding,\n    bottom: padding,\n    left: padding\n  };\n}\nfunction rectToClientRect(rect) {\n  const {\n    x,\n    y,\n    width,\n    height\n  } = rect;\n  return {\n    width,\n    height,\n    top: y,\n    left: x,\n    right: x + width,\n    bottom: y + height,\n    x,\n    y\n  };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n  let {\n    reference,\n    floating\n  } = _ref;\n  const sideAxis = getSideAxis(placement);\n  const alignmentAxis = getAlignmentAxis(placement);\n  const alignLength = getAxisLength(alignmentAxis);\n  const side = getSide(placement);\n  const isVertical = sideAxis === 'y';\n  const commonX = reference.x + reference.width / 2 - floating.width / 2;\n  const commonY = reference.y + reference.height / 2 - floating.height / 2;\n  const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n  let coords;\n  switch (side) {\n    case 'top':\n      coords = {\n        x: commonX,\n        y: reference.y - floating.height\n      };\n      break;\n    case 'bottom':\n      coords = {\n        x: commonX,\n        y: reference.y + reference.height\n      };\n      break;\n    case 'right':\n      coords = {\n        x: reference.x + reference.width,\n        y: commonY\n      };\n      break;\n    case 'left':\n      coords = {\n        x: reference.x - floating.width,\n        y: commonY\n      };\n      break;\n    default:\n      coords = {\n        x: reference.x,\n        y: reference.y\n      };\n  }\n  switch (getAlignment(placement)) {\n    case 'start':\n      coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n      break;\n    case 'end':\n      coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n      break;\n  }\n  return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n  const {\n    placement = 'bottom',\n    strategy = 'absolute',\n    middleware = [],\n    platform\n  } = config;\n  const validMiddleware = middleware.filter(Boolean);\n  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n  let rects = await platform.getElementRects({\n    reference,\n    floating,\n    strategy\n  });\n  let {\n    x,\n    y\n  } = computeCoordsFromPlacement(rects, placement, rtl);\n  let statefulPlacement = placement;\n  let middlewareData = {};\n  let resetCount = 0;\n  for (let i = 0; i < validMiddleware.length; i++) {\n    const {\n      name,\n      fn\n    } = validMiddleware[i];\n    const {\n      x: nextX,\n      y: nextY,\n      data,\n      reset\n    } = await fn({\n      x,\n      y,\n      initialPlacement: placement,\n      placement: statefulPlacement,\n      strategy,\n      middlewareData,\n      rects,\n      platform,\n      elements: {\n        reference,\n        floating\n      }\n    });\n    x = nextX != null ? nextX : x;\n    y = nextY != null ? nextY : y;\n    middlewareData = {\n      ...middlewareData,\n      [name]: {\n        ...middlewareData[name],\n        ...data\n      }\n    };\n    if (reset && resetCount <= 50) {\n      resetCount++;\n      if (typeof reset === 'object') {\n        if (reset.placement) {\n          statefulPlacement = reset.placement;\n        }\n        if (reset.rects) {\n          rects = reset.rects === true ? await platform.getElementRects({\n            reference,\n            floating,\n            strategy\n          }) : reset.rects;\n        }\n        ({\n          x,\n          y\n        } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n      }\n      i = -1;\n    }\n  }\n  return {\n    x,\n    y,\n    placement: statefulPlacement,\n    strategy,\n    middlewareData\n  };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n  var _await$platform$isEle;\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    x,\n    y,\n    platform,\n    rects,\n    elements,\n    strategy\n  } = state;\n  const {\n    boundary = 'clippingAncestors',\n    rootBoundary = 'viewport',\n    elementContext = 'floating',\n    altBoundary = false,\n    padding = 0\n  } = evaluate(options, state);\n  const paddingObject = getPaddingObject(padding);\n  const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n  const element = elements[altBoundary ? altContext : elementContext];\n  const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n    element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n    boundary,\n    rootBoundary,\n    strategy\n  }));\n  const rect = elementContext === 'floating' ? {\n    x,\n    y,\n    width: rects.floating.width,\n    height: rects.floating.height\n  } : rects.reference;\n  const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n  const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n    x: 1,\n    y: 1\n  } : {\n    x: 1,\n    y: 1\n  };\n  const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n    elements,\n    rect,\n    offsetParent,\n    strategy\n  }) : rect);\n  return {\n    top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n    bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n    left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n    right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n  };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n  name: 'arrow',\n  options,\n  async fn(state) {\n    const {\n      x,\n      y,\n      placement,\n      rects,\n      platform,\n      elements,\n      middlewareData\n    } = state;\n    // Since `element` is required, we don't Partial<> the type.\n    const {\n      element,\n      padding = 0\n    } = evaluate(options, state) || {};\n    if (element == null) {\n      return {};\n    }\n    const paddingObject = getPaddingObject(padding);\n    const coords = {\n      x,\n      y\n    };\n    const axis = getAlignmentAxis(placement);\n    const length = getAxisLength(axis);\n    const arrowDimensions = await platform.getDimensions(element);\n    const isYAxis = axis === 'y';\n    const minProp = isYAxis ? 'top' : 'left';\n    const maxProp = isYAxis ? 'bottom' : 'right';\n    const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n    const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n    const startDiff = coords[axis] - rects.reference[axis];\n    const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n    let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n    // DOM platform can return `window` as the `offsetParent`.\n    if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n      clientSize = elements.floating[clientProp] || rects.floating[length];\n    }\n    const centerToReference = endDiff / 2 - startDiff / 2;\n\n    // If the padding is large enough that it causes the arrow to no longer be\n    // centered, modify the padding so that it is centered.\n    const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n    const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n    const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n    // Make sure the arrow doesn't overflow the floating element if the center\n    // point is outside the floating element's bounds.\n    const min$1 = minPadding;\n    const max = clientSize - arrowDimensions[length] - maxPadding;\n    const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n    const offset = clamp(min$1, center, max);\n\n    // If the reference is small enough that the arrow's padding causes it to\n    // to point to nothing for an aligned placement, adjust the offset of the\n    // floating element itself. To ensure `shift()` continues to take action,\n    // a single reset is performed when this is true.\n    const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n    const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n    return {\n      [axis]: coords[axis] + alignmentOffset,\n      data: {\n        [axis]: offset,\n        centerOffset: center - offset - alignmentOffset,\n        ...(shouldAddOffset && {\n          alignmentOffset\n        })\n      },\n      reset: shouldAddOffset\n    };\n  }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n  const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n  return allowedPlacementsSortedByAlignment.filter(placement => {\n    if (alignment) {\n      return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n    }\n    return true;\n  });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'autoPlacement',\n    options,\n    async fn(state) {\n      var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n      const {\n        rects,\n        middlewareData,\n        placement,\n        platform,\n        elements\n      } = state;\n      const {\n        crossAxis = false,\n        alignment,\n        allowedPlacements = placements,\n        autoAlignment = true,\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n      const currentPlacement = placements$1[currentIndex];\n      if (currentPlacement == null) {\n        return {};\n      }\n      const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n      // Make `computeCoords` start from the right place.\n      if (placement !== currentPlacement) {\n        return {\n          reset: {\n            placement: placements$1[0]\n          }\n        };\n      }\n      const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n      const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n        placement: currentPlacement,\n        overflows: currentOverflows\n      }];\n      const nextPlacement = placements$1[currentIndex + 1];\n\n      // There are more placements to check.\n      if (nextPlacement) {\n        return {\n          data: {\n            index: currentIndex + 1,\n            overflows: allOverflows\n          },\n          reset: {\n            placement: nextPlacement\n          }\n        };\n      }\n      const placementsSortedByMostSpace = allOverflows.map(d => {\n        const alignment = getAlignment(d.placement);\n        return [d.placement, alignment && crossAxis ?\n        // Check along the mainAxis and main crossAxis side.\n        d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n        // Check only the mainAxis.\n        d.overflows[0], d.overflows];\n      }).sort((a, b) => a[1] - b[1]);\n      const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n      // Aligned placements should not check their opposite crossAxis\n      // side.\n      getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n      const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n      if (resetPlacement !== placement) {\n        return {\n          data: {\n            index: currentIndex + 1,\n            overflows: allOverflows\n          },\n          reset: {\n            placement: resetPlacement\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'flip',\n    options,\n    async fn(state) {\n      var _middlewareData$arrow, _middlewareData$flip;\n      const {\n        placement,\n        middlewareData,\n        rects,\n        initialPlacement,\n        platform,\n        elements\n      } = state;\n      const {\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = true,\n        fallbackPlacements: specifiedFallbackPlacements,\n        fallbackStrategy = 'bestFit',\n        fallbackAxisSideDirection = 'none',\n        flipAlignment = true,\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n\n      // If a reset by the arrow was caused due to an alignment offset being\n      // added, we should skip any logic now since `flip()` has already done its\n      // work.\n      // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n      if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n        return {};\n      }\n      const side = getSide(placement);\n      const initialSideAxis = getSideAxis(initialPlacement);\n      const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n      const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n      const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n      const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n      if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n        fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n      }\n      const placements = [initialPlacement, ...fallbackPlacements];\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const overflows = [];\n      let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n      if (checkMainAxis) {\n        overflows.push(overflow[side]);\n      }\n      if (checkCrossAxis) {\n        const sides = getAlignmentSides(placement, rects, rtl);\n        overflows.push(overflow[sides[0]], overflow[sides[1]]);\n      }\n      overflowsData = [...overflowsData, {\n        placement,\n        overflows\n      }];\n\n      // One or more sides is overflowing.\n      if (!overflows.every(side => side <= 0)) {\n        var _middlewareData$flip2, _overflowsData$filter;\n        const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n        const nextPlacement = placements[nextIndex];\n        if (nextPlacement) {\n          const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n          if (!ignoreCrossAxisOverflow ||\n          // We leave the current main axis only if every placement on that axis\n          // overflows the main axis.\n          overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n            // Try next placement and re-run the lifecycle.\n            return {\n              data: {\n                index: nextIndex,\n                overflows: overflowsData\n              },\n              reset: {\n                placement: nextPlacement\n              }\n            };\n          }\n        }\n\n        // First, find the candidates that fit on the mainAxis side of overflow,\n        // then find the placement that fits the best on the main crossAxis side.\n        let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n        // Otherwise fallback.\n        if (!resetPlacement) {\n          switch (fallbackStrategy) {\n            case 'bestFit':\n              {\n                var _overflowsData$filter2;\n                const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n                  if (hasFallbackAxisSideDirection) {\n                    const currentSideAxis = getSideAxis(d.placement);\n                    return currentSideAxis === initialSideAxis ||\n                    // Create a bias to the `y` side axis due to horizontal\n                    // reading directions favoring greater width.\n                    currentSideAxis === 'y';\n                  }\n                  return true;\n                }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n                if (placement) {\n                  resetPlacement = placement;\n                }\n                break;\n              }\n            case 'initialPlacement':\n              resetPlacement = initialPlacement;\n              break;\n          }\n        }\n        if (placement !== resetPlacement) {\n          return {\n            reset: {\n              placement: resetPlacement\n            }\n          };\n        }\n      }\n      return {};\n    }\n  };\n};\n\nfunction getSideOffsets(overflow, rect) {\n  return {\n    top: overflow.top - rect.height,\n    right: overflow.right - rect.width,\n    bottom: overflow.bottom - rect.height,\n    left: overflow.left - rect.width\n  };\n}\nfunction isAnySideFullyClipped(overflow) {\n  return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'hide',\n    options,\n    async fn(state) {\n      const {\n        rects\n      } = state;\n      const {\n        strategy = 'referenceHidden',\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      switch (strategy) {\n        case 'referenceHidden':\n          {\n            const overflow = await detectOverflow(state, {\n              ...detectOverflowOptions,\n              elementContext: 'reference'\n            });\n            const offsets = getSideOffsets(overflow, rects.reference);\n            return {\n              data: {\n                referenceHiddenOffsets: offsets,\n                referenceHidden: isAnySideFullyClipped(offsets)\n              }\n            };\n          }\n        case 'escaped':\n          {\n            const overflow = await detectOverflow(state, {\n              ...detectOverflowOptions,\n              altBoundary: true\n            });\n            const offsets = getSideOffsets(overflow, rects.floating);\n            return {\n              data: {\n                escapedOffsets: offsets,\n                escaped: isAnySideFullyClipped(offsets)\n              }\n            };\n          }\n        default:\n          {\n            return {};\n          }\n      }\n    }\n  };\n};\n\nfunction getBoundingRect(rects) {\n  const minX = min(...rects.map(rect => rect.left));\n  const minY = min(...rects.map(rect => rect.top));\n  const maxX = max(...rects.map(rect => rect.right));\n  const maxY = max(...rects.map(rect => rect.bottom));\n  return {\n    x: minX,\n    y: minY,\n    width: maxX - minX,\n    height: maxY - minY\n  };\n}\nfunction getRectsByLine(rects) {\n  const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n  const groups = [];\n  let prevRect = null;\n  for (let i = 0; i < sortedRects.length; i++) {\n    const rect = sortedRects[i];\n    if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n      groups.push([rect]);\n    } else {\n      groups[groups.length - 1].push(rect);\n    }\n    prevRect = rect;\n  }\n  return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'inline',\n    options,\n    async fn(state) {\n      const {\n        placement,\n        elements,\n        rects,\n        platform,\n        strategy\n      } = state;\n      // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n      // ClientRect's bounds, despite the event listener being triggered. A\n      // padding of 2 seems to handle this issue.\n      const {\n        padding = 2,\n        x,\n        y\n      } = evaluate(options, state);\n      const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n      const clientRects = getRectsByLine(nativeClientRects);\n      const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n      const paddingObject = getPaddingObject(padding);\n      function getBoundingClientRect() {\n        // There are two rects and they are disjoined.\n        if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n          // Find the first rect in which the point is fully inside.\n          return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n        }\n\n        // There are 2 or more connected rects.\n        if (clientRects.length >= 2) {\n          if (getSideAxis(placement) === 'y') {\n            const firstRect = clientRects[0];\n            const lastRect = clientRects[clientRects.length - 1];\n            const isTop = getSide(placement) === 'top';\n            const top = firstRect.top;\n            const bottom = lastRect.bottom;\n            const left = isTop ? firstRect.left : lastRect.left;\n            const right = isTop ? firstRect.right : lastRect.right;\n            const width = right - left;\n            const height = bottom - top;\n            return {\n              top,\n              bottom,\n              left,\n              right,\n              width,\n              height,\n              x: left,\n              y: top\n            };\n          }\n          const isLeftSide = getSide(placement) === 'left';\n          const maxRight = max(...clientRects.map(rect => rect.right));\n          const minLeft = min(...clientRects.map(rect => rect.left));\n          const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n          const top = measureRects[0].top;\n          const bottom = measureRects[measureRects.length - 1].bottom;\n          const left = minLeft;\n          const right = maxRight;\n          const width = right - left;\n          const height = bottom - top;\n          return {\n            top,\n            bottom,\n            left,\n            right,\n            width,\n            height,\n            x: left,\n            y: top\n          };\n        }\n        return fallback;\n      }\n      const resetRects = await platform.getElementRects({\n        reference: {\n          getBoundingClientRect\n        },\n        floating: elements.floating,\n        strategy\n      });\n      if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n        return {\n          reset: {\n            rects: resetRects\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n  const {\n    placement,\n    platform,\n    elements\n  } = state;\n  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n  const side = getSide(placement);\n  const alignment = getAlignment(placement);\n  const isVertical = getSideAxis(placement) === 'y';\n  const mainAxisMulti = originSides.has(side) ? -1 : 1;\n  const crossAxisMulti = rtl && isVertical ? -1 : 1;\n  const rawValue = evaluate(options, state);\n\n  // eslint-disable-next-line prefer-const\n  let {\n    mainAxis,\n    crossAxis,\n    alignmentAxis\n  } = typeof rawValue === 'number' ? {\n    mainAxis: rawValue,\n    crossAxis: 0,\n    alignmentAxis: null\n  } : {\n    mainAxis: rawValue.mainAxis || 0,\n    crossAxis: rawValue.crossAxis || 0,\n    alignmentAxis: rawValue.alignmentAxis\n  };\n  if (alignment && typeof alignmentAxis === 'number') {\n    crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n  }\n  return isVertical ? {\n    x: crossAxis * crossAxisMulti,\n    y: mainAxis * mainAxisMulti\n  } : {\n    x: mainAxis * mainAxisMulti,\n    y: crossAxis * crossAxisMulti\n  };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n  if (options === void 0) {\n    options = 0;\n  }\n  return {\n    name: 'offset',\n    options,\n    async fn(state) {\n      var _middlewareData$offse, _middlewareData$arrow;\n      const {\n        x,\n        y,\n        placement,\n        middlewareData\n      } = state;\n      const diffCoords = await convertValueToCoords(state, options);\n\n      // If the placement is the same and the arrow caused an alignment offset\n      // then we don't need to change the positioning coordinates.\n      if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n        return {};\n      }\n      return {\n        x: x + diffCoords.x,\n        y: y + diffCoords.y,\n        data: {\n          ...diffCoords,\n          placement\n        }\n      };\n    }\n  };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'shift',\n    options,\n    async fn(state) {\n      const {\n        x,\n        y,\n        placement\n      } = state;\n      const {\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = false,\n        limiter = {\n          fn: _ref => {\n            let {\n              x,\n              y\n            } = _ref;\n            return {\n              x,\n              y\n            };\n          }\n        },\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const coords = {\n        x,\n        y\n      };\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const crossAxis = getSideAxis(getSide(placement));\n      const mainAxis = getOppositeAxis(crossAxis);\n      let mainAxisCoord = coords[mainAxis];\n      let crossAxisCoord = coords[crossAxis];\n      if (checkMainAxis) {\n        const minSide = mainAxis === 'y' ? 'top' : 'left';\n        const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n        const min = mainAxisCoord + overflow[minSide];\n        const max = mainAxisCoord - overflow[maxSide];\n        mainAxisCoord = clamp(min, mainAxisCoord, max);\n      }\n      if (checkCrossAxis) {\n        const minSide = crossAxis === 'y' ? 'top' : 'left';\n        const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n        const min = crossAxisCoord + overflow[minSide];\n        const max = crossAxisCoord - overflow[maxSide];\n        crossAxisCoord = clamp(min, crossAxisCoord, max);\n      }\n      const limitedCoords = limiter.fn({\n        ...state,\n        [mainAxis]: mainAxisCoord,\n        [crossAxis]: crossAxisCoord\n      });\n      return {\n        ...limitedCoords,\n        data: {\n          x: limitedCoords.x - x,\n          y: limitedCoords.y - y,\n          enabled: {\n            [mainAxis]: checkMainAxis,\n            [crossAxis]: checkCrossAxis\n          }\n        }\n      };\n    }\n  };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    options,\n    fn(state) {\n      const {\n        x,\n        y,\n        placement,\n        rects,\n        middlewareData\n      } = state;\n      const {\n        offset = 0,\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = true\n      } = evaluate(options, state);\n      const coords = {\n        x,\n        y\n      };\n      const crossAxis = getSideAxis(placement);\n      const mainAxis = getOppositeAxis(crossAxis);\n      let mainAxisCoord = coords[mainAxis];\n      let crossAxisCoord = coords[crossAxis];\n      const rawOffset = evaluate(offset, state);\n      const computedOffset = typeof rawOffset === 'number' ? {\n        mainAxis: rawOffset,\n        crossAxis: 0\n      } : {\n        mainAxis: 0,\n        crossAxis: 0,\n        ...rawOffset\n      };\n      if (checkMainAxis) {\n        const len = mainAxis === 'y' ? 'height' : 'width';\n        const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n        const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n        if (mainAxisCoord < limitMin) {\n          mainAxisCoord = limitMin;\n        } else if (mainAxisCoord > limitMax) {\n          mainAxisCoord = limitMax;\n        }\n      }\n      if (checkCrossAxis) {\n        var _middlewareData$offse, _middlewareData$offse2;\n        const len = mainAxis === 'y' ? 'width' : 'height';\n        const isOriginSide = originSides.has(getSide(placement));\n        const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n        const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n        if (crossAxisCoord < limitMin) {\n          crossAxisCoord = limitMin;\n        } else if (crossAxisCoord > limitMax) {\n          crossAxisCoord = limitMax;\n        }\n      }\n      return {\n        [mainAxis]: mainAxisCoord,\n        [crossAxis]: crossAxisCoord\n      };\n    }\n  };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'size',\n    options,\n    async fn(state) {\n      var _state$middlewareData, _state$middlewareData2;\n      const {\n        placement,\n        rects,\n        platform,\n        elements\n      } = state;\n      const {\n        apply = () => {},\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const side = getSide(placement);\n      const alignment = getAlignment(placement);\n      const isYAxis = getSideAxis(placement) === 'y';\n      const {\n        width,\n        height\n      } = rects.floating;\n      let heightSide;\n      let widthSide;\n      if (side === 'top' || side === 'bottom') {\n        heightSide = side;\n        widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n      } else {\n        widthSide = side;\n        heightSide = alignment === 'end' ? 'top' : 'bottom';\n      }\n      const maximumClippingHeight = height - overflow.top - overflow.bottom;\n      const maximumClippingWidth = width - overflow.left - overflow.right;\n      const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n      const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n      const noShift = !state.middlewareData.shift;\n      let availableHeight = overflowAvailableHeight;\n      let availableWidth = overflowAvailableWidth;\n      if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n        availableWidth = maximumClippingWidth;\n      }\n      if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n        availableHeight = maximumClippingHeight;\n      }\n      if (noShift && !alignment) {\n        const xMin = max(overflow.left, 0);\n        const xMax = max(overflow.right, 0);\n        const yMin = max(overflow.top, 0);\n        const yMax = max(overflow.bottom, 0);\n        if (isYAxis) {\n          availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n        } else {\n          availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n        }\n      }\n      await apply({\n        ...state,\n        availableWidth,\n        availableHeight\n      });\n      const nextDimensions = await platform.getDimensions(elements.floating);\n      if (width !== nextDimensions.width || height !== nextDimensions.height) {\n        return {\n          reset: {\n            rects: true\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n  const css = getComputedStyle$1(element);\n  // In testing environments, the `width` and `height` properties are empty\n  // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n  let width = parseFloat(css.width) || 0;\n  let height = parseFloat(css.height) || 0;\n  const hasOffset = isHTMLElement(element);\n  const offsetWidth = hasOffset ? element.offsetWidth : width;\n  const offsetHeight = hasOffset ? element.offsetHeight : height;\n  const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n  if (shouldFallback) {\n    width = offsetWidth;\n    height = offsetHeight;\n  }\n  return {\n    width,\n    height,\n    $: shouldFallback\n  };\n}\n\nfunction unwrapElement(element) {\n  return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n  const domElement = unwrapElement(element);\n  if (!isHTMLElement(domElement)) {\n    return createCoords(1);\n  }\n  const rect = domElement.getBoundingClientRect();\n  const {\n    width,\n    height,\n    $\n  } = getCssDimensions(domElement);\n  let x = ($ ? round(rect.width) : rect.width) / width;\n  let y = ($ ? round(rect.height) : rect.height) / height;\n\n  // 0, NaN, or Infinity should always fallback to 1.\n\n  if (!x || !Number.isFinite(x)) {\n    x = 1;\n  }\n  if (!y || !Number.isFinite(y)) {\n    y = 1;\n  }\n  return {\n    x,\n    y\n  };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n  const win = getWindow(element);\n  if (!isWebKit() || !win.visualViewport) {\n    return noOffsets;\n  }\n  return {\n    x: win.visualViewport.offsetLeft,\n    y: win.visualViewport.offsetTop\n  };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n  if (isFixed === void 0) {\n    isFixed = false;\n  }\n  if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n    return false;\n  }\n  return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n  if (includeScale === void 0) {\n    includeScale = false;\n  }\n  if (isFixedStrategy === void 0) {\n    isFixedStrategy = false;\n  }\n  const clientRect = element.getBoundingClientRect();\n  const domElement = unwrapElement(element);\n  let scale = createCoords(1);\n  if (includeScale) {\n    if (offsetParent) {\n      if (isElement(offsetParent)) {\n        scale = getScale(offsetParent);\n      }\n    } else {\n      scale = getScale(element);\n    }\n  }\n  const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n  let x = (clientRect.left + visualOffsets.x) / scale.x;\n  let y = (clientRect.top + visualOffsets.y) / scale.y;\n  let width = clientRect.width / scale.x;\n  let height = clientRect.height / scale.y;\n  if (domElement) {\n    const win = getWindow(domElement);\n    const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n    let currentWin = win;\n    let currentIFrame = getFrameElement(currentWin);\n    while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n      const iframeScale = getScale(currentIFrame);\n      const iframeRect = currentIFrame.getBoundingClientRect();\n      const css = getComputedStyle$1(currentIFrame);\n      const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n      const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n      x *= iframeScale.x;\n      y *= iframeScale.y;\n      width *= iframeScale.x;\n      height *= iframeScale.y;\n      x += left;\n      y += top;\n      currentWin = getWindow(currentIFrame);\n      currentIFrame = getFrameElement(currentWin);\n    }\n  }\n  return rectToClientRect({\n    width,\n    height,\n    x,\n    y\n  });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n  const leftScroll = getNodeScroll(element).scrollLeft;\n  if (!rect) {\n    return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n  }\n  return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n  const htmlRect = documentElement.getBoundingClientRect();\n  const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n  const y = htmlRect.top + scroll.scrollTop;\n  return {\n    x,\n    y\n  };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n  let {\n    elements,\n    rect,\n    offsetParent,\n    strategy\n  } = _ref;\n  const isFixed = strategy === 'fixed';\n  const documentElement = getDocumentElement(offsetParent);\n  const topLayer = elements ? isTopLayer(elements.floating) : false;\n  if (offsetParent === documentElement || topLayer && isFixed) {\n    return rect;\n  }\n  let scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  let scale = createCoords(1);\n  const offsets = createCoords(0);\n  const isOffsetParentAnElement = isHTMLElement(offsetParent);\n  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n    if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n      scroll = getNodeScroll(offsetParent);\n    }\n    if (isHTMLElement(offsetParent)) {\n      const offsetRect = getBoundingClientRect(offsetParent);\n      scale = getScale(offsetParent);\n      offsets.x = offsetRect.x + offsetParent.clientLeft;\n      offsets.y = offsetRect.y + offsetParent.clientTop;\n    }\n  }\n  const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n  return {\n    width: rect.width * scale.x,\n    height: rect.height * scale.y,\n    x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n    y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n  };\n}\n\nfunction getClientRects(element) {\n  return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n  const html = getDocumentElement(element);\n  const scroll = getNodeScroll(element);\n  const body = element.ownerDocument.body;\n  const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n  const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n  let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n  const y = -scroll.scrollTop;\n  if (getComputedStyle$1(body).direction === 'rtl') {\n    x += max(html.clientWidth, body.clientWidth) - width;\n  }\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy) {\n  const win = getWindow(element);\n  const html = getDocumentElement(element);\n  const visualViewport = win.visualViewport;\n  let width = html.clientWidth;\n  let height = html.clientHeight;\n  let x = 0;\n  let y = 0;\n  if (visualViewport) {\n    width = visualViewport.width;\n    height = visualViewport.height;\n    const visualViewportBased = isWebKit();\n    if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n      x = visualViewport.offsetLeft;\n      y = visualViewport.offsetTop;\n    }\n  }\n  const windowScrollbarX = getWindowScrollBarX(html);\n  // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the\n  // visual width of the <html> but this is not considered in the size\n  // of `html.clientWidth`.\n  if (windowScrollbarX <= 0) {\n    const doc = html.ownerDocument;\n    const body = doc.body;\n    const bodyStyles = getComputedStyle(body);\n    const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n    const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n    if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {\n      width -= clippingStableScrollbarWidth;\n    }\n  } else if (windowScrollbarX <= SCROLLBAR_MAX) {\n    // If the <body> scrollbar is on the left, the width needs to be extended\n    // by the scrollbar amount so there isn't extra space on the right.\n    width += windowScrollbarX;\n  }\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\n\nconst absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n  const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n  const top = clientRect.top + element.clientTop;\n  const left = clientRect.left + element.clientLeft;\n  const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n  const width = element.clientWidth * scale.x;\n  const height = element.clientHeight * scale.y;\n  const x = left * scale.x;\n  const y = top * scale.y;\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n  let rect;\n  if (clippingAncestor === 'viewport') {\n    rect = getViewportRect(element, strategy);\n  } else if (clippingAncestor === 'document') {\n    rect = getDocumentRect(getDocumentElement(element));\n  } else if (isElement(clippingAncestor)) {\n    rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n  } else {\n    const visualOffsets = getVisualOffsets(element);\n    rect = {\n      x: clippingAncestor.x - visualOffsets.x,\n      y: clippingAncestor.y - visualOffsets.y,\n      width: clippingAncestor.width,\n      height: clippingAncestor.height\n    };\n  }\n  return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n  const parentNode = getParentNode(element);\n  if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n    return false;\n  }\n  return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n  const cachedResult = cache.get(element);\n  if (cachedResult) {\n    return cachedResult;\n  }\n  let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n  let currentContainingBlockComputedStyle = null;\n  const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n  let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n  while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n    const computedStyle = getComputedStyle$1(currentNode);\n    const currentNodeIsContaining = isContainingBlock(currentNode);\n    if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n      currentContainingBlockComputedStyle = null;\n    }\n    const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n    if (shouldDropCurrentNode) {\n      // Drop non-containing blocks.\n      result = result.filter(ancestor => ancestor !== currentNode);\n    } else {\n      // Record last containing block for next iteration.\n      currentContainingBlockComputedStyle = computedStyle;\n    }\n    currentNode = getParentNode(currentNode);\n  }\n  cache.set(element, result);\n  return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n  let {\n    element,\n    boundary,\n    rootBoundary,\n    strategy\n  } = _ref;\n  const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n  const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n  const firstClippingAncestor = clippingAncestors[0];\n  const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n    const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n    accRect.top = max(rect.top, accRect.top);\n    accRect.right = min(rect.right, accRect.right);\n    accRect.bottom = min(rect.bottom, accRect.bottom);\n    accRect.left = max(rect.left, accRect.left);\n    return accRect;\n  }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n  return {\n    width: clippingRect.right - clippingRect.left,\n    height: clippingRect.bottom - clippingRect.top,\n    x: clippingRect.left,\n    y: clippingRect.top\n  };\n}\n\nfunction getDimensions(element) {\n  const {\n    width,\n    height\n  } = getCssDimensions(element);\n  return {\n    width,\n    height\n  };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n  const isOffsetParentAnElement = isHTMLElement(offsetParent);\n  const documentElement = getDocumentElement(offsetParent);\n  const isFixed = strategy === 'fixed';\n  const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n  let scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  const offsets = createCoords(0);\n\n  // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n  // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n  function setLeftRTLScrollbarOffset() {\n    offsets.x = getWindowScrollBarX(documentElement);\n  }\n  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n    if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n      scroll = getNodeScroll(offsetParent);\n    }\n    if (isOffsetParentAnElement) {\n      const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n      offsets.x = offsetRect.x + offsetParent.clientLeft;\n      offsets.y = offsetRect.y + offsetParent.clientTop;\n    } else if (documentElement) {\n      setLeftRTLScrollbarOffset();\n    }\n  }\n  if (isFixed && !isOffsetParentAnElement && documentElement) {\n    setLeftRTLScrollbarOffset();\n  }\n  const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n  const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n  const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n  return {\n    x,\n    y,\n    width: rect.width,\n    height: rect.height\n  };\n}\n\nfunction isStaticPositioned(element) {\n  return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n  if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n    return null;\n  }\n  if (polyfill) {\n    return polyfill(element);\n  }\n  let rawOffsetParent = element.offsetParent;\n\n  // Firefox returns the <html> element as the offsetParent if it's non-static,\n  // while Chrome and Safari return the <body> element. The <body> element must\n  // be used to perform the correct calculations even if the <html> element is\n  // non-static.\n  if (getDocumentElement(element) === rawOffsetParent) {\n    rawOffsetParent = rawOffsetParent.ownerDocument.body;\n  }\n  return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n  const win = getWindow(element);\n  if (isTopLayer(element)) {\n    return win;\n  }\n  if (!isHTMLElement(element)) {\n    let svgOffsetParent = getParentNode(element);\n    while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n      if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n        return svgOffsetParent;\n      }\n      svgOffsetParent = getParentNode(svgOffsetParent);\n    }\n    return win;\n  }\n  let offsetParent = getTrueOffsetParent(element, polyfill);\n  while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n    offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n  }\n  if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n    return win;\n  }\n  return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n  const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n  const getDimensionsFn = this.getDimensions;\n  const floatingDimensions = await getDimensionsFn(data.floating);\n  return {\n    reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n    floating: {\n      x: 0,\n      y: 0,\n      width: floatingDimensions.width,\n      height: floatingDimensions.height\n    }\n  };\n};\n\nfunction isRTL(element) {\n  return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n  convertOffsetParentRelativeRectToViewportRelativeRect,\n  getDocumentElement,\n  getClippingRect,\n  getOffsetParent,\n  getElementRects,\n  getClientRects,\n  getDimensions,\n  getScale,\n  isElement,\n  isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n  return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n  let io = null;\n  let timeoutId;\n  const root = getDocumentElement(element);\n  function cleanup() {\n    var _io;\n    clearTimeout(timeoutId);\n    (_io = io) == null || _io.disconnect();\n    io = null;\n  }\n  function refresh(skip, threshold) {\n    if (skip === void 0) {\n      skip = false;\n    }\n    if (threshold === void 0) {\n      threshold = 1;\n    }\n    cleanup();\n    const elementRectForRootMargin = element.getBoundingClientRect();\n    const {\n      left,\n      top,\n      width,\n      height\n    } = elementRectForRootMargin;\n    if (!skip) {\n      onMove();\n    }\n    if (!width || !height) {\n      return;\n    }\n    const insetTop = floor(top);\n    const insetRight = floor(root.clientWidth - (left + width));\n    const insetBottom = floor(root.clientHeight - (top + height));\n    const insetLeft = floor(left);\n    const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n    const options = {\n      rootMargin,\n      threshold: max(0, min(1, threshold)) || 1\n    };\n    let isFirstUpdate = true;\n    function handleObserve(entries) {\n      const ratio = entries[0].intersectionRatio;\n      if (ratio !== threshold) {\n        if (!isFirstUpdate) {\n          return refresh();\n        }\n        if (!ratio) {\n          // If the reference is clipped, the ratio is 0. Throttle the refresh\n          // to prevent an infinite loop of updates.\n          timeoutId = setTimeout(() => {\n            refresh(false, 1e-7);\n          }, 1000);\n        } else {\n          refresh(false, ratio);\n        }\n      }\n      if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n        // It's possible that even though the ratio is reported as 1, the\n        // element is not actually fully within the IntersectionObserver's root\n        // area anymore. This can happen under performance constraints. This may\n        // be a bug in the browser's IntersectionObserver implementation. To\n        // work around this, we compare the element's bounding rect now with\n        // what it was at the time we created the IntersectionObserver. If they\n        // are not equal then the element moved, so we refresh.\n        refresh();\n      }\n      isFirstUpdate = false;\n    }\n\n    // Older browsers don't support a `document` as the root and will throw an\n    // error.\n    try {\n      io = new IntersectionObserver(handleObserve, {\n        ...options,\n        // Handle <iframe>s\n        root: root.ownerDocument\n      });\n    } catch (_e) {\n      io = new IntersectionObserver(handleObserve, options);\n    }\n    io.observe(element);\n  }\n  refresh(true);\n  return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    ancestorScroll = true,\n    ancestorResize = true,\n    elementResize = typeof ResizeObserver === 'function',\n    layoutShift = typeof IntersectionObserver === 'function',\n    animationFrame = false\n  } = options;\n  const referenceEl = unwrapElement(reference);\n  const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n  ancestors.forEach(ancestor => {\n    ancestorScroll && ancestor.addEventListener('scroll', update, {\n      passive: true\n    });\n    ancestorResize && ancestor.addEventListener('resize', update);\n  });\n  const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n  let reobserveFrame = -1;\n  let resizeObserver = null;\n  if (elementResize) {\n    resizeObserver = new ResizeObserver(_ref => {\n      let [firstEntry] = _ref;\n      if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n        // Prevent update loops when using the `size` middleware.\n        // https://github.com/floating-ui/floating-ui/issues/1740\n        resizeObserver.unobserve(floating);\n        cancelAnimationFrame(reobserveFrame);\n        reobserveFrame = requestAnimationFrame(() => {\n          var _resizeObserver;\n          (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n        });\n      }\n      update();\n    });\n    if (referenceEl && !animationFrame) {\n      resizeObserver.observe(referenceEl);\n    }\n    resizeObserver.observe(floating);\n  }\n  let frameId;\n  let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n  if (animationFrame) {\n    frameLoop();\n  }\n  function frameLoop() {\n    const nextRefRect = getBoundingClientRect(reference);\n    if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n      update();\n    }\n    prevRefRect = nextRefRect;\n    frameId = requestAnimationFrame(frameLoop);\n  }\n  update();\n  return () => {\n    var _resizeObserver2;\n    ancestors.forEach(ancestor => {\n      ancestorScroll && ancestor.removeEventListener('scroll', update);\n      ancestorResize && ancestor.removeEventListener('resize', update);\n    });\n    cleanupIo == null || cleanupIo();\n    (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n    resizeObserver = null;\n    if (animationFrame) {\n      cancelAnimationFrame(frameId);\n    }\n  };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n  // This caches the expensive `getClippingElementAncestors` function so that\n  // multiple lifecycle resets re-use the same result. It only lives for a\n  // single call. If other functions become expensive, we can add them as well.\n  const cache = new Map();\n  const mergedOptions = {\n    platform,\n    ...options\n  };\n  const platformWithCache = {\n    ...mergedOptions.platform,\n    _c: cache\n  };\n  return computePosition$1(reference, floating, {\n    ...mergedOptions,\n    platform: platformWithCache\n  });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","import { computePosition, arrow as arrow$2, autoPlacement as autoPlacement$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1 } from '@floating-ui/dom';\nexport { autoUpdate, computePosition, detectOverflow, getOverflowAncestors, platform } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\nvar isClient = typeof document !== 'undefined';\n\nvar noop = function noop() {};\nvar index = isClient ? useLayoutEffect : noop;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n  if (a === b) {\n    return true;\n  }\n  if (typeof a !== typeof b) {\n    return false;\n  }\n  if (typeof a === 'function' && a.toString() === b.toString()) {\n    return true;\n  }\n  let length;\n  let i;\n  let keys;\n  if (a && b && typeof a === 'object') {\n    if (Array.isArray(a)) {\n      length = a.length;\n      if (length !== b.length) return false;\n      for (i = length; i-- !== 0;) {\n        if (!deepEqual(a[i], b[i])) {\n          return false;\n        }\n      }\n      return true;\n    }\n    keys = Object.keys(a);\n    length = keys.length;\n    if (length !== Object.keys(b).length) {\n      return false;\n    }\n    for (i = length; i-- !== 0;) {\n      if (!{}.hasOwnProperty.call(b, keys[i])) {\n        return false;\n      }\n    }\n    for (i = length; i-- !== 0;) {\n      const key = keys[i];\n      if (key === '_owner' && a.$$typeof) {\n        continue;\n      }\n      if (!deepEqual(a[key], b[key])) {\n        return false;\n      }\n    }\n    return true;\n  }\n  return a !== a && b !== b;\n}\n\nfunction getDPR(element) {\n  if (typeof window === 'undefined') {\n    return 1;\n  }\n  const win = element.ownerDocument.defaultView || window;\n  return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n  const dpr = getDPR(element);\n  return Math.round(value * dpr) / dpr;\n}\n\nfunction useLatestRef(value) {\n  const ref = React.useRef(value);\n  index(() => {\n    ref.current = value;\n  });\n  return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    placement = 'bottom',\n    strategy = 'absolute',\n    middleware = [],\n    platform,\n    elements: {\n      reference: externalReference,\n      floating: externalFloating\n    } = {},\n    transform = true,\n    whileElementsMounted,\n    open\n  } = options;\n  const [data, setData] = React.useState({\n    x: 0,\n    y: 0,\n    strategy,\n    placement,\n    middlewareData: {},\n    isPositioned: false\n  });\n  const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n  if (!deepEqual(latestMiddleware, middleware)) {\n    setLatestMiddleware(middleware);\n  }\n  const [_reference, _setReference] = React.useState(null);\n  const [_floating, _setFloating] = React.useState(null);\n  const setReference = React.useCallback(node => {\n    if (node !== referenceRef.current) {\n      referenceRef.current = node;\n      _setReference(node);\n    }\n  }, []);\n  const setFloating = React.useCallback(node => {\n    if (node !== floatingRef.current) {\n      floatingRef.current = node;\n      _setFloating(node);\n    }\n  }, []);\n  const referenceEl = externalReference || _reference;\n  const floatingEl = externalFloating || _floating;\n  const referenceRef = React.useRef(null);\n  const floatingRef = React.useRef(null);\n  const dataRef = React.useRef(data);\n  const hasWhileElementsMounted = whileElementsMounted != null;\n  const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n  const platformRef = useLatestRef(platform);\n  const openRef = useLatestRef(open);\n  const update = React.useCallback(() => {\n    if (!referenceRef.current || !floatingRef.current) {\n      return;\n    }\n    const config = {\n      placement,\n      strategy,\n      middleware: latestMiddleware\n    };\n    if (platformRef.current) {\n      config.platform = platformRef.current;\n    }\n    computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n      const fullData = {\n        ...data,\n        // The floating element's position may be recomputed while it's closed\n        // but still mounted (such as when transitioning out). To ensure\n        // `isPositioned` will be `false` initially on the next open, avoid\n        // setting it to `true` when `open === false` (must be specified).\n        isPositioned: openRef.current !== false\n      };\n      if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n        dataRef.current = fullData;\n        ReactDOM.flushSync(() => {\n          setData(fullData);\n        });\n      }\n    });\n  }, [latestMiddleware, placement, strategy, platformRef, openRef]);\n  index(() => {\n    if (open === false && dataRef.current.isPositioned) {\n      dataRef.current.isPositioned = false;\n      setData(data => ({\n        ...data,\n        isPositioned: false\n      }));\n    }\n  }, [open]);\n  const isMountedRef = React.useRef(false);\n  index(() => {\n    isMountedRef.current = true;\n    return () => {\n      isMountedRef.current = false;\n    };\n  }, []);\n  index(() => {\n    if (referenceEl) referenceRef.current = referenceEl;\n    if (floatingEl) floatingRef.current = floatingEl;\n    if (referenceEl && floatingEl) {\n      if (whileElementsMountedRef.current) {\n        return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n      }\n      update();\n    }\n  }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);\n  const refs = React.useMemo(() => ({\n    reference: referenceRef,\n    floating: floatingRef,\n    setReference,\n    setFloating\n  }), [setReference, setFloating]);\n  const elements = React.useMemo(() => ({\n    reference: referenceEl,\n    floating: floatingEl\n  }), [referenceEl, floatingEl]);\n  const floatingStyles = React.useMemo(() => {\n    const initialStyles = {\n      position: strategy,\n      left: 0,\n      top: 0\n    };\n    if (!elements.floating) {\n      return initialStyles;\n    }\n    const x = roundByDPR(elements.floating, data.x);\n    const y = roundByDPR(elements.floating, data.y);\n    if (transform) {\n      return {\n        ...initialStyles,\n        transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n        ...(getDPR(elements.floating) >= 1.5 && {\n          willChange: 'transform'\n        })\n      };\n    }\n    return {\n      position: strategy,\n      left: x,\n      top: y\n    };\n  }, [strategy, transform, elements.floating, data.x, data.y]);\n  return React.useMemo(() => ({\n    ...data,\n    update,\n    refs,\n    elements,\n    floatingStyles\n  }), [data, update, refs, elements, floatingStyles]);\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow$1 = options => {\n  function isRef(value) {\n    return {}.hasOwnProperty.call(value, 'current');\n  }\n  return {\n    name: 'arrow',\n    options,\n    fn(state) {\n      const {\n        element,\n        padding\n      } = typeof options === 'function' ? options(state) : options;\n      if (element && isRef(element)) {\n        if (element.current != null) {\n          return arrow$2({\n            element: element.current,\n            padding\n          }).fn(state);\n        }\n        return {};\n      }\n      if (element) {\n        return arrow$2({\n          element,\n          padding\n        }).fn(state);\n      }\n      return {};\n    }\n  };\n};\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = (options, deps) => ({\n  ...offset$1(options),\n  options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = (options, deps) => ({\n  ...shift$1(options),\n  options: [options, deps]\n});\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = (options, deps) => ({\n  ...limitShift$1(options),\n  options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = (options, deps) => ({\n  ...flip$1(options),\n  options: [options, deps]\n});\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = (options, deps) => ({\n  ...size$1(options),\n  options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = (options, deps) => ({\n  ...autoPlacement$1(options),\n  options: [options, deps]\n});\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = (options, deps) => ({\n  ...hide$1(options),\n  options: [options, deps]\n});\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = (options, deps) => ({\n  ...inline$1(options),\n  options: [options, deps]\n});\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = (options, deps) => ({\n  ...arrow$1(options),\n  options: [options, deps]\n});\n\nexport { arrow, autoPlacement, flip, hide, inline, limitShift, offset, shift, size, useFloating };\n","import * as React from 'react';\nimport { useLayoutEffect, useEffect, useRef } from 'react';\nimport { stopEvent, getDocument, isMouseLikePointerType, contains, activeElement, isSafari, isTypeableCombobox, isVirtualClick, isVirtualPointerEvent, getTarget, getPlatform, isTypeableElement, isReactEvent, isRootElement, isEventTargetWithin, isMac, getUserAgent } from '@floating-ui/react/utils';\nimport { floor, evaluate, max, min, round } from '@floating-ui/utils';\nimport { getComputedStyle, isElement, getNodeName, isHTMLElement, getWindow, isLastTraversableNode, getParentNode, isWebKit } from '@floating-ui/utils/dom';\nimport { tabbable, isTabbable } from 'tabbable';\nimport * as ReactDOM from 'react-dom';\nimport { getOverflowAncestors, useFloating as useFloating$1, offset, detectOverflow } from '@floating-ui/react-dom';\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/react-dom';\n\n/**\n * Merges an array of refs into a single memoized callback ref or `null`.\n * @see https://floating-ui.com/docs/react-utils#usemergerefs\n */\nfunction useMergeRefs(refs) {\n  return React.useMemo(() => {\n    if (refs.every(ref => ref == null)) {\n      return null;\n    }\n    return value => {\n      refs.forEach(ref => {\n        if (typeof ref === 'function') {\n          ref(value);\n        } else if (ref != null) {\n          ref.current = value;\n        }\n      });\n    };\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, refs);\n}\n\n// https://github.com/mui/material-ui/issues/41190#issuecomment-2040873379\nconst SafeReact = {\n  ...React\n};\n\nconst useInsertionEffect = SafeReact.useInsertionEffect;\nconst useSafeInsertionEffect = useInsertionEffect || (fn => fn());\nfunction useEffectEvent(callback) {\n  const ref = React.useRef(() => {\n    if (process.env.NODE_ENV !== \"production\") {\n      throw new Error('Cannot call an event handler while rendering.');\n    }\n  });\n  useSafeInsertionEffect(() => {\n    ref.current = callback;\n  });\n  return React.useCallback(function () {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    return ref.current == null ? void 0 : ref.current(...args);\n  }, []);\n}\n\nconst ARROW_UP = 'ArrowUp';\nconst ARROW_DOWN = 'ArrowDown';\nconst ARROW_LEFT = 'ArrowLeft';\nconst ARROW_RIGHT = 'ArrowRight';\nfunction isDifferentRow(index, cols, prevRow) {\n  return Math.floor(index / cols) !== prevRow;\n}\nfunction isIndexOutOfBounds(listRef, index) {\n  return index < 0 || index >= listRef.current.length;\n}\nfunction getMinIndex(listRef, disabledIndices) {\n  return findNonDisabledIndex(listRef, {\n    disabledIndices\n  });\n}\nfunction getMaxIndex(listRef, disabledIndices) {\n  return findNonDisabledIndex(listRef, {\n    decrement: true,\n    startingIndex: listRef.current.length,\n    disabledIndices\n  });\n}\nfunction findNonDisabledIndex(listRef, _temp) {\n  let {\n    startingIndex = -1,\n    decrement = false,\n    disabledIndices,\n    amount = 1\n  } = _temp === void 0 ? {} : _temp;\n  const list = listRef.current;\n  let index = startingIndex;\n  do {\n    index += decrement ? -amount : amount;\n  } while (index >= 0 && index <= list.length - 1 && isDisabled(list, index, disabledIndices));\n  return index;\n}\nfunction getGridNavigatedIndex(elementsRef, _ref) {\n  let {\n    event,\n    orientation,\n    loop,\n    rtl,\n    cols,\n    disabledIndices,\n    minIndex,\n    maxIndex,\n    prevIndex,\n    stopEvent: stop = false\n  } = _ref;\n  let nextIndex = prevIndex;\n  if (event.key === ARROW_UP) {\n    stop && stopEvent(event);\n    if (prevIndex === -1) {\n      nextIndex = maxIndex;\n    } else {\n      nextIndex = findNonDisabledIndex(elementsRef, {\n        startingIndex: nextIndex,\n        amount: cols,\n        decrement: true,\n        disabledIndices\n      });\n      if (loop && (prevIndex - cols < minIndex || nextIndex < 0)) {\n        const col = prevIndex % cols;\n        const maxCol = maxIndex % cols;\n        const offset = maxIndex - (maxCol - col);\n        if (maxCol === col) {\n          nextIndex = maxIndex;\n        } else {\n          nextIndex = maxCol > col ? offset : offset - cols;\n        }\n      }\n    }\n    if (isIndexOutOfBounds(elementsRef, nextIndex)) {\n      nextIndex = prevIndex;\n    }\n  }\n  if (event.key === ARROW_DOWN) {\n    stop && stopEvent(event);\n    if (prevIndex === -1) {\n      nextIndex = minIndex;\n    } else {\n      nextIndex = findNonDisabledIndex(elementsRef, {\n        startingIndex: prevIndex,\n        amount: cols,\n        disabledIndices\n      });\n      if (loop && prevIndex + cols > maxIndex) {\n        nextIndex = findNonDisabledIndex(elementsRef, {\n          startingIndex: prevIndex % cols - cols,\n          amount: cols,\n          disabledIndices\n        });\n      }\n    }\n    if (isIndexOutOfBounds(elementsRef, nextIndex)) {\n      nextIndex = prevIndex;\n    }\n  }\n\n  // Remains on the same row/column.\n  if (orientation === 'both') {\n    const prevRow = floor(prevIndex / cols);\n    if (event.key === (rtl ? ARROW_LEFT : ARROW_RIGHT)) {\n      stop && stopEvent(event);\n      if (prevIndex % cols !== cols - 1) {\n        nextIndex = findNonDisabledIndex(elementsRef, {\n          startingIndex: prevIndex,\n          disabledIndices\n        });\n        if (loop && isDifferentRow(nextIndex, cols, prevRow)) {\n          nextIndex = findNonDisabledIndex(elementsRef, {\n            startingIndex: prevIndex - prevIndex % cols - 1,\n            disabledIndices\n          });\n        }\n      } else if (loop) {\n        nextIndex = findNonDisabledIndex(elementsRef, {\n          startingIndex: prevIndex - prevIndex % cols - 1,\n          disabledIndices\n        });\n      }\n      if (isDifferentRow(nextIndex, cols, prevRow)) {\n        nextIndex = prevIndex;\n      }\n    }\n    if (event.key === (rtl ? ARROW_RIGHT : ARROW_LEFT)) {\n      stop && stopEvent(event);\n      if (prevIndex % cols !== 0) {\n        nextIndex = findNonDisabledIndex(elementsRef, {\n          startingIndex: prevIndex,\n          decrement: true,\n          disabledIndices\n        });\n        if (loop && isDifferentRow(nextIndex, cols, prevRow)) {\n          nextIndex = findNonDisabledIndex(elementsRef, {\n            startingIndex: prevIndex + (cols - prevIndex % cols),\n            decrement: true,\n            disabledIndices\n          });\n        }\n      } else if (loop) {\n        nextIndex = findNonDisabledIndex(elementsRef, {\n          startingIndex: prevIndex + (cols - prevIndex % cols),\n          decrement: true,\n          disabledIndices\n        });\n      }\n      if (isDifferentRow(nextIndex, cols, prevRow)) {\n        nextIndex = prevIndex;\n      }\n    }\n    const lastRow = floor(maxIndex / cols) === prevRow;\n    if (isIndexOutOfBounds(elementsRef, nextIndex)) {\n      if (loop && lastRow) {\n        nextIndex = event.key === (rtl ? ARROW_RIGHT : ARROW_LEFT) ? maxIndex : findNonDisabledIndex(elementsRef, {\n          startingIndex: prevIndex - prevIndex % cols - 1,\n          disabledIndices\n        });\n      } else {\n        nextIndex = prevIndex;\n      }\n    }\n  }\n  return nextIndex;\n}\n\n/** For each cell index, gets the item index that occupies that cell */\nfunction buildCellMap(sizes, cols, dense) {\n  const cellMap = [];\n  let startIndex = 0;\n  sizes.forEach((_ref2, index) => {\n    let {\n      width,\n      height\n    } = _ref2;\n    if (width > cols) {\n      if (process.env.NODE_ENV !== \"production\") {\n        throw new Error(\"[Floating UI]: Invalid grid - item width at index \" + index + \" is greater than grid columns\");\n      }\n    }\n    let itemPlaced = false;\n    if (dense) {\n      startIndex = 0;\n    }\n    while (!itemPlaced) {\n      const targetCells = [];\n      for (let i = 0; i < width; i++) {\n        for (let j = 0; j < height; j++) {\n          targetCells.push(startIndex + i + j * cols);\n        }\n      }\n      if (startIndex % cols + width <= cols && targetCells.every(cell => cellMap[cell] == null)) {\n        targetCells.forEach(cell => {\n          cellMap[cell] = index;\n        });\n        itemPlaced = true;\n      } else {\n        startIndex++;\n      }\n    }\n  });\n\n  // convert into a non-sparse array\n  return [...cellMap];\n}\n\n/** Gets cell index of an item's corner or -1 when index is -1. */\nfunction getCellIndexOfCorner(index, sizes, cellMap, cols, corner) {\n  if (index === -1) return -1;\n  const firstCellIndex = cellMap.indexOf(index);\n  const sizeItem = sizes[index];\n  switch (corner) {\n    case 'tl':\n      return firstCellIndex;\n    case 'tr':\n      if (!sizeItem) {\n        return firstCellIndex;\n      }\n      return firstCellIndex + sizeItem.width - 1;\n    case 'bl':\n      if (!sizeItem) {\n        return firstCellIndex;\n      }\n      return firstCellIndex + (sizeItem.height - 1) * cols;\n    case 'br':\n      return cellMap.lastIndexOf(index);\n  }\n}\n\n/** Gets all cell indices that correspond to the specified indices */\nfunction getCellIndices(indices, cellMap) {\n  return cellMap.flatMap((index, cellIndex) => indices.includes(index) ? [cellIndex] : []);\n}\nfunction isDisabled(list, index, disabledIndices) {\n  if (disabledIndices) {\n    return disabledIndices.includes(index);\n  }\n  const element = list[index];\n  return element == null || element.hasAttribute('disabled') || element.getAttribute('aria-disabled') === 'true';\n}\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\nfunction sortByDocumentPosition(a, b) {\n  const position = a.compareDocumentPosition(b);\n  if (position & Node.DOCUMENT_POSITION_FOLLOWING || position & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n    return -1;\n  }\n  if (position & Node.DOCUMENT_POSITION_PRECEDING || position & Node.DOCUMENT_POSITION_CONTAINS) {\n    return 1;\n  }\n  return 0;\n}\nfunction areMapsEqual(map1, map2) {\n  if (map1.size !== map2.size) {\n    return false;\n  }\n  for (const [key, value] of map1.entries()) {\n    if (value !== map2.get(key)) {\n      return false;\n    }\n  }\n  return true;\n}\nconst FloatingListContext = /*#__PURE__*/React.createContext({\n  register: () => {},\n  unregister: () => {},\n  map: /*#__PURE__*/new Map(),\n  elementsRef: {\n    current: []\n  }\n});\n/**\n * Provides context for a list of items within the floating element.\n * @see https://floating-ui.com/docs/FloatingList\n */\nfunction FloatingList(props) {\n  const {\n    children,\n    elementsRef,\n    labelsRef\n  } = props;\n  const [map, setMap] = React.useState(() => new Map());\n  const register = React.useCallback(node => {\n    setMap(prevMap => new Map(prevMap).set(node, null));\n  }, []);\n  const unregister = React.useCallback(node => {\n    setMap(prevMap => {\n      const map = new Map(prevMap);\n      map.delete(node);\n      return map;\n    });\n  }, []);\n  index(() => {\n    const newMap = new Map(map);\n    const nodes = Array.from(newMap.keys()).sort(sortByDocumentPosition);\n    nodes.forEach((node, index) => {\n      newMap.set(node, index);\n    });\n    if (!areMapsEqual(map, newMap)) {\n      setMap(newMap);\n    }\n  }, [map]);\n  return /*#__PURE__*/React.createElement(FloatingListContext.Provider, {\n    value: React.useMemo(() => ({\n      register,\n      unregister,\n      map,\n      elementsRef,\n      labelsRef\n    }), [register, unregister, map, elementsRef, labelsRef])\n  }, children);\n}\n/**\n * Used to register a list item and its index (DOM position) in the\n * `FloatingList`.\n * @see https://floating-ui.com/docs/FloatingList#uselistitem\n */\nfunction useListItem(props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    label\n  } = props;\n  const {\n    register,\n    unregister,\n    map,\n    elementsRef,\n    labelsRef\n  } = React.useContext(FloatingListContext);\n  const [index$1, setIndex] = React.useState(null);\n  const componentRef = React.useRef(null);\n  const ref = React.useCallback(node => {\n    componentRef.current = node;\n    if (index$1 !== null) {\n      elementsRef.current[index$1] = node;\n      if (labelsRef) {\n        var _node$textContent;\n        const isLabelDefined = label !== undefined;\n        labelsRef.current[index$1] = isLabelDefined ? label : (_node$textContent = node == null ? void 0 : node.textContent) != null ? _node$textContent : null;\n      }\n    }\n  }, [index$1, elementsRef, labelsRef, label]);\n  index(() => {\n    const node = componentRef.current;\n    if (node) {\n      register(node);\n      return () => {\n        unregister(node);\n      };\n    }\n  }, [register, unregister]);\n  index(() => {\n    const index = componentRef.current ? map.get(componentRef.current) : null;\n    if (index != null) {\n      setIndex(index);\n    }\n  }, [map]);\n  return React.useMemo(() => ({\n    ref,\n    index: index$1 == null ? -1 : index$1\n  }), [index$1, ref]);\n}\n\nfunction renderJsx(render, computedProps) {\n  if (typeof render === 'function') {\n    return render(computedProps);\n  }\n  if (render) {\n    return /*#__PURE__*/React.cloneElement(render, computedProps);\n  }\n  return /*#__PURE__*/React.createElement(\"div\", computedProps);\n}\nconst CompositeContext = /*#__PURE__*/React.createContext({\n  activeIndex: 0,\n  onNavigate: () => {}\n});\nconst horizontalKeys = [ARROW_LEFT, ARROW_RIGHT];\nconst verticalKeys = [ARROW_UP, ARROW_DOWN];\nconst allKeys = [...horizontalKeys, ...verticalKeys];\n\n/**\n * Creates a single tab stop whose items are navigated by arrow keys, which\n * provides list navigation outside of floating element contexts.\n *\n * This is useful to enable navigation of a list of items that aren’t part of a\n * floating element. A menubar is an example of a composite, with each reference\n * element being an item.\n * @see https://floating-ui.com/docs/Composite\n */\nconst Composite = /*#__PURE__*/React.forwardRef(function Composite(props, forwardedRef) {\n  const {\n    render,\n    orientation = 'both',\n    loop = true,\n    rtl = false,\n    cols = 1,\n    disabledIndices,\n    activeIndex: externalActiveIndex,\n    onNavigate: externalSetActiveIndex,\n    itemSizes,\n    dense = false,\n    ...domProps\n  } = props;\n  const [internalActiveIndex, internalSetActiveIndex] = React.useState(0);\n  const activeIndex = externalActiveIndex != null ? externalActiveIndex : internalActiveIndex;\n  const onNavigate = useEffectEvent(externalSetActiveIndex != null ? externalSetActiveIndex : internalSetActiveIndex);\n  const elementsRef = React.useRef([]);\n  const renderElementProps = render && typeof render !== 'function' ? render.props : {};\n  const contextValue = React.useMemo(() => ({\n    activeIndex,\n    onNavigate\n  }), [activeIndex, onNavigate]);\n  const isGrid = cols > 1;\n  function handleKeyDown(event) {\n    if (!allKeys.includes(event.key)) return;\n    let nextIndex = activeIndex;\n    const minIndex = getMinIndex(elementsRef, disabledIndices);\n    const maxIndex = getMaxIndex(elementsRef, disabledIndices);\n    const horizontalEndKey = rtl ? ARROW_LEFT : ARROW_RIGHT;\n    const horizontalStartKey = rtl ? ARROW_RIGHT : ARROW_LEFT;\n    if (isGrid) {\n      const sizes = itemSizes || Array.from({\n        length: elementsRef.current.length\n      }, () => ({\n        width: 1,\n        height: 1\n      }));\n      // To calculate movements on the grid, we use hypothetical cell indices\n      // as if every item was 1x1, then convert back to real indices.\n      const cellMap = buildCellMap(sizes, cols, dense);\n      const minGridIndex = cellMap.findIndex(index => index != null && !isDisabled(elementsRef.current, index, disabledIndices));\n      // last enabled index\n      const maxGridIndex = cellMap.reduce((foundIndex, index, cellIndex) => index != null && !isDisabled(elementsRef.current, index, disabledIndices) ? cellIndex : foundIndex, -1);\n      const maybeNextIndex = cellMap[getGridNavigatedIndex({\n        current: cellMap.map(itemIndex => itemIndex ? elementsRef.current[itemIndex] : null)\n      }, {\n        event,\n        orientation,\n        loop,\n        rtl,\n        cols,\n        // treat undefined (empty grid spaces) as disabled indices so we\n        // don't end up in them\n        disabledIndices: getCellIndices([...(disabledIndices || elementsRef.current.map((_, index) => isDisabled(elementsRef.current, index) ? index : undefined)), undefined], cellMap),\n        minIndex: minGridIndex,\n        maxIndex: maxGridIndex,\n        prevIndex: getCellIndexOfCorner(activeIndex > maxIndex ? minIndex : activeIndex, sizes, cellMap, cols,\n        // use a corner matching the edge closest to the direction we're\n        // moving in so we don't end up in the same item. Prefer\n        // top/left over bottom/right.\n        event.key === ARROW_DOWN ? 'bl' : event.key === horizontalEndKey ? 'tr' : 'tl')\n      })];\n      if (maybeNextIndex != null) {\n        nextIndex = maybeNextIndex;\n      }\n    }\n    const toEndKeys = {\n      horizontal: [horizontalEndKey],\n      vertical: [ARROW_DOWN],\n      both: [horizontalEndKey, ARROW_DOWN]\n    }[orientation];\n    const toStartKeys = {\n      horizontal: [horizontalStartKey],\n      vertical: [ARROW_UP],\n      both: [horizontalStartKey, ARROW_UP]\n    }[orientation];\n    const preventedKeys = isGrid ? allKeys : {\n      horizontal: horizontalKeys,\n      vertical: verticalKeys,\n      both: allKeys\n    }[orientation];\n    if (nextIndex === activeIndex && [...toEndKeys, ...toStartKeys].includes(event.key)) {\n      if (loop && nextIndex === maxIndex && toEndKeys.includes(event.key)) {\n        nextIndex = minIndex;\n      } else if (loop && nextIndex === minIndex && toStartKeys.includes(event.key)) {\n        nextIndex = maxIndex;\n      } else {\n        nextIndex = findNonDisabledIndex(elementsRef, {\n          startingIndex: nextIndex,\n          decrement: toStartKeys.includes(event.key),\n          disabledIndices\n        });\n      }\n    }\n    if (nextIndex !== activeIndex && !isIndexOutOfBounds(elementsRef, nextIndex)) {\n      var _elementsRef$current$;\n      event.stopPropagation();\n      if (preventedKeys.includes(event.key)) {\n        event.preventDefault();\n      }\n      onNavigate(nextIndex);\n      (_elementsRef$current$ = elementsRef.current[nextIndex]) == null || _elementsRef$current$.focus();\n    }\n  }\n  const computedProps = {\n    ...domProps,\n    ...renderElementProps,\n    ref: forwardedRef,\n    'aria-orientation': orientation === 'both' ? undefined : orientation,\n    onKeyDown(e) {\n      domProps.onKeyDown == null || domProps.onKeyDown(e);\n      renderElementProps.onKeyDown == null || renderElementProps.onKeyDown(e);\n      handleKeyDown(e);\n    }\n  };\n  return /*#__PURE__*/React.createElement(CompositeContext.Provider, {\n    value: contextValue\n  }, /*#__PURE__*/React.createElement(FloatingList, {\n    elementsRef: elementsRef\n  }, renderJsx(render, computedProps)));\n});\n/**\n * @see https://floating-ui.com/docs/Composite\n */\nconst CompositeItem = /*#__PURE__*/React.forwardRef(function CompositeItem(props, forwardedRef) {\n  const {\n    render,\n    ...domProps\n  } = props;\n  const renderElementProps = render && typeof render !== 'function' ? render.props : {};\n  const {\n    activeIndex,\n    onNavigate\n  } = React.useContext(CompositeContext);\n  const {\n    ref,\n    index\n  } = useListItem();\n  const mergedRef = useMergeRefs([ref, forwardedRef, renderElementProps.ref]);\n  const isActive = activeIndex === index;\n  const computedProps = {\n    ...domProps,\n    ...renderElementProps,\n    ref: mergedRef,\n    tabIndex: isActive ? 0 : -1,\n    'data-active': isActive ? '' : undefined,\n    onFocus(e) {\n      domProps.onFocus == null || domProps.onFocus(e);\n      renderElementProps.onFocus == null || renderElementProps.onFocus(e);\n      onNavigate(index);\n    }\n  };\n  return renderJsx(render, computedProps);\n});\n\nfunction _extends() {\n  _extends = Object.assign ? Object.assign.bind() : function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}\n\nlet serverHandoffComplete = false;\nlet count = 0;\nconst genId = () => // Ensure the id is unique with multiple independent versions of Floating UI\n// on <React 18\n\"floating-ui-\" + Math.random().toString(36).slice(2, 6) + count++;\nfunction useFloatingId() {\n  const [id, setId] = React.useState(() => serverHandoffComplete ? genId() : undefined);\n  index(() => {\n    if (id == null) {\n      setId(genId());\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, []);\n  React.useEffect(() => {\n    serverHandoffComplete = true;\n  }, []);\n  return id;\n}\nconst useReactId = SafeReact.useId;\n\n/**\n * Uses React 18's built-in `useId()` when available, or falls back to a\n * slightly less performant (requiring a double render) implementation for\n * earlier React versions.\n * @see https://floating-ui.com/docs/react-utils#useid\n */\nconst useId = useReactId || useFloatingId;\n\nlet devMessageSet;\nif (process.env.NODE_ENV !== \"production\") {\n  devMessageSet = /*#__PURE__*/new Set();\n}\nfunction warn() {\n  var _devMessageSet;\n  for (var _len = arguments.length, messages = new Array(_len), _key = 0; _key < _len; _key++) {\n    messages[_key] = arguments[_key];\n  }\n  const message = \"Floating UI: \" + messages.join(' ');\n  if (!((_devMessageSet = devMessageSet) != null && _devMessageSet.has(message))) {\n    var _devMessageSet2;\n    (_devMessageSet2 = devMessageSet) == null || _devMessageSet2.add(message);\n    console.warn(message);\n  }\n}\nfunction error() {\n  var _devMessageSet3;\n  for (var _len2 = arguments.length, messages = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n    messages[_key2] = arguments[_key2];\n  }\n  const message = \"Floating UI: \" + messages.join(' ');\n  if (!((_devMessageSet3 = devMessageSet) != null && _devMessageSet3.has(message))) {\n    var _devMessageSet4;\n    (_devMessageSet4 = devMessageSet) == null || _devMessageSet4.add(message);\n    console.error(message);\n  }\n}\n\n/**\n * Renders a pointing arrow triangle.\n * @see https://floating-ui.com/docs/FloatingArrow\n */\nconst FloatingArrow = /*#__PURE__*/React.forwardRef(function FloatingArrow(props, ref) {\n  const {\n    context: {\n      placement,\n      elements: {\n        floating\n      },\n      middlewareData: {\n        arrow,\n        shift\n      }\n    },\n    width = 14,\n    height = 7,\n    tipRadius = 0,\n    strokeWidth = 0,\n    staticOffset,\n    stroke,\n    d,\n    style: {\n      transform,\n      ...restStyle\n    } = {},\n    ...rest\n  } = props;\n  if (process.env.NODE_ENV !== \"production\") {\n    if (!ref) {\n      warn('The `ref` prop is required for `FloatingArrow`.');\n    }\n  }\n  const clipPathId = useId();\n  const [isRTL, setIsRTL] = React.useState(false);\n\n  // https://github.com/floating-ui/floating-ui/issues/2932\n  index(() => {\n    if (!floating) return;\n    const isRTL = getComputedStyle(floating).direction === 'rtl';\n    if (isRTL) {\n      setIsRTL(true);\n    }\n  }, [floating]);\n  if (!floating) {\n    return null;\n  }\n  const [side, alignment] = placement.split('-');\n  const isVerticalSide = side === 'top' || side === 'bottom';\n  let computedStaticOffset = staticOffset;\n  if (isVerticalSide && shift != null && shift.x || !isVerticalSide && shift != null && shift.y) {\n    computedStaticOffset = null;\n  }\n\n  // Strokes must be double the border width, this ensures the stroke's width\n  // works as you'd expect.\n  const computedStrokeWidth = strokeWidth * 2;\n  const halfStrokeWidth = computedStrokeWidth / 2;\n  const svgX = width / 2 * (tipRadius / -8 + 1);\n  const svgY = height / 2 * tipRadius / 4;\n  const isCustomShape = !!d;\n  const yOffsetProp = computedStaticOffset && alignment === 'end' ? 'bottom' : 'top';\n  let xOffsetProp = computedStaticOffset && alignment === 'end' ? 'right' : 'left';\n  if (computedStaticOffset && isRTL) {\n    xOffsetProp = alignment === 'end' ? 'left' : 'right';\n  }\n  const arrowX = (arrow == null ? void 0 : arrow.x) != null ? computedStaticOffset || arrow.x : '';\n  const arrowY = (arrow == null ? void 0 : arrow.y) != null ? computedStaticOffset || arrow.y : '';\n  const dValue = d || 'M0,0' + (\" H\" + width) + (\" L\" + (width - svgX) + \",\" + (height - svgY)) + (\" Q\" + width / 2 + \",\" + height + \" \" + svgX + \",\" + (height - svgY)) + ' Z';\n  const rotation = {\n    top: isCustomShape ? 'rotate(180deg)' : '',\n    left: isCustomShape ? 'rotate(90deg)' : 'rotate(-90deg)',\n    bottom: isCustomShape ? '' : 'rotate(180deg)',\n    right: isCustomShape ? 'rotate(-90deg)' : 'rotate(90deg)'\n  }[side];\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({}, rest, {\n    \"aria-hidden\": true,\n    ref: ref,\n    width: isCustomShape ? width : width + computedStrokeWidth,\n    height: width,\n    viewBox: \"0 0 \" + width + \" \" + (height > width ? height : width),\n    style: {\n      position: 'absolute',\n      pointerEvents: 'none',\n      [xOffsetProp]: arrowX,\n      [yOffsetProp]: arrowY,\n      [side]: isVerticalSide || isCustomShape ? '100%' : \"calc(100% - \" + computedStrokeWidth / 2 + \"px)\",\n      transform: [rotation, transform].filter(t => !!t).join(' '),\n      ...restStyle\n    }\n  }), computedStrokeWidth > 0 && /*#__PURE__*/React.createElement(\"path\", {\n    clipPath: \"url(#\" + clipPathId + \")\",\n    fill: \"none\",\n    stroke: stroke\n    // Account for the stroke on the fill path rendered below.\n    ,\n    strokeWidth: computedStrokeWidth + (d ? 0 : 1),\n    d: dValue\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    stroke: computedStrokeWidth && !d ? rest.fill : 'none',\n    d: dValue\n  }), /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: clipPathId\n  }, /*#__PURE__*/React.createElement(\"rect\", {\n    x: -halfStrokeWidth,\n    y: halfStrokeWidth * (isCustomShape ? -1 : 1),\n    width: width + computedStrokeWidth,\n    height: width\n  })));\n});\n\nfunction createPubSub() {\n  const map = new Map();\n  return {\n    emit(event, data) {\n      var _map$get;\n      (_map$get = map.get(event)) == null || _map$get.forEach(handler => handler(data));\n    },\n    on(event, listener) {\n      map.set(event, [...(map.get(event) || []), listener]);\n    },\n    off(event, listener) {\n      var _map$get2;\n      map.set(event, ((_map$get2 = map.get(event)) == null ? void 0 : _map$get2.filter(l => l !== listener)) || []);\n    }\n  };\n}\n\nconst FloatingNodeContext = /*#__PURE__*/React.createContext(null);\nconst FloatingTreeContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * Returns the parent node id for nested floating elements, if available.\n * Returns `null` for top-level floating elements.\n */\nconst useFloatingParentNodeId = () => {\n  var _React$useContext;\n  return ((_React$useContext = React.useContext(FloatingNodeContext)) == null ? void 0 : _React$useContext.id) || null;\n};\n\n/**\n * Returns the nearest floating tree context, if available.\n */\nconst useFloatingTree = () => React.useContext(FloatingTreeContext);\n\n/**\n * Registers a node into the `FloatingTree`, returning its id.\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction useFloatingNodeId(customParentId) {\n  const id = useId();\n  const tree = useFloatingTree();\n  const reactParentId = useFloatingParentNodeId();\n  const parentId = customParentId || reactParentId;\n  index(() => {\n    const node = {\n      id,\n      parentId\n    };\n    tree == null || tree.addNode(node);\n    return () => {\n      tree == null || tree.removeNode(node);\n    };\n  }, [tree, id, parentId]);\n  return id;\n}\n/**\n * Provides parent node context for nested floating elements.\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction FloatingNode(props) {\n  const {\n    children,\n    id\n  } = props;\n  const parentId = useFloatingParentNodeId();\n  return /*#__PURE__*/React.createElement(FloatingNodeContext.Provider, {\n    value: React.useMemo(() => ({\n      id,\n      parentId\n    }), [id, parentId])\n  }, children);\n}\n/**\n * Provides context for nested floating elements when they are not children of\n * each other on the DOM.\n * This is not necessary in all cases, except when there must be explicit communication between parent and child floating elements. It is necessary for:\n * - The `bubbles` option in the `useDismiss()` Hook\n * - Nested virtual list navigation\n * - Nested floating elements that each open on hover\n * - Custom communication between parent and child floating elements\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction FloatingTree(props) {\n  const {\n    children\n  } = props;\n  const nodesRef = React.useRef([]);\n  const addNode = React.useCallback(node => {\n    nodesRef.current = [...nodesRef.current, node];\n  }, []);\n  const removeNode = React.useCallback(node => {\n    nodesRef.current = nodesRef.current.filter(n => n !== node);\n  }, []);\n  const events = React.useState(() => createPubSub())[0];\n  return /*#__PURE__*/React.createElement(FloatingTreeContext.Provider, {\n    value: React.useMemo(() => ({\n      nodesRef,\n      addNode,\n      removeNode,\n      events\n    }), [addNode, removeNode, events])\n  }, children);\n}\n\nfunction createAttribute(name) {\n  return \"data-floating-ui-\" + name;\n}\n\nfunction useLatestRef(value) {\n  const ref = useRef(value);\n  index(() => {\n    ref.current = value;\n  });\n  return ref;\n}\n\nconst safePolygonIdentifier = /*#__PURE__*/createAttribute('safe-polygon');\nfunction getDelay(value, prop, pointerType) {\n  if (pointerType && !isMouseLikePointerType(pointerType)) {\n    return 0;\n  }\n  if (typeof value === 'number') {\n    return value;\n  }\n  return value == null ? void 0 : value[prop];\n}\n/**\n * Opens the floating element while hovering over the reference element, like\n * CSS `:hover`.\n * @see https://floating-ui.com/docs/useHover\n */\nfunction useHover(context, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    onOpenChange,\n    dataRef,\n    events,\n    elements\n  } = context;\n  const {\n    enabled = true,\n    delay = 0,\n    handleClose = null,\n    mouseOnly = false,\n    restMs = 0,\n    move = true\n  } = props;\n  const tree = useFloatingTree();\n  const parentId = useFloatingParentNodeId();\n  const handleCloseRef = useLatestRef(handleClose);\n  const delayRef = useLatestRef(delay);\n  const openRef = useLatestRef(open);\n  const pointerTypeRef = React.useRef();\n  const timeoutRef = React.useRef(-1);\n  const handlerRef = React.useRef();\n  const restTimeoutRef = React.useRef(-1);\n  const blockMouseMoveRef = React.useRef(true);\n  const performedPointerEventsMutationRef = React.useRef(false);\n  const unbindMouseMoveRef = React.useRef(() => {});\n  const restTimeoutPendingRef = React.useRef(false);\n  const isHoverOpen = React.useCallback(() => {\n    var _dataRef$current$open;\n    const type = (_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type;\n    return (type == null ? void 0 : type.includes('mouse')) && type !== 'mousedown';\n  }, [dataRef]);\n\n  // When closing before opening, clear the delay timeouts to cancel it\n  // from showing.\n  React.useEffect(() => {\n    if (!enabled) return;\n    function onOpenChange(_ref) {\n      let {\n        open\n      } = _ref;\n      if (!open) {\n        clearTimeout(timeoutRef.current);\n        clearTimeout(restTimeoutRef.current);\n        blockMouseMoveRef.current = true;\n        restTimeoutPendingRef.current = false;\n      }\n    }\n    events.on('openchange', onOpenChange);\n    return () => {\n      events.off('openchange', onOpenChange);\n    };\n  }, [enabled, events]);\n  React.useEffect(() => {\n    if (!enabled) return;\n    if (!handleCloseRef.current) return;\n    if (!open) return;\n    function onLeave(event) {\n      if (isHoverOpen()) {\n        onOpenChange(false, event, 'hover');\n      }\n    }\n    const html = getDocument(elements.floating).documentElement;\n    html.addEventListener('mouseleave', onLeave);\n    return () => {\n      html.removeEventListener('mouseleave', onLeave);\n    };\n  }, [elements.floating, open, onOpenChange, enabled, handleCloseRef, isHoverOpen]);\n  const closeWithDelay = React.useCallback(function (event, runElseBranch, reason) {\n    if (runElseBranch === void 0) {\n      runElseBranch = true;\n    }\n    if (reason === void 0) {\n      reason = 'hover';\n    }\n    const closeDelay = getDelay(delayRef.current, 'close', pointerTypeRef.current);\n    if (closeDelay && !handlerRef.current) {\n      clearTimeout(timeoutRef.current);\n      timeoutRef.current = window.setTimeout(() => onOpenChange(false, event, reason), closeDelay);\n    } else if (runElseBranch) {\n      clearTimeout(timeoutRef.current);\n      onOpenChange(false, event, reason);\n    }\n  }, [delayRef, onOpenChange]);\n  const cleanupMouseMoveHandler = useEffectEvent(() => {\n    unbindMouseMoveRef.current();\n    handlerRef.current = undefined;\n  });\n  const clearPointerEvents = useEffectEvent(() => {\n    if (performedPointerEventsMutationRef.current) {\n      const body = getDocument(elements.floating).body;\n      body.style.pointerEvents = '';\n      body.removeAttribute(safePolygonIdentifier);\n      performedPointerEventsMutationRef.current = false;\n    }\n  });\n  const isClickLikeOpenEvent = useEffectEvent(() => {\n    return dataRef.current.openEvent ? ['click', 'mousedown'].includes(dataRef.current.openEvent.type) : false;\n  });\n\n  // Registering the mouse events on the reference directly to bypass React's\n  // delegation system. If the cursor was on a disabled element and then entered\n  // the reference (no gap), `mouseenter` doesn't fire in the delegation system.\n  React.useEffect(() => {\n    if (!enabled) return;\n    function onMouseEnter(event) {\n      clearTimeout(timeoutRef.current);\n      blockMouseMoveRef.current = false;\n      if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current) || restMs > 0 && !getDelay(delayRef.current, 'open')) {\n        return;\n      }\n      const openDelay = getDelay(delayRef.current, 'open', pointerTypeRef.current);\n      if (openDelay) {\n        timeoutRef.current = window.setTimeout(() => {\n          if (!openRef.current) {\n            onOpenChange(true, event, 'hover');\n          }\n        }, openDelay);\n      } else if (!open) {\n        onOpenChange(true, event, 'hover');\n      }\n    }\n    function onMouseLeave(event) {\n      if (isClickLikeOpenEvent()) return;\n      unbindMouseMoveRef.current();\n      const doc = getDocument(elements.floating);\n      clearTimeout(restTimeoutRef.current);\n      restTimeoutPendingRef.current = false;\n      if (handleCloseRef.current && dataRef.current.floatingContext) {\n        // Prevent clearing `onScrollMouseLeave` timeout.\n        if (!open) {\n          clearTimeout(timeoutRef.current);\n        }\n        handlerRef.current = handleCloseRef.current({\n          ...dataRef.current.floatingContext,\n          tree,\n          x: event.clientX,\n          y: event.clientY,\n          onClose() {\n            clearPointerEvents();\n            cleanupMouseMoveHandler();\n            if (!isClickLikeOpenEvent()) {\n              closeWithDelay(event, true, 'safe-polygon');\n            }\n          }\n        });\n        const handler = handlerRef.current;\n        doc.addEventListener('mousemove', handler);\n        unbindMouseMoveRef.current = () => {\n          doc.removeEventListener('mousemove', handler);\n        };\n        return;\n      }\n\n      // Allow interactivity without `safePolygon` on touch devices. With a\n      // pointer, a short close delay is an alternative, so it should work\n      // consistently.\n      const shouldClose = pointerTypeRef.current === 'touch' ? !contains(elements.floating, event.relatedTarget) : true;\n      if (shouldClose) {\n        closeWithDelay(event);\n      }\n    }\n\n    // Ensure the floating element closes after scrolling even if the pointer\n    // did not move.\n    // https://github.com/floating-ui/floating-ui/discussions/1692\n    function onScrollMouseLeave(event) {\n      if (isClickLikeOpenEvent()) return;\n      if (!dataRef.current.floatingContext) return;\n      handleCloseRef.current == null || handleCloseRef.current({\n        ...dataRef.current.floatingContext,\n        tree,\n        x: event.clientX,\n        y: event.clientY,\n        onClose() {\n          clearPointerEvents();\n          cleanupMouseMoveHandler();\n          if (!isClickLikeOpenEvent()) {\n            closeWithDelay(event);\n          }\n        }\n      })(event);\n    }\n    if (isElement(elements.domReference)) {\n      var _elements$floating;\n      const ref = elements.domReference;\n      open && ref.addEventListener('mouseleave', onScrollMouseLeave);\n      (_elements$floating = elements.floating) == null || _elements$floating.addEventListener('mouseleave', onScrollMouseLeave);\n      move && ref.addEventListener('mousemove', onMouseEnter, {\n        once: true\n      });\n      ref.addEventListener('mouseenter', onMouseEnter);\n      ref.addEventListener('mouseleave', onMouseLeave);\n      return () => {\n        var _elements$floating2;\n        open && ref.removeEventListener('mouseleave', onScrollMouseLeave);\n        (_elements$floating2 = elements.floating) == null || _elements$floating2.removeEventListener('mouseleave', onScrollMouseLeave);\n        move && ref.removeEventListener('mousemove', onMouseEnter);\n        ref.removeEventListener('mouseenter', onMouseEnter);\n        ref.removeEventListener('mouseleave', onMouseLeave);\n      };\n    }\n  }, [elements, enabled, context, mouseOnly, restMs, move, closeWithDelay, cleanupMouseMoveHandler, clearPointerEvents, onOpenChange, open, openRef, tree, delayRef, handleCloseRef, dataRef, isClickLikeOpenEvent]);\n\n  // Block pointer-events of every element other than the reference and floating\n  // while the floating element is open and has a `handleClose` handler. Also\n  // handles nested floating elements.\n  // https://github.com/floating-ui/floating-ui/issues/1722\n  index(() => {\n    var _handleCloseRef$curre;\n    if (!enabled) return;\n    if (open && (_handleCloseRef$curre = handleCloseRef.current) != null && _handleCloseRef$curre.__options.blockPointerEvents && isHoverOpen()) {\n      performedPointerEventsMutationRef.current = true;\n      const floatingEl = elements.floating;\n      if (isElement(elements.domReference) && floatingEl) {\n        var _tree$nodesRef$curren;\n        const body = getDocument(elements.floating).body;\n        body.setAttribute(safePolygonIdentifier, '');\n        const ref = elements.domReference;\n        const parentFloating = tree == null || (_tree$nodesRef$curren = tree.nodesRef.current.find(node => node.id === parentId)) == null || (_tree$nodesRef$curren = _tree$nodesRef$curren.context) == null ? void 0 : _tree$nodesRef$curren.elements.floating;\n        if (parentFloating) {\n          parentFloating.style.pointerEvents = '';\n        }\n        body.style.pointerEvents = 'none';\n        ref.style.pointerEvents = 'auto';\n        floatingEl.style.pointerEvents = 'auto';\n        return () => {\n          body.style.pointerEvents = '';\n          ref.style.pointerEvents = '';\n          floatingEl.style.pointerEvents = '';\n        };\n      }\n    }\n  }, [enabled, open, parentId, elements, tree, handleCloseRef, isHoverOpen]);\n  index(() => {\n    if (!open) {\n      pointerTypeRef.current = undefined;\n      restTimeoutPendingRef.current = false;\n      cleanupMouseMoveHandler();\n      clearPointerEvents();\n    }\n  }, [open, cleanupMouseMoveHandler, clearPointerEvents]);\n  React.useEffect(() => {\n    return () => {\n      cleanupMouseMoveHandler();\n      clearTimeout(timeoutRef.current);\n      clearTimeout(restTimeoutRef.current);\n      clearPointerEvents();\n    };\n  }, [enabled, elements.domReference, cleanupMouseMoveHandler, clearPointerEvents]);\n  const reference = React.useMemo(() => {\n    function setPointerRef(event) {\n      pointerTypeRef.current = event.pointerType;\n    }\n    return {\n      onPointerDown: setPointerRef,\n      onPointerEnter: setPointerRef,\n      onMouseMove(event) {\n        const {\n          nativeEvent\n        } = event;\n        function handleMouseMove() {\n          if (!blockMouseMoveRef.current && !openRef.current) {\n            onOpenChange(true, nativeEvent, 'hover');\n          }\n        }\n        if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current)) {\n          return;\n        }\n        if (open || restMs === 0) {\n          return;\n        }\n\n        // Ignore insignificant movements to account for tremors.\n        if (restTimeoutPendingRef.current && event.movementX ** 2 + event.movementY ** 2 < 2) {\n          return;\n        }\n        clearTimeout(restTimeoutRef.current);\n        if (pointerTypeRef.current === 'touch') {\n          handleMouseMove();\n        } else {\n          restTimeoutPendingRef.current = true;\n          restTimeoutRef.current = window.setTimeout(handleMouseMove, restMs);\n        }\n      }\n    };\n  }, [mouseOnly, onOpenChange, open, openRef, restMs]);\n  const floating = React.useMemo(() => ({\n    onMouseEnter() {\n      clearTimeout(timeoutRef.current);\n    },\n    onMouseLeave(event) {\n      if (!isClickLikeOpenEvent()) {\n        closeWithDelay(event.nativeEvent, false);\n      }\n    }\n  }), [closeWithDelay, isClickLikeOpenEvent]);\n  return React.useMemo(() => enabled ? {\n    reference,\n    floating\n  } : {}, [enabled, reference, floating]);\n}\n\nconst NOOP = () => {};\nconst FloatingDelayGroupContext = /*#__PURE__*/React.createContext({\n  delay: 0,\n  initialDelay: 0,\n  timeoutMs: 0,\n  currentId: null,\n  setCurrentId: NOOP,\n  setState: NOOP,\n  isInstantPhase: false\n});\n\n/**\n * @deprecated\n * Use the return value of `useDelayGroup()` instead.\n */\nconst useDelayGroupContext = () => React.useContext(FloatingDelayGroupContext);\n/**\n * Provides context for a group of floating elements that should share a\n * `delay`.\n * @see https://floating-ui.com/docs/FloatingDelayGroup\n */\nfunction FloatingDelayGroup(props) {\n  const {\n    children,\n    delay,\n    timeoutMs = 0\n  } = props;\n  const [state, setState] = React.useReducer((prev, next) => ({\n    ...prev,\n    ...next\n  }), {\n    delay,\n    timeoutMs,\n    initialDelay: delay,\n    currentId: null,\n    isInstantPhase: false\n  });\n  const initialCurrentIdRef = React.useRef(null);\n  const setCurrentId = React.useCallback(currentId => {\n    setState({\n      currentId\n    });\n  }, []);\n  index(() => {\n    if (state.currentId) {\n      if (initialCurrentIdRef.current === null) {\n        initialCurrentIdRef.current = state.currentId;\n      } else if (!state.isInstantPhase) {\n        setState({\n          isInstantPhase: true\n        });\n      }\n    } else {\n      if (state.isInstantPhase) {\n        setState({\n          isInstantPhase: false\n        });\n      }\n      initialCurrentIdRef.current = null;\n    }\n  }, [state.currentId, state.isInstantPhase]);\n  return /*#__PURE__*/React.createElement(FloatingDelayGroupContext.Provider, {\n    value: React.useMemo(() => ({\n      ...state,\n      setState,\n      setCurrentId\n    }), [state, setCurrentId])\n  }, children);\n}\n/**\n * Enables grouping when called inside a component that's a child of a\n * `FloatingDelayGroup`.\n * @see https://floating-ui.com/docs/FloatingDelayGroup\n */\nfunction useDelayGroup(context, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    open,\n    onOpenChange,\n    floatingId\n  } = context;\n  const {\n    id: optionId,\n    enabled = true\n  } = options;\n  const id = optionId != null ? optionId : floatingId;\n  const groupContext = useDelayGroupContext();\n  const {\n    currentId,\n    setCurrentId,\n    initialDelay,\n    setState,\n    timeoutMs\n  } = groupContext;\n  index(() => {\n    if (!enabled) return;\n    if (!currentId) return;\n    setState({\n      delay: {\n        open: 1,\n        close: getDelay(initialDelay, 'close')\n      }\n    });\n    if (currentId !== id) {\n      onOpenChange(false);\n    }\n  }, [enabled, id, onOpenChange, setState, currentId, initialDelay]);\n  index(() => {\n    function unset() {\n      onOpenChange(false);\n      setState({\n        delay: initialDelay,\n        currentId: null\n      });\n    }\n    if (!enabled) return;\n    if (!currentId) return;\n    if (!open && currentId === id) {\n      if (timeoutMs) {\n        const timeout = window.setTimeout(unset, timeoutMs);\n        return () => {\n          clearTimeout(timeout);\n        };\n      }\n      unset();\n    }\n  }, [enabled, open, setState, currentId, id, onOpenChange, initialDelay, timeoutMs]);\n  index(() => {\n    if (!enabled) return;\n    if (setCurrentId === NOOP || !open) return;\n    setCurrentId(id);\n  }, [enabled, open, setCurrentId, id]);\n  return groupContext;\n}\n\nlet rafId = 0;\nfunction enqueueFocus(el, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    preventScroll = false,\n    cancelPrevious = true,\n    sync = false\n  } = options;\n  cancelPrevious && cancelAnimationFrame(rafId);\n  const exec = () => el == null ? void 0 : el.focus({\n    preventScroll\n  });\n  if (sync) {\n    exec();\n  } else {\n    rafId = requestAnimationFrame(exec);\n  }\n}\n\nfunction getAncestors(nodes, id) {\n  var _nodes$find;\n  let allAncestors = [];\n  let currentParentId = (_nodes$find = nodes.find(node => node.id === id)) == null ? void 0 : _nodes$find.parentId;\n  while (currentParentId) {\n    const currentNode = nodes.find(node => node.id === currentParentId);\n    currentParentId = currentNode == null ? void 0 : currentNode.parentId;\n    if (currentNode) {\n      allAncestors = allAncestors.concat(currentNode);\n    }\n  }\n  return allAncestors;\n}\n\nfunction getChildren(nodes, id) {\n  let allChildren = nodes.filter(node => {\n    var _node$context;\n    return node.parentId === id && ((_node$context = node.context) == null ? void 0 : _node$context.open);\n  });\n  let currentChildren = allChildren;\n  while (currentChildren.length) {\n    currentChildren = nodes.filter(node => {\n      var _currentChildren;\n      return (_currentChildren = currentChildren) == null ? void 0 : _currentChildren.some(n => {\n        var _node$context2;\n        return node.parentId === n.id && ((_node$context2 = node.context) == null ? void 0 : _node$context2.open);\n      });\n    });\n    allChildren = allChildren.concat(currentChildren);\n  }\n  return allChildren;\n}\nfunction getDeepestNode(nodes, id) {\n  let deepestNodeId;\n  let maxDepth = -1;\n  function findDeepest(nodeId, depth) {\n    if (depth > maxDepth) {\n      deepestNodeId = nodeId;\n      maxDepth = depth;\n    }\n    const children = getChildren(nodes, nodeId);\n    children.forEach(child => {\n      findDeepest(child.id, depth + 1);\n    });\n  }\n  findDeepest(id, 0);\n  return nodes.find(node => node.id === deepestNodeId);\n}\n\n// Modified to add conditional `aria-hidden` support:\n// https://github.com/theKashey/aria-hidden/blob/9220c8f4a4fd35f63bee5510a9f41a37264382d4/src/index.ts\nlet counterMap = /*#__PURE__*/new WeakMap();\nlet uncontrolledElementsSet = /*#__PURE__*/new WeakSet();\nlet markerMap = {};\nlet lockCount$1 = 0;\nconst supportsInert = () => typeof HTMLElement !== 'undefined' && 'inert' in HTMLElement.prototype;\nconst unwrapHost = node => node && (node.host || unwrapHost(node.parentNode));\nconst correctElements = (parent, targets) => targets.map(target => {\n  if (parent.contains(target)) {\n    return target;\n  }\n  const correctedTarget = unwrapHost(target);\n  if (parent.contains(correctedTarget)) {\n    return correctedTarget;\n  }\n  return null;\n}).filter(x => x != null);\nfunction applyAttributeToOthers(uncorrectedAvoidElements, body, ariaHidden, inert) {\n  const markerName = 'data-floating-ui-inert';\n  const controlAttribute = inert ? 'inert' : ariaHidden ? 'aria-hidden' : null;\n  const avoidElements = correctElements(body, uncorrectedAvoidElements);\n  const elementsToKeep = new Set();\n  const elementsToStop = new Set(avoidElements);\n  const hiddenElements = [];\n  if (!markerMap[markerName]) {\n    markerMap[markerName] = new WeakMap();\n  }\n  const markerCounter = markerMap[markerName];\n  avoidElements.forEach(keep);\n  deep(body);\n  elementsToKeep.clear();\n  function keep(el) {\n    if (!el || elementsToKeep.has(el)) {\n      return;\n    }\n    elementsToKeep.add(el);\n    el.parentNode && keep(el.parentNode);\n  }\n  function deep(parent) {\n    if (!parent || elementsToStop.has(parent)) {\n      return;\n    }\n    [].forEach.call(parent.children, node => {\n      if (getNodeName(node) === 'script') return;\n      if (elementsToKeep.has(node)) {\n        deep(node);\n      } else {\n        const attr = controlAttribute ? node.getAttribute(controlAttribute) : null;\n        const alreadyHidden = attr !== null && attr !== 'false';\n        const counterValue = (counterMap.get(node) || 0) + 1;\n        const markerValue = (markerCounter.get(node) || 0) + 1;\n        counterMap.set(node, counterValue);\n        markerCounter.set(node, markerValue);\n        hiddenElements.push(node);\n        if (counterValue === 1 && alreadyHidden) {\n          uncontrolledElementsSet.add(node);\n        }\n        if (markerValue === 1) {\n          node.setAttribute(markerName, '');\n        }\n        if (!alreadyHidden && controlAttribute) {\n          node.setAttribute(controlAttribute, 'true');\n        }\n      }\n    });\n  }\n  lockCount$1++;\n  return () => {\n    hiddenElements.forEach(element => {\n      const counterValue = (counterMap.get(element) || 0) - 1;\n      const markerValue = (markerCounter.get(element) || 0) - 1;\n      counterMap.set(element, counterValue);\n      markerCounter.set(element, markerValue);\n      if (!counterValue) {\n        if (!uncontrolledElementsSet.has(element) && controlAttribute) {\n          element.removeAttribute(controlAttribute);\n        }\n        uncontrolledElementsSet.delete(element);\n      }\n      if (!markerValue) {\n        element.removeAttribute(markerName);\n      }\n    });\n    lockCount$1--;\n    if (!lockCount$1) {\n      counterMap = new WeakMap();\n      counterMap = new WeakMap();\n      uncontrolledElementsSet = new WeakSet();\n      markerMap = {};\n    }\n  };\n}\nfunction markOthers(avoidElements, ariaHidden, inert) {\n  if (ariaHidden === void 0) {\n    ariaHidden = false;\n  }\n  if (inert === void 0) {\n    inert = false;\n  }\n  const body = getDocument(avoidElements[0]).body;\n  return applyAttributeToOthers(avoidElements.concat(Array.from(body.querySelectorAll('[aria-live]'))), body, ariaHidden, inert);\n}\n\nconst getTabbableOptions = () => ({\n  getShadowRoot: true,\n  displayCheck:\n  // JSDOM does not support the `tabbable` library. To solve this we can\n  // check if `ResizeObserver` is a real function (not polyfilled), which\n  // determines if the current environment is JSDOM-like.\n  typeof ResizeObserver === 'function' && ResizeObserver.toString().includes('[native code]') ? 'full' : 'none'\n});\nfunction getTabbableIn(container, direction) {\n  const allTabbable = tabbable(container, getTabbableOptions());\n  if (direction === 'prev') {\n    allTabbable.reverse();\n  }\n  const activeIndex = allTabbable.indexOf(activeElement(getDocument(container)));\n  const nextTabbableElements = allTabbable.slice(activeIndex + 1);\n  return nextTabbableElements[0];\n}\nfunction getNextTabbable() {\n  return getTabbableIn(document.body, 'next');\n}\nfunction getPreviousTabbable() {\n  return getTabbableIn(document.body, 'prev');\n}\nfunction isOutsideEvent(event, container) {\n  const containerElement = container || event.currentTarget;\n  const relatedTarget = event.relatedTarget;\n  return !relatedTarget || !contains(containerElement, relatedTarget);\n}\nfunction disableFocusInside(container) {\n  const tabbableElements = tabbable(container, getTabbableOptions());\n  tabbableElements.forEach(element => {\n    element.dataset.tabindex = element.getAttribute('tabindex') || '';\n    element.setAttribute('tabindex', '-1');\n  });\n}\nfunction enableFocusInside(container) {\n  const elements = container.querySelectorAll('[data-tabindex]');\n  elements.forEach(element => {\n    const tabindex = element.dataset.tabindex;\n    delete element.dataset.tabindex;\n    if (tabindex) {\n      element.setAttribute('tabindex', tabindex);\n    } else {\n      element.removeAttribute('tabindex');\n    }\n  });\n}\n\n// See Diego Haz's Sandbox for making this logic work well on Safari/iOS:\n// https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/FocusTrap.tsx\n\nconst HIDDEN_STYLES = {\n  border: 0,\n  clip: 'rect(0 0 0 0)',\n  height: '1px',\n  margin: '-1px',\n  overflow: 'hidden',\n  padding: 0,\n  position: 'fixed',\n  whiteSpace: 'nowrap',\n  width: '1px',\n  top: 0,\n  left: 0\n};\nlet timeoutId;\nfunction setActiveElementOnTab(event) {\n  if (event.key === 'Tab') {\n    event.target;\n    clearTimeout(timeoutId);\n  }\n}\nconst FocusGuard = /*#__PURE__*/React.forwardRef(function FocusGuard(props, ref) {\n  const [role, setRole] = React.useState();\n  index(() => {\n    if (isSafari()) {\n      // Unlike other screen readers such as NVDA and JAWS, the virtual cursor\n      // on VoiceOver does trigger the onFocus event, so we can use the focus\n      // trap element. On Safari, only buttons trigger the onFocus event.\n      // NB: \"group\" role in the Sandbox no longer appears to work, must be a\n      // button role.\n      setRole('button');\n    }\n    document.addEventListener('keydown', setActiveElementOnTab);\n    return () => {\n      document.removeEventListener('keydown', setActiveElementOnTab);\n    };\n  }, []);\n  const restProps = {\n    ref,\n    tabIndex: 0,\n    // Role is only for VoiceOver\n    role,\n    'aria-hidden': role ? undefined : true,\n    [createAttribute('focus-guard')]: '',\n    style: HIDDEN_STYLES\n  };\n  return /*#__PURE__*/React.createElement(\"span\", _extends({}, props, restProps));\n});\n\nconst PortalContext = /*#__PURE__*/React.createContext(null);\nconst attr = /*#__PURE__*/createAttribute('portal');\n/**\n * @see https://floating-ui.com/docs/FloatingPortal#usefloatingportalnode\n */\nfunction useFloatingPortalNode(props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    id,\n    root\n  } = props;\n  const uniqueId = useId();\n  const portalContext = usePortalContext();\n  const [portalNode, setPortalNode] = React.useState(null);\n  const portalNodeRef = React.useRef(null);\n  index(() => {\n    return () => {\n      portalNode == null || portalNode.remove();\n      // Allow the subsequent layout effects to create a new node on updates.\n      // The portal node will still be cleaned up on unmount.\n      // https://github.com/floating-ui/floating-ui/issues/2454\n      queueMicrotask(() => {\n        portalNodeRef.current = null;\n      });\n    };\n  }, [portalNode]);\n  index(() => {\n    // Wait for the uniqueId to be generated before creating the portal node in\n    // React <18 (using `useFloatingId` instead of the native `useId`).\n    // https://github.com/floating-ui/floating-ui/issues/2778\n    if (!uniqueId) return;\n    if (portalNodeRef.current) return;\n    const existingIdRoot = id ? document.getElementById(id) : null;\n    if (!existingIdRoot) return;\n    const subRoot = document.createElement('div');\n    subRoot.id = uniqueId;\n    subRoot.setAttribute(attr, '');\n    existingIdRoot.appendChild(subRoot);\n    portalNodeRef.current = subRoot;\n    setPortalNode(subRoot);\n  }, [id, uniqueId]);\n  index(() => {\n    // Wait for the root to exist before creating the portal node. The root must\n    // be stored in state, not a ref, for this to work reactively.\n    if (root === null) return;\n    if (!uniqueId) return;\n    if (portalNodeRef.current) return;\n    let container = root || (portalContext == null ? void 0 : portalContext.portalNode);\n    if (container && !isElement(container)) container = container.current;\n    container = container || document.body;\n    let idWrapper = null;\n    if (id) {\n      idWrapper = document.createElement('div');\n      idWrapper.id = id;\n      container.appendChild(idWrapper);\n    }\n    const subRoot = document.createElement('div');\n    subRoot.id = uniqueId;\n    subRoot.setAttribute(attr, '');\n    container = idWrapper || container;\n    container.appendChild(subRoot);\n    portalNodeRef.current = subRoot;\n    setPortalNode(subRoot);\n  }, [id, root, uniqueId, portalContext]);\n  return portalNode;\n}\n/**\n * Portals the floating element into a given container element — by default,\n * outside of the app root and into the body.\n * This is necessary to ensure the floating element can appear outside any\n * potential parent containers that cause clipping (such as `overflow: hidden`),\n * while retaining its location in the React tree.\n * @see https://floating-ui.com/docs/FloatingPortal\n */\nfunction FloatingPortal(props) {\n  const {\n    children,\n    id,\n    root,\n    preserveTabOrder = true\n  } = props;\n  const portalNode = useFloatingPortalNode({\n    id,\n    root\n  });\n  const [focusManagerState, setFocusManagerState] = React.useState(null);\n  const beforeOutsideRef = React.useRef(null);\n  const afterOutsideRef = React.useRef(null);\n  const beforeInsideRef = React.useRef(null);\n  const afterInsideRef = React.useRef(null);\n  const modal = focusManagerState == null ? void 0 : focusManagerState.modal;\n  const open = focusManagerState == null ? void 0 : focusManagerState.open;\n  const shouldRenderGuards =\n  // The FocusManager and therefore floating element are currently open/\n  // rendered.\n  !!focusManagerState &&\n  // Guards are only for non-modal focus management.\n  !focusManagerState.modal &&\n  // Don't render if unmount is transitioning.\n  focusManagerState.open && preserveTabOrder && !!(root || portalNode);\n\n  // https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/TabbablePortal.tsx\n  React.useEffect(() => {\n    if (!portalNode || !preserveTabOrder || modal) {\n      return;\n    }\n\n    // Make sure elements inside the portal element are tabbable only when the\n    // portal has already been focused, either by tabbing into a focus trap\n    // element outside or using the mouse.\n    function onFocus(event) {\n      if (portalNode && isOutsideEvent(event)) {\n        const focusing = event.type === 'focusin';\n        const manageFocus = focusing ? enableFocusInside : disableFocusInside;\n        manageFocus(portalNode);\n      }\n    }\n    // Listen to the event on the capture phase so they run before the focus\n    // trap elements onFocus prop is called.\n    portalNode.addEventListener('focusin', onFocus, true);\n    portalNode.addEventListener('focusout', onFocus, true);\n    return () => {\n      portalNode.removeEventListener('focusin', onFocus, true);\n      portalNode.removeEventListener('focusout', onFocus, true);\n    };\n  }, [portalNode, preserveTabOrder, modal]);\n  React.useEffect(() => {\n    if (!portalNode) return;\n    if (open) return;\n    enableFocusInside(portalNode);\n  }, [open, portalNode]);\n  return /*#__PURE__*/React.createElement(PortalContext.Provider, {\n    value: React.useMemo(() => ({\n      preserveTabOrder,\n      beforeOutsideRef,\n      afterOutsideRef,\n      beforeInsideRef,\n      afterInsideRef,\n      portalNode,\n      setFocusManagerState\n    }), [preserveTabOrder, portalNode])\n  }, shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n    \"data-type\": \"outside\",\n    ref: beforeOutsideRef,\n    onFocus: event => {\n      if (isOutsideEvent(event, portalNode)) {\n        var _beforeInsideRef$curr;\n        (_beforeInsideRef$curr = beforeInsideRef.current) == null || _beforeInsideRef$curr.focus();\n      } else {\n        const prevTabbable = getPreviousTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n        prevTabbable == null || prevTabbable.focus();\n      }\n    }\n  }), shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(\"span\", {\n    \"aria-owns\": portalNode.id,\n    style: HIDDEN_STYLES\n  }), portalNode && /*#__PURE__*/ReactDOM.createPortal(children, portalNode), shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n    \"data-type\": \"outside\",\n    ref: afterOutsideRef,\n    onFocus: event => {\n      if (isOutsideEvent(event, portalNode)) {\n        var _afterInsideRef$curre;\n        (_afterInsideRef$curre = afterInsideRef.current) == null || _afterInsideRef$curre.focus();\n      } else {\n        const nextTabbable = getNextTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n        nextTabbable == null || nextTabbable.focus();\n        (focusManagerState == null ? void 0 : focusManagerState.closeOnFocusOut) && (focusManagerState == null ? void 0 : focusManagerState.onOpenChange(false, event.nativeEvent, 'focus-out'));\n      }\n    }\n  }));\n}\nconst usePortalContext = () => React.useContext(PortalContext);\n\nconst FOCUSABLE_ATTRIBUTE = 'data-floating-ui-focusable';\nfunction getFloatingFocusElement(floatingElement) {\n  if (!floatingElement) {\n    return null;\n  }\n  // Try to find the element that has `{...getFloatingProps()}` spread on it.\n  // This indicates the floating element is acting as a positioning wrapper, and\n  // so focus should be managed on the child element with the event handlers and\n  // aria props.\n  return floatingElement.hasAttribute(FOCUSABLE_ATTRIBUTE) ? floatingElement : floatingElement.querySelector(\"[\" + FOCUSABLE_ATTRIBUTE + \"]\") || floatingElement;\n}\n\nconst LIST_LIMIT = 20;\nlet previouslyFocusedElements = [];\nfunction addPreviouslyFocusedElement(element) {\n  previouslyFocusedElements = previouslyFocusedElements.filter(el => el.isConnected);\n  let tabbableEl = element;\n  if (!tabbableEl || getNodeName(tabbableEl) === 'body') return;\n  if (!isTabbable(tabbableEl, getTabbableOptions())) {\n    const tabbableChild = tabbable(tabbableEl, getTabbableOptions())[0];\n    if (tabbableChild) {\n      tabbableEl = tabbableChild;\n    }\n  }\n  previouslyFocusedElements.push(tabbableEl);\n  if (previouslyFocusedElements.length > LIST_LIMIT) {\n    previouslyFocusedElements = previouslyFocusedElements.slice(-LIST_LIMIT);\n  }\n}\nfunction getPreviouslyFocusedElement() {\n  return previouslyFocusedElements.slice().reverse().find(el => el.isConnected);\n}\nconst VisuallyHiddenDismiss = /*#__PURE__*/React.forwardRef(function VisuallyHiddenDismiss(props, ref) {\n  return /*#__PURE__*/React.createElement(\"button\", _extends({}, props, {\n    type: \"button\",\n    ref: ref,\n    tabIndex: -1,\n    style: HIDDEN_STYLES\n  }));\n});\n/**\n * Provides focus management for the floating element.\n * @see https://floating-ui.com/docs/FloatingFocusManager\n */\nfunction FloatingFocusManager(props) {\n  const {\n    context,\n    children,\n    disabled = false,\n    order = ['content'],\n    guards: _guards = true,\n    initialFocus = 0,\n    returnFocus = true,\n    restoreFocus = false,\n    modal = true,\n    visuallyHiddenDismiss = false,\n    closeOnFocusOut = true\n  } = props;\n  const {\n    open,\n    refs,\n    nodeId,\n    onOpenChange,\n    events,\n    dataRef,\n    floatingId,\n    elements: {\n      domReference,\n      floating\n    }\n  } = context;\n  const ignoreInitialFocus = typeof initialFocus === 'number' && initialFocus < 0;\n  // If the reference is a combobox and is typeable (e.g. input/textarea),\n  // there are different focus semantics. The guards should not be rendered, but\n  // aria-hidden should be applied to all nodes still. Further, the visually\n  // hidden dismiss button should only appear at the end of the list, not the\n  // start.\n  const isUntrappedTypeableCombobox = isTypeableCombobox(domReference) && ignoreInitialFocus;\n\n  // Force the guards to be rendered if the `inert` attribute is not supported.\n  const guards = supportsInert() ? _guards : true;\n  const orderRef = useLatestRef(order);\n  const initialFocusRef = useLatestRef(initialFocus);\n  const returnFocusRef = useLatestRef(returnFocus);\n  const tree = useFloatingTree();\n  const portalContext = usePortalContext();\n  const startDismissButtonRef = React.useRef(null);\n  const endDismissButtonRef = React.useRef(null);\n  const preventReturnFocusRef = React.useRef(false);\n  const isPointerDownRef = React.useRef(false);\n  const tabbableIndexRef = React.useRef(-1);\n  const isInsidePortal = portalContext != null;\n  const floatingFocusElement = getFloatingFocusElement(floating);\n  const getTabbableContent = useEffectEvent(function (container) {\n    if (container === void 0) {\n      container = floatingFocusElement;\n    }\n    return container ? tabbable(container, getTabbableOptions()) : [];\n  });\n  const getTabbableElements = useEffectEvent(container => {\n    const content = getTabbableContent(container);\n    return orderRef.current.map(type => {\n      if (domReference && type === 'reference') {\n        return domReference;\n      }\n      if (floatingFocusElement && type === 'floating') {\n        return floatingFocusElement;\n      }\n      return content;\n    }).filter(Boolean).flat();\n  });\n  React.useEffect(() => {\n    if (disabled) return;\n    if (!modal) return;\n    function onKeyDown(event) {\n      if (event.key === 'Tab') {\n        // The focus guards have nothing to focus, so we need to stop the event.\n        if (contains(floatingFocusElement, activeElement(getDocument(floatingFocusElement))) && getTabbableContent().length === 0 && !isUntrappedTypeableCombobox) {\n          stopEvent(event);\n        }\n        const els = getTabbableElements();\n        const target = getTarget(event);\n        if (orderRef.current[0] === 'reference' && target === domReference) {\n          stopEvent(event);\n          if (event.shiftKey) {\n            enqueueFocus(els[els.length - 1]);\n          } else {\n            enqueueFocus(els[1]);\n          }\n        }\n        if (orderRef.current[1] === 'floating' && target === floatingFocusElement && event.shiftKey) {\n          stopEvent(event);\n          enqueueFocus(els[0]);\n        }\n      }\n    }\n    const doc = getDocument(floatingFocusElement);\n    doc.addEventListener('keydown', onKeyDown);\n    return () => {\n      doc.removeEventListener('keydown', onKeyDown);\n    };\n  }, [disabled, domReference, floatingFocusElement, modal, orderRef, isUntrappedTypeableCombobox, getTabbableContent, getTabbableElements]);\n  React.useEffect(() => {\n    if (disabled) return;\n    if (!floating) return;\n    function handleFocusIn(event) {\n      const target = getTarget(event);\n      const tabbableContent = getTabbableContent();\n      const tabbableIndex = tabbableContent.indexOf(target);\n      if (tabbableIndex !== -1) {\n        tabbableIndexRef.current = tabbableIndex;\n      }\n    }\n    floating.addEventListener('focusin', handleFocusIn);\n    return () => {\n      floating.removeEventListener('focusin', handleFocusIn);\n    };\n  }, [disabled, floating, getTabbableContent]);\n  React.useEffect(() => {\n    if (disabled) return;\n    if (!closeOnFocusOut) return;\n\n    // In Safari, buttons lose focus when pressing them.\n    function handlePointerDown() {\n      isPointerDownRef.current = true;\n      setTimeout(() => {\n        isPointerDownRef.current = false;\n      });\n    }\n    function handleFocusOutside(event) {\n      const relatedTarget = event.relatedTarget;\n      queueMicrotask(() => {\n        const movedToUnrelatedNode = !(contains(domReference, relatedTarget) || contains(floating, relatedTarget) || contains(relatedTarget, floating) || contains(portalContext == null ? void 0 : portalContext.portalNode, relatedTarget) || relatedTarget != null && relatedTarget.hasAttribute(createAttribute('focus-guard')) || tree && (getChildren(tree.nodesRef.current, nodeId).find(node => {\n          var _node$context, _node$context2;\n          return contains((_node$context = node.context) == null ? void 0 : _node$context.elements.floating, relatedTarget) || contains((_node$context2 = node.context) == null ? void 0 : _node$context2.elements.domReference, relatedTarget);\n        }) || getAncestors(tree.nodesRef.current, nodeId).find(node => {\n          var _node$context3, _node$context4;\n          return ((_node$context3 = node.context) == null ? void 0 : _node$context3.elements.floating) === relatedTarget || ((_node$context4 = node.context) == null ? void 0 : _node$context4.elements.domReference) === relatedTarget;\n        })));\n\n        // Restore focus to the previous tabbable element index to prevent\n        // focus from being lost outside the floating tree.\n        if (restoreFocus && movedToUnrelatedNode && activeElement(getDocument(floatingFocusElement)) === getDocument(floatingFocusElement).body) {\n          // Let `FloatingPortal` effect knows that focus is still inside the\n          // floating tree.\n          if (isHTMLElement(floatingFocusElement)) {\n            floatingFocusElement.focus();\n          }\n          const prevTabbableIndex = tabbableIndexRef.current;\n          const tabbableContent = getTabbableContent();\n          const nodeToFocus = tabbableContent[prevTabbableIndex] || tabbableContent[tabbableContent.length - 1] || floatingFocusElement;\n          if (isHTMLElement(nodeToFocus)) {\n            nodeToFocus.focus();\n          }\n        }\n\n        // Focus did not move inside the floating tree, and there are no tabbable\n        // portal guards to handle closing.\n        if ((isUntrappedTypeableCombobox ? true : !modal) && relatedTarget && movedToUnrelatedNode && !isPointerDownRef.current &&\n        // Fix React 18 Strict Mode returnFocus due to double rendering.\n        relatedTarget !== getPreviouslyFocusedElement()) {\n          preventReturnFocusRef.current = true;\n          onOpenChange(false, event, 'focus-out');\n        }\n      });\n    }\n    if (floating && isHTMLElement(domReference)) {\n      domReference.addEventListener('focusout', handleFocusOutside);\n      domReference.addEventListener('pointerdown', handlePointerDown);\n      floating.addEventListener('focusout', handleFocusOutside);\n      return () => {\n        domReference.removeEventListener('focusout', handleFocusOutside);\n        domReference.removeEventListener('pointerdown', handlePointerDown);\n        floating.removeEventListener('focusout', handleFocusOutside);\n      };\n    }\n  }, [disabled, domReference, floating, floatingFocusElement, modal, nodeId, tree, portalContext, onOpenChange, closeOnFocusOut, restoreFocus, getTabbableContent, isUntrappedTypeableCombobox]);\n  React.useEffect(() => {\n    var _portalContext$portal;\n    if (disabled) return;\n\n    // Don't hide portals nested within the parent portal.\n    const portalNodes = Array.from((portalContext == null || (_portalContext$portal = portalContext.portalNode) == null ? void 0 : _portalContext$portal.querySelectorAll(\"[\" + createAttribute('portal') + \"]\")) || []);\n    if (floating) {\n      const insideElements = [floating, ...portalNodes, startDismissButtonRef.current, endDismissButtonRef.current, orderRef.current.includes('reference') || isUntrappedTypeableCombobox ? domReference : null].filter(x => x != null);\n      const cleanup = modal || isUntrappedTypeableCombobox ? markOthers(insideElements, guards, !guards) : markOthers(insideElements);\n      return () => {\n        cleanup();\n      };\n    }\n  }, [disabled, domReference, floating, modal, orderRef, portalContext, isUntrappedTypeableCombobox, guards]);\n  index(() => {\n    if (disabled || !isHTMLElement(floatingFocusElement)) return;\n    const doc = getDocument(floatingFocusElement);\n    const previouslyFocusedElement = activeElement(doc);\n\n    // Wait for any layout effect state setters to execute to set `tabIndex`.\n    queueMicrotask(() => {\n      const focusableElements = getTabbableElements(floatingFocusElement);\n      const initialFocusValue = initialFocusRef.current;\n      const elToFocus = (typeof initialFocusValue === 'number' ? focusableElements[initialFocusValue] : initialFocusValue.current) || floatingFocusElement;\n      const focusAlreadyInsideFloatingEl = contains(floatingFocusElement, previouslyFocusedElement);\n      if (!ignoreInitialFocus && !focusAlreadyInsideFloatingEl && open) {\n        enqueueFocus(elToFocus, {\n          preventScroll: elToFocus === floatingFocusElement\n        });\n      }\n    });\n  }, [disabled, open, floatingFocusElement, ignoreInitialFocus, getTabbableElements, initialFocusRef]);\n  index(() => {\n    if (disabled || !floatingFocusElement) return;\n    let preventReturnFocusScroll = false;\n    const doc = getDocument(floatingFocusElement);\n    const previouslyFocusedElement = activeElement(doc);\n    const contextData = dataRef.current;\n    let openEvent = contextData.openEvent;\n    addPreviouslyFocusedElement(previouslyFocusedElement);\n\n    // Dismissing via outside press should always ignore `returnFocus` to\n    // prevent unwanted scrolling.\n    function onOpenChange(_ref) {\n      let {\n        open,\n        reason,\n        event,\n        nested\n      } = _ref;\n      if (open) {\n        openEvent = event;\n      }\n      if (reason === 'escape-key' && refs.domReference.current) {\n        addPreviouslyFocusedElement(refs.domReference.current);\n      }\n      if (reason === 'hover' && event.type === 'mouseleave') {\n        preventReturnFocusRef.current = true;\n      }\n      if (reason !== 'outside-press') return;\n      if (nested) {\n        preventReturnFocusRef.current = false;\n        preventReturnFocusScroll = true;\n      } else {\n        preventReturnFocusRef.current = !(isVirtualClick(event) || isVirtualPointerEvent(event));\n      }\n    }\n    events.on('openchange', onOpenChange);\n    const fallbackEl = doc.createElement('span');\n    fallbackEl.setAttribute('tabindex', '-1');\n    fallbackEl.setAttribute('aria-hidden', 'true');\n    Object.assign(fallbackEl.style, HIDDEN_STYLES);\n    if (isInsidePortal && domReference) {\n      domReference.insertAdjacentElement('afterend', fallbackEl);\n    }\n    function getReturnElement() {\n      if (typeof returnFocusRef.current === 'boolean') {\n        return getPreviouslyFocusedElement() || fallbackEl;\n      }\n      return returnFocusRef.current.current || fallbackEl;\n    }\n    return () => {\n      events.off('openchange', onOpenChange);\n      const activeEl = activeElement(doc);\n      const isFocusInsideFloatingTree = contains(floating, activeEl) || tree && getChildren(tree.nodesRef.current, nodeId).some(node => {\n        var _node$context5;\n        return contains((_node$context5 = node.context) == null ? void 0 : _node$context5.elements.floating, activeEl);\n      });\n      const shouldFocusReference = isFocusInsideFloatingTree || openEvent && ['click', 'mousedown'].includes(openEvent.type);\n      if (shouldFocusReference && refs.domReference.current) {\n        addPreviouslyFocusedElement(refs.domReference.current);\n      }\n      const returnElement = getReturnElement();\n      queueMicrotask(() => {\n        if (\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        returnFocusRef.current && !preventReturnFocusRef.current && isHTMLElement(returnElement) && (\n        // If the focus moved somewhere else after mount, avoid returning focus\n        // since it likely entered a different element which should be\n        // respected: https://github.com/floating-ui/floating-ui/issues/2607\n        returnElement !== activeEl && activeEl !== doc.body ? isFocusInsideFloatingTree : true)) {\n          returnElement.focus({\n            preventScroll: preventReturnFocusScroll\n          });\n        }\n        fallbackEl.remove();\n      });\n    };\n  }, [disabled, floating, floatingFocusElement, returnFocusRef, dataRef, refs, events, tree, nodeId, isInsidePortal, domReference]);\n  React.useEffect(() => {\n    // The `returnFocus` cleanup behavior is inside a microtask; ensure we\n    // wait for it to complete before resetting the flag.\n    queueMicrotask(() => {\n      preventReturnFocusRef.current = false;\n    });\n  }, [disabled]);\n\n  // Synchronize the `context` & `modal` value to the FloatingPortal context.\n  // It will decide whether or not it needs to render its own guards.\n  index(() => {\n    if (disabled) return;\n    if (!portalContext) return;\n    portalContext.setFocusManagerState({\n      modal,\n      closeOnFocusOut,\n      open,\n      onOpenChange,\n      refs\n    });\n    return () => {\n      portalContext.setFocusManagerState(null);\n    };\n  }, [disabled, portalContext, modal, open, onOpenChange, refs, closeOnFocusOut]);\n  index(() => {\n    if (disabled) return;\n    if (!floatingFocusElement) return;\n    if (typeof MutationObserver !== 'function') return;\n    if (ignoreInitialFocus) return;\n    const handleMutation = () => {\n      const tabIndex = floatingFocusElement.getAttribute('tabindex');\n      const tabbableContent = getTabbableContent();\n      const activeEl = activeElement(getDocument(floating));\n      const tabbableIndex = tabbableContent.indexOf(activeEl);\n      if (tabbableIndex !== -1) {\n        tabbableIndexRef.current = tabbableIndex;\n      }\n      if (orderRef.current.includes('floating') || activeEl !== refs.domReference.current && tabbableContent.length === 0) {\n        if (tabIndex !== '0') {\n          floatingFocusElement.setAttribute('tabindex', '0');\n        }\n      } else if (tabIndex !== '-1') {\n        floatingFocusElement.setAttribute('tabindex', '-1');\n      }\n    };\n    handleMutation();\n    const observer = new MutationObserver(handleMutation);\n    observer.observe(floatingFocusElement, {\n      childList: true,\n      subtree: true,\n      attributes: true\n    });\n    return () => {\n      observer.disconnect();\n    };\n  }, [disabled, floating, floatingFocusElement, refs, orderRef, getTabbableContent, ignoreInitialFocus]);\n  function renderDismissButton(location) {\n    if (disabled || !visuallyHiddenDismiss || !modal) {\n      return null;\n    }\n    return /*#__PURE__*/React.createElement(VisuallyHiddenDismiss, {\n      ref: location === 'start' ? startDismissButtonRef : endDismissButtonRef,\n      onClick: event => onOpenChange(false, event.nativeEvent)\n    }, typeof visuallyHiddenDismiss === 'string' ? visuallyHiddenDismiss : 'Dismiss');\n  }\n  const shouldRenderGuards = !disabled && guards && (modal ? !isUntrappedTypeableCombobox : true) && (isInsidePortal || modal);\n  return /*#__PURE__*/React.createElement(React.Fragment, null, shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n    \"data-type\": \"inside\",\n    ref: portalContext == null ? void 0 : portalContext.beforeInsideRef,\n    onFocus: event => {\n      if (modal) {\n        const els = getTabbableElements();\n        enqueueFocus(order[0] === 'reference' ? els[0] : els[els.length - 1]);\n      } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n        preventReturnFocusRef.current = false;\n        if (isOutsideEvent(event, portalContext.portalNode)) {\n          const nextTabbable = getNextTabbable() || domReference;\n          nextTabbable == null || nextTabbable.focus();\n        } else {\n          var _portalContext$before;\n          (_portalContext$before = portalContext.beforeOutsideRef.current) == null || _portalContext$before.focus();\n        }\n      }\n    }\n  }), !isUntrappedTypeableCombobox && renderDismissButton('start'), children, renderDismissButton('end'), shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n    \"data-type\": \"inside\",\n    ref: portalContext == null ? void 0 : portalContext.afterInsideRef,\n    onFocus: event => {\n      if (modal) {\n        enqueueFocus(getTabbableElements()[0]);\n      } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n        if (closeOnFocusOut) {\n          preventReturnFocusRef.current = true;\n        }\n        if (isOutsideEvent(event, portalContext.portalNode)) {\n          const prevTabbable = getPreviousTabbable() || domReference;\n          prevTabbable == null || prevTabbable.focus();\n        } else {\n          var _portalContext$afterO;\n          (_portalContext$afterO = portalContext.afterOutsideRef.current) == null || _portalContext$afterO.focus();\n        }\n      }\n    }\n  }));\n}\n\nlet lockCount = 0;\nfunction enableScrollLock() {\n  const isIOS = /iP(hone|ad|od)|iOS/.test(getPlatform());\n  const bodyStyle = document.body.style;\n  // RTL <body> scrollbar\n  const scrollbarX = Math.round(document.documentElement.getBoundingClientRect().left) + document.documentElement.scrollLeft;\n  const paddingProp = scrollbarX ? 'paddingLeft' : 'paddingRight';\n  const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n  const scrollX = bodyStyle.left ? parseFloat(bodyStyle.left) : window.scrollX;\n  const scrollY = bodyStyle.top ? parseFloat(bodyStyle.top) : window.scrollY;\n  bodyStyle.overflow = 'hidden';\n  if (scrollbarWidth) {\n    bodyStyle[paddingProp] = scrollbarWidth + \"px\";\n  }\n\n  // Only iOS doesn't respect `overflow: hidden` on document.body, and this\n  // technique has fewer side effects.\n  if (isIOS) {\n    var _window$visualViewpor, _window$visualViewpor2;\n    // iOS 12 does not support `visualViewport`.\n    const offsetLeft = ((_window$visualViewpor = window.visualViewport) == null ? void 0 : _window$visualViewpor.offsetLeft) || 0;\n    const offsetTop = ((_window$visualViewpor2 = window.visualViewport) == null ? void 0 : _window$visualViewpor2.offsetTop) || 0;\n    Object.assign(bodyStyle, {\n      position: 'fixed',\n      top: -(scrollY - Math.floor(offsetTop)) + \"px\",\n      left: -(scrollX - Math.floor(offsetLeft)) + \"px\",\n      right: '0'\n    });\n  }\n  return () => {\n    Object.assign(bodyStyle, {\n      overflow: '',\n      [paddingProp]: ''\n    });\n    if (isIOS) {\n      Object.assign(bodyStyle, {\n        position: '',\n        top: '',\n        left: '',\n        right: ''\n      });\n      window.scrollTo(scrollX, scrollY);\n    }\n  };\n}\nlet cleanup = () => {};\n\n/**\n * Provides base styling for a fixed overlay element to dim content or block\n * pointer events behind a floating element.\n * It's a regular `<div>`, so it can be styled via any CSS solution you prefer.\n * @see https://floating-ui.com/docs/FloatingOverlay\n */\nconst FloatingOverlay = /*#__PURE__*/React.forwardRef(function FloatingOverlay(props, ref) {\n  const {\n    lockScroll = false,\n    ...rest\n  } = props;\n  index(() => {\n    if (!lockScroll) return;\n    lockCount++;\n    if (lockCount === 1) {\n      cleanup = enableScrollLock();\n    }\n    return () => {\n      lockCount--;\n      if (lockCount === 0) {\n        cleanup();\n      }\n    };\n  }, [lockScroll]);\n  return /*#__PURE__*/React.createElement(\"div\", _extends({\n    ref: ref\n  }, rest, {\n    style: {\n      position: 'fixed',\n      overflow: 'auto',\n      top: 0,\n      right: 0,\n      bottom: 0,\n      left: 0,\n      ...rest.style\n    }\n  }));\n});\n\nfunction isButtonTarget(event) {\n  return isHTMLElement(event.target) && event.target.tagName === 'BUTTON';\n}\nfunction isSpaceIgnored(element) {\n  return isTypeableElement(element);\n}\n/**\n * Opens or closes the floating element when clicking the reference element.\n * @see https://floating-ui.com/docs/useClick\n */\nfunction useClick(context, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    onOpenChange,\n    dataRef,\n    elements: {\n      domReference\n    }\n  } = context;\n  const {\n    enabled = true,\n    event: eventOption = 'click',\n    toggle = true,\n    ignoreMouse = false,\n    keyboardHandlers = true,\n    stickIfOpen = true\n  } = props;\n  const pointerTypeRef = React.useRef();\n  const didKeyDownRef = React.useRef(false);\n  const reference = React.useMemo(() => ({\n    onPointerDown(event) {\n      pointerTypeRef.current = event.pointerType;\n    },\n    onMouseDown(event) {\n      const pointerType = pointerTypeRef.current;\n\n      // Ignore all buttons except for the \"main\" button.\n      // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\n      if (event.button !== 0) return;\n      if (eventOption === 'click') return;\n      if (isMouseLikePointerType(pointerType, true) && ignoreMouse) return;\n      if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === 'mousedown' : true)) {\n        onOpenChange(false, event.nativeEvent, 'click');\n      } else {\n        // Prevent stealing focus from the floating element\n        event.preventDefault();\n        onOpenChange(true, event.nativeEvent, 'click');\n      }\n    },\n    onClick(event) {\n      const pointerType = pointerTypeRef.current;\n      if (eventOption === 'mousedown' && pointerTypeRef.current) {\n        pointerTypeRef.current = undefined;\n        return;\n      }\n      if (isMouseLikePointerType(pointerType, true) && ignoreMouse) return;\n      if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === 'click' : true)) {\n        onOpenChange(false, event.nativeEvent, 'click');\n      } else {\n        onOpenChange(true, event.nativeEvent, 'click');\n      }\n    },\n    onKeyDown(event) {\n      pointerTypeRef.current = undefined;\n      if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event)) {\n        return;\n      }\n      if (event.key === ' ' && !isSpaceIgnored(domReference)) {\n        // Prevent scrolling\n        event.preventDefault();\n        didKeyDownRef.current = true;\n      }\n      if (event.key === 'Enter') {\n        if (open && toggle) {\n          onOpenChange(false, event.nativeEvent, 'click');\n        } else {\n          onOpenChange(true, event.nativeEvent, 'click');\n        }\n      }\n    },\n    onKeyUp(event) {\n      if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event) || isSpaceIgnored(domReference)) {\n        return;\n      }\n      if (event.key === ' ' && didKeyDownRef.current) {\n        didKeyDownRef.current = false;\n        if (open && toggle) {\n          onOpenChange(false, event.nativeEvent, 'click');\n        } else {\n          onOpenChange(true, event.nativeEvent, 'click');\n        }\n      }\n    }\n  }), [dataRef, domReference, eventOption, ignoreMouse, keyboardHandlers, onOpenChange, open, stickIfOpen, toggle]);\n  return React.useMemo(() => enabled ? {\n    reference\n  } : {}, [enabled, reference]);\n}\n\nfunction createVirtualElement(domElement, data) {\n  let offsetX = null;\n  let offsetY = null;\n  let isAutoUpdateEvent = false;\n  return {\n    contextElement: domElement || undefined,\n    getBoundingClientRect() {\n      var _data$dataRef$current;\n      const domRect = (domElement == null ? void 0 : domElement.getBoundingClientRect()) || {\n        width: 0,\n        height: 0,\n        x: 0,\n        y: 0\n      };\n      const isXAxis = data.axis === 'x' || data.axis === 'both';\n      const isYAxis = data.axis === 'y' || data.axis === 'both';\n      const canTrackCursorOnAutoUpdate = ['mouseenter', 'mousemove'].includes(((_data$dataRef$current = data.dataRef.current.openEvent) == null ? void 0 : _data$dataRef$current.type) || '') && data.pointerType !== 'touch';\n      let width = domRect.width;\n      let height = domRect.height;\n      let x = domRect.x;\n      let y = domRect.y;\n      if (offsetX == null && data.x && isXAxis) {\n        offsetX = domRect.x - data.x;\n      }\n      if (offsetY == null && data.y && isYAxis) {\n        offsetY = domRect.y - data.y;\n      }\n      x -= offsetX || 0;\n      y -= offsetY || 0;\n      width = 0;\n      height = 0;\n      if (!isAutoUpdateEvent || canTrackCursorOnAutoUpdate) {\n        width = data.axis === 'y' ? domRect.width : 0;\n        height = data.axis === 'x' ? domRect.height : 0;\n        x = isXAxis && data.x != null ? data.x : x;\n        y = isYAxis && data.y != null ? data.y : y;\n      } else if (isAutoUpdateEvent && !canTrackCursorOnAutoUpdate) {\n        height = data.axis === 'x' ? domRect.height : height;\n        width = data.axis === 'y' ? domRect.width : width;\n      }\n      isAutoUpdateEvent = true;\n      return {\n        width,\n        height,\n        x,\n        y,\n        top: y,\n        right: x + width,\n        bottom: y + height,\n        left: x\n      };\n    }\n  };\n}\nfunction isMouseBasedEvent(event) {\n  return event != null && event.clientX != null;\n}\n/**\n * Positions the floating element relative to a client point (in the viewport),\n * such as the mouse position. By default, it follows the mouse cursor.\n * @see https://floating-ui.com/docs/useClientPoint\n */\nfunction useClientPoint(context, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    dataRef,\n    elements: {\n      floating,\n      domReference\n    },\n    refs\n  } = context;\n  const {\n    enabled = true,\n    axis = 'both',\n    x = null,\n    y = null\n  } = props;\n  const initialRef = React.useRef(false);\n  const cleanupListenerRef = React.useRef(null);\n  const [pointerType, setPointerType] = React.useState();\n  const [reactive, setReactive] = React.useState([]);\n  const setReference = useEffectEvent((x, y) => {\n    if (initialRef.current) return;\n\n    // Prevent setting if the open event was not a mouse-like one\n    // (e.g. focus to open, then hover over the reference element).\n    // Only apply if the event exists.\n    if (dataRef.current.openEvent && !isMouseBasedEvent(dataRef.current.openEvent)) {\n      return;\n    }\n    refs.setPositionReference(createVirtualElement(domReference, {\n      x,\n      y,\n      axis,\n      dataRef,\n      pointerType\n    }));\n  });\n  const handleReferenceEnterOrMove = useEffectEvent(event => {\n    if (x != null || y != null) return;\n    if (!open) {\n      setReference(event.clientX, event.clientY);\n    } else if (!cleanupListenerRef.current) {\n      // If there's no cleanup, there's no listener, but we want to ensure\n      // we add the listener if the cursor landed on the floating element and\n      // then back on the reference (i.e. it's interactive).\n      setReactive([]);\n    }\n  });\n\n  // If the pointer is a mouse-like pointer, we want to continue following the\n  // mouse even if the floating element is transitioning out. On touch\n  // devices, this is undesirable because the floating element will move to\n  // the dismissal touch point.\n  const openCheck = isMouseLikePointerType(pointerType) ? floating : open;\n  const addListener = React.useCallback(() => {\n    // Explicitly specified `x`/`y` coordinates shouldn't add a listener.\n    if (!openCheck || !enabled || x != null || y != null) return;\n    const win = getWindow(floating);\n    function handleMouseMove(event) {\n      const target = getTarget(event);\n      if (!contains(floating, target)) {\n        setReference(event.clientX, event.clientY);\n      } else {\n        win.removeEventListener('mousemove', handleMouseMove);\n        cleanupListenerRef.current = null;\n      }\n    }\n    if (!dataRef.current.openEvent || isMouseBasedEvent(dataRef.current.openEvent)) {\n      win.addEventListener('mousemove', handleMouseMove);\n      const cleanup = () => {\n        win.removeEventListener('mousemove', handleMouseMove);\n        cleanupListenerRef.current = null;\n      };\n      cleanupListenerRef.current = cleanup;\n      return cleanup;\n    }\n    refs.setPositionReference(domReference);\n  }, [openCheck, enabled, x, y, floating, dataRef, refs, domReference, setReference]);\n  React.useEffect(() => {\n    return addListener();\n  }, [addListener, reactive]);\n  React.useEffect(() => {\n    if (enabled && !floating) {\n      initialRef.current = false;\n    }\n  }, [enabled, floating]);\n  React.useEffect(() => {\n    if (!enabled && open) {\n      initialRef.current = true;\n    }\n  }, [enabled, open]);\n  index(() => {\n    if (enabled && (x != null || y != null)) {\n      initialRef.current = false;\n      setReference(x, y);\n    }\n  }, [enabled, x, y, setReference]);\n  const reference = React.useMemo(() => {\n    function setPointerTypeRef(_ref) {\n      let {\n        pointerType\n      } = _ref;\n      setPointerType(pointerType);\n    }\n    return {\n      onPointerDown: setPointerTypeRef,\n      onPointerEnter: setPointerTypeRef,\n      onMouseMove: handleReferenceEnterOrMove,\n      onMouseEnter: handleReferenceEnterOrMove\n    };\n  }, [handleReferenceEnterOrMove]);\n  return React.useMemo(() => enabled ? {\n    reference\n  } : {}, [enabled, reference]);\n}\n\nconst bubbleHandlerKeys = {\n  pointerdown: 'onPointerDown',\n  mousedown: 'onMouseDown',\n  click: 'onClick'\n};\nconst captureHandlerKeys = {\n  pointerdown: 'onPointerDownCapture',\n  mousedown: 'onMouseDownCapture',\n  click: 'onClickCapture'\n};\nconst normalizeProp = normalizable => {\n  var _normalizable$escapeK, _normalizable$outside;\n  return {\n    escapeKey: typeof normalizable === 'boolean' ? normalizable : (_normalizable$escapeK = normalizable == null ? void 0 : normalizable.escapeKey) != null ? _normalizable$escapeK : false,\n    outsidePress: typeof normalizable === 'boolean' ? normalizable : (_normalizable$outside = normalizable == null ? void 0 : normalizable.outsidePress) != null ? _normalizable$outside : true\n  };\n};\n/**\n * Closes the floating element when a dismissal is requested — by default, when\n * the user presses the `escape` key or outside of the floating element.\n * @see https://floating-ui.com/docs/useDismiss\n */\nfunction useDismiss(context, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    onOpenChange,\n    elements,\n    dataRef\n  } = context;\n  const {\n    enabled = true,\n    escapeKey = true,\n    outsidePress: unstable_outsidePress = true,\n    outsidePressEvent = 'pointerdown',\n    referencePress = false,\n    referencePressEvent = 'pointerdown',\n    ancestorScroll = false,\n    bubbles,\n    capture\n  } = props;\n  const tree = useFloatingTree();\n  const outsidePressFn = useEffectEvent(typeof unstable_outsidePress === 'function' ? unstable_outsidePress : () => false);\n  const outsidePress = typeof unstable_outsidePress === 'function' ? outsidePressFn : unstable_outsidePress;\n  const insideReactTreeRef = React.useRef(false);\n  const endedOrStartedInsideRef = React.useRef(false);\n  const {\n    escapeKey: escapeKeyBubbles,\n    outsidePress: outsidePressBubbles\n  } = normalizeProp(bubbles);\n  const {\n    escapeKey: escapeKeyCapture,\n    outsidePress: outsidePressCapture\n  } = normalizeProp(capture);\n  const isComposingRef = React.useRef(false);\n  const closeOnEscapeKeyDown = useEffectEvent(event => {\n    var _dataRef$current$floa;\n    if (!open || !enabled || !escapeKey || event.key !== 'Escape') {\n      return;\n    }\n\n    // Wait until IME is settled. Pressing `Escape` while composing should\n    // close the compose menu, but not the floating element.\n    if (isComposingRef.current) {\n      return;\n    }\n    const nodeId = (_dataRef$current$floa = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa.nodeId;\n    const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n    if (!escapeKeyBubbles) {\n      event.stopPropagation();\n      if (children.length > 0) {\n        let shouldDismiss = true;\n        children.forEach(child => {\n          var _child$context;\n          if ((_child$context = child.context) != null && _child$context.open && !child.context.dataRef.current.__escapeKeyBubbles) {\n            shouldDismiss = false;\n            return;\n          }\n        });\n        if (!shouldDismiss) {\n          return;\n        }\n      }\n    }\n    onOpenChange(false, isReactEvent(event) ? event.nativeEvent : event, 'escape-key');\n  });\n  const closeOnEscapeKeyDownCapture = useEffectEvent(event => {\n    var _getTarget2;\n    const callback = () => {\n      var _getTarget;\n      closeOnEscapeKeyDown(event);\n      (_getTarget = getTarget(event)) == null || _getTarget.removeEventListener('keydown', callback);\n    };\n    (_getTarget2 = getTarget(event)) == null || _getTarget2.addEventListener('keydown', callback);\n  });\n  const closeOnPressOutside = useEffectEvent(event => {\n    var _dataRef$current$floa2;\n    // Given developers can stop the propagation of the synthetic event,\n    // we can only be confident with a positive value.\n    const insideReactTree = insideReactTreeRef.current;\n    insideReactTreeRef.current = false;\n\n    // When click outside is lazy (`click` event), handle dragging.\n    // Don't close if:\n    // - The click started inside the floating element.\n    // - The click ended inside the floating element.\n    const endedOrStartedInside = endedOrStartedInsideRef.current;\n    endedOrStartedInsideRef.current = false;\n    if (outsidePressEvent === 'click' && endedOrStartedInside) {\n      return;\n    }\n    if (insideReactTree) {\n      return;\n    }\n    if (typeof outsidePress === 'function' && !outsidePress(event)) {\n      return;\n    }\n    const target = getTarget(event);\n    const inertSelector = \"[\" + createAttribute('inert') + \"]\";\n    const markers = getDocument(elements.floating).querySelectorAll(inertSelector);\n    let targetRootAncestor = isElement(target) ? target : null;\n    while (targetRootAncestor && !isLastTraversableNode(targetRootAncestor)) {\n      const nextParent = getParentNode(targetRootAncestor);\n      if (isLastTraversableNode(nextParent) || !isElement(nextParent)) {\n        break;\n      }\n      targetRootAncestor = nextParent;\n    }\n\n    // Check if the click occurred on a third-party element injected after the\n    // floating element rendered.\n    if (markers.length && isElement(target) && !isRootElement(target) &&\n    // Clicked on a direct ancestor (e.g. FloatingOverlay).\n    !contains(target, elements.floating) &&\n    // If the target root element contains none of the markers, then the\n    // element was injected after the floating element rendered.\n    Array.from(markers).every(marker => !contains(targetRootAncestor, marker))) {\n      return;\n    }\n\n    // Check if the click occurred on the scrollbar\n    if (isHTMLElement(target) && floating) {\n      // In Firefox, `target.scrollWidth > target.clientWidth` for inline\n      // elements.\n      const canScrollX = target.clientWidth > 0 && target.scrollWidth > target.clientWidth;\n      const canScrollY = target.clientHeight > 0 && target.scrollHeight > target.clientHeight;\n      let xCond = canScrollY && event.offsetX > target.clientWidth;\n\n      // In some browsers it is possible to change the <body> (or window)\n      // scrollbar to the left side, but is very rare and is difficult to\n      // check for. Plus, for modal dialogs with backdrops, it is more\n      // important that the backdrop is checked but not so much the window.\n      if (canScrollY) {\n        const isRTL = getComputedStyle(target).direction === 'rtl';\n        if (isRTL) {\n          xCond = event.offsetX <= target.offsetWidth - target.clientWidth;\n        }\n      }\n      if (xCond || canScrollX && event.offsetY > target.clientHeight) {\n        return;\n      }\n    }\n    const nodeId = (_dataRef$current$floa2 = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa2.nodeId;\n    const targetIsInsideChildren = tree && getChildren(tree.nodesRef.current, nodeId).some(node => {\n      var _node$context;\n      return isEventTargetWithin(event, (_node$context = node.context) == null ? void 0 : _node$context.elements.floating);\n    });\n    if (isEventTargetWithin(event, elements.floating) || isEventTargetWithin(event, elements.domReference) || targetIsInsideChildren) {\n      return;\n    }\n    const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n    if (children.length > 0) {\n      let shouldDismiss = true;\n      children.forEach(child => {\n        var _child$context2;\n        if ((_child$context2 = child.context) != null && _child$context2.open && !child.context.dataRef.current.__outsidePressBubbles) {\n          shouldDismiss = false;\n          return;\n        }\n      });\n      if (!shouldDismiss) {\n        return;\n      }\n    }\n    onOpenChange(false, event, 'outside-press');\n  });\n  const closeOnPressOutsideCapture = useEffectEvent(event => {\n    var _getTarget4;\n    const callback = () => {\n      var _getTarget3;\n      closeOnPressOutside(event);\n      (_getTarget3 = getTarget(event)) == null || _getTarget3.removeEventListener(outsidePressEvent, callback);\n    };\n    (_getTarget4 = getTarget(event)) == null || _getTarget4.addEventListener(outsidePressEvent, callback);\n  });\n  React.useEffect(() => {\n    if (!open || !enabled) {\n      return;\n    }\n    dataRef.current.__escapeKeyBubbles = escapeKeyBubbles;\n    dataRef.current.__outsidePressBubbles = outsidePressBubbles;\n    let compositionTimeout = -1;\n    function onScroll(event) {\n      onOpenChange(false, event, 'ancestor-scroll');\n    }\n    function handleCompositionStart() {\n      window.clearTimeout(compositionTimeout);\n      isComposingRef.current = true;\n    }\n    function handleCompositionEnd() {\n      // Safari fires `compositionend` before `keydown`, so we need to wait\n      // until the next tick to set `isComposing` to `false`.\n      // https://bugs.webkit.org/show_bug.cgi?id=165004\n      compositionTimeout = window.setTimeout(() => {\n        isComposingRef.current = false;\n      },\n      // 0ms or 1ms don't work in Safari. 5ms appears to consistently work.\n      // Only apply to WebKit for the test to remain 0ms.\n      isWebKit() ? 5 : 0);\n    }\n    const doc = getDocument(elements.floating);\n    if (escapeKey) {\n      doc.addEventListener('keydown', escapeKeyCapture ? closeOnEscapeKeyDownCapture : closeOnEscapeKeyDown, escapeKeyCapture);\n      doc.addEventListener('compositionstart', handleCompositionStart);\n      doc.addEventListener('compositionend', handleCompositionEnd);\n    }\n    outsidePress && doc.addEventListener(outsidePressEvent, outsidePressCapture ? closeOnPressOutsideCapture : closeOnPressOutside, outsidePressCapture);\n    let ancestors = [];\n    if (ancestorScroll) {\n      if (isElement(elements.domReference)) {\n        ancestors = getOverflowAncestors(elements.domReference);\n      }\n      if (isElement(elements.floating)) {\n        ancestors = ancestors.concat(getOverflowAncestors(elements.floating));\n      }\n      if (!isElement(elements.reference) && elements.reference && elements.reference.contextElement) {\n        ancestors = ancestors.concat(getOverflowAncestors(elements.reference.contextElement));\n      }\n    }\n\n    // Ignore the visual viewport for scrolling dismissal (allow pinch-zoom)\n    ancestors = ancestors.filter(ancestor => {\n      var _doc$defaultView;\n      return ancestor !== ((_doc$defaultView = doc.defaultView) == null ? void 0 : _doc$defaultView.visualViewport);\n    });\n    ancestors.forEach(ancestor => {\n      ancestor.addEventListener('scroll', onScroll, {\n        passive: true\n      });\n    });\n    return () => {\n      if (escapeKey) {\n        doc.removeEventListener('keydown', escapeKeyCapture ? closeOnEscapeKeyDownCapture : closeOnEscapeKeyDown, escapeKeyCapture);\n        doc.removeEventListener('compositionstart', handleCompositionStart);\n        doc.removeEventListener('compositionend', handleCompositionEnd);\n      }\n      outsidePress && doc.removeEventListener(outsidePressEvent, outsidePressCapture ? closeOnPressOutsideCapture : closeOnPressOutside, outsidePressCapture);\n      ancestors.forEach(ancestor => {\n        ancestor.removeEventListener('scroll', onScroll);\n      });\n      window.clearTimeout(compositionTimeout);\n    };\n  }, [dataRef, elements, escapeKey, outsidePress, outsidePressEvent, open, onOpenChange, ancestorScroll, enabled, escapeKeyBubbles, outsidePressBubbles, closeOnEscapeKeyDown, escapeKeyCapture, closeOnEscapeKeyDownCapture, closeOnPressOutside, outsidePressCapture, closeOnPressOutsideCapture]);\n  React.useEffect(() => {\n    insideReactTreeRef.current = false;\n  }, [outsidePress, outsidePressEvent]);\n  const reference = React.useMemo(() => ({\n    onKeyDown: closeOnEscapeKeyDown,\n    [bubbleHandlerKeys[referencePressEvent]]: event => {\n      if (referencePress) {\n        onOpenChange(false, event.nativeEvent, 'reference-press');\n      }\n    }\n  }), [closeOnEscapeKeyDown, onOpenChange, referencePress, referencePressEvent]);\n  const floating = React.useMemo(() => ({\n    onKeyDown: closeOnEscapeKeyDown,\n    onMouseDown() {\n      endedOrStartedInsideRef.current = true;\n    },\n    onMouseUp() {\n      endedOrStartedInsideRef.current = true;\n    },\n    [captureHandlerKeys[outsidePressEvent]]: () => {\n      insideReactTreeRef.current = true;\n    }\n  }), [closeOnEscapeKeyDown, outsidePressEvent]);\n  return React.useMemo(() => enabled ? {\n    reference,\n    floating\n  } : {}, [enabled, reference, floating]);\n}\n\nfunction useFloatingRootContext(options) {\n  const {\n    open = false,\n    onOpenChange: onOpenChangeProp,\n    elements: elementsProp\n  } = options;\n  const floatingId = useId();\n  const dataRef = React.useRef({});\n  const [events] = React.useState(() => createPubSub());\n  const nested = useFloatingParentNodeId() != null;\n  if (process.env.NODE_ENV !== \"production\") {\n    const optionDomReference = elementsProp.reference;\n    if (optionDomReference && !isElement(optionDomReference)) {\n      error('Cannot pass a virtual element to the `elements.reference` option,', 'as it must be a real DOM element. Use `refs.setPositionReference()`', 'instead.');\n    }\n  }\n  const [positionReference, setPositionReference] = React.useState(elementsProp.reference);\n  const onOpenChange = useEffectEvent((open, event, reason) => {\n    dataRef.current.openEvent = open ? event : undefined;\n    events.emit('openchange', {\n      open,\n      event,\n      reason,\n      nested\n    });\n    onOpenChangeProp == null || onOpenChangeProp(open, event, reason);\n  });\n  const refs = React.useMemo(() => ({\n    setPositionReference\n  }), []);\n  const elements = React.useMemo(() => ({\n    reference: positionReference || elementsProp.reference || null,\n    floating: elementsProp.floating || null,\n    domReference: elementsProp.reference\n  }), [positionReference, elementsProp.reference, elementsProp.floating]);\n  return React.useMemo(() => ({\n    dataRef,\n    open,\n    onOpenChange,\n    elements,\n    events,\n    floatingId,\n    refs\n  }), [open, onOpenChange, elements, events, floatingId, refs]);\n}\n\n/**\n * Provides data to position a floating element and context to add interactions.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    nodeId\n  } = options;\n  const internalRootContext = useFloatingRootContext({\n    ...options,\n    elements: {\n      reference: null,\n      floating: null,\n      ...options.elements\n    }\n  });\n  const rootContext = options.rootContext || internalRootContext;\n  const computedElements = rootContext.elements;\n  const [_domReference, setDomReference] = React.useState(null);\n  const [positionReference, _setPositionReference] = React.useState(null);\n  const optionDomReference = computedElements == null ? void 0 : computedElements.domReference;\n  const domReference = optionDomReference || _domReference;\n  const domReferenceRef = React.useRef(null);\n  const tree = useFloatingTree();\n  index(() => {\n    if (domReference) {\n      domReferenceRef.current = domReference;\n    }\n  }, [domReference]);\n  const position = useFloating$1({\n    ...options,\n    elements: {\n      ...computedElements,\n      ...(positionReference && {\n        reference: positionReference\n      })\n    }\n  });\n  const setPositionReference = React.useCallback(node => {\n    const computedPositionReference = isElement(node) ? {\n      getBoundingClientRect: () => node.getBoundingClientRect(),\n      contextElement: node\n    } : node;\n    // Store the positionReference in state if the DOM reference is specified externally via the\n    // `elements.reference` option. This ensures that it won't be overridden on future renders.\n    _setPositionReference(computedPositionReference);\n    position.refs.setReference(computedPositionReference);\n  }, [position.refs]);\n  const setReference = React.useCallback(node => {\n    if (isElement(node) || node === null) {\n      domReferenceRef.current = node;\n      setDomReference(node);\n    }\n\n    // Backwards-compatibility for passing a virtual element to `reference`\n    // after it has set the DOM reference.\n    if (isElement(position.refs.reference.current) || position.refs.reference.current === null ||\n    // Don't allow setting virtual elements using the old technique back to\n    // `null` to support `positionReference` + an unstable `reference`\n    // callback ref.\n    node !== null && !isElement(node)) {\n      position.refs.setReference(node);\n    }\n  }, [position.refs]);\n  const refs = React.useMemo(() => ({\n    ...position.refs,\n    setReference,\n    setPositionReference,\n    domReference: domReferenceRef\n  }), [position.refs, setReference, setPositionReference]);\n  const elements = React.useMemo(() => ({\n    ...position.elements,\n    domReference: domReference\n  }), [position.elements, domReference]);\n  const context = React.useMemo(() => ({\n    ...position,\n    ...rootContext,\n    refs,\n    elements,\n    nodeId\n  }), [position, refs, elements, nodeId, rootContext]);\n  index(() => {\n    rootContext.dataRef.current.floatingContext = context;\n    const node = tree == null ? void 0 : tree.nodesRef.current.find(node => node.id === nodeId);\n    if (node) {\n      node.context = context;\n    }\n  });\n  return React.useMemo(() => ({\n    ...position,\n    context,\n    refs,\n    elements\n  }), [position, refs, elements, context]);\n}\n\n/**\n * Opens the floating element while the reference element has focus, like CSS\n * `:focus`.\n * @see https://floating-ui.com/docs/useFocus\n */\nfunction useFocus(context, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    onOpenChange,\n    events,\n    dataRef,\n    elements\n  } = context;\n  const {\n    enabled = true,\n    visibleOnly = true\n  } = props;\n  const blockFocusRef = React.useRef(false);\n  const timeoutRef = React.useRef();\n  const keyboardModalityRef = React.useRef(true);\n  React.useEffect(() => {\n    if (!enabled) return;\n    const win = getWindow(elements.domReference);\n\n    // If the reference was focused and the user left the tab/window, and the\n    // floating element was not open, the focus should be blocked when they\n    // return to the tab/window.\n    function onBlur() {\n      if (!open && isHTMLElement(elements.domReference) && elements.domReference === activeElement(getDocument(elements.domReference))) {\n        blockFocusRef.current = true;\n      }\n    }\n    function onKeyDown() {\n      keyboardModalityRef.current = true;\n    }\n    win.addEventListener('blur', onBlur);\n    win.addEventListener('keydown', onKeyDown, true);\n    return () => {\n      win.removeEventListener('blur', onBlur);\n      win.removeEventListener('keydown', onKeyDown, true);\n    };\n  }, [elements.domReference, open, enabled]);\n  React.useEffect(() => {\n    if (!enabled) return;\n    function onOpenChange(_ref) {\n      let {\n        reason\n      } = _ref;\n      if (reason === 'reference-press' || reason === 'escape-key') {\n        blockFocusRef.current = true;\n      }\n    }\n    events.on('openchange', onOpenChange);\n    return () => {\n      events.off('openchange', onOpenChange);\n    };\n  }, [events, enabled]);\n  React.useEffect(() => {\n    return () => {\n      clearTimeout(timeoutRef.current);\n    };\n  }, []);\n  const reference = React.useMemo(() => ({\n    onPointerDown(event) {\n      if (isVirtualPointerEvent(event.nativeEvent)) return;\n      keyboardModalityRef.current = false;\n    },\n    onMouseLeave() {\n      blockFocusRef.current = false;\n    },\n    onFocus(event) {\n      if (blockFocusRef.current) return;\n      const target = getTarget(event.nativeEvent);\n      if (visibleOnly && isElement(target)) {\n        try {\n          // Mac Safari unreliably matches `:focus-visible` on the reference\n          // if focus was outside the page initially - use the fallback\n          // instead.\n          if (isSafari() && isMac()) throw Error();\n          if (!target.matches(':focus-visible')) return;\n        } catch (e) {\n          // Old browsers will throw an error when using `:focus-visible`.\n          if (!keyboardModalityRef.current && !isTypeableElement(target)) {\n            return;\n          }\n        }\n      }\n      onOpenChange(true, event.nativeEvent, 'focus');\n    },\n    onBlur(event) {\n      blockFocusRef.current = false;\n      const relatedTarget = event.relatedTarget;\n      const nativeEvent = event.nativeEvent;\n\n      // Hit the non-modal focus management portal guard. Focus will be\n      // moved into the floating element immediately after.\n      const movedToFocusGuard = isElement(relatedTarget) && relatedTarget.hasAttribute(createAttribute('focus-guard')) && relatedTarget.getAttribute('data-type') === 'outside';\n\n      // Wait for the window blur listener to fire.\n      timeoutRef.current = window.setTimeout(() => {\n        var _dataRef$current$floa;\n        const activeEl = activeElement(elements.domReference ? elements.domReference.ownerDocument : document);\n\n        // Focus left the page, keep it open.\n        if (!relatedTarget && activeEl === elements.domReference) return;\n\n        // When focusing the reference element (e.g. regular click), then\n        // clicking into the floating element, prevent it from hiding.\n        // Note: it must be focusable, e.g. `tabindex=\"-1\"`.\n        // We can not rely on relatedTarget to point to the correct element\n        // as it will only point to the shadow host of the newly focused element\n        // and not the element that actually has received focus if it is located\n        // inside a shadow root.\n        if (contains((_dataRef$current$floa = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa.refs.floating.current, activeEl) || contains(elements.domReference, activeEl) || movedToFocusGuard) {\n          return;\n        }\n        onOpenChange(false, nativeEvent, 'focus');\n      });\n    }\n  }), [dataRef, elements.domReference, onOpenChange, visibleOnly]);\n  return React.useMemo(() => enabled ? {\n    reference\n  } : {}, [enabled, reference]);\n}\n\nconst ACTIVE_KEY = 'active';\nconst SELECTED_KEY = 'selected';\nfunction mergeProps(userProps, propsList, elementKey) {\n  const map = new Map();\n  const isItem = elementKey === 'item';\n  let domUserProps = userProps;\n  if (isItem && userProps) {\n    const {\n      [ACTIVE_KEY]: _,\n      [SELECTED_KEY]: __,\n      ...validProps\n    } = userProps;\n    domUserProps = validProps;\n  }\n  return {\n    ...(elementKey === 'floating' && {\n      tabIndex: -1,\n      [FOCUSABLE_ATTRIBUTE]: ''\n    }),\n    ...domUserProps,\n    ...propsList.map(value => {\n      const propsOrGetProps = value ? value[elementKey] : null;\n      if (typeof propsOrGetProps === 'function') {\n        return userProps ? propsOrGetProps(userProps) : null;\n      }\n      return propsOrGetProps;\n    }).concat(userProps).reduce((acc, props) => {\n      if (!props) {\n        return acc;\n      }\n      Object.entries(props).forEach(_ref => {\n        let [key, value] = _ref;\n        if (isItem && [ACTIVE_KEY, SELECTED_KEY].includes(key)) {\n          return;\n        }\n        if (key.indexOf('on') === 0) {\n          if (!map.has(key)) {\n            map.set(key, []);\n          }\n          if (typeof value === 'function') {\n            var _map$get;\n            (_map$get = map.get(key)) == null || _map$get.push(value);\n            acc[key] = function () {\n              var _map$get2;\n              for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n                args[_key] = arguments[_key];\n              }\n              return (_map$get2 = map.get(key)) == null ? void 0 : _map$get2.map(fn => fn(...args)).find(val => val !== undefined);\n            };\n          }\n        } else {\n          acc[key] = value;\n        }\n      });\n      return acc;\n    }, {})\n  };\n}\n/**\n * Merges an array of interaction hooks' props into prop getters, allowing\n * event handler functions to be composed together without overwriting one\n * another.\n * @see https://floating-ui.com/docs/useInteractions\n */\nfunction useInteractions(propsList) {\n  if (propsList === void 0) {\n    propsList = [];\n  }\n  const referenceDeps = propsList.map(key => key == null ? void 0 : key.reference);\n  const floatingDeps = propsList.map(key => key == null ? void 0 : key.floating);\n  const itemDeps = propsList.map(key => key == null ? void 0 : key.item);\n  const getReferenceProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'reference'),\n  // eslint-disable-next-line react-hooks/exhaustive-deps\n  referenceDeps);\n  const getFloatingProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'floating'),\n  // eslint-disable-next-line react-hooks/exhaustive-deps\n  floatingDeps);\n  const getItemProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'item'),\n  // eslint-disable-next-line react-hooks/exhaustive-deps\n  itemDeps);\n  return React.useMemo(() => ({\n    getReferenceProps,\n    getFloatingProps,\n    getItemProps\n  }), [getReferenceProps, getFloatingProps, getItemProps]);\n}\n\nlet isPreventScrollSupported = false;\nfunction doSwitch(orientation, vertical, horizontal) {\n  switch (orientation) {\n    case 'vertical':\n      return vertical;\n    case 'horizontal':\n      return horizontal;\n    default:\n      return vertical || horizontal;\n  }\n}\nfunction isMainOrientationKey(key, orientation) {\n  const vertical = key === ARROW_UP || key === ARROW_DOWN;\n  const horizontal = key === ARROW_LEFT || key === ARROW_RIGHT;\n  return doSwitch(orientation, vertical, horizontal);\n}\nfunction isMainOrientationToEndKey(key, orientation, rtl) {\n  const vertical = key === ARROW_DOWN;\n  const horizontal = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n  return doSwitch(orientation, vertical, horizontal) || key === 'Enter' || key === ' ' || key === '';\n}\nfunction isCrossOrientationOpenKey(key, orientation, rtl) {\n  const vertical = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n  const horizontal = key === ARROW_DOWN;\n  return doSwitch(orientation, vertical, horizontal);\n}\nfunction isCrossOrientationCloseKey(key, orientation, rtl) {\n  const vertical = rtl ? key === ARROW_RIGHT : key === ARROW_LEFT;\n  const horizontal = key === ARROW_UP;\n  return doSwitch(orientation, vertical, horizontal);\n}\n/**\n * Adds arrow key-based navigation of a list of items, either using real DOM\n * focus or virtual focus.\n * @see https://floating-ui.com/docs/useListNavigation\n */\nfunction useListNavigation(context, props) {\n  const {\n    open,\n    onOpenChange,\n    elements\n  } = context;\n  const {\n    listRef,\n    activeIndex,\n    onNavigate: unstable_onNavigate = () => {},\n    enabled = true,\n    selectedIndex = null,\n    allowEscape = false,\n    loop = false,\n    nested = false,\n    rtl = false,\n    virtual = false,\n    focusItemOnOpen = 'auto',\n    focusItemOnHover = true,\n    openOnArrowKeyDown = true,\n    disabledIndices = undefined,\n    orientation = 'vertical',\n    cols = 1,\n    scrollItemIntoView = true,\n    virtualItemRef,\n    itemSizes,\n    dense = false\n  } = props;\n  if (process.env.NODE_ENV !== \"production\") {\n    if (allowEscape) {\n      if (!loop) {\n        warn('`useListNavigation` looping must be enabled to allow escaping.');\n      }\n      if (!virtual) {\n        warn('`useListNavigation` must be virtual to allow escaping.');\n      }\n    }\n    if (orientation === 'vertical' && cols > 1) {\n      warn('In grid list navigation mode (`cols` > 1), the `orientation` should', 'be either \"horizontal\" or \"both\".');\n    }\n  }\n  const floatingFocusElement = getFloatingFocusElement(elements.floating);\n  const floatingFocusElementRef = useLatestRef(floatingFocusElement);\n  const parentId = useFloatingParentNodeId();\n  const tree = useFloatingTree();\n  const onNavigate = useEffectEvent(unstable_onNavigate);\n  const typeableComboboxReference = isTypeableCombobox(elements.domReference);\n  const focusItemOnOpenRef = React.useRef(focusItemOnOpen);\n  const indexRef = React.useRef(selectedIndex != null ? selectedIndex : -1);\n  const keyRef = React.useRef(null);\n  const isPointerModalityRef = React.useRef(true);\n  const previousOnNavigateRef = React.useRef(onNavigate);\n  const previousMountedRef = React.useRef(!!elements.floating);\n  const previousOpenRef = React.useRef(open);\n  const forceSyncFocus = React.useRef(false);\n  const forceScrollIntoViewRef = React.useRef(false);\n  const disabledIndicesRef = useLatestRef(disabledIndices);\n  const latestOpenRef = useLatestRef(open);\n  const scrollItemIntoViewRef = useLatestRef(scrollItemIntoView);\n  const selectedIndexRef = useLatestRef(selectedIndex);\n  const [activeId, setActiveId] = React.useState();\n  const [virtualId, setVirtualId] = React.useState();\n  const focusItem = useEffectEvent(function (listRef, indexRef, forceScrollIntoView) {\n    if (forceScrollIntoView === void 0) {\n      forceScrollIntoView = false;\n    }\n    function runFocus(item) {\n      if (virtual) {\n        setActiveId(item.id);\n        tree == null || tree.events.emit('virtualfocus', item);\n        if (virtualItemRef) {\n          virtualItemRef.current = item;\n        }\n      } else {\n        enqueueFocus(item, {\n          preventScroll: true,\n          // Mac Safari does not move the virtual cursor unless the focus call\n          // is sync. However, for the very first focus call, we need to wait\n          // for the position to be ready in order to prevent unwanted\n          // scrolling. This means the virtual cursor will not move to the first\n          // item when first opening the floating element, but will on\n          // subsequent calls. `preventScroll` is supported in modern Safari,\n          // so we can use that instead.\n          // iOS Safari must be async or the first item will not be focused.\n          sync: isMac() && isSafari() ? isPreventScrollSupported || forceSyncFocus.current : false\n        });\n      }\n    }\n    const initialItem = listRef.current[indexRef.current];\n    if (initialItem) {\n      runFocus(initialItem);\n    }\n    requestAnimationFrame(() => {\n      const waitedItem = listRef.current[indexRef.current] || initialItem;\n      if (!waitedItem) return;\n      if (!initialItem) {\n        runFocus(waitedItem);\n      }\n      const scrollIntoViewOptions = scrollItemIntoViewRef.current;\n      const shouldScrollIntoView = scrollIntoViewOptions && item && (forceScrollIntoView || !isPointerModalityRef.current);\n      if (shouldScrollIntoView) {\n        // JSDOM doesn't support `.scrollIntoView()` but it's widely supported\n        // by all browsers.\n        waitedItem.scrollIntoView == null || waitedItem.scrollIntoView(typeof scrollIntoViewOptions === 'boolean' ? {\n          block: 'nearest',\n          inline: 'nearest'\n        } : scrollIntoViewOptions);\n      }\n    });\n  });\n  index(() => {\n    document.createElement('div').focus({\n      get preventScroll() {\n        isPreventScrollSupported = true;\n        return false;\n      }\n    });\n  }, []);\n\n  // Sync `selectedIndex` to be the `activeIndex` upon opening the floating\n  // element. Also, reset `activeIndex` upon closing the floating element.\n  index(() => {\n    if (!enabled) return;\n    if (open && elements.floating) {\n      if (focusItemOnOpenRef.current && selectedIndex != null) {\n        // Regardless of the pointer modality, we want to ensure the selected\n        // item comes into view when the floating element is opened.\n        forceScrollIntoViewRef.current = true;\n        indexRef.current = selectedIndex;\n        onNavigate(selectedIndex);\n      }\n    } else if (previousMountedRef.current) {\n      // Since the user can specify `onNavigate` conditionally\n      // (onNavigate: open ? setActiveIndex : setSelectedIndex),\n      // we store and call the previous function.\n      indexRef.current = -1;\n      previousOnNavigateRef.current(null);\n    }\n  }, [enabled, open, elements.floating, selectedIndex, onNavigate]);\n\n  // Sync `activeIndex` to be the focused item while the floating element is\n  // open.\n  index(() => {\n    if (!enabled) return;\n    if (open && elements.floating) {\n      if (activeIndex == null) {\n        forceSyncFocus.current = false;\n        if (selectedIndexRef.current != null) {\n          return;\n        }\n\n        // Reset while the floating element was open (e.g. the list changed).\n        if (previousMountedRef.current) {\n          indexRef.current = -1;\n          focusItem(listRef, indexRef);\n        }\n\n        // Initial sync.\n        if ((!previousOpenRef.current || !previousMountedRef.current) && focusItemOnOpenRef.current && (keyRef.current != null || focusItemOnOpenRef.current === true && keyRef.current == null)) {\n          let runs = 0;\n          const waitForListPopulated = () => {\n            if (listRef.current[0] == null) {\n              // Avoid letting the browser paint if possible on the first try,\n              // otherwise use rAF. Don't try more than twice, since something\n              // is wrong otherwise.\n              if (runs < 2) {\n                const scheduler = runs ? requestAnimationFrame : queueMicrotask;\n                scheduler(waitForListPopulated);\n              }\n              runs++;\n            } else {\n              indexRef.current = keyRef.current == null || isMainOrientationToEndKey(keyRef.current, orientation, rtl) || nested ? getMinIndex(listRef, disabledIndicesRef.current) : getMaxIndex(listRef, disabledIndicesRef.current);\n              keyRef.current = null;\n              onNavigate(indexRef.current);\n            }\n          };\n          waitForListPopulated();\n        }\n      } else if (!isIndexOutOfBounds(listRef, activeIndex)) {\n        indexRef.current = activeIndex;\n        focusItem(listRef, indexRef, forceScrollIntoViewRef.current);\n        forceScrollIntoViewRef.current = false;\n      }\n    }\n  }, [enabled, open, elements.floating, activeIndex, selectedIndexRef, nested, listRef, orientation, rtl, onNavigate, focusItem, disabledIndicesRef]);\n\n  // Ensure the parent floating element has focus when a nested child closes\n  // to allow arrow key navigation to work after the pointer leaves the child.\n  index(() => {\n    var _nodes$find;\n    if (!enabled || elements.floating || !tree || virtual || !previousMountedRef.current) {\n      return;\n    }\n    const nodes = tree.nodesRef.current;\n    const parent = (_nodes$find = nodes.find(node => node.id === parentId)) == null || (_nodes$find = _nodes$find.context) == null ? void 0 : _nodes$find.elements.floating;\n    const activeEl = activeElement(getDocument(elements.floating));\n    const treeContainsActiveEl = nodes.some(node => node.context && contains(node.context.elements.floating, activeEl));\n    if (parent && !treeContainsActiveEl && isPointerModalityRef.current) {\n      parent.focus({\n        preventScroll: true\n      });\n    }\n  }, [enabled, elements.floating, tree, parentId, virtual]);\n  index(() => {\n    if (!enabled) return;\n    if (!tree) return;\n    if (!virtual) return;\n    if (parentId) return;\n    function handleVirtualFocus(item) {\n      setVirtualId(item.id);\n      if (virtualItemRef) {\n        virtualItemRef.current = item;\n      }\n    }\n    tree.events.on('virtualfocus', handleVirtualFocus);\n    return () => {\n      tree.events.off('virtualfocus', handleVirtualFocus);\n    };\n  }, [enabled, tree, virtual, parentId, virtualItemRef]);\n  index(() => {\n    previousOnNavigateRef.current = onNavigate;\n    previousMountedRef.current = !!elements.floating;\n  });\n  index(() => {\n    if (!open) {\n      keyRef.current = null;\n    }\n  }, [open]);\n  index(() => {\n    previousOpenRef.current = open;\n  }, [open]);\n  const hasActiveIndex = activeIndex != null;\n  const item = React.useMemo(() => {\n    function syncCurrentTarget(currentTarget) {\n      if (!open) return;\n      const index = listRef.current.indexOf(currentTarget);\n      if (index !== -1) {\n        onNavigate(index);\n      }\n    }\n    const props = {\n      onFocus(_ref) {\n        let {\n          currentTarget\n        } = _ref;\n        syncCurrentTarget(currentTarget);\n      },\n      onClick: _ref2 => {\n        let {\n          currentTarget\n        } = _ref2;\n        return currentTarget.focus({\n          preventScroll: true\n        });\n      },\n      // Safari\n      ...(focusItemOnHover && {\n        onMouseMove(_ref3) {\n          let {\n            currentTarget\n          } = _ref3;\n          syncCurrentTarget(currentTarget);\n        },\n        onPointerLeave(_ref4) {\n          let {\n            pointerType\n          } = _ref4;\n          if (!isPointerModalityRef.current || pointerType === 'touch') {\n            return;\n          }\n          indexRef.current = -1;\n          focusItem(listRef, indexRef);\n          onNavigate(null);\n          if (!virtual) {\n            enqueueFocus(floatingFocusElementRef.current, {\n              preventScroll: true\n            });\n          }\n        }\n      })\n    };\n    return props;\n  }, [open, floatingFocusElementRef, focusItem, focusItemOnHover, listRef, onNavigate, virtual]);\n  const commonOnKeyDown = useEffectEvent(event => {\n    isPointerModalityRef.current = false;\n    forceSyncFocus.current = true;\n\n    // When composing a character, Chrome fires ArrowDown twice. Firefox/Safari\n    // don't appear to suffer from this. `event.isComposing` is avoided due to\n    // Safari not supporting it properly (although it's not needed in the first\n    // place for Safari, just avoiding any possible issues).\n    if (event.which === 229) {\n      return;\n    }\n\n    // If the floating element is animating out, ignore navigation. Otherwise,\n    // the `activeIndex` gets set to 0 despite not being open so the next time\n    // the user ArrowDowns, the first item won't be focused.\n    if (!latestOpenRef.current && event.currentTarget === floatingFocusElementRef.current) {\n      return;\n    }\n    if (nested && isCrossOrientationCloseKey(event.key, orientation, rtl)) {\n      stopEvent(event);\n      onOpenChange(false, event.nativeEvent, 'list-navigation');\n      if (isHTMLElement(elements.domReference)) {\n        if (virtual) {\n          tree == null || tree.events.emit('virtualfocus', elements.domReference);\n        } else {\n          elements.domReference.focus();\n        }\n      }\n      return;\n    }\n    const currentIndex = indexRef.current;\n    const minIndex = getMinIndex(listRef, disabledIndices);\n    const maxIndex = getMaxIndex(listRef, disabledIndices);\n    if (!typeableComboboxReference) {\n      if (event.key === 'Home') {\n        stopEvent(event);\n        indexRef.current = minIndex;\n        onNavigate(indexRef.current);\n      }\n      if (event.key === 'End') {\n        stopEvent(event);\n        indexRef.current = maxIndex;\n        onNavigate(indexRef.current);\n      }\n    }\n\n    // Grid navigation.\n    if (cols > 1) {\n      const sizes = itemSizes || Array.from({\n        length: listRef.current.length\n      }, () => ({\n        width: 1,\n        height: 1\n      }));\n      // To calculate movements on the grid, we use hypothetical cell indices\n      // as if every item was 1x1, then convert back to real indices.\n      const cellMap = buildCellMap(sizes, cols, dense);\n      const minGridIndex = cellMap.findIndex(index => index != null && !isDisabled(listRef.current, index, disabledIndices));\n      // last enabled index\n      const maxGridIndex = cellMap.reduce((foundIndex, index, cellIndex) => index != null && !isDisabled(listRef.current, index, disabledIndices) ? cellIndex : foundIndex, -1);\n      const index = cellMap[getGridNavigatedIndex({\n        current: cellMap.map(itemIndex => itemIndex != null ? listRef.current[itemIndex] : null)\n      }, {\n        event,\n        orientation,\n        loop,\n        rtl,\n        cols,\n        // treat undefined (empty grid spaces) as disabled indices so we\n        // don't end up in them\n        disabledIndices: getCellIndices([...(disabledIndices || listRef.current.map((_, index) => isDisabled(listRef.current, index) ? index : undefined)), undefined], cellMap),\n        minIndex: minGridIndex,\n        maxIndex: maxGridIndex,\n        prevIndex: getCellIndexOfCorner(indexRef.current > maxIndex ? minIndex : indexRef.current, sizes, cellMap, cols,\n        // use a corner matching the edge closest to the direction\n        // we're moving in so we don't end up in the same item. Prefer\n        // top/left over bottom/right.\n        event.key === ARROW_DOWN ? 'bl' : event.key === (rtl ? ARROW_LEFT : ARROW_RIGHT) ? 'tr' : 'tl'),\n        stopEvent: true\n      })];\n      if (index != null) {\n        indexRef.current = index;\n        onNavigate(indexRef.current);\n      }\n      if (orientation === 'both') {\n        return;\n      }\n    }\n    if (isMainOrientationKey(event.key, orientation)) {\n      stopEvent(event);\n\n      // Reset the index if no item is focused.\n      if (open && !virtual && activeElement(event.currentTarget.ownerDocument) === event.currentTarget) {\n        indexRef.current = isMainOrientationToEndKey(event.key, orientation, rtl) ? minIndex : maxIndex;\n        onNavigate(indexRef.current);\n        return;\n      }\n      if (isMainOrientationToEndKey(event.key, orientation, rtl)) {\n        if (loop) {\n          indexRef.current = currentIndex >= maxIndex ? allowEscape && currentIndex !== listRef.current.length ? -1 : minIndex : findNonDisabledIndex(listRef, {\n            startingIndex: currentIndex,\n            disabledIndices\n          });\n        } else {\n          indexRef.current = Math.min(maxIndex, findNonDisabledIndex(listRef, {\n            startingIndex: currentIndex,\n            disabledIndices\n          }));\n        }\n      } else {\n        if (loop) {\n          indexRef.current = currentIndex <= minIndex ? allowEscape && currentIndex !== -1 ? listRef.current.length : maxIndex : findNonDisabledIndex(listRef, {\n            startingIndex: currentIndex,\n            decrement: true,\n            disabledIndices\n          });\n        } else {\n          indexRef.current = Math.max(minIndex, findNonDisabledIndex(listRef, {\n            startingIndex: currentIndex,\n            decrement: true,\n            disabledIndices\n          }));\n        }\n      }\n      if (isIndexOutOfBounds(listRef, indexRef.current)) {\n        onNavigate(null);\n      } else {\n        onNavigate(indexRef.current);\n      }\n    }\n  });\n  const ariaActiveDescendantProp = React.useMemo(() => {\n    return virtual && open && hasActiveIndex && {\n      'aria-activedescendant': virtualId || activeId\n    };\n  }, [virtual, open, hasActiveIndex, virtualId, activeId]);\n  const floating = React.useMemo(() => {\n    return {\n      'aria-orientation': orientation === 'both' ? undefined : orientation,\n      ...(!isTypeableCombobox(elements.domReference) && ariaActiveDescendantProp),\n      onKeyDown: commonOnKeyDown,\n      onPointerMove() {\n        isPointerModalityRef.current = true;\n      }\n    };\n  }, [ariaActiveDescendantProp, commonOnKeyDown, elements.domReference, orientation]);\n  const reference = React.useMemo(() => {\n    function checkVirtualMouse(event) {\n      if (focusItemOnOpen === 'auto' && isVirtualClick(event.nativeEvent)) {\n        focusItemOnOpenRef.current = true;\n      }\n    }\n    function checkVirtualPointer(event) {\n      // `pointerdown` fires first, reset the state then perform the checks.\n      focusItemOnOpenRef.current = focusItemOnOpen;\n      if (focusItemOnOpen === 'auto' && isVirtualPointerEvent(event.nativeEvent)) {\n        focusItemOnOpenRef.current = true;\n      }\n    }\n    return {\n      ...ariaActiveDescendantProp,\n      onKeyDown(event) {\n        isPointerModalityRef.current = false;\n        const isArrowKey = event.key.startsWith('Arrow');\n        const isHomeOrEndKey = ['Home', 'End'].includes(event.key);\n        const isMoveKey = isArrowKey || isHomeOrEndKey;\n        const isCrossOpenKey = isCrossOrientationOpenKey(event.key, orientation, rtl);\n        const isCrossCloseKey = isCrossOrientationCloseKey(event.key, orientation, rtl);\n        const isMainKey = isMainOrientationKey(event.key, orientation);\n        const isNavigationKey = (nested ? isCrossOpenKey : isMainKey) || event.key === 'Enter' || event.key.trim() === '';\n        if (virtual && open) {\n          const rootNode = tree == null ? void 0 : tree.nodesRef.current.find(node => node.parentId == null);\n          const deepestNode = tree && rootNode ? getDeepestNode(tree.nodesRef.current, rootNode.id) : null;\n          if (isMoveKey && deepestNode && virtualItemRef) {\n            const eventObject = new KeyboardEvent('keydown', {\n              key: event.key,\n              bubbles: true\n            });\n            if (isCrossOpenKey || isCrossCloseKey) {\n              var _deepestNode$context, _deepestNode$context2;\n              const isCurrentTarget = ((_deepestNode$context = deepestNode.context) == null ? void 0 : _deepestNode$context.elements.domReference) === event.currentTarget;\n              const dispatchItem = isCrossCloseKey && !isCurrentTarget ? (_deepestNode$context2 = deepestNode.context) == null ? void 0 : _deepestNode$context2.elements.domReference : isCrossOpenKey ? listRef.current.find(item => (item == null ? void 0 : item.id) === activeId) : null;\n              if (dispatchItem) {\n                stopEvent(event);\n                dispatchItem.dispatchEvent(eventObject);\n                setVirtualId(undefined);\n              }\n            }\n            if ((isMainKey || isHomeOrEndKey) && deepestNode.context) {\n              if (deepestNode.context.open && deepestNode.parentId && event.currentTarget !== deepestNode.context.elements.domReference) {\n                var _deepestNode$context$;\n                stopEvent(event);\n                (_deepestNode$context$ = deepestNode.context.elements.domReference) == null || _deepestNode$context$.dispatchEvent(eventObject);\n                return;\n              }\n            }\n          }\n          return commonOnKeyDown(event);\n        }\n\n        // If a floating element should not open on arrow key down, avoid\n        // setting `activeIndex` while it's closed.\n        if (!open && !openOnArrowKeyDown && isArrowKey) {\n          return;\n        }\n        if (isNavigationKey) {\n          keyRef.current = nested && isMainKey ? null : event.key;\n        }\n        if (nested) {\n          if (isCrossOpenKey) {\n            stopEvent(event);\n            if (open) {\n              indexRef.current = getMinIndex(listRef, disabledIndicesRef.current);\n              onNavigate(indexRef.current);\n            } else {\n              onOpenChange(true, event.nativeEvent, 'list-navigation');\n            }\n          }\n          return;\n        }\n        if (isMainKey) {\n          if (selectedIndex != null) {\n            indexRef.current = selectedIndex;\n          }\n          stopEvent(event);\n          if (!open && openOnArrowKeyDown) {\n            onOpenChange(true, event.nativeEvent, 'list-navigation');\n          } else {\n            commonOnKeyDown(event);\n          }\n          if (open) {\n            onNavigate(indexRef.current);\n          }\n        }\n      },\n      onFocus() {\n        if (open && !virtual) {\n          onNavigate(null);\n        }\n      },\n      onPointerDown: checkVirtualPointer,\n      onMouseDown: checkVirtualMouse,\n      onClick: checkVirtualMouse\n    };\n  }, [activeId, ariaActiveDescendantProp, commonOnKeyDown, disabledIndicesRef, focusItemOnOpen, listRef, nested, onNavigate, onOpenChange, open, openOnArrowKeyDown, orientation, rtl, selectedIndex, tree, virtual, virtualItemRef]);\n  return React.useMemo(() => enabled ? {\n    reference,\n    floating,\n    item\n  } : {}, [enabled, reference, floating, item]);\n}\n\nconst componentRoleToAriaRoleMap = /*#__PURE__*/new Map([['select', 'listbox'], ['combobox', 'listbox'], ['label', false]]);\n\n/**\n * Adds base screen reader props to the reference and floating elements for a\n * given floating element `role`.\n * @see https://floating-ui.com/docs/useRole\n */\nfunction useRole(context, props) {\n  var _componentRoleToAriaR;\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    floatingId\n  } = context;\n  const {\n    enabled = true,\n    role = 'dialog'\n  } = props;\n  const ariaRole = (_componentRoleToAriaR = componentRoleToAriaRoleMap.get(role)) != null ? _componentRoleToAriaR : role;\n  const referenceId = useId();\n  const parentId = useFloatingParentNodeId();\n  const isNested = parentId != null;\n  const reference = React.useMemo(() => {\n    if (ariaRole === 'tooltip' || role === 'label') {\n      return {\n        [\"aria-\" + (role === 'label' ? 'labelledby' : 'describedby')]: open ? floatingId : undefined\n      };\n    }\n    return {\n      'aria-expanded': open ? 'true' : 'false',\n      'aria-haspopup': ariaRole === 'alertdialog' ? 'dialog' : ariaRole,\n      'aria-controls': open ? floatingId : undefined,\n      ...(ariaRole === 'listbox' && {\n        role: 'combobox'\n      }),\n      ...(ariaRole === 'menu' && {\n        id: referenceId\n      }),\n      ...(ariaRole === 'menu' && isNested && {\n        role: 'menuitem'\n      }),\n      ...(role === 'select' && {\n        'aria-autocomplete': 'none'\n      }),\n      ...(role === 'combobox' && {\n        'aria-autocomplete': 'list'\n      })\n    };\n  }, [ariaRole, floatingId, isNested, open, referenceId, role]);\n  const floating = React.useMemo(() => {\n    const floatingProps = {\n      id: floatingId,\n      ...(ariaRole && {\n        role: ariaRole\n      })\n    };\n    if (ariaRole === 'tooltip' || role === 'label') {\n      return floatingProps;\n    }\n    return {\n      ...floatingProps,\n      ...(ariaRole === 'menu' && {\n        'aria-labelledby': referenceId\n      })\n    };\n  }, [ariaRole, floatingId, referenceId, role]);\n  const item = React.useCallback(_ref => {\n    let {\n      active,\n      selected\n    } = _ref;\n    const commonProps = {\n      role: 'option',\n      ...(active && {\n        id: floatingId + \"-option\"\n      })\n    };\n\n    // For `menu`, we are unable to tell if the item is a `menuitemradio`\n    // or `menuitemcheckbox`. For backwards-compatibility reasons, also\n    // avoid defaulting to `menuitem` as it may overwrite custom role props.\n    switch (role) {\n      case 'select':\n        return {\n          ...commonProps,\n          'aria-selected': active && selected\n        };\n      case 'combobox':\n        {\n          return {\n            ...commonProps,\n            ...(active && {\n              'aria-selected': true\n            })\n          };\n        }\n    }\n    return {};\n  }, [floatingId, role]);\n  return React.useMemo(() => enabled ? {\n    reference,\n    floating,\n    item\n  } : {}, [enabled, reference, floating, item]);\n}\n\n// Converts a JS style key like `backgroundColor` to a CSS transition-property\n// like `background-color`.\nconst camelCaseToKebabCase = str => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase());\nfunction execWithArgsOrReturn(valueOrFn, args) {\n  return typeof valueOrFn === 'function' ? valueOrFn(args) : valueOrFn;\n}\nfunction useDelayUnmount(open, durationMs) {\n  const [isMounted, setIsMounted] = React.useState(open);\n  if (open && !isMounted) {\n    setIsMounted(true);\n  }\n  React.useEffect(() => {\n    if (!open && isMounted) {\n      const timeout = setTimeout(() => setIsMounted(false), durationMs);\n      return () => clearTimeout(timeout);\n    }\n  }, [open, isMounted, durationMs]);\n  return isMounted;\n}\n/**\n * Provides a status string to apply CSS transitions to a floating element,\n * correctly handling placement-aware transitions.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstatus\n */\nfunction useTransitionStatus(context, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    elements: {\n      floating\n    }\n  } = context;\n  const {\n    duration = 250\n  } = props;\n  const isNumberDuration = typeof duration === 'number';\n  const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n  const [status, setStatus] = React.useState('unmounted');\n  const isMounted = useDelayUnmount(open, closeDuration);\n  if (!isMounted && status === 'close') {\n    setStatus('unmounted');\n  }\n  index(() => {\n    if (!floating) return;\n    if (open) {\n      setStatus('initial');\n      const frame = requestAnimationFrame(() => {\n        setStatus('open');\n      });\n      return () => {\n        cancelAnimationFrame(frame);\n      };\n    }\n    setStatus('close');\n  }, [open, floating]);\n  return {\n    isMounted,\n    status\n  };\n}\n/**\n * Provides styles to apply CSS transitions to a floating element, correctly\n * handling placement-aware transitions. Wrapper around `useTransitionStatus`.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstyles\n */\nfunction useTransitionStyles(context, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    initial: unstable_initial = {\n      opacity: 0\n    },\n    open: unstable_open,\n    close: unstable_close,\n    common: unstable_common,\n    duration = 250\n  } = props;\n  const placement = context.placement;\n  const side = placement.split('-')[0];\n  const fnArgs = React.useMemo(() => ({\n    side,\n    placement\n  }), [side, placement]);\n  const isNumberDuration = typeof duration === 'number';\n  const openDuration = (isNumberDuration ? duration : duration.open) || 0;\n  const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n  const [styles, setStyles] = React.useState(() => ({\n    ...execWithArgsOrReturn(unstable_common, fnArgs),\n    ...execWithArgsOrReturn(unstable_initial, fnArgs)\n  }));\n  const {\n    isMounted,\n    status\n  } = useTransitionStatus(context, {\n    duration\n  });\n  const initialRef = useLatestRef(unstable_initial);\n  const openRef = useLatestRef(unstable_open);\n  const closeRef = useLatestRef(unstable_close);\n  const commonRef = useLatestRef(unstable_common);\n  index(() => {\n    const initialStyles = execWithArgsOrReturn(initialRef.current, fnArgs);\n    const closeStyles = execWithArgsOrReturn(closeRef.current, fnArgs);\n    const commonStyles = execWithArgsOrReturn(commonRef.current, fnArgs);\n    const openStyles = execWithArgsOrReturn(openRef.current, fnArgs) || Object.keys(initialStyles).reduce((acc, key) => {\n      acc[key] = '';\n      return acc;\n    }, {});\n    if (status === 'initial') {\n      setStyles(styles => ({\n        transitionProperty: styles.transitionProperty,\n        ...commonStyles,\n        ...initialStyles\n      }));\n    }\n    if (status === 'open') {\n      setStyles({\n        transitionProperty: Object.keys(openStyles).map(camelCaseToKebabCase).join(','),\n        transitionDuration: openDuration + \"ms\",\n        ...commonStyles,\n        ...openStyles\n      });\n    }\n    if (status === 'close') {\n      const styles = closeStyles || initialStyles;\n      setStyles({\n        transitionProperty: Object.keys(styles).map(camelCaseToKebabCase).join(','),\n        transitionDuration: closeDuration + \"ms\",\n        ...commonStyles,\n        ...styles\n      });\n    }\n  }, [closeDuration, closeRef, initialRef, openRef, commonRef, openDuration, status, fnArgs]);\n  return {\n    isMounted,\n    styles\n  };\n}\n\n/**\n * Provides a matching callback that can be used to focus an item as the user\n * types, often used in tandem with `useListNavigation()`.\n * @see https://floating-ui.com/docs/useTypeahead\n */\nfunction useTypeahead(context, props) {\n  var _ref;\n  const {\n    open,\n    dataRef\n  } = context;\n  const {\n    listRef,\n    activeIndex,\n    onMatch: unstable_onMatch,\n    onTypingChange: unstable_onTypingChange,\n    enabled = true,\n    findMatch = null,\n    resetMs = 750,\n    ignoreKeys = [],\n    selectedIndex = null\n  } = props;\n  const timeoutIdRef = React.useRef();\n  const stringRef = React.useRef('');\n  const prevIndexRef = React.useRef((_ref = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref : -1);\n  const matchIndexRef = React.useRef(null);\n  const onMatch = useEffectEvent(unstable_onMatch);\n  const onTypingChange = useEffectEvent(unstable_onTypingChange);\n  const findMatchRef = useLatestRef(findMatch);\n  const ignoreKeysRef = useLatestRef(ignoreKeys);\n  index(() => {\n    if (open) {\n      clearTimeout(timeoutIdRef.current);\n      matchIndexRef.current = null;\n      stringRef.current = '';\n    }\n  }, [open]);\n  index(() => {\n    // Sync arrow key navigation but not typeahead navigation.\n    if (open && stringRef.current === '') {\n      var _ref2;\n      prevIndexRef.current = (_ref2 = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref2 : -1;\n    }\n  }, [open, selectedIndex, activeIndex]);\n  const setTypingChange = useEffectEvent(value => {\n    if (value) {\n      if (!dataRef.current.typing) {\n        dataRef.current.typing = value;\n        onTypingChange(value);\n      }\n    } else {\n      if (dataRef.current.typing) {\n        dataRef.current.typing = value;\n        onTypingChange(value);\n      }\n    }\n  });\n  const onKeyDown = useEffectEvent(event => {\n    function getMatchingIndex(list, orderedList, string) {\n      const str = findMatchRef.current ? findMatchRef.current(orderedList, string) : orderedList.find(text => (text == null ? void 0 : text.toLocaleLowerCase().indexOf(string.toLocaleLowerCase())) === 0);\n      return str ? list.indexOf(str) : -1;\n    }\n    const listContent = listRef.current;\n    if (stringRef.current.length > 0 && stringRef.current[0] !== ' ') {\n      if (getMatchingIndex(listContent, listContent, stringRef.current) === -1) {\n        setTypingChange(false);\n      } else if (event.key === ' ') {\n        stopEvent(event);\n      }\n    }\n    if (listContent == null || ignoreKeysRef.current.includes(event.key) ||\n    // Character key.\n    event.key.length !== 1 ||\n    // Modifier key.\n    event.ctrlKey || event.metaKey || event.altKey) {\n      return;\n    }\n    if (open && event.key !== ' ') {\n      stopEvent(event);\n      setTypingChange(true);\n    }\n\n    // Bail out if the list contains a word like \"llama\" or \"aaron\". TODO:\n    // allow it in this case, too.\n    const allowRapidSuccessionOfFirstLetter = listContent.every(text => {\n      var _text$, _text$2;\n      return text ? ((_text$ = text[0]) == null ? void 0 : _text$.toLocaleLowerCase()) !== ((_text$2 = text[1]) == null ? void 0 : _text$2.toLocaleLowerCase()) : true;\n    });\n\n    // Allows the user to cycle through items that start with the same letter\n    // in rapid succession.\n    if (allowRapidSuccessionOfFirstLetter && stringRef.current === event.key) {\n      stringRef.current = '';\n      prevIndexRef.current = matchIndexRef.current;\n    }\n    stringRef.current += event.key;\n    clearTimeout(timeoutIdRef.current);\n    timeoutIdRef.current = setTimeout(() => {\n      stringRef.current = '';\n      prevIndexRef.current = matchIndexRef.current;\n      setTypingChange(false);\n    }, resetMs);\n    const prevIndex = prevIndexRef.current;\n    const index = getMatchingIndex(listContent, [...listContent.slice((prevIndex || 0) + 1), ...listContent.slice(0, (prevIndex || 0) + 1)], stringRef.current);\n    if (index !== -1) {\n      onMatch(index);\n      matchIndexRef.current = index;\n    } else if (event.key !== ' ') {\n      stringRef.current = '';\n      setTypingChange(false);\n    }\n  });\n  const reference = React.useMemo(() => ({\n    onKeyDown\n  }), [onKeyDown]);\n  const floating = React.useMemo(() => {\n    return {\n      onKeyDown,\n      onKeyUp(event) {\n        if (event.key === ' ') {\n          setTypingChange(false);\n        }\n      }\n    };\n  }, [onKeyDown, setTypingChange]);\n  return React.useMemo(() => enabled ? {\n    reference,\n    floating\n  } : {}, [enabled, reference, floating]);\n}\n\nfunction getArgsWithCustomFloatingHeight(state, height) {\n  return {\n    ...state,\n    rects: {\n      ...state.rects,\n      floating: {\n        ...state.rects.floating,\n        height\n      }\n    }\n  };\n}\n/**\n * Positions the floating element such that an inner element inside of it is\n * anchored to the reference element.\n * @see https://floating-ui.com/docs/inner\n */\nconst inner = props => ({\n  name: 'inner',\n  options: props,\n  async fn(state) {\n    const {\n      listRef,\n      overflowRef,\n      onFallbackChange,\n      offset: innerOffset = 0,\n      index = 0,\n      minItemsVisible = 4,\n      referenceOverflowThreshold = 0,\n      scrollRef,\n      ...detectOverflowOptions\n    } = evaluate(props, state);\n    const {\n      rects,\n      elements: {\n        floating\n      }\n    } = state;\n    const item = listRef.current[index];\n    const scrollEl = (scrollRef == null ? void 0 : scrollRef.current) || floating;\n\n    // Valid combinations:\n    // 1. Floating element is the scrollRef and has a border (default)\n    // 2. Floating element is not the scrollRef, floating element has a border\n    // 3. Floating element is not the scrollRef, scrollRef has a border\n    // Floating > {...getFloatingProps()} wrapper > scrollRef > items is not\n    // allowed as VoiceOver doesn't work.\n    const clientTop = floating.clientTop || scrollEl.clientTop;\n    const floatingIsBordered = floating.clientTop !== 0;\n    const scrollElIsBordered = scrollEl.clientTop !== 0;\n    const floatingIsScrollEl = floating === scrollEl;\n    if (process.env.NODE_ENV !== \"production\") {\n      if (!state.placement.startsWith('bottom')) {\n        warn('`placement` side must be \"bottom\" when using the `inner`', 'middleware.');\n      }\n    }\n    if (!item) {\n      return {};\n    }\n    const nextArgs = {\n      ...state,\n      ...(await offset(-item.offsetTop - floating.clientTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset).fn(state))\n    };\n    const overflow = await detectOverflow(getArgsWithCustomFloatingHeight(nextArgs, scrollEl.scrollHeight + clientTop + floating.clientTop), detectOverflowOptions);\n    const refOverflow = await detectOverflow(nextArgs, {\n      ...detectOverflowOptions,\n      elementContext: 'reference'\n    });\n    const diffY = max(0, overflow.top);\n    const nextY = nextArgs.y + diffY;\n    const isScrollable = scrollEl.scrollHeight > scrollEl.clientHeight;\n    const rounder = isScrollable ? v => v : round;\n    const maxHeight = rounder(max(0, scrollEl.scrollHeight + (floatingIsBordered && floatingIsScrollEl || scrollElIsBordered ? clientTop * 2 : 0) - diffY - max(0, overflow.bottom)));\n    scrollEl.style.maxHeight = maxHeight + \"px\";\n    scrollEl.scrollTop = diffY;\n\n    // There is not enough space, fallback to standard anchored positioning\n    if (onFallbackChange) {\n      const shouldFallback = scrollEl.offsetHeight < item.offsetHeight * min(minItemsVisible, listRef.current.length) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold;\n      ReactDOM.flushSync(() => onFallbackChange(shouldFallback));\n    }\n    if (overflowRef) {\n      overflowRef.current = await detectOverflow(getArgsWithCustomFloatingHeight({\n        ...nextArgs,\n        y: nextY\n      }, scrollEl.offsetHeight + clientTop + floating.clientTop), detectOverflowOptions);\n    }\n    return {\n      y: nextY\n    };\n  }\n});\n/**\n * Changes the `inner` middleware's `offset` upon a `wheel` event to\n * expand the floating element's height, revealing more list items.\n * @see https://floating-ui.com/docs/inner\n */\nfunction useInnerOffset(context, props) {\n  const {\n    open,\n    elements\n  } = context;\n  const {\n    enabled = true,\n    overflowRef,\n    scrollRef,\n    onChange: unstable_onChange\n  } = props;\n  const onChange = useEffectEvent(unstable_onChange);\n  const controlledScrollingRef = React.useRef(false);\n  const prevScrollTopRef = React.useRef(null);\n  const initialOverflowRef = React.useRef(null);\n  React.useEffect(() => {\n    if (!enabled) return;\n    function onWheel(e) {\n      if (e.ctrlKey || !el || overflowRef.current == null) {\n        return;\n      }\n      const dY = e.deltaY;\n      const isAtTop = overflowRef.current.top >= -0.5;\n      const isAtBottom = overflowRef.current.bottom >= -0.5;\n      const remainingScroll = el.scrollHeight - el.clientHeight;\n      const sign = dY < 0 ? -1 : 1;\n      const method = dY < 0 ? 'max' : 'min';\n      if (el.scrollHeight <= el.clientHeight) {\n        return;\n      }\n      if (!isAtTop && dY > 0 || !isAtBottom && dY < 0) {\n        e.preventDefault();\n        ReactDOM.flushSync(() => {\n          onChange(d => d + Math[method](dY, remainingScroll * sign));\n        });\n      } else if (/firefox/i.test(getUserAgent())) {\n        // Needed to propagate scrolling during momentum scrolling phase once\n        // it gets limited by the boundary. UX improvement, not critical.\n        el.scrollTop += dY;\n      }\n    }\n    const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n    if (open && el) {\n      el.addEventListener('wheel', onWheel);\n\n      // Wait for the position to be ready.\n      requestAnimationFrame(() => {\n        prevScrollTopRef.current = el.scrollTop;\n        if (overflowRef.current != null) {\n          initialOverflowRef.current = {\n            ...overflowRef.current\n          };\n        }\n      });\n      return () => {\n        prevScrollTopRef.current = null;\n        initialOverflowRef.current = null;\n        el.removeEventListener('wheel', onWheel);\n      };\n    }\n  }, [enabled, open, elements.floating, overflowRef, scrollRef, onChange]);\n  const floating = React.useMemo(() => ({\n    onKeyDown() {\n      controlledScrollingRef.current = true;\n    },\n    onWheel() {\n      controlledScrollingRef.current = false;\n    },\n    onPointerMove() {\n      controlledScrollingRef.current = false;\n    },\n    onScroll() {\n      const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n      if (!overflowRef.current || !el || !controlledScrollingRef.current) {\n        return;\n      }\n      if (prevScrollTopRef.current !== null) {\n        const scrollDiff = el.scrollTop - prevScrollTopRef.current;\n        if (overflowRef.current.bottom < -0.5 && scrollDiff < -1 || overflowRef.current.top < -0.5 && scrollDiff > 1) {\n          ReactDOM.flushSync(() => onChange(d => d + scrollDiff));\n        }\n      }\n\n      // [Firefox] Wait for the height change to have been applied.\n      requestAnimationFrame(() => {\n        prevScrollTopRef.current = el.scrollTop;\n      });\n    }\n  }), [elements.floating, onChange, overflowRef, scrollRef]);\n  return React.useMemo(() => enabled ? {\n    floating\n  } : {}, [enabled, floating]);\n}\n\nfunction isPointInPolygon(point, polygon) {\n  const [x, y] = point;\n  let isInside = false;\n  const length = polygon.length;\n  for (let i = 0, j = length - 1; i < length; j = i++) {\n    const [xi, yi] = polygon[i] || [0, 0];\n    const [xj, yj] = polygon[j] || [0, 0];\n    const intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi;\n    if (intersect) {\n      isInside = !isInside;\n    }\n  }\n  return isInside;\n}\nfunction isInside(point, rect) {\n  return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n}\n/**\n * Generates a safe polygon area that the user can traverse without closing the\n * floating element once leaving the reference element.\n * @see https://floating-ui.com/docs/useHover#safepolygon\n */\nfunction safePolygon(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    buffer = 0.5,\n    blockPointerEvents = false,\n    requireIntent = true\n  } = options;\n  let timeoutId;\n  let hasLanded = false;\n  let lastX = null;\n  let lastY = null;\n  let lastCursorTime = performance.now();\n  function getCursorSpeed(x, y) {\n    const currentTime = performance.now();\n    const elapsedTime = currentTime - lastCursorTime;\n    if (lastX === null || lastY === null || elapsedTime === 0) {\n      lastX = x;\n      lastY = y;\n      lastCursorTime = currentTime;\n      return null;\n    }\n    const deltaX = x - lastX;\n    const deltaY = y - lastY;\n    const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n    const speed = distance / elapsedTime; // px / ms\n\n    lastX = x;\n    lastY = y;\n    lastCursorTime = currentTime;\n    return speed;\n  }\n  const fn = _ref => {\n    let {\n      x,\n      y,\n      placement,\n      elements,\n      onClose,\n      nodeId,\n      tree\n    } = _ref;\n    return function onMouseMove(event) {\n      function close() {\n        clearTimeout(timeoutId);\n        onClose();\n      }\n      clearTimeout(timeoutId);\n      if (!elements.domReference || !elements.floating || placement == null || x == null || y == null) {\n        return;\n      }\n      const {\n        clientX,\n        clientY\n      } = event;\n      const clientPoint = [clientX, clientY];\n      const target = getTarget(event);\n      const isLeave = event.type === 'mouseleave';\n      const isOverFloatingEl = contains(elements.floating, target);\n      const isOverReferenceEl = contains(elements.domReference, target);\n      const refRect = elements.domReference.getBoundingClientRect();\n      const rect = elements.floating.getBoundingClientRect();\n      const side = placement.split('-')[0];\n      const cursorLeaveFromRight = x > rect.right - rect.width / 2;\n      const cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;\n      const isOverReferenceRect = isInside(clientPoint, refRect);\n      const isFloatingWider = rect.width > refRect.width;\n      const isFloatingTaller = rect.height > refRect.height;\n      const left = (isFloatingWider ? refRect : rect).left;\n      const right = (isFloatingWider ? refRect : rect).right;\n      const top = (isFloatingTaller ? refRect : rect).top;\n      const bottom = (isFloatingTaller ? refRect : rect).bottom;\n      if (isOverFloatingEl) {\n        hasLanded = true;\n        if (!isLeave) {\n          return;\n        }\n      }\n      if (isOverReferenceEl) {\n        hasLanded = false;\n      }\n      if (isOverReferenceEl && !isLeave) {\n        hasLanded = true;\n        return;\n      }\n\n      // Prevent overlapping floating element from being stuck in an open-close\n      // loop: https://github.com/floating-ui/floating-ui/issues/1910\n      if (isLeave && isElement(event.relatedTarget) && contains(elements.floating, event.relatedTarget)) {\n        return;\n      }\n\n      // If any nested child is open, abort.\n      if (tree && getChildren(tree.nodesRef.current, nodeId).some(_ref2 => {\n        let {\n          context\n        } = _ref2;\n        return context == null ? void 0 : context.open;\n      })) {\n        return;\n      }\n\n      // If the pointer is leaving from the opposite side, the \"buffer\" logic\n      // creates a point where the floating element remains open, but should be\n      // ignored.\n      // A constant of 1 handles floating point rounding errors.\n      if (side === 'top' && y >= refRect.bottom - 1 || side === 'bottom' && y <= refRect.top + 1 || side === 'left' && x >= refRect.right - 1 || side === 'right' && x <= refRect.left + 1) {\n        return close();\n      }\n\n      // Ignore when the cursor is within the rectangular trough between the\n      // two elements. Since the triangle is created from the cursor point,\n      // which can start beyond the ref element's edge, traversing back and\n      // forth from the ref to the floating element can cause it to close. This\n      // ensures it always remains open in that case.\n      let rectPoly = [];\n      switch (side) {\n        case 'top':\n          rectPoly = [[left, refRect.top + 1], [left, rect.bottom - 1], [right, rect.bottom - 1], [right, refRect.top + 1]];\n          break;\n        case 'bottom':\n          rectPoly = [[left, rect.top + 1], [left, refRect.bottom - 1], [right, refRect.bottom - 1], [right, rect.top + 1]];\n          break;\n        case 'left':\n          rectPoly = [[rect.right - 1, bottom], [rect.right - 1, top], [refRect.left + 1, top], [refRect.left + 1, bottom]];\n          break;\n        case 'right':\n          rectPoly = [[refRect.right - 1, bottom], [refRect.right - 1, top], [rect.left + 1, top], [rect.left + 1, bottom]];\n          break;\n      }\n      function getPolygon(_ref3) {\n        let [x, y] = _ref3;\n        switch (side) {\n          case 'top':\n            {\n              const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n              const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n              const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.bottom - buffer : isFloatingWider ? rect.bottom - buffer : rect.top], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.bottom - buffer : rect.top : rect.bottom - buffer]];\n              return [cursorPointOne, cursorPointTwo, ...commonPoints];\n            }\n          case 'bottom':\n            {\n              const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n              const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n              const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.top + buffer : isFloatingWider ? rect.top + buffer : rect.bottom], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.top + buffer : rect.bottom : rect.top + buffer]];\n              return [cursorPointOne, cursorPointTwo, ...commonPoints];\n            }\n          case 'left':\n            {\n              const cursorPointOne = [x + buffer + 1, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n              const cursorPointTwo = [x + buffer + 1, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n              const commonPoints = [[cursorLeaveFromBottom ? rect.right - buffer : isFloatingTaller ? rect.right - buffer : rect.left, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.right - buffer : rect.left : rect.right - buffer, rect.bottom]];\n              return [...commonPoints, cursorPointOne, cursorPointTwo];\n            }\n          case 'right':\n            {\n              const cursorPointOne = [x - buffer, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n              const cursorPointTwo = [x - buffer, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n              const commonPoints = [[cursorLeaveFromBottom ? rect.left + buffer : isFloatingTaller ? rect.left + buffer : rect.right, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.left + buffer : rect.right : rect.left + buffer, rect.bottom]];\n              return [cursorPointOne, cursorPointTwo, ...commonPoints];\n            }\n        }\n      }\n      if (isPointInPolygon([clientX, clientY], rectPoly)) {\n        return;\n      }\n      if (hasLanded && !isOverReferenceRect) {\n        return close();\n      }\n      if (!isLeave && requireIntent) {\n        const cursorSpeed = getCursorSpeed(event.clientX, event.clientY);\n        const cursorSpeedThreshold = 0.1;\n        if (cursorSpeed !== null && cursorSpeed < cursorSpeedThreshold) {\n          return close();\n        }\n      }\n      if (!isPointInPolygon([clientX, clientY], getPolygon([x, y]))) {\n        close();\n      } else if (!hasLanded && requireIntent) {\n        timeoutId = window.setTimeout(close, 40);\n      }\n    };\n  };\n  fn.__options = {\n    blockPointerEvents\n  };\n  return fn;\n}\n\nexport { Composite, CompositeItem, FloatingArrow, FloatingDelayGroup, FloatingFocusManager, FloatingList, FloatingNode, FloatingOverlay, FloatingPortal, FloatingTree, inner, safePolygon, useClick, useClientPoint, useDelayGroup, useDelayGroupContext, useDismiss, useFloating, useFloatingNodeId, useFloatingParentNodeId, useFloatingPortalNode, useFloatingRootContext, useFloatingTree, useFocus, useHover, useId, useInnerOffset, useInteractions, useListItem, useListNavigation, useMergeRefs, useRole, useTransitionStatus, useTransitionStyles, useTypeahead };\n","import{autoUpdate as Z,flip as ee,inner as te,offset as ne,shift as re,size as le,useFloating as oe,useInnerOffset as ie,useInteractions as se}from\"@floating-ui/react\";import*as j from\"react\";import{createContext as _,useCallback as ae,useContext as T,useMemo as R,useRef as ue,useState as v}from\"react\";import{useDisposables as fe}from'../hooks/use-disposables.js';import{useEvent as z}from'../hooks/use-event.js';import{useIsoMorphicEffect as C}from'../hooks/use-iso-morphic-effect.js';import*as pe from'../utils/dom.js';let y=_({styles:void 0,setReference:()=>{},setFloating:()=>{},getReferenceProps:()=>({}),getFloatingProps:()=>({}),slot:{}});y.displayName=\"FloatingContext\";let $=_(null);$.displayName=\"PlacementContext\";function ye(e){return R(()=>e?typeof e==\"string\"?{to:e}:e:null,[e])}function Fe(){return T(y).setReference}function be(){return T(y).getReferenceProps}function Te(){let{getFloatingProps:e,slot:t}=T(y);return ae((...n)=>Object.assign({},e(...n),{\"data-anchor\":t.anchor}),[e,t])}function Re(e=null){e===!1&&(e=null),typeof e==\"string\"&&(e={to:e});let t=T($),n=R(()=>e,[JSON.stringify(e,(l,o)=>{var u;return(u=o==null?void 0:o.outerHTML)!=null?u:o})]);C(()=>{t==null||t(n!=null?n:null)},[t,n]);let r=T(y);return R(()=>[r.setFloating,e?r.styles:{}],[r.setFloating,e,r.styles])}let D=4;function Ae({children:e,enabled:t=!0}){let[n,r]=v(null),[l,o]=v(0),u=ue(null),[f,s]=v(null);ce(f);let i=t&&n!==null&&f!==null,{to:F=\"bottom\",gap:E=0,offset:A=0,padding:c=0,inner:h}=ge(n,f),[a,p=\"center\"]=F.split(\" \");C(()=>{i&&o(0)},[i]);let{refs:b,floatingStyles:S,context:g}=oe({open:i,placement:a===\"selection\"?p===\"center\"?\"bottom\":`bottom-${p}`:p===\"center\"?`${a}`:`${a}-${p}`,strategy:\"absolute\",transform:!1,middleware:[ne({mainAxis:a===\"selection\"?0:E,crossAxis:A}),re({padding:c}),a!==\"selection\"&&ee({padding:c}),a===\"selection\"&&h?te({...h,padding:c,overflowRef:u,offset:l,minItemsVisible:D,referenceOverflowThreshold:c,onFallbackChange(P){var L,N;if(!P)return;let d=g.elements.floating;if(!d)return;let M=parseFloat(getComputedStyle(d).scrollPaddingBottom)||0,I=Math.min(D,d.childElementCount),W=0,B=0;for(let m of(N=(L=g.elements.floating)==null?void 0:L.childNodes)!=null?N:[])if(pe.isHTMLElement(m)){let x=m.offsetTop,k=x+m.clientHeight+M,H=d.scrollTop,U=H+d.clientHeight;if(x>=H&&k<=U)I--;else{B=Math.max(0,Math.min(k,U)-Math.max(x,H)),W=m.clientHeight;break}}I>=1&&o(m=>{let x=W*I-B+M;return m>=x?m:x})}}):null,le({padding:c,apply({availableWidth:P,availableHeight:d,elements:M}){Object.assign(M.floating.style,{overflow:\"auto\",maxWidth:`${P}px`,maxHeight:`min(var(--anchor-max-height, 100vh), ${d}px)`})}})].filter(Boolean),whileElementsMounted:Z}),[w=a,V=p]=g.placement.split(\"-\");a===\"selection\"&&(w=\"selection\");let G=R(()=>({anchor:[w,V].filter(Boolean).join(\" \")}),[w,V]),K=ie(g,{overflowRef:u,onChange:o}),{getReferenceProps:Q,getFloatingProps:X}=se([K]),Y=z(P=>{s(P),b.setFloating(P)});return j.createElement($.Provider,{value:r},j.createElement(y.Provider,{value:{setFloating:Y,setReference:b.setReference,styles:S,getReferenceProps:Q,getFloatingProps:X,slot:G}},e))}function ce(e){C(()=>{if(!e)return;let t=new MutationObserver(()=>{let n=window.getComputedStyle(e).maxHeight,r=parseFloat(n);if(isNaN(r))return;let l=parseInt(n);isNaN(l)||r!==l&&(e.style.maxHeight=`${Math.ceil(r)}px`)});return t.observe(e,{attributes:!0,attributeFilter:[\"style\"]}),()=>{t.disconnect()}},[e])}function ge(e,t){var o,u,f;let n=O((o=e==null?void 0:e.gap)!=null?o:\"var(--anchor-gap, 0)\",t),r=O((u=e==null?void 0:e.offset)!=null?u:\"var(--anchor-offset, 0)\",t),l=O((f=e==null?void 0:e.padding)!=null?f:\"var(--anchor-padding, 0)\",t);return{...e,gap:n,offset:r,padding:l}}function O(e,t,n=void 0){let r=fe(),l=z((s,i)=>{if(s==null)return[n,null];if(typeof s==\"number\")return[s,null];if(typeof s==\"string\"){if(!i)return[n,null];let F=J(s,i);return[F,E=>{let A=q(s);{let c=A.map(h=>window.getComputedStyle(i).getPropertyValue(h));r.requestAnimationFrame(function h(){r.nextFrame(h);let a=!1;for(let[b,S]of A.entries()){let g=window.getComputedStyle(i).getPropertyValue(S);if(c[b]!==g){c[b]=g,a=!0;break}}if(!a)return;let p=J(s,i);F!==p&&(E(p),F=p)})}return r.dispose}]}return[n,null]}),o=R(()=>l(e,t)[0],[e,t]),[u=o,f]=v();return C(()=>{let[s,i]=l(e,t);if(f(s),!!i)return i(f)},[e,t]),u}function q(e){let t=/var\\((.*)\\)/.exec(e);if(t){let n=t[1].indexOf(\",\");if(n===-1)return[t[1]];let r=t[1].slice(0,n).trim(),l=t[1].slice(n+1).trim();return l?[r,...q(l)]:[r]}return[]}function J(e,t){let n=document.createElement(\"div\");t.appendChild(n),n.style.setProperty(\"margin-top\",\"0px\",\"important\"),n.style.setProperty(\"margin-top\",e,\"important\");let r=parseFloat(window.getComputedStyle(n).marginTop)||0;return t.removeChild(n),r}export{Ae as FloatingProvider,Re as useFloatingPanel,Te as useFloatingPanelProps,Fe as useFloatingReference,be as useFloatingReferenceProps,ye as useResolvedAnchor};\n","import r,{createContext as l,useContext as d}from\"react\";let n=l(null);n.displayName=\"OpenClosedContext\";var i=(e=>(e[e.Open=1]=\"Open\",e[e.Closed=2]=\"Closed\",e[e.Closing=4]=\"Closing\",e[e.Opening=8]=\"Opening\",e))(i||{});function u(){return d(n)}function c({value:o,children:t}){return r.createElement(n.Provider,{value:o},t)}function s({children:o}){return r.createElement(n.Provider,{value:null},o)}export{c as OpenClosedProvider,s as ResetOpenClosedProvider,i as State,u as useOpenClosed};\n","import{useEffect as u,useRef as n}from\"react\";import{microTask as o}from'../utils/micro-task.js';import{useEvent as f}from'./use-event.js';function c(t){let r=f(t),e=n(!1);u(()=>(e.current=!1,()=>{e.current=!0,o(()=>{e.current&&r()})}),[r])}export{c as useOnUnmount};\n","import t,{createContext as r,useContext as c}from\"react\";let e=r(!1);function a(){return c(e)}function l(o){return t.createElement(e.Provider,{value:o.force},o.children)}export{l as ForcePortalRoot,a as usePortalRoot};\n","\"use client\";import i,{Fragment as R,createContext as E,useContext as P,useEffect as A,useMemo as G,useRef as x,useState as M}from\"react\";import{createPortal as b}from\"react-dom\";import{useDisposables as O}from'../../hooks/use-disposables.js';import{useEvent as L}from'../../hooks/use-event.js';import{useOnUnmount as F}from'../../hooks/use-on-unmount.js';import{useOwnerDocument as H}from'../../hooks/use-owner.js';import{optionalRef as h,useSyncRefs as T}from'../../hooks/use-sync-refs.js';import{usePortalRoot as U}from'../../internal/portal-force-root.js';import{env as N}from'../../utils/env.js';import{forwardRefWithAs as f,useRender as d}from'../../utils/render.js';function W(e){let o=U(),l=P(c),[r,p]=M(()=>{var s;if(!o&&l!==null)return(s=l.current)!=null?s:null;if(N.isServer)return null;let t=e==null?void 0:e.getElementById(\"headlessui-portal-root\");if(t)return t;if(e===null)return null;let n=e.createElement(\"div\");return n.setAttribute(\"id\",\"headlessui-portal-root\"),e.body.appendChild(n)});return A(()=>{r!==null&&(e!=null&&e.body.contains(r)||e==null||e.body.appendChild(r))},[r,e]),A(()=>{o||l!==null&&p(l.current)},[l,p,o]),r}let _=R,j=f(function(o,l){let{ownerDocument:r=null,...p}=o,t=x(null),n=T(h(a=>{t.current=a}),l),s=H(t.current),C=r!=null?r:s,u=W(C),y=P(m),g=O(),v=d();return F(()=>{var a;u&&u.childNodes.length<=0&&((a=u.parentElement)==null||a.removeChild(u))}),u?b(i.createElement(\"div\",{\"data-headlessui-portal\":\"\",ref:a=>{g.dispose(),y&&a&&g.add(y.register(a))}},v({ourProps:{ref:n},theirProps:p,slot:{},defaultTag:_,name:\"Portal\"})),u):null});function S(e,o){let l=T(o),{enabled:r=!0,ownerDocument:p,...t}=e,n=d();return r?i.createElement(j,{...t,ownerDocument:p,ref:l}):n({ourProps:{ref:l},theirProps:t,slot:{},defaultTag:_,name:\"Portal\"})}let I=R,c=E(null);function D(e,o){let{target:l,...r}=e,t={ref:T(o)},n=d();return i.createElement(c.Provider,{value:l},n({ourProps:t,theirProps:r,defaultTag:I,name:\"Popover.Group\"}))}let m=E(null);function ee(){let e=P(m),o=x([]),l=L(t=>(o.current.push(t),e&&e.register(t),()=>r(t))),r=L(t=>{let n=o.current.indexOf(t);n!==-1&&o.current.splice(n,1),e&&e.unregister(t)}),p=G(()=>({register:l,unregister:r,portals:o}),[l,r,o]);return[o,G(()=>function({children:n}){return i.createElement(m.Provider,{value:p},n)},[p])]}let J=f(S),X=f(D),te=Object.assign(J,{Group:X});export{te as Portal,X as PortalGroup,ee as useNestedPortals};\n","import s,{createContext as h,useContext as b,useState as p}from\"react\";import{Hidden as M,HiddenFeatures as v}from'../internal/hidden.js';import*as f from'../utils/dom.js';import{getOwnerDocument as a}from'../utils/owner.js';import{useEvent as m}from'./use-event.js';function S({defaultContainers:l=[],portals:n,mainTreeNode:o}={}){let c=m(()=>{var r,u;let i=a(o),t=[];for(let e of l)e!==null&&(f.isElement(e)?t.push(e):\"current\"in e&&f.isElement(e.current)&&t.push(e.current));if(n!=null&&n.current)for(let e of n.current)t.push(e);for(let e of(r=i==null?void 0:i.querySelectorAll(\"html > *, body > *\"))!=null?r:[])e!==document.body&&e!==document.head&&f.isElement(e)&&e.id!==\"headlessui-portal-root\"&&(o&&(e.contains(o)||e.contains((u=o==null?void 0:o.getRootNode())==null?void 0:u.host))||t.some(E=>e.contains(E))||t.push(e));return t});return{resolveContainers:c,contains:m(i=>c().some(t=>t.contains(i)))}}let d=h(null);function j({children:l,node:n}){let[o,c]=p(null),i=x(n!=null?n:o);return s.createElement(d.Provider,{value:i},l,i===null&&s.createElement(M,{features:v.Hidden,ref:t=>{var r,u;if(t){for(let e of(u=(r=a(t))==null?void 0:r.querySelectorAll(\"html > *, body > *\"))!=null?u:[])if(e!==document.body&&e!==document.head&&f.isElement(e)&&e!=null&&e.contains(t)){c(e);break}}}}))}function x(l=null){var n;return(n=b(d))!=null?n:l}export{j as MainTreeProvider,x as useMainTreeNode,S as useRootContainers};\n","import{useRef as o}from\"react\";import{useWindowEvent as t}from'./use-window-event.js';var a=(r=>(r[r.Forwards=0]=\"Forwards\",r[r.Backwards=1]=\"Backwards\",r))(a||{});function u(){let e=o(0);return t(!0,\"keydown\",r=>{r.key===\"Tab\"&&(e.current=r.shiftKey?1:0)},!0),e}export{a as Direction,u as useTabDirection};\n","var f=Object.defineProperty;var b=(t,n,e)=>n in t?f(t,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[n]=e;var p=(t,n,e)=>(b(t,typeof n!=\"symbol\"?n+\"\":n,e),e);import{Machine as P}from'../../machine.js';import{stackMachines as y}from'../../machines/stack-machine.js';import*as a from'../../utils/dom.js';import{getFocusableElements as I}from'../../utils/focus-management.js';import{match as M}from'../../utils/match.js';import{getOwnerDocument as T}from'../../utils/owner.js';var v=(e=>(e[e.Open=0]=\"Open\",e[e.Closed=1]=\"Closed\",e))(v||{}),h=(r=>(r[r.OpenPopover=0]=\"OpenPopover\",r[r.ClosePopover=1]=\"ClosePopover\",r[r.SetButton=2]=\"SetButton\",r[r.SetButtonId=3]=\"SetButtonId\",r[r.SetPanel=4]=\"SetPanel\",r[r.SetPanelId=5]=\"SetPanelId\",r))(h||{});let E={[0]:t=>t.popoverState===0?t:{...t,popoverState:0,__demoMode:!1},[1](t){return t.popoverState===1?t:{...t,popoverState:1,__demoMode:!1}},[2](t,n){return t.button===n.button?t:{...t,button:n.button}},[3](t,n){return t.buttonId===n.buttonId?t:{...t,buttonId:n.buttonId}},[4](t,n){return t.panel===n.panel?t:{...t,panel:n.panel}},[5](t,n){return t.panelId===n.panelId?t:{...t,panelId:n.panelId}}};class d extends P{constructor(e){super(e);p(this,\"actions\",{close:()=>this.send({type:1}),refocusableClose:e=>{this.actions.close();let o=(()=>e?a.isHTMLElement(e)?e:\"current\"in e&&a.isHTMLElement(e.current)?e.current:this.state.button:this.state.button)();o==null||o.focus()},open:()=>this.send({type:0}),setButtonId:e=>this.send({type:3,buttonId:e}),setButton:e=>this.send({type:2,button:e}),setPanelId:e=>this.send({type:5,panelId:e}),setPanel:e=>this.send({type:4,panel:e})});p(this,\"selectors\",{isPortalled:e=>{var i;if(!e.button||!e.panel)return!1;let o=(i=T(e.button))!=null?i:document;for(let u of o.querySelectorAll(\"body > *\"))if(Number(u==null?void 0:u.contains(e.button))^Number(u==null?void 0:u.contains(e.panel)))return!0;let l=I(o),s=l.indexOf(e.button),r=(s+l.length-1)%l.length,c=(s+1)%l.length,S=l[r],m=l[c];return!e.panel.contains(S)&&!e.panel.contains(m)}});{let o=this.state.id,l=y.get(null);this.on(0,()=>l.actions.push(o)),this.on(1,()=>l.actions.pop(o))}}static new({id:e,__demoMode:o=!1}){return new d({id:e,__demoMode:o,popoverState:o?0:1,buttons:{current:[]},button:null,buttonId:null,panel:null,panelId:null,beforePanelSentinel:{current:null},afterPanelSentinel:{current:null},afterButtonSentinel:{current:null}})}reduce(e,o){return M(o.type,E,e,o)}}export{h as ActionTypes,d as PopoverMachine,v as PopoverStates};\n","import{createContext as t,useContext as n,useMemo as i}from\"react\";import{useOnUnmount as c}from'../../hooks/use-on-unmount.js';import{PopoverMachine as p}from'./popover-machine.js';const a=t(null);function u(r){let o=n(a);if(o===null){let e=new Error(`<${r} /> is missing a parent <Popover /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(e,u),e}return o}function f({id:r,__demoMode:o=!1}){let e=i(()=>p.new({id:r,__demoMode:o}),[]);return c(()=>e.dispose()),e}export{a as PopoverContext,f as usePopoverMachine,u as usePopoverMachineContext};\n","\"use client\";import{useFocusRing as Ke}from\"@react-aria/focus\";import{useHover as We}from\"@react-aria/interactions\";import v,{createContext as _e,useCallback as ee,useContext as Ce,useEffect as pe,useMemo as De,useRef as ue,useState as ie}from\"react\";import{useActivePress as Ve}from'../../hooks/use-active-press.js';import{useElementSize as je}from'../../hooks/use-element-size.js';import{useEvent as g}from'../../hooks/use-event.js';import{useEventListener as $e}from'../../hooks/use-event-listener.js';import{useId as te}from'../../hooks/use-id.js';import{useIsoMorphicEffect as Je}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as Oe}from'../../hooks/use-latest-value.js';import{useOnDisappear as Xe}from'../../hooks/use-on-disappear.js';import{useOutsideClick as qe}from'../../hooks/use-outside-click.js';import{useOwnerDocument as xe,useRootDocument as ze}from'../../hooks/use-owner.js';import{useResolveButtonType as Ye}from'../../hooks/use-resolve-button-type.js';import{MainTreeProvider as Le,useMainTreeNode as Qe,useRootContainers as Ze}from'../../hooks/use-root-containers.js';import{useScrollLock as et}from'../../hooks/use-scroll-lock.js';import{useSlot as oe}from'../../hooks/use-slot.js';import{optionalRef as tt,useSyncRefs as J}from'../../hooks/use-sync-refs.js';import{Direction as U,useTabDirection as he}from'../../hooks/use-tab-direction.js';import{transitionDataAttributes as Se,useTransition as Me}from'../../hooks/use-transition.js';import{CloseProvider as Ge}from'../../internal/close-provider.js';import{FloatingProvider as ot,useFloatingPanel as rt,useFloatingPanelProps as nt,useFloatingReference as lt,useResolvedAnchor as at}from'../../internal/floating.js';import{Hidden as Te,HiddenFeatures as Ee}from'../../internal/hidden.js';import{OpenClosedProvider as st,ResetOpenClosedProvider as pt,State as X,useOpenClosed as ke}from'../../internal/open-closed.js';import{useSlice as q}from'../../react-glue.js';import{isDisabledReactIssue7711 as Ie}from'../../utils/bugs.js';import*as He from'../../utils/dom.js';import{Focus as w,FocusResult as be,FocusableMode as ut,focusIn as N,getFocusableElements as Ue,isFocusableElement as it}from'../../utils/focus-management.js';import{match as re}from'../../utils/match.js';import'../../utils/micro-task.js';import{getActiveElement as ne,getRootNode as ye}from'../../utils/owner.js';import{RenderFeatures as ce,forwardRefWithAs as z,mergeProps as ge,useRender as le}from'../../utils/render.js';import{Keys as K}from'../keyboard.js';import{Portal as ct,useNestedPortals as dt}from'../portal/portal.js';import{PopoverStates as P}from'./popover-machine.js';import{PopoverContext as ft,usePopoverMachine as Pt,usePopoverMachineContext as Re}from'./popover-machine-glue.js';let Fe=_e(null);Fe.displayName=\"PopoverGroupContext\";function we(){return Ce(Fe)}let de=_e(null);de.displayName=\"PopoverPanelContext\";function mt(){return Ce(de)}let vt=\"div\";function Tt(E,O){var M;let R=te(),{__demoMode:B=!1,...T}=E,n=Pt({id:R,__demoMode:B}),b=ue(null),t=J(O,tt(r=>{b.current=r})),[A,d,o,C,y]=q(n,ee(r=>[r.popoverState,r.button,r.panel,r.buttonId,r.panelId],[])),D=ze((M=b.current)!=null?M:d),_=Oe(C),a=Oe(y),u=De(()=>({buttonId:_,panelId:a,close:n.actions.close}),[_,a,n]),f=we(),l=f==null?void 0:f.registerPopover,c=g(()=>{var F,G;let r=ne((F=b.current)!=null?F:d);return(G=f==null?void 0:f.isFocusWithinPopoverGroup())!=null?G:r&&((d==null?void 0:d.contains(r))||(o==null?void 0:o.contains(r)))});pe(()=>l==null?void 0:l(u),[l,u]);let[m,W]=dt(),V=Qe(d),j=Ze({mainTreeNode:V,portals:m,defaultContainers:[{get current(){return n.state.button}},{get current(){return n.state.panel}}]});$e(D,\"focus\",r=>{var F,G,h,k,I,H;r.target!==window&&He.isHTMLorSVGElement(r.target)&&n.state.popoverState===P.Open&&(c()||n.state.button&&n.state.panel&&(j.contains(r.target)||(G=(F=n.state.beforePanelSentinel.current)==null?void 0:F.contains)!=null&&G.call(F,r.target)||(k=(h=n.state.afterPanelSentinel.current)==null?void 0:h.contains)!=null&&k.call(h,r.target)||(H=(I=n.state.afterButtonSentinel.current)==null?void 0:I.contains)!=null&&H.call(I,r.target)||n.actions.close()))},!0);let L=A===P.Open;qe(L,j.resolveContainers,(r,F)=>{n.actions.close(),it(F,ut.Loose)||(r.preventDefault(),d==null||d.focus())});let Y=oe({open:A===P.Open,close:n.actions.refocusableClose}),$=q(n,ee(r=>re(r.popoverState,{[P.Open]:X.Open,[P.Closed]:X.Closed}),[])),Q={ref:t},Z=le();return v.createElement(Le,{node:V},v.createElement(ot,null,v.createElement(de.Provider,{value:null},v.createElement(ft.Provider,{value:n},v.createElement(Ge,{value:n.actions.refocusableClose},v.createElement(st,{value:$},v.createElement(W,null,Z({ourProps:Q,theirProps:T,slot:Y,defaultTag:vt,name:\"Popover\"}))))))))}let Et=\"button\";function bt(E,O){let R=te(),{id:B=`headlessui-popover-button-${R}`,disabled:T=!1,autoFocus:n=!1,...b}=E,t=Re(\"Popover.Button\"),[A,d,o,C,y,D,_]=q(t,ee(e=>[e.popoverState,t.selectors.isPortalled(e),e.button,e.buttonId,e.panel,e.panelId,e.afterButtonSentinel],[])),a=ue(null),u=`headlessui-focus-sentinel-${te()}`,f=we(),l=f==null?void 0:f.closeOthers,m=mt()!==null;pe(()=>{if(!m)return t.actions.setButtonId(B),()=>t.actions.setButtonId(null)},[m,B,t]);let[W]=ie(()=>Symbol()),V=J(a,O,lt(),g(e=>{if(!m){if(e)t.state.buttons.current.push(W);else{let p=t.state.buttons.current.indexOf(W);p!==-1&&t.state.buttons.current.splice(p,1)}t.state.buttons.current.length>1&&console.warn(\"You are already using a <Popover.Button /> but only 1 <Popover.Button /> is supported.\"),e&&t.actions.setButton(e)}})),j=J(a,O),L=g(e=>{var p,i,x;if(m){if(t.state.popoverState===P.Closed)return;switch(e.key){case K.Space:case K.Enter:e.preventDefault(),(i=(p=e.target).click)==null||i.call(p),t.actions.close(),(x=t.state.button)==null||x.focus();break}}else switch(e.key){case K.Space:case K.Enter:e.preventDefault(),e.stopPropagation(),t.state.popoverState===P.Closed?(l==null||l(t.state.buttonId),t.actions.open()):t.actions.close();break;case K.Escape:if(t.state.popoverState!==P.Open)return l==null?void 0:l(t.state.buttonId);if(!a.current)return;let S=ne(a.current);if(S&&!a.current.contains(S))return;e.preventDefault(),e.stopPropagation(),t.actions.close();break}}),Y=g(e=>{m||e.key===K.Space&&e.preventDefault()}),$=g(e=>{var p,i;Ie(e.currentTarget)||T||(m?(t.actions.close(),(p=t.state.button)==null||p.focus()):(e.preventDefault(),e.stopPropagation(),t.state.popoverState===P.Closed?(l==null||l(t.state.buttonId),t.actions.open()):t.actions.close(),(i=t.state.button)==null||i.focus()))}),Q=g(e=>{e.preventDefault(),e.stopPropagation()}),{isFocusVisible:Z,focusProps:M}=Ke({autoFocus:n}),{isHovered:r,hoverProps:F}=We({isDisabled:T}),{pressed:G,pressProps:h}=Ve({disabled:T}),k=A===P.Open,I=oe({open:k,active:G||k,disabled:T,hover:r,focus:Z,autofocus:n}),H=Ye(E,o),fe=m?ge({ref:j,type:H,onKeyDown:L,onClick:$,disabled:T||void 0,autoFocus:n},M,F,h):ge({ref:V,id:C,type:H,\"aria-expanded\":A===P.Open,\"aria-controls\":y?D:void 0,disabled:T||void 0,autoFocus:n,onKeyDown:L,onKeyUp:Y,onClick:$,onMouseDown:Q},M,F,h),ae=he(),Pe=g(()=>{if(!He.isHTMLElement(t.state.panel))return;let e=t.state.panel;function p(){re(ae.current,{[U.Forwards]:()=>N(e,w.First),[U.Backwards]:()=>N(e,w.Last)})===be.Error&&N(Ue(ye(t.state.button)).filter(x=>x.dataset.headlessuiFocusGuard!==\"true\"),re(ae.current,{[U.Forwards]:w.Next,[U.Backwards]:w.Previous}),{relativeTo:t.state.button})}p()}),s=le();return v.createElement(v.Fragment,null,s({ourProps:fe,theirProps:b,slot:I,defaultTag:Et,name:\"Popover.Button\"}),k&&!m&&d&&v.createElement(Te,{id:u,ref:_,features:Ee.Focusable,\"data-headlessui-focus-guard\":!0,as:\"button\",type:\"button\",onFocus:Pe}))}let yt=\"div\",gt=ce.RenderStrategy|ce.Static;function Ne(E,O){let R=te(),{id:B=`headlessui-popover-backdrop-${R}`,transition:T=!1,...n}=E,b=Re(\"Popover.Backdrop\"),t=q(b,ee(l=>l.popoverState,[])),[A,d]=ie(null),o=J(O,d),C=ke(),[y,D]=Me(T,A,C!==null?(C&X.Open)===X.Open:t===P.Open),_=g(l=>{if(Ie(l.currentTarget))return l.preventDefault();b.actions.close()}),a=oe({open:t===P.Open}),u={ref:o,id:B,\"aria-hidden\":!0,onClick:_,...Se(D)};return le()({ourProps:u,theirProps:n,slot:a,defaultTag:yt,features:gt,visible:y,name:\"Popover.Backdrop\"})}let Rt=\"div\",Ft=ce.RenderStrategy|ce.Static;function Bt(E,O){let R=te(),{id:B=`headlessui-popover-panel-${R}`,focus:T=!1,anchor:n,portal:b=!1,modal:t=!1,transition:A=!1,...d}=E,o=Re(\"Popover.Panel\"),C=q(o,o.selectors.isPortalled),[y,D,_,a,u]=q(o,ee(s=>[s.popoverState,s.button,s.__demoMode,s.beforePanelSentinel,s.afterPanelSentinel],[])),f=`headlessui-focus-sentinel-before-${R}`,l=`headlessui-focus-sentinel-after-${R}`,c=ue(null),m=at(n),[W,V]=rt(m),j=nt();m&&(b=!0);let[L,Y]=ie(null),$=J(c,O,m?W:null,o.actions.setPanel,Y),Q=xe(D),Z=xe(c.current);Je(()=>(o.actions.setPanelId(B),()=>o.actions.setPanelId(null)),[B,o]);let M=ke(),[r,F]=Me(A,L,M!==null?(M&X.Open)===X.Open:y===P.Open);Xe(r,D,o.actions.close),et(_?!1:t&&r,Z);let h=g(s=>{var e;switch(s.key){case K.Escape:if(o.state.popoverState!==P.Open||!c.current)return;let p=ne(c.current);if(p&&!c.current.contains(p))return;s.preventDefault(),s.stopPropagation(),o.actions.close(),(e=o.state.button)==null||e.focus();break}});pe(()=>{var s;E.static||y===P.Closed&&((s=E.unmount)==null||s)&&o.actions.setPanel(null)},[y,E.unmount,E.static,o]),pe(()=>{if(_||!T||y!==P.Open||!c.current)return;let s=ne(c.current);c.current.contains(s)||N(c.current,w.First)},[_,T,c.current,y]);let k=oe({open:y===P.Open,close:o.actions.refocusableClose}),I=ge(m?j():{},{ref:$,id:B,onKeyDown:h,onBlur:T&&y===P.Open?s=>{var p,i,x,S,me;let e=s.relatedTarget;e&&c.current&&((p=c.current)!=null&&p.contains(e)||(o.actions.close(),((x=(i=a.current)==null?void 0:i.contains)!=null&&x.call(i,e)||(me=(S=u.current)==null?void 0:S.contains)!=null&&me.call(S,e))&&e.focus({preventScroll:!0})))}:void 0,tabIndex:-1,style:{...d.style,...V,\"--button-width\":je(r,D,!0).width},...Se(F)}),H=he(),fe=g(()=>{let s=c.current;if(!s)return;function e(){re(H.current,{[U.Forwards]:()=>{var i;N(s,w.First)===be.Error&&((i=o.state.afterPanelSentinel.current)==null||i.focus())},[U.Backwards]:()=>{var p;(p=o.state.button)==null||p.focus({preventScroll:!0})}})}e()}),ae=g(()=>{let s=c.current;if(!s)return;function e(){re(H.current,{[U.Forwards]:()=>{var Be;if(!o.state.button)return;let p=(Be=ye(o.state.button))!=null?Be:document.body,i=Ue(p),x=i.indexOf(o.state.button),S=i.slice(0,x+1),se=[...i.slice(x+1),...S];for(let ve of se.slice())if(ve.dataset.headlessuiFocusGuard===\"true\"||L!=null&&L.contains(ve)){let Ae=se.indexOf(ve);Ae!==-1&&se.splice(Ae,1)}N(se,w.First,{sorted:!1})},[U.Backwards]:()=>{var i;N(s,w.Previous)===be.Error&&((i=o.state.button)==null||i.focus())}})}e()}),Pe=le();return v.createElement(pt,null,v.createElement(de.Provider,{value:B},v.createElement(Ge,{value:o.actions.refocusableClose},v.createElement(ct,{enabled:b?E.static||r:!1,ownerDocument:Q},r&&C&&v.createElement(Te,{id:f,ref:a,features:Ee.Focusable,\"data-headlessui-focus-guard\":!0,as:\"button\",type:\"button\",onFocus:fe}),Pe({ourProps:I,theirProps:d,slot:k,defaultTag:Rt,features:Ft,visible:r,name:\"Popover.Panel\"}),r&&C&&v.createElement(Te,{id:l,ref:u,features:Ee.Focusable,\"data-headlessui-focus-guard\":!0,as:\"button\",type:\"button\",onFocus:ae})))))}let At=\"div\";function _t(E,O){let R=ue(null),B=J(R,O),[T,n]=ie([]),b=g(a=>{n(u=>{let f=u.indexOf(a);if(f!==-1){let l=u.slice();return l.splice(f,1),l}return u})}),t=g(a=>(n(u=>[...u,a]),()=>b(a))),A=g(()=>{var f;let a=ye(R.current);if(!a)return!1;let u=ne(R.current);return(f=R.current)!=null&&f.contains(u)?!0:T.some(l=>{var c,m;return((c=a.getElementById(l.buttonId.current))==null?void 0:c.contains(u))||((m=a.getElementById(l.panelId.current))==null?void 0:m.contains(u))})}),d=g(a=>{for(let u of T)u.buttonId.current!==a&&u.close()}),o=De(()=>({registerPopover:t,unregisterPopover:b,isFocusWithinPopoverGroup:A,closeOthers:d}),[t,b,A,d]),C=oe({}),y=E,D={ref:B},_=le();return v.createElement(Le,null,v.createElement(Fe.Provider,{value:o},_({ourProps:D,theirProps:y,slot:C,defaultTag:At,name:\"Popover.Group\"})))}let Ct=z(Tt),Dt=z(bt),Ot=z(Ne),xt=z(Ne),Lt=z(Bt),ht=z(_t),vo=Object.assign(Ct,{Button:Dt,Backdrop:xt,Overlay:Ot,Panel:Lt,Group:ht});export{vo as Popover,xt as PopoverBackdrop,Dt as PopoverButton,ht as PopoverGroup,Ot as PopoverOverlay,Lt as PopoverPanel};\n","import { Popover } from \"@headlessui/react\";\nimport { X } from \"phosphor-react\";\n\nexport function CloseButton() {\n  return (\n    <Popover.Button\n      title=\"Fechar formulário de feedback\"\n      aria-label=\"Fechar formulário de feedback\"\n      className=\"text-zinc-400 hover:text-zinc-100 cursor-pointer transition-colors\"\n    >\n      <X weight=\"bold\" className=\"w-4 h-4\" />\n    </Popover.Button>\n  );\n}\n","import { CircleNotch } from \"phosphor-react\";\n\nexport function Loading() {\n  return (\n    <div className=\"w-6 h-6 flex items-center justify-center overflow-hidden\">\n      <CircleNotch weight=\"bold\" className=\"w-4 h-4 animate-spin\" />\n    </div>\n  );\n}\n","import { Trash } from \"phosphor-react\";\n\ninterface ImagePreviewProps {\n  image: string | null;\n  onRemove: () => void;\n  type: \"screenshot\" | \"upload\";\n}\n\nexport function ImagePreview({ image, onRemove, type }: ImagePreviewProps) {\n  if (!image) return null;\n\n  return (\n    <div className=\"absolute inset-0 z-10 bg-zinc-800 rounded-md overflow-hidden border border-zinc-600\">\n      <img\n        src={image}\n        alt={type === \"screenshot\" ? \"Screenshot da página\" : \"Imagem enviada\"}\n        className=\"w-full h-full object-cover\"\n      />\n      <button\n        type=\"button\"\n        title=\"Remover imagem\"\n        aria-label=\"Remover imagem\"\n        onClick={onRemove}\n        className=\"absolute top-2 right-2 p-1 bg-zinc-900/60 rounded-md text-zinc-400 hover:text-zinc-100 hover:bg-zinc-800/60 transition-colors duration-200 ease-in-out\"\n      >\n        <Trash weight=\"fill\" className=\"w-4 h-4\" />\n      </button>\n    </div>\n  );\n}\n","import { useState, useRef } from \"react\";\n\nimport { Loading } from \"../loading\";\n\nimport { Upload, Trash } from \"phosphor-react\";\n\ninterface UploadButtonProps {\n  image: string | null;\n  onImageSelected: (image: string | null) => void;\n}\n\nexport function UploadButton({ image, onImageSelected }: UploadButtonProps) {\n  const [isUploading, setIsUploading] = useState(false);\n  const fileInputRef = useRef<HTMLInputElement>(null);\n\n  const handleFileSelect = (event: React.ChangeEvent<HTMLInputElement>) => {\n    const file = event.target.files?.[0];\n    if (!file) return;\n\n    if (!file.type.startsWith(\"image/\")) {\n      alert(\"Por favor, selecione apenas arquivos de imagem.\");\n      return;\n    }\n\n    if (file.size > 5 * 1024 * 1024) {\n      alert(\"A imagem deve ter no máximo 5MB.\");\n      return;\n    }\n\n    setIsUploading(true);\n\n    const reader = new FileReader();\n    reader.onload = (e) => {\n      const result = e.target?.result as string;\n      onImageSelected(result);\n      setIsUploading(false);\n    };\n    reader.onerror = () => {\n      alert(\"Erro ao carregar a imagem.\");\n      setIsUploading(false);\n    };\n    reader.readAsDataURL(file);\n  };\n\n  const handleClick = () => {\n    if (image) {\n      onImageSelected(null);\n    } else {\n      fileInputRef.current?.click();\n    }\n  };\n\n  if (image) {\n    return (\n      <button\n        type=\"button\"\n        title=\"Remover imagem\"\n        aria-label=\"Remover imagem\"\n        onClick={handleClick}\n        className=\"p-1 w-10 h-10 rounded-md border-transparent flex justify-end items-end text-zinc-400 hover:text-zinc-100 transition-colors duration-200 ease-in-out\"\n        style={{ backgroundImage: `url(${image})` }}\n      >\n        <Trash weight=\"fill\" />\n      </button>\n    );\n  }\n\n  return (\n    <>\n      <input\n        ref={fileInputRef}\n        type=\"file\"\n        accept=\"image/*\"\n        onChange={handleFileSelect}\n        className=\"hidden\"\n      />\n      <button\n        type=\"button\"\n        title=\"Enviar imagem do PC\"\n        aria-label=\"Enviar imagem do PC\"\n        onClick={handleClick}\n        className=\"p-2 bg-zinc-800 rounded-md border-transparent hover:bg-zinc-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-zinc-900 focus:ring-brand-500 transition-colors duration-200 ease-in-out\"\n      >\n        {isUploading ? (\n          <Loading />\n        ) : (\n          <Upload weight=\"bold\" className=\"w-6 h-6\" />\n        )}\n      </button>\n    </>\n  );\n}\n","'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n  return function wrap() {\n    return fn.apply(thisArg, arguments);\n  };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\nconst {iterator, toStringTag} = Symbol;\n\nconst kindOf = (cache => thing => {\n    const str = toString.call(thing);\n    return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n  type = type.toLowerCase();\n  return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n    && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n  let result;\n  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n    result = ArrayBuffer.isView(val);\n  } else {\n    result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n  }\n  return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n  if (kindOf(val) !== 'object') {\n    return false;\n  }\n\n  const prototype = getPrototypeOf(val);\n  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val);\n}\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n  // Early return for non-objects or Buffers to prevent RangeError\n  if (!isObject(val) || isBuffer(val)) {\n    return false;\n  }\n\n  try {\n    return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n  } catch (e) {\n    // Fallback for any other objects that might cause RangeError with Object.keys()\n    return false;\n  }\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n  let kind;\n  return thing && (\n    (typeof FormData === 'function' && thing instanceof FormData) || (\n      isFunction(thing.append) && (\n        (kind = kindOf(thing)) === 'formdata' ||\n        // detect form-data instance\n        (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n      )\n    )\n  )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n  str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n  // Don't bother if no value provided\n  if (obj === null || typeof obj === 'undefined') {\n    return;\n  }\n\n  let i;\n  let l;\n\n  // Force an array if not already something iterable\n  if (typeof obj !== 'object') {\n    /*eslint no-param-reassign:0*/\n    obj = [obj];\n  }\n\n  if (isArray(obj)) {\n    // Iterate over array values\n    for (i = 0, l = obj.length; i < l; i++) {\n      fn.call(null, obj[i], i, obj);\n    }\n  } else {\n    // Buffer check\n    if (isBuffer(obj)) {\n      return;\n    }\n\n    // Iterate over object keys\n    const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n    const len = keys.length;\n    let key;\n\n    for (i = 0; i < len; i++) {\n      key = keys[i];\n      fn.call(null, obj[key], key, obj);\n    }\n  }\n}\n\nfunction findKey(obj, key) {\n  if (isBuffer(obj)){\n    return null;\n  }\n\n  key = key.toLowerCase();\n  const keys = Object.keys(obj);\n  let i = keys.length;\n  let _key;\n  while (i-- > 0) {\n    _key = keys[i];\n    if (key === _key.toLowerCase()) {\n      return _key;\n    }\n  }\n  return null;\n}\n\nconst _global = (() => {\n  /*eslint no-undef:0*/\n  if (typeof globalThis !== \"undefined\") return globalThis;\n  return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n  const {caseless, skipUndefined} = isContextDefined(this) && this || {};\n  const result = {};\n  const assignValue = (val, key) => {\n    const targetKey = caseless && findKey(result, key) || key;\n    if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n      result[targetKey] = merge(result[targetKey], val);\n    } else if (isPlainObject(val)) {\n      result[targetKey] = merge({}, val);\n    } else if (isArray(val)) {\n      result[targetKey] = val.slice();\n    } else if (!skipUndefined || !isUndefined(val)) {\n      result[targetKey] = val;\n    }\n  }\n\n  for (let i = 0, l = arguments.length; i < l; i++) {\n    arguments[i] && forEach(arguments[i], assignValue);\n  }\n  return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n  forEach(b, (val, key) => {\n    if (thisArg && isFunction(val)) {\n      a[key] = bind(val, thisArg);\n    } else {\n      a[key] = val;\n    }\n  }, {allOwnKeys});\n  return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n  if (content.charCodeAt(0) === 0xFEFF) {\n    content = content.slice(1);\n  }\n  return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n  constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n  constructor.prototype.constructor = constructor;\n  Object.defineProperty(constructor, 'super', {\n    value: superConstructor.prototype\n  });\n  props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n  let props;\n  let i;\n  let prop;\n  const merged = {};\n\n  destObj = destObj || {};\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  if (sourceObj == null) return destObj;\n\n  do {\n    props = Object.getOwnPropertyNames(sourceObj);\n    i = props.length;\n    while (i-- > 0) {\n      prop = props[i];\n      if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n        destObj[prop] = sourceObj[prop];\n        merged[prop] = true;\n      }\n    }\n    sourceObj = filter !== false && getPrototypeOf(sourceObj);\n  } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n  return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n  str = String(str);\n  if (position === undefined || position > str.length) {\n    position = str.length;\n  }\n  position -= searchString.length;\n  const lastIndex = str.indexOf(searchString, position);\n  return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n  if (!thing) return null;\n  if (isArray(thing)) return thing;\n  let i = thing.length;\n  if (!isNumber(i)) return null;\n  const arr = new Array(i);\n  while (i-- > 0) {\n    arr[i] = thing[i];\n  }\n  return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n  // eslint-disable-next-line func-names\n  return thing => {\n    return TypedArray && thing instanceof TypedArray;\n  };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n  const generator = obj && obj[iterator];\n\n  const _iterator = generator.call(obj);\n\n  let result;\n\n  while ((result = _iterator.next()) && !result.done) {\n    const pair = result.value;\n    fn.call(obj, pair[0], pair[1]);\n  }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n  let matches;\n  const arr = [];\n\n  while ((matches = regExp.exec(str)) !== null) {\n    arr.push(matches);\n  }\n\n  return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n  return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n    function replacer(m, p1, p2) {\n      return p1.toUpperCase() + p2;\n    }\n  );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n  const descriptors = Object.getOwnPropertyDescriptors(obj);\n  const reducedDescriptors = {};\n\n  forEach(descriptors, (descriptor, name) => {\n    let ret;\n    if ((ret = reducer(descriptor, name, obj)) !== false) {\n      reducedDescriptors[name] = ret || descriptor;\n    }\n  });\n\n  Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n  reduceDescriptors(obj, (descriptor, name) => {\n    // skip restricted props in strict mode\n    if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n      return false;\n    }\n\n    const value = obj[name];\n\n    if (!isFunction(value)) return;\n\n    descriptor.enumerable = false;\n\n    if ('writable' in descriptor) {\n      descriptor.writable = false;\n      return;\n    }\n\n    if (!descriptor.set) {\n      descriptor.set = () => {\n        throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n      };\n    }\n  });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n  const obj = {};\n\n  const define = (arr) => {\n    arr.forEach(value => {\n      obj[value] = true;\n    });\n  }\n\n  isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n  return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n  return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\n\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n  return !!(thing && isFunction(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);\n}\n\nconst toJSONObject = (obj) => {\n  const stack = new Array(10);\n\n  const visit = (source, i) => {\n\n    if (isObject(source)) {\n      if (stack.indexOf(source) >= 0) {\n        return;\n      }\n\n      //Buffer check\n      if (isBuffer(source)) {\n        return source;\n      }\n\n      if(!('toJSON' in source)) {\n        stack[i] = source;\n        const target = isArray(source) ? [] : {};\n\n        forEach(source, (value, key) => {\n          const reducedValue = visit(value, i + 1);\n          !isUndefined(reducedValue) && (target[key] = reducedValue);\n        });\n\n        stack[i] = undefined;\n\n        return target;\n      }\n    }\n\n    return source;\n  }\n\n  return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n  thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n  if (setImmediateSupported) {\n    return setImmediate;\n  }\n\n  return postMessageSupported ? ((token, callbacks) => {\n    _global.addEventListener(\"message\", ({source, data}) => {\n      if (source === _global && data === token) {\n        callbacks.length && callbacks.shift()();\n      }\n    }, false);\n\n    return (cb) => {\n      callbacks.push(cb);\n      _global.postMessage(token, \"*\");\n    }\n  })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n  typeof setImmediate === 'function',\n  isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n  queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\n\nexport default {\n  isArray,\n  isArrayBuffer,\n  isBuffer,\n  isFormData,\n  isArrayBufferView,\n  isString,\n  isNumber,\n  isBoolean,\n  isObject,\n  isPlainObject,\n  isEmptyObject,\n  isReadableStream,\n  isRequest,\n  isResponse,\n  isHeaders,\n  isUndefined,\n  isDate,\n  isFile,\n  isBlob,\n  isRegExp,\n  isFunction,\n  isStream,\n  isURLSearchParams,\n  isTypedArray,\n  isFileList,\n  forEach,\n  merge,\n  extend,\n  trim,\n  stripBOM,\n  inherits,\n  toFlatObject,\n  kindOf,\n  kindOfTest,\n  endsWith,\n  toArray,\n  forEachEntry,\n  matchAll,\n  isHTMLForm,\n  hasOwnProperty,\n  hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n  reduceDescriptors,\n  freezeMethods,\n  toObjectSet,\n  toCamelCase,\n  noop,\n  toFiniteNumber,\n  findKey,\n  global: _global,\n  isContextDefined,\n  isSpecCompliantForm,\n  toJSONObject,\n  isAsyncFn,\n  isThenable,\n  setImmediate: _setImmediate,\n  asap,\n  isIterable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n  Error.call(this);\n\n  if (Error.captureStackTrace) {\n    Error.captureStackTrace(this, this.constructor);\n  } else {\n    this.stack = (new Error()).stack;\n  }\n\n  this.message = message;\n  this.name = 'AxiosError';\n  code && (this.code = code);\n  config && (this.config = config);\n  request && (this.request = request);\n  if (response) {\n    this.response = response;\n    this.status = response.status ? response.status : null;\n  }\n}\n\nutils.inherits(AxiosError, Error, {\n  toJSON: function toJSON() {\n    return {\n      // Standard\n      message: this.message,\n      name: this.name,\n      // Microsoft\n      description: this.description,\n      number: this.number,\n      // Mozilla\n      fileName: this.fileName,\n      lineNumber: this.lineNumber,\n      columnNumber: this.columnNumber,\n      stack: this.stack,\n      // Axios\n      config: utils.toJSONObject(this.config),\n      code: this.code,\n      status: this.status\n    };\n  }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n  'ERR_BAD_OPTION_VALUE',\n  'ERR_BAD_OPTION',\n  'ECONNABORTED',\n  'ETIMEDOUT',\n  'ERR_NETWORK',\n  'ERR_FR_TOO_MANY_REDIRECTS',\n  'ERR_DEPRECATED',\n  'ERR_BAD_RESPONSE',\n  'ERR_BAD_REQUEST',\n  'ERR_CANCELED',\n  'ERR_NOT_SUPPORT',\n  'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n  descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n  const axiosError = Object.create(prototype);\n\n  utils.toFlatObject(error, axiosError, function filter(obj) {\n    return obj !== Error.prototype;\n  }, prop => {\n    return prop !== 'isAxiosError';\n  });\n\n  const msg = error && error.message ? error.message : 'Error';\n\n  // Prefer explicit code; otherwise copy the low-level error's code (e.g. ECONNREFUSED)\n  const errCode = code == null && error ? error.code : code;\n  AxiosError.call(axiosError, msg, errCode, config, request, response);\n\n  // Chain the original error on the standard field; non-enumerable to avoid JSON noise\n  if (error && axiosError.cause == null) {\n    Object.defineProperty(axiosError, 'cause', { value: error, configurable: true });\n  }\n\n  axiosError.name = (error && error.name) || 'Error';\n\n  customProps && Object.assign(axiosError, customProps);\n\n  return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n  return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n  return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n  if (!path) return key;\n  return path.concat(key).map(function each(token, i) {\n    // eslint-disable-next-line no-param-reassign\n    token = removeBrackets(token);\n    return !dots && i ? '[' + token + ']' : token;\n  }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n  return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n  return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n  if (!utils.isObject(obj)) {\n    throw new TypeError('target must be an object');\n  }\n\n  // eslint-disable-next-line no-param-reassign\n  formData = formData || new (PlatformFormData || FormData)();\n\n  // eslint-disable-next-line no-param-reassign\n  options = utils.toFlatObject(options, {\n    metaTokens: true,\n    dots: false,\n    indexes: false\n  }, false, function defined(option, source) {\n    // eslint-disable-next-line no-eq-null,eqeqeq\n    return !utils.isUndefined(source[option]);\n  });\n\n  const metaTokens = options.metaTokens;\n  // eslint-disable-next-line no-use-before-define\n  const visitor = options.visitor || defaultVisitor;\n  const dots = options.dots;\n  const indexes = options.indexes;\n  const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n  const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n  if (!utils.isFunction(visitor)) {\n    throw new TypeError('visitor must be a function');\n  }\n\n  function convertValue(value) {\n    if (value === null) return '';\n\n    if (utils.isDate(value)) {\n      return value.toISOString();\n    }\n\n    if (utils.isBoolean(value)) {\n      return value.toString();\n    }\n\n    if (!useBlob && utils.isBlob(value)) {\n      throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n    }\n\n    if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n      return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n    }\n\n    return value;\n  }\n\n  /**\n   * Default visitor.\n   *\n   * @param {*} value\n   * @param {String|Number} key\n   * @param {Array<String|Number>} path\n   * @this {FormData}\n   *\n   * @returns {boolean} return true to visit the each prop of the value recursively\n   */\n  function defaultVisitor(value, key, path) {\n    let arr = value;\n\n    if (value && !path && typeof value === 'object') {\n      if (utils.endsWith(key, '{}')) {\n        // eslint-disable-next-line no-param-reassign\n        key = metaTokens ? key : key.slice(0, -2);\n        // eslint-disable-next-line no-param-reassign\n        value = JSON.stringify(value);\n      } else if (\n        (utils.isArray(value) && isFlatArray(value)) ||\n        ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n        )) {\n        // eslint-disable-next-line no-param-reassign\n        key = removeBrackets(key);\n\n        arr.forEach(function each(el, index) {\n          !(utils.isUndefined(el) || el === null) && formData.append(\n            // eslint-disable-next-line no-nested-ternary\n            indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n            convertValue(el)\n          );\n        });\n        return false;\n      }\n    }\n\n    if (isVisitable(value)) {\n      return true;\n    }\n\n    formData.append(renderKey(path, key, dots), convertValue(value));\n\n    return false;\n  }\n\n  const stack = [];\n\n  const exposedHelpers = Object.assign(predicates, {\n    defaultVisitor,\n    convertValue,\n    isVisitable\n  });\n\n  function build(value, path) {\n    if (utils.isUndefined(value)) return;\n\n    if (stack.indexOf(value) !== -1) {\n      throw Error('Circular reference detected in ' + path.join('.'));\n    }\n\n    stack.push(value);\n\n    utils.forEach(value, function each(el, key) {\n      const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n        formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n      );\n\n      if (result === true) {\n        build(el, path ? path.concat(key) : [key]);\n      }\n    });\n\n    stack.pop();\n  }\n\n  if (!utils.isObject(obj)) {\n    throw new TypeError('data must be an object');\n  }\n\n  build(obj);\n\n  return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n  const charMap = {\n    '!': '%21',\n    \"'\": '%27',\n    '(': '%28',\n    ')': '%29',\n    '~': '%7E',\n    '%20': '+',\n    '%00': '\\x00'\n  };\n  return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n    return charMap[match];\n  });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n  this._pairs = [];\n\n  params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n  this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n  const _encode = encoder ? function(value) {\n    return encoder.call(this, value, encode);\n  } : encode;\n\n  return this._pairs.map(function each(pair) {\n    return _encode(pair[0]) + '=' + _encode(pair[1]);\n  }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n  return encodeURIComponent(val).\n    replace(/%3A/gi, ':').\n    replace(/%24/g, '$').\n    replace(/%2C/gi, ',').\n    replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n  \n  const _encode = options && options.encode || encode;\n\n  if (utils.isFunction(options)) {\n    options = {\n      serialize: options\n    };\n  } \n\n  const serializeFn = options && options.serialize;\n\n  let serializedParams;\n\n  if (serializeFn) {\n    serializedParams = serializeFn(params, options);\n  } else {\n    serializedParams = utils.isURLSearchParams(params) ?\n      params.toString() :\n      new AxiosURLSearchParams(params, options).toString(_encode);\n  }\n\n  if (serializedParams) {\n    const hashmarkIndex = url.indexOf(\"#\");\n\n    if (hashmarkIndex !== -1) {\n      url = url.slice(0, hashmarkIndex);\n    }\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n\n  return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n  constructor() {\n    this.handlers = [];\n  }\n\n  /**\n   * Add a new interceptor to the stack\n   *\n   * @param {Function} fulfilled The function to handle `then` for a `Promise`\n   * @param {Function} rejected The function to handle `reject` for a `Promise`\n   *\n   * @return {Number} An ID used to remove interceptor later\n   */\n  use(fulfilled, rejected, options) {\n    this.handlers.push({\n      fulfilled,\n      rejected,\n      synchronous: options ? options.synchronous : false,\n      runWhen: options ? options.runWhen : null\n    });\n    return this.handlers.length - 1;\n  }\n\n  /**\n   * Remove an interceptor from the stack\n   *\n   * @param {Number} id The ID that was returned by `use`\n   *\n   * @returns {void}\n   */\n  eject(id) {\n    if (this.handlers[id]) {\n      this.handlers[id] = null;\n    }\n  }\n\n  /**\n   * Clear all interceptors from the stack\n   *\n   * @returns {void}\n   */\n  clear() {\n    if (this.handlers) {\n      this.handlers = [];\n    }\n  }\n\n  /**\n   * Iterate over all the registered interceptors\n   *\n   * This method is particularly useful for skipping over any\n   * interceptors that may have become `null` calling `eject`.\n   *\n   * @param {Function} fn The function to call for each interceptor\n   *\n   * @returns {void}\n   */\n  forEach(fn) {\n    utils.forEach(this.handlers, function forEachHandler(h) {\n      if (h !== null) {\n        fn(h);\n      }\n    });\n  }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n  silentJSONParsing: true,\n  forcedJSONParsing: true,\n  clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n  isBrowser: true,\n  classes: {\n    URLSearchParams,\n    FormData,\n    Blob\n  },\n  protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n *  typeof window -> undefined\n *  typeof document -> undefined\n *\n * react-native:\n *  navigator.product -> 'ReactNative'\n * nativescript\n *  navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n  (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n  return (\n    typeof WorkerGlobalScope !== 'undefined' &&\n    // eslint-disable-next-line no-undef\n    self instanceof WorkerGlobalScope &&\n    typeof self.importScripts === 'function'\n  );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n  hasBrowserEnv,\n  hasStandardBrowserWebWorkerEnv,\n  hasStandardBrowserEnv,\n  _navigator as navigator,\n  origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n  ...utils,\n  ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n  return toFormData(data, new platform.classes.URLSearchParams(), {\n    visitor: function(value, key, path, helpers) {\n      if (platform.isNode && utils.isBuffer(value)) {\n        this.append(key, value.toString('base64'));\n        return false;\n      }\n\n      return helpers.defaultVisitor.apply(this, arguments);\n    },\n    ...options\n  });\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n  // foo[x][y][z]\n  // foo.x.y.z\n  // foo-x-y-z\n  // foo x y z\n  return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n    return match[0] === '[]' ? '' : match[1] || match[0];\n  });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n  const obj = {};\n  const keys = Object.keys(arr);\n  let i;\n  const len = keys.length;\n  let key;\n  for (i = 0; i < len; i++) {\n    key = keys[i];\n    obj[key] = arr[key];\n  }\n  return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n  function buildPath(path, value, target, index) {\n    let name = path[index++];\n\n    if (name === '__proto__') return true;\n\n    const isNumericKey = Number.isFinite(+name);\n    const isLast = index >= path.length;\n    name = !name && utils.isArray(target) ? target.length : name;\n\n    if (isLast) {\n      if (utils.hasOwnProp(target, name)) {\n        target[name] = [target[name], value];\n      } else {\n        target[name] = value;\n      }\n\n      return !isNumericKey;\n    }\n\n    if (!target[name] || !utils.isObject(target[name])) {\n      target[name] = [];\n    }\n\n    const result = buildPath(path, value, target[name], index);\n\n    if (result && utils.isArray(target[name])) {\n      target[name] = arrayToObject(target[name]);\n    }\n\n    return !isNumericKey;\n  }\n\n  if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n    const obj = {};\n\n    utils.forEachEntry(formData, (name, value) => {\n      buildPath(parsePropPath(name), value, obj, 0);\n    });\n\n    return obj;\n  }\n\n  return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n  if (utils.isString(rawValue)) {\n    try {\n      (parser || JSON.parse)(rawValue);\n      return utils.trim(rawValue);\n    } catch (e) {\n      if (e.name !== 'SyntaxError') {\n        throw e;\n      }\n    }\n  }\n\n  return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n  transitional: transitionalDefaults,\n\n  adapter: ['xhr', 'http', 'fetch'],\n\n  transformRequest: [function transformRequest(data, headers) {\n    const contentType = headers.getContentType() || '';\n    const hasJSONContentType = contentType.indexOf('application/json') > -1;\n    const isObjectPayload = utils.isObject(data);\n\n    if (isObjectPayload && utils.isHTMLForm(data)) {\n      data = new FormData(data);\n    }\n\n    const isFormData = utils.isFormData(data);\n\n    if (isFormData) {\n      return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n    }\n\n    if (utils.isArrayBuffer(data) ||\n      utils.isBuffer(data) ||\n      utils.isStream(data) ||\n      utils.isFile(data) ||\n      utils.isBlob(data) ||\n      utils.isReadableStream(data)\n    ) {\n      return data;\n    }\n    if (utils.isArrayBufferView(data)) {\n      return data.buffer;\n    }\n    if (utils.isURLSearchParams(data)) {\n      headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n      return data.toString();\n    }\n\n    let isFileList;\n\n    if (isObjectPayload) {\n      if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n        return toURLEncodedForm(data, this.formSerializer).toString();\n      }\n\n      if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n        const _FormData = this.env && this.env.FormData;\n\n        return toFormData(\n          isFileList ? {'files[]': data} : data,\n          _FormData && new _FormData(),\n          this.formSerializer\n        );\n      }\n    }\n\n    if (isObjectPayload || hasJSONContentType ) {\n      headers.setContentType('application/json', false);\n      return stringifySafely(data);\n    }\n\n    return data;\n  }],\n\n  transformResponse: [function transformResponse(data) {\n    const transitional = this.transitional || defaults.transitional;\n    const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n    const JSONRequested = this.responseType === 'json';\n\n    if (utils.isResponse(data) || utils.isReadableStream(data)) {\n      return data;\n    }\n\n    if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n      const silentJSONParsing = transitional && transitional.silentJSONParsing;\n      const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n      try {\n        return JSON.parse(data, this.parseReviver);\n      } catch (e) {\n        if (strictJSONParsing) {\n          if (e.name === 'SyntaxError') {\n            throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n          }\n          throw e;\n        }\n      }\n    }\n\n    return data;\n  }],\n\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n\n  xsrfCookieName: 'XSRF-TOKEN',\n  xsrfHeaderName: 'X-XSRF-TOKEN',\n\n  maxContentLength: -1,\n  maxBodyLength: -1,\n\n  env: {\n    FormData: platform.classes.FormData,\n    Blob: platform.classes.Blob\n  },\n\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  },\n\n  headers: {\n    common: {\n      'Accept': 'application/json, text/plain, */*',\n      'Content-Type': undefined\n    }\n  }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n  defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n  'age', 'authorization', 'content-length', 'content-type', 'etag',\n  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n  'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n  'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n  const parsed = {};\n  let key;\n  let val;\n  let i;\n\n  rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n    i = line.indexOf(':');\n    key = line.substring(0, i).trim().toLowerCase();\n    val = line.substring(i + 1).trim();\n\n    if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n      return;\n    }\n\n    if (key === 'set-cookie') {\n      if (parsed[key]) {\n        parsed[key].push(val);\n      } else {\n        parsed[key] = [val];\n      }\n    } else {\n      parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n    }\n  });\n\n  return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n  return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n  if (value === false || value == null) {\n    return value;\n  }\n\n  return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n  const tokens = Object.create(null);\n  const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n  let match;\n\n  while ((match = tokensRE.exec(str))) {\n    tokens[match[1]] = match[2];\n  }\n\n  return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n  if (utils.isFunction(filter)) {\n    return filter.call(this, value, header);\n  }\n\n  if (isHeaderNameFilter) {\n    value = header;\n  }\n\n  if (!utils.isString(value)) return;\n\n  if (utils.isString(filter)) {\n    return value.indexOf(filter) !== -1;\n  }\n\n  if (utils.isRegExp(filter)) {\n    return filter.test(value);\n  }\n}\n\nfunction formatHeader(header) {\n  return header.trim()\n    .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n      return char.toUpperCase() + str;\n    });\n}\n\nfunction buildAccessors(obj, header) {\n  const accessorName = utils.toCamelCase(' ' + header);\n\n  ['get', 'set', 'has'].forEach(methodName => {\n    Object.defineProperty(obj, methodName + accessorName, {\n      value: function(arg1, arg2, arg3) {\n        return this[methodName].call(this, header, arg1, arg2, arg3);\n      },\n      configurable: true\n    });\n  });\n}\n\nclass AxiosHeaders {\n  constructor(headers) {\n    headers && this.set(headers);\n  }\n\n  set(header, valueOrRewrite, rewrite) {\n    const self = this;\n\n    function setHeader(_value, _header, _rewrite) {\n      const lHeader = normalizeHeader(_header);\n\n      if (!lHeader) {\n        throw new Error('header name must be a non-empty string');\n      }\n\n      const key = utils.findKey(self, lHeader);\n\n      if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n        self[key || _header] = normalizeValue(_value);\n      }\n    }\n\n    const setHeaders = (headers, _rewrite) =>\n      utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n    if (utils.isPlainObject(header) || header instanceof this.constructor) {\n      setHeaders(header, valueOrRewrite)\n    } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n      setHeaders(parseHeaders(header), valueOrRewrite);\n    } else if (utils.isObject(header) && utils.isIterable(header)) {\n      let obj = {}, dest, key;\n      for (const entry of header) {\n        if (!utils.isArray(entry)) {\n          throw TypeError('Object iterator must return a key-value pair');\n        }\n\n        obj[key = entry[0]] = (dest = obj[key]) ?\n          (utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]) : entry[1];\n      }\n\n      setHeaders(obj, valueOrRewrite)\n    } else {\n      header != null && setHeader(valueOrRewrite, header, rewrite);\n    }\n\n    return this;\n  }\n\n  get(header, parser) {\n    header = normalizeHeader(header);\n\n    if (header) {\n      const key = utils.findKey(this, header);\n\n      if (key) {\n        const value = this[key];\n\n        if (!parser) {\n          return value;\n        }\n\n        if (parser === true) {\n          return parseTokens(value);\n        }\n\n        if (utils.isFunction(parser)) {\n          return parser.call(this, value, key);\n        }\n\n        if (utils.isRegExp(parser)) {\n          return parser.exec(value);\n        }\n\n        throw new TypeError('parser must be boolean|regexp|function');\n      }\n    }\n  }\n\n  has(header, matcher) {\n    header = normalizeHeader(header);\n\n    if (header) {\n      const key = utils.findKey(this, header);\n\n      return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n    }\n\n    return false;\n  }\n\n  delete(header, matcher) {\n    const self = this;\n    let deleted = false;\n\n    function deleteHeader(_header) {\n      _header = normalizeHeader(_header);\n\n      if (_header) {\n        const key = utils.findKey(self, _header);\n\n        if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n          delete self[key];\n\n          deleted = true;\n        }\n      }\n    }\n\n    if (utils.isArray(header)) {\n      header.forEach(deleteHeader);\n    } else {\n      deleteHeader(header);\n    }\n\n    return deleted;\n  }\n\n  clear(matcher) {\n    const keys = Object.keys(this);\n    let i = keys.length;\n    let deleted = false;\n\n    while (i--) {\n      const key = keys[i];\n      if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n        delete this[key];\n        deleted = true;\n      }\n    }\n\n    return deleted;\n  }\n\n  normalize(format) {\n    const self = this;\n    const headers = {};\n\n    utils.forEach(this, (value, header) => {\n      const key = utils.findKey(headers, header);\n\n      if (key) {\n        self[key] = normalizeValue(value);\n        delete self[header];\n        return;\n      }\n\n      const normalized = format ? formatHeader(header) : String(header).trim();\n\n      if (normalized !== header) {\n        delete self[header];\n      }\n\n      self[normalized] = normalizeValue(value);\n\n      headers[normalized] = true;\n    });\n\n    return this;\n  }\n\n  concat(...targets) {\n    return this.constructor.concat(this, ...targets);\n  }\n\n  toJSON(asStrings) {\n    const obj = Object.create(null);\n\n    utils.forEach(this, (value, header) => {\n      value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n    });\n\n    return obj;\n  }\n\n  [Symbol.iterator]() {\n    return Object.entries(this.toJSON())[Symbol.iterator]();\n  }\n\n  toString() {\n    return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n  }\n\n  getSetCookie() {\n    return this.get(\"set-cookie\") || [];\n  }\n\n  get [Symbol.toStringTag]() {\n    return 'AxiosHeaders';\n  }\n\n  static from(thing) {\n    return thing instanceof this ? thing : new this(thing);\n  }\n\n  static concat(first, ...targets) {\n    const computed = new this(first);\n\n    targets.forEach((target) => computed.set(target));\n\n    return computed;\n  }\n\n  static accessor(header) {\n    const internals = this[$internals] = (this[$internals] = {\n      accessors: {}\n    });\n\n    const accessors = internals.accessors;\n    const prototype = this.prototype;\n\n    function defineAccessor(_header) {\n      const lHeader = normalizeHeader(_header);\n\n      if (!accessors[lHeader]) {\n        buildAccessors(prototype, _header);\n        accessors[lHeader] = true;\n      }\n    }\n\n    utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n    return this;\n  }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n  let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n  return {\n    get: () => value,\n    set(headerValue) {\n      this[mapped] = headerValue;\n    }\n  }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n  const config = this || defaults;\n  const context = response || config;\n  const headers = AxiosHeaders.from(context.headers);\n  let data = context.data;\n\n  utils.forEach(fns, function transform(fn) {\n    data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n  });\n\n  headers.normalize();\n\n  return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n  return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n  this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n  __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n  const validateStatus = response.config.validateStatus;\n  if (!response.status || !validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(new AxiosError(\n      'Request failed with status code ' + response.status,\n      [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n      response.config,\n      response.request,\n      response\n    ));\n  }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n  const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n  return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n  samplesCount = samplesCount || 10;\n  const bytes = new Array(samplesCount);\n  const timestamps = new Array(samplesCount);\n  let head = 0;\n  let tail = 0;\n  let firstSampleTS;\n\n  min = min !== undefined ? min : 1000;\n\n  return function push(chunkLength) {\n    const now = Date.now();\n\n    const startedAt = timestamps[tail];\n\n    if (!firstSampleTS) {\n      firstSampleTS = now;\n    }\n\n    bytes[head] = chunkLength;\n    timestamps[head] = now;\n\n    let i = tail;\n    let bytesCount = 0;\n\n    while (i !== head) {\n      bytesCount += bytes[i++];\n      i = i % samplesCount;\n    }\n\n    head = (head + 1) % samplesCount;\n\n    if (head === tail) {\n      tail = (tail + 1) % samplesCount;\n    }\n\n    if (now - firstSampleTS < min) {\n      return;\n    }\n\n    const passed = startedAt && now - startedAt;\n\n    return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n  };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n  let timestamp = 0;\n  let threshold = 1000 / freq;\n  let lastArgs;\n  let timer;\n\n  const invoke = (args, now = Date.now()) => {\n    timestamp = now;\n    lastArgs = null;\n    if (timer) {\n      clearTimeout(timer);\n      timer = null;\n    }\n    fn(...args);\n  }\n\n  const throttled = (...args) => {\n    const now = Date.now();\n    const passed = now - timestamp;\n    if ( passed >= threshold) {\n      invoke(args, now);\n    } else {\n      lastArgs = args;\n      if (!timer) {\n        timer = setTimeout(() => {\n          timer = null;\n          invoke(lastArgs)\n        }, threshold - passed);\n      }\n    }\n  }\n\n  const flush = () => lastArgs && invoke(lastArgs);\n\n  return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n  let bytesNotified = 0;\n  const _speedometer = speedometer(50, 250);\n\n  return throttle(e => {\n    const loaded = e.loaded;\n    const total = e.lengthComputable ? e.total : undefined;\n    const progressBytes = loaded - bytesNotified;\n    const rate = _speedometer(progressBytes);\n    const inRange = loaded <= total;\n\n    bytesNotified = loaded;\n\n    const data = {\n      loaded,\n      total,\n      progress: total ? (loaded / total) : undefined,\n      bytes: progressBytes,\n      rate: rate ? rate : undefined,\n      estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n      event: e,\n      lengthComputable: total != null,\n      [isDownloadStream ? 'download' : 'upload']: true\n    };\n\n    listener(data);\n  }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n  const lengthComputable = total != null;\n\n  return [(loaded) => throttled[0]({\n    lengthComputable,\n    total,\n    loaded\n  }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n  url = new URL(url, platform.origin);\n\n  return (\n    origin.protocol === url.protocol &&\n    origin.host === url.host &&\n    (isMSIE || origin.port === url.port)\n  );\n})(\n  new URL(platform.origin),\n  platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n  // Standard browser envs support document.cookie\n  {\n    write(name, value, expires, path, domain, secure, sameSite) {\n      if (typeof document === 'undefined') return;\n\n      const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n      if (utils.isNumber(expires)) {\n        cookie.push(`expires=${new Date(expires).toUTCString()}`);\n      }\n      if (utils.isString(path)) {\n        cookie.push(`path=${path}`);\n      }\n      if (utils.isString(domain)) {\n        cookie.push(`domain=${domain}`);\n      }\n      if (secure === true) {\n        cookie.push('secure');\n      }\n      if (utils.isString(sameSite)) {\n        cookie.push(`SameSite=${sameSite}`);\n      }\n\n      document.cookie = cookie.join('; ');\n    },\n\n    read(name) {\n      if (typeof document === 'undefined') return null;\n      const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));\n      return match ? decodeURIComponent(match[1]) : null;\n    },\n\n    remove(name) {\n      this.write(name, '', Date.now() - 86400000, '/');\n    }\n  }\n\n  :\n\n  // Non-standard browser env (web workers, react-native) lack needed support.\n  {\n    write() {},\n    read() {\n      return null;\n    },\n    remove() {}\n  };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n  // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n  // by any combination of letters, digits, plus, period, or hyphen.\n  return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n  return relativeURL\n    ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n    : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n  let isRelativeUrl = !isAbsoluteURL(requestedURL);\n  if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n    return combineURLs(baseURL, requestedURL);\n  }\n  return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n  // eslint-disable-next-line no-param-reassign\n  config2 = config2 || {};\n  const config = {};\n\n  function getMergedValue(target, source, prop, caseless) {\n    if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n      return utils.merge.call({caseless}, target, source);\n    } else if (utils.isPlainObject(source)) {\n      return utils.merge({}, source);\n    } else if (utils.isArray(source)) {\n      return source.slice();\n    }\n    return source;\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDeepProperties(a, b, prop, caseless) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(a, b, prop, caseless);\n    } else if (!utils.isUndefined(a)) {\n      return getMergedValue(undefined, a, prop, caseless);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function valueFromConfig2(a, b) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function defaultToConfig2(a, b) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    } else if (!utils.isUndefined(a)) {\n      return getMergedValue(undefined, a);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDirectKeys(a, b, prop) {\n    if (prop in config2) {\n      return getMergedValue(a, b);\n    } else if (prop in config1) {\n      return getMergedValue(undefined, a);\n    }\n  }\n\n  const mergeMap = {\n    url: valueFromConfig2,\n    method: valueFromConfig2,\n    data: valueFromConfig2,\n    baseURL: defaultToConfig2,\n    transformRequest: defaultToConfig2,\n    transformResponse: defaultToConfig2,\n    paramsSerializer: defaultToConfig2,\n    timeout: defaultToConfig2,\n    timeoutMessage: defaultToConfig2,\n    withCredentials: defaultToConfig2,\n    withXSRFToken: defaultToConfig2,\n    adapter: defaultToConfig2,\n    responseType: defaultToConfig2,\n    xsrfCookieName: defaultToConfig2,\n    xsrfHeaderName: defaultToConfig2,\n    onUploadProgress: defaultToConfig2,\n    onDownloadProgress: defaultToConfig2,\n    decompress: defaultToConfig2,\n    maxContentLength: defaultToConfig2,\n    maxBodyLength: defaultToConfig2,\n    beforeRedirect: defaultToConfig2,\n    transport: defaultToConfig2,\n    httpAgent: defaultToConfig2,\n    httpsAgent: defaultToConfig2,\n    cancelToken: defaultToConfig2,\n    socketPath: defaultToConfig2,\n    responseEncoding: defaultToConfig2,\n    validateStatus: mergeDirectKeys,\n    headers: (a, b, prop) => mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true)\n  };\n\n  utils.forEach(Object.keys({...config1, ...config2}), function computeConfigValue(prop) {\n    const merge = mergeMap[prop] || mergeDeepProperties;\n    const configValue = merge(config1[prop], config2[prop], prop);\n    (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n  });\n\n  return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n  const newConfig = mergeConfig({}, config);\n\n  let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n\n  newConfig.headers = headers = AxiosHeaders.from(headers);\n\n  newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);\n\n  // HTTP basic authentication\n  if (auth) {\n    headers.set('Authorization', 'Basic ' +\n      btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n    );\n  }\n\n  if (utils.isFormData(data)) {\n    if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n      headers.setContentType(undefined); // browser handles it\n    } else if (utils.isFunction(data.getHeaders)) {\n      // Node.js FormData (like form-data package)\n      const formHeaders = data.getHeaders();\n      // Only set safe headers to avoid overwriting security headers\n      const allowedHeaders = ['content-type', 'content-length'];\n      Object.entries(formHeaders).forEach(([key, val]) => {\n        if (allowedHeaders.includes(key.toLowerCase())) {\n          headers.set(key, val);\n        }\n      });\n    }\n  }  \n\n  // Add xsrf header\n  // This is only done if running in a standard browser environment.\n  // Specifically not if we're in a web worker, or react-native.\n\n  if (platform.hasStandardBrowserEnv) {\n    withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n    if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n      // Add xsrf header\n      const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n      if (xsrfValue) {\n        headers.set(xsrfHeaderName, xsrfValue);\n      }\n    }\n  }\n\n  return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    const _config = resolveConfig(config);\n    let requestData = _config.data;\n    const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n    let {responseType, onUploadProgress, onDownloadProgress} = _config;\n    let onCanceled;\n    let uploadThrottled, downloadThrottled;\n    let flushUpload, flushDownload;\n\n    function done() {\n      flushUpload && flushUpload(); // flush events\n      flushDownload && flushDownload(); // flush events\n\n      _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n      _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n    }\n\n    let request = new XMLHttpRequest();\n\n    request.open(_config.method.toUpperCase(), _config.url, true);\n\n    // Set the request timeout in MS\n    request.timeout = _config.timeout;\n\n    function onloadend() {\n      if (!request) {\n        return;\n      }\n      // Prepare the response\n      const responseHeaders = AxiosHeaders.from(\n        'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n      );\n      const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n        request.responseText : request.response;\n      const response = {\n        data: responseData,\n        status: request.status,\n        statusText: request.statusText,\n        headers: responseHeaders,\n        config,\n        request\n      };\n\n      settle(function _resolve(value) {\n        resolve(value);\n        done();\n      }, function _reject(err) {\n        reject(err);\n        done();\n      }, response);\n\n      // Clean up request\n      request = null;\n    }\n\n    if ('onloadend' in request) {\n      // Use onloadend if available\n      request.onloadend = onloadend;\n    } else {\n      // Listen for ready state to emulate onloadend\n      request.onreadystatechange = function handleLoad() {\n        if (!request || request.readyState !== 4) {\n          return;\n        }\n\n        // The request errored out and we didn't get a response, this will be\n        // handled by onerror instead\n        // With one exception: request that using file: protocol, most browsers\n        // will return status as 0 even though it's a successful request\n        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n          return;\n        }\n        // readystate handler is calling before onerror or ontimeout handlers,\n        // so we should call onloadend on the next 'tick'\n        setTimeout(onloadend);\n      };\n    }\n\n    // Handle browser request cancellation (as opposed to a manual cancellation)\n    request.onabort = function handleAbort() {\n      if (!request) {\n        return;\n      }\n\n      reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle low level network errors\n  request.onerror = function handleError(event) {\n       // Browsers deliver a ProgressEvent in XHR onerror\n       // (message may be empty; when present, surface it)\n       // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n       const msg = event && event.message ? event.message : 'Network Error';\n       const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n       // attach the underlying event for consumers who want details\n       err.event = event || null;\n       reject(err);\n       request = null;\n    };\n    \n    // Handle timeout\n    request.ontimeout = function handleTimeout() {\n      let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n      const transitional = _config.transitional || transitionalDefaults;\n      if (_config.timeoutErrorMessage) {\n        timeoutErrorMessage = _config.timeoutErrorMessage;\n      }\n      reject(new AxiosError(\n        timeoutErrorMessage,\n        transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n        config,\n        request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Remove Content-Type if data is undefined\n    requestData === undefined && requestHeaders.setContentType(null);\n\n    // Add headers to the request\n    if ('setRequestHeader' in request) {\n      utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n        request.setRequestHeader(key, val);\n      });\n    }\n\n    // Add withCredentials to request if needed\n    if (!utils.isUndefined(_config.withCredentials)) {\n      request.withCredentials = !!_config.withCredentials;\n    }\n\n    // Add responseType to request if needed\n    if (responseType && responseType !== 'json') {\n      request.responseType = _config.responseType;\n    }\n\n    // Handle progress if needed\n    if (onDownloadProgress) {\n      ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n      request.addEventListener('progress', downloadThrottled);\n    }\n\n    // Not all browsers support upload events\n    if (onUploadProgress && request.upload) {\n      ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n      request.upload.addEventListener('progress', uploadThrottled);\n\n      request.upload.addEventListener('loadend', flushUpload);\n    }\n\n    if (_config.cancelToken || _config.signal) {\n      // Handle cancellation\n      // eslint-disable-next-line func-names\n      onCanceled = cancel => {\n        if (!request) {\n          return;\n        }\n        reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n        request.abort();\n        request = null;\n      };\n\n      _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n      if (_config.signal) {\n        _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n      }\n    }\n\n    const protocol = parseProtocol(_config.url);\n\n    if (protocol && platform.protocols.indexOf(protocol) === -1) {\n      reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n      return;\n    }\n\n\n    // Send the request\n    request.send(requestData || null);\n  });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n  const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n  if (timeout || length) {\n    let controller = new AbortController();\n\n    let aborted;\n\n    const onabort = function (reason) {\n      if (!aborted) {\n        aborted = true;\n        unsubscribe();\n        const err = reason instanceof Error ? reason : this.reason;\n        controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n      }\n    }\n\n    let timer = timeout && setTimeout(() => {\n      timer = null;\n      onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n    }, timeout)\n\n    const unsubscribe = () => {\n      if (signals) {\n        timer && clearTimeout(timer);\n        timer = null;\n        signals.forEach(signal => {\n          signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n        });\n        signals = null;\n      }\n    }\n\n    signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n    const {signal} = controller;\n\n    signal.unsubscribe = () => utils.asap(unsubscribe);\n\n    return signal;\n  }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n  let len = chunk.byteLength;\n\n  if (!chunkSize || len < chunkSize) {\n    yield chunk;\n    return;\n  }\n\n  let pos = 0;\n  let end;\n\n  while (pos < len) {\n    end = pos + chunkSize;\n    yield chunk.slice(pos, end);\n    pos = end;\n  }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n  for await (const chunk of readStream(iterable)) {\n    yield* streamChunk(chunk, chunkSize);\n  }\n}\n\nconst readStream = async function* (stream) {\n  if (stream[Symbol.asyncIterator]) {\n    yield* stream;\n    return;\n  }\n\n  const reader = stream.getReader();\n  try {\n    for (;;) {\n      const {done, value} = await reader.read();\n      if (done) {\n        break;\n      }\n      yield value;\n    }\n  } finally {\n    await reader.cancel();\n  }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n  const iterator = readBytes(stream, chunkSize);\n\n  let bytes = 0;\n  let done;\n  let _onFinish = (e) => {\n    if (!done) {\n      done = true;\n      onFinish && onFinish(e);\n    }\n  }\n\n  return new ReadableStream({\n    async pull(controller) {\n      try {\n        const {done, value} = await iterator.next();\n\n        if (done) {\n         _onFinish();\n          controller.close();\n          return;\n        }\n\n        let len = value.byteLength;\n        if (onProgress) {\n          let loadedBytes = bytes += len;\n          onProgress(loadedBytes);\n        }\n        controller.enqueue(new Uint8Array(value));\n      } catch (err) {\n        _onFinish(err);\n        throw err;\n      }\n    },\n    cancel(reason) {\n      _onFinish(reason);\n      return iterator.return();\n    }\n  }, {\n    highWaterMark: 2\n  })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst {isFunction} = utils;\n\nconst globalFetchAPI = (({Request, Response}) => ({\n  Request, Response\n}))(utils.global);\n\nconst {\n  ReadableStream, TextEncoder\n} = utils.global;\n\n\nconst test = (fn, ...args) => {\n  try {\n    return !!fn(...args);\n  } catch (e) {\n    return false\n  }\n}\n\nconst factory = (env) => {\n  env = utils.merge.call({\n    skipUndefined: true\n  }, globalFetchAPI, env);\n\n  const {fetch: envFetch, Request, Response} = env;\n  const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n  const isRequestSupported = isFunction(Request);\n  const isResponseSupported = isFunction(Response);\n\n  if (!isFetchSupported) {\n    return false;\n  }\n\n  const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n  const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n      ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n      async (str) => new Uint8Array(await new Request(str).arrayBuffer())\n  );\n\n  const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(() => {\n    let duplexAccessed = false;\n\n    const hasContentType = new Request(platform.origin, {\n      body: new ReadableStream(),\n      method: 'POST',\n      get duplex() {\n        duplexAccessed = true;\n        return 'half';\n      },\n    }).headers.has('Content-Type');\n\n    return duplexAccessed && !hasContentType;\n  });\n\n  const supportsResponseStream = isResponseSupported && isReadableStreamSupported &&\n    test(() => utils.isReadableStream(new Response('').body));\n\n  const resolvers = {\n    stream: supportsResponseStream && ((res) => res.body)\n  };\n\n  isFetchSupported && ((() => {\n    ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n      !resolvers[type] && (resolvers[type] = (res, config) => {\n        let method = res && res[type];\n\n        if (method) {\n          return method.call(res);\n        }\n\n        throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n      })\n    });\n  })());\n\n  const getBodyLength = async (body) => {\n    if (body == null) {\n      return 0;\n    }\n\n    if (utils.isBlob(body)) {\n      return body.size;\n    }\n\n    if (utils.isSpecCompliantForm(body)) {\n      const _request = new Request(platform.origin, {\n        method: 'POST',\n        body,\n      });\n      return (await _request.arrayBuffer()).byteLength;\n    }\n\n    if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n      return body.byteLength;\n    }\n\n    if (utils.isURLSearchParams(body)) {\n      body = body + '';\n    }\n\n    if (utils.isString(body)) {\n      return (await encodeText(body)).byteLength;\n    }\n  }\n\n  const resolveBodyLength = async (headers, body) => {\n    const length = utils.toFiniteNumber(headers.getContentLength());\n\n    return length == null ? getBodyLength(body) : length;\n  }\n\n  return async (config) => {\n    let {\n      url,\n      method,\n      data,\n      signal,\n      cancelToken,\n      timeout,\n      onDownloadProgress,\n      onUploadProgress,\n      responseType,\n      headers,\n      withCredentials = 'same-origin',\n      fetchOptions\n    } = resolveConfig(config);\n\n    let _fetch = envFetch || fetch;\n\n    responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n    let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n    let request = null;\n\n    const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n      composedSignal.unsubscribe();\n    });\n\n    let requestContentLength;\n\n    try {\n      if (\n        onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n        (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n      ) {\n        let _request = new Request(url, {\n          method: 'POST',\n          body: data,\n          duplex: \"half\"\n        });\n\n        let contentTypeHeader;\n\n        if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n          headers.setContentType(contentTypeHeader)\n        }\n\n        if (_request.body) {\n          const [onProgress, flush] = progressEventDecorator(\n            requestContentLength,\n            progressEventReducer(asyncDecorator(onUploadProgress))\n          );\n\n          data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n        }\n      }\n\n      if (!utils.isString(withCredentials)) {\n        withCredentials = withCredentials ? 'include' : 'omit';\n      }\n\n      // Cloudflare Workers throws when credentials are defined\n      // see https://github.com/cloudflare/workerd/issues/902\n      const isCredentialsSupported = isRequestSupported && \"credentials\" in Request.prototype;\n\n      const resolvedOptions = {\n        ...fetchOptions,\n        signal: composedSignal,\n        method: method.toUpperCase(),\n        headers: headers.normalize().toJSON(),\n        body: data,\n        duplex: \"half\",\n        credentials: isCredentialsSupported ? withCredentials : undefined\n      };\n\n      request = isRequestSupported && new Request(url, resolvedOptions);\n\n      let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions));\n\n      const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n      if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n        const options = {};\n\n        ['status', 'statusText', 'headers'].forEach(prop => {\n          options[prop] = response[prop];\n        });\n\n        const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n        const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n          responseContentLength,\n          progressEventReducer(asyncDecorator(onDownloadProgress), true)\n        ) || [];\n\n        response = new Response(\n          trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n            flush && flush();\n            unsubscribe && unsubscribe();\n          }),\n          options\n        );\n      }\n\n      responseType = responseType || 'text';\n\n      let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n      !isStreamResponse && unsubscribe && unsubscribe();\n\n      return await new Promise((resolve, reject) => {\n        settle(resolve, reject, {\n          data: responseData,\n          headers: AxiosHeaders.from(response.headers),\n          status: response.status,\n          statusText: response.statusText,\n          config,\n          request\n        })\n      })\n    } catch (err) {\n      unsubscribe && unsubscribe();\n\n      if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n        throw Object.assign(\n          new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n          {\n            cause: err.cause || err\n          }\n        )\n      }\n\n      throw AxiosError.from(err, err && err.code, config, request);\n    }\n  }\n}\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n  let env = (config && config.env) || {};\n  const {fetch, Request, Response} = env;\n  const seeds = [\n    Request, Response, fetch\n  ];\n\n  let len = seeds.length, i = len,\n    seed, target, map = seedCache;\n\n  while (i--) {\n    seed = seeds[i];\n    target = map.get(seed);\n\n    target === undefined && map.set(seed, target = (i ? new Map() : factory(env)))\n\n    map = target;\n  }\n\n  return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n * \n * @type {Object<string, Function|Object>}\n */\nconst knownAdapters = {\n  http: httpAdapter,\n  xhr: xhrAdapter,\n  fetch: {\n    get: fetchAdapter.getFetch,\n  }\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n  if (fn) {\n    try {\n      Object.defineProperty(fn, 'name', { value });\n    } catch (e) {\n      // eslint-disable-next-line no-empty\n    }\n    Object.defineProperty(fn, 'adapterName', { value });\n  }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n * \n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n * \n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n * \n * @param {Array<string|Function>|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n  adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n  const { length } = adapters;\n  let nameOrAdapter;\n  let adapter;\n\n  const rejectedReasons = {};\n\n  for (let i = 0; i < length; i++) {\n    nameOrAdapter = adapters[i];\n    let id;\n\n    adapter = nameOrAdapter;\n\n    if (!isResolvedHandle(nameOrAdapter)) {\n      adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n      if (adapter === undefined) {\n        throw new AxiosError(`Unknown adapter '${id}'`);\n      }\n    }\n\n    if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n      break;\n    }\n\n    rejectedReasons[id || '#' + i] = adapter;\n  }\n\n  if (!adapter) {\n    const reasons = Object.entries(rejectedReasons)\n      .map(([id, state]) => `adapter ${id} ` +\n        (state === false ? 'is not supported by the environment' : 'is not available in the build')\n      );\n\n    let s = length ?\n      (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n      'as no adapter specified';\n\n    throw new AxiosError(\n      `There is no suitable adapter to dispatch the request ` + s,\n      'ERR_NOT_SUPPORT'\n    );\n  }\n\n  return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n  /**\n   * Resolve an adapter from a list of adapter names or functions.\n   * @type {Function}\n   */\n  getAdapter,\n\n  /**\n   * Exposes all known adapters\n   * @type {Object<string, Function|Object>}\n   */\n  adapters: knownAdapters\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n\n  if (config.signal && config.signal.aborted) {\n    throw new CanceledError(null, config);\n  }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n  throwIfCancellationRequested(config);\n\n  config.headers = AxiosHeaders.from(config.headers);\n\n  // Transform request data\n  config.data = transformData.call(\n    config,\n    config.transformRequest\n  );\n\n  if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n    config.headers.setContentType('application/x-www-form-urlencoded', false);\n  }\n\n  const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n  return adapter(config).then(function onAdapterResolution(response) {\n    throwIfCancellationRequested(config);\n\n    // Transform response data\n    response.data = transformData.call(\n      config,\n      config.transformResponse,\n      response\n    );\n\n    response.headers = AxiosHeaders.from(response.headers);\n\n    return response;\n  }, function onAdapterRejection(reason) {\n    if (!isCancel(reason)) {\n      throwIfCancellationRequested(config);\n\n      // Transform response data\n      if (reason && reason.response) {\n        reason.response.data = transformData.call(\n          config,\n          config.transformResponse,\n          reason.response\n        );\n        reason.response.headers = AxiosHeaders.from(reason.response.headers);\n      }\n    }\n\n    return Promise.reject(reason);\n  });\n}\n","export const VERSION = \"1.13.2\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n  validators[type] = function validator(thing) {\n    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n  };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n  function formatMessage(opt, desc) {\n    return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n  }\n\n  // eslint-disable-next-line func-names\n  return (value, opt, opts) => {\n    if (validator === false) {\n      throw new AxiosError(\n        formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n        AxiosError.ERR_DEPRECATED\n      );\n    }\n\n    if (version && !deprecatedWarnings[opt]) {\n      deprecatedWarnings[opt] = true;\n      // eslint-disable-next-line no-console\n      console.warn(\n        formatMessage(\n          opt,\n          ' has been deprecated since v' + version + ' and will be removed in the near future'\n        )\n      );\n    }\n\n    return validator ? validator(value, opt, opts) : true;\n  };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n  return (value, opt) => {\n    // eslint-disable-next-line no-console\n    console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n    return true;\n  }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n  if (typeof options !== 'object') {\n    throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n  }\n  const keys = Object.keys(options);\n  let i = keys.length;\n  while (i-- > 0) {\n    const opt = keys[i];\n    const validator = schema[opt];\n    if (validator) {\n      const value = options[opt];\n      const result = value === undefined || validator(value, opt, options);\n      if (result !== true) {\n        throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n      }\n      continue;\n    }\n    if (allowUnknown !== true) {\n      throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n    }\n  }\n}\n\nexport default {\n  assertOptions,\n  validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n  constructor(instanceConfig) {\n    this.defaults = instanceConfig || {};\n    this.interceptors = {\n      request: new InterceptorManager(),\n      response: new InterceptorManager()\n    };\n  }\n\n  /**\n   * Dispatch a request\n   *\n   * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n   * @param {?Object} config\n   *\n   * @returns {Promise} The Promise to be fulfilled\n   */\n  async request(configOrUrl, config) {\n    try {\n      return await this._request(configOrUrl, config);\n    } catch (err) {\n      if (err instanceof Error) {\n        let dummy = {};\n\n        Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n        // slice off the Error: ... line\n        const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n        try {\n          if (!err.stack) {\n            err.stack = stack;\n            // match without the 2 top stack lines\n          } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n            err.stack += '\\n' + stack\n          }\n        } catch (e) {\n          // ignore the case where \"stack\" is an un-writable property\n        }\n      }\n\n      throw err;\n    }\n  }\n\n  _request(configOrUrl, config) {\n    /*eslint no-param-reassign:0*/\n    // Allow for axios('example/url'[, config]) a la fetch API\n    if (typeof configOrUrl === 'string') {\n      config = config || {};\n      config.url = configOrUrl;\n    } else {\n      config = configOrUrl || {};\n    }\n\n    config = mergeConfig(this.defaults, config);\n\n    const {transitional, paramsSerializer, headers} = config;\n\n    if (transitional !== undefined) {\n      validator.assertOptions(transitional, {\n        silentJSONParsing: validators.transitional(validators.boolean),\n        forcedJSONParsing: validators.transitional(validators.boolean),\n        clarifyTimeoutError: validators.transitional(validators.boolean)\n      }, false);\n    }\n\n    if (paramsSerializer != null) {\n      if (utils.isFunction(paramsSerializer)) {\n        config.paramsSerializer = {\n          serialize: paramsSerializer\n        }\n      } else {\n        validator.assertOptions(paramsSerializer, {\n          encode: validators.function,\n          serialize: validators.function\n        }, true);\n      }\n    }\n\n    // Set config.allowAbsoluteUrls\n    if (config.allowAbsoluteUrls !== undefined) {\n      // do nothing\n    } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n      config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n    } else {\n      config.allowAbsoluteUrls = true;\n    }\n\n    validator.assertOptions(config, {\n      baseUrl: validators.spelling('baseURL'),\n      withXsrfToken: validators.spelling('withXSRFToken')\n    }, true);\n\n    // Set config.method\n    config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n    // Flatten headers\n    let contextHeaders = headers && utils.merge(\n      headers.common,\n      headers[config.method]\n    );\n\n    headers && utils.forEach(\n      ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n      (method) => {\n        delete headers[method];\n      }\n    );\n\n    config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n    // filter out skipped interceptors\n    const requestInterceptorChain = [];\n    let synchronousRequestInterceptors = true;\n    this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n      if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n        return;\n      }\n\n      synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n      requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n    });\n\n    const responseInterceptorChain = [];\n    this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n      responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n    });\n\n    let promise;\n    let i = 0;\n    let len;\n\n    if (!synchronousRequestInterceptors) {\n      const chain = [dispatchRequest.bind(this), undefined];\n      chain.unshift(...requestInterceptorChain);\n      chain.push(...responseInterceptorChain);\n      len = chain.length;\n\n      promise = Promise.resolve(config);\n\n      while (i < len) {\n        promise = promise.then(chain[i++], chain[i++]);\n      }\n\n      return promise;\n    }\n\n    len = requestInterceptorChain.length;\n\n    let newConfig = config;\n\n    while (i < len) {\n      const onFulfilled = requestInterceptorChain[i++];\n      const onRejected = requestInterceptorChain[i++];\n      try {\n        newConfig = onFulfilled(newConfig);\n      } catch (error) {\n        onRejected.call(this, error);\n        break;\n      }\n    }\n\n    try {\n      promise = dispatchRequest.call(this, newConfig);\n    } catch (error) {\n      return Promise.reject(error);\n    }\n\n    i = 0;\n    len = responseInterceptorChain.length;\n\n    while (i < len) {\n      promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n    }\n\n    return promise;\n  }\n\n  getUri(config) {\n    config = mergeConfig(this.defaults, config);\n    const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n    return buildURL(fullPath, config.params, config.paramsSerializer);\n  }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, config) {\n    return this.request(mergeConfig(config || {}, {\n      method,\n      url,\n      data: (config || {}).data\n    }));\n  };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n\n  function generateHTTPMethod(isForm) {\n    return function httpMethod(url, data, config) {\n      return this.request(mergeConfig(config || {}, {\n        method,\n        headers: isForm ? {\n          'Content-Type': 'multipart/form-data'\n        } : {},\n        url,\n        data\n      }));\n    };\n  }\n\n  Axios.prototype[method] = generateHTTPMethod();\n\n  Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n  constructor(executor) {\n    if (typeof executor !== 'function') {\n      throw new TypeError('executor must be a function.');\n    }\n\n    let resolvePromise;\n\n    this.promise = new Promise(function promiseExecutor(resolve) {\n      resolvePromise = resolve;\n    });\n\n    const token = this;\n\n    // eslint-disable-next-line func-names\n    this.promise.then(cancel => {\n      if (!token._listeners) return;\n\n      let i = token._listeners.length;\n\n      while (i-- > 0) {\n        token._listeners[i](cancel);\n      }\n      token._listeners = null;\n    });\n\n    // eslint-disable-next-line func-names\n    this.promise.then = onfulfilled => {\n      let _resolve;\n      // eslint-disable-next-line func-names\n      const promise = new Promise(resolve => {\n        token.subscribe(resolve);\n        _resolve = resolve;\n      }).then(onfulfilled);\n\n      promise.cancel = function reject() {\n        token.unsubscribe(_resolve);\n      };\n\n      return promise;\n    };\n\n    executor(function cancel(message, config, request) {\n      if (token.reason) {\n        // Cancellation has already been requested\n        return;\n      }\n\n      token.reason = new CanceledError(message, config, request);\n      resolvePromise(token.reason);\n    });\n  }\n\n  /**\n   * Throws a `CanceledError` if cancellation has been requested.\n   */\n  throwIfRequested() {\n    if (this.reason) {\n      throw this.reason;\n    }\n  }\n\n  /**\n   * Subscribe to the cancel signal\n   */\n\n  subscribe(listener) {\n    if (this.reason) {\n      listener(this.reason);\n      return;\n    }\n\n    if (this._listeners) {\n      this._listeners.push(listener);\n    } else {\n      this._listeners = [listener];\n    }\n  }\n\n  /**\n   * Unsubscribe from the cancel signal\n   */\n\n  unsubscribe(listener) {\n    if (!this._listeners) {\n      return;\n    }\n    const index = this._listeners.indexOf(listener);\n    if (index !== -1) {\n      this._listeners.splice(index, 1);\n    }\n  }\n\n  toAbortSignal() {\n    const controller = new AbortController();\n\n    const abort = (err) => {\n      controller.abort(err);\n    };\n\n    this.subscribe(abort);\n\n    controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n    return controller.signal;\n  }\n\n  /**\n   * Returns an object that contains a new `CancelToken` and a function that, when called,\n   * cancels the `CancelToken`.\n   */\n  static source() {\n    let cancel;\n    const token = new CancelToken(function executor(c) {\n      cancel = c;\n    });\n    return {\n      token,\n      cancel\n    };\n  }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n *  ```js\n *  function f(x, y, z) {}\n *  var args = [1, 2, 3];\n *  f.apply(null, args);\n *  ```\n *\n * With `spread` this example can be re-written.\n *\n *  ```js\n *  spread(function(x, y, z) {})([1, 2, 3]);\n *  ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n  return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n  Continue: 100,\n  SwitchingProtocols: 101,\n  Processing: 102,\n  EarlyHints: 103,\n  Ok: 200,\n  Created: 201,\n  Accepted: 202,\n  NonAuthoritativeInformation: 203,\n  NoContent: 204,\n  ResetContent: 205,\n  PartialContent: 206,\n  MultiStatus: 207,\n  AlreadyReported: 208,\n  ImUsed: 226,\n  MultipleChoices: 300,\n  MovedPermanently: 301,\n  Found: 302,\n  SeeOther: 303,\n  NotModified: 304,\n  UseProxy: 305,\n  Unused: 306,\n  TemporaryRedirect: 307,\n  PermanentRedirect: 308,\n  BadRequest: 400,\n  Unauthorized: 401,\n  PaymentRequired: 402,\n  Forbidden: 403,\n  NotFound: 404,\n  MethodNotAllowed: 405,\n  NotAcceptable: 406,\n  ProxyAuthenticationRequired: 407,\n  RequestTimeout: 408,\n  Conflict: 409,\n  Gone: 410,\n  LengthRequired: 411,\n  PreconditionFailed: 412,\n  PayloadTooLarge: 413,\n  UriTooLong: 414,\n  UnsupportedMediaType: 415,\n  RangeNotSatisfiable: 416,\n  ExpectationFailed: 417,\n  ImATeapot: 418,\n  MisdirectedRequest: 421,\n  UnprocessableEntity: 422,\n  Locked: 423,\n  FailedDependency: 424,\n  TooEarly: 425,\n  UpgradeRequired: 426,\n  PreconditionRequired: 428,\n  TooManyRequests: 429,\n  RequestHeaderFieldsTooLarge: 431,\n  UnavailableForLegalReasons: 451,\n  InternalServerError: 500,\n  NotImplemented: 501,\n  BadGateway: 502,\n  ServiceUnavailable: 503,\n  GatewayTimeout: 504,\n  HttpVersionNotSupported: 505,\n  VariantAlsoNegotiates: 506,\n  InsufficientStorage: 507,\n  LoopDetected: 508,\n  NotExtended: 510,\n  NetworkAuthenticationRequired: 511,\n  WebServerIsDown: 521,\n  ConnectionTimedOut: 522,\n  OriginIsUnreachable: 523,\n  TimeoutOccurred: 524,\n  SslHandshakeFailed: 525,\n  InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n  HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n  const context = new Axios(defaultConfig);\n  const instance = bind(Axios.prototype.request, context);\n\n  // Copy axios.prototype to instance\n  utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n  // Copy context to instance\n  utils.extend(instance, context, null, {allOwnKeys: true});\n\n  // Factory for creating new instances\n  instance.create = function create(instanceConfig) {\n    return createInstance(mergeConfig(defaultConfig, instanceConfig));\n  };\n\n  return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n  return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n  Axios,\n  AxiosError,\n  CanceledError,\n  isCancel,\n  CancelToken,\n  VERSION,\n  all,\n  Cancel,\n  isAxiosError,\n  spread,\n  toFormData,\n  AxiosHeaders,\n  HttpStatusCode,\n  formToJSON,\n  getAdapter,\n  mergeConfig\n} = axios;\n\nexport {\n  axios as default,\n  Axios,\n  AxiosError,\n  CanceledError,\n  isCancel,\n  CancelToken,\n  VERSION,\n  all,\n  Cancel,\n  isAxiosError,\n  spread,\n  toFormData,\n  AxiosHeaders,\n  HttpStatusCode,\n  formToJSON,\n  getAdapter,\n  mergeConfig\n}\n","import axios from \"axios\";\n\ninterface FeedgetConfig {\n  apiKey: string;\n  apiUrl?: string;\n  metadata?: {\n    userId?: string;\n    version?: string;\n    custom?: Record<string, any>;\n  };\n}\n\ninterface FeedbackData {\n  type: \"BUG\" | \"IDEA\" | \"OTHER\";\n  comment: string;\n  screenshot?: string;\n  metadata?: {\n    url?: string;\n    userAgent?: string;\n    viewport?: { width: number; height: number };\n    custom?: Record<string, any>;\n  };\n}\n\nclass FeedgetAPI {\n  private apiKey: string;\n  private baseURL: string;\n  private globalMetadata: FeedgetConfig[\"metadata\"];\n\n  constructor(config: FeedgetConfig) {\n    this.apiKey = config.apiKey;\n    this.baseURL = config.apiUrl || \"https://api.feedget.io\";\n    this.globalMetadata = config.metadata;\n  }\n\n  private getMetadata() {\n    return {\n      url: window.location.href,\n      userAgent: navigator.userAgent,\n      viewport: {\n        width: window.innerWidth,\n        height: window.innerHeight,\n      },\n      custom: this.globalMetadata,\n    };\n  }\n\n  async submitFeedback(data: Omit<FeedbackData, \"metadata\">) {\n    const api = axios.create({\n      baseURL: this.baseURL,\n      headers: {\n        \"X-API-Key\": this.apiKey,\n        \"Content-Type\": \"application/json\",\n      },\n    });\n\n    const payload: FeedbackData = {\n      ...data,\n      metadata: this.getMetadata(),\n    };\n\n    return api.post(\"/public/feedbacks\", payload);\n  }\n\n  async healthCheck() {\n    const api = axios.create({\n      baseURL: this.baseURL,\n      headers: {\n        \"X-API-Key\": this.apiKey,\n      },\n    });\n\n    return api.get(\"/public/health\");\n  }\n}\n\n// Instância global que será configurada\nlet feedgetInstance: FeedgetAPI | null = null;\n\nexport const initFeedget = (config: FeedgetConfig) => {\n  feedgetInstance = new FeedgetAPI(config);\n  return feedgetInstance;\n};\n\nexport const getFeedgetInstance = () => {\n  if (!feedgetInstance) {\n    throw new Error(\"Feedget not initialized. Call initFeedget() first.\");\n  }\n  return feedgetInstance;\n};\n\n// Manter compatibilidade com a implementação existente\nconst api = axios.create({\n  baseURL: import.meta.env.VITE_API_URL || \"https://api.feedget.io\",\n});\n\nexport default api;\n","import { useEffect, useState, type FormEvent } from \"react\";\n\nimport { ArrowLeft } from \"phosphor-react\";\n\nimport { CloseButton } from \"../../close-button\";\nimport { Loading } from \"../../loading\";\nimport { ImagePreview } from \"../image-preview\";\nimport { UploadButton } from \"../upload-button\";\n\nimport { feedbackTypes, type FeedbackType } from \"..\";\nimport { getFeedgetInstance } from \"../../../lib/api\";\n\ninterface FeedbackContentStepProps {\n  feedbackType: FeedbackType;\n  onFeedbackRestartRequested: () => void;\n  onFeedbackSent: () => void;\n}\n\nexport function FeedbackContentStep({\n  feedbackType,\n  onFeedbackRestartRequested,\n  onFeedbackSent,\n}: FeedbackContentStepProps) {\n  const feedbackTypeInfo = feedbackTypes[feedbackType];\n\n  const [isSendingFeedback, setIsSendingFeedback] = useState(false);\n  const [uploadedImage, setUploadedImage] = useState<string | null>(null);\n  const [comment, setComment] = useState(\"\");\n\n  useEffect(() => {\n    setUploadedImage(null);\n    setComment(\"\");\n    setIsSendingFeedback(false);\n  }, [feedbackType]);\n\n  const handleSubmitFeedback = async (e: FormEvent) => {\n    e.preventDefault();\n    setIsSendingFeedback(true);\n\n    try {\n      const API = getFeedgetInstance();\n\n      await API.submitFeedback({\n        type: feedbackType,\n        comment,\n        screenshot: uploadedImage || undefined,\n      });\n\n      onFeedbackSent();\n    } catch (err: any) {\n      console.error(\"Erro ao enviar feedback:\", err);\n    } finally {\n      setIsSendingFeedback(false);\n    }\n  };\n\n  return (\n    <>\n      <header className=\"flex items-center justify-between w-full px-2\">\n        <button\n          type=\"button\"\n          title=\"Voltar\"\n          aria-label=\"Voltar\"\n          onClick={onFeedbackRestartRequested}\n          className=\"text-zinc-400 hover:text-zinc-100 cursor-pointer transition-colors\"\n        >\n          <ArrowLeft weight=\"bold\" className=\"w-4 h-4\" />\n        </button>\n\n        <span className=\"text-lg font-medium flex items-center gap-2 text-zinc-100\">\n          <img\n            src={feedbackTypeInfo.image.source}\n            alt={feedbackTypeInfo.image.alt}\n            className=\"w-6 h-6\"\n          />\n          {feedbackTypeInfo.title}\n        </span>\n\n        <CloseButton />\n      </header>\n\n      <form onSubmit={handleSubmitFeedback} className=\"my-4 w-full space-y-4 animate-fade-in\">\n        <textarea\n          value={comment}\n          onChange={(e) => setComment(e.target.value)}\n          placeholder=\"Conte com detalhes o que está acontecendo...\"\n          className=\"md:min-w-[304px] w-full min-h-[112px] text-sm placeholder-zinc-500 text-zinc-100 border-zinc-600 bg-zinc-950/30 backdrop-blur-sm rounded-md focus:border-brand-500 focus:ring-2 focus:ring-brand-500/20 focus:outline-none resize-none scrollbar-thumb-zinc-700 scrollbar-track-transparent scrollbar-thin p-3 transition-all duration-200 ease-in-out hover:border-zinc-500\"\n          minLength={10}\n          maxLength={1000}\n          required\n        />\n\n        <footer className=\"flex gap-2 mt-2 relative\">\n          <div className=\"relative\">\n            <UploadButton\n              image={uploadedImage}\n              onImageSelected={setUploadedImage}\n            />\n            {uploadedImage && (\n              <ImagePreview\n                image={uploadedImage}\n                onRemove={() => setUploadedImage(null)}\n                type=\"upload\"\n              />\n            )}\n          </div>\n\n          <button\n            type=\"submit\"\n            title=\"Enviar feedback\"\n            aria-labelledby=\"Enviar feedback\"\n            disabled={\n              comment.length < 10 || comment.length > 1000 || isSendingFeedback\n            }\n            className=\"p-2 bg-brand-500 rounded-md border-transparent flex flex-1 justify-center items-center text-sm hover:bg-brand-300 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-zinc-900 focus:ring-brand-500 transition-all duration-200 ease-in-out disabled:opacity-50 disabled:hover:bg-brand-500 cursor-pointer disabled:cursor-not-allowed font-medium text-white shadow-lg hover:shadow-brand-500/25 active:scale-[0.98]\"\n          >\n            {isSendingFeedback ? <Loading /> : \"Enviar feedback\"}\n          </button>\n        </footer>\n\n        <div className=\"text-xs text-zinc-500 mt-1 text-right transition-colors duration-300\" style={{ color: comment.length > 900 ? '#ef4444' : undefined }}>\n          {comment.length}/1000\n        </div>\n      </form>\n    </>\n  );\n}\n","export default \"data:image/svg+xml,%3csvg%20width='41'%20height='40'%20viewBox='0%200%2041%2040'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M38.5%2034C38.5%2036.209%2036.709%2038%2034.5%2038H6.5C4.291%2038%202.5%2036.209%202.5%2034V6C2.5%203.791%204.291%202%206.5%202H34.5C36.709%202%2038.5%203.791%2038.5%206V34Z'%20fill='%2377B255'/%3e%3cpath%20d='M31.78%208.36202C30.624%207.61102%2029.076%207.94002%2028.322%209.09802L17.436%2025.877L12.407%2021.227C11.393%2020.289%209.81103%2020.352%208.87403%2021.365C7.93703%2022.379%207.99903%2023.961%209.01303%2024.898L16.222%2031.564C16.702%2032.009%2017.312%2032.229%2017.918%2032.229C18.591%2032.229%2019.452%2031.947%2020.017%2031.09C20.349%2030.584%2032.517%2011.82%2032.517%2011.82C33.268%2010.661%2032.938%209.11302%2031.78%208.36202Z'%20fill='white'/%3e%3c/svg%3e\"","import { CloseButton } from \"../../close-button\";\n\nimport successImageUrl from \"../../../assets/success.svg\";\n\ninterface FeedbackSuccessStepProps {\n  onFeedbackRestartRequested: () => void;\n}\n\nexport function FeedbackSuccessStep({\n  onFeedbackRestartRequested,\n}: FeedbackSuccessStepProps) {\n  return (\n    <>\n      <header className=\"w-full flex justify-end\">\n        <CloseButton />\n      </header>\n\n      <div className=\"flex flex-col items-center py-12 w-[304px] animate-fade-in\">\n        <div className=\"relative\">\n          <div className=\"absolute inset-0 bg-brand-500/20 blur-xl rounded-full\" />\n          <img\n            src={successImageUrl}\n            alt=\"Imagem de enviado com sucesso\"\n            className=\"w-12 h-12 relative z-10 transition-transform duration-500 hover:scale-110\"\n          />\n        </div>\n\n        <span className=\"text-xl mt-4 font-medium text-zinc-100\">\n          Agradecemos o feedback!\n        </span>\n        <p className=\"text-sm text-zinc-400 mt-2 text-center px-4\">\n          Sua opinião é muito importante para nós.\n        </p>\n\n        <button\n          type=\"button\"\n          title=\"Enviar outro feedback\"\n          aria-labelledby=\"Enviar outro feedback\"\n          onClick={onFeedbackRestartRequested}\n          className=\"py-2 px-6 mt-6 bg-zinc-800 rounded-md border-transparent text-sm leading-6 hover:bg-zinc-700 text-zinc-100 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-zinc-900 focus:ring-brand-500 transition-all duration-200 ease-in-out shadow-md hover:shadow-lg border border-zinc-700 hover:border-zinc-600\"\n        >\n          Quero enviar outro\n        </button>\n      </div>\n    </>\n  );\n}\n","import { CloseButton } from \"../../close-button\";\n\nimport { feedbackTypes, type FeedbackType } from \"..\";\n\ninterface FeedbackTypeStepProps {\n  onFeedbackTypeChanged: (type: FeedbackType) => void;\n}\n\nexport function FeedbackTypeStep({\n  onFeedbackTypeChanged,\n}: FeedbackTypeStepProps) {\n  return (\n    <>\n      <header className=\"flex items-center justify-between w-full px-2\">\n        <span className=\"text-lg font-medium text-zinc-100\">Deixe seu feedback</span>\n\n        <CloseButton />\n      </header>\n\n      <div className=\"flex py-8 gap-4 w-full justify-center animate-fade-in-up\">\n        {Object.entries(feedbackTypes).map(([key, value], index) => {\n          return (\n            <button\n              key={key}\n              type=\"button\"\n              title={`Feedback sobre: ${value.title}`}\n              aria-labelledby={`Feedback sobre: ${value.title}`}\n              onClick={() => onFeedbackTypeChanged(key as FeedbackType)}\n              style={{ animationDelay: `${index * 100}ms` }}\n              className=\"bg-zinc-800/50 backdrop-blur-sm rounded-2xl py-5 w-24 flex flex-1 flex-col items-center gap-3 border border-zinc-700 hover:border-brand-500 hover:bg-zinc-800 focus:outline-none focus:border-brand-500 focus:ring-2 focus:ring-brand-500/20 transition-all duration-300 ease-spring cursor-pointer shadow-lg hover:shadow-brand-500/10 hover:-translate-y-1 group relative overflow-hidden\"\n            >\n              <div className=\"absolute inset-0 bg-gradient-to-br from-brand-500/0 to-brand-500/0 group-hover:from-brand-500/5 group-hover:to-transparent transition-colors duration-500\" />\n              \n              <img\n                className=\"w-10 h-10 object-contain transition-transform duration-300 group-hover:scale-110\"\n                src={value.image.source}\n                alt={value.image.alt}\n              />\n              <span className=\"text-sm font-medium text-zinc-200 group-hover:text-white transition-colors\">{value.title}</span>\n            </button>\n          );\n        })}\n      </div>\n    </>\n  );\n}\n","export default \"data:image/svg+xml,%3csvg%20width='17'%20height='18'%20viewBox='0%200%2017%2018'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M8.5%2017.6C7.41667%2017.6%206.4125%2017.3333%205.4875%2016.8C4.5625%2016.2667%203.83333%2015.5333%203.3%2014.6H1.5C1.21667%2014.6%200.979167%2014.5042%200.7875%2014.3125C0.595833%2014.1208%200.5%2013.8833%200.5%2013.6C0.5%2013.3167%200.595833%2013.0792%200.7875%2012.8875C0.979167%2012.6958%201.21667%2012.6%201.5%2012.6H2.6C2.55%2012.2667%202.52083%2011.9333%202.5125%2011.6C2.50417%2011.2667%202.5%2010.9333%202.5%2010.6H1.5C1.21667%2010.6%200.979167%2010.5042%200.7875%2010.3125C0.595833%2010.1208%200.5%209.88333%200.5%209.6C0.5%209.31667%200.595833%209.07917%200.7875%208.8875C0.979167%208.69583%201.21667%208.6%201.5%208.6H2.5C2.5%208.26667%202.50417%207.93333%202.5125%207.6C2.52083%207.26667%202.55%206.93333%202.6%206.6H1.5C1.21667%206.6%200.979167%206.50417%200.7875%206.3125C0.595833%206.12083%200.5%205.88333%200.5%205.6C0.5%205.31667%200.595833%205.07917%200.7875%204.8875C0.979167%204.69583%201.21667%204.6%201.5%204.6H3.3C3.53333%204.21667%203.79583%203.85833%204.0875%203.525C4.37917%203.19167%204.71667%202.9%205.1%202.65L4.175%201.7C3.99167%201.51667%203.9%201.2875%203.9%201.0125C3.9%200.7375%204%200.5%204.2%200.3C4.38333%200.116667%204.61667%200.025%204.9%200.025C5.18333%200.025%205.41667%200.116667%205.6%200.3L7.05%201.75C7.51667%201.6%207.99167%201.525%208.475%201.525C8.95833%201.525%209.43333%201.6%209.9%201.75L11.4%200.275C11.5833%200.0916667%2011.8125%200%2012.0875%200C12.3625%200%2012.6%200.1%2012.8%200.3C12.9833%200.483333%2013.075%200.716667%2013.075%201C13.075%201.28333%2012.9833%201.51667%2012.8%201.7L11.85%202.65C12.2333%202.9%2012.5792%203.1875%2012.8875%203.5125C13.1958%203.8375%2013.4667%204.2%2013.7%204.6H15.5C15.7833%204.6%2016.0208%204.69583%2016.2125%204.8875C16.4042%205.07917%2016.5%205.31667%2016.5%205.6C16.5%205.88333%2016.4042%206.12083%2016.2125%206.3125C16.0208%206.50417%2015.7833%206.6%2015.5%206.6H14.4C14.45%206.93333%2014.4792%207.26667%2014.4875%207.6C14.4958%207.93333%2014.5%208.26667%2014.5%208.6H15.5C15.7833%208.6%2016.0208%208.69583%2016.2125%208.8875C16.4042%209.07917%2016.5%209.31667%2016.5%209.6C16.5%209.88333%2016.4042%2010.1208%2016.2125%2010.3125C16.0208%2010.5042%2015.7833%2010.6%2015.5%2010.6H14.5C14.5%2010.9333%2014.4958%2011.2667%2014.4875%2011.6C14.4792%2011.9333%2014.45%2012.2667%2014.4%2012.6H15.5C15.7833%2012.6%2016.0208%2012.6958%2016.2125%2012.8875C16.4042%2013.0792%2016.5%2013.3167%2016.5%2013.6C16.5%2013.8833%2016.4042%2014.1208%2016.2125%2014.3125C16.0208%2014.5042%2015.7833%2014.6%2015.5%2014.6H13.7C13.1667%2015.5333%2012.4375%2016.2667%2011.5125%2016.8C10.5875%2017.3333%209.58333%2017.6%208.5%2017.6ZM8.5%2015.6C9.6%2015.6%2010.5417%2015.2083%2011.325%2014.425C12.1083%2013.6417%2012.5%2012.7%2012.5%2011.6V7.6C12.5%206.5%2012.1083%205.55833%2011.325%204.775C10.5417%203.99167%209.6%203.6%208.5%203.6C7.4%203.6%206.45833%203.99167%205.675%204.775C4.89167%205.55833%204.5%206.5%204.5%207.6V11.6C4.5%2012.7%204.89167%2013.6417%205.675%2014.425C6.45833%2015.2083%207.4%2015.6%208.5%2015.6ZM7.5%2012.6H9.5C9.78333%2012.6%2010.0208%2012.5042%2010.2125%2012.3125C10.4042%2012.1208%2010.5%2011.8833%2010.5%2011.6C10.5%2011.3167%2010.4042%2011.0792%2010.2125%2010.8875C10.0208%2010.6958%209.78333%2010.6%209.5%2010.6H7.5C7.21667%2010.6%206.97917%2010.6958%206.7875%2010.8875C6.59583%2011.0792%206.5%2011.3167%206.5%2011.6C6.5%2011.8833%206.59583%2012.1208%206.7875%2012.3125C6.97917%2012.5042%207.21667%2012.6%207.5%2012.6ZM7.5%208.6H9.5C9.78333%208.6%2010.0208%208.50417%2010.2125%208.3125C10.4042%208.12083%2010.5%207.88333%2010.5%207.6C10.5%207.31667%2010.4042%207.07917%2010.2125%206.8875C10.0208%206.69583%209.78333%206.6%209.5%206.6H7.5C7.21667%206.6%206.97917%206.69583%206.7875%206.8875C6.59583%207.07917%206.5%207.31667%206.5%207.6C6.5%207.88333%206.59583%208.12083%206.7875%208.3125C6.97917%208.50417%207.21667%208.6%207.5%208.6Z'%20fill='white'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='15'%20height='20'%20viewBox='0%200%2015%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M7.5%2020C7.06667%2020%206.675%2019.8958%206.325%2019.6875C5.975%2019.4792%205.7%2019.2%205.5%2018.85C4.95%2018.85%204.47917%2018.6542%204.0875%2018.2625C3.69583%2017.8708%203.5%2017.4%203.5%2016.85V13.3C2.51667%2012.65%201.72917%2011.7917%201.1375%2010.725C0.545833%209.65833%200.25%208.5%200.25%207.25C0.25%205.23333%200.954167%203.52083%202.3625%202.1125C3.77083%200.704167%205.48333%200%207.5%200C9.51667%200%2011.2292%200.704167%2012.6375%202.1125C14.0458%203.52083%2014.75%205.23333%2014.75%207.25C14.75%208.53333%2014.4542%209.7%2013.8625%2010.75C13.2708%2011.8%2012.4833%2012.65%2011.5%2013.3V16.85C11.5%2017.4%2011.3042%2017.8708%2010.9125%2018.2625C10.5208%2018.6542%2010.05%2018.85%209.5%2018.85C9.3%2019.2%209.025%2019.4792%208.675%2019.6875C8.325%2019.8958%207.93333%2020%207.5%2020ZM5.5%2016.85H9.5V15.95H5.5V16.85ZM5.5%2014.95H9.5V14H5.5V14.95ZM5.3%2012H6.75V9.3L5.075%207.625C4.925%207.475%204.85%207.3%204.85%207.1C4.85%206.9%204.925%206.725%205.075%206.575C5.225%206.425%205.4%206.35%205.6%206.35C5.8%206.35%205.975%206.425%206.125%206.575L7.5%207.95L8.875%206.575C9.025%206.425%209.2%206.35%209.4%206.35C9.6%206.35%209.775%206.425%209.925%206.575C10.075%206.725%2010.15%206.9%2010.15%207.1C10.15%207.3%2010.075%207.475%209.925%207.625L8.25%209.3V12H9.7C10.6%2011.5667%2011.3333%2010.9292%2011.9%2010.0875C12.4667%209.24583%2012.75%208.3%2012.75%207.25C12.75%205.78333%2012.2417%204.54167%2011.225%203.525C10.2083%202.50833%208.96667%202%207.5%202C6.03333%202%204.79167%202.50833%203.775%203.525C2.75833%204.54167%202.25%205.78333%202.25%207.25C2.25%208.3%202.53333%209.24583%203.1%2010.0875C3.66667%2010.9292%204.4%2011.5667%205.3%2012Z'%20fill='white'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='19'%20height='20'%20viewBox='0%200%2019%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M2.99414%2015.7C2.04414%2014.8333%201.30664%2013.8208%200.781641%2012.6625C0.256641%2011.5042%20-0.00585938%2010.2833%20-0.00585938%209C-0.00585938%206.5%200.869141%204.375%202.61914%202.625C4.36914%200.875%206.49414%200%208.99414%200C11.0775%200%2012.9233%200.6125%2014.5316%201.8375C16.14%203.0625%2017.1858%204.65833%2017.6691%206.625L18.9691%2011.75C19.0525%2012.0667%2018.9941%2012.3542%2018.7941%2012.6125C18.5941%2012.8708%2018.3275%2013%2017.9941%2013H15.9941V16C15.9941%2016.55%2015.7983%2017.0208%2015.4066%2017.4125C15.015%2017.8042%2014.5441%2018%2013.9941%2018H11.9941V19C11.9941%2019.2833%2011.8983%2019.5208%2011.7066%2019.7125C11.515%2019.9042%2011.2775%2020%2010.9941%2020C10.7108%2020%2010.4733%2019.9042%2010.2816%2019.7125C10.09%2019.5208%209.99414%2019.2833%209.99414%2019V17C9.99414%2016.7167%2010.09%2016.4792%2010.2816%2016.2875C10.4733%2016.0958%2010.7108%2016%2010.9941%2016H13.9941V12C13.9941%2011.7167%2014.09%2011.4792%2014.2816%2011.2875C14.4733%2011.0958%2014.7108%2011%2014.9941%2011H16.6941L15.7441%207.125C15.3608%205.60833%2014.5441%204.375%2013.2941%203.425C12.0441%202.475%2010.6108%202%208.99414%202C7.06081%202%205.41081%202.675%204.04414%204.025C2.67747%205.375%201.99414%207.01667%201.99414%208.95C1.99414%209.95%202.19831%2010.9%202.60664%2011.8C3.01497%2012.7%203.59414%2013.5%204.34414%2014.2L4.99414%2014.8V19C4.99414%2019.2833%204.89831%2019.5208%204.70664%2019.7125C4.51497%2019.9042%204.27747%2020%203.99414%2020C3.71081%2020%203.47331%2019.9042%203.28164%2019.7125C3.08997%2019.5208%202.99414%2019.2833%202.99414%2019V15.7ZM8.99414%2014C9.27747%2014%209.51497%2013.9042%209.70664%2013.7125C9.89831%2013.5208%209.99414%2013.2833%209.99414%2013C9.99414%2012.7167%209.89831%2012.4792%209.70664%2012.2875C9.51497%2012.0958%209.27747%2012%208.99414%2012C8.71081%2012%208.47331%2012.0958%208.28164%2012.2875C8.08997%2012.4792%207.99414%2012.7167%207.99414%2013C7.99414%2013.2833%208.08997%2013.5208%208.28164%2013.7125C8.47331%2013.9042%208.71081%2014%208.99414%2014ZM9.06914%205.425C9.43581%205.425%209.73997%205.525%209.98164%205.725C10.2233%205.925%2010.3441%206.18333%2010.3441%206.5C10.3441%206.76667%2010.2733%207.02083%2010.1316%207.2625C9.98997%207.50417%209.71081%207.84167%209.29414%208.275C8.97747%208.60833%208.74831%208.90417%208.60664%209.1625C8.46497%209.42083%208.36914%209.71667%208.31914%2010.05C8.28581%2010.25%208.33997%2010.425%208.48164%2010.575C8.62331%2010.725%208.80247%2010.8%209.01914%2010.8C9.20247%2010.8%209.37331%2010.7375%209.53164%2010.6125C9.68997%2010.4875%209.79414%2010.3167%209.84414%2010.1C9.89414%209.9%209.97331%209.70417%2010.0816%209.5125C10.19%209.32083%2010.3608%209.1%2010.5941%208.85C11.1275%208.26667%2011.4775%207.825%2011.6441%207.525C11.8108%207.225%2011.8941%206.88333%2011.8941%206.5C11.8941%205.8%2011.6233%205.20833%2011.0816%204.725C10.54%204.24167%209.86914%204%209.06914%204C8.53581%204%208.03164%204.12917%207.55664%204.3875C7.08164%204.64583%206.70247%205%206.41914%205.45C6.31914%205.61667%206.31497%205.79167%206.40664%205.975C6.49831%206.15833%206.63581%206.29167%206.81914%206.375C7.00247%206.45833%207.18164%206.47083%207.35664%206.4125C7.53164%206.35417%207.68581%206.23333%207.81914%206.05C7.98581%205.85%208.17747%205.69583%208.39414%205.5875C8.61081%205.47917%208.83581%205.425%209.06914%205.425Z'%20fill='white'/%3e%3c/svg%3e\"","import { useEffect, useState } from \"react\";\n\nimport { FeedbackContentStep } from \"./steps/feedback-content-step\";\nimport { FeedbackSuccessStep } from \"./steps/feedback-success-step\";\nimport { FeedbackTypeStep } from \"./steps/feedback-type-step\";\n\nimport bugImageUrl from \"../../assets/bug_report.svg\";\nimport ideaImageUrl from \"../../assets/emoji_objects.svg\";\nimport thoughtImageUrl from \"../../assets/psychology_alt.svg\";\n\nimport { initFeedget } from \"../../lib/api\";\n\nexport const feedbackTypes = {\n  BUG: {\n    title: \"Problema\",\n    image: {\n      source: bugImageUrl,\n      alt: \"Imagem de um inseto\",\n    },\n  },\n  IDEA: {\n    title: \"Ideia\",\n    image: {\n      source: ideaImageUrl,\n      alt: \"Imagem de uma lâmpada\",\n    },\n  },\n  OTHER: {\n    title: \"Outro\",\n    image: {\n      source: thoughtImageUrl,\n      alt: \"Imagem de um balão de pensamento\",\n    },\n  },\n};\nexport type FeedbackType = keyof typeof feedbackTypes;\n\ninterface WidgetFormProps {\n  apiKey?: string;\n  apiUrl?: string;\n  showWatermark?: boolean;\n  metadata?: {\n    userId?: string;\n    version?: string;\n    custom?: Record<string, any>;\n  };\n}\n\nexport function WidgetForm({\n  apiKey,\n  apiUrl,\n  showWatermark = true,\n  metadata,\n}: WidgetFormProps) {\n  const [feedbackType, setFeedbackType] = useState<FeedbackType | null>(null);\n  const [feedbackSent, setFeedbackSent] = useState(false);\n  const [error, setError] = useState<string | null>(null);\n\n  useEffect(() => {\n    if (apiKey) {\n      try {\n        initFeedget({\n          apiKey,\n          apiUrl,\n          metadata,\n        });\n        setError(null);\n      } catch (err) {\n        setError(\"Erro ao inicializar Feedget\");\n        console.error(\"Erro ao inicializar Feedget:\", err);\n      }\n    } else {\n      setError(\"API Key é obrigatória para usar o widget\");\n    }\n  }, [apiKey, apiUrl, metadata]);\n\n  const handleRestartFeedback = () => {\n    setFeedbackSent(false);\n    setFeedbackType(null);\n  };\n\n  if (error) {\n    return (\n      <div className=\"bg-zinc-900 p-4 relative rounded-[5px] mb-4 flex flex-col items-center shadow-lg w-[calc(100vw-2rem)] md:w-auto\">\n        <div className=\"text-center text-red-400 p-4\">\n          <p className=\"text-sm\">{error}</p>\n          <p className=\"text-xs text-zinc-400 mt-2\">\n            Verifique sua configuração de API Key\n          </p>\n        </div>\n        {showWatermark && (\n          <footer className=\"text-sm text-neutral-400\">\n            Feito por{\" \"}\n            <a\n              href=\"https://feedget.io\"\n              target=\"_blank\"\n              className=\"underline underline-offset-2 hover:text-zinc-100\"\n            >\n              Feedget.\n            </a>\n          </footer>\n        )}\n      </div>\n    );\n  }\n\n  return (\n    <div className=\"bg-zinc-900/95 backdrop-blur-sm p-4 relative rounded-2xl mb-4 flex flex-col items-center shadow-2xl w-[calc(100vw-2rem)] md:w-auto border border-zinc-800/50 overflow-hidden ring-1 ring-white/5 group\">\n      {/* Gradient top border highlight */}\n      <div className=\"absolute top-0 left-0 right-0 h-[1px] bg-gradient-to-r from-transparent via-brand-500/50 to-transparent opacity-50 group-hover:opacity-100 transition-opacity duration-500\" />\n      \n      {feedbackSent ? (\n        <FeedbackSuccessStep\n          onFeedbackRestartRequested={handleRestartFeedback}\n        />\n      ) : (\n        <>\n          {!feedbackType ? (\n            <FeedbackTypeStep onFeedbackTypeChanged={setFeedbackType} />\n          ) : (\n            <FeedbackContentStep\n              feedbackType={feedbackType}\n              onFeedbackRestartRequested={handleRestartFeedback}\n              onFeedbackSent={() => setFeedbackSent(true)}\n            />\n          )}\n        </>\n      )}\n\n      {showWatermark && (\n        <footer className=\"text-xs text-zinc-500 mt-2\">\n          Feito com ♥ pela{\" \"}\n          <a\n            href=\"https://feedget.io\"\n            target=\"_blank\"\n            className=\"underline underline-offset-2 hover:text-brand-500 transition-colors\"\n          >\n            Feedget\n          </a>\n        </footer>\n      )}\n    </div>\n  );\n}\n","export default \"data:image/svg+xml,%3csvg%20width='60'%20height='64'%20viewBox='0%200%2060%2064'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M0%2020.5C0%209.45431%208.95431%200.5%2020%200.5H58.8235C59.4733%200.5%2060%201.02672%2060%201.67647V20.5H0Z'%20fill='url(%23paint0_linear_8_30)'/%3e%3cpath%20d='M0%2024.5H60C60%2035.5457%2051.0457%2044.5%2040%2044.5H0V24.5Z'%20fill='url(%23paint1_linear_8_30)'/%3e%3cpath%20opacity='0.6'%20d='M0%2048.5H22C22%2056.7843%2015.2843%2063.5%207%2063.5H0.431371C0.193131%2063.5%200%2063.3069%200%2063.0686V48.5Z'%20fill='url(%23paint2_linear_8_30)'/%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_8_30'%20x1='0'%20y1='10.5'%20x2='60'%20y2='10.5'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='white'/%3e%3cstop%20offset='1'%20stop-color='%23EEEEEE'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint1_linear_8_30'%20x1='0'%20y1='34.5'%20x2='60'%20y2='34.5'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='white'/%3e%3cstop%20offset='1'%20stop-color='%23EEEEEE'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint2_linear_8_30'%20x1='0'%20y1='56'%20x2='22'%20y2='56'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='white'/%3e%3cstop%20offset='1'%20stop-color='%23EEEEEE'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e\"","import { WidgetForm } from \"./widget-form\";\n\nimport { Popover } from \"@headlessui/react\";\n\nimport logo from \"../assets/logo.svg\";\n\ninterface WidgetProps {\n  apiKey?: string;\n  apiUrl?: string;\n  orientation?: \"left\" | \"right\";\n  showWatermark?: boolean;\n  metadata?: {\n    userId?: string;\n    version?: string;\n    custom?: Record<string, any>;\n  };\n}\n\nexport function Widget({\n  apiKey,\n  apiUrl,\n  orientation = \"right\",\n  showWatermark = true,\n  metadata,\n}: WidgetProps) {\n  const positionClass =\n    orientation === \"left\"\n      ? \"fixed bottom-4 left-4 md:bottom-8 md:left-8 flex flex-col items-start z-[99999]\"\n      : \"fixed bottom-4 right-4 md:bottom-8 md:right-8 flex flex-col items-end z-[99999]\";\n\n  return (\n    <div id=\"feedgetwidget\">\n      <Popover className={positionClass}>\n        <Popover.Panel>\n          <WidgetForm\n            apiKey={apiKey}\n            apiUrl={apiUrl}\n            metadata={metadata}\n            showWatermark={showWatermark}\n          />\n        </Popover.Panel>\n\n        <Popover.Button\n          title=\"Feedget\"\n          aria-label=\"Feedget\"\n          className=\"bg-brand-500 hover:bg-brand-300 cursor-pointer rounded-full px-3 h-12 text-white flex items-center group shadow-lg hover:shadow-brand-500/40 transition-all duration-500 ease-out active:scale-90 hover:scale-105 font-medium z-[99999] overflow-hidden relative\"\n        >\n          <div className=\"absolute inset-0 bg-gradient-to-r from-transparent via-white/10 to-transparent translate-x-[-100%] group-hover:translate-x-[100%] transition-transform duration-1000\" />\n\n          <img\n            src={logo}\n            alt=\"Feedget Logo\"\n            className=\"w-6 h-6 transition-transform duration-300 group-hover:rotate-12\"\n          />\n\n          <span className=\"max-w-0 overflow-hidden group-hover:max-w-xs transition-all duration-500 ease-in-out whitespace-nowrap\">\n            <span className=\"pl-2 text-sm font-semibold tracking-wide\" />\n            Feedget\n          </span>\n        </Popover.Button>\n      </Popover>\n    </div>\n  );\n}\n"],"names":["IconContext","createContext","renderPathForWeight","weight","color","pathsByWeight","path","_objectWithoutPropertiesLoose","source","excluded","target","sourceKeys","key","IconBase","forwardRef","props","ref","alt","size","mirrored","children","renderPath","restProps","_useContext","useContext","_useContext$color","contextColor","contextSize","_useContext$weight","contextWeight","_useContext$mirrored","contextMirrored","restContext","React","ArrowLeft","CircleNotch","Trash","Upload","X","$f0a04ccd8dbdd83b$export$e5c5a5f917a5871c","$HgANd$react","$8ae05eaa5c114e9c$var$_React_useInsertionEffect","$8ae05eaa5c114e9c$var$useEarlyEffect","$lmaYr$react","$8ae05eaa5c114e9c$export$7f54fc3180508a52","fn","$lmaYr$useRef","$lmaYr$useCallback","args","f","$431fbd86ca7dc216$export$b204af158042fbac","el","_el_ownerDocument","$431fbd86ca7dc216$export$f21a1ffae260145a","$431fbd86ca7dc216$var$isNode","value","$431fbd86ca7dc216$export$af51f0f06c0f328a","node","$f4e2df6bd15f8569$var$_shadowDOM","$f4e2df6bd15f8569$export$98658e8c59125e6a","$d4ee10de306f2510$export$4282f70798064fe0","otherNode","$lcSu5$shadowDOM","currentNode","$d4ee10de306f2510$export$cd4e5573fbe2b576","doc","_activeElement_shadowRoot","activeElement","$d4ee10de306f2510$export$e58f029f0fbfdb29","event","$c87311424ea30a05$var$testUserAgent","re","_window_navigator_userAgentData","brands","brand","$c87311424ea30a05$var$testPlatform","$c87311424ea30a05$var$cached","res","$c87311424ea30a05$export$9ac100e40613ea10","$c87311424ea30a05$export$186c6964ca17d99","$c87311424ea30a05$export$7bef049ce92e4224","$c87311424ea30a05$export$fedb369cb70207f1","$c87311424ea30a05$export$6446a186d09e379e","$c87311424ea30a05$export$a11b0059900ceec8","$03deb23ff14920c4$export$4eaf04e54aa8eed6","globalListeners","$lPAwt$useRef","addGlobalListener","$lPAwt$useCallback","eventTarget","type","listener","options","removeGlobalListener","_globalListeners_current_get","removeAllGlobalListeners","$lPAwt$useEffect","$6a7db85432448f7f$export$60278871457622de","$8a9cb279dc87e130$export$525bc4921d56d4a","nativeEvent","$8a9cb279dc87e130$export$c2b7abe5d61ec696","$8a9cb279dc87e130$export$715c682d09d639cc","onBlur","stateRef","$6dfIe$useRef","$6dfIe$useLayoutEffect","state","dispatchBlur","$6dfIe$useEffectEvent","e","$6dfIe$useCallback","onBlurHandler","_stateRef_current_observer","relatedTargetEl","$8a9cb279dc87e130$export$fda7da73ab5d4c48","$507fabe10e71c6fb$var$currentModality","$507fabe10e71c6fb$var$changeHandlers","$507fabe10e71c6fb$export$d90243b58daecda7","$507fabe10e71c6fb$var$hasEventBeforeFocus","$507fabe10e71c6fb$var$hasBlurredWindowRecently","$507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS","$507fabe10e71c6fb$var$triggerChangeHandlers","modality","handler","$507fabe10e71c6fb$var$isValidKey","$28AnR$isMac","$507fabe10e71c6fb$var$handleKeyboardEvent","$507fabe10e71c6fb$var$handlePointerEvent","$507fabe10e71c6fb$var$handleClickEvent","$28AnR$isVirtualClick","$507fabe10e71c6fb$var$handleFocusEvent","$507fabe10e71c6fb$var$handleWindowBlur","$507fabe10e71c6fb$var$setupGlobalFocusEvents","element","$28AnR$getOwnerWindow","windowObject","documentObject","$28AnR$getOwnerDocument","focus","$507fabe10e71c6fb$var$tearDownWindowFocusTracking","loadListener","$507fabe10e71c6fb$export$2f1888112f558a7d","$507fabe10e71c6fb$export$b9b3dfddab17db27","$507fabe10e71c6fb$var$nonTextInputTypes","$507fabe10e71c6fb$var$isKeyboardFocusEvent","isTextInput","document1","IHTMLInputElement","IHTMLTextAreaElement","IHTMLElement","IKeyboardEvent","$507fabe10e71c6fb$export$ec71b4b83ac08ec3","deps","opts","$28AnR$useEffect","$a1ea59d68270f0dd$export$f8168d8dd8fd66e6","isDisabled","onFocusProp","onBlurProp","onFocusChange","$hf0lj$useCallback","onSyntheticFocus","onFocus","ownerDocument","$hf0lj$getOwnerDocument","$hf0lj$getActiveElement","$hf0lj$getEventTarget","$9ab94262bd0047c7$export$420e68273165f4ec","onBlurWithin","onFocusWithin","onFocusWithinChange","$3b9Q0$useRef","$3b9Q0$useGlobalListeners","$3b9Q0$useCallback","$3b9Q0$getOwnerDocument","$3b9Q0$getActiveElement","$3b9Q0$getEventTarget","currentTarget","$3b9Q0$nodeContains","$6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents","$6179b936705e76d3$var$hoverCount","$6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents","$6179b936705e76d3$var$handleGlobalPointerEvent","$6179b936705e76d3$var$setupGlobalTouchEvents","$6179b936705e76d3$export$ae780daf29e6d456","onHoverStart","onHoverChange","onHoverEnd","isHovered","setHovered","$AWxnT$useState","$AWxnT$useRef","$AWxnT$useEffect","$AWxnT$useGlobalListeners","hoverProps","triggerHoverEnd","$AWxnT$useMemo","triggerHoverStart","pointerType","$AWxnT$getOwnerDocument","$AWxnT$nodeContains","$f7dceffc5ad7768b$export$4e328f61c538687f","autoFocus","within","$isWE5$useRef","$isWE5$isFocusVisible","isFocused","setFocused","$isWE5$useState","isFocusVisibleState","setFocusVisible","updateState","$isWE5$useCallback","$isWE5$useFocusVisibleListener","isFocusVisible","focusProps","$isWE5$useFocus","focusWithinProps","$isWE5$useFocusWithin","i","d","t","r","o$7","s","o","l","n","u","a","p","c","E","P","w","m","g","A","C","K","$","x","U","I","F","y","O","h","T","b","k","D","R","N","v","H","S","M","V","Y","j","n.isHTMLFieldSetElement","n.isHTMLLegendElement","T$2","o$1","require$$0","is","objectIs","useSyncExternalStore","useRef","useEffect","useMemo","useDebugValue","useSyncExternalStoreWithSelector_production","subscribe","getSnapshot","getServerSnapshot","selector","isEqual","instRef","inst","memoizedSelector","nextSnapshot","hasMemo","memoizedSnapshot","currentSelection","memoizedSelection","nextSelection","maybeGetServerSnapshot","useSyncExternalStoreWithSelector_development","withSelectorModule","require$$1","c.isHTMLElement","L","_","G","d.isHTMLorSVGElement","d.isHTMLIframeElement","i.isHTMLorSVGElement","i.hasInlineStyle","i.isHTMLInputElement","hasWindow","getNodeName","isNode","getWindow","_node$ownerDocument","getDocumentElement","_ref","isElement","isHTMLElement","isShadowRoot","invalidOverflowDisplayValues","isOverflowElement","overflow","overflowX","overflowY","display","getComputedStyle","tableElements","isTableElement","topLayerSelectors","isTopLayer","transformProperties","willChangeValues","containValues","isContainingBlock","elementOrCss","webkit","isWebKit","css","getContainingBlock","getParentNode","isLastTraversableNode","lastTraversableNodeNames","getNodeScroll","result","getNearestOverflowAncestor","parentNode","getOverflowAncestors","list","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","frameElement","getFrameElement","getUserAgent","uaData","version","min","max","round","floor","createCoords","oppositeSideMap","oppositeAlignmentMap","clamp","start","end","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","yAxisSides","getSideAxis","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","length","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","lrPlacement","rlPlacement","tbPlacement","btPlacement","getSideList","side","isStart","getOppositeAxisPlacements","flipAlignment","direction","expandPaddingObject","padding","getPaddingObject","rectToClientRect","rect","width","height","computeCoordsFromPlacement","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","config","strategy","middleware","platform","validMiddleware","statefulPlacement","middlewareData","resetCount","name","nextX","nextY","data","reset","detectOverflow","_await$platform$isEle","elements","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","offsetParent","offsetScale","elementClientRect","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","detectOverflowOptions","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","placements","overflows","overflowsData","sides","_middlewareData$flip2","_overflowsData$filter","nextIndex","nextPlacement","resetPlacement","_overflowsData$filter2","currentSideAxis","acc","originSides","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","crossAxis","offset","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","_state$middlewareData","_state$middlewareData2","apply","isYAxis","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","getCssDimensions","getComputedStyle$1","hasOffset","offsetWidth","offsetHeight","shouldFallback","unwrapElement","getScale","domElement","noOffsets","getVisualOffsets","shouldAddVisualOffsets","isFixed","floatingOffsetParent","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","left","top","getWindowScrollBarX","leftScroll","getHTMLOffset","documentElement","scroll","htmlRect","convertOffsetParentRelativeRectToViewportRelativeRect","topLayer","offsets","isOffsetParentAnElement","offsetRect","htmlOffset","getClientRects","getDocumentRect","html","body","SCROLLBAR_MAX","getViewportRect","visualViewport","visualViewportBased","windowScrollbarX","bodyStyles","bodyMarginInline","clippingStableScrollbarWidth","absoluteOrFixed","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","getClippingElementAncestors","cache","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingRect","clippingAncestors","firstClippingAncestor","clippingRect","accRect","getDimensions","getRectRelativeToOffsetParent","setLeftRTLScrollbarOffset","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","getOffsetParent","svgOffsetParent","getElementRects","getOffsetParentFn","getDimensionsFn","floatingDimensions","isRTL","rectsAreEqual","observeMove","onMove","io","timeoutId","root","cleanup","_io","refresh","skip","threshold","elementRectForRootMargin","insetTop","insetRight","insetBottom","insetLeft","isFirstUpdate","handleObserve","entries","ratio","autoUpdate","update","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","ancestors","cleanupIo","reobserveFrame","resizeObserver","firstEntry","_resizeObserver","frameId","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","detectOverflow$1","offset$1","shift$1","flip$1","size$1","mergedOptions","platformWithCache","computePosition$1","isClient","noop","index","useLayoutEffect","deepEqual","keys","getDPR","roundByDPR","dpr","useLatestRef","useFloating","externalReference","externalFloating","transform","whileElementsMounted","open","setData","latestMiddleware","setLatestMiddleware","_reference","_setReference","_floating","_setFloating","setReference","referenceRef","setFloating","floatingRef","floatingEl","dataRef","hasWhileElementsMounted","whileElementsMountedRef","platformRef","openRef","fullData","isMountedRef","ReactDOM","refs","floatingStyles","initialStyles","SafeReact","useInsertionEffect","useSafeInsertionEffect","useEffectEvent","callback","_len","_key","serverHandoffComplete","count","genId","useFloatingId","id","setId","useReactId","useId","devMessageSet","warn","_devMessageSet","messages","message","_devMessageSet2","error","_devMessageSet3","_len2","_key2","_devMessageSet4","createPubSub","map","_map$get","_map$get2","FloatingNodeContext","FloatingTreeContext","useFloatingParentNodeId","_React$useContext","useFloatingTree","FOCUSABLE_ATTRIBUTE","useFloatingRootContext","onOpenChangeProp","elementsProp","floatingId","events","nested","optionDomReference","positionReference","setPositionReference","onOpenChange","reason","nodeId","internalRootContext","rootContext","computedElements","_domReference","setDomReference","_setPositionReference","domReference","domReferenceRef","tree","position","useFloating$1","computedPositionReference","context","ACTIVE_KEY","SELECTED_KEY","mergeProps","userProps","propsList","elementKey","isItem","domUserProps","__","validProps","propsOrGetProps","val","useInteractions","referenceDeps","floatingDeps","itemDeps","getReferenceProps","getFloatingProps","getItemProps","getArgsWithCustomFloatingHeight","inner","listRef","overflowRef","onFallbackChange","innerOffset","minItemsVisible","referenceOverflowThreshold","scrollRef","item","scrollEl","clientTop","floatingIsBordered","scrollElIsBordered","floatingIsScrollEl","nextArgs","refOverflow","diffY","maxHeight","useInnerOffset","enabled","unstable_onChange","onChange","controlledScrollingRef","prevScrollTopRef","initialOverflowRef","onWheel","dY","isAtTop","isAtBottom","remainingScroll","sign","method","scrollDiff","ye","Fe","Te","ae","Re","Ae","ue","ce","ge","oe","ne","ee","te","W","B","pe.isHTMLElement","le","Z","ie","Q","se","z","fe","J","q","f.isElement","a.isHTMLElement","_e","we","Ce","de","mt","vt","Tt","Pt","tt","ze","Oe","De","pe","dt","Qe","Ze","$e","He.isHTMLorSVGElement","qe","it","ut","Le","ot","ft","Ge","st","Et","bt","lt","Ie","Ke","We","Ve","Ye","he","Pe","He.isHTMLElement","be","Ue","Ee","yt","gt","Ne","ke","Me","Se","Rt","Ft","Bt","at","rt","nt","xe","Je","Xe","et","me","je","Be","ve","pt","ct","At","_t","Ct","Dt","Ot","xt","Lt","ht","vo","CloseButton","jsx","Popover","Loading","ImagePreview","image","onRemove","jsxs","UploadButton","onImageSelected","isUploading","setIsUploading","useState","fileInputRef","handleFileSelect","file","reader","handleClick","Fragment","bind","thisArg","toString","getPrototypeOf","iterator","toStringTag","kindOf","thing","str","kindOfTest","typeOfTest","isArray","isUndefined","isBuffer","isFunction","isArrayBuffer","isArrayBufferView","isString","isNumber","isObject","isBoolean","isPlainObject","prototype","isEmptyObject","isDate","isFile","isBlob","isFileList","isStream","isFormData","kind","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","trim","forEach","obj","allOwnKeys","len","findKey","_global","isContextDefined","merge","caseless","skipUndefined","assignValue","targetKey","extend","stripBOM","content","inherits","constructor","superConstructor","descriptors","toFlatObject","sourceObj","destObj","filter","propFilter","prop","merged","endsWith","searchString","lastIndex","toArray","arr","isTypedArray","TypedArray","forEachEntry","_iterator","pair","matchAll","regExp","matches","isHTMLForm","toCamelCase","p1","p2","hasOwnProperty","isRegExp","reduceDescriptors","reducer","reducedDescriptors","descriptor","ret","freezeMethods","toObjectSet","arrayOrString","delimiter","define","toFiniteNumber","defaultValue","isSpecCompliantForm","toJSONObject","stack","visit","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","token","callbacks","cb","asap","isIterable","utils$1","AxiosError","code","request","response","utils","customProps","axiosError","msg","errCode","httpAdapter","isVisitable","removeBrackets","renderKey","dots","isFlatArray","predicates","toFormData","formData","option","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","exposedHelpers","build","encode","charMap","match","AxiosURLSearchParams","params","encoder","_encode","buildURL","url","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","platform$1","URLSearchParams","FormData","Blob","hasBrowserEnv","_navigator","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","origin","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","parser","defaults","headers","contentType","hasJSONContentType","isObjectPayload","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","status","ignoreDuplicateOf","parseHeaders","rawHeaders","parsed","line","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","char","buildAccessors","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders$1","valueOrRewrite","rewrite","self","setHeader","_value","_header","_rewrite","lHeader","setHeaders","dest","entry","matcher","deleted","deleteHeader","format","normalized","targets","asStrings","first","computed","accessors","defineAccessor","AxiosHeaders","mapped","headerValue","transformData","fns","isCancel","CanceledError","settle","resolve","reject","validateStatus","parseProtocol","speedometer","samplesCount","bytes","timestamps","head","tail","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","throttle","freq","timestamp","lastArgs","timer","invoke","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","loaded","total","progressBytes","rate","inRange","progressEventDecorator","throttled","lengthComputable","asyncDecorator","isURLSameOrigin","isMSIE","cookies","expires","domain","secure","sameSite","cookie","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","allowAbsoluteUrls","isRelativeUrl","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","resolveConfig","newConfig","withXSRFToken","xsrfHeaderName","xsrfCookieName","auth","formHeaders","allowedHeaders","xsrfValue","isXHRAdapterSupported","xhrAdapter","_config","requestData","requestHeaders","responseType","onUploadProgress","onDownloadProgress","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","done","onloadend","responseHeaders","err","timeoutErrorMessage","cancel","protocol","composeSignals","signals","timeout","controller","aborted","onabort","unsubscribe","signal","streamChunk","chunk","chunkSize","pos","readBytes","iterable","readStream","stream","trackStream","onProgress","onFinish","_onFinish","loadedBytes","DEFAULT_CHUNK_SIZE","globalFetchAPI","Request","Response","ReadableStream","TextEncoder","test","factory","env","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","hasContentType","supportsResponseStream","resolvers","getBodyLength","resolveBodyLength","cancelToken","withCredentials","fetchOptions","_fetch","composedSignal","requestContentLength","_request","contentTypeHeader","flush","isCredentialsSupported","resolvedOptions","isStreamResponse","responseContentLength","responseData","seedCache","getFetch","fetch","seeds","seed","knownAdapters","fetchAdapter.getFetch","renderReason","isResolvedHandle","adapter","getAdapter","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","formatMessage","opt","desc","correctSpelling","assertOptions","schema","allowUnknown","Axios$1","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","onFulfilled","onRejected","fullPath","Axios","generateHTTPMethod","isForm","CancelToken$1","CancelToken","executor","resolvePromise","onfulfilled","_resolve","abort","spread","isAxiosError","payload","HttpStatusCode","createInstance","defaultConfig","instance","axios","promises","all","Cancel","formToJSON","FeedgetAPI","api","feedgetInstance","initFeedget","getFeedgetInstance","FeedbackContentStep","feedbackType","onFeedbackRestartRequested","onFeedbackSent","feedbackTypeInfo","feedbackTypes","isSendingFeedback","setIsSendingFeedback","uploadedImage","setUploadedImage","comment","setComment","handleSubmitFeedback","successImageUrl","FeedbackSuccessStep","FeedbackTypeStep","onFeedbackTypeChanged","bugImageUrl","ideaImageUrl","thoughtImageUrl","WidgetForm","apiKey","apiUrl","showWatermark","metadata","setFeedbackType","feedbackSent","setFeedbackSent","setError","handleRestartFeedback","logo","Widget","orientation","positionClass"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139]}