@mathwiz/ui-components 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-B6Xq3xq4.js","sources":["../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/components/Button/Button.tsx","../node_modules/@heroui/react-utils/dist/chunk-3XT5V4LF.mjs","../node_modules/@heroui/react-utils/dist/chunk-BDGLNRCW.mjs","../node_modules/@heroui/shared-utils/dist/index.mjs","../node_modules/@heroui/react-utils/dist/chunk-6UBKM7F3.mjs","../node_modules/@heroui/react-rsc-utils/dist/chunk-RFWDHYLZ.mjs","../node_modules/@heroui/react-rsc-utils/dist/chunk-RJKRL3AU.mjs","../node_modules/@heroui/system/dist/chunk-Q3W45BN5.mjs","../node_modules/@react-aria/i18n/dist/utils.mjs","../node_modules/@react-aria/ssr/dist/SSRProvider.mjs","../node_modules/@react-aria/i18n/dist/useDefaultLocale.mjs","../node_modules/@react-aria/i18n/dist/context.mjs","../node_modules/@swc/helpers/esm/_check_private_redeclaration.js","../node_modules/@swc/helpers/esm/_class_private_field_init.js","../node_modules/@react-aria/utils/dist/useLayoutEffect.mjs","../node_modules/@react-aria/utils/dist/useEffectEvent.mjs","../node_modules/@react-aria/utils/dist/useId.mjs","../node_modules/@react-aria/utils/dist/chain.mjs","../node_modules/@react-aria/utils/dist/domHelpers.mjs","../node_modules/@react-stately/flags/dist/import.mjs","../node_modules/@react-aria/utils/dist/DOMFunctions.mjs","../node_modules/@react-aria/utils/node_modules/clsx/dist/clsx.mjs","../node_modules/@react-aria/utils/dist/mergeProps.mjs","../node_modules/@react-aria/utils/dist/filterDOMProps.mjs","../node_modules/@react-aria/utils/dist/focusWithoutScrolling.mjs","../node_modules/@react-aria/utils/dist/platform.mjs","../node_modules/@react-aria/utils/dist/openLink.mjs","../node_modules/@react-aria/utils/dist/runAfterTransition.mjs","../node_modules/@react-aria/utils/dist/useGlobalListeners.mjs","../node_modules/@react-aria/utils/dist/useLabels.mjs","../node_modules/@react-aria/utils/dist/useSyncRef.mjs","../node_modules/@react-aria/utils/dist/isVirtualEvent.mjs","../node_modules/@react-aria/utils/dist/isElementVisible.mjs","../node_modules/@react-aria/utils/dist/isFocusable.mjs","../node_modules/@react-stately/utils/dist/number.mjs","../node_modules/@internationalized/number/dist/NumberFormatter.mjs","../node_modules/@react-aria/i18n/dist/useNumberFormatter.mjs","../node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/utils/use-constant.mjs","../node_modules/framer-motion/dist/es/utils/is-browser.mjs","../node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","../node_modules/framer-motion/dist/es/context/PresenceContext.mjs","../node_modules/motion-utils/dist/es/clamp.mjs","../node_modules/motion-utils/dist/es/format-error-message.mjs","../node_modules/motion-utils/dist/es/errors.mjs","../node_modules/motion-utils/dist/es/is-object.mjs","../node_modules/motion-utils/dist/es/warn-once.mjs","../node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs","../node_modules/motion-dom/dist/es/value/types/numbers/index.mjs","../node_modules/motion-dom/dist/es/value/types/numbers/units.mjs","../node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs","../node_modules/motion-dom/dist/es/value/types/int.mjs","../node_modules/motion-dom/dist/es/value/types/maps/transform.mjs","../node_modules/motion-dom/dist/es/value/types/maps/number.mjs","../node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs","../node_modules/motion-dom/dist/es/utils/is-html-element.mjs","../node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs","../node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/use-composed-ref.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","../node_modules/framer-motion/dist/es/context/LazyContext.mjs","../node_modules/framer-motion/dist/es/motion/features/definitions.mjs","../node_modules/framer-motion/dist/es/motion/features/load-features.mjs","../node_modules/framer-motion/dist/es/components/LazyMotion/index.mjs","../node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","../node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs","../node_modules/framer-motion/dist/es/render/utils/variant-props.mjs","../node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","../node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","../node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/html/use-props.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs","../node_modules/framer-motion/dist/es/render/svg/use-props.mjs","../node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","../node_modules/framer-motion/dist/es/render/dom/use-render.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs","../node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","../node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs","../node_modules/framer-motion/dist/es/motion/utils/symbol.mjs","../node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","../node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs","../node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","../node_modules/framer-motion/dist/es/motion/index.mjs","../node_modules/framer-motion/dist/es/render/components/create-proxy.mjs","../node_modules/framer-motion/dist/es/render/components/m/proxy.mjs","../node_modules/@react-aria/interactions/dist/utils.mjs","../node_modules/@react-aria/interactions/dist/textSelection.mjs","../node_modules/@react-aria/interactions/dist/context.mjs","../node_modules/@swc/helpers/esm/_class_apply_descriptor_get.js","../node_modules/@swc/helpers/esm/_class_extract_field_descriptor.js","../node_modules/@swc/helpers/esm/_class_private_field_get.js","../node_modules/@swc/helpers/esm/_class_apply_descriptor_set.js","../node_modules/@swc/helpers/esm/_class_private_field_set.js","../node_modules/@react-aria/interactions/dist/usePress.mjs","../node_modules/@react-aria/interactions/dist/useFocusVisible.mjs","../node_modules/@react-aria/interactions/dist/focusSafely.mjs","../node_modules/@react-aria/interactions/dist/useFocus.mjs","../node_modules/@react-aria/interactions/dist/createEventHandler.mjs","../node_modules/@react-aria/interactions/dist/useKeyboard.mjs","../node_modules/@react-aria/interactions/dist/useFocusable.mjs","../node_modules/@react-aria/interactions/dist/useFocusWithin.mjs","../node_modules/@react-aria/interactions/dist/useHover.mjs","../node_modules/@react-aria/focus/dist/useFocusRing.mjs","../node_modules/@heroui/system-rsc/dist/chunk-YFAKJTDR.mjs","../node_modules/@heroui/theme/dist/chunk-GQT3YUX3.mjs","../node_modules/@heroui/theme/dist/chunk-POSTVCTR.mjs","../node_modules/@heroui/theme/dist/chunk-MPVWW3DX.mjs","../node_modules/@heroui/theme/dist/chunk-WH6SPIFG.mjs","../node_modules/@heroui/theme/dist/chunk-RUIUXVZ4.mjs","../node_modules/@heroui/theme/dist/chunk-GSRZWDGA.mjs","../node_modules/@heroui/theme/dist/chunk-6JJPIEK7.mjs","../node_modules/@heroui/theme/dist/chunk-UFVD3L5A.mjs","../node_modules/tailwind-variants/dist/chunk-LK3VBVBE.js","../node_modules/tailwind-merge/dist/bundle-mjs.mjs","../node_modules/tailwind-variants/dist/chunk-RFCF2RNL.js","../node_modules/tailwind-variants/dist/index.js","../node_modules/@heroui/theme/dist/chunk-TX3FPB7D.mjs","../node_modules/@heroui/theme/dist/chunk-SCJBZBCG.mjs","../node_modules/@heroui/theme/dist/chunk-JGY6VQQQ.mjs","../node_modules/@heroui/theme/dist/chunk-3HDE5SVQ.mjs","../node_modules/@heroui/theme/dist/chunk-ZQGNWTBN.mjs","../node_modules/@heroui/theme/dist/chunk-KGFOLKLU.mjs","../node_modules/@heroui/theme/dist/chunk-D2DWF4OD.mjs","../node_modules/@heroui/use-is-mounted/dist/index.mjs","../node_modules/@react-aria/label/dist/useLabel.mjs","../node_modules/@react-aria/progress/dist/useProgressBar.mjs","../node_modules/@heroui/progress/dist/chunk-Z2ODYSHN.mjs","../node_modules/@heroui/progress/dist/chunk-XVMALT6H.mjs","../node_modules/@heroui/card/dist/chunk-XHGGCEVJ.mjs","../node_modules/@heroui/card/dist/chunk-LGSBTEIA.mjs","../node_modules/@heroui/card/dist/chunk-TE6SZS6W.mjs","../node_modules/@heroui/use-aria-button/dist/index.mjs","../node_modules/@heroui/ripple/dist/chunk-QHRCZSEO.mjs","../node_modules/@heroui/ripple/dist/chunk-6VC6TS2O.mjs","../node_modules/@heroui/card/dist/chunk-DHMIPUUY.mjs","../node_modules/@heroui/card/dist/chunk-O24IAYCG.mjs","../node_modules/lucide-react/dist/esm/shared/src/utils.js","../node_modules/lucide-react/dist/esm/defaultAttributes.js","../node_modules/lucide-react/dist/esm/Icon.js","../node_modules/lucide-react/dist/esm/createLucideIcon.js","../node_modules/lucide-react/dist/esm/icons/arrow-right.js","../node_modules/lucide-react/dist/esm/icons/chevron-down.js","../node_modules/lucide-react/dist/esm/icons/chevron-right.js","../src/components/ContentAccordion/types.ts","../src/components/ContentAccordion/ContentAccordion.tsx","../node_modules/@heroui/avatar/dist/chunk-25E6VDTZ.mjs","../node_modules/@heroui/avatar/dist/chunk-JUJ53SJZ.mjs","../node_modules/@heroui/use-safe-layout-effect/dist/index.mjs","../node_modules/@heroui/use-image/dist/index.mjs","../node_modules/@heroui/avatar/dist/chunk-S5XC7GTZ.mjs","../node_modules/@heroui/avatar/dist/chunk-U3J33PF6.mjs","../node_modules/@heroui/button/dist/chunk-3SAWKTTV.mjs","../node_modules/@heroui/button/dist/chunk-REKYGLAJ.mjs","../node_modules/@heroui/spinner/dist/chunk-IKKYW34A.mjs","../node_modules/@heroui/spinner/dist/chunk-MSDKUXDP.mjs","../node_modules/@heroui/button/dist/chunk-WBUKVQRU.mjs","../src/components/Sidebar/types.ts","../src/components/Sidebar/Sidebar.tsx","../src/components/Submenu/Submenu.tsx","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/index.js","../src/components/UserProfile/UserProfile.tsx","../src/components/MathWizHeader/MathWizHeader.tsx","../src/components/radarAbility/RadarChart/RadarChart.tsx","../node_modules/zustand/esm/vanilla.mjs","../node_modules/zustand/esm/react.mjs","../src/services/radarAbilityService.ts","../src/store/radarAbilityStore.ts","../src/components/radarAbility/AbilityProgressBar/AbilityProgressBar.tsx","../src/components/radarAbility/PersonalizedAdvicePanel/PersonalizedAdvicePanel.tsx","../src/components/radarAbility/RecommendationCard/RecommendationCard.tsx","../src/components/radarAbility/AbilityAssessmentDashboard/AbilityAssessmentDashboard.tsx","../src/data/mockData.ts","../src/services/courseService.ts","../src/data/courseData.ts","../src/pages/GradeUnitBrowserPage/GradeUnitBrowserContext.tsx","../src/pages/GradeUnitBrowserPage/GradeUnitBrowserPage.tsx","../src/types/index.ts","../src/utils/geometryCore.js","../src/data/userCourseProgress.ts","../src/data/usergradeuintsnav.ts","../src/data/usergradeunitsProgressData.ts"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.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_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.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 getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import React from 'react';\r\nimport './Button.css';\r\nimport type { ButtonProps } from './types';\r\n\r\nexport const Button: React.FC<ButtonProps> = ({\r\n progress,\r\n variant = 'solid',\r\n size = 'md',\r\n radius = 'md',\r\n children,\r\n className = '',\r\n ...props\r\n}) => {\r\n // Determine color based on progress\r\n const getColorClass = (progress: number): string => {\r\n if (progress === 0) return 'button--primary';\r\n if (progress === 100) return 'button--success';\r\n return 'button--secondary';\r\n };\r\n\r\n const colorClass = progress !== undefined ? getColorClass(progress) : 'button--primary';\r\n\r\n const buttonClasses = [\r\n 'button',\r\n `button--${size}`,\r\n `button--${variant}`,\r\n `button--radius-${radius}`,\r\n colorClass,\r\n className\r\n ].filter(Boolean).join(' ');\r\n\r\n return (\r\n <button\r\n type=\"button\"\r\n className={buttonClasses}\r\n data-progress={progress}\r\n {...props}\r\n >\r\n {children}\r\n </button>\r\n );\r\n};","\"use client\";\n\n// src/context.ts\nimport * as React from \"react\";\nfunction createContext2(options = {}) {\n const {\n strict = true,\n errorMessage = \"useContext: `context` is undefined. Seems you forgot to wrap component within the Provider\",\n name\n } = options;\n const Context = React.createContext(void 0);\n Context.displayName = name;\n function useContext2() {\n var _a;\n const context = React.useContext(Context);\n if (!context && strict) {\n const error = new Error(errorMessage);\n error.name = \"ContextError\";\n (_a = Error.captureStackTrace) == null ? void 0 : _a.call(Error, error, useContext2);\n throw error;\n }\n return context;\n }\n return [Context.Provider, useContext2, Context];\n}\n\nexport {\n createContext2 as createContext\n};\n","\"use client\";\n\n// src/dom.ts\nimport { useImperativeHandle, useLayoutEffect, useRef } from \"react\";\nfunction canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n}\nvar isBrowser = canUseDOM();\nfunction getUserAgentBrowser(navigator) {\n const { userAgent: ua, vendor } = navigator;\n const android = /(android)/i.test(ua);\n switch (true) {\n case /CriOS/.test(ua):\n return \"Chrome for iOS\";\n case /Edg\\//.test(ua):\n return \"Edge\";\n case (android && /Silk\\//.test(ua)):\n return \"Silk\";\n case (/Chrome/.test(ua) && /Google Inc/.test(vendor)):\n return \"Chrome\";\n case /Firefox\\/\\d+\\.\\d+$/.test(ua):\n return \"Firefox\";\n case android:\n return \"AOSP\";\n case /MSIE|Trident/.test(ua):\n return \"IE\";\n case (/Safari/.test(navigator.userAgent) && /Apple Computer/.test(ua)):\n return \"Safari\";\n case /AppleWebKit/.test(ua):\n return \"WebKit\";\n default:\n return null;\n }\n}\nfunction getUserAgentOS(navigator) {\n const { userAgent: ua, platform } = navigator;\n switch (true) {\n case /Android/.test(ua):\n return \"Android\";\n case /iPhone|iPad|iPod/.test(platform):\n return \"iOS\";\n case /Win/.test(platform):\n return \"Windows\";\n case /Mac/.test(platform):\n return \"Mac\";\n case /CrOS/.test(ua):\n return \"Chrome OS\";\n case /Firefox/.test(ua):\n return \"Firefox OS\";\n default:\n return null;\n }\n}\nfunction detectDeviceType(navigator) {\n const { userAgent: ua } = navigator;\n if (/(tablet)|(iPad)|(Nexus 9)/i.test(ua)) return \"tablet\";\n if (/(mobi)/i.test(ua)) return \"phone\";\n return \"desktop\";\n}\nfunction detectOS(os) {\n if (!isBrowser) return false;\n return getUserAgentOS(window.navigator) === os;\n}\nfunction detectBrowser(browser) {\n if (!isBrowser) return false;\n return getUserAgentBrowser(window.navigator) === browser;\n}\nfunction detectTouch() {\n if (!isBrowser) return false;\n return window.ontouchstart === null && window.ontouchmove === null && window.ontouchend === null;\n}\nfunction createDOMRef(ref) {\n return {\n UNSAFE_getDOMNode() {\n return ref.current;\n }\n };\n}\nfunction createFocusableRef(domRef, focusableRef = domRef) {\n return {\n ...createDOMRef(domRef),\n focus() {\n if (focusableRef.current) {\n focusableRef.current.focus();\n }\n }\n };\n}\nfunction useDOMRef(ref) {\n const domRef = useRef(null);\n useImperativeHandle(ref, () => domRef.current);\n return domRef;\n}\nfunction useFocusableRef(ref, focusableRef) {\n const domRef = useRef(null);\n useImperativeHandle(ref, () => createFocusableRef(domRef, focusableRef));\n return domRef;\n}\nfunction useSyncRef(context, ref) {\n useLayoutEffect(() => {\n if (context && context.ref && ref && ref.current) {\n context.ref.current = ref.current;\n return () => {\n var _a;\n if ((_a = context.ref) == null ? void 0 : _a.current) {\n context.ref.current = null;\n }\n };\n }\n }, [context, ref]);\n}\nfunction areRectsIntersecting(rect1, rect2) {\n return rect1 && rect2 && rect1.x < rect2.x + rect2.width && rect1.x + rect1.width > rect2.x && rect1.y < rect2.y + rect2.height && rect1.y + rect1.height > rect2.y;\n}\n\nexport {\n canUseDOM,\n isBrowser,\n getUserAgentBrowser,\n getUserAgentOS,\n detectDeviceType,\n detectOS,\n detectBrowser,\n detectTouch,\n createDOMRef,\n createFocusableRef,\n useDOMRef,\n useFocusableRef,\n useSyncRef,\n areRectsIntersecting\n};\n","// src/demi/react19/getInertValue.ts\nvar getInertValue = (v) => {\n return v;\n};\n\n// src/common/assertion.ts\nvar __DEV__ = process.env.NODE_ENV !== \"production\";\nvar __TEST__ = process.env.NODE_ENV === \"test\";\nfunction isArray(value) {\n return Array.isArray(value);\n}\nfunction isEmptyArray(value) {\n return isArray(value) && value.length === 0;\n}\nfunction isObject(value) {\n const type = typeof value;\n return value != null && (type === \"object\" || type === \"function\") && !isArray(value);\n}\nfunction isEmptyObject(value) {\n return isObject(value) && Object.keys(value).length === 0;\n}\nfunction isEmpty(value) {\n if (isArray(value)) return isEmptyArray(value);\n if (isObject(value)) return isEmptyObject(value);\n if (value == null || value === \"\") return true;\n return false;\n}\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nvar dataAttr = (condition) => condition ? \"true\" : void 0;\nvar isNumeric = (value) => value != null && parseInt(value.toString(), 10) > 0;\n\n// src/common/clsx.ts\nfunction toVal(mix) {\n var k, y, str = \"\";\n if (typeof mix === \"string\" || typeof mix === \"number\") {\n str += mix;\n } else if (typeof mix === \"object\") {\n if (Array.isArray(mix)) {\n for (k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (y = toVal(mix[k])) {\n str && (str += \" \");\n str += y;\n }\n }\n }\n } else {\n for (k in mix) {\n if (mix[k]) {\n str && (str += \" \");\n str += k;\n }\n }\n }\n }\n return str;\n}\nfunction clsx(...args) {\n var i = 0, tmp, x, str = \"\";\n while (i < args.length) {\n if (tmp = args[i++]) {\n if (x = toVal(tmp)) {\n str && (str += \" \");\n str += x;\n }\n }\n }\n return str;\n}\n\n// src/common/object.ts\nvar renameProp = (oldProp, newProp, { [oldProp]: old, ...others }) => ({\n [newProp]: old,\n ...others\n});\nvar copyObject = (obj) => {\n if (!isObject(obj)) return obj;\n if (obj instanceof Array) return [...obj];\n return { ...obj };\n};\nvar omitObject = (obj, omitKeys) => {\n if (!isObject(obj)) return obj;\n if (obj instanceof Array) return [...obj];\n const newObj = { ...obj };\n omitKeys.forEach((key) => newObj[key] && delete newObj[key]);\n return newObj;\n};\nvar cleanObject = (obj) => {\n if (!isObject(obj)) return obj;\n if (obj instanceof Array) return [...obj];\n const newObj = { ...obj };\n Object.keys(newObj).forEach((key) => {\n if (newObj[key] === void 0 || newObj[key] === null) {\n delete newObj[key];\n }\n });\n return newObj;\n};\nvar cleanObjectKeys = (obj, keys = []) => {\n if (!isObject(obj)) return obj;\n if (obj instanceof Array) return [...obj];\n const newObj = { ...obj };\n keys.forEach((key) => {\n if (newObj[key]) {\n delete newObj[key];\n }\n });\n return newObj;\n};\nvar getKeyValue = (obj, key) => {\n if (!isObject(obj)) return obj;\n if (obj instanceof Array) return [...obj];\n return obj[key];\n};\nvar getProp = (obj, path, fallback, index) => {\n const key = typeof path === \"string\" ? path.split(\".\") : [path];\n for (index = 0; index < key.length; index += 1) {\n if (!obj) break;\n obj = obj[key[index]];\n }\n return obj === void 0 ? fallback : obj;\n};\nvar arrayToObject = (arr) => {\n if (!arr.length || !Array.isArray(arr)) return {};\n return arr.reduce((acc, item) => {\n return { ...acc, ...item };\n }, {});\n};\nfunction compact(object) {\n const clone = Object.assign({}, object);\n for (let key in clone) {\n if (clone[key] === void 0) delete clone[key];\n }\n return clone;\n}\n\n// src/common/text.ts\nvar safeText = (text) => {\n if ((text == null ? void 0 : text.length) <= 4) return text;\n return text == null ? void 0 : text.slice(0, 3);\n};\nvar safeAriaLabel = (...texts) => {\n let ariaLabel = \" \";\n for (const text of texts) {\n if (typeof text === \"string\" && text.length > 0) {\n ariaLabel = text;\n break;\n }\n }\n return ariaLabel;\n};\n\n// src/common/dimensions.ts\nvar getMargin = (num) => {\n return `calc(${num * 15.25}pt + 1px * ${num - 1})`;\n};\n\n// src/common/functions.ts\nvar capitalize = (s) => {\n return s ? s.charAt(0).toUpperCase() + s.slice(1).toLowerCase() : \"\";\n};\nfunction callAllHandlers(...fns) {\n return function func(event) {\n fns.some((fn) => {\n fn == null ? void 0 : fn(event);\n return event == null ? void 0 : event.defaultPrevented;\n });\n };\n}\nfunction callAll(...fns) {\n return function mergedFn(arg) {\n fns.forEach((fn) => {\n fn == null ? void 0 : fn(arg);\n });\n };\n}\nfunction extractProperty(key, defaultValue, ...objs) {\n let result = defaultValue;\n for (const obj of objs) {\n if (obj && key in obj && !!obj[key]) {\n result = obj[key];\n }\n }\n return result;\n}\nfunction getUniqueID(prefix) {\n return `${prefix}-${Math.floor(Math.random() * 1e6)}`;\n}\nfunction removeEvents(input) {\n for (const key in input) {\n if (key.startsWith(\"on\")) {\n delete input[key];\n }\n }\n return input;\n}\nfunction objectToDeps(obj) {\n if (!obj || typeof obj !== \"object\") {\n return \"\";\n }\n try {\n return JSON.stringify(obj);\n } catch {\n return \"\";\n }\n}\nfunction debounce(func, waitMilliseconds = 0) {\n let timeout;\n return function(...args) {\n const later = () => {\n timeout = void 0;\n func.apply(this, args);\n };\n if (timeout !== void 0) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(later, waitMilliseconds);\n };\n}\nfunction uniqBy(arr, iteratee) {\n if (typeof iteratee === \"string\") {\n iteratee = (item) => item[iteratee];\n }\n return arr.filter((x, i, self) => i === self.findIndex((y) => iteratee(x) === iteratee(y)));\n}\nvar omit = (obj, keys) => {\n const res = Object.assign({}, obj);\n keys.forEach((key) => {\n delete res[key];\n });\n return res;\n};\nvar kebabCase = (s) => {\n return s.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n};\nvar mapKeys = (obj, iteratee) => {\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [iteratee(value, key), value])\n );\n};\nvar get = (object, path, defaultValue) => {\n const keys = Array.isArray(path) ? path : path.replace(/\\[(\\d+)\\]/g, \".$1\").split(\".\");\n let res = object;\n for (const key of keys) {\n res = res == null ? void 0 : res[key];\n if (res === void 0) {\n return defaultValue;\n }\n }\n return res;\n};\nvar intersectionBy = (...args) => {\n if (args.length < 2) {\n throw new Error(\"intersectionBy requires at least two arrays and an iteratee\");\n }\n const iteratee = args[args.length - 1];\n const arrays = args.slice(0, -1);\n if (arrays.length === 0) {\n return [];\n }\n const getIterateeValue = (item) => {\n if (typeof iteratee === \"function\") {\n return iteratee(item);\n } else if (typeof iteratee === \"string\") {\n return item[iteratee];\n } else {\n throw new Error(\"Iteratee must be a function or a string key of the array elements\");\n }\n };\n const [first, ...rest] = arrays;\n const transformedFirst = first.map((item) => getIterateeValue(item));\n const transformedSets = rest.map(\n (array) => new Set(array.map((item) => getIterateeValue(item)))\n );\n const res = [];\n const seen = /* @__PURE__ */ new Set();\n for (let i = 0; i < first.length; i++) {\n const item = first[i];\n const transformed = transformedFirst[i];\n if (seen.has(transformed)) {\n continue;\n }\n const existsInAll = transformedSets.every((set) => set.has(transformed));\n if (existsInAll) {\n res.push(item);\n seen.add(transformed);\n }\n }\n return res;\n};\n\n// src/common/numbers.ts\nfunction range(start, end) {\n const length = end - start + 1;\n return Array.from({ length }, (_, index) => index + start);\n}\nfunction clamp(value, min, max) {\n return Math.min(Math.max(value, min), max);\n}\nfunction clampPercentage(value, max = 100) {\n return Math.min(Math.max(value, 0), max);\n}\n\n// src/common/console.ts\nvar warningStack = {};\nfunction warn(message, component, ...args) {\n const tag = component ? ` [${component}]` : \" \";\n const log = `[Hero UI]${tag}: ${message}`;\n if (typeof console === \"undefined\") return;\n if (warningStack[log]) return;\n warningStack[log] = true;\n if (process.env.NODE_ENV !== \"production\") {\n return console.warn(log, args);\n }\n}\n\n// src/common/dates.ts\nfunction getGregorianYearOffset(identifier) {\n switch (identifier) {\n case \"buddhist\":\n return 543;\n case \"ethiopic\":\n case \"ethioaa\":\n return -8;\n case \"coptic\":\n return -284;\n case \"hebrew\":\n return 3760;\n case \"indian\":\n return -78;\n case \"islamic-civil\":\n case \"islamic-tbla\":\n case \"islamic-umalqura\":\n return -579;\n case \"persian\":\n return -600;\n case \"roc\":\n case \"japanese\":\n case \"gregory\":\n default:\n return 0;\n }\n}\n\n// src/common/regex.ts\nvar isPatternNumeric = (pattern) => {\n const numericPattern = /(^|\\W)[0-9](\\W|$)/;\n return numericPattern.test(pattern) && !/[^\\d\\^$\\[\\]\\(\\)\\*\\+\\-\\.\\|]/.test(pattern);\n};\n\n// src/common/ra.ts\nfunction chain(...callbacks) {\n return (...args) => {\n for (let callback of callbacks) {\n if (typeof callback === \"function\") {\n callback(...args);\n }\n }\n };\n}\nvar idsUpdaterMap = /* @__PURE__ */ new Map();\nfunction mergeIds(idA, idB) {\n if (idA === idB) {\n return idA;\n }\n let setIdsA = idsUpdaterMap.get(idA);\n if (setIdsA) {\n setIdsA.forEach((ref) => ref.current = idB);\n return idB;\n }\n let setIdsB = idsUpdaterMap.get(idB);\n if (setIdsB) {\n setIdsB.forEach((ref) => ref.current = idA);\n return idA;\n }\n return idB;\n}\nfunction mergeProps(...args) {\n let result = { ...args[0] };\n for (let i = 1; i < args.length; i++) {\n let props = args[i];\n for (let key in props) {\n let a = result[key];\n let b = props[key];\n if (typeof a === \"function\" && typeof b === \"function\" && // This is a lot faster than a regex.\n key[0] === \"o\" && key[1] === \"n\" && key.charCodeAt(2) >= /* 'A' */\n 65 && key.charCodeAt(2) <= /* 'Z' */\n 90) {\n result[key] = chain(a, b);\n } else if ((key === \"className\" || key === \"UNSAFE_className\") && typeof a === \"string\" && typeof b === \"string\") {\n result[key] = clsx(a, b);\n } else if (key === \"id\" && a && b) {\n result.id = mergeIds(a, b);\n } else {\n result[key] = b !== void 0 ? b : a;\n }\n }\n }\n return result;\n}\nfunction mergeRefs(...refs) {\n if (refs.length === 1 && refs[0]) {\n return refs[0];\n }\n return (value) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, value);\n hasCleanup || (hasCleanup = typeof cleanup == \"function\");\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n cleanups.forEach((cleanup, i) => {\n if (typeof cleanup === \"function\") {\n cleanup == null ? void 0 : cleanup();\n } else {\n setRef(refs[i], null);\n }\n });\n };\n }\n };\n}\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return () => ref(value);\n } else if (ref != null) {\n if (\"current\" in ref) {\n ref.current = value;\n }\n }\n}\nexport {\n __DEV__,\n __TEST__,\n arrayToObject,\n callAll,\n callAllHandlers,\n capitalize,\n chain,\n clamp,\n clampPercentage,\n cleanObject,\n cleanObjectKeys,\n clsx,\n compact,\n copyObject,\n dataAttr,\n debounce,\n extractProperty,\n get,\n getGregorianYearOffset,\n getInertValue,\n getKeyValue,\n getMargin,\n getProp,\n getUniqueID,\n idsUpdaterMap,\n intersectionBy,\n isArray,\n isEmpty,\n isEmptyArray,\n isEmptyObject,\n isFunction,\n isNumeric,\n isObject,\n isPatternNumeric,\n kebabCase,\n mapKeys,\n mergeIds,\n mergeProps,\n mergeRefs,\n objectToDeps,\n omit,\n omitObject,\n range,\n removeEvents,\n renameProp,\n safeAriaLabel,\n safeText,\n uniqBy,\n warn\n};\n","\"use client\";\n\n// src/use-is-hydrated.ts\nimport * as React from \"react\";\nfunction useIsHydrated() {\n const subscribe = () => () => {\n };\n return React.useSyncExternalStore(\n subscribe,\n () => true,\n () => false\n );\n}\n\nexport {\n useIsHydrated\n};\n","// src/dom-props.ts\nvar DOMPropNames = /* @__PURE__ */ new Set([\n \"id\",\n \"type\",\n \"style\",\n \"title\",\n \"role\",\n \"tabIndex\",\n \"htmlFor\",\n \"width\",\n \"height\",\n \"abbr\",\n \"accept\",\n \"acceptCharset\",\n \"accessKey\",\n \"action\",\n \"allowFullScreen\",\n \"allowTransparency\",\n \"alt\",\n \"async\",\n \"autoComplete\",\n \"autoFocus\",\n \"autoPlay\",\n \"cellPadding\",\n \"cellSpacing\",\n \"challenge\",\n \"charset\",\n \"checked\",\n \"cite\",\n \"class\",\n \"className\",\n \"cols\",\n \"colSpan\",\n \"command\",\n \"content\",\n \"contentEditable\",\n \"contextMenu\",\n \"controls\",\n \"coords\",\n \"crossOrigin\",\n \"data\",\n \"dateTime\",\n \"default\",\n \"defer\",\n \"dir\",\n \"disabled\",\n \"download\",\n \"draggable\",\n \"dropzone\",\n \"encType\",\n \"enterKeyHint\",\n \"for\",\n \"form\",\n \"formAction\",\n \"formEncType\",\n \"formMethod\",\n \"formNoValidate\",\n \"formTarget\",\n \"frameBorder\",\n \"headers\",\n \"hidden\",\n \"high\",\n \"href\",\n \"hrefLang\",\n \"httpEquiv\",\n \"icon\",\n \"inputMode\",\n \"isMap\",\n \"itemId\",\n \"itemProp\",\n \"itemRef\",\n \"itemScope\",\n \"itemType\",\n \"kind\",\n \"label\",\n \"lang\",\n \"list\",\n \"loop\",\n \"manifest\",\n \"max\",\n \"maxLength\",\n \"media\",\n \"mediaGroup\",\n \"method\",\n \"min\",\n \"minLength\",\n \"multiple\",\n \"muted\",\n \"name\",\n \"noValidate\",\n \"open\",\n \"optimum\",\n \"pattern\",\n \"ping\",\n \"placeholder\",\n \"poster\",\n \"preload\",\n \"radioGroup\",\n \"referrerPolicy\",\n \"readOnly\",\n \"rel\",\n \"required\",\n \"rows\",\n \"rowSpan\",\n \"sandbox\",\n \"scope\",\n \"scoped\",\n \"scrolling\",\n \"seamless\",\n \"selected\",\n \"shape\",\n \"size\",\n \"sizes\",\n \"slot\",\n \"sortable\",\n \"span\",\n \"spellCheck\",\n \"src\",\n \"srcDoc\",\n \"srcSet\",\n \"start\",\n \"step\",\n \"target\",\n \"translate\",\n \"typeMustMatch\",\n \"useMap\",\n \"value\",\n \"wmode\",\n \"wrap\"\n]);\nvar DOMEventNames = /* @__PURE__ */ new Set([\n \"onCopy\",\n \"onCut\",\n \"onPaste\",\n \"onLoad\",\n \"onError\",\n \"onWheel\",\n \"onScroll\",\n \"onCompositionEnd\",\n \"onCompositionStart\",\n \"onCompositionUpdate\",\n \"onKeyDown\",\n \"onKeyPress\",\n \"onKeyUp\",\n \"onFocus\",\n \"onBlur\",\n \"onChange\",\n \"onInput\",\n \"onSubmit\",\n \"onClick\",\n \"onContextMenu\",\n \"onDoubleClick\",\n \"onDrag\",\n \"onDragEnd\",\n \"onDragEnter\",\n \"onDragExit\",\n \"onDragLeave\",\n \"onDragOver\",\n \"onDragStart\",\n \"onDrop\",\n \"onMouseDown\",\n \"onMouseEnter\",\n \"onMouseLeave\",\n \"onMouseMove\",\n \"onMouseOut\",\n \"onMouseOver\",\n \"onMouseUp\",\n \"onPointerDown\",\n \"onPointerEnter\",\n \"onPointerLeave\",\n \"onPointerUp\",\n \"onSelect\",\n \"onTouchCancel\",\n \"onTouchEnd\",\n \"onTouchMove\",\n \"onTouchStart\",\n \"onAnimationStart\",\n \"onAnimationEnd\",\n \"onAnimationIteration\",\n \"onTransitionEnd\"\n]);\n\nexport {\n DOMPropNames,\n DOMEventNames\n};\n","import {\n DOMEventNames,\n DOMPropNames\n} from \"./chunk-RFWDHYLZ.mjs\";\n\n// src/filter-dom-props.ts\nvar propRe = /^(data-.*)$/;\nvar ariaRe = /^(aria-.*)$/;\nvar funcRe = /^(on[A-Z].*)$/;\nfunction filterDOMProps(props, opts = {}) {\n let {\n labelable = true,\n enabled = true,\n propNames,\n omitPropNames,\n omitEventNames,\n omitDataProps,\n omitEventProps\n } = opts;\n let filteredProps = {};\n if (!enabled) {\n return props;\n }\n for (const prop in props) {\n if (omitPropNames == null ? void 0 : omitPropNames.has(prop)) {\n continue;\n }\n if ((omitEventNames == null ? void 0 : omitEventNames.has(prop)) && funcRe.test(prop)) {\n continue;\n }\n if (funcRe.test(prop) && !DOMEventNames.has(prop)) {\n continue;\n }\n if (omitDataProps && propRe.test(prop)) {\n continue;\n }\n if (omitEventProps && funcRe.test(prop)) {\n continue;\n }\n if (Object.prototype.hasOwnProperty.call(props, prop) && (DOMPropNames.has(prop) || labelable && ariaRe.test(prop) || (propNames == null ? void 0 : propNames.has(prop)) || propRe.test(prop)) || funcRe.test(prop)) {\n filteredProps[prop] = props[prop];\n }\n }\n return filteredProps;\n}\n\nexport {\n filterDOMProps\n};\n","\"use client\";\n\n// src/provider-context.ts\nimport { createContext } from \"@heroui/react-utils\";\nvar [ProviderContext, useProviderContext] = createContext({\n name: \"ProviderContext\",\n strict: false\n});\n\nexport {\n ProviderContext,\n useProviderContext\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 */ // https://en.wikipedia.org/wiki/Right-to-left\nconst $148a7a147e38ea7f$var$RTL_SCRIPTS = new Set([\n 'Arab',\n 'Syrc',\n 'Samr',\n 'Mand',\n 'Thaa',\n 'Mend',\n 'Nkoo',\n 'Adlm',\n 'Rohg',\n 'Hebr'\n]);\nconst $148a7a147e38ea7f$var$RTL_LANGS = new Set([\n 'ae',\n 'ar',\n 'arc',\n 'bcc',\n 'bqi',\n 'ckb',\n 'dv',\n 'fa',\n 'glk',\n 'he',\n 'ku',\n 'mzn',\n 'nqo',\n 'pnb',\n 'ps',\n 'sd',\n 'ug',\n 'ur',\n 'yi'\n]);\nfunction $148a7a147e38ea7f$export$702d680b21cbd764(localeString) {\n // If the Intl.Locale API is available, use it to get the locale's text direction.\n if (Intl.Locale) {\n let locale = new Intl.Locale(localeString).maximize();\n // Use the text info object to get the direction if possible.\n // @ts-ignore - this was implemented as a property by some browsers before it was standardized as a function.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/getTextInfo\n let textInfo = typeof locale.getTextInfo === 'function' ? locale.getTextInfo() : locale.textInfo;\n if (textInfo) return textInfo.direction === 'rtl';\n // Fallback: guess using the script.\n // This is more accurate than guessing by language, since languages can be written in multiple scripts.\n if (locale.script) return $148a7a147e38ea7f$var$RTL_SCRIPTS.has(locale.script);\n }\n // If not, just guess by the language (first part of the locale)\n let lang = localeString.split('-')[0];\n return $148a7a147e38ea7f$var$RTL_LANGS.has(lang);\n}\n\n\nexport {$148a7a147e38ea7f$export$702d680b21cbd764 as isRTL};\n//# sourceMappingURL=utils.module.js.map\n","import $670gB$react, {useContext as $670gB$useContext, useState as $670gB$useState, useMemo as $670gB$useMemo, useLayoutEffect as $670gB$useLayoutEffect, useRef as $670gB$useRef} 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 */ // We must avoid a circular dependency with @react-aria/utils, and this useLayoutEffect is\n// guarded by a check that it only runs on the client side.\n// eslint-disable-next-line rulesdir/useLayoutEffectRule\n\n// Default context value to use in case there is no SSRProvider. This is fine for\n// client-only apps. In order to support multiple copies of React Aria potentially\n// being on the page at once, the prefix is set to a random number. SSRProvider\n// will reset this to zero for consistency between server and client, so in the\n// SSR case multiple copies of React Aria is not supported.\nconst $b5e257d569688ac6$var$defaultContext = {\n prefix: String(Math.round(Math.random() * 10000000000)),\n current: 0\n};\nconst $b5e257d569688ac6$var$SSRContext = /*#__PURE__*/ (0, $670gB$react).createContext($b5e257d569688ac6$var$defaultContext);\nconst $b5e257d569688ac6$var$IsSSRContext = /*#__PURE__*/ (0, $670gB$react).createContext(false);\n// This is only used in React < 18.\nfunction $b5e257d569688ac6$var$LegacySSRProvider(props) {\n let cur = (0, $670gB$useContext)($b5e257d569688ac6$var$SSRContext);\n let counter = $b5e257d569688ac6$var$useCounter(cur === $b5e257d569688ac6$var$defaultContext);\n let [isSSR, setIsSSR] = (0, $670gB$useState)(true);\n let value = (0, $670gB$useMemo)(()=>({\n // If this is the first SSRProvider, start with an empty string prefix, otherwise\n // append and increment the counter.\n prefix: cur === $b5e257d569688ac6$var$defaultContext ? '' : `${cur.prefix}-${counter}`,\n current: 0\n }), [\n cur,\n counter\n ]);\n // If on the client, and the component was initially server rendered,\n // then schedule a layout effect to update the component after hydration.\n if (typeof document !== 'undefined') // This if statement technically breaks the rules of hooks, but is safe\n // because the condition never changes after mounting.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0, $670gB$useLayoutEffect)(()=>{\n setIsSSR(false);\n }, []);\n return /*#__PURE__*/ (0, $670gB$react).createElement($b5e257d569688ac6$var$SSRContext.Provider, {\n value: value\n }, /*#__PURE__*/ (0, $670gB$react).createElement($b5e257d569688ac6$var$IsSSRContext.Provider, {\n value: isSSR\n }, props.children));\n}\nlet $b5e257d569688ac6$var$warnedAboutSSRProvider = false;\nfunction $b5e257d569688ac6$export$9f8ac96af4b1b2ae(props) {\n if (typeof (0, $670gB$react)['useId'] === 'function') {\n if (process.env.NODE_ENV !== 'test' && process.env.NODE_ENV !== 'production' && !$b5e257d569688ac6$var$warnedAboutSSRProvider) {\n console.warn('In React 18, SSRProvider is not necessary and is a noop. You can remove it from your app.');\n $b5e257d569688ac6$var$warnedAboutSSRProvider = true;\n }\n return /*#__PURE__*/ (0, $670gB$react).createElement((0, $670gB$react).Fragment, null, props.children);\n }\n return /*#__PURE__*/ (0, $670gB$react).createElement($b5e257d569688ac6$var$LegacySSRProvider, props);\n}\nlet $b5e257d569688ac6$var$canUseDOM = Boolean(typeof window !== 'undefined' && window.document && window.document.createElement);\nlet $b5e257d569688ac6$var$componentIds = new WeakMap();\nfunction $b5e257d569688ac6$var$useCounter(isDisabled = false) {\n let ctx = (0, $670gB$useContext)($b5e257d569688ac6$var$SSRContext);\n let ref = (0, $670gB$useRef)(null);\n // eslint-disable-next-line rulesdir/pure-render\n if (ref.current === null && !isDisabled) {\n var _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner, _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n // In strict mode, React renders components twice, and the ref will be reset to null on the second render.\n // This means our id counter will be incremented twice instead of once. This is a problem because on the\n // server, components are only rendered once and so ids generated on the server won't match the client.\n // In React 18, useId was introduced to solve this, but it is not available in older versions. So to solve this\n // we need to use some React internals to access the underlying Fiber instance, which is stable between renders.\n // This is exposed as ReactCurrentOwner in development, which is all we need since StrictMode only runs in development.\n // To ensure that we only increment the global counter once, we store the starting id for this component in\n // a weak map associated with the Fiber. On the second render, we reset the global counter to this value.\n // Since React runs the second render immediately after the first, this is safe.\n // @ts-ignore\n let currentOwner = (_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = (0, $670gB$react).__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === null || _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED === void 0 ? void 0 : (_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner = _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner) === null || _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner === void 0 ? void 0 : _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner.current;\n if (currentOwner) {\n let prevComponentValue = $b5e257d569688ac6$var$componentIds.get(currentOwner);\n if (prevComponentValue == null) // On the first render, and first call to useId, store the id and state in our weak map.\n $b5e257d569688ac6$var$componentIds.set(currentOwner, {\n id: ctx.current,\n state: currentOwner.memoizedState\n });\n else if (currentOwner.memoizedState !== prevComponentValue.state) {\n // On the second render, the memoizedState gets reset by React.\n // Reset the counter, and remove from the weak map so we don't\n // do this for subsequent useId calls.\n ctx.current = prevComponentValue.id;\n $b5e257d569688ac6$var$componentIds.delete(currentOwner);\n }\n }\n // eslint-disable-next-line rulesdir/pure-render\n ref.current = ++ctx.current;\n }\n // eslint-disable-next-line rulesdir/pure-render\n return ref.current;\n}\nfunction $b5e257d569688ac6$var$useLegacySSRSafeId(defaultId) {\n let ctx = (0, $670gB$useContext)($b5e257d569688ac6$var$SSRContext);\n // If we are rendering in a non-DOM environment, and there's no SSRProvider,\n // provide a warning to hint to the developer to add one.\n if (ctx === $b5e257d569688ac6$var$defaultContext && !$b5e257d569688ac6$var$canUseDOM && process.env.NODE_ENV !== 'production') console.warn('When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.');\n let counter = $b5e257d569688ac6$var$useCounter(!!defaultId);\n let prefix = ctx === $b5e257d569688ac6$var$defaultContext && process.env.NODE_ENV === 'test' ? 'react-aria' : `react-aria${ctx.prefix}`;\n return defaultId || `${prefix}-${counter}`;\n}\nfunction $b5e257d569688ac6$var$useModernSSRSafeId(defaultId) {\n let id = (0, $670gB$react).useId();\n let [didSSR] = (0, $670gB$useState)($b5e257d569688ac6$export$535bd6ca7f90a273());\n let prefix = didSSR || process.env.NODE_ENV === 'test' ? 'react-aria' : `react-aria${$b5e257d569688ac6$var$defaultContext.prefix}`;\n return defaultId || `${prefix}-${id}`;\n}\nconst $b5e257d569688ac6$export$619500959fc48b26 = typeof (0, $670gB$react)['useId'] === 'function' ? $b5e257d569688ac6$var$useModernSSRSafeId : $b5e257d569688ac6$var$useLegacySSRSafeId;\nfunction $b5e257d569688ac6$var$getSnapshot() {\n return false;\n}\nfunction $b5e257d569688ac6$var$getServerSnapshot() {\n return true;\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction $b5e257d569688ac6$var$subscribe(onStoreChange) {\n // noop\n return ()=>{};\n}\nfunction $b5e257d569688ac6$export$535bd6ca7f90a273() {\n // In React 18, we can use useSyncExternalStore to detect if we're server rendering or hydrating.\n if (typeof (0, $670gB$react)['useSyncExternalStore'] === 'function') return (0, $670gB$react)['useSyncExternalStore']($b5e257d569688ac6$var$subscribe, $b5e257d569688ac6$var$getSnapshot, $b5e257d569688ac6$var$getServerSnapshot);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return (0, $670gB$useContext)($b5e257d569688ac6$var$IsSSRContext);\n}\n\n\nexport {$b5e257d569688ac6$export$9f8ac96af4b1b2ae as SSRProvider, $b5e257d569688ac6$export$535bd6ca7f90a273 as useIsSSR, $b5e257d569688ac6$export$619500959fc48b26 as useSSRSafeId};\n//# sourceMappingURL=SSRProvider.module.js.map\n","import {isRTL as $148a7a147e38ea7f$export$702d680b21cbd764} from \"./utils.mjs\";\nimport {useState as $ffhGL$useState, useEffect as $ffhGL$useEffect} from \"react\";\nimport {useIsSSR as $ffhGL$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 */ \n\n\n// Locale passed from server by PackageLocalizationProvider.\nconst $1e5a04cdaf7d1af8$var$localeSymbol = Symbol.for('react-aria.i18n.locale');\nfunction $1e5a04cdaf7d1af8$export$f09106e7c6677ec5() {\n let locale = typeof window !== 'undefined' && window[$1e5a04cdaf7d1af8$var$localeSymbol] || typeof navigator !== 'undefined' && (navigator.language || navigator.userLanguage) || 'en-US';\n try {\n Intl.DateTimeFormat.supportedLocalesOf([\n locale\n ]);\n } catch {\n locale = 'en-US';\n }\n return {\n locale: locale,\n direction: (0, $148a7a147e38ea7f$export$702d680b21cbd764)(locale) ? 'rtl' : 'ltr'\n };\n}\nlet $1e5a04cdaf7d1af8$var$currentLocale = $1e5a04cdaf7d1af8$export$f09106e7c6677ec5();\nlet $1e5a04cdaf7d1af8$var$listeners = new Set();\nfunction $1e5a04cdaf7d1af8$var$updateLocale() {\n $1e5a04cdaf7d1af8$var$currentLocale = $1e5a04cdaf7d1af8$export$f09106e7c6677ec5();\n for (let listener of $1e5a04cdaf7d1af8$var$listeners)listener($1e5a04cdaf7d1af8$var$currentLocale);\n}\nfunction $1e5a04cdaf7d1af8$export$188ec29ebc2bdc3a() {\n let isSSR = (0, $ffhGL$useIsSSR)();\n let [defaultLocale, setDefaultLocale] = (0, $ffhGL$useState)($1e5a04cdaf7d1af8$var$currentLocale);\n (0, $ffhGL$useEffect)(()=>{\n if ($1e5a04cdaf7d1af8$var$listeners.size === 0) window.addEventListener('languagechange', $1e5a04cdaf7d1af8$var$updateLocale);\n $1e5a04cdaf7d1af8$var$listeners.add(setDefaultLocale);\n return ()=>{\n $1e5a04cdaf7d1af8$var$listeners.delete(setDefaultLocale);\n if ($1e5a04cdaf7d1af8$var$listeners.size === 0) window.removeEventListener('languagechange', $1e5a04cdaf7d1af8$var$updateLocale);\n };\n }, []);\n // We cannot determine the browser's language on the server, so default to\n // en-US. This will be updated after hydration on the client to the correct value.\n if (isSSR) return {\n locale: 'en-US',\n direction: 'ltr'\n };\n return defaultLocale;\n}\n\n\nexport {$1e5a04cdaf7d1af8$export$f09106e7c6677ec5 as getDefaultLocale, $1e5a04cdaf7d1af8$export$188ec29ebc2bdc3a as useDefaultLocale};\n//# sourceMappingURL=useDefaultLocale.module.js.map\n","import {isRTL as $148a7a147e38ea7f$export$702d680b21cbd764} from \"./utils.mjs\";\nimport {useDefaultLocale as $1e5a04cdaf7d1af8$export$188ec29ebc2bdc3a} from \"./useDefaultLocale.mjs\";\nimport $h9FiU$react, {useContext as $h9FiU$useContext} 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\n\nconst $18f2051aff69b9bf$var$I18nContext = /*#__PURE__*/ (0, $h9FiU$react).createContext(null);\nfunction $18f2051aff69b9bf$export$a54013f0d02a8f82(props) {\n let { locale: locale, children: children } = props;\n let defaultLocale = (0, $1e5a04cdaf7d1af8$export$188ec29ebc2bdc3a)();\n let value = (0, $h9FiU$react).useMemo(()=>{\n if (!locale) return defaultLocale;\n return {\n locale: locale,\n direction: (0, $148a7a147e38ea7f$export$702d680b21cbd764)(locale) ? 'rtl' : 'ltr'\n };\n }, [\n defaultLocale,\n locale\n ]);\n return /*#__PURE__*/ (0, $h9FiU$react).createElement($18f2051aff69b9bf$var$I18nContext.Provider, {\n value: value\n }, children);\n}\nfunction $18f2051aff69b9bf$export$43bb16f9c6d9e3f7() {\n let defaultLocale = (0, $1e5a04cdaf7d1af8$export$188ec29ebc2bdc3a)();\n let context = (0, $h9FiU$useContext)($18f2051aff69b9bf$var$I18nContext);\n return context || defaultLocale;\n}\n\n\nexport {$18f2051aff69b9bf$export$a54013f0d02a8f82 as I18nProvider, $18f2051aff69b9bf$export$43bb16f9c6d9e3f7 as useLocale};\n//# sourceMappingURL=context.module.js.map\n","function _check_private_redeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}\nexport { _check_private_redeclaration as _ };\n","import { _ as _check_private_redeclaration } from \"./_check_private_redeclaration.js\";\n\nfunction _class_private_field_init(obj, privateMap, value) {\n _check_private_redeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}\nexport { _class_private_field_init as _ };\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","import {useLayoutEffect as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c} from \"./useLayoutEffect.mjs\";\nimport {useValueEffect as $1dbecbe27a04f9af$export$14d238f342723f25} from \"./useValueEffect.mjs\";\nimport {useState as $eKkEp$useState, useRef as $eKkEp$useRef, useEffect as $eKkEp$useEffect, useCallback as $eKkEp$useCallback} from \"react\";\nimport {useSSRSafeId as $eKkEp$useSSRSafeId} 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 */ \n\n\n\n// copied from SSRProvider.tsx to reduce exports, if needed again, consider sharing\nlet $bdb11010cef70236$var$canUseDOM = Boolean(typeof window !== 'undefined' && window.document && window.document.createElement);\nlet $bdb11010cef70236$export$d41a04c74483c6ef = new Map();\n// This allows us to clean up the idsUpdaterMap when the id is no longer used.\n// Map is a strong reference, so unused ids wouldn't be cleaned up otherwise.\n// This can happen in suspended components where mount/unmount is not called.\nlet $bdb11010cef70236$var$registry;\nif (typeof FinalizationRegistry !== 'undefined') $bdb11010cef70236$var$registry = new FinalizationRegistry((heldValue)=>{\n $bdb11010cef70236$export$d41a04c74483c6ef.delete(heldValue);\n});\nfunction $bdb11010cef70236$export$f680877a34711e37(defaultId) {\n let [value, setValue] = (0, $eKkEp$useState)(defaultId);\n let nextId = (0, $eKkEp$useRef)(null);\n let res = (0, $eKkEp$useSSRSafeId)(value);\n let cleanupRef = (0, $eKkEp$useRef)(null);\n if ($bdb11010cef70236$var$registry) $bdb11010cef70236$var$registry.register(cleanupRef, res);\n if ($bdb11010cef70236$var$canUseDOM) {\n const cacheIdRef = $bdb11010cef70236$export$d41a04c74483c6ef.get(res);\n if (cacheIdRef && !cacheIdRef.includes(nextId)) cacheIdRef.push(nextId);\n else $bdb11010cef70236$export$d41a04c74483c6ef.set(res, [\n nextId\n ]);\n }\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n let r = res;\n return ()=>{\n // In Suspense, the cleanup function may be not called\n // when it is though, also remove it from the finalization registry.\n if ($bdb11010cef70236$var$registry) $bdb11010cef70236$var$registry.unregister(cleanupRef);\n $bdb11010cef70236$export$d41a04c74483c6ef.delete(r);\n };\n }, [\n res\n ]);\n // This cannot cause an infinite loop because the ref is always cleaned up.\n // eslint-disable-next-line\n (0, $eKkEp$useEffect)(()=>{\n let newId = nextId.current;\n if (newId) setValue(newId);\n return ()=>{\n if (newId) nextId.current = null;\n };\n });\n return res;\n}\nfunction $bdb11010cef70236$export$cd8c9cb68f842629(idA, idB) {\n if (idA === idB) return idA;\n let setIdsA = $bdb11010cef70236$export$d41a04c74483c6ef.get(idA);\n if (setIdsA) {\n setIdsA.forEach((ref)=>ref.current = idB);\n return idB;\n }\n let setIdsB = $bdb11010cef70236$export$d41a04c74483c6ef.get(idB);\n if (setIdsB) {\n setIdsB.forEach((ref)=>ref.current = idA);\n return idA;\n }\n return idB;\n}\nfunction $bdb11010cef70236$export$b4cc09c592e8fdb8(depArray = []) {\n let id = $bdb11010cef70236$export$f680877a34711e37();\n let [resolvedId, setResolvedId] = (0, $1dbecbe27a04f9af$export$14d238f342723f25)(id);\n let updateId = (0, $eKkEp$useCallback)(()=>{\n setResolvedId(function*() {\n yield id;\n yield document.getElementById(id) ? id : undefined;\n });\n }, [\n id,\n setResolvedId\n ]);\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(updateId, [\n id,\n updateId,\n ...depArray\n ]);\n return resolvedId;\n}\n\n\nexport {$bdb11010cef70236$export$d41a04c74483c6ef as idsUpdaterMap, $bdb11010cef70236$export$f680877a34711e37 as useId, $bdb11010cef70236$export$cd8c9cb68f842629 as mergeIds, $bdb11010cef70236$export$b4cc09c592e8fdb8 as useSlotId};\n//# sourceMappingURL=useId.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 */ /**\n * Calls all functions in the order they were chained with the same arguments.\n */ function $ff5963eb1fccf552$export$e08e3b67e392101e(...callbacks) {\n return (...args)=>{\n for (let callback of callbacks)if (typeof callback === 'function') callback(...args);\n };\n}\n\n\nexport {$ff5963eb1fccf552$export$e08e3b67e392101e as chain};\n//# sourceMappingURL=chain.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","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import {chain as $ff5963eb1fccf552$export$e08e3b67e392101e} from \"./chain.mjs\";\nimport {mergeIds as $bdb11010cef70236$export$cd8c9cb68f842629} from \"./useId.mjs\";\nimport $7jXr9$clsx from \"clsx\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\nfunction $3ef42575df84b30b$export$9d1611c77c2fe928(...args) {\n // Start with a base clone of the first argument. This is a lot faster than starting\n // with an empty object and adding properties as we go.\n let result = {\n ...args[0]\n };\n for(let i = 1; i < args.length; i++){\n let props = args[i];\n for(let key in props){\n let a = result[key];\n let b = props[key];\n // Chain events\n if (typeof a === 'function' && typeof b === 'function' && // This is a lot faster than a regex.\n key[0] === 'o' && key[1] === 'n' && key.charCodeAt(2) >= /* 'A' */ 65 && key.charCodeAt(2) <= /* 'Z' */ 90) result[key] = (0, $ff5963eb1fccf552$export$e08e3b67e392101e)(a, b);\n else if ((key === 'className' || key === 'UNSAFE_className') && typeof a === 'string' && typeof b === 'string') result[key] = (0, $7jXr9$clsx)(a, b);\n else if (key === 'id' && a && b) result.id = (0, $bdb11010cef70236$export$cd8c9cb68f842629)(a, b);\n else result[key] = b !== undefined ? b : a;\n }\n }\n return result;\n}\n\n\nexport {$3ef42575df84b30b$export$9d1611c77c2fe928 as mergeProps};\n//# sourceMappingURL=mergeProps.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 */ const $65484d02dcb7eb3e$var$DOMPropNames = new Set([\n 'id'\n]);\nconst $65484d02dcb7eb3e$var$labelablePropNames = new Set([\n 'aria-label',\n 'aria-labelledby',\n 'aria-describedby',\n 'aria-details'\n]);\n// See LinkDOMProps in dom.d.ts.\nconst $65484d02dcb7eb3e$var$linkPropNames = new Set([\n 'href',\n 'hrefLang',\n 'target',\n 'rel',\n 'download',\n 'ping',\n 'referrerPolicy'\n]);\nconst $65484d02dcb7eb3e$var$globalAttrs = new Set([\n 'dir',\n 'lang',\n 'hidden',\n 'inert',\n 'translate'\n]);\nconst $65484d02dcb7eb3e$var$globalEvents = new Set([\n 'onClick',\n 'onAuxClick',\n 'onContextMenu',\n 'onDoubleClick',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n 'onTouchCancel',\n 'onTouchEnd',\n 'onTouchMove',\n 'onTouchStart',\n 'onPointerDown',\n 'onPointerMove',\n 'onPointerUp',\n 'onPointerCancel',\n 'onPointerEnter',\n 'onPointerLeave',\n 'onPointerOver',\n 'onPointerOut',\n 'onGotPointerCapture',\n 'onLostPointerCapture',\n 'onScroll',\n 'onWheel',\n 'onAnimationStart',\n 'onAnimationEnd',\n 'onAnimationIteration',\n 'onTransitionCancel',\n 'onTransitionEnd',\n 'onTransitionRun',\n 'onTransitionStart'\n]);\nconst $65484d02dcb7eb3e$var$propRe = /^(data-.*)$/;\nfunction $65484d02dcb7eb3e$export$457c3d6518dd4c6f(props, opts = {}) {\n let { labelable: labelable, isLink: isLink, global: global, events: events = global, propNames: propNames } = opts;\n let filteredProps = {};\n for(const prop in props)if (Object.prototype.hasOwnProperty.call(props, prop) && ($65484d02dcb7eb3e$var$DOMPropNames.has(prop) || labelable && $65484d02dcb7eb3e$var$labelablePropNames.has(prop) || isLink && $65484d02dcb7eb3e$var$linkPropNames.has(prop) || global && $65484d02dcb7eb3e$var$globalAttrs.has(prop) || events && $65484d02dcb7eb3e$var$globalEvents.has(prop) || prop.endsWith('Capture') && $65484d02dcb7eb3e$var$globalEvents.has(prop.slice(0, -7)) || (propNames === null || propNames === void 0 ? void 0 : propNames.has(prop)) || $65484d02dcb7eb3e$var$propRe.test(prop))) filteredProps[prop] = props[prop];\n return filteredProps;\n}\n\n\nexport {$65484d02dcb7eb3e$export$457c3d6518dd4c6f as filterDOMProps};\n//# sourceMappingURL=filterDOMProps.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 $7215afc6de606d6b$export$de79e2c695e052f3(element) {\n if ($7215afc6de606d6b$var$supportsPreventScroll()) element.focus({\n preventScroll: true\n });\n else {\n let scrollableElements = $7215afc6de606d6b$var$getScrollableElements(element);\n element.focus();\n $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements);\n }\n}\nlet $7215afc6de606d6b$var$supportsPreventScrollCached = null;\nfunction $7215afc6de606d6b$var$supportsPreventScroll() {\n if ($7215afc6de606d6b$var$supportsPreventScrollCached == null) {\n $7215afc6de606d6b$var$supportsPreventScrollCached = false;\n try {\n let focusElem = document.createElement('div');\n focusElem.focus({\n get preventScroll () {\n $7215afc6de606d6b$var$supportsPreventScrollCached = true;\n return true;\n }\n });\n } catch {\n // Ignore\n }\n }\n return $7215afc6de606d6b$var$supportsPreventScrollCached;\n}\nfunction $7215afc6de606d6b$var$getScrollableElements(element) {\n let parent = element.parentNode;\n let scrollableElements = [];\n let rootScrollingElement = document.scrollingElement || document.documentElement;\n while(parent instanceof HTMLElement && parent !== rootScrollingElement){\n if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) scrollableElements.push({\n element: parent,\n scrollTop: parent.scrollTop,\n scrollLeft: parent.scrollLeft\n });\n parent = parent.parentNode;\n }\n if (rootScrollingElement instanceof HTMLElement) scrollableElements.push({\n element: rootScrollingElement,\n scrollTop: rootScrollingElement.scrollTop,\n scrollLeft: rootScrollingElement.scrollLeft\n });\n return scrollableElements;\n}\nfunction $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements) {\n for (let { element: element, scrollTop: scrollTop, scrollLeft: scrollLeft } of scrollableElements){\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }\n}\n\n\nexport {$7215afc6de606d6b$export$de79e2c695e052f3 as focusWithoutScrolling};\n//# sourceMappingURL=focusWithoutScrolling.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 {focusWithoutScrolling as $7215afc6de606d6b$export$de79e2c695e052f3} from \"./focusWithoutScrolling.mjs\";\nimport {isMac as $c87311424ea30a05$export$9ac100e40613ea10, isWebKit as $c87311424ea30a05$export$78551043582a6a98, isFirefox as $c87311424ea30a05$export$b7d78993b74f766d, isIPad as $c87311424ea30a05$export$7bef049ce92e4224} from \"./platform.mjs\";\nimport $g3jFn$react, {createContext as $g3jFn$createContext, useMemo as $g3jFn$useMemo, useContext as $g3jFn$useContext} 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\n\nconst $ea8dcbcb9ea1b556$var$RouterContext = /*#__PURE__*/ (0, $g3jFn$createContext)({\n isNative: true,\n open: $ea8dcbcb9ea1b556$var$openSyntheticLink,\n useHref: (href)=>href\n});\nfunction $ea8dcbcb9ea1b556$export$323e4fc2fa4753fb(props) {\n let { children: children, navigate: navigate, useHref: useHref } = props;\n let ctx = (0, $g3jFn$useMemo)(()=>({\n isNative: false,\n open: (target, modifiers, href, routerOptions)=>{\n $ea8dcbcb9ea1b556$var$getSyntheticLink(target, (link)=>{\n if ($ea8dcbcb9ea1b556$export$efa8c9099e530235(link, modifiers)) navigate(href, routerOptions);\n else $ea8dcbcb9ea1b556$export$95185d699e05d4d7(link, modifiers);\n });\n },\n useHref: useHref || ((href)=>href)\n }), [\n navigate,\n useHref\n ]);\n return /*#__PURE__*/ (0, $g3jFn$react).createElement($ea8dcbcb9ea1b556$var$RouterContext.Provider, {\n value: ctx\n }, children);\n}\nfunction $ea8dcbcb9ea1b556$export$9a302a45f65d0572() {\n return (0, $g3jFn$useContext)($ea8dcbcb9ea1b556$var$RouterContext);\n}\nfunction $ea8dcbcb9ea1b556$export$efa8c9099e530235(link, modifiers) {\n // Use getAttribute here instead of link.target. Firefox will default link.target to \"_parent\" when inside an iframe.\n let target = link.getAttribute('target');\n return (!target || target === '_self') && link.origin === location.origin && !link.hasAttribute('download') && !modifiers.metaKey && // open in new tab (mac)\n !modifiers.ctrlKey && // open in new tab (windows)\n !modifiers.altKey && // download\n !modifiers.shiftKey;\n}\nfunction $ea8dcbcb9ea1b556$export$95185d699e05d4d7(target, modifiers, setOpening = true) {\n var _window_event_type, _window_event;\n let { metaKey: metaKey, ctrlKey: ctrlKey, altKey: altKey, shiftKey: shiftKey } = modifiers;\n // Firefox does not recognize keyboard events as a user action by default, and the popup blocker\n // will prevent links with target=\"_blank\" from opening. However, it does allow the event if the\n // Command/Control key is held, which opens the link in a background tab. This seems like the best we can do.\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=257870 and https://bugzilla.mozilla.org/show_bug.cgi?id=746640.\n if ((0, $c87311424ea30a05$export$b7d78993b74f766d)() && ((_window_event = window.event) === null || _window_event === void 0 ? void 0 : (_window_event_type = _window_event.type) === null || _window_event_type === void 0 ? void 0 : _window_event_type.startsWith('key')) && target.target === '_blank') {\n if ((0, $c87311424ea30a05$export$9ac100e40613ea10)()) metaKey = true;\n else ctrlKey = true;\n }\n // WebKit does not support firing click events with modifier keys, but does support keyboard events.\n // https://github.com/WebKit/WebKit/blob/c03d0ac6e6db178f90923a0a63080b5ca210d25f/Source/WebCore/html/HTMLAnchorElement.cpp#L184\n let event = (0, $c87311424ea30a05$export$78551043582a6a98)() && (0, $c87311424ea30a05$export$9ac100e40613ea10)() && !(0, $c87311424ea30a05$export$7bef049ce92e4224)() && process.env.NODE_ENV !== 'test' ? new KeyboardEvent('keydown', {\n keyIdentifier: 'Enter',\n metaKey: metaKey,\n ctrlKey: ctrlKey,\n altKey: altKey,\n shiftKey: shiftKey\n }) : new MouseEvent('click', {\n metaKey: metaKey,\n ctrlKey: ctrlKey,\n altKey: altKey,\n shiftKey: shiftKey,\n bubbles: true,\n cancelable: true\n });\n $ea8dcbcb9ea1b556$export$95185d699e05d4d7.isOpening = setOpening;\n (0, $7215afc6de606d6b$export$de79e2c695e052f3)(target);\n target.dispatchEvent(event);\n $ea8dcbcb9ea1b556$export$95185d699e05d4d7.isOpening = false;\n}\n// https://github.com/parcel-bundler/parcel/issues/8724\n$ea8dcbcb9ea1b556$export$95185d699e05d4d7.isOpening = false;\nfunction $ea8dcbcb9ea1b556$var$getSyntheticLink(target, open) {\n if (target instanceof HTMLAnchorElement) open(target);\n else if (target.hasAttribute('data-href')) {\n let link = document.createElement('a');\n link.href = target.getAttribute('data-href');\n if (target.hasAttribute('data-target')) link.target = target.getAttribute('data-target');\n if (target.hasAttribute('data-rel')) link.rel = target.getAttribute('data-rel');\n if (target.hasAttribute('data-download')) link.download = target.getAttribute('data-download');\n if (target.hasAttribute('data-ping')) link.ping = target.getAttribute('data-ping');\n if (target.hasAttribute('data-referrer-policy')) link.referrerPolicy = target.getAttribute('data-referrer-policy');\n target.appendChild(link);\n open(link);\n target.removeChild(link);\n }\n}\nfunction $ea8dcbcb9ea1b556$var$openSyntheticLink(target, modifiers) {\n $ea8dcbcb9ea1b556$var$getSyntheticLink(target, (link)=>$ea8dcbcb9ea1b556$export$95185d699e05d4d7(link, modifiers));\n}\nfunction $ea8dcbcb9ea1b556$export$bdc77b0c0a3a85d6(props) {\n let router = $ea8dcbcb9ea1b556$export$9a302a45f65d0572();\n var _props_href;\n const href = router.useHref((_props_href = props.href) !== null && _props_href !== void 0 ? _props_href : '');\n return {\n 'data-href': props.href ? href : undefined,\n 'data-target': props.target,\n 'data-rel': props.rel,\n 'data-download': props.download,\n 'data-ping': props.ping,\n 'data-referrer-policy': props.referrerPolicy\n };\n}\nfunction $ea8dcbcb9ea1b556$export$51437d503373d223(props) {\n return {\n 'data-href': props.href,\n 'data-target': props.target,\n 'data-rel': props.rel,\n 'data-download': props.download,\n 'data-ping': props.ping,\n 'data-referrer-policy': props.referrerPolicy\n };\n}\nfunction $ea8dcbcb9ea1b556$export$7e924b3091a3bd18(props) {\n let router = $ea8dcbcb9ea1b556$export$9a302a45f65d0572();\n var _props_href;\n const href = router.useHref((_props_href = props === null || props === void 0 ? void 0 : props.href) !== null && _props_href !== void 0 ? _props_href : '');\n return {\n href: (props === null || props === void 0 ? void 0 : props.href) ? href : undefined,\n target: props === null || props === void 0 ? void 0 : props.target,\n rel: props === null || props === void 0 ? void 0 : props.rel,\n download: props === null || props === void 0 ? void 0 : props.download,\n ping: props === null || props === void 0 ? void 0 : props.ping,\n referrerPolicy: props === null || props === void 0 ? void 0 : props.referrerPolicy\n };\n}\nfunction $ea8dcbcb9ea1b556$export$13aea1a3cb5e3f1f(e, router, href, routerOptions) {\n // If a custom router is provided, prevent default and forward if this link should client navigate.\n if (!router.isNative && e.currentTarget instanceof HTMLAnchorElement && e.currentTarget.href && // If props are applied to a router Link component, it may have already prevented default.\n !e.isDefaultPrevented() && $ea8dcbcb9ea1b556$export$efa8c9099e530235(e.currentTarget, e) && href) {\n e.preventDefault();\n router.open(e.currentTarget, e, href, routerOptions);\n }\n}\n\n\nexport {$ea8dcbcb9ea1b556$export$323e4fc2fa4753fb as RouterProvider, $ea8dcbcb9ea1b556$export$efa8c9099e530235 as shouldClientNavigate, $ea8dcbcb9ea1b556$export$95185d699e05d4d7 as openLink, $ea8dcbcb9ea1b556$export$9a302a45f65d0572 as useRouter, $ea8dcbcb9ea1b556$export$bdc77b0c0a3a85d6 as useSyntheticLinkProps, $ea8dcbcb9ea1b556$export$51437d503373d223 as getSyntheticLinkProps, $ea8dcbcb9ea1b556$export$7e924b3091a3bd18 as useLinkProps, $ea8dcbcb9ea1b556$export$13aea1a3cb5e3f1f as handleLinkClick};\n//# sourceMappingURL=openLink.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 */ // We store a global list of elements that are currently transitioning,\n// mapped to a set of CSS properties that are transitioning for that element.\n// This is necessary rather than a simple count of transitions because of browser\n// bugs, e.g. Chrome sometimes fires both transitionend and transitioncancel rather\n// than one or the other. So we need to track what's actually transitioning so that\n// we can ignore these duplicate events.\nlet $bbed8b41f857bcc0$var$transitionsByElement = new Map();\n// A list of callbacks to call once there are no transitioning elements.\nlet $bbed8b41f857bcc0$var$transitionCallbacks = new Set();\nfunction $bbed8b41f857bcc0$var$setupGlobalEvents() {\n if (typeof window === 'undefined') return;\n function isTransitionEvent(event) {\n return 'propertyName' in event;\n }\n let onTransitionStart = (e)=>{\n if (!isTransitionEvent(e) || !e.target) return;\n // Add the transitioning property to the list for this element.\n let transitions = $bbed8b41f857bcc0$var$transitionsByElement.get(e.target);\n if (!transitions) {\n transitions = new Set();\n $bbed8b41f857bcc0$var$transitionsByElement.set(e.target, transitions);\n // The transitioncancel event must be registered on the element itself, rather than as a global\n // event. This enables us to handle when the node is deleted from the document while it is transitioning.\n // In that case, the cancel event would have nowhere to bubble to so we need to handle it directly.\n e.target.addEventListener('transitioncancel', onTransitionEnd, {\n once: true\n });\n }\n transitions.add(e.propertyName);\n };\n let onTransitionEnd = (e)=>{\n if (!isTransitionEvent(e) || !e.target) return;\n // Remove property from list of transitioning properties.\n let properties = $bbed8b41f857bcc0$var$transitionsByElement.get(e.target);\n if (!properties) return;\n properties.delete(e.propertyName);\n // If empty, remove transitioncancel event, and remove the element from the list of transitioning elements.\n if (properties.size === 0) {\n e.target.removeEventListener('transitioncancel', onTransitionEnd);\n $bbed8b41f857bcc0$var$transitionsByElement.delete(e.target);\n }\n // If no transitioning elements, call all of the queued callbacks.\n if ($bbed8b41f857bcc0$var$transitionsByElement.size === 0) {\n for (let cb of $bbed8b41f857bcc0$var$transitionCallbacks)cb();\n $bbed8b41f857bcc0$var$transitionCallbacks.clear();\n }\n };\n document.body.addEventListener('transitionrun', onTransitionStart);\n document.body.addEventListener('transitionend', onTransitionEnd);\n}\nif (typeof document !== 'undefined') {\n if (document.readyState !== 'loading') $bbed8b41f857bcc0$var$setupGlobalEvents();\n else document.addEventListener('DOMContentLoaded', $bbed8b41f857bcc0$var$setupGlobalEvents);\n}\n/**\n * Cleans up any elements that are no longer in the document.\n * This is necessary because we can't rely on transitionend events to fire\n * for elements that are removed from the document while transitioning.\n */ function $bbed8b41f857bcc0$var$cleanupDetachedElements() {\n for (const [eventTarget] of $bbed8b41f857bcc0$var$transitionsByElement)// Similar to `eventTarget instanceof Element && !eventTarget.isConnected`, but avoids\n // the explicit instanceof check, since it may be different in different contexts.\n if ('isConnected' in eventTarget && !eventTarget.isConnected) $bbed8b41f857bcc0$var$transitionsByElement.delete(eventTarget);\n}\nfunction $bbed8b41f857bcc0$export$24490316f764c430(fn) {\n // Wait one frame to see if an animation starts, e.g. a transition on mount.\n requestAnimationFrame(()=>{\n $bbed8b41f857bcc0$var$cleanupDetachedElements();\n // If no transitions are running, call the function immediately.\n // Otherwise, add it to a list of callbacks to run at the end of the animation.\n if ($bbed8b41f857bcc0$var$transitionsByElement.size === 0) fn();\n else $bbed8b41f857bcc0$var$transitionCallbacks.add(fn);\n });\n}\n\n\nexport {$bbed8b41f857bcc0$export$24490316f764c430 as runAfterTransition};\n//# sourceMappingURL=runAfterTransition.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 {useId as $bdb11010cef70236$export$f680877a34711e37} from \"./useId.mjs\";\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 $313b98861ee5dd6c$export$d6875122194c7b44(props, defaultLabel) {\n let { id: id, 'aria-label': label, 'aria-labelledby': labelledBy } = props;\n // If there is both an aria-label and aria-labelledby,\n // combine them by pointing to the element itself.\n id = (0, $bdb11010cef70236$export$f680877a34711e37)(id);\n if (labelledBy && label) {\n let ids = new Set([\n id,\n ...labelledBy.trim().split(/\\s+/)\n ]);\n labelledBy = [\n ...ids\n ].join(' ');\n } else if (labelledBy) labelledBy = labelledBy.trim().split(/\\s+/).join(' ');\n // If no labels are provided, use the default\n if (!label && !labelledBy && defaultLabel) label = defaultLabel;\n return {\n id: id,\n 'aria-label': label,\n 'aria-labelledby': labelledBy\n };\n}\n\n\nexport {$313b98861ee5dd6c$export$d6875122194c7b44 as useLabels};\n//# sourceMappingURL=useLabels.module.js.map\n","import {useLayoutEffect as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c} from \"./useLayoutEffect.mjs\";\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 $e7801be82b4b2a53$export$4debdb1a3f0fa79e(context, ref) {\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n if (context && context.ref && ref) {\n context.ref.current = ref.current;\n return ()=>{\n if (context.ref) context.ref.current = null;\n };\n }\n });\n}\n\n\nexport {$e7801be82b4b2a53$export$4debdb1a3f0fa79e as useSyncRef};\n//# sourceMappingURL=useSyncRef.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.mozInputSource === 0 && event.isTrusted) return true;\n // Android TalkBack's detail value varies depending on the event listener providing the event so we have specific logic here instead\n // If pointerType is defined, event is from a click listener. For events from mousedown listener, detail === 0 is a sufficient check\n // to detect TalkBack virtual clicks.\n if ((0, $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 {getOwnerWindow as $431fbd86ca7dc216$export$f21a1ffae260145a} from \"./domHelpers.mjs\";\n\n/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nconst $7d2416ea0959daaa$var$supportsCheckVisibility = typeof Element !== 'undefined' && 'checkVisibility' in Element.prototype;\nfunction $7d2416ea0959daaa$var$isStyleVisible(element) {\n const windowObject = (0, $431fbd86ca7dc216$export$f21a1ffae260145a)(element);\n if (!(element instanceof windowObject.HTMLElement) && !(element instanceof windowObject.SVGElement)) return false;\n let { display: display, visibility: visibility } = element.style;\n let isVisible = display !== 'none' && visibility !== 'hidden' && visibility !== 'collapse';\n if (isVisible) {\n const { getComputedStyle: getComputedStyle } = element.ownerDocument.defaultView;\n let { display: computedDisplay, visibility: computedVisibility } = getComputedStyle(element);\n isVisible = computedDisplay !== 'none' && computedVisibility !== 'hidden' && computedVisibility !== 'collapse';\n }\n return isVisible;\n}\nfunction $7d2416ea0959daaa$var$isAttributeVisible(element, childElement) {\n return !element.hasAttribute('hidden') && // Ignore HiddenSelect when tree walking.\n !element.hasAttribute('data-react-aria-prevent-focus') && (element.nodeName === 'DETAILS' && childElement && childElement.nodeName !== 'SUMMARY' ? element.hasAttribute('open') : true);\n}\nfunction $7d2416ea0959daaa$export$e989c0fffaa6b27a(element, childElement) {\n if ($7d2416ea0959daaa$var$supportsCheckVisibility) return element.checkVisibility();\n return element.nodeName !== '#comment' && $7d2416ea0959daaa$var$isStyleVisible(element) && $7d2416ea0959daaa$var$isAttributeVisible(element, childElement) && (!element.parentElement || $7d2416ea0959daaa$export$e989c0fffaa6b27a(element.parentElement, element));\n}\n\n\nexport {$7d2416ea0959daaa$export$e989c0fffaa6b27a as isElementVisible};\n//# sourceMappingURL=isElementVisible.module.js.map\n","import {isElementVisible as $7d2416ea0959daaa$export$e989c0fffaa6b27a} from \"./isElementVisible.mjs\";\n\n/*\n * Copyright 2025 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 $b4b717babfbb907b$var$focusableElements = [\n 'input:not([disabled]):not([type=hidden])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'a[href]',\n 'area[href]',\n 'summary',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable^=\"false\"])',\n 'permission'\n];\nconst $b4b717babfbb907b$var$FOCUSABLE_ELEMENT_SELECTOR = $b4b717babfbb907b$var$focusableElements.join(':not([hidden]),') + ',[tabindex]:not([disabled]):not([hidden])';\n$b4b717babfbb907b$var$focusableElements.push('[tabindex]:not([tabindex=\"-1\"]):not([disabled])');\nconst $b4b717babfbb907b$var$TABBABLE_ELEMENT_SELECTOR = $b4b717babfbb907b$var$focusableElements.join(':not([hidden]):not([tabindex=\"-1\"]),');\nfunction $b4b717babfbb907b$export$4c063cf1350e6fed(element) {\n return element.matches($b4b717babfbb907b$var$FOCUSABLE_ELEMENT_SELECTOR) && (0, $7d2416ea0959daaa$export$e989c0fffaa6b27a)(element) && !$b4b717babfbb907b$var$isInert(element);\n}\nfunction $b4b717babfbb907b$export$bebd5a1431fec25d(element) {\n return element.matches($b4b717babfbb907b$var$TABBABLE_ELEMENT_SELECTOR) && (0, $7d2416ea0959daaa$export$e989c0fffaa6b27a)(element) && !$b4b717babfbb907b$var$isInert(element);\n}\nfunction $b4b717babfbb907b$var$isInert(element) {\n let node = element;\n while(node != null){\n if (node instanceof node.ownerDocument.defaultView.HTMLElement && node.inert) return true;\n node = node.parentElement;\n }\n return false;\n}\n\n\nexport {$b4b717babfbb907b$export$4c063cf1350e6fed as isFocusable, $b4b717babfbb907b$export$bebd5a1431fec25d as isTabbable};\n//# sourceMappingURL=isFocusable.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 */ /**\n * Takes a value and forces it to the closest min/max if it's outside. Also forces it to the closest valid step.\n */ function $9446cca9a3875146$export$7d15b64cf5a3a4c4(value, min = -Infinity, max = Infinity) {\n let newValue = Math.min(Math.max(value, min), max);\n return newValue;\n}\nfunction $9446cca9a3875146$export$e1a7b8e69ef6c52f(value, step) {\n let roundedValue = value;\n let precision = 0;\n let stepString = step.toString();\n // Handle negative exponents in exponential notation (e.g., \"1e-7\" → precision 8)\n let eIndex = stepString.toLowerCase().indexOf('e-');\n if (eIndex > 0) precision = Math.abs(Math.floor(Math.log10(Math.abs(step)))) + eIndex;\n else {\n let pointIndex = stepString.indexOf('.');\n if (pointIndex >= 0) precision = stepString.length - pointIndex;\n }\n if (precision > 0) {\n let pow = Math.pow(10, precision);\n roundedValue = Math.round(roundedValue * pow) / pow;\n }\n return roundedValue;\n}\nfunction $9446cca9a3875146$export$cb6e0bb50bc19463(value, min, max, step) {\n min = Number(min);\n max = Number(max);\n let remainder = (value - (isNaN(min) ? 0 : min)) % step;\n let snappedValue = $9446cca9a3875146$export$e1a7b8e69ef6c52f(Math.abs(remainder) * 2 >= step ? value + Math.sign(remainder) * (step - Math.abs(remainder)) : value - remainder, step);\n if (!isNaN(min)) {\n if (snappedValue < min) snappedValue = min;\n else if (!isNaN(max) && snappedValue > max) snappedValue = min + Math.floor($9446cca9a3875146$export$e1a7b8e69ef6c52f((max - min) / step, step)) * step;\n } else if (!isNaN(max) && snappedValue > max) snappedValue = Math.floor($9446cca9a3875146$export$e1a7b8e69ef6c52f(max / step, step)) * step;\n // correct floating point behavior by rounding to step precision\n snappedValue = $9446cca9a3875146$export$e1a7b8e69ef6c52f(snappedValue, step);\n return snappedValue;\n}\nfunction $9446cca9a3875146$export$b6268554fba451f(value, digits, base = 10) {\n const pow = Math.pow(base, digits);\n return Math.round(value * pow) / pow;\n}\n\n\nexport {$9446cca9a3875146$export$7d15b64cf5a3a4c4 as clamp, $9446cca9a3875146$export$e1a7b8e69ef6c52f as roundToStepPrecision, $9446cca9a3875146$export$cb6e0bb50bc19463 as snapValueToStep, $9446cca9a3875146$export$b6268554fba451f as toFixedNumber};\n//# sourceMappingURL=number.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 */ let $488c6ddbf4ef74c2$var$formatterCache = new Map();\nlet $488c6ddbf4ef74c2$var$supportsSignDisplay = false;\ntry {\n $488c6ddbf4ef74c2$var$supportsSignDisplay = new Intl.NumberFormat('de-DE', {\n signDisplay: 'exceptZero'\n }).resolvedOptions().signDisplay === 'exceptZero';\n// eslint-disable-next-line no-empty\n} catch {}\nlet $488c6ddbf4ef74c2$var$supportsUnit = false;\ntry {\n $488c6ddbf4ef74c2$var$supportsUnit = new Intl.NumberFormat('de-DE', {\n style: 'unit',\n unit: 'degree'\n }).resolvedOptions().style === 'unit';\n// eslint-disable-next-line no-empty\n} catch {}\n// Polyfill for units since Safari doesn't support them yet. See https://bugs.webkit.org/show_bug.cgi?id=215438.\n// Currently only polyfilling the unit degree in narrow format for ColorSlider in our supported locales.\n// Values were determined by switching to each locale manually in Chrome.\nconst $488c6ddbf4ef74c2$var$UNITS = {\n degree: {\n narrow: {\n default: \"\\xb0\",\n 'ja-JP': \" \\u5EA6\",\n 'zh-TW': \"\\u5EA6\",\n 'sl-SI': \" \\xb0\"\n }\n }\n};\nclass $488c6ddbf4ef74c2$export$cc77c4ff7e8673c5 {\n /** Formats a number value as a string, according to the locale and options provided to the constructor. */ format(value) {\n let res = '';\n if (!$488c6ddbf4ef74c2$var$supportsSignDisplay && this.options.signDisplay != null) res = $488c6ddbf4ef74c2$export$711b50b3c525e0f2(this.numberFormatter, this.options.signDisplay, value);\n else res = this.numberFormatter.format(value);\n if (this.options.style === 'unit' && !$488c6ddbf4ef74c2$var$supportsUnit) {\n var _UNITS_unit;\n let { unit: unit, unitDisplay: unitDisplay = 'short', locale: locale } = this.resolvedOptions();\n if (!unit) return res;\n let values = (_UNITS_unit = $488c6ddbf4ef74c2$var$UNITS[unit]) === null || _UNITS_unit === void 0 ? void 0 : _UNITS_unit[unitDisplay];\n res += values[locale] || values.default;\n }\n return res;\n }\n /** Formats a number to an array of parts such as separators, digits, punctuation, and more. */ formatToParts(value) {\n // TODO: implement signDisplay for formatToParts\n return this.numberFormatter.formatToParts(value);\n }\n /** Formats a number range as a string. */ formatRange(start, end) {\n if (typeof this.numberFormatter.formatRange === 'function') return this.numberFormatter.formatRange(start, end);\n if (end < start) throw new RangeError('End date must be >= start date');\n // Very basic fallback for old browsers.\n return `${this.format(start)} \\u{2013} ${this.format(end)}`;\n }\n /** Formats a number range as an array of parts. */ formatRangeToParts(start, end) {\n if (typeof this.numberFormatter.formatRangeToParts === 'function') return this.numberFormatter.formatRangeToParts(start, end);\n if (end < start) throw new RangeError('End date must be >= start date');\n let startParts = this.numberFormatter.formatToParts(start);\n let endParts = this.numberFormatter.formatToParts(end);\n return [\n ...startParts.map((p)=>({\n ...p,\n source: 'startRange'\n })),\n {\n type: 'literal',\n value: \" \\u2013 \",\n source: 'shared'\n },\n ...endParts.map((p)=>({\n ...p,\n source: 'endRange'\n }))\n ];\n }\n /** Returns the resolved formatting options based on the values passed to the constructor. */ resolvedOptions() {\n let options = this.numberFormatter.resolvedOptions();\n if (!$488c6ddbf4ef74c2$var$supportsSignDisplay && this.options.signDisplay != null) options = {\n ...options,\n signDisplay: this.options.signDisplay\n };\n if (!$488c6ddbf4ef74c2$var$supportsUnit && this.options.style === 'unit') options = {\n ...options,\n style: 'unit',\n unit: this.options.unit,\n unitDisplay: this.options.unitDisplay\n };\n return options;\n }\n constructor(locale, options = {}){\n this.numberFormatter = $488c6ddbf4ef74c2$var$getCachedNumberFormatter(locale, options);\n this.options = options;\n }\n}\nfunction $488c6ddbf4ef74c2$var$getCachedNumberFormatter(locale, options = {}) {\n let { numberingSystem: numberingSystem } = options;\n if (numberingSystem && locale.includes('-nu-')) {\n if (!locale.includes('-u-')) locale += '-u-';\n locale += `-nu-${numberingSystem}`;\n }\n if (options.style === 'unit' && !$488c6ddbf4ef74c2$var$supportsUnit) {\n var _UNITS_unit;\n let { unit: unit, unitDisplay: unitDisplay = 'short' } = options;\n if (!unit) throw new Error('unit option must be provided with style: \"unit\"');\n if (!((_UNITS_unit = $488c6ddbf4ef74c2$var$UNITS[unit]) === null || _UNITS_unit === void 0 ? void 0 : _UNITS_unit[unitDisplay])) throw new Error(`Unsupported unit ${unit} with unitDisplay = ${unitDisplay}`);\n options = {\n ...options,\n style: 'decimal'\n };\n }\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b)=>a[0] < b[0] ? -1 : 1).join() : '');\n if ($488c6ddbf4ef74c2$var$formatterCache.has(cacheKey)) return $488c6ddbf4ef74c2$var$formatterCache.get(cacheKey);\n let numberFormatter = new Intl.NumberFormat(locale, options);\n $488c6ddbf4ef74c2$var$formatterCache.set(cacheKey, numberFormatter);\n return numberFormatter;\n}\nfunction $488c6ddbf4ef74c2$export$711b50b3c525e0f2(numberFormat, signDisplay, num) {\n if (signDisplay === 'auto') return numberFormat.format(num);\n else if (signDisplay === 'never') return numberFormat.format(Math.abs(num));\n else {\n let needsPositiveSign = false;\n if (signDisplay === 'always') needsPositiveSign = num > 0 || Object.is(num, 0);\n else if (signDisplay === 'exceptZero') {\n if (Object.is(num, -0) || Object.is(num, 0)) num = Math.abs(num);\n else needsPositiveSign = num > 0;\n }\n if (needsPositiveSign) {\n let negative = numberFormat.format(-num);\n let noSign = numberFormat.format(num);\n // ignore RTL/LTR marker character\n let minus = negative.replace(noSign, '').replace(/\\u200e|\\u061C/, '');\n if ([\n ...minus\n ].length !== 1) console.warn('@react-aria/i18n polyfill for NumberFormat signDisplay: Unsupported case');\n let positive = negative.replace(noSign, '!!!').replace(minus, '+').replace('!!!', noSign);\n return positive;\n } else return numberFormat.format(num);\n }\n}\n\n\nexport {$488c6ddbf4ef74c2$export$cc77c4ff7e8673c5 as NumberFormatter, $488c6ddbf4ef74c2$export$711b50b3c525e0f2 as numberFormatSignDisplayPolyfill};\n//# sourceMappingURL=NumberFormatter.module.js.map\n","import {useLocale as $18f2051aff69b9bf$export$43bb16f9c6d9e3f7} from \"./context.mjs\";\nimport {NumberFormatter as $JFEdn$NumberFormatter} from \"@internationalized/number\";\nimport {useMemo as $JFEdn$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 */ \n\n\nfunction $a916eb452884faea$export$b7a616150fdb9f44(options = {}) {\n let { locale: locale } = (0, $18f2051aff69b9bf$export$43bb16f9c6d9e3f7)();\n return (0, $JFEdn$useMemo)(()=>new (0, $JFEdn$NumberFormatter)(locale, options), [\n locale,\n options\n ]);\n}\n\n\nexport {$a916eb452884faea$export$b7a616150fdb9f44 as useNumberFormatter};\n//# sourceMappingURL=useNumberFormatter.module.js.map\n","\"use client\";\nimport { createContext } from 'react';\n\nconst LayoutGroupContext = createContext({});\n\nexport { LayoutGroupContext };\n","\"use client\";\nimport { useRef } from 'react';\n\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */\nfunction useConstant(init) {\n const ref = useRef(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n\nexport { useConstant };\n","const isBrowser = typeof window !== \"undefined\";\n\nexport { isBrowser };\n","\"use client\";\nimport { useLayoutEffect, useEffect } from 'react';\nimport { isBrowser } from './is-browser.mjs';\n\nconst useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n\nexport { useIsomorphicLayoutEffect };\n","\"use client\";\nimport { createContext } from 'react';\n\n/**\n * @public\n */\nconst PresenceContext = \n/* @__PURE__ */ createContext(null);\n\nexport { PresenceContext };\n","const clamp = (min, max, v) => {\n if (v > max)\n return max;\n if (v < min)\n return min;\n return v;\n};\n\nexport { clamp };\n","function formatErrorMessage(message, errorCode) {\n return errorCode\n ? `${message}. For more information and steps for solving, visit https://motion.dev/troubleshooting/${errorCode}`\n : message;\n}\n\nexport { formatErrorMessage };\n","import { formatErrorMessage } from './format-error-message.mjs';\n\nlet warning = () => { };\nlet invariant = () => { };\nif (process.env.NODE_ENV !== \"production\") {\n warning = (check, message, errorCode) => {\n if (!check && typeof console !== \"undefined\") {\n console.warn(formatErrorMessage(message, errorCode));\n }\n };\n invariant = (check, message, errorCode) => {\n if (!check) {\n throw new Error(formatErrorMessage(message, errorCode));\n }\n };\n}\n\nexport { invariant, warning };\n","function isObject(value) {\n return typeof value === \"object\" && value !== null;\n}\n\nexport { isObject };\n","import { formatErrorMessage } from './format-error-message.mjs';\n\nconst warned = new Set();\nfunction hasWarned(message) {\n return warned.has(message);\n}\nfunction warnOnce(condition, message, errorCode) {\n if (condition || warned.has(message))\n return;\n console.warn(formatErrorMessage(message, errorCode));\n warned.add(message);\n}\n\nexport { hasWarned, warnOnce };\n","const checkStringStartsWith = (token) => (key) => typeof key === \"string\" && key.startsWith(token);\nconst isCSSVariableName = \n/*@__PURE__*/ checkStringStartsWith(\"--\");\nconst startsAsVariableToken = \n/*@__PURE__*/ checkStringStartsWith(\"var(--\");\nconst isCSSVariableToken = (value) => {\n const startsWithToken = startsAsVariableToken(value);\n if (!startsWithToken)\n return false;\n // Ensure any comments are stripped from the value as this can harm performance of the regex.\n return singleCssVariableRegex.test(value.split(\"/*\")[0].trim());\n};\nconst singleCssVariableRegex = /var\\(--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)$/iu;\n\nexport { isCSSVariableName, isCSSVariableToken };\n","import { clamp } from 'motion-utils';\n\nconst number = {\n test: (v) => typeof v === \"number\",\n parse: parseFloat,\n transform: (v) => v,\n};\nconst alpha = {\n ...number,\n transform: (v) => clamp(0, 1, v),\n};\nconst scale = {\n ...number,\n default: 1,\n};\n\nexport { alpha, number, scale };\n","/*#__NO_SIDE_EFFECTS__*/\nconst createUnitType = (unit) => ({\n test: (v) => typeof v === \"string\" && v.endsWith(unit) && v.split(\" \").length === 1,\n parse: parseFloat,\n transform: (v) => `${v}${unit}`,\n});\nconst degrees = /*@__PURE__*/ createUnitType(\"deg\");\nconst percent = /*@__PURE__*/ createUnitType(\"%\");\nconst px = /*@__PURE__*/ createUnitType(\"px\");\nconst vh = /*@__PURE__*/ createUnitType(\"vh\");\nconst vw = /*@__PURE__*/ createUnitType(\"vw\");\nconst progressPercentage = /*@__PURE__*/ (() => ({\n ...percent,\n parse: (v) => percent.parse(v) / 100,\n transform: (v) => percent.transform(v * 100),\n}))();\n\nexport { degrees, percent, progressPercentage, px, vh, vw };\n","/**\n * Generate a list of every possible transform key.\n */\nconst transformPropOrder = [\n \"transformPerspective\",\n \"x\",\n \"y\",\n \"z\",\n \"translateX\",\n \"translateY\",\n \"translateZ\",\n \"scale\",\n \"scaleX\",\n \"scaleY\",\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"skew\",\n \"skewX\",\n \"skewY\",\n];\n/**\n * A quick lookup for transform props.\n */\nconst transformProps = /*@__PURE__*/ (() => new Set(transformPropOrder))();\n\nexport { transformPropOrder, transformProps };\n","import { number } from './numbers/index.mjs';\n\nconst int = {\n ...number,\n transform: Math.round,\n};\n\nexport { int };\n","import { scale, alpha } from '../numbers/index.mjs';\nimport { degrees, px, progressPercentage } from '../numbers/units.mjs';\n\nconst transformValueTypes = {\n rotate: degrees,\n rotateX: degrees,\n rotateY: degrees,\n rotateZ: degrees,\n scale,\n scaleX: scale,\n scaleY: scale,\n scaleZ: scale,\n skew: degrees,\n skewX: degrees,\n skewY: degrees,\n distance: px,\n translateX: px,\n translateY: px,\n translateZ: px,\n x: px,\n y: px,\n z: px,\n perspective: px,\n transformPerspective: px,\n opacity: alpha,\n originX: progressPercentage,\n originY: progressPercentage,\n originZ: px,\n};\n\nexport { transformValueTypes };\n","import { int } from '../int.mjs';\nimport { alpha } from '../numbers/index.mjs';\nimport { px } from '../numbers/units.mjs';\nimport { transformValueTypes } from './transform.mjs';\n\nconst numberValueTypes = {\n // Border props\n borderWidth: px,\n borderTopWidth: px,\n borderRightWidth: px,\n borderBottomWidth: px,\n borderLeftWidth: px,\n borderRadius: px,\n radius: px,\n borderTopLeftRadius: px,\n borderTopRightRadius: px,\n borderBottomRightRadius: px,\n borderBottomLeftRadius: px,\n // Positioning props\n width: px,\n maxWidth: px,\n height: px,\n maxHeight: px,\n top: px,\n right: px,\n bottom: px,\n left: px,\n // Spacing props\n padding: px,\n paddingTop: px,\n paddingRight: px,\n paddingBottom: px,\n paddingLeft: px,\n margin: px,\n marginTop: px,\n marginRight: px,\n marginBottom: px,\n marginLeft: px,\n // Misc\n backgroundPositionX: px,\n backgroundPositionY: px,\n ...transformValueTypes,\n zIndex: int,\n // SVG\n fillOpacity: alpha,\n strokeOpacity: alpha,\n numOctaves: int,\n};\n\nexport { numberValueTypes };\n","/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nconst getValueAsType = (value, type) => {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\nexport { getValueAsType };\n","import { isObject } from 'motion-utils';\n\n/**\n * Checks if an element is an HTML element in a way\n * that works across iframes\n */\nfunction isHTMLElement(element) {\n return isObject(element) && \"offsetHeight\" in element;\n}\n\nexport { isHTMLElement };\n","const isMotionValue = (value) => Boolean(value && value.getVelocity);\n\nexport { isMotionValue };\n","\"use client\";\nimport { createContext } from 'react';\n\n/**\n * @public\n */\nconst MotionConfigContext = createContext({\n transformPagePoint: (p) => p,\n isStatic: false,\n reducedMotion: \"never\",\n});\n\nexport { MotionConfigContext };\n","import * as React from 'react';\n\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n }\n else if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n}\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup === \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n // React <19 will log an error to the console if a callback ref returns a\n // value. We don't use ref cleanups internally so this will only happen if a\n // user's ref callback returns a value, which we only expect if they are\n // using the cleanup functionality added in React 19.\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup === \"function\") {\n cleanup();\n }\n else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */\nfunction useComposedRefs(...refs) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return React.useCallback(composeRefs(...refs), refs);\n}\n\nexport { useComposedRefs };\n","\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport { isHTMLElement } from 'motion-dom';\nimport * as React from 'react';\nimport { useId, useRef, useContext, useInsertionEffect } from 'react';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\nimport { useComposedRefs } from './use-composed-ref.mjs';\n\n/**\n * Measurement functionality has to be within a separate component\n * to leverage snapshot lifecycle.\n */\nclass PopChildMeasure extends React.Component {\n getSnapshotBeforeUpdate(prevProps) {\n const element = this.props.childRef.current;\n if (element && prevProps.isPresent && !this.props.isPresent) {\n const parent = element.offsetParent;\n const parentWidth = isHTMLElement(parent)\n ? parent.offsetWidth || 0\n : 0;\n const size = this.props.sizeRef.current;\n size.height = element.offsetHeight || 0;\n size.width = element.offsetWidth || 0;\n size.top = element.offsetTop;\n size.left = element.offsetLeft;\n size.right = parentWidth - size.width - size.left;\n }\n return null;\n }\n /**\n * Required with getSnapshotBeforeUpdate to stop React complaining.\n */\n componentDidUpdate() { }\n render() {\n return this.props.children;\n }\n}\nfunction PopChild({ children, isPresent, anchorX, root }) {\n const id = useId();\n const ref = useRef(null);\n const size = useRef({\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n right: 0,\n });\n const { nonce } = useContext(MotionConfigContext);\n const composedRef = useComposedRefs(ref, children?.ref);\n /**\n * We create and inject a style block so we can apply this explicit\n * sizing in a non-destructive manner by just deleting the style block.\n *\n * We can't apply size via render as the measurement happens\n * in getSnapshotBeforeUpdate (post-render), likewise if we apply the\n * styles directly on the DOM node, we might be overwriting\n * styles set via the style prop.\n */\n useInsertionEffect(() => {\n const { width, height, top, left, right } = size.current;\n if (isPresent || !ref.current || !width || !height)\n return;\n const x = anchorX === \"left\" ? `left: ${left}` : `right: ${right}`;\n ref.current.dataset.motionPopId = id;\n const style = document.createElement(\"style\");\n if (nonce)\n style.nonce = nonce;\n const parent = root ?? document.head;\n parent.appendChild(style);\n if (style.sheet) {\n style.sheet.insertRule(`\n [data-motion-pop-id=\"${id}\"] {\n position: absolute !important;\n width: ${width}px !important;\n height: ${height}px !important;\n ${x}px !important;\n top: ${top}px !important;\n }\n `);\n }\n return () => {\n if (parent.contains(style)) {\n parent.removeChild(style);\n }\n };\n }, [isPresent]);\n return (jsx(PopChildMeasure, { isPresent: isPresent, childRef: ref, sizeRef: size, children: React.cloneElement(children, { ref: composedRef }) }));\n}\n\nexport { PopChild };\n","\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport * as React from 'react';\nimport { useId, useMemo } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { PopChild } from './PopChild.mjs';\n\nconst PresenceChild = ({ children, initial, isPresent, onExitComplete, custom, presenceAffectsLayout, mode, anchorX, root }) => {\n const presenceChildren = useConstant(newChildrenMap);\n const id = useId();\n let isReusedContext = true;\n let context = useMemo(() => {\n isReusedContext = false;\n return {\n id,\n initial,\n isPresent,\n custom,\n onExitComplete: (childId) => {\n presenceChildren.set(childId, true);\n for (const isComplete of presenceChildren.values()) {\n if (!isComplete)\n return; // can stop searching when any is incomplete\n }\n onExitComplete && onExitComplete();\n },\n register: (childId) => {\n presenceChildren.set(childId, false);\n return () => presenceChildren.delete(childId);\n },\n };\n }, [isPresent, presenceChildren, onExitComplete]);\n /**\n * If the presence of a child affects the layout of the components around it,\n * we want to make a new context value to ensure they get re-rendered\n * so they can detect that layout change.\n */\n if (presenceAffectsLayout && isReusedContext) {\n context = { ...context };\n }\n useMemo(() => {\n presenceChildren.forEach((_, key) => presenceChildren.set(key, false));\n }, [isPresent]);\n /**\n * If there's no `motion` components to fire exit animations, we want to remove this\n * component immediately.\n */\n React.useEffect(() => {\n !isPresent &&\n !presenceChildren.size &&\n onExitComplete &&\n onExitComplete();\n }, [isPresent]);\n if (mode === \"popLayout\") {\n children = (jsx(PopChild, { isPresent: isPresent, anchorX: anchorX, root: root, children: children }));\n }\n return (jsx(PresenceContext.Provider, { value: context, children: children }));\n};\nfunction newChildrenMap() {\n return new Map();\n}\n\nexport { PresenceChild };\n","\"use client\";\nimport { useContext, useId, useEffect, useCallback } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n * const [isPresent, safeToRemove] = usePresence()\n *\n * useEffect(() => {\n * !isPresent && setTimeout(safeToRemove, 1000)\n * }, [isPresent])\n *\n * return <div />\n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed the tree, but\n * `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */\nfunction usePresence(subscribe = true) {\n const context = useContext(PresenceContext);\n if (context === null)\n return [true, null];\n const { isPresent, onExitComplete, register } = context;\n // It's safe to call the following hooks conditionally (after an early return) because the context will always\n // either be null or non-null for the lifespan of the component.\n const id = useId();\n useEffect(() => {\n if (subscribe) {\n return register(id);\n }\n }, [subscribe]);\n const safeToRemove = useCallback(() => subscribe && onExitComplete && onExitComplete(id), [id, onExitComplete, subscribe]);\n return !isPresent && onExitComplete ? [false, safeToRemove] : [true];\n}\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n * const isPresent = useIsPresent()\n *\n * useEffect(() => {\n * !isPresent && console.log(\"I've been removed!\")\n * }, [isPresent])\n *\n * return <div />\n * }\n * ```\n *\n * @public\n */\nfunction useIsPresent() {\n return isPresent(useContext(PresenceContext));\n}\nfunction isPresent(context) {\n return context === null ? true : context.isPresent;\n}\n\nexport { isPresent, useIsPresent, usePresence };\n","import { Children, isValidElement } from 'react';\n\nconst getChildKey = (child) => child.key || \"\";\nfunction onlyElements(children) {\n const filtered = [];\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\n Children.forEach(children, (child) => {\n if (isValidElement(child))\n filtered.push(child);\n });\n return filtered;\n}\n\nexport { getChildKey, onlyElements };\n","\"use client\";\nimport { jsx, Fragment } from 'react/jsx-runtime';\nimport { useMemo, useRef, useState, useContext } from 'react';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { PresenceChild } from './PresenceChild.mjs';\nimport { usePresence } from './use-presence.mjs';\nimport { onlyElements, getChildKey } from './utils.mjs';\n\n/**\n * `AnimatePresence` enables the animation of components that have been removed from the tree.\n *\n * When adding/removing more than a single child, every child **must** be given a unique `key` prop.\n *\n * Any `motion` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { motion, AnimatePresence } from 'framer-motion'\n *\n * export const Items = ({ items }) => (\n * <AnimatePresence>\n * {items.map(item => (\n * <motion.div\n * key={item.id}\n * initial={{ opacity: 0 }}\n * animate={{ opacity: 1 }}\n * exit={{ opacity: 0 }}\n * />\n * ))}\n * </AnimatePresence>\n * )\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\n * once all `motion` components have finished animating out. Likewise, any components using\n * `usePresence` all need to call `safeToRemove`.\n *\n * @public\n */\nconst AnimatePresence = ({ children, custom, initial = true, onExitComplete, presenceAffectsLayout = true, mode = \"sync\", propagate = false, anchorX = \"left\", root }) => {\n const [isParentPresent, safeToRemove] = usePresence(propagate);\n /**\n * Filter any children that aren't ReactElements. We can only track components\n * between renders with a props.key.\n */\n const presentChildren = useMemo(() => onlyElements(children), [children]);\n /**\n * Track the keys of the currently rendered children. This is used to\n * determine which children are exiting.\n */\n const presentKeys = propagate && !isParentPresent ? [] : presentChildren.map(getChildKey);\n /**\n * If `initial={false}` we only want to pass this to components in the first render.\n */\n const isInitialRender = useRef(true);\n /**\n * A ref containing the currently present children. When all exit animations\n * are complete, we use this to re-render the component with the latest children\n * *committed* rather than the latest children *rendered*.\n */\n const pendingPresentChildren = useRef(presentChildren);\n /**\n * Track which exiting children have finished animating out.\n */\n const exitComplete = useConstant(() => new Map());\n /**\n * Save children to render as React state. To ensure this component is concurrent-safe,\n * we check for exiting children via an effect.\n */\n const [diffedChildren, setDiffedChildren] = useState(presentChildren);\n const [renderedChildren, setRenderedChildren] = useState(presentChildren);\n useIsomorphicLayoutEffect(() => {\n isInitialRender.current = false;\n pendingPresentChildren.current = presentChildren;\n /**\n * Update complete status of exiting children.\n */\n for (let i = 0; i < renderedChildren.length; i++) {\n const key = getChildKey(renderedChildren[i]);\n if (!presentKeys.includes(key)) {\n if (exitComplete.get(key) !== true) {\n exitComplete.set(key, false);\n }\n }\n else {\n exitComplete.delete(key);\n }\n }\n }, [renderedChildren, presentKeys.length, presentKeys.join(\"-\")]);\n const exitingChildren = [];\n if (presentChildren !== diffedChildren) {\n let nextChildren = [...presentChildren];\n /**\n * Loop through all the currently rendered components and decide which\n * are exiting.\n */\n for (let i = 0; i < renderedChildren.length; i++) {\n const child = renderedChildren[i];\n const key = getChildKey(child);\n if (!presentKeys.includes(key)) {\n nextChildren.splice(i, 0, child);\n exitingChildren.push(child);\n }\n }\n /**\n * If we're in \"wait\" mode, and we have exiting children, we want to\n * only render these until they've all exited.\n */\n if (mode === \"wait\" && exitingChildren.length) {\n nextChildren = exitingChildren;\n }\n setRenderedChildren(onlyElements(nextChildren));\n setDiffedChildren(presentChildren);\n /**\n * Early return to ensure once we've set state with the latest diffed\n * children, we can immediately re-render.\n */\n return null;\n }\n if (process.env.NODE_ENV !== \"production\" &&\n mode === \"wait\" &&\n renderedChildren.length > 1) {\n console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to \"wait\". This will lead to odd visual behaviour.`);\n }\n /**\n * If we've been provided a forceRender function by the LayoutGroupContext,\n * we can use it to force a re-render amongst all surrounding components once\n * all components have finished animating out.\n */\n const { forceRender } = useContext(LayoutGroupContext);\n return (jsx(Fragment, { children: renderedChildren.map((child) => {\n const key = getChildKey(child);\n const isPresent = propagate && !isParentPresent\n ? false\n : presentChildren === renderedChildren ||\n presentKeys.includes(key);\n const onExit = () => {\n if (exitComplete.has(key)) {\n exitComplete.set(key, true);\n }\n else {\n return;\n }\n let isEveryExitComplete = true;\n exitComplete.forEach((isExitComplete) => {\n if (!isExitComplete)\n isEveryExitComplete = false;\n });\n if (isEveryExitComplete) {\n forceRender?.();\n setRenderedChildren(pendingPresentChildren.current);\n propagate && safeToRemove?.();\n onExitComplete && onExitComplete();\n }\n };\n return (jsx(PresenceChild, { isPresent: isPresent, initial: !isInitialRender.current || initial\n ? undefined\n : false, custom: custom, presenceAffectsLayout: presenceAffectsLayout, mode: mode, root: root, onExitComplete: isPresent ? undefined : onExit, anchorX: anchorX, children: child }, key));\n }) }));\n};\n\nexport { AnimatePresence };\n","\"use client\";\nimport { createContext } from 'react';\n\nconst LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\n","const featureProps = {\n animation: [\n \"animate\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"exit\",\n \"whileInView\",\n \"whileFocus\",\n \"whileDrag\",\n ],\n exit: [\"exit\"],\n drag: [\"drag\", \"dragControls\"],\n focus: [\"whileFocus\"],\n hover: [\"whileHover\", \"onHoverStart\", \"onHoverEnd\"],\n tap: [\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"],\n pan: [\"onPan\", \"onPanStart\", \"onPanSessionStart\", \"onPanEnd\"],\n inView: [\"whileInView\", \"onViewportEnter\", \"onViewportLeave\"],\n layout: [\"layout\", \"layoutId\"],\n};\nconst featureDefinitions = {};\nfor (const key in featureProps) {\n featureDefinitions[key] = {\n isEnabled: (props) => featureProps[key].some((name) => !!props[name]),\n };\n}\n\nexport { featureDefinitions };\n","import { featureDefinitions } from './definitions.mjs';\n\nfunction loadFeatures(features) {\n for (const key in features) {\n featureDefinitions[key] = {\n ...featureDefinitions[key],\n ...features[key],\n };\n }\n}\n\nexport { loadFeatures };\n","\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport { useState, useRef, useEffect } from 'react';\nimport { LazyContext } from '../../context/LazyContext.mjs';\nimport { loadFeatures } from '../../motion/features/load-features.mjs';\n\n/**\n * Used in conjunction with the `m` component to reduce bundle size.\n *\n * `m` is a version of the `motion` component that only loads functionality\n * critical for the initial render.\n *\n * `LazyMotion` can then be used to either synchronously or asynchronously\n * load animation and gesture support.\n *\n * ```jsx\n * // Synchronous loading\n * import { LazyMotion, m, domAnimation } from \"framer-motion\"\n *\n * function App() {\n * return (\n * <LazyMotion features={domAnimation}>\n * <m.div animate={{ scale: 2 }} />\n * </LazyMotion>\n * )\n * }\n *\n * // Asynchronous loading\n * import { LazyMotion, m } from \"framer-motion\"\n *\n * function App() {\n * return (\n * <LazyMotion features={() => import('./path/to/domAnimation')}>\n * <m.div animate={{ scale: 2 }} />\n * </LazyMotion>\n * )\n * }\n * ```\n *\n * @public\n */\nfunction LazyMotion({ children, features, strict = false }) {\n const [, setIsLoaded] = useState(!isLazyBundle(features));\n const loadedRenderer = useRef(undefined);\n /**\n * If this is a synchronous load, load features immediately\n */\n if (!isLazyBundle(features)) {\n const { renderer, ...loadedFeatures } = features;\n loadedRenderer.current = renderer;\n loadFeatures(loadedFeatures);\n }\n useEffect(() => {\n if (isLazyBundle(features)) {\n features().then(({ renderer, ...loadedFeatures }) => {\n loadFeatures(loadedFeatures);\n loadedRenderer.current = renderer;\n setIsLoaded(true);\n });\n }\n }, []);\n return (jsx(LazyContext.Provider, { value: { renderer: loadedRenderer.current, strict }, children: children }));\n}\nfunction isLazyBundle(features) {\n return typeof features === \"function\";\n}\n\nexport { LazyMotion };\n","/**\n * A list of all valid MotionProps.\n *\n * @privateRemarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nconst validMotionProps = new Set([\n \"animate\",\n \"exit\",\n \"variants\",\n \"initial\",\n \"style\",\n \"values\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"custom\",\n \"inherit\",\n \"onBeforeLayoutMeasure\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"_dragX\",\n \"_dragY\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n \"globalTapTarget\",\n \"ignoreStrict\",\n \"viewport\",\n]);\n/**\n * Check whether a prop name is a valid `MotionProp` key.\n *\n * @param key - Name of the property to check\n * @returns `true` is key is a valid `MotionProp`.\n *\n * @public\n */\nfunction isValidMotionProp(key) {\n return (key.startsWith(\"while\") ||\n (key.startsWith(\"drag\") && key !== \"draggable\") ||\n key.startsWith(\"layout\") ||\n key.startsWith(\"onTap\") ||\n key.startsWith(\"onPan\") ||\n key.startsWith(\"onLayout\") ||\n validMotionProps.has(key));\n}\n\nexport { isValidMotionProp };\n","import { isValidMotionProp } from '../../../motion/utils/valid-prop.mjs';\n\nlet shouldForward = (key) => !isValidMotionProp(key);\nfunction loadExternalIsValidProp(isValidProp) {\n if (typeof isValidProp !== \"function\")\n return;\n // Explicitly filter our events\n shouldForward = (key) => key.startsWith(\"on\") ? !isValidMotionProp(key) : isValidProp(key);\n}\n/**\n * Emotion and Styled Components both allow users to pass through arbitrary props to their components\n * to dynamically generate CSS. They both use the `@emotion/is-prop-valid` package to determine which\n * of these should be passed to the underlying DOM node.\n *\n * However, when styling a Motion component `styled(motion.div)`, both packages pass through *all* props\n * as it's seen as an arbitrary component rather than a DOM node. Motion only allows arbitrary props\n * passed through the `custom` prop so it doesn't *need* the payload or computational overhead of\n * `@emotion/is-prop-valid`, however to fix this problem we need to use it.\n *\n * By making it an optionalDependency we can offer this functionality only in the situations where it's\n * actually required.\n */\ntry {\n /**\n * We attempt to import this package but require won't be defined in esm environments, in that case\n * isPropValid will have to be provided via `MotionContext`. In a 6.0.0 this should probably be removed\n * in favour of explicit injection.\n */\n loadExternalIsValidProp(require(\"@emotion/is-prop-valid\").default);\n}\ncatch {\n // We don't need to actually do anything here - the fallback is the existing `isPropValid`.\n}\nfunction filterProps(props, isDom, forwardMotionProps) {\n const filteredProps = {};\n for (const key in props) {\n /**\n * values is considered a valid prop by Emotion, so if it's present\n * this will be rendered out to the DOM unless explicitly filtered.\n *\n * We check the type as it could be used with the `feColorMatrix`\n * element, which we support.\n */\n if (key === \"values\" && typeof props.values === \"object\")\n continue;\n if (shouldForward(key) ||\n (forwardMotionProps === true && isValidMotionProp(key)) ||\n (!isDom && !isValidMotionProp(key)) ||\n // If trying to use native HTML drag events, forward drag listeners\n (props[\"draggable\"] &&\n key.startsWith(\"onDrag\"))) {\n filteredProps[key] =\n props[key];\n }\n }\n return filteredProps;\n}\n\nexport { filterProps, loadExternalIsValidProp };\n","\"use client\";\nimport { createContext } from 'react';\n\nconst MotionContext = /* @__PURE__ */ createContext({});\n\nexport { MotionContext };\n","function isAnimationControls(v) {\n return (v !== null &&\n typeof v === \"object\" &&\n typeof v.start === \"function\");\n}\n\nexport { isAnimationControls };\n","/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || Array.isArray(v);\n}\n\nexport { isVariantLabel };\n","const variantPriorityOrder = [\n \"animate\",\n \"whileInView\",\n \"whileFocus\",\n \"whileHover\",\n \"whileTap\",\n \"whileDrag\",\n \"exit\",\n];\nconst variantProps = [\"initial\", ...variantPriorityOrder];\n\nexport { variantPriorityOrder, variantProps };\n","import { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isVariantLabel } from './is-variant-label.mjs';\nimport { variantProps } from './variant-props.mjs';\n\nfunction isControllingVariants(props) {\n return (isAnimationControls(props.animate) ||\n variantProps.some((name) => isVariantLabel(props[name])));\n}\nfunction isVariantNode(props) {\n return Boolean(isControllingVariants(props) || props.variants);\n}\n\nexport { isControllingVariants, isVariantNode };\n","import { isControllingVariants } from '../../render/utils/is-controlling-variants.mjs';\nimport { isVariantLabel } from '../../render/utils/is-variant-label.mjs';\n\nfunction getCurrentTreeVariants(props, context) {\n if (isControllingVariants(props)) {\n const { initial, animate } = props;\n return {\n initial: initial === false || isVariantLabel(initial)\n ? initial\n : undefined,\n animate: isVariantLabel(animate) ? animate : undefined,\n };\n }\n return props.inherit !== false ? context : {};\n}\n\nexport { getCurrentTreeVariants };\n","\"use client\";\nimport { useContext, useMemo } from 'react';\nimport { MotionContext } from './index.mjs';\nimport { getCurrentTreeVariants } from './utils.mjs';\n\nfunction useCreateMotionContext(props) {\n const { initial, animate } = getCurrentTreeVariants(props, useContext(MotionContext));\n return useMemo(() => ({ initial, animate }), [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate)]);\n}\nfunction variantLabelsAsDependency(prop) {\n return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n\nexport { useCreateMotionContext };\n","import { isCSSVariableName } from 'motion-dom';\n\nconst scaleCorrectors = {};\nfunction addScaleCorrector(correctors) {\n for (const key in correctors) {\n scaleCorrectors[key] = correctors[key];\n if (isCSSVariableName(key)) {\n scaleCorrectors[key].isCSSVariable = true;\n }\n }\n}\n\nexport { addScaleCorrector, scaleCorrectors };\n","import { transformProps } from 'motion-dom';\nimport { scaleCorrectors } from '../../projection/styles/scale-correction.mjs';\n\nfunction isForcedMotionValue(key, { layout, layoutId }) {\n return (transformProps.has(key) ||\n key.startsWith(\"origin\") ||\n ((layout || layoutId !== undefined) &&\n (!!scaleCorrectors[key] || key === \"opacity\")));\n}\n\nexport { isForcedMotionValue };\n","import { transformPropOrder, getValueAsType, numberValueTypes } from 'motion-dom';\n\nconst translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\nconst numTransforms = transformPropOrder.length;\n/**\n * Build a CSS transform style from individual x/y/scale etc properties.\n *\n * This outputs with a default order of transforms/scales/rotations, this can be customised by\n * providing a transformTemplate function.\n */\nfunction buildTransform(latestValues, transform, transformTemplate) {\n // The transform string we're going to build into.\n let transformString = \"\";\n let transformIsDefault = true;\n /**\n * Loop over all possible transforms in order, adding the ones that\n * are present to the transform string.\n */\n for (let i = 0; i < numTransforms; i++) {\n const key = transformPropOrder[i];\n const value = latestValues[key];\n if (value === undefined)\n continue;\n let valueIsDefault = true;\n if (typeof value === \"number\") {\n valueIsDefault = value === (key.startsWith(\"scale\") ? 1 : 0);\n }\n else {\n valueIsDefault = parseFloat(value) === 0;\n }\n if (!valueIsDefault || transformTemplate) {\n const valueAsType = getValueAsType(value, numberValueTypes[key]);\n if (!valueIsDefault) {\n transformIsDefault = false;\n const transformName = translateAlias[key] || key;\n transformString += `${transformName}(${valueAsType}) `;\n }\n if (transformTemplate) {\n transform[key] = valueAsType;\n }\n }\n }\n transformString = transformString.trim();\n // If we have a custom `transform` template, pass our transform values and\n // generated transformString to that before returning\n if (transformTemplate) {\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n }\n else if (transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n\nexport { buildTransform };\n","import { transformProps, isCSSVariableName, getValueAsType, numberValueTypes } from 'motion-dom';\nimport { buildTransform } from './build-transform.mjs';\n\nfunction buildHTMLStyles(state, latestValues, transformTemplate) {\n const { style, vars, transformOrigin } = state;\n // Track whether we encounter any transform or transformOrigin values.\n let hasTransform = false;\n let hasTransformOrigin = false;\n /**\n * Loop over all our latest animated values and decide whether to handle them\n * as a style or CSS variable.\n *\n * Transforms and transform origins are kept separately for further processing.\n */\n for (const key in latestValues) {\n const value = latestValues[key];\n if (transformProps.has(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n continue;\n }\n else if (isCSSVariableName(key)) {\n vars[key] = value;\n continue;\n }\n else {\n // Convert the value to its default value type, ie 0 -> \"0px\"\n const valueAsType = getValueAsType(value, numberValueTypes[key]);\n if (key.startsWith(\"origin\")) {\n // If this is a transform origin, flag and enable further transform-origin processing\n hasTransformOrigin = true;\n transformOrigin[key] =\n valueAsType;\n }\n else {\n style[key] = valueAsType;\n }\n }\n }\n if (!latestValues.transform) {\n if (hasTransform || transformTemplate) {\n style.transform = buildTransform(latestValues, state.transform, transformTemplate);\n }\n else if (style.transform) {\n /**\n * If we have previously created a transform but currently don't have any,\n * reset transform style to none.\n */\n style.transform = \"none\";\n }\n }\n /**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\n if (hasTransformOrigin) {\n const { originX = \"50%\", originY = \"50%\", originZ = 0, } = transformOrigin;\n style.transformOrigin = `${originX} ${originY} ${originZ}`;\n }\n}\n\nexport { buildHTMLStyles };\n","const createHtmlRenderState = () => ({\n style: {},\n transform: {},\n transformOrigin: {},\n vars: {},\n});\n\nexport { createHtmlRenderState };\n","\"use client\";\nimport { isMotionValue } from 'motion-dom';\nimport { useMemo } from 'react';\nimport { isForcedMotionValue } from '../../motion/utils/is-forced-motion-value.mjs';\nimport { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nfunction copyRawValuesOnly(target, source, props) {\n for (const key in source) {\n if (!isMotionValue(source[key]) && !isForcedMotionValue(key, props)) {\n target[key] = source[key];\n }\n }\n}\nfunction useInitialMotionValues({ transformTemplate }, visualState) {\n return useMemo(() => {\n const state = createHtmlRenderState();\n buildHTMLStyles(state, visualState, transformTemplate);\n return Object.assign({}, state.vars, state.style);\n }, [visualState]);\n}\nfunction useStyle(props, visualState) {\n const styleProp = props.style || {};\n const style = {};\n /**\n * Copy non-Motion Values straight into style\n */\n copyRawValuesOnly(style, styleProp, props);\n Object.assign(style, useInitialMotionValues(props, visualState));\n return style;\n}\nfunction useHTMLProps(props, visualState) {\n // The `any` isn't ideal but it is the type of createElement props argument\n const htmlProps = {};\n const style = useStyle(props, visualState);\n if (props.drag && props.dragListener !== false) {\n // Disable the ghost element when a user drags\n htmlProps.draggable = false;\n // Disable text selection\n style.userSelect =\n style.WebkitUserSelect =\n style.WebkitTouchCallout =\n \"none\";\n // Disable scrolling on the draggable direction\n style.touchAction =\n props.drag === true\n ? \"none\"\n : `pan-${props.drag === \"x\" ? \"y\" : \"x\"}`;\n }\n if (props.tabIndex === undefined &&\n (props.onTap || props.onTapStart || props.whileTap)) {\n htmlProps.tabIndex = 0;\n }\n htmlProps.style = style;\n return htmlProps;\n}\n\nexport { copyRawValuesOnly, useHTMLProps };\n","import { px } from 'motion-dom';\n\nconst dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nconst camelKeys = {\n offset: \"strokeDashoffset\",\n array: \"strokeDasharray\",\n};\n/**\n * Build SVG path properties. Uses the path's measured length to convert\n * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset\n * and stroke-dasharray attributes.\n *\n * This function is mutative to reduce per-frame GC.\n */\nfunction buildSVGPath(attrs, length, spacing = 1, offset = 0, useDashCase = true) {\n // Normalise path length by setting SVG attribute pathLength to 1\n attrs.pathLength = 1;\n // We use dash case when setting attributes directly to the DOM node and camel case\n // when defining props on a React component.\n const keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset\n attrs[keys.offset] = px.transform(-offset);\n // Build the dash array\n const pathLength = px.transform(length);\n const pathSpacing = px.transform(spacing);\n attrs[keys.array] = `${pathLength} ${pathSpacing}`;\n}\n\nexport { buildSVGPath };\n","import { buildHTMLStyles } from '../../html/utils/build-styles.mjs';\nimport { buildSVGPath } from './path.mjs';\n\n/**\n * Build SVG visual attributes, like cx and style.transform\n */\nfunction buildSVGAttrs(state, { attrX, attrY, attrScale, pathLength, pathSpacing = 1, pathOffset = 0, \n// This is object creation, which we try to avoid per-frame.\n...latest }, isSVGTag, transformTemplate, styleProp) {\n buildHTMLStyles(state, latest, transformTemplate);\n /**\n * For svg tags we just want to make sure viewBox is animatable and treat all the styles\n * as normal HTML tags.\n */\n if (isSVGTag) {\n if (state.style.viewBox) {\n state.attrs.viewBox = state.style.viewBox;\n }\n return;\n }\n state.attrs = state.style;\n state.style = {};\n const { attrs, style } = state;\n /**\n * However, we apply transforms as CSS transforms.\n * So if we detect a transform, transformOrigin we take it from attrs and copy it into style.\n */\n if (attrs.transform) {\n style.transform = attrs.transform;\n delete attrs.transform;\n }\n if (style.transform || attrs.transformOrigin) {\n style.transformOrigin = attrs.transformOrigin ?? \"50% 50%\";\n delete attrs.transformOrigin;\n }\n if (style.transform) {\n /**\n * SVG's element transform-origin uses its own median as a reference.\n * Therefore, transformBox becomes a fill-box\n */\n style.transformBox = styleProp?.transformBox ?? \"fill-box\";\n delete attrs.transformBox;\n }\n // Render attrX/attrY/attrScale as attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n if (attrScale !== undefined)\n attrs.scale = attrScale;\n // Build SVG path if one has been defined\n if (pathLength !== undefined) {\n buildSVGPath(attrs, pathLength, pathSpacing, pathOffset, false);\n }\n}\n\nexport { buildSVGAttrs };\n","import { createHtmlRenderState } from '../../html/utils/create-render-state.mjs';\n\nconst createSvgRenderState = () => ({\n ...createHtmlRenderState(),\n attrs: {},\n});\n\nexport { createSvgRenderState };\n","const isSVGTag = (tag) => typeof tag === \"string\" && tag.toLowerCase() === \"svg\";\n\nexport { isSVGTag };\n","\"use client\";\nimport { useMemo } from 'react';\nimport { copyRawValuesOnly } from '../html/use-props.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\n\nfunction useSVGProps(props, visualState, _isStatic, Component) {\n const visualProps = useMemo(() => {\n const state = createSvgRenderState();\n buildSVGAttrs(state, visualState, isSVGTag(Component), props.transformTemplate, props.style);\n return {\n ...state.attrs,\n style: { ...state.style },\n };\n }, [visualState]);\n if (props.style) {\n const rawStyles = {};\n copyRawValuesOnly(rawStyles, props.style, props);\n visualProps.style = { ...rawStyles, ...visualProps.style };\n }\n return visualProps;\n}\n\nexport { useSVGProps };\n","/**\n * We keep these listed separately as we use the lowercase tag names as part\n * of the runtime bundle to detect SVG components\n */\nconst lowercaseSVGElements = [\n \"animate\",\n \"circle\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"g\",\n \"image\",\n \"line\",\n \"filter\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"rect\",\n \"stop\",\n \"switch\",\n \"symbol\",\n \"svg\",\n \"text\",\n \"tspan\",\n \"use\",\n \"view\",\n];\n\nexport { lowercaseSVGElements };\n","import { lowercaseSVGElements } from '../../svg/lowercase-elements.mjs';\n\nfunction isSVGComponent(Component) {\n if (\n /**\n * If it's not a string, it's a custom React component. Currently we only support\n * HTML custom React components.\n */\n typeof Component !== \"string\" ||\n /**\n * If it contains a dash, the element is a custom HTML webcomponent.\n */\n Component.includes(\"-\")) {\n return false;\n }\n else if (\n /**\n * If it's in our list of lowercase SVG tags, it's an SVG component\n */\n lowercaseSVGElements.indexOf(Component) > -1 ||\n /**\n * If it contains a capital letter, it's an SVG component\n */\n /[A-Z]/u.test(Component)) {\n return true;\n }\n return false;\n}\n\nexport { isSVGComponent };\n","\"use client\";\nimport { isMotionValue } from 'motion-dom';\nimport { Fragment, useMemo, createElement } from 'react';\nimport { useHTMLProps } from '../html/use-props.mjs';\nimport { useSVGProps } from '../svg/use-props.mjs';\nimport { filterProps } from './utils/filter-props.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\n\nfunction useRender(Component, props, ref, { latestValues, }, isStatic, forwardMotionProps = false) {\n const useVisualProps = isSVGComponent(Component)\n ? useSVGProps\n : useHTMLProps;\n const visualProps = useVisualProps(props, latestValues, isStatic, Component);\n const filteredProps = filterProps(props, typeof Component === \"string\", forwardMotionProps);\n const elementProps = Component !== Fragment ? { ...filteredProps, ...visualProps, ref } : {};\n /**\n * If component has been handed a motion value as its child,\n * memoise its initial value and render that. Subsequent updates\n * will be handled by the onChange handler\n */\n const { children } = props;\n const renderedChildren = useMemo(() => (isMotionValue(children) ? children.get() : children), [children]);\n return createElement(Component, {\n ...elementProps,\n children: renderedChildren,\n });\n}\n\nexport { useRender };\n","function getValueState(visualElement) {\n const state = [{}, {}];\n visualElement?.values.forEach((value, key) => {\n state[0][key] = value.get();\n state[1][key] = value.getVelocity();\n });\n return state;\n}\nfunction resolveVariantFromProps(props, definition, custom, visualElement) {\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n /**\n * If the variant definition is a variant label, or\n * the function returned a variant label, resolve.\n */\n if (typeof definition === \"string\") {\n definition = props.variants && props.variants[definition];\n }\n /**\n * At this point we've resolved both functions and variant labels,\n * but the resolved variant label might itself have been a function.\n * If so, resolve. This can only have returned a valid target object.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n return definition;\n}\n\nexport { resolveVariantFromProps };\n","import { isMotionValue } from 'motion-dom';\n\n/**\n * If the provided value is a MotionValue, this returns the actual value, otherwise just the value itself\n *\n * TODO: Remove and move to library\n */\nfunction resolveMotionValue(value) {\n return isMotionValue(value) ? value.get() : value;\n}\n\nexport { resolveMotionValue };\n","\"use client\";\nimport { useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { isControllingVariants, isVariantNode } from '../../render/utils/is-controlling-variants.mjs';\nimport { resolveVariantFromProps } from '../../render/utils/resolve-variants.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\n\nfunction makeState({ scrapeMotionValuesFromProps, createRenderState, }, props, context, presenceContext) {\n const state = {\n latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\n renderState: createRenderState(),\n };\n return state;\n}\nfunction makeLatestValues(props, context, presenceContext, scrapeMotionValues) {\n const values = {};\n const motionValues = scrapeMotionValues(props, {});\n for (const key in motionValues) {\n values[key] = resolveMotionValue(motionValues[key]);\n }\n let { initial, animate } = props;\n const isControllingVariants$1 = isControllingVariants(props);\n const isVariantNode$1 = isVariantNode(props);\n if (context &&\n isVariantNode$1 &&\n !isControllingVariants$1 &&\n props.inherit !== false) {\n if (initial === undefined)\n initial = context.initial;\n if (animate === undefined)\n animate = context.animate;\n }\n let isInitialAnimationBlocked = presenceContext\n ? presenceContext.initial === false\n : false;\n isInitialAnimationBlocked = isInitialAnimationBlocked || initial === false;\n const variantToSet = isInitialAnimationBlocked ? animate : initial;\n if (variantToSet &&\n typeof variantToSet !== \"boolean\" &&\n !isAnimationControls(variantToSet)) {\n const list = Array.isArray(variantToSet) ? variantToSet : [variantToSet];\n for (let i = 0; i < list.length; i++) {\n const resolved = resolveVariantFromProps(props, list[i]);\n if (resolved) {\n const { transitionEnd, transition, ...target } = resolved;\n for (const key in target) {\n let valueTarget = target[key];\n if (Array.isArray(valueTarget)) {\n /**\n * Take final keyframe if the initial animation is blocked because\n * we want to initialise at the end of that blocked animation.\n */\n const index = isInitialAnimationBlocked\n ? valueTarget.length - 1\n : 0;\n valueTarget = valueTarget[index];\n }\n if (valueTarget !== null) {\n values[key] = valueTarget;\n }\n }\n for (const key in transitionEnd) {\n values[key] = transitionEnd[key];\n }\n }\n }\n }\n return values;\n}\nconst makeUseVisualState = (config) => (props, isStatic) => {\n const context = useContext(MotionContext);\n const presenceContext = useContext(PresenceContext);\n const make = () => makeState(config, props, context, presenceContext);\n return isStatic ? make() : useConstant(make);\n};\n\nexport { makeUseVisualState };\n","import { isMotionValue } from 'motion-dom';\nimport { isForcedMotionValue } from '../../../motion/utils/is-forced-motion-value.mjs';\n\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n const { style } = props;\n const newValues = {};\n for (const key in style) {\n if (isMotionValue(style[key]) ||\n (prevProps.style &&\n isMotionValue(prevProps.style[key])) ||\n isForcedMotionValue(key, props) ||\n visualElement?.getValue(key)?.liveStyle !== undefined) {\n newValues[key] = style[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","\"use client\";\nimport { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\n\nconst useHTMLVisualState = /*@__PURE__*/ makeUseVisualState({\n scrapeMotionValuesFromProps,\n createRenderState: createHtmlRenderState,\n});\n\nexport { useHTMLVisualState };\n","import { isMotionValue, transformPropOrder } from 'motion-dom';\nimport { scrapeMotionValuesFromProps as scrapeMotionValuesFromProps$1 } from '../../html/utils/scrape-motion-values.mjs';\n\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n const newValues = scrapeMotionValuesFromProps$1(props, prevProps, visualElement);\n for (const key in props) {\n if (isMotionValue(props[key]) ||\n isMotionValue(prevProps[key])) {\n const targetKey = transformPropOrder.indexOf(key) !== -1\n ? \"attr\" + key.charAt(0).toUpperCase() + key.substring(1)\n : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","\"use client\";\nimport { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\n\nconst useSVGVisualState = /*@__PURE__*/ makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createSvgRenderState,\n});\n\nexport { useSVGVisualState };\n","const motionComponentSymbol = Symbol.for(\"motionComponentSymbol\");\n\nexport { motionComponentSymbol };\n","function isRefObject(ref) {\n return (ref &&\n typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\nexport { isRefObject };\n","\"use client\";\nimport { useCallback } from 'react';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\n\n/**\n * Creates a ref function that, when called, hydrates the provided\n * external ref and VisualElement.\n */\nfunction useMotionRef(visualState, visualElement, externalRef) {\n return useCallback((instance) => {\n if (instance) {\n visualState.onMount && visualState.onMount(instance);\n }\n if (visualElement) {\n if (instance) {\n visualElement.mount(instance);\n }\n else {\n visualElement.unmount();\n }\n }\n if (externalRef) {\n if (typeof externalRef === \"function\") {\n externalRef(instance);\n }\n else if (isRefObject(externalRef)) {\n externalRef.current = instance;\n }\n }\n }, \n /**\n * Include externalRef in dependencies to ensure the callback updates\n * when the ref changes, allowing proper ref forwarding.\n */\n [visualElement]);\n}\n\nexport { useMotionRef };\n","/**\n * Convert camelCase to dash-case properties.\n */\nconst camelToDash = (str) => str.replace(/([a-z])([A-Z])/gu, \"$1-$2\").toLowerCase();\n\nexport { camelToDash };\n","import { camelToDash } from '../../render/dom/utils/camel-to-dash.mjs';\n\nconst optimizedAppearDataId = \"framerAppearId\";\nconst optimizedAppearDataAttribute = \"data-\" + camelToDash(optimizedAppearDataId);\n\nexport { optimizedAppearDataAttribute, optimizedAppearDataId };\n","\"use client\";\nimport { createContext } from 'react';\n\n/**\n * Internal, exported only for usage in Framer\n */\nconst SwitchLayoutGroupContext = createContext({});\n\nexport { SwitchLayoutGroupContext };\n","\"use client\";\nimport { useContext, useRef, useInsertionEffect, useEffect } from 'react';\nimport { optimizedAppearDataAttribute } from '../../animation/optimized-appear/data-id.mjs';\nimport { LazyContext } from '../../context/LazyContext.mjs';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { SwitchLayoutGroupContext } from '../../context/SwitchLayoutGroupContext.mjs';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\n\nfunction useVisualElement(Component, visualState, props, createVisualElement, ProjectionNodeConstructor) {\n const { visualElement: parent } = useContext(MotionContext);\n const lazyContext = useContext(LazyContext);\n const presenceContext = useContext(PresenceContext);\n const reducedMotionConfig = useContext(MotionConfigContext).reducedMotion;\n const visualElementRef = useRef(null);\n /**\n * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\n */\n createVisualElement =\n createVisualElement ||\n lazyContext.renderer;\n if (!visualElementRef.current && createVisualElement) {\n visualElementRef.current = createVisualElement(Component, {\n visualState,\n parent,\n props,\n presenceContext,\n blockInitialAnimation: presenceContext\n ? presenceContext.initial === false\n : false,\n reducedMotionConfig,\n });\n }\n const visualElement = visualElementRef.current;\n /**\n * Load Motion gesture and animation features. These are rendered as renderless\n * components so each feature can optionally make use of React lifecycle methods.\n */\n const initialLayoutGroupConfig = useContext(SwitchLayoutGroupContext);\n if (visualElement &&\n !visualElement.projection &&\n ProjectionNodeConstructor &&\n (visualElement.type === \"html\" || visualElement.type === \"svg\")) {\n createProjectionNode(visualElementRef.current, props, ProjectionNodeConstructor, initialLayoutGroupConfig);\n }\n const isMounted = useRef(false);\n useInsertionEffect(() => {\n /**\n * Check the component has already mounted before calling\n * `update` unnecessarily. This ensures we skip the initial update.\n */\n if (visualElement && isMounted.current) {\n visualElement.update(props, presenceContext);\n }\n });\n /**\n * Cache this value as we want to know whether HandoffAppearAnimations\n * was present on initial render - it will be deleted after this.\n */\n const optimisedAppearId = props[optimizedAppearDataAttribute];\n const wantsHandoff = useRef(Boolean(optimisedAppearId) &&\n !window.MotionHandoffIsComplete?.(optimisedAppearId) &&\n window.MotionHasOptimisedAnimation?.(optimisedAppearId));\n useIsomorphicLayoutEffect(() => {\n if (!visualElement)\n return;\n isMounted.current = true;\n window.MotionIsMounted = true;\n visualElement.updateFeatures();\n visualElement.scheduleRenderMicrotask();\n /**\n * Ideally this function would always run in a useEffect.\n *\n * However, if we have optimised appear animations to handoff from,\n * it needs to happen synchronously to ensure there's no flash of\n * incorrect styles in the event of a hydration error.\n *\n * So if we detect a situtation where optimised appear animations\n * are running, we use useLayoutEffect to trigger animations.\n */\n if (wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n });\n useEffect(() => {\n if (!visualElement)\n return;\n if (!wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n if (wantsHandoff.current) {\n // This ensures all future calls to animateChanges() in this component will run in useEffect\n queueMicrotask(() => {\n window.MotionHandoffMarkAsComplete?.(optimisedAppearId);\n });\n wantsHandoff.current = false;\n }\n /**\n * Now we've finished triggering animations for this element we\n * can wipe the enteringChildren set for the next render.\n */\n visualElement.enteringChildren = undefined;\n });\n return visualElement;\n}\nfunction createProjectionNode(visualElement, props, ProjectionNodeConstructor, initialPromotionConfig) {\n const { layoutId, layout, drag, dragConstraints, layoutScroll, layoutRoot, layoutCrossfade, } = props;\n visualElement.projection = new ProjectionNodeConstructor(visualElement.latestValues, props[\"data-framer-portal-id\"]\n ? undefined\n : getClosestProjectingNode(visualElement.parent));\n visualElement.projection.setOptions({\n layoutId,\n layout,\n alwaysMeasureLayout: Boolean(drag) || (dragConstraints && isRefObject(dragConstraints)),\n visualElement,\n /**\n * TODO: Update options in an effect. This could be tricky as it'll be too late\n * to update by the time layout animations run.\n * We also need to fix this safeToRemove by linking it up to the one returned by usePresence,\n * ensuring it gets called if there's no potential layout animations.\n *\n */\n animationType: typeof layout === \"string\" ? layout : \"both\",\n initialPromotionConfig,\n crossfade: layoutCrossfade,\n layoutScroll,\n layoutRoot,\n });\n}\nfunction getClosestProjectingNode(visualElement) {\n if (!visualElement)\n return undefined;\n return visualElement.options.allowProjection !== false\n ? visualElement.projection\n : getClosestProjectingNode(visualElement.parent);\n}\n\nexport { useVisualElement };\n","\"use client\";\nimport { jsxs, jsx } from 'react/jsx-runtime';\nimport { warning, invariant } from 'motion-utils';\nimport { forwardRef, useContext } from 'react';\nimport { LayoutGroupContext } from '../context/LayoutGroupContext.mjs';\nimport { LazyContext } from '../context/LazyContext.mjs';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { MotionContext } from '../context/MotionContext/index.mjs';\nimport { useCreateMotionContext } from '../context/MotionContext/create.mjs';\nimport { useRender } from '../render/dom/use-render.mjs';\nimport { isSVGComponent } from '../render/dom/utils/is-svg-component.mjs';\nimport { useHTMLVisualState } from '../render/html/use-html-visual-state.mjs';\nimport { useSVGVisualState } from '../render/svg/use-svg-visual-state.mjs';\nimport { isBrowser } from '../utils/is-browser.mjs';\nimport { featureDefinitions } from './features/definitions.mjs';\nimport { loadFeatures } from './features/load-features.mjs';\nimport { motionComponentSymbol } from './utils/symbol.mjs';\nimport { useMotionRef } from './utils/use-motion-ref.mjs';\nimport { useVisualElement } from './utils/use-visual-element.mjs';\n\n/**\n * Create a `motion` component.\n *\n * This function accepts a Component argument, which can be either a string (ie \"div\"\n * for `motion.div`), or an actual React component.\n *\n * Alongside this is a config option which provides a way of rendering the provided\n * component \"offline\", or outside the React render cycle.\n */\nfunction createMotionComponent(Component, { forwardMotionProps = false } = {}, preloadedFeatures, createVisualElement) {\n preloadedFeatures && loadFeatures(preloadedFeatures);\n const useVisualState = isSVGComponent(Component)\n ? useSVGVisualState\n : useHTMLVisualState;\n function MotionDOMComponent(props, externalRef) {\n /**\n * If we need to measure the element we load this functionality in a\n * separate class component in order to gain access to getSnapshotBeforeUpdate.\n */\n let MeasureLayout;\n const configAndProps = {\n ...useContext(MotionConfigContext),\n ...props,\n layoutId: useLayoutId(props),\n };\n const { isStatic } = configAndProps;\n const context = useCreateMotionContext(props);\n const visualState = useVisualState(props, isStatic);\n if (!isStatic && isBrowser) {\n useStrictMode(configAndProps, preloadedFeatures);\n const layoutProjection = getProjectionFunctionality(configAndProps);\n MeasureLayout = layoutProjection.MeasureLayout;\n /**\n * Create a VisualElement for this component. A VisualElement provides a common\n * interface to renderer-specific APIs (ie DOM/Three.js etc) as well as\n * providing a way of rendering to these APIs outside of the React render loop\n * for more performant animations and interactions\n */\n context.visualElement = useVisualElement(Component, visualState, configAndProps, createVisualElement, layoutProjection.ProjectionNode);\n }\n /**\n * The mount order and hierarchy is specific to ensure our element ref\n * is hydrated by the time features fire their effects.\n */\n return (jsxs(MotionContext.Provider, { value: context, children: [MeasureLayout && context.visualElement ? (jsx(MeasureLayout, { visualElement: context.visualElement, ...configAndProps })) : null, useRender(Component, props, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic, forwardMotionProps)] }));\n }\n MotionDOMComponent.displayName = `motion.${typeof Component === \"string\"\n ? Component\n : `create(${Component.displayName ?? Component.name ?? \"\"})`}`;\n const ForwardRefMotionComponent = forwardRef(MotionDOMComponent);\n ForwardRefMotionComponent[motionComponentSymbol] = Component;\n return ForwardRefMotionComponent;\n}\nfunction useLayoutId({ layoutId }) {\n const layoutGroupId = useContext(LayoutGroupContext).id;\n return layoutGroupId && layoutId !== undefined\n ? layoutGroupId + \"-\" + layoutId\n : layoutId;\n}\nfunction useStrictMode(configAndProps, preloadedFeatures) {\n const isStrict = useContext(LazyContext).strict;\n /**\n * If we're in development mode, check to make sure we're not rendering a motion component\n * as a child of LazyMotion, as this will break the file-size benefits of using it.\n */\n if (process.env.NODE_ENV !== \"production\" &&\n preloadedFeatures &&\n isStrict) {\n const strictMessage = \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\";\n configAndProps.ignoreStrict\n ? warning(false, strictMessage, \"lazy-strict-mode\")\n : invariant(false, strictMessage, \"lazy-strict-mode\");\n }\n}\nfunction getProjectionFunctionality(props) {\n const { drag, layout } = featureDefinitions;\n if (!drag && !layout)\n return {};\n const combined = { ...drag, ...layout };\n return {\n MeasureLayout: drag?.isEnabled(props) || layout?.isEnabled(props)\n ? combined.MeasureLayout\n : undefined,\n ProjectionNode: combined.ProjectionNode,\n };\n}\n\nexport { createMotionComponent };\n","import { warnOnce } from 'motion-utils';\nimport { createMotionComponent } from '../../motion/index.mjs';\n\nfunction createMotionProxy(preloadedFeatures, createVisualElement) {\n if (typeof Proxy === \"undefined\") {\n return createMotionComponent;\n }\n /**\n * A cache of generated `motion` components, e.g `motion.div`, `motion.input` etc.\n * Rather than generating them anew every render.\n */\n const componentCache = new Map();\n const factory = (Component, options) => {\n return createMotionComponent(Component, options, preloadedFeatures, createVisualElement);\n };\n /**\n * Support for deprecated`motion(Component)` pattern\n */\n const deprecatedFactoryFunction = (Component, options) => {\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(false, \"motion() is deprecated. Use motion.create() instead.\");\n }\n return factory(Component, options);\n };\n return new Proxy(deprecatedFactoryFunction, {\n /**\n * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.\n * The prop name is passed through as `key` and we can use that to generate a `motion`\n * DOM component with that name.\n */\n get: (_target, key) => {\n if (key === \"create\")\n return factory;\n /**\n * If this element doesn't exist in the component cache, create it and cache.\n */\n if (!componentCache.has(key)) {\n componentCache.set(key, createMotionComponent(key, undefined, preloadedFeatures, createVisualElement));\n }\n return componentCache.get(key);\n },\n });\n}\n\nexport { createMotionProxy };\n","import { createMotionProxy } from '../create-proxy.mjs';\n\nconst m = /*@__PURE__*/ createMotionProxy();\n\nexport { m };\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 {isIOS as $7R18e$isIOS, getOwnerDocument as $7R18e$getOwnerDocument, runAfterTransition as $7R18e$runAfterTransition} 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 */ \n// Note that state only matters here for iOS. Non-iOS gets user-select: none applied to the target element\n// rather than at the document level so we just need to apply/remove user-select: none for each pressed element individually\nlet $14c0b72509d70225$var$state = 'default';\nlet $14c0b72509d70225$var$savedUserSelect = '';\nlet $14c0b72509d70225$var$modifiedElementMap = new WeakMap();\nfunction $14c0b72509d70225$export$16a4697467175487(target) {\n if ((0, $7R18e$isIOS)()) {\n if ($14c0b72509d70225$var$state === 'default') {\n const documentObject = (0, $7R18e$getOwnerDocument)(target);\n $14c0b72509d70225$var$savedUserSelect = documentObject.documentElement.style.webkitUserSelect;\n documentObject.documentElement.style.webkitUserSelect = 'none';\n }\n $14c0b72509d70225$var$state = 'disabled';\n } else if (target instanceof HTMLElement || target instanceof SVGElement) {\n // If not iOS, store the target's original user-select and change to user-select: none\n // Ignore state since it doesn't apply for non iOS\n let property = 'userSelect' in target.style ? 'userSelect' : 'webkitUserSelect';\n $14c0b72509d70225$var$modifiedElementMap.set(target, target.style[property]);\n target.style[property] = 'none';\n }\n}\nfunction $14c0b72509d70225$export$b0d6fa1ab32e3295(target) {\n if ((0, $7R18e$isIOS)()) {\n // If the state is already default, there's nothing to do.\n // If it is restoring, then there's no need to queue a second restore.\n if ($14c0b72509d70225$var$state !== 'disabled') return;\n $14c0b72509d70225$var$state = 'restoring';\n // There appears to be a delay on iOS where selection still might occur\n // after pointer up, so wait a bit before removing user-select.\n setTimeout(()=>{\n // Wait for any CSS transitions to complete so we don't recompute style\n // for the whole page in the middle of the animation and cause jank.\n (0, $7R18e$runAfterTransition)(()=>{\n // Avoid race conditions\n if ($14c0b72509d70225$var$state === 'restoring') {\n const documentObject = (0, $7R18e$getOwnerDocument)(target);\n if (documentObject.documentElement.style.webkitUserSelect === 'none') documentObject.documentElement.style.webkitUserSelect = $14c0b72509d70225$var$savedUserSelect || '';\n $14c0b72509d70225$var$savedUserSelect = '';\n $14c0b72509d70225$var$state = 'default';\n }\n });\n }, 300);\n } else if (target instanceof HTMLElement || target instanceof SVGElement) // If not iOS, restore the target's original user-select if any\n // Ignore state since it doesn't apply for non iOS\n {\n if (target && $14c0b72509d70225$var$modifiedElementMap.has(target)) {\n let targetOldUserSelect = $14c0b72509d70225$var$modifiedElementMap.get(target);\n let property = 'userSelect' in target.style ? 'userSelect' : 'webkitUserSelect';\n if (target.style[property] === 'none') target.style[property] = targetOldUserSelect;\n if (target.getAttribute('style') === '') target.removeAttribute('style');\n $14c0b72509d70225$var$modifiedElementMap.delete(target);\n }\n }\n}\n\n\nexport {$14c0b72509d70225$export$16a4697467175487 as disableTextSelection, $14c0b72509d70225$export$b0d6fa1ab32e3295 as restoreTextSelection};\n//# sourceMappingURL=textSelection.module.js.map\n","import $3aeG1$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 $ae1eeba8b9eafd08$export$5165eccb35aaadb5 = (0, $3aeG1$react).createContext({\n register: ()=>{}\n});\n$ae1eeba8b9eafd08$export$5165eccb35aaadb5.displayName = 'PressResponderContext';\n\n\nexport {$ae1eeba8b9eafd08$export$5165eccb35aaadb5 as PressResponderContext};\n//# sourceMappingURL=context.module.js.map\n","function _class_apply_descriptor_get(receiver, descriptor) {\n if (descriptor.get) return descriptor.get.call(receiver);\n\n return descriptor.value;\n}\nexport { _class_apply_descriptor_get as _ };\n","function _class_extract_field_descriptor(receiver, privateMap, action) {\n if (!privateMap.has(receiver)) throw new TypeError(\"attempted to \" + action + \" private field on non-instance\");\n\n return privateMap.get(receiver);\n}\nexport { _class_extract_field_descriptor as _ };\n","import { _ as _class_apply_descriptor_get } from \"./_class_apply_descriptor_get.js\";\nimport { _ as _class_extract_field_descriptor } from \"./_class_extract_field_descriptor.js\";\n\nfunction _class_private_field_get(receiver, privateMap) {\n var descriptor = _class_extract_field_descriptor(receiver, privateMap, \"get\");\n return _class_apply_descriptor_get(receiver, descriptor);\n}\nexport { _class_private_field_get as _ };\n","function _class_apply_descriptor_set(receiver, descriptor, value) {\n if (descriptor.set) descriptor.set.call(receiver, value);\n else {\n if (!descriptor.writable) {\n // This should only throw in strict mode, but class bodies are\n // always strict and private fields can only be used inside\n // class bodies.\n throw new TypeError(\"attempted to set read only private field\");\n }\n descriptor.value = value;\n }\n}\nexport { _class_apply_descriptor_set as _ };\n","import { _ as _class_apply_descriptor_set } from \"./_class_apply_descriptor_set.js\";\nimport { _ as _class_extract_field_descriptor } from \"./_class_extract_field_descriptor.js\";\n\nfunction _class_private_field_set(receiver, privateMap, value) {\n var descriptor = _class_extract_field_descriptor(receiver, privateMap, \"set\");\n _class_apply_descriptor_set(receiver, descriptor, value);\n return value;\n}\nexport { _class_private_field_set as _ };\n","import {createSyntheticEvent as $8a9cb279dc87e130$export$525bc4921d56d4a, preventFocus as $8a9cb279dc87e130$export$cabe61c495ee3649, setEventTarget as $8a9cb279dc87e130$export$c2b7abe5d61ec696} from \"./utils.mjs\";\nimport {disableTextSelection as $14c0b72509d70225$export$16a4697467175487, restoreTextSelection as $14c0b72509d70225$export$b0d6fa1ab32e3295} from \"./textSelection.mjs\";\nimport {PressResponderContext as $ae1eeba8b9eafd08$export$5165eccb35aaadb5} from \"./context.mjs\";\nimport {_ as $7mdmh$_} from \"@swc/helpers/_/_class_private_field_get\";\nimport {_ as $7mdmh$_1} from \"@swc/helpers/_/_class_private_field_init\";\nimport {_ as $7mdmh$_2} from \"@swc/helpers/_/_class_private_field_set\";\nimport {mergeProps as $7mdmh$mergeProps, useSyncRef as $7mdmh$useSyncRef, useGlobalListeners as $7mdmh$useGlobalListeners, useEffectEvent as $7mdmh$useEffectEvent, nodeContains as $7mdmh$nodeContains, getEventTarget as $7mdmh$getEventTarget, getOwnerDocument as $7mdmh$getOwnerDocument, chain as $7mdmh$chain, isMac as $7mdmh$isMac, openLink as $7mdmh$openLink, isVirtualClick as $7mdmh$isVirtualClick, isVirtualPointerEvent as $7mdmh$isVirtualPointerEvent, focusWithoutScrolling as $7mdmh$focusWithoutScrolling, getOwnerWindow as $7mdmh$getOwnerWindow} from \"@react-aria/utils\";\nimport {flushSync as $7mdmh$flushSync} from \"react-dom\";\nimport {useContext as $7mdmh$useContext, useState as $7mdmh$useState, useRef as $7mdmh$useRef, useMemo as $7mdmh$useMemo, useEffect as $7mdmh$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 */ // 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\n\n\n\n\n\nfunction $f6c31cce2adf654f$var$usePressResponderContext(props) {\n // Consume context from <PressResponder> and merge with props.\n let context = (0, $7mdmh$useContext)((0, $ae1eeba8b9eafd08$export$5165eccb35aaadb5));\n if (context) {\n let { register: register, ...contextProps } = context;\n props = (0, $7mdmh$mergeProps)(contextProps, props);\n register();\n }\n (0, $7mdmh$useSyncRef)(context, props.ref);\n return props;\n}\nvar $f6c31cce2adf654f$var$_shouldStopPropagation = /*#__PURE__*/ new WeakMap();\nclass $f6c31cce2adf654f$var$PressEvent {\n continuePropagation() {\n (0, $7mdmh$_2)(this, $f6c31cce2adf654f$var$_shouldStopPropagation, false);\n }\n get shouldStopPropagation() {\n return (0, $7mdmh$_)(this, $f6c31cce2adf654f$var$_shouldStopPropagation);\n }\n constructor(type, pointerType, originalEvent, state){\n (0, $7mdmh$_1)(this, $f6c31cce2adf654f$var$_shouldStopPropagation, {\n writable: true,\n value: void 0\n });\n (0, $7mdmh$_2)(this, $f6c31cce2adf654f$var$_shouldStopPropagation, true);\n var _state_target;\n let currentTarget = (_state_target = state === null || state === void 0 ? void 0 : state.target) !== null && _state_target !== void 0 ? _state_target : originalEvent.currentTarget;\n const rect = currentTarget === null || currentTarget === void 0 ? void 0 : currentTarget.getBoundingClientRect();\n let x, y = 0;\n let clientX, clientY = null;\n if (originalEvent.clientX != null && originalEvent.clientY != null) {\n clientX = originalEvent.clientX;\n clientY = originalEvent.clientY;\n }\n if (rect) {\n if (clientX != null && clientY != null) {\n x = clientX - rect.left;\n y = clientY - rect.top;\n } else {\n x = rect.width / 2;\n y = rect.height / 2;\n }\n }\n this.type = type;\n this.pointerType = pointerType;\n this.target = originalEvent.currentTarget;\n this.shiftKey = originalEvent.shiftKey;\n this.metaKey = originalEvent.metaKey;\n this.ctrlKey = originalEvent.ctrlKey;\n this.altKey = originalEvent.altKey;\n this.x = x;\n this.y = y;\n }\n}\nconst $f6c31cce2adf654f$var$LINK_CLICKED = Symbol('linkClicked');\nconst $f6c31cce2adf654f$var$STYLE_ID = 'react-aria-pressable-style';\nconst $f6c31cce2adf654f$var$PRESSABLE_ATTRIBUTE = 'data-react-aria-pressable';\nfunction $f6c31cce2adf654f$export$45712eceda6fad21(props) {\n let { onPress: onPress, onPressChange: onPressChange, onPressStart: onPressStart, onPressEnd: onPressEnd, onPressUp: onPressUp, onClick: onClick, isDisabled: isDisabled, isPressed: isPressedProp, preventFocusOnPress: preventFocusOnPress, shouldCancelOnPointerExit: shouldCancelOnPointerExit, allowTextSelectionOnPress: allowTextSelectionOnPress, ref: domRef, ...domProps } = $f6c31cce2adf654f$var$usePressResponderContext(props);\n let [isPressed, setPressed] = (0, $7mdmh$useState)(false);\n let ref = (0, $7mdmh$useRef)({\n isPressed: false,\n ignoreEmulatedMouseEvents: false,\n didFirePressStart: false,\n isTriggeringEvent: false,\n activePointerId: null,\n target: null,\n isOverTarget: false,\n pointerType: null,\n disposables: []\n });\n let { addGlobalListener: addGlobalListener, removeAllGlobalListeners: removeAllGlobalListeners } = (0, $7mdmh$useGlobalListeners)();\n let triggerPressStart = (0, $7mdmh$useEffectEvent)((originalEvent, pointerType)=>{\n let state = ref.current;\n if (isDisabled || state.didFirePressStart) return false;\n let shouldStopPropagation = true;\n state.isTriggeringEvent = true;\n if (onPressStart) {\n let event = new $f6c31cce2adf654f$var$PressEvent('pressstart', pointerType, originalEvent);\n onPressStart(event);\n shouldStopPropagation = event.shouldStopPropagation;\n }\n if (onPressChange) onPressChange(true);\n state.isTriggeringEvent = false;\n state.didFirePressStart = true;\n setPressed(true);\n return shouldStopPropagation;\n });\n let triggerPressEnd = (0, $7mdmh$useEffectEvent)((originalEvent, pointerType, wasPressed = true)=>{\n let state = ref.current;\n if (!state.didFirePressStart) return false;\n state.didFirePressStart = false;\n state.isTriggeringEvent = true;\n let shouldStopPropagation = true;\n if (onPressEnd) {\n let event = new $f6c31cce2adf654f$var$PressEvent('pressend', pointerType, originalEvent);\n onPressEnd(event);\n shouldStopPropagation = event.shouldStopPropagation;\n }\n if (onPressChange) onPressChange(false);\n setPressed(false);\n if (onPress && wasPressed && !isDisabled) {\n let event = new $f6c31cce2adf654f$var$PressEvent('press', pointerType, originalEvent);\n onPress(event);\n shouldStopPropagation && (shouldStopPropagation = event.shouldStopPropagation);\n }\n state.isTriggeringEvent = false;\n return shouldStopPropagation;\n });\n let triggerPressUp = (0, $7mdmh$useEffectEvent)((originalEvent, pointerType)=>{\n let state = ref.current;\n if (isDisabled) return false;\n if (onPressUp) {\n state.isTriggeringEvent = true;\n let event = new $f6c31cce2adf654f$var$PressEvent('pressup', pointerType, originalEvent);\n onPressUp(event);\n state.isTriggeringEvent = false;\n return event.shouldStopPropagation;\n }\n return true;\n });\n let cancel = (0, $7mdmh$useEffectEvent)((e)=>{\n let state = ref.current;\n if (state.isPressed && state.target) {\n if (state.didFirePressStart && state.pointerType != null) triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType, false);\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) (0, $14c0b72509d70225$export$b0d6fa1ab32e3295)(state.target);\n for (let dispose of state.disposables)dispose();\n state.disposables = [];\n }\n });\n let cancelOnPointerExit = (0, $7mdmh$useEffectEvent)((e)=>{\n if (shouldCancelOnPointerExit) cancel(e);\n });\n let triggerClick = (0, $7mdmh$useEffectEvent)((e)=>{\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n });\n let triggerSyntheticClick = (0, $7mdmh$useEffectEvent)((e, target)=>{\n // Some third-party libraries pass in onClick instead of onPress.\n // Create a fake mouse event and trigger onClick as well.\n // This matches the browser's native activation behavior for certain elements (e.g. button).\n // https://html.spec.whatwg.org/#activation\n // https://html.spec.whatwg.org/#fire-a-synthetic-pointer-event\n if (onClick) {\n let event = new MouseEvent('click', e);\n (0, $8a9cb279dc87e130$export$c2b7abe5d61ec696)(event, target);\n onClick((0, $8a9cb279dc87e130$export$525bc4921d56d4a)(event));\n }\n });\n let pressProps = (0, $7mdmh$useMemo)(()=>{\n let state = ref.current;\n let pressProps = {\n onKeyDown (e) {\n if ($f6c31cce2adf654f$var$isValidKeyboardEvent(e.nativeEvent, e.currentTarget) && (0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) {\n var _state_metaKeyEvents;\n if ($f6c31cce2adf654f$var$shouldPreventDefaultKeyboard((0, $7mdmh$getEventTarget)(e.nativeEvent), e.key)) e.preventDefault();\n // If the event is repeating, it may have started on a different element\n // after which focus moved to the current element. Ignore these events and\n // only handle the first key down event.\n let shouldStopPropagation = true;\n if (!state.isPressed && !e.repeat) {\n state.target = e.currentTarget;\n state.isPressed = true;\n state.pointerType = 'keyboard';\n shouldStopPropagation = triggerPressStart(e, 'keyboard');\n // Focus may move before the key up event, so register the event on the document\n // instead of the same element where the key down event occurred. Make it capturing so that it will trigger\n // before stopPropagation from useKeyboard on a child element may happen and thus we can still call triggerPress for the parent element.\n let originalTarget = e.currentTarget;\n let pressUp = (e)=>{\n if ($f6c31cce2adf654f$var$isValidKeyboardEvent(e, originalTarget) && !e.repeat && (0, $7mdmh$nodeContains)(originalTarget, (0, $7mdmh$getEventTarget)(e)) && state.target) triggerPressUp($f6c31cce2adf654f$var$createEvent(state.target, e), 'keyboard');\n };\n addGlobalListener((0, $7mdmh$getOwnerDocument)(e.currentTarget), 'keyup', (0, $7mdmh$chain)(pressUp, onKeyUp), true);\n }\n if (shouldStopPropagation) e.stopPropagation();\n // Keep track of the keydown events that occur while the Meta (e.g. Command) key is held.\n // macOS has a bug where keyup events are not fired while the Meta key is down.\n // When the Meta key itself is released we will get an event for that, and we'll act as if\n // all of these other keys were released as well.\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1393524\n // https://bugs.webkit.org/show_bug.cgi?id=55291\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1299553\n if (e.metaKey && (0, $7mdmh$isMac)()) (_state_metaKeyEvents = state.metaKeyEvents) === null || _state_metaKeyEvents === void 0 ? void 0 : _state_metaKeyEvents.set(e.key, e.nativeEvent);\n } else if (e.key === 'Meta') state.metaKeyEvents = new Map();\n },\n onClick (e) {\n if (e && !(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n if (e && e.button === 0 && !state.isTriggeringEvent && !(0, $7mdmh$openLink).isOpening) {\n let shouldStopPropagation = true;\n if (isDisabled) e.preventDefault();\n // If triggered from a screen reader or by using element.click(),\n // trigger as if it were a keyboard click.\n if (!state.ignoreEmulatedMouseEvents && !state.isPressed && (state.pointerType === 'virtual' || (0, $7mdmh$isVirtualClick)(e.nativeEvent))) {\n let stopPressStart = triggerPressStart(e, 'virtual');\n let stopPressUp = triggerPressUp(e, 'virtual');\n let stopPressEnd = triggerPressEnd(e, 'virtual');\n triggerClick(e);\n shouldStopPropagation = stopPressStart && stopPressUp && stopPressEnd;\n } else if (state.isPressed && state.pointerType !== 'keyboard') {\n let pointerType = state.pointerType || e.nativeEvent.pointerType || 'virtual';\n let stopPressUp = triggerPressUp($f6c31cce2adf654f$var$createEvent(e.currentTarget, e), pointerType);\n let stopPressEnd = triggerPressEnd($f6c31cce2adf654f$var$createEvent(e.currentTarget, e), pointerType, true);\n shouldStopPropagation = stopPressUp && stopPressEnd;\n state.isOverTarget = false;\n triggerClick(e);\n cancel(e);\n }\n state.ignoreEmulatedMouseEvents = false;\n if (shouldStopPropagation) e.stopPropagation();\n }\n }\n };\n let onKeyUp = (e)=>{\n var _state_metaKeyEvents;\n if (state.isPressed && state.target && $f6c31cce2adf654f$var$isValidKeyboardEvent(e, state.target)) {\n var _state_metaKeyEvents1;\n if ($f6c31cce2adf654f$var$shouldPreventDefaultKeyboard((0, $7mdmh$getEventTarget)(e), e.key)) e.preventDefault();\n let target = (0, $7mdmh$getEventTarget)(e);\n let wasPressed = (0, $7mdmh$nodeContains)(state.target, (0, $7mdmh$getEventTarget)(e));\n triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), 'keyboard', wasPressed);\n if (wasPressed) triggerSyntheticClick(e, state.target);\n removeAllGlobalListeners();\n // If a link was triggered with a key other than Enter, open the URL ourselves.\n // This means the link has a role override, and the default browser behavior\n // only applies when using the Enter key.\n if (e.key !== 'Enter' && $f6c31cce2adf654f$var$isHTMLAnchorLink(state.target) && (0, $7mdmh$nodeContains)(state.target, target) && !e[$f6c31cce2adf654f$var$LINK_CLICKED]) {\n // Store a hidden property on the event so we only trigger link click once,\n // even if there are multiple usePress instances attached to the element.\n e[$f6c31cce2adf654f$var$LINK_CLICKED] = true;\n (0, $7mdmh$openLink)(state.target, e, false);\n }\n state.isPressed = false;\n (_state_metaKeyEvents1 = state.metaKeyEvents) === null || _state_metaKeyEvents1 === void 0 ? void 0 : _state_metaKeyEvents1.delete(e.key);\n } else if (e.key === 'Meta' && ((_state_metaKeyEvents = state.metaKeyEvents) === null || _state_metaKeyEvents === void 0 ? void 0 : _state_metaKeyEvents.size)) {\n var _state_target;\n // If we recorded keydown events that occurred while the Meta key was pressed,\n // and those haven't received keyup events already, fire keyup events ourselves.\n // See comment above for more info about the macOS bug causing this.\n let events = state.metaKeyEvents;\n state.metaKeyEvents = undefined;\n for (let event of events.values())(_state_target = state.target) === null || _state_target === void 0 ? void 0 : _state_target.dispatchEvent(new KeyboardEvent('keyup', event));\n }\n };\n if (typeof PointerEvent !== 'undefined') {\n pressProps.onPointerDown = (e)=>{\n // Only handle left clicks, and ignore events that bubbled through portals.\n if (e.button !== 0 || !(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n // iOS safari fires pointer events from VoiceOver with incorrect coordinates/target.\n // Ignore and let the onClick handler take care of it instead.\n // https://bugs.webkit.org/show_bug.cgi?id=222627\n // https://bugs.webkit.org/show_bug.cgi?id=223202\n if ((0, $7mdmh$isVirtualPointerEvent)(e.nativeEvent)) {\n state.pointerType = 'virtual';\n return;\n }\n state.pointerType = e.pointerType;\n let shouldStopPropagation = true;\n if (!state.isPressed) {\n state.isPressed = true;\n state.isOverTarget = true;\n state.activePointerId = e.pointerId;\n state.target = e.currentTarget;\n if (!allowTextSelectionOnPress) (0, $14c0b72509d70225$export$16a4697467175487)(state.target);\n shouldStopPropagation = triggerPressStart(e, state.pointerType);\n // Release pointer capture so that touch interactions can leave the original target.\n // This enables onPointerLeave and onPointerEnter to fire.\n let target = (0, $7mdmh$getEventTarget)(e.nativeEvent);\n if ('releasePointerCapture' in target) target.releasePointerCapture(e.pointerId);\n addGlobalListener((0, $7mdmh$getOwnerDocument)(e.currentTarget), 'pointerup', onPointerUp, false);\n addGlobalListener((0, $7mdmh$getOwnerDocument)(e.currentTarget), 'pointercancel', onPointerCancel, false);\n }\n if (shouldStopPropagation) e.stopPropagation();\n };\n pressProps.onMouseDown = (e)=>{\n if (!(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n if (e.button === 0) {\n if (preventFocusOnPress) {\n let dispose = (0, $8a9cb279dc87e130$export$cabe61c495ee3649)(e.target);\n if (dispose) state.disposables.push(dispose);\n }\n e.stopPropagation();\n }\n };\n pressProps.onPointerUp = (e)=>{\n // iOS fires pointerup with zero width and height, so check the pointerType recorded during pointerdown.\n if (!(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent)) || state.pointerType === 'virtual') return;\n // Only handle left clicks. If isPressed is true, delay until onClick.\n if (e.button === 0 && !state.isPressed) triggerPressUp(e, state.pointerType || e.pointerType);\n };\n pressProps.onPointerEnter = (e)=>{\n if (e.pointerId === state.activePointerId && state.target && !state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = true;\n triggerPressStart($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType);\n }\n };\n pressProps.onPointerLeave = (e)=>{\n if (e.pointerId === state.activePointerId && state.target && state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = false;\n triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType, false);\n cancelOnPointerExit(e);\n }\n };\n let onPointerUp = (e)=>{\n if (e.pointerId === state.activePointerId && state.isPressed && e.button === 0 && state.target) {\n if ((0, $7mdmh$nodeContains)(state.target, (0, $7mdmh$getEventTarget)(e)) && state.pointerType != null) {\n // Wait for onClick to fire onPress. This avoids browser issues when the DOM\n // is mutated between onPointerUp and onClick, and is more compatible with third party libraries.\n // https://github.com/adobe/react-spectrum/issues/1513\n // https://issues.chromium.org/issues/40732224\n // However, iOS and Android do not focus or fire onClick after a long press.\n // We work around this by triggering a click ourselves after a timeout.\n // This timeout is canceled during the click event in case the real one fires first.\n // The timeout must be at least 32ms, because Safari on iOS delays the click event on\n // non-form elements without certain ARIA roles (for hover emulation).\n // https://github.com/WebKit/WebKit/blob/dccfae42bb29bd4bdef052e469f604a9387241c0/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm#L875-L892\n let clicked = false;\n let timeout = setTimeout(()=>{\n if (state.isPressed && state.target instanceof HTMLElement) {\n if (clicked) cancel(e);\n else {\n (0, $7mdmh$focusWithoutScrolling)(state.target);\n state.target.click();\n }\n }\n }, 80);\n // Use a capturing listener to track if a click occurred.\n // If stopPropagation is called it may never reach our handler.\n addGlobalListener(e.currentTarget, 'click', ()=>clicked = true, true);\n state.disposables.push(()=>clearTimeout(timeout));\n } else cancel(e);\n // Ignore subsequent onPointerLeave event before onClick on touch devices.\n state.isOverTarget = false;\n }\n };\n let onPointerCancel = (e)=>{\n cancel(e);\n };\n pressProps.onDragStart = (e)=>{\n if (!(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n // Safari does not call onPointerCancel when a drag starts, whereas Chrome and Firefox do.\n cancel(e);\n };\n } else if (process.env.NODE_ENV === 'test') {\n // NOTE: this fallback branch is entirely used by unit tests.\n // All browsers now support pointer events, but JSDOM still does not.\n pressProps.onMouseDown = (e)=>{\n // Only handle left clicks\n if (e.button !== 0 || !(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n if (state.ignoreEmulatedMouseEvents) {\n e.stopPropagation();\n return;\n }\n state.isPressed = true;\n state.isOverTarget = true;\n state.target = e.currentTarget;\n state.pointerType = (0, $7mdmh$isVirtualClick)(e.nativeEvent) ? 'virtual' : 'mouse';\n // Flush sync so that focus moved during react re-renders occurs before we yield back to the browser.\n let shouldStopPropagation = (0, $7mdmh$flushSync)(()=>triggerPressStart(e, state.pointerType));\n if (shouldStopPropagation) e.stopPropagation();\n if (preventFocusOnPress) {\n let dispose = (0, $8a9cb279dc87e130$export$cabe61c495ee3649)(e.target);\n if (dispose) state.disposables.push(dispose);\n }\n addGlobalListener((0, $7mdmh$getOwnerDocument)(e.currentTarget), 'mouseup', onMouseUp, false);\n };\n pressProps.onMouseEnter = (e)=>{\n if (!(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n let shouldStopPropagation = true;\n if (state.isPressed && !state.ignoreEmulatedMouseEvents && state.pointerType != null) {\n state.isOverTarget = true;\n shouldStopPropagation = triggerPressStart(e, state.pointerType);\n }\n if (shouldStopPropagation) e.stopPropagation();\n };\n pressProps.onMouseLeave = (e)=>{\n if (!(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n let shouldStopPropagation = true;\n if (state.isPressed && !state.ignoreEmulatedMouseEvents && state.pointerType != null) {\n state.isOverTarget = false;\n shouldStopPropagation = triggerPressEnd(e, state.pointerType, false);\n cancelOnPointerExit(e);\n }\n if (shouldStopPropagation) e.stopPropagation();\n };\n pressProps.onMouseUp = (e)=>{\n if (!(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n if (!state.ignoreEmulatedMouseEvents && e.button === 0 && !state.isPressed) triggerPressUp(e, state.pointerType || 'mouse');\n };\n let onMouseUp = (e)=>{\n // Only handle left clicks\n if (e.button !== 0) return;\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n return;\n }\n if (state.target && state.target.contains(e.target) && state.pointerType != null) ;\n else cancel(e);\n state.isOverTarget = false;\n };\n pressProps.onTouchStart = (e)=>{\n if (!(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n let touch = $f6c31cce2adf654f$var$getTouchFromEvent(e.nativeEvent);\n if (!touch) return;\n state.activePointerId = touch.identifier;\n state.ignoreEmulatedMouseEvents = true;\n state.isOverTarget = true;\n state.isPressed = true;\n state.target = e.currentTarget;\n state.pointerType = 'touch';\n if (!allowTextSelectionOnPress) (0, $14c0b72509d70225$export$16a4697467175487)(state.target);\n let shouldStopPropagation = triggerPressStart($f6c31cce2adf654f$var$createTouchEvent(state.target, e), state.pointerType);\n if (shouldStopPropagation) e.stopPropagation();\n addGlobalListener((0, $7mdmh$getOwnerWindow)(e.currentTarget), 'scroll', onScroll, true);\n };\n pressProps.onTouchMove = (e)=>{\n if (!(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n if (!state.isPressed) {\n e.stopPropagation();\n return;\n }\n let touch = $f6c31cce2adf654f$var$getTouchById(e.nativeEvent, state.activePointerId);\n let shouldStopPropagation = true;\n if (touch && $f6c31cce2adf654f$var$isOverTarget(touch, e.currentTarget)) {\n if (!state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = true;\n shouldStopPropagation = triggerPressStart($f6c31cce2adf654f$var$createTouchEvent(state.target, e), state.pointerType);\n }\n } else if (state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = false;\n shouldStopPropagation = triggerPressEnd($f6c31cce2adf654f$var$createTouchEvent(state.target, e), state.pointerType, false);\n cancelOnPointerExit($f6c31cce2adf654f$var$createTouchEvent(state.target, e));\n }\n if (shouldStopPropagation) e.stopPropagation();\n };\n pressProps.onTouchEnd = (e)=>{\n if (!(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n if (!state.isPressed) {\n e.stopPropagation();\n return;\n }\n let touch = $f6c31cce2adf654f$var$getTouchById(e.nativeEvent, state.activePointerId);\n let shouldStopPropagation = true;\n if (touch && $f6c31cce2adf654f$var$isOverTarget(touch, e.currentTarget) && state.pointerType != null) {\n triggerPressUp($f6c31cce2adf654f$var$createTouchEvent(state.target, e), state.pointerType);\n shouldStopPropagation = triggerPressEnd($f6c31cce2adf654f$var$createTouchEvent(state.target, e), state.pointerType);\n triggerSyntheticClick(e.nativeEvent, state.target);\n } else if (state.isOverTarget && state.pointerType != null) shouldStopPropagation = triggerPressEnd($f6c31cce2adf654f$var$createTouchEvent(state.target, e), state.pointerType, false);\n if (shouldStopPropagation) e.stopPropagation();\n state.isPressed = false;\n state.activePointerId = null;\n state.isOverTarget = false;\n state.ignoreEmulatedMouseEvents = true;\n if (state.target && !allowTextSelectionOnPress) (0, $14c0b72509d70225$export$b0d6fa1ab32e3295)(state.target);\n removeAllGlobalListeners();\n };\n pressProps.onTouchCancel = (e)=>{\n if (!(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n e.stopPropagation();\n if (state.isPressed) cancel($f6c31cce2adf654f$var$createTouchEvent(state.target, e));\n };\n let onScroll = (e)=>{\n if (state.isPressed && (0, $7mdmh$nodeContains)((0, $7mdmh$getEventTarget)(e), state.target)) cancel({\n currentTarget: state.target,\n shiftKey: false,\n ctrlKey: false,\n metaKey: false,\n altKey: false\n });\n };\n pressProps.onDragStart = (e)=>{\n if (!(0, $7mdmh$nodeContains)(e.currentTarget, (0, $7mdmh$getEventTarget)(e.nativeEvent))) return;\n cancel(e);\n };\n }\n return pressProps;\n }, [\n addGlobalListener,\n isDisabled,\n preventFocusOnPress,\n removeAllGlobalListeners,\n allowTextSelectionOnPress,\n cancel,\n cancelOnPointerExit,\n triggerPressEnd,\n triggerPressStart,\n triggerPressUp,\n triggerClick,\n triggerSyntheticClick\n ]);\n // Avoid onClick delay for double tap to zoom by default.\n (0, $7mdmh$useEffect)(()=>{\n if (!domRef || process.env.NODE_ENV === 'test') return;\n const ownerDocument = (0, $7mdmh$getOwnerDocument)(domRef.current);\n if (!ownerDocument || !ownerDocument.head || ownerDocument.getElementById($f6c31cce2adf654f$var$STYLE_ID)) return;\n const style = ownerDocument.createElement('style');\n style.id = $f6c31cce2adf654f$var$STYLE_ID;\n // touchAction: 'manipulation' is supposed to be equivalent, but in\n // Safari it causes onPointerCancel not to fire on scroll.\n // https://bugs.webkit.org/show_bug.cgi?id=240917\n style.textContent = `\n@layer {\n [${$f6c31cce2adf654f$var$PRESSABLE_ATTRIBUTE}] {\n touch-action: pan-x pan-y pinch-zoom;\n }\n}\n `.trim();\n ownerDocument.head.prepend(style);\n }, [\n domRef\n ]);\n // Remove user-select: none in case component unmounts immediately after pressStart\n (0, $7mdmh$useEffect)(()=>{\n let state = ref.current;\n return ()=>{\n var _state_target;\n if (!allowTextSelectionOnPress) (0, $14c0b72509d70225$export$b0d6fa1ab32e3295)((_state_target = state.target) !== null && _state_target !== void 0 ? _state_target : undefined);\n for (let dispose of state.disposables)dispose();\n state.disposables = [];\n };\n }, [\n allowTextSelectionOnPress\n ]);\n return {\n isPressed: isPressedProp || isPressed,\n pressProps: (0, $7mdmh$mergeProps)(domProps, pressProps, {\n [$f6c31cce2adf654f$var$PRESSABLE_ATTRIBUTE]: true\n })\n };\n}\nfunction $f6c31cce2adf654f$var$isHTMLAnchorLink(target) {\n return target.tagName === 'A' && target.hasAttribute('href');\n}\nfunction $f6c31cce2adf654f$var$isValidKeyboardEvent(event, currentTarget) {\n const { key: key, code: code } = event;\n const element = currentTarget;\n const role = element.getAttribute('role');\n // Accessibility for keyboards. Space and Enter only.\n // \"Spacebar\" is for IE 11\n return (key === 'Enter' || key === ' ' || key === 'Spacebar' || code === 'Space') && !(element instanceof (0, $7mdmh$getOwnerWindow)(element).HTMLInputElement && !$f6c31cce2adf654f$var$isValidInputKey(element, key) || element instanceof (0, $7mdmh$getOwnerWindow)(element).HTMLTextAreaElement || element.isContentEditable) && // Links should only trigger with Enter key\n !((role === 'link' || !role && $f6c31cce2adf654f$var$isHTMLAnchorLink(element)) && key !== 'Enter');\n}\nfunction $f6c31cce2adf654f$var$getTouchFromEvent(event) {\n const { targetTouches: targetTouches } = event;\n if (targetTouches.length > 0) return targetTouches[0];\n return null;\n}\nfunction $f6c31cce2adf654f$var$getTouchById(event, pointerId) {\n const changedTouches = event.changedTouches;\n for(let i = 0; i < changedTouches.length; i++){\n const touch = changedTouches[i];\n if (touch.identifier === pointerId) return touch;\n }\n return null;\n}\nfunction $f6c31cce2adf654f$var$createTouchEvent(target, e) {\n let clientX = 0;\n let clientY = 0;\n if (e.targetTouches && e.targetTouches.length === 1) {\n clientX = e.targetTouches[0].clientX;\n clientY = e.targetTouches[0].clientY;\n }\n return {\n currentTarget: target,\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey,\n clientX: clientX,\n clientY: clientY\n };\n}\nfunction $f6c31cce2adf654f$var$createEvent(target, e) {\n let clientX = e.clientX;\n let clientY = e.clientY;\n return {\n currentTarget: target,\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey,\n clientX: clientX,\n clientY: clientY\n };\n}\nfunction $f6c31cce2adf654f$var$getPointClientRect(point) {\n let offsetX = 0;\n let offsetY = 0;\n if (point.width !== undefined) offsetX = point.width / 2;\n else if (point.radiusX !== undefined) offsetX = point.radiusX;\n if (point.height !== undefined) offsetY = point.height / 2;\n else if (point.radiusY !== undefined) offsetY = point.radiusY;\n return {\n top: point.clientY - offsetY,\n right: point.clientX + offsetX,\n bottom: point.clientY + offsetY,\n left: point.clientX - offsetX\n };\n}\nfunction $f6c31cce2adf654f$var$areRectanglesOverlapping(a, b) {\n // check if they cannot overlap on x axis\n if (a.left > b.right || b.left > a.right) return false;\n // check if they cannot overlap on y axis\n if (a.top > b.bottom || b.top > a.bottom) return false;\n return true;\n}\nfunction $f6c31cce2adf654f$var$isOverTarget(point, target) {\n let rect = target.getBoundingClientRect();\n let pointRect = $f6c31cce2adf654f$var$getPointClientRect(point);\n return $f6c31cce2adf654f$var$areRectanglesOverlapping(rect, pointRect);\n}\nfunction $f6c31cce2adf654f$var$shouldPreventDefaultUp(target) {\n if (target instanceof HTMLInputElement) return false;\n if (target instanceof HTMLButtonElement) return target.type !== 'submit' && target.type !== 'reset';\n if ($f6c31cce2adf654f$var$isHTMLAnchorLink(target)) return false;\n return true;\n}\nfunction $f6c31cce2adf654f$var$shouldPreventDefaultKeyboard(target, key) {\n if (target instanceof HTMLInputElement) return !$f6c31cce2adf654f$var$isValidInputKey(target, key);\n return $f6c31cce2adf654f$var$shouldPreventDefaultUp(target);\n}\nconst $f6c31cce2adf654f$var$nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\nfunction $f6c31cce2adf654f$var$isValidInputKey(target, key) {\n // Only space should toggle checkboxes and radios, not enter.\n return target.type === 'checkbox' || target.type === 'radio' ? key === ' ' : $f6c31cce2adf654f$var$nonTextInputTypes.has(target.type);\n}\n\n\nexport {$f6c31cce2adf654f$export$45712eceda6fad21 as usePress};\n//# sourceMappingURL=usePress.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 {getInteractionModality as $507fabe10e71c6fb$export$630ff653c5ada6a9} from \"./useFocusVisible.mjs\";\nimport {getOwnerDocument as $k50bp$getOwnerDocument, getActiveElement as $k50bp$getActiveElement, runAfterTransition as $k50bp$runAfterTransition, focusWithoutScrolling as $k50bp$focusWithoutScrolling} 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 */ \n\nfunction $3ad3f6e1647bc98d$export$80f3e147d781571c(element) {\n // If the user is interacting with a virtual cursor, e.g. screen reader, then\n // wait until after any animated transitions that are currently occurring on\n // the page before shifting focus. This avoids issues with VoiceOver on iOS\n // causing the page to scroll when moving focus if the element is transitioning\n // from off the screen.\n const ownerDocument = (0, $k50bp$getOwnerDocument)(element);\n const activeElement = (0, $k50bp$getActiveElement)(ownerDocument);\n if ((0, $507fabe10e71c6fb$export$630ff653c5ada6a9)() === 'virtual') {\n let lastFocusedElement = activeElement;\n (0, $k50bp$runAfterTransition)(()=>{\n // If focus did not move and the element is still in the document, focus it.\n if ((0, $k50bp$getActiveElement)(ownerDocument) === lastFocusedElement && element.isConnected) (0, $k50bp$focusWithoutScrolling)(element);\n });\n } else (0, $k50bp$focusWithoutScrolling)(element);\n}\n\n\nexport {$3ad3f6e1647bc98d$export$80f3e147d781571c as focusSafely};\n//# sourceMappingURL=focusSafely.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","/*\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 $93925083ecbb358c$export$48d1ea6320830260(handler) {\n if (!handler) return undefined;\n let shouldStopPropagation = true;\n return (e)=>{\n let event = {\n ...e,\n preventDefault () {\n e.preventDefault();\n },\n isDefaultPrevented () {\n return e.isDefaultPrevented();\n },\n stopPropagation () {\n if (shouldStopPropagation && process.env.NODE_ENV !== 'production') console.error('stopPropagation is now the default behavior for events in React Spectrum. You can use continuePropagation() to revert this behavior.');\n else shouldStopPropagation = true;\n },\n continuePropagation () {\n shouldStopPropagation = false;\n },\n isPropagationStopped () {\n return shouldStopPropagation;\n }\n };\n handler(event);\n if (shouldStopPropagation) e.stopPropagation();\n };\n}\n\n\nexport {$93925083ecbb358c$export$48d1ea6320830260 as createEventHandler};\n//# sourceMappingURL=createEventHandler.module.js.map\n","import {createEventHandler as $93925083ecbb358c$export$48d1ea6320830260} from \"./createEventHandler.mjs\";\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 $46d819fcbaf35654$export$8f71654801c2f7cd(props) {\n return {\n keyboardProps: props.isDisabled ? {} : {\n onKeyDown: (0, $93925083ecbb358c$export$48d1ea6320830260)(props.onKeyDown),\n onKeyUp: (0, $93925083ecbb358c$export$48d1ea6320830260)(props.onKeyUp)\n }\n };\n}\n\n\nexport {$46d819fcbaf35654$export$8f71654801c2f7cd as useKeyboard};\n//# sourceMappingURL=useKeyboard.module.js.map\n","import {focusSafely as $3ad3f6e1647bc98d$export$80f3e147d781571c} from \"./focusSafely.mjs\";\nimport {useFocus as $a1ea59d68270f0dd$export$f8168d8dd8fd66e6} from \"./useFocus.mjs\";\nimport {useKeyboard as $46d819fcbaf35654$export$8f71654801c2f7cd} from \"./useKeyboard.mjs\";\nimport {useSyncRef as $fcPuG$useSyncRef, useObjectRef as $fcPuG$useObjectRef, mergeProps as $fcPuG$mergeProps, getOwnerWindow as $fcPuG$getOwnerWindow, isFocusable as $fcPuG$isFocusable, mergeRefs as $fcPuG$mergeRefs} from \"@react-aria/utils\";\nimport $fcPuG$react, {useContext as $fcPuG$useContext, useRef as $fcPuG$useRef, useEffect as $fcPuG$useEffect, forwardRef as $fcPuG$forwardRef} 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\n\n\n\nlet $f645667febf57a63$export$f9762fab77588ecb = /*#__PURE__*/ (0, $fcPuG$react).createContext(null);\nfunction $f645667febf57a63$var$useFocusableContext(ref) {\n let context = (0, $fcPuG$useContext)($f645667febf57a63$export$f9762fab77588ecb) || {};\n (0, $fcPuG$useSyncRef)(context, ref);\n // eslint-disable-next-line\n let { ref: _, ...otherProps } = context;\n return otherProps;\n}\nconst $f645667febf57a63$export$13f3202a3e5ddd5 = /*#__PURE__*/ (0, $fcPuG$react).forwardRef(function FocusableProvider(props, ref) {\n let { children: children, ...otherProps } = props;\n let objRef = (0, $fcPuG$useObjectRef)(ref);\n let context = {\n ...otherProps,\n ref: objRef\n };\n return /*#__PURE__*/ (0, $fcPuG$react).createElement($f645667febf57a63$export$f9762fab77588ecb.Provider, {\n value: context\n }, children);\n});\nfunction $f645667febf57a63$export$4c014de7c8940b4c(props, domRef) {\n let { focusProps: focusProps } = (0, $a1ea59d68270f0dd$export$f8168d8dd8fd66e6)(props);\n let { keyboardProps: keyboardProps } = (0, $46d819fcbaf35654$export$8f71654801c2f7cd)(props);\n let interactions = (0, $fcPuG$mergeProps)(focusProps, keyboardProps);\n let domProps = $f645667febf57a63$var$useFocusableContext(domRef);\n let interactionProps = props.isDisabled ? {} : domProps;\n let autoFocusRef = (0, $fcPuG$useRef)(props.autoFocus);\n (0, $fcPuG$useEffect)(()=>{\n if (autoFocusRef.current && domRef.current) (0, $3ad3f6e1647bc98d$export$80f3e147d781571c)(domRef.current);\n autoFocusRef.current = false;\n }, [\n domRef\n ]);\n // Always set a tabIndex so that Safari allows focusing native buttons and inputs.\n let tabIndex = props.excludeFromTabOrder ? -1 : 0;\n if (props.isDisabled) tabIndex = undefined;\n return {\n focusableProps: (0, $fcPuG$mergeProps)({\n ...interactions,\n tabIndex: tabIndex\n }, interactionProps)\n };\n}\nconst $f645667febf57a63$export$35a3bebf7ef2d934 = /*#__PURE__*/ (0, $fcPuG$forwardRef)(({ children: children, ...props }, ref)=>{\n ref = (0, $fcPuG$useObjectRef)(ref);\n let { focusableProps: focusableProps } = $f645667febf57a63$export$4c014de7c8940b4c(props, ref);\n let child = (0, $fcPuG$react).Children.only(children);\n (0, $fcPuG$useEffect)(()=>{\n if (process.env.NODE_ENV === 'production') return;\n let el = ref.current;\n if (!el || !(el instanceof (0, $fcPuG$getOwnerWindow)(el).Element)) {\n console.error('<Focusable> child must forward its ref to a DOM element.');\n return;\n }\n if (!props.isDisabled && !(0, $fcPuG$isFocusable)(el)) {\n console.warn('<Focusable> child must be focusable. Please ensure the tabIndex prop is passed through.');\n return;\n }\n if (el.localName !== 'button' && el.localName !== 'input' && el.localName !== 'select' && el.localName !== 'textarea' && el.localName !== 'a' && el.localName !== 'area' && el.localName !== 'summary' && el.localName !== 'img' && el.localName !== 'svg') {\n let role = el.getAttribute('role');\n if (!role) console.warn('<Focusable> child must have an interactive ARIA role.');\n else if (// https://w3c.github.io/aria/#widget_roles\n role !== 'application' && role !== 'button' && role !== 'checkbox' && role !== 'combobox' && role !== 'gridcell' && role !== 'link' && role !== 'menuitem' && role !== 'menuitemcheckbox' && role !== 'menuitemradio' && role !== 'option' && role !== 'radio' && role !== 'searchbox' && role !== 'separator' && role !== 'slider' && role !== 'spinbutton' && role !== 'switch' && role !== 'tab' && role !== 'tabpanel' && role !== 'textbox' && role !== 'treeitem' && // aria-describedby is also announced on these roles\n role !== 'img' && role !== 'meter' && role !== 'progressbar') console.warn(`<Focusable> child must have an interactive ARIA role. Got \"${role}\".`);\n }\n }, [\n ref,\n props.isDisabled\n ]);\n // @ts-ignore\n let childRef = parseInt((0, $fcPuG$react).version, 10) < 19 ? child.ref : child.props.ref;\n return /*#__PURE__*/ (0, $fcPuG$react).cloneElement(child, {\n ...(0, $fcPuG$mergeProps)(focusableProps, child.props),\n // @ts-ignore\n ref: (0, $fcPuG$mergeRefs)(childRef, ref)\n });\n});\n\n\nexport {$f645667febf57a63$export$f9762fab77588ecb as FocusableContext, $f645667febf57a63$export$13f3202a3e5ddd5 as FocusableProvider, $f645667febf57a63$export$4c014de7c8940b4c as useFocusable, $f645667febf57a63$export$35a3bebf7ef2d934 as Focusable};\n//# sourceMappingURL=useFocusable.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","// src/utils.ts\nimport { forwardRef as baseForwardRef } from \"react\";\nfunction forwardRef(component) {\n return baseForwardRef(component);\n}\nvar toIterator = (obj) => {\n return {\n ...obj,\n [Symbol.iterator]: function() {\n const keys = Object.keys(this);\n let index = 0;\n return {\n next: () => {\n if (index >= keys.length) {\n return { done: true };\n }\n const key = keys[index];\n const value = this[key];\n index++;\n return { value: { key, value }, done: false };\n }\n };\n }\n };\n};\nvar mapPropsVariants = (props, variantKeys, removeVariantProps = true) => {\n if (!variantKeys) {\n return [props, {}];\n }\n const picked = variantKeys.reduce((acc, key) => {\n if (key in props) {\n return { ...acc, [key]: props[key] };\n } else {\n return acc;\n }\n }, {});\n if (removeVariantProps) {\n const omitted = Object.keys(props).filter((key) => !variantKeys.includes(key)).reduce((acc, key) => ({ ...acc, [key]: props[key] }), {});\n return [omitted, picked];\n } else {\n return [props, picked];\n }\n};\nvar mapPropsVariantsWithCommon = (originalProps, variantKeys, commonKeys) => {\n const props = Object.keys(originalProps).filter((key) => !variantKeys.includes(key) || (commonKeys == null ? void 0 : commonKeys.includes(key))).reduce((acc, key) => ({ ...acc, [key]: originalProps[key] }), {});\n const variants = variantKeys.reduce(\n (acc, key) => ({ ...acc, [key]: originalProps[key] }),\n {}\n );\n return [props, variants];\n};\nvar isHeroUIEl = (component) => {\n var _a, _b, _c;\n return !!((_c = (_b = (_a = component.type) == null ? void 0 : _a.render) == null ? void 0 : _b.displayName) == null ? void 0 : _c.includes(\"HeroUI\"));\n};\n\nexport {\n forwardRef,\n toIterator,\n mapPropsVariants,\n mapPropsVariantsWithCommon,\n isHeroUIEl\n};\n","// src/utils/variants.ts\nvar solid = {\n default: \"bg-default text-default-foreground\",\n primary: \"bg-primary text-primary-foreground\",\n secondary: \"bg-secondary text-secondary-foreground\",\n success: \"bg-success text-success-foreground\",\n warning: \"bg-warning text-warning-foreground\",\n danger: \"bg-danger text-danger-foreground\",\n foreground: \"bg-foreground text-background\"\n};\nvar shadow = {\n default: \"shadow-lg shadow-default/50 bg-default text-default-foreground\",\n primary: \"shadow-lg shadow-primary/40 bg-primary text-primary-foreground\",\n secondary: \"shadow-lg shadow-secondary/40 bg-secondary text-secondary-foreground\",\n success: \"shadow-lg shadow-success/40 bg-success text-success-foreground\",\n warning: \"shadow-lg shadow-warning/40 bg-warning text-warning-foreground\",\n danger: \"shadow-lg shadow-danger/40 bg-danger text-danger-foreground\",\n foreground: \"shadow-lg shadow-foreground/40 bg-foreground text-background\"\n};\nvar bordered = {\n default: \"bg-transparent border-default text-foreground\",\n primary: \"bg-transparent border-primary text-primary\",\n secondary: \"bg-transparent border-secondary text-secondary\",\n success: \"bg-transparent border-success text-success\",\n warning: \"bg-transparent border-warning text-warning\",\n danger: \"bg-transparent border-danger text-danger\",\n foreground: \"bg-transparent border-foreground text-foreground\"\n};\nvar flat = {\n default: \"bg-default/40 text-default-700\",\n primary: \"bg-primary/20 text-primary-600\",\n secondary: \"bg-secondary/20 text-secondary-600\",\n success: \"bg-success/20 text-success-700 dark:text-success\",\n warning: \"bg-warning/20 text-warning-700 dark:text-warning\",\n danger: \"bg-danger/20 text-danger-600 dark:text-danger-500\",\n foreground: \"bg-foreground/10 text-foreground\"\n};\nvar faded = {\n default: \"border-default bg-default-100 text-default-foreground\",\n primary: \"border-default bg-default-100 text-primary\",\n secondary: \"border-default bg-default-100 text-secondary\",\n success: \"border-default bg-default-100 text-success\",\n warning: \"border-default bg-default-100 text-warning\",\n danger: \"border-default bg-default-100 text-danger\",\n foreground: \"border-default bg-default-100 text-foreground\"\n};\nvar light = {\n default: \"bg-transparent text-default-foreground\",\n primary: \"bg-transparent text-primary\",\n secondary: \"bg-transparent text-secondary\",\n success: \"bg-transparent text-success\",\n warning: \"bg-transparent text-warning\",\n danger: \"bg-transparent text-danger\",\n foreground: \"bg-transparent text-foreground\"\n};\nvar ghost = {\n default: \"border-default text-default-foreground\",\n primary: \"border-primary text-primary\",\n secondary: \"border-secondary text-secondary\",\n success: \"border-success text-success\",\n warning: \"border-warning text-warning\",\n danger: \"border-danger text-danger\",\n foreground: \"border-foreground text-foreground hover:!bg-foreground\"\n};\nvar colorVariants = {\n solid,\n shadow,\n bordered,\n flat,\n faded,\n light,\n ghost\n};\n\nexport {\n colorVariants\n};\n","// src/utilities/animation.ts\nvar animation_default = {\n /** Animation Utilities */\n \".spinner-bar-animation\": {\n \"animation-delay\": \"calc(-1.2s + (0.1s * var(--bar-index)))\",\n transform: \"rotate(calc(30deg * var(--bar-index)))translate(140%)\"\n },\n \".spinner-dot-animation\": {\n \"animation-delay\": \"calc(250ms * var(--dot-index))\"\n },\n \".spinner-dot-blink-animation\": {\n \"animation-delay\": \"calc(200ms * var(--dot-index))\"\n }\n};\n\nexport {\n animation_default\n};\n","// src/utilities/custom.ts\nvar custom_default = {\n /**\n * Custom utilities\n */\n \".leading-inherit\": {\n \"line-height\": \"inherit\"\n },\n \".bg-img-inherit\": {\n \"background-image\": \"inherit\"\n },\n \".bg-clip-inherit\": {\n \"background-clip\": \"inherit\"\n },\n \".text-fill-inherit\": {\n \"-webkit-text-fill-color\": \"inherit\"\n },\n \".tap-highlight-transparent\": {\n \"-webkit-tap-highlight-color\": \"transparent\"\n },\n \".input-search-cancel-button-none\": {\n \"&::-webkit-search-cancel-button\": {\n \"-webkit-appearance\": \"none\"\n }\n }\n};\n\nexport {\n custom_default\n};\n","// src/utilities/scrollbar-hide.ts\nvar scrollbar_hide_default = {\n /**\n * Scroll Hide\n */\n \".scrollbar-hide\": {\n /* IE and Edge */\n \"-ms-overflow-style\": \"none\",\n /* Firefox */\n \"scrollbar-width\": \"none\",\n /* Safari and Chrome */\n \"&::-webkit-scrollbar\": {\n display: \"none\"\n }\n },\n \".scrollbar-default\": {\n /* IE and Edge */\n \"-ms-overflow-style\": \"auto\",\n /* Firefox */\n \"scrollbar-width\": \"auto\",\n /* Safari and Chrome */\n \"&::-webkit-scrollbar\": {\n display: \"block\"\n }\n }\n};\n\nexport {\n scrollbar_hide_default\n};\n","// src/utilities/text.ts\nvar text_default = {\n /**\n * Text utilities\n */\n \".text-tiny\": {\n \"font-size\": \"var(--heroui-font-size-tiny)\",\n \"line-height\": \"var(--heroui-line-height-tiny)\"\n },\n \".text-small\": {\n \"font-size\": \"var(--heroui-font-size-small)\",\n \"line-height\": \"var(--heroui-line-height-small)\"\n },\n \".text-medium\": {\n \"font-size\": \"var(--heroui-font-size-medium)\",\n \"line-height\": \"var(--heroui-line-height-medium)\"\n },\n \".text-large\": {\n \"font-size\": \"var(--heroui-font-size-large)\",\n \"line-height\": \"var(--heroui-line-height-large)\"\n }\n};\n\nexport {\n text_default\n};\n","// src/utilities/transition.ts\nvar DEFAULT_TRANSITION_DURATION = \"250ms\";\nvar transition_default = {\n /**\n * Transition utilities\n */\n \".transition-background\": {\n \"transition-property\": \"background\",\n \"transition-timing-function\": \"ease\",\n \"transition-duration\": DEFAULT_TRANSITION_DURATION\n },\n \".transition-colors-opacity\": {\n \"transition-property\": \"color, background-color, border-color, text-decoration-color, fill, stroke, opacity\",\n \"transition-timing-function\": \"ease\",\n \"transition-duration\": DEFAULT_TRANSITION_DURATION\n },\n \".transition-width\": {\n \"transition-property\": \"width\",\n \"transition-timing-function\": \"ease\",\n \"transition-duration\": DEFAULT_TRANSITION_DURATION\n },\n \".transition-height\": {\n \"transition-property\": \"height\",\n \"transition-timing-function\": \"ease\",\n \"transition-duration\": DEFAULT_TRANSITION_DURATION\n },\n \".transition-size\": {\n \"transition-property\": \"width, height\",\n \"transition-timing-function\": \"ease\",\n \"transition-duration\": DEFAULT_TRANSITION_DURATION\n },\n \".transition-left\": {\n \"transition-property\": \"left\",\n \"transition-timing-function\": \"ease\",\n \"transition-duration\": DEFAULT_TRANSITION_DURATION\n },\n \".transition-transform-opacity\": {\n \"transition-property\": \"transform, scale, opacity rotate\",\n \"transition-timing-function\": \"ease\",\n \"transition-duration\": DEFAULT_TRANSITION_DURATION\n },\n \".transition-transform-background\": {\n \"transition-property\": \"transform, scale, background\",\n \"transition-timing-function\": \"ease\",\n \"transition-duration\": DEFAULT_TRANSITION_DURATION\n },\n \".transition-transform-colors\": {\n \"transition-property\": \"transform, scale, color, background, background-color, border-color, text-decoration-color, fill, stroke\",\n \"transition-timing-function\": \"ease\",\n \"transition-duration\": DEFAULT_TRANSITION_DURATION\n },\n \".transition-transform-colors-opacity\": {\n \"transition-property\": \"transform, scale, color, background, background-color, border-color, text-decoration-color, fill, stroke, opacity\",\n \"transition-timing-function\": \"ease\",\n \"transition-duration\": DEFAULT_TRANSITION_DURATION\n }\n};\n\nexport {\n DEFAULT_TRANSITION_DURATION,\n transition_default\n};\n","import {\n animation_default\n} from \"./chunk-POSTVCTR.mjs\";\nimport {\n custom_default\n} from \"./chunk-MPVWW3DX.mjs\";\nimport {\n scrollbar_hide_default\n} from \"./chunk-WH6SPIFG.mjs\";\nimport {\n text_default\n} from \"./chunk-RUIUXVZ4.mjs\";\nimport {\n transition_default\n} from \"./chunk-GSRZWDGA.mjs\";\n\n// src/utilities/index.ts\nvar utilities = {\n ...custom_default,\n ...transition_default,\n ...scrollbar_hide_default,\n ...text_default,\n ...animation_default\n};\n\nexport {\n utilities\n};\n","import {\n utilities\n} from \"./chunk-6JJPIEK7.mjs\";\n\n// src/utils/tw-merge-config.ts\nvar COMMON_UNITS = [\"small\", \"medium\", \"large\"];\nvar twMergeConfig = {\n theme: {\n spacing: [\"divider\"],\n radius: COMMON_UNITS\n },\n classGroups: {\n shadow: [{ shadow: COMMON_UNITS }],\n opacity: [{ opacity: [\"disabled\"] }],\n \"font-size\": [{ text: [\"tiny\", ...COMMON_UNITS] }],\n \"border-w\": [{ border: COMMON_UNITS }],\n \"bg-image\": [\n \"bg-stripe-gradient-default\",\n \"bg-stripe-gradient-primary\",\n \"bg-stripe-gradient-secondary\",\n \"bg-stripe-gradient-success\",\n \"bg-stripe-gradient-warning\",\n \"bg-stripe-gradient-danger\"\n ],\n transition: Object.keys(utilities).filter((key) => key.includes(\".transition\")).map((key) => key.replace(\".\", \"\"))\n // remove the dot from the key, .transition-background -> transition-background\n }\n};\n\nexport {\n COMMON_UNITS,\n twMergeConfig\n};\n","var u=e=>e===false?\"false\":e===true?\"true\":e===0?\"0\":e,a=e=>{if(!e||typeof e!=\"object\")return true;for(let r in e)return false;return true},y=(e,r)=>{if(e===r)return true;if(!e||!r)return false;let n=Object.keys(e),t=Object.keys(r);if(n.length!==t.length)return false;for(let s=0;s<n.length;s++){let f=n[s];if(!t.includes(f)||e[f]!==r[f])return false}return true},p=e=>e===true||e===false;function o(e,r){for(let n=0;n<e.length;n++){let t=e[n];Array.isArray(t)?o(t,r):r.push(t);}}function g(e){let r=[];return o(e,r),r}var i=(...e)=>{let r=[];o(e,r);let n=[];for(let t=0;t<r.length;t++)r[t]&&n.push(r[t]);return n},c=(e,r)=>{let n={};for(let t in e){let s=e[t];if(t in r){let f=r[t];Array.isArray(s)||Array.isArray(f)?n[t]=i(f,s):typeof s==\"object\"&&typeof f==\"object\"&&s&&f?n[t]=c(s,f):n[t]=f+\" \"+s;}else n[t]=s;}for(let t in r)t in e||(n[t]=r[t]);return n},l=/\\s+/g,x=e=>!e||typeof e!=\"string\"?e:e.replace(l,\" \").trim();export{u as a,a as b,y as c,p as d,g as e,i as f,c as g,x as h};","const CLASS_PART_SEPARATOR = '-';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n classGroups\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n for (const classGroupId in classGroups) {\n processClassesRecursively(classGroups[classGroupId], classMap, classGroupId, theme);\n }\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst MODIFIER_SEPARATOR = ':';\nconst MODIFIER_SEPARATOR_LENGTH = MODIFIER_SEPARATOR.length;\nconst createParseClassName = config => {\n const {\n prefix,\n experimentalParseClassName\n } = config;\n /**\n * Parse class name into parts.\n *\n * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n */\n let parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let parenDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0 && parenDepth === 0) {\n if (currentCharacter === MODIFIER_SEPARATOR) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + MODIFIER_SEPARATOR_LENGTH;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n } else if (currentCharacter === '(') {\n parenDepth++;\n } else if (currentCharacter === ')') {\n parenDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const baseClassName = stripImportantModifier(baseClassNameWithImportantModifier);\n const hasImportantModifier = baseClassName !== baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (prefix) {\n const fullPrefix = prefix + MODIFIER_SEPARATOR;\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.substring(fullPrefix.length)) : {\n isExternal: true,\n modifiers: [],\n hasImportantModifier: false,\n baseClassName: className,\n maybePostfixModifierPosition: undefined\n };\n }\n if (experimentalParseClassName) {\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => experimentalParseClassName({\n className,\n parseClassName: parseClassNameOriginal\n });\n }\n return parseClassName;\n};\nconst stripImportantModifier = baseClassName => {\n if (baseClassName.endsWith(IMPORTANT_MODIFIER)) {\n return baseClassName.substring(0, baseClassName.length - 1);\n }\n /**\n * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n */\n if (baseClassName.startsWith(IMPORTANT_MODIFIER)) {\n return baseClassName.substring(1);\n }\n return baseClassName;\n};\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst createSortModifiers = config => {\n const orderSensitiveModifiers = Object.fromEntries(config.orderSensitiveModifiers.map(modifier => [modifier, true]));\n const sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isPositionSensitive = modifier[0] === '[' || orderSensitiveModifiers[modifier];\n if (isPositionSensitive) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n };\n return sortModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n sortModifiers: createSortModifiers(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds,\n sortModifiers\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n isExternal,\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n if (isExternal) {\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n let hasPostfixModifier = !!maybePostfixModifierPosition;\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i;\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isFraction = value => fractionRegex.test(value);\nconst isNumber = value => !!value && !Number.isNaN(Number(value));\nconst isInteger = value => !!value && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst isAny = () => true;\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst isAnyNonArbitrary = value => !isArbitraryValue(value) && !isArbitraryVariable(value);\nconst isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever);\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);\nconst isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);\nconst isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, isLabelShadow, isShadow);\nconst isArbitraryVariable = value => arbitraryVariableRegex.test(value);\nconst isArbitraryVariableLength = value => getIsArbitraryVariable(value, isLabelLength);\nconst isArbitraryVariableFamilyName = value => getIsArbitraryVariable(value, isLabelFamilyName);\nconst isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLabelPosition);\nconst isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);\nconst isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);\nconst isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);\n// Helpers\nconst getIsArbitraryValue = (value, testLabel, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {\n const result = arbitraryVariableRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return shouldMatchNoLabel;\n }\n return false;\n};\n// Labels\nconst isLabelPosition = label => label === 'position' || label === 'percentage';\nconst isLabelImage = label => label === 'image' || label === 'url';\nconst isLabelSize = label => label === 'length' || label === 'size' || label === 'bg-size';\nconst isLabelLength = label => label === 'length';\nconst isLabelNumber = label => label === 'number';\nconst isLabelFamilyName = label => label === 'family-name';\nconst isLabelShadow = label => label === 'shadow';\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isAnyNonArbitrary,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isArbitraryVariable,\n isArbitraryVariableFamilyName,\n isArbitraryVariableImage,\n isArbitraryVariableLength,\n isArbitraryVariablePosition,\n isArbitraryVariableShadow,\n isArbitraryVariableSize,\n isFraction,\n isInteger,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n /**\n * Theme getters for theme variable namespaces\n * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n */\n /***/\n const themeColor = fromTheme('color');\n const themeFont = fromTheme('font');\n const themeText = fromTheme('text');\n const themeFontWeight = fromTheme('font-weight');\n const themeTracking = fromTheme('tracking');\n const themeLeading = fromTheme('leading');\n const themeBreakpoint = fromTheme('breakpoint');\n const themeContainer = fromTheme('container');\n const themeSpacing = fromTheme('spacing');\n const themeRadius = fromTheme('radius');\n const themeShadow = fromTheme('shadow');\n const themeInsetShadow = fromTheme('inset-shadow');\n const themeTextShadow = fromTheme('text-shadow');\n const themeDropShadow = fromTheme('drop-shadow');\n const themeBlur = fromTheme('blur');\n const themePerspective = fromTheme('perspective');\n const themeAspect = fromTheme('aspect');\n const themeEase = fromTheme('ease');\n const themeAnimate = fromTheme('animate');\n /**\n * Helpers to avoid repeating the same scales\n *\n * We use functions that create a new array every time they're called instead of static arrays.\n * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n */\n /***/\n const scaleBreak = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const scalePosition = () => ['center', 'top', 'bottom', 'left', 'right', 'top-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-top', 'top-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-top', 'bottom-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-bottom', 'bottom-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-bottom'];\n const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];\n const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const scaleOverscroll = () => ['auto', 'contain', 'none'];\n const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];\n const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()];\n const scaleGridTemplateColsRows = () => [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartAndEnd = () => ['auto', {\n span: ['full', isInteger, isArbitraryVariable, isArbitraryValue]\n }, isInteger, isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartOrEnd = () => [isInteger, 'auto', isArbitraryVariable, isArbitraryValue];\n const scaleGridAutoColsRows = () => ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue];\n const scaleAlignPrimaryAxis = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline', 'center-safe', 'end-safe'];\n const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'];\n const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()];\n const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];\n const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];\n const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {\n position: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleBgRepeat = () => ['no-repeat', {\n repeat: ['', 'x', 'y', 'space', 'round']\n }];\n const scaleBgSize = () => ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize, {\n size: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];\n const scaleRadius = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue];\n const scaleBorderWidth = () => ['', isNumber, isArbitraryVariableLength, isArbitraryLength];\n const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'];\n const scaleBlendMode = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];\n const scaleBlur = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue];\n const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()];\n return {\n cacheSize: 500,\n theme: {\n animate: ['spin', 'ping', 'pulse', 'bounce'],\n aspect: ['video'],\n blur: [isTshirtSize],\n breakpoint: [isTshirtSize],\n color: [isAny],\n container: [isTshirtSize],\n 'drop-shadow': [isTshirtSize],\n ease: ['in', 'out', 'in-out'],\n font: [isAnyNonArbitrary],\n 'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'],\n 'inset-shadow': [isTshirtSize],\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n radius: [isTshirtSize],\n shadow: [isTshirtSize],\n spacing: ['px', isNumber],\n text: [isTshirtSize],\n 'text-shadow': [isTshirtSize],\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest']\n },\n classGroups: {\n // --------------\n // --- Layout ---\n // --------------\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n * @deprecated since Tailwind CSS v4.0.0\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': scaleBreak()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': scaleBreak()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Screen Reader Only\n * @see https://tailwindcss.com/docs/display#screen-reader-only\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: scalePositionWithArbitrary()\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: scaleOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': scaleOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': scaleOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: scaleOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': scaleOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': scaleOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: scaleInset()\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': scaleInset()\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': scaleInset()\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: scaleInset()\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: scaleInset()\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: scaleInset()\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: scaleInset()\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: scaleInset()\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: scaleInset()\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------------\n // --- Flexbox and Grid ---\n // ------------------------\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: [isFraction, 'full', 'auto', themeContainer, ...scaleUnambiguousSpacing()]\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['nowrap', 'wrap', 'wrap-reverse']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': scaleGridAutoColsRows()\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': scaleGridAutoColsRows()\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: scaleUnambiguousSpacing()\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': scaleUnambiguousSpacing()\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': scaleUnambiguousSpacing()\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: [...scaleAlignPrimaryAxis(), 'normal']\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': [...scaleAlignSecondaryAxis(), 'normal']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...scaleAlignPrimaryAxis()]\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: [...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', ...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': scaleAlignPrimaryAxis()\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': [...scaleAlignSecondaryAxis(), 'baseline']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: scaleUnambiguousSpacing()\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: scaleUnambiguousSpacing()\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: scaleUnambiguousSpacing()\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: scaleMargin()\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: scaleMargin()\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: scaleMargin()\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: scaleMargin()\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: scaleMargin()\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: scaleMargin()\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: scaleMargin()\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: scaleMargin()\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: scaleMargin()\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x': [{\n 'space-x': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y': [{\n 'space-y': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y-reverse': ['space-y-reverse'],\n // --------------\n // --- Sizing ---\n // --------------\n /**\n * Size\n * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n */\n size: [{\n size: scaleSizing()\n }],\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: [themeContainer, 'screen', ...scaleSizing()]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'none', ...scaleSizing()]\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n {\n screen: [themeBreakpoint]\n }, ...scaleSizing()]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: ['screen', 'lh', ...scaleSizing()]\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': ['screen', 'lh', 'none', ...scaleSizing()]\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': ['screen', 'lh', ...scaleSizing()]\n }],\n // ------------------\n // --- Typography ---\n // ------------------\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Font Stretch\n * @see https://tailwindcss.com/docs/font-stretch\n */\n 'font-stretch': [{\n 'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: [/** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n themeLeading, ...scaleUnambiguousSpacing()]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://v3.tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: scaleColor()\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: scaleColor()\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...scaleLineStyle(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: scaleColor()\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: scaleUnambiguousSpacing()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Overflow Wrap\n * @see https://tailwindcss.com/docs/overflow-wrap\n */\n wrap: [{\n wrap: ['break-word', 'anywhere', 'normal']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // -------------------\n // --- Backgrounds ---\n // -------------------\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: scaleBgPosition()\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: scaleBgRepeat()\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: scaleBgSize()\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n linear: [{\n to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isInteger, isArbitraryVariable, isArbitraryValue],\n radial: ['', isArbitraryVariable, isArbitraryValue],\n conic: [isInteger, isArbitraryVariable, isArbitraryValue]\n }, isArbitraryVariableImage, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: scaleColor()\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: scaleColor()\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: scaleColor()\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: scaleColor()\n }],\n // ---------------\n // --- Borders ---\n // ---------------\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: scaleRadius()\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': scaleRadius()\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': scaleRadius()\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': scaleRadius()\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': scaleRadius()\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': scaleRadius()\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': scaleRadius()\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': scaleRadius()\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': scaleRadius()\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': scaleRadius()\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': scaleRadius()\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': scaleRadius()\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': scaleRadius()\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': scaleRadius()\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': scaleRadius()\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: scaleBorderWidth()\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': scaleBorderWidth()\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': scaleBorderWidth()\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': scaleBorderWidth()\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': scaleBorderWidth()\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': scaleBorderWidth()\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': scaleBorderWidth()\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': scaleBorderWidth()\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': scaleBorderWidth()\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x': [{\n 'divide-x': scaleBorderWidth()\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y': [{\n 'divide-y': scaleBorderWidth()\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n */\n 'divide-style': [{\n divide: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: scaleColor()\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': scaleColor()\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': scaleColor()\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': scaleColor()\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': scaleColor()\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': scaleColor()\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': scaleColor()\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': scaleColor()\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': scaleColor()\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: scaleColor()\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: [...scaleLineStyle(), 'none', 'hidden']\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: scaleColor()\n }],\n // ---------------\n // --- Effects ---\n // ---------------\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n */\n 'shadow-color': [{\n shadow: scaleColor()\n }],\n /**\n * Inset Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n */\n 'inset-shadow': [{\n 'inset-shadow': ['none', themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Inset Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n */\n 'inset-shadow-color': [{\n 'inset-shadow': scaleColor()\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n */\n 'ring-w': [{\n ring: scaleBorderWidth()\n }],\n /**\n * Ring Width Inset\n * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n */\n 'ring-color': [{\n ring: scaleColor()\n }],\n /**\n * Ring Offset Width\n * @see https://v3.tailwindcss.com/docs/ring-offset-width\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-w': [{\n 'ring-offset': [isNumber, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://v3.tailwindcss.com/docs/ring-offset-color\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-color': [{\n 'ring-offset': scaleColor()\n }],\n /**\n * Inset Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n */\n 'inset-ring-w': [{\n 'inset-ring': scaleBorderWidth()\n }],\n /**\n * Inset Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n */\n 'inset-ring-color': [{\n 'inset-ring': scaleColor()\n }],\n /**\n * Text Shadow\n * @see https://tailwindcss.com/docs/text-shadow\n */\n 'text-shadow': [{\n 'text-shadow': ['none', themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Text Shadow Color\n * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color\n */\n 'text-shadow-color': [{\n 'text-shadow': scaleColor()\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': scaleBlendMode()\n }],\n /**\n * Mask Clip\n * @see https://tailwindcss.com/docs/mask-clip\n */\n 'mask-clip': [{\n 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }, 'mask-no-clip'],\n /**\n * Mask Composite\n * @see https://tailwindcss.com/docs/mask-composite\n */\n 'mask-composite': [{\n mask: ['add', 'subtract', 'intersect', 'exclude']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image-linear-pos': [{\n 'mask-linear': [isNumber]\n }],\n 'mask-image-linear-from-pos': [{\n 'mask-linear-from': scaleMaskImagePosition()\n }],\n 'mask-image-linear-to-pos': [{\n 'mask-linear-to': scaleMaskImagePosition()\n }],\n 'mask-image-linear-from-color': [{\n 'mask-linear-from': scaleColor()\n }],\n 'mask-image-linear-to-color': [{\n 'mask-linear-to': scaleColor()\n }],\n 'mask-image-t-from-pos': [{\n 'mask-t-from': scaleMaskImagePosition()\n }],\n 'mask-image-t-to-pos': [{\n 'mask-t-to': scaleMaskImagePosition()\n }],\n 'mask-image-t-from-color': [{\n 'mask-t-from': scaleColor()\n }],\n 'mask-image-t-to-color': [{\n 'mask-t-to': scaleColor()\n }],\n 'mask-image-r-from-pos': [{\n 'mask-r-from': scaleMaskImagePosition()\n }],\n 'mask-image-r-to-pos': [{\n 'mask-r-to': scaleMaskImagePosition()\n }],\n 'mask-image-r-from-color': [{\n 'mask-r-from': scaleColor()\n }],\n 'mask-image-r-to-color': [{\n 'mask-r-to': scaleColor()\n }],\n 'mask-image-b-from-pos': [{\n 'mask-b-from': scaleMaskImagePosition()\n }],\n 'mask-image-b-to-pos': [{\n 'mask-b-to': scaleMaskImagePosition()\n }],\n 'mask-image-b-from-color': [{\n 'mask-b-from': scaleColor()\n }],\n 'mask-image-b-to-color': [{\n 'mask-b-to': scaleColor()\n }],\n 'mask-image-l-from-pos': [{\n 'mask-l-from': scaleMaskImagePosition()\n }],\n 'mask-image-l-to-pos': [{\n 'mask-l-to': scaleMaskImagePosition()\n }],\n 'mask-image-l-from-color': [{\n 'mask-l-from': scaleColor()\n }],\n 'mask-image-l-to-color': [{\n 'mask-l-to': scaleColor()\n }],\n 'mask-image-x-from-pos': [{\n 'mask-x-from': scaleMaskImagePosition()\n }],\n 'mask-image-x-to-pos': [{\n 'mask-x-to': scaleMaskImagePosition()\n }],\n 'mask-image-x-from-color': [{\n 'mask-x-from': scaleColor()\n }],\n 'mask-image-x-to-color': [{\n 'mask-x-to': scaleColor()\n }],\n 'mask-image-y-from-pos': [{\n 'mask-y-from': scaleMaskImagePosition()\n }],\n 'mask-image-y-to-pos': [{\n 'mask-y-to': scaleMaskImagePosition()\n }],\n 'mask-image-y-from-color': [{\n 'mask-y-from': scaleColor()\n }],\n 'mask-image-y-to-color': [{\n 'mask-y-to': scaleColor()\n }],\n 'mask-image-radial': [{\n 'mask-radial': [isArbitraryVariable, isArbitraryValue]\n }],\n 'mask-image-radial-from-pos': [{\n 'mask-radial-from': scaleMaskImagePosition()\n }],\n 'mask-image-radial-to-pos': [{\n 'mask-radial-to': scaleMaskImagePosition()\n }],\n 'mask-image-radial-from-color': [{\n 'mask-radial-from': scaleColor()\n }],\n 'mask-image-radial-to-color': [{\n 'mask-radial-to': scaleColor()\n }],\n 'mask-image-radial-shape': [{\n 'mask-radial': ['circle', 'ellipse']\n }],\n 'mask-image-radial-size': [{\n 'mask-radial': [{\n closest: ['side', 'corner'],\n farthest: ['side', 'corner']\n }]\n }],\n 'mask-image-radial-pos': [{\n 'mask-radial-at': scalePosition()\n }],\n 'mask-image-conic-pos': [{\n 'mask-conic': [isNumber]\n }],\n 'mask-image-conic-from-pos': [{\n 'mask-conic-from': scaleMaskImagePosition()\n }],\n 'mask-image-conic-to-pos': [{\n 'mask-conic-to': scaleMaskImagePosition()\n }],\n 'mask-image-conic-from-color': [{\n 'mask-conic-from': scaleColor()\n }],\n 'mask-image-conic-to-color': [{\n 'mask-conic-to': scaleColor()\n }],\n /**\n * Mask Mode\n * @see https://tailwindcss.com/docs/mask-mode\n */\n 'mask-mode': [{\n mask: ['alpha', 'luminance', 'match']\n }],\n /**\n * Mask Origin\n * @see https://tailwindcss.com/docs/mask-origin\n */\n 'mask-origin': [{\n 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }],\n /**\n * Mask Position\n * @see https://tailwindcss.com/docs/mask-position\n */\n 'mask-position': [{\n mask: scaleBgPosition()\n }],\n /**\n * Mask Repeat\n * @see https://tailwindcss.com/docs/mask-repeat\n */\n 'mask-repeat': [{\n mask: scaleBgRepeat()\n }],\n /**\n * Mask Size\n * @see https://tailwindcss.com/docs/mask-size\n */\n 'mask-size': [{\n mask: scaleBgSize()\n }],\n /**\n * Mask Type\n * @see https://tailwindcss.com/docs/mask-type\n */\n 'mask-type': [{\n 'mask-type': ['alpha', 'luminance']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image': [{\n mask: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // ---------------\n // --- Filters ---\n // ---------------\n /**\n * Filter\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: scaleBlur()\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeDropShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Drop Shadow Color\n * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color\n */\n 'drop-shadow-color': [{\n 'drop-shadow': scaleColor()\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Filter\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': scaleBlur()\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n // --------------\n // --- Tables ---\n // --------------\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': scaleUnambiguousSpacing()\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // ---------------------------------\n // --- Transitions and Animation ---\n // ---------------------------------\n /**\n * Transition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Behavior\n * @see https://tailwindcss.com/docs/transition-behavior\n */\n 'transition-behavior': [{\n transition: ['normal', 'discrete']\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------\n // --- Transforms ---\n // ------------------\n /**\n * Backface Visibility\n * @see https://tailwindcss.com/docs/backface-visibility\n */\n backface: [{\n backface: ['hidden', 'visible']\n }],\n /**\n * Perspective\n * @see https://tailwindcss.com/docs/perspective\n */\n perspective: [{\n perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Perspective Origin\n * @see https://tailwindcss.com/docs/perspective-origin\n */\n 'perspective-origin': [{\n 'perspective-origin': scalePositionWithArbitrary()\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: scaleRotate()\n }],\n /**\n * Rotate X\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-x': [{\n 'rotate-x': scaleRotate()\n }],\n /**\n * Rotate Y\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-y': [{\n 'rotate-y': scaleRotate()\n }],\n /**\n * Rotate Z\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-z': [{\n 'rotate-z': scaleRotate()\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: scaleScale()\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': scaleScale()\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': scaleScale()\n }],\n /**\n * Scale Z\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-z': [{\n 'scale-z': scaleScale()\n }],\n /**\n * Scale 3D\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-3d': ['scale-3d'],\n /**\n * Skew\n * @see https://tailwindcss.com/docs/skew\n */\n skew: [{\n skew: scaleSkew()\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': scaleSkew()\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': scaleSkew()\n }],\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu']\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: scalePositionWithArbitrary()\n }],\n /**\n * Transform Style\n * @see https://tailwindcss.com/docs/transform-style\n */\n 'transform-style': [{\n transform: ['3d', 'flat']\n }],\n /**\n * Translate\n * @see https://tailwindcss.com/docs/translate\n */\n translate: [{\n translate: scaleTranslate()\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': scaleTranslate()\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': scaleTranslate()\n }],\n /**\n * Translate Z\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-z': [{\n 'translate-z': scaleTranslate()\n }],\n /**\n * Translate None\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-none': ['translate-none'],\n // ---------------------\n // --- Interactivity ---\n // ---------------------\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: scaleColor()\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: scaleColor()\n }],\n /**\n * Color Scheme\n * @see https://tailwindcss.com/docs/color-scheme\n */\n 'color-scheme': [{\n scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Field Sizing\n * @see https://tailwindcss.com/docs/field-sizing\n */\n 'field-sizing': [{\n 'field-sizing': ['fixed', 'content']\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['auto', 'none']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', '', 'y', 'x']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue]\n }],\n // -----------\n // --- SVG ---\n // -----------\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: ['none', ...scaleColor()]\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: ['none', ...scaleColor()]\n }],\n // ---------------------\n // --- Accessibility ---\n // ---------------------\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n translate: ['translate-x', 'translate-y', 'translate-none'],\n 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n },\n orderSensitiveModifiers: ['*', '**', 'after', 'backdrop', 'before', 'details-content', 'file', 'first-letter', 'first-line', 'marker', 'placeholder', 'selection']\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n overrideConfigProperties(baseConfig.theme, override.theme);\n overrideConfigProperties(baseConfig.classGroups, override.classGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers);\n overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers);\n mergeConfigProperties(baseConfig.theme, extend.theme);\n mergeConfigProperties(baseConfig.classGroups, extend.classGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers);\n mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers');\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n mergeArrayProperties(baseObject, mergeObject, key);\n }\n }\n};\nconst mergeArrayProperties = (baseObject, mergeObject, key) => {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue;\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import {b}from'./chunk-LK3VBVBE.js';import {twMerge,extendTailwindMerge}from'tailwind-merge';var p=s=>b(s)?twMerge:extendTailwindMerge({...s,extend:{theme:s.theme,classGroups:s.classGroups,conflictingClassGroupModifiers:s.conflictingClassGroupModifiers,conflictingClassGroups:s.conflictingClassGroups,...s.extend}});export{p as a};","import {a}from'./chunk-RFCF2RNL.js';import {b,g,c,f,a as a$1,h}from'./chunk-LK3VBVBE.js';var st={twMerge:true,twMergeConfig:{},responsiveVariants:false},x=(...l)=>{let u=[];X(l,u);let t=\"\";for(let d=0;d<u.length;d++)u[d]&&(t&&(t+=\" \"),t+=u[d]);return t||void 0};function X(l,u){for(let t=0;t<l.length;t++){let d=l[t];Array.isArray(d)?X(d,u):d&&u.push(d);}}var P=null,B={},F=false,S=(...l)=>u=>{let t=x(l);return !t||!u.twMerge?t:((!P||F)&&(F=false,P=a(B)),P(t)||void 0)},Q=(l,u)=>{for(let t in u)t in l?l[t]=x(l[t],u[t]):l[t]=u[t];return l},rt=(l,u)=>{let{extend:t=null,slots:d={},variants:R={},compoundVariants:q=[],compoundSlots:A=[],defaultVariants:L={}}=l,m={...st,...u},M=t?.base?x(t.base,l?.base):l?.base,y=t?.variants&&!b(t.variants)?g(R,t.variants):R,T=t?.defaultVariants&&!b(t.defaultVariants)?{...t.defaultVariants,...L}:L;!b(m.twMergeConfig)&&!c(m.twMergeConfig,B)&&(F=true,B=m.twMergeConfig);let j=b(t?.slots),$=b(d)?{}:{base:x(l?.base,j&&t?.base),...d},N=j?$:Q({...t?.slots},b($)?{base:l?.base}:$),w=b(t?.compoundVariants)?q:f(t?.compoundVariants,q),V=b$1=>{if(b(y)&&b(d)&&j)return S(M,b$1?.class,b$1?.className)(m);if(w&&!Array.isArray(w))throw new TypeError(`The \"compoundVariants\" prop must be an array. Received: ${typeof w}`);if(A&&!Array.isArray(A))throw new TypeError(`The \"compoundSlots\" prop must be an array. Received: ${typeof A}`);let Z=(n,e,s=[],o)=>{let a=s;if(typeof e==\"string\"){let c=h(e).split(\" \");for(let f=0;f<c.length;f++)a.push(`${n}:${c[f]}`);}else if(Array.isArray(e))for(let r=0;r<e.length;r++)a.push(`${n}:${e[r]}`);else if(typeof e==\"object\"&&typeof o==\"string\"&&o in e){let r=e[o];if(r&&typeof r==\"string\"){let f=h(r).split(\" \"),p=[];for(let i=0;i<f.length;i++)p.push(`${n}:${f[i]}`);a[o]=a[o]?a[o].concat(p):p;}else if(Array.isArray(r)&&r.length>0){let c=[];for(let f=0;f<r.length;f++)c.push(`${n}:${r[f]}`);a[o]=c;}}return a},U=(n,e=y,s=null,o=null)=>{let a=e[n];if(!a||b(a))return null;let r=o?.[n]??b$1?.[n];if(r===null)return null;let c=a$1(r),f=Array.isArray(m.responsiveVariants)&&m.responsiveVariants.length>0||m.responsiveVariants===true,p=T?.[n],i=[];if(typeof c==\"object\"&&f)for(let[C,G]of Object.entries(c)){let nt=a[G];if(C===\"initial\"){p=G;continue}Array.isArray(m.responsiveVariants)&&!m.responsiveVariants.includes(C)||(i=Z(C,nt,i,s));}let v=c!=null&&typeof c!=\"object\"?c:a$1(p),h=a[v||\"false\"];return typeof i==\"object\"&&typeof s==\"string\"&&i[s]?Q(i,h):i.length>0?(i.push(h),s===\"base\"?i.join(\" \"):i):h},_=()=>{if(!y)return null;let n=Object.keys(y),e=[];for(let s=0;s<n.length;s++){let o=U(n[s],y);o&&e.push(o);}return e},K=(n,e)=>{if(!y||typeof y!=\"object\")return null;let s=[];for(let o in y){let a=U(o,y,n,e),r=n===\"base\"&&typeof a==\"string\"?a:a&&a[n];r&&s.push(r);}return s},W={};for(let n in b$1){let e=b$1[n];e!==void 0&&(W[n]=e);}let z=(n,e)=>{let s=typeof b$1?.[n]==\"object\"?{[n]:b$1[n]?.initial}:{};return {...T,...W,...s,...e}},D=(n=[],e)=>{let s=[],o=n.length;for(let a=0;a<o;a++){let{class:r,className:c,...f}=n[a],p=true,i=z(null,e);for(let v in f){let h=f[v],C=i[v];if(Array.isArray(h)){if(!h.includes(C)){p=false;break}}else {if((h==null||h===false)&&(C==null||C===false))continue;if(C!==h){p=false;break}}}p&&(r&&s.push(r),c&&s.push(c));}return s},tt=n=>{let e=D(w,n);if(!Array.isArray(e))return e;let s={},o=S;for(let a=0;a<e.length;a++){let r=e[a];if(typeof r==\"string\")s.base=o(s.base,r)(m);else if(typeof r==\"object\")for(let c in r)s[c]=o(s[c],r[c])(m);}return s},et=n=>{if(A.length<1)return null;let e={},s=z(null,n);for(let o=0;o<A.length;o++){let{slots:a=[],class:r,className:c,...f}=A[o];if(!b(f)){let p=true;for(let i in f){let v=s[i],h=f[i];if(v===void 0||(Array.isArray(h)?!h.includes(v):h!==v)){p=false;break}}if(!p)continue}for(let p=0;p<a.length;p++){let i=a[p];e[i]||(e[i]=[]),e[i].push([r,c]);}}return e};if(!b(d)||!j){let n={};if(typeof N==\"object\"&&!b(N)){let e=S;for(let s in N)n[s]=o=>{let a=tt(o),r=et(o);return e(N[s],K(s,o),a?a[s]:void 0,r?r[s]:void 0,o?.class,o?.className)(m)};}return n}return S(M,_(),D(w),b$1?.class,b$1?.className)(m)},Y=()=>{if(!(!y||typeof y!=\"object\"))return Object.keys(y)};return V.variantKeys=Y(),V.extend=t,V.base=M,V.slots=N,V.variants=y,V.defaultVariants=T,V.compoundSlots=A,V.compoundVariants=w,V},it=l=>(u,t)=>rt(u,t?g(l,t):l);export{S as cn,x as cnBase,it as createTV,st as defaultConfig,rt as tv};","import {\n twMergeConfig\n} from \"./chunk-UFVD3L5A.mjs\";\n\n// src/utils/tv.ts\nimport { tv as tvBase } from \"tailwind-variants\";\nvar tv = (options, config) => {\n var _a, _b, _c;\n return tvBase(options, {\n ...config,\n twMerge: (_a = config == null ? void 0 : config.twMerge) != null ? _a : true,\n twMergeConfig: {\n ...config == null ? void 0 : config.twMergeConfig,\n theme: {\n ...(_b = config == null ? void 0 : config.twMergeConfig) == null ? void 0 : _b.theme,\n ...twMergeConfig.theme\n },\n classGroups: {\n ...(_c = config == null ? void 0 : config.twMergeConfig) == null ? void 0 : _c.classGroups,\n ...twMergeConfig.classGroups\n }\n }\n });\n};\n\nexport {\n tv\n};\n","import {\n tv\n} from \"./chunk-TX3FPB7D.mjs\";\n\n// src/components/spinner.ts\nvar spinner = tv({\n slots: {\n base: \"relative inline-flex flex-col gap-2 items-center justify-center\",\n wrapper: \"relative flex\",\n label: \"text-foreground dark:text-foreground-dark font-regular\",\n circle1: \"absolute w-full h-full rounded-full\",\n circle2: \"absolute w-full h-full rounded-full\",\n dots: \"relative rounded-full mx-auto\",\n spinnerBars: [\n \"absolute\",\n \"animate-fade-out\",\n \"rounded-full\",\n \"w-[25%]\",\n \"h-[8%]\",\n \"left-[calc(37.5%)]\",\n \"top-[calc(46%)]\",\n \"spinner-bar-animation\"\n ]\n },\n variants: {\n size: {\n sm: {\n wrapper: \"w-5 h-5\",\n circle1: \"border-2\",\n circle2: \"border-2\",\n dots: \"size-1\",\n label: \"text-small\"\n },\n md: {\n wrapper: \"w-8 h-8\",\n circle1: \"border-3\",\n circle2: \"border-3\",\n dots: \"size-1.5\",\n label: \"text-medium\"\n },\n lg: {\n wrapper: \"w-10 h-10\",\n circle1: \"border-3\",\n circle2: \"border-3\",\n dots: \"size-2\",\n label: \"text-large\"\n }\n },\n color: {\n current: {\n circle1: \"border-b-current\",\n circle2: \"border-b-current\",\n dots: \"bg-current\",\n spinnerBars: \"bg-current\"\n },\n white: {\n circle1: \"border-b-white\",\n circle2: \"border-b-white\",\n dots: \"bg-white\",\n spinnerBars: \"bg-white\"\n },\n default: {\n circle1: \"border-b-default\",\n circle2: \"border-b-default\",\n dots: \"bg-default\",\n spinnerBars: \"bg-default\"\n },\n primary: {\n circle1: \"border-b-primary\",\n circle2: \"border-b-primary\",\n dots: \"bg-primary\",\n spinnerBars: \"bg-primary\"\n },\n secondary: {\n circle1: \"border-b-secondary\",\n circle2: \"border-b-secondary\",\n dots: \"bg-secondary\",\n spinnerBars: \"bg-secondary\"\n },\n success: {\n circle1: \"border-b-success\",\n circle2: \"border-b-success\",\n dots: \"bg-success\",\n spinnerBars: \"bg-success\"\n },\n warning: {\n circle1: \"border-b-warning\",\n circle2: \"border-b-warning\",\n dots: \"bg-warning\",\n spinnerBars: \"bg-warning\"\n },\n danger: {\n circle1: \"border-b-danger\",\n circle2: \"border-b-danger\",\n dots: \"bg-danger\",\n spinnerBars: \"bg-danger\"\n }\n },\n labelColor: {\n foreground: {\n label: \"text-foreground\"\n },\n primary: {\n label: \"text-primary\"\n },\n secondary: {\n label: \"text-secondary\"\n },\n success: {\n label: \"text-success\"\n },\n warning: {\n label: \"text-warning\"\n },\n danger: {\n label: \"text-danger\"\n }\n },\n variant: {\n default: {\n circle1: [\n \"animate-spinner-ease-spin\",\n \"border-solid\",\n \"border-t-transparent\",\n \"border-l-transparent\",\n \"border-r-transparent\"\n ],\n circle2: [\n \"opacity-75\",\n \"animate-spinner-linear-spin\",\n \"border-dotted\",\n \"border-t-transparent\",\n \"border-l-transparent\",\n \"border-r-transparent\"\n ]\n },\n gradient: {\n circle1: [\n \"border-0\",\n \"bg-gradient-to-b\",\n \"from-transparent\",\n \"via-transparent\",\n \"to-primary\",\n \"animate-spinner-linear-spin\",\n \"[animation-duration:1s]\",\n \"[-webkit-mask:radial-gradient(closest-side,rgba(0,0,0,0.0)calc(100%-3px),rgba(0,0,0,1)calc(100%-3px))]\"\n ],\n circle2: [\"hidden\"]\n },\n wave: {\n wrapper: \"translate-y-3/4\",\n dots: [\"animate-sway\", \"spinner-dot-animation\"]\n },\n dots: {\n wrapper: \"translate-y-2/4\",\n dots: [\"animate-blink\", \"spinner-dot-blink-animation\"]\n },\n spinner: {},\n simple: {\n wrapper: \"text-foreground h-5 w-5 animate-spin\",\n circle1: \"opacity-25\",\n circle2: \"opacity-75\"\n }\n }\n },\n defaultVariants: {\n size: \"md\",\n color: \"primary\",\n labelColor: \"foreground\",\n variant: \"default\"\n },\n compoundVariants: [\n { variant: \"gradient\", color: \"current\", class: { circle1: \"to-current\" } },\n { variant: \"gradient\", color: \"white\", class: { circle1: \"to-white\" } },\n { variant: \"gradient\", color: \"default\", class: { circle1: \"to-default\" } },\n { variant: \"gradient\", color: \"primary\", class: { circle1: \"to-primary\" } },\n { variant: \"gradient\", color: \"secondary\", class: { circle1: \"to-secondary\" } },\n { variant: \"gradient\", color: \"success\", class: { circle1: \"to-success\" } },\n { variant: \"gradient\", color: \"warning\", class: { circle1: \"to-warning\" } },\n { variant: \"gradient\", color: \"danger\", class: { circle1: \"to-danger\" } },\n {\n variant: \"wave\",\n size: \"sm\",\n class: {\n wrapper: \"w-5 h-5\"\n }\n },\n {\n variant: \"wave\",\n size: \"md\",\n class: {\n wrapper: \"w-8 h-8\"\n }\n },\n {\n variant: \"wave\",\n size: \"lg\",\n class: {\n wrapper: \"w-12 h-12\"\n }\n },\n {\n variant: \"dots\",\n size: \"sm\",\n class: {\n wrapper: \"w-5 h-5\"\n }\n },\n {\n variant: \"dots\",\n size: \"md\",\n class: {\n wrapper: \"w-8 h-8\"\n }\n },\n {\n variant: \"dots\",\n size: \"lg\",\n class: {\n wrapper: \"w-12 h-12\"\n }\n },\n // Simple variants\n // Size\n {\n variant: \"simple\",\n size: \"sm\",\n class: {\n wrapper: \"w-5 h-5\"\n }\n },\n {\n variant: \"simple\",\n size: \"md\",\n class: {\n wrapper: \"w-8 h-8\"\n }\n },\n {\n variant: \"simple\",\n size: \"lg\",\n class: {\n wrapper: \"w-12 h-12\"\n }\n },\n // Color\n {\n variant: \"simple\",\n color: \"current\",\n class: {\n wrapper: \"text-current\"\n }\n },\n {\n variant: \"simple\",\n color: \"white\",\n class: {\n wrapper: \"text-white\"\n }\n },\n {\n variant: \"simple\",\n color: \"default\",\n class: {\n wrapper: \"text-default\"\n }\n },\n {\n variant: \"simple\",\n color: \"primary\",\n class: {\n wrapper: \"text-primary\"\n }\n },\n {\n variant: \"simple\",\n color: \"secondary\",\n class: {\n wrapper: \"text-secondary\"\n }\n },\n {\n variant: \"simple\",\n color: \"success\",\n class: {\n wrapper: \"text-success\"\n }\n },\n {\n variant: \"simple\",\n color: \"warning\",\n class: {\n wrapper: \"text-warning\"\n }\n },\n {\n variant: \"simple\",\n color: \"danger\",\n class: {\n wrapper: \"text-danger\"\n }\n }\n ]\n});\n\nexport {\n spinner\n};\n","// src/utils/classes.ts\nvar baseStyles = (prefix) => ({\n color: `hsl(var(--${prefix}-foreground))`,\n backgroundColor: `hsl(var(--${prefix}-background))`\n});\nvar focusVisibleClasses = [\n \"focus-visible:z-10\",\n \"focus-visible:outline-2\",\n \"focus-visible:outline-focus\",\n \"focus-visible:outline-offset-2\"\n];\nvar dataFocusVisibleClasses = [\n \"outline-solid outline-transparent\",\n \"data-[focus-visible=true]:z-10\",\n \"data-[focus-visible=true]:outline-2\",\n \"data-[focus-visible=true]:outline-focus\",\n \"data-[focus-visible=true]:outline-offset-2\"\n];\nvar groupDataFocusVisibleClasses = [\n \"outline-solid outline-transparent\",\n \"group-data-[focus-visible=true]:z-10\",\n \"group-data-[focus-visible=true]:ring-2\",\n \"group-data-[focus-visible=true]:ring-focus\",\n \"group-data-[focus-visible=true]:ring-offset-2\",\n \"group-data-[focus-visible=true]:ring-offset-background\"\n];\nvar ringClasses = [\n \"outline-solid outline-transparent\",\n \"ring-2\",\n \"ring-focus\",\n \"ring-offset-2\",\n \"ring-offset-background\"\n];\nvar translateCenterClasses = [\n \"absolute\",\n \"top-1/2\",\n \"left-1/2\",\n \"-translate-x-1/2\",\n \"-translate-y-1/2\"\n];\nvar absoluteFullClasses = [\"absolute\", \"inset-0\"];\nvar collapseAdjacentVariantBorders = {\n default: [\"[&+.border-medium.border-default]:ms-[calc(var(--heroui-border-width-medium)*-1)]\"],\n primary: [\"[&+.border-medium.border-primary]:ms-[calc(var(--heroui-border-width-medium)*-1)]\"],\n secondary: [\n \"[&+.border-medium.border-secondary]:ms-[calc(var(--heroui-border-width-medium)*-1)]\"\n ],\n success: [\"[&+.border-medium.border-success]:ms-[calc(var(--heroui-border-width-medium)*-1)]\"],\n warning: [\"[&+.border-medium.border-warning]:ms-[calc(var(--heroui-border-width-medium)*-1)]\"],\n danger: [\"[&+.border-medium.border-danger]:ms-[calc(var(--heroui-border-width-medium)*-1)]\"]\n};\nvar hiddenInputClasses = [\n // Font styles\n \"font-inherit\",\n \"text-[100%]\",\n \"leading-[1.15]\",\n // Reset margins and padding\n \"m-0\",\n \"p-0\",\n // Overflow and box-sizing\n \"overflow-visible\",\n \"box-border\",\n // Positioning & Hit area\n \"absolute\",\n \"top-0\",\n \"w-full\",\n \"h-full\",\n // Opacity and z-index\n \"opacity-[0.0001]\",\n \"z-[1]\",\n // Cursor\n \"cursor-pointer\",\n // Disabled state\n \"disabled:cursor-default\"\n];\n\nexport {\n baseStyles,\n focusVisibleClasses,\n dataFocusVisibleClasses,\n groupDataFocusVisibleClasses,\n ringClasses,\n translateCenterClasses,\n absoluteFullClasses,\n collapseAdjacentVariantBorders,\n hiddenInputClasses\n};\n","import {\n tv\n} from \"./chunk-TX3FPB7D.mjs\";\n\n// src/components/progress.ts\nvar progress = tv(\n {\n slots: {\n base: \"flex flex-col gap-2 w-full\",\n label: \"\",\n labelWrapper: \"flex justify-between\",\n value: \"\",\n track: \"z-0 relative bg-default-300/50 overflow-hidden rtl:rotate-180\",\n indicator: \"h-full\"\n },\n variants: {\n color: {\n default: {\n indicator: \"bg-default-400\"\n },\n primary: {\n indicator: \"bg-primary\"\n },\n secondary: {\n indicator: \"bg-secondary\"\n },\n success: {\n indicator: \"bg-success\"\n },\n warning: {\n indicator: \"bg-warning\"\n },\n danger: {\n indicator: \"bg-danger\"\n }\n },\n size: {\n sm: {\n label: \"text-small\",\n value: \"text-small\",\n track: \"h-1\"\n },\n md: {\n label: \"text-medium\",\n value: \"text-medium\",\n track: \"h-3\"\n },\n lg: {\n label: \"text-large\",\n value: \"text-large\",\n track: \"h-5\"\n }\n },\n radius: {\n none: {\n track: \"rounded-none\",\n indicator: \"rounded-none\"\n },\n sm: {\n track: \"rounded-small\",\n indicator: \"rounded-small\"\n },\n md: {\n track: \"rounded-medium\",\n indicator: \"rounded-medium\"\n },\n lg: {\n track: \"rounded-large\",\n indicator: \"rounded-large\"\n },\n full: {\n track: \"rounded-full\",\n indicator: \"rounded-full\"\n }\n },\n isStriped: {\n true: {\n indicator: \"bg-stripe-gradient-default bg-stripe-size\"\n }\n },\n isIndeterminate: {\n true: {\n indicator: [\"absolute\", \"w-full\", \"origin-left\", \"animate-indeterminate-bar\"]\n }\n },\n isDisabled: {\n true: {\n base: \"opacity-disabled cursor-not-allowed\"\n }\n },\n disableAnimation: {\n true: {},\n false: {\n indicator: \"transition-transform !duration-500\"\n }\n }\n },\n defaultVariants: {\n color: \"primary\",\n size: \"md\",\n radius: \"full\",\n isStriped: false,\n isIndeterminate: false,\n isDisabled: false\n },\n compoundVariants: [\n // disableAnimation && !isIndeterminate\n {\n disableAnimation: true,\n isIndeterminate: false,\n class: {\n indicator: \"!transition-none motion-reduce:transition-none\"\n }\n },\n {\n color: \"primary\",\n isStriped: true,\n class: {\n indicator: \"bg-stripe-gradient-primary bg-stripe-size\"\n }\n },\n {\n color: \"secondary\",\n isStriped: true,\n class: {\n indicator: \"bg-stripe-gradient-secondary bg-stripe-size\"\n }\n },\n {\n color: \"success\",\n isStriped: true,\n class: {\n indicator: \"bg-stripe-gradient-success bg-stripe-size\"\n }\n },\n {\n color: \"warning\",\n isStriped: true,\n class: {\n indicator: \"bg-stripe-gradient-warning bg-stripe-size\"\n }\n },\n {\n color: \"danger\",\n isStriped: true,\n class: {\n indicator: \"bg-stripe-gradient-danger bg-stripe-size\"\n }\n }\n ]\n },\n {\n twMerge: true\n }\n);\nvar circularProgress = tv({\n slots: {\n base: \"flex flex-col justify-center gap-1 max-w-fit items-center\",\n label: \"\",\n svgWrapper: \"relative block\",\n svg: \"z-0 relative overflow-hidden\",\n track: \"h-full stroke-default-300/50\",\n indicator: \"h-full stroke-current\",\n value: \"absolute font-normal inset-0 flex items-center justify-center\"\n },\n variants: {\n color: {\n default: {\n svg: \"text-default-400\"\n },\n primary: {\n svg: \"text-primary\"\n },\n secondary: {\n svg: \"text-secondary\"\n },\n success: {\n svg: \"text-success\"\n },\n warning: {\n svg: \"text-warning\"\n },\n danger: {\n svg: \"text-danger\"\n }\n },\n size: {\n sm: {\n svg: \"w-8 h-8\",\n label: \"text-small\",\n value: \"text-[0.5rem]\"\n },\n md: {\n svg: \"w-10 h-10\",\n label: \"text-small\",\n value: \"text-[0.55rem]\"\n },\n lg: {\n svg: \"w-12 h-12\",\n label: \"text-medium\",\n value: \"text-[0.6rem]\"\n }\n },\n isIndeterminate: {\n true: {\n svg: \"animate-spinner-ease-spin\"\n }\n },\n isDisabled: {\n true: {\n base: \"opacity-disabled cursor-not-allowed\"\n }\n },\n disableAnimation: {\n true: {},\n false: {\n indicator: \"transition-all !duration-500\"\n }\n }\n },\n defaultVariants: {\n color: \"primary\",\n size: \"md\",\n isDisabled: false\n },\n compoundVariants: [\n // disableAnimation && !isIndeterminate\n {\n disableAnimation: true,\n isIndeterminate: false,\n class: {\n svg: \"!transition-none motion-reduce:transition-none\"\n }\n }\n ]\n});\n\nexport {\n progress,\n circularProgress\n};\n","import {\n colorVariants\n} from \"./chunk-GQT3YUX3.mjs\";\nimport {\n tv\n} from \"./chunk-TX3FPB7D.mjs\";\nimport {\n collapseAdjacentVariantBorders,\n dataFocusVisibleClasses\n} from \"./chunk-JGY6VQQQ.mjs\";\n\n// src/components/button.ts\nvar button = tv({\n base: [\n \"z-0\",\n \"group\",\n \"relative\",\n \"inline-flex\",\n \"items-center\",\n \"justify-center\",\n \"box-border\",\n \"appearance-none\",\n \"outline-solid outline-transparent\",\n \"select-none\",\n \"whitespace-nowrap\",\n \"min-w-max\",\n \"font-normal\",\n \"subpixel-antialiased\",\n \"overflow-hidden\",\n \"tap-highlight-transparent\",\n \"transform-gpu data-[pressed=true]:scale-[0.97]\",\n \"cursor-pointer\",\n // focus ring\n ...dataFocusVisibleClasses\n ],\n variants: {\n variant: {\n solid: \"\",\n bordered: \"border-medium bg-transparent\",\n light: \"bg-transparent\",\n flat: \"\",\n faded: \"border-medium\",\n shadow: \"\",\n ghost: \"border-medium bg-transparent\"\n },\n size: {\n sm: \"px-3 min-w-16 h-8 text-tiny gap-2 rounded-small\",\n md: \"px-4 min-w-20 h-10 text-small gap-2 rounded-medium\",\n lg: \"px-6 min-w-24 h-12 text-medium gap-3 rounded-large\"\n },\n color: {\n default: \"\",\n primary: \"\",\n secondary: \"\",\n success: \"\",\n warning: \"\",\n danger: \"\"\n },\n radius: {\n none: \"rounded-none\",\n sm: \"rounded-small\",\n md: \"rounded-medium\",\n lg: \"rounded-large\",\n full: \"rounded-full\"\n },\n fullWidth: {\n true: \"w-full\"\n },\n isDisabled: {\n true: \"opacity-disabled pointer-events-none\"\n },\n isInGroup: {\n true: \"[&:not(:first-child):not(:last-child)]:rounded-none\"\n },\n isIconOnly: {\n true: \"px-0 !gap-0\",\n false: \"[&>svg]:max-w-[theme(spacing.8)]\"\n },\n disableAnimation: {\n true: \"!transition-none data-[pressed=true]:scale-100\",\n false: \"transition-transform-colors-opacity motion-reduce:transition-none\"\n }\n },\n defaultVariants: {\n size: \"md\",\n variant: \"solid\",\n color: \"default\",\n fullWidth: false,\n isDisabled: false,\n isInGroup: false\n },\n compoundVariants: [\n // solid / color\n {\n variant: \"solid\",\n color: \"default\",\n class: colorVariants.solid.default\n },\n {\n variant: \"solid\",\n color: \"primary\",\n class: colorVariants.solid.primary\n },\n {\n variant: \"solid\",\n color: \"secondary\",\n class: colorVariants.solid.secondary\n },\n {\n variant: \"solid\",\n color: \"success\",\n class: colorVariants.solid.success\n },\n {\n variant: \"solid\",\n color: \"warning\",\n class: colorVariants.solid.warning\n },\n {\n variant: \"solid\",\n color: \"danger\",\n class: colorVariants.solid.danger\n },\n // shadow / color\n {\n variant: \"shadow\",\n color: \"default\",\n class: colorVariants.shadow.default\n },\n {\n variant: \"shadow\",\n color: \"primary\",\n class: colorVariants.shadow.primary\n },\n {\n variant: \"shadow\",\n color: \"secondary\",\n class: colorVariants.shadow.secondary\n },\n {\n variant: \"shadow\",\n color: \"success\",\n class: colorVariants.shadow.success\n },\n {\n variant: \"shadow\",\n color: \"warning\",\n class: colorVariants.shadow.warning\n },\n {\n variant: \"shadow\",\n color: \"danger\",\n class: colorVariants.shadow.danger\n },\n // bordered / color\n {\n variant: \"bordered\",\n color: \"default\",\n class: colorVariants.bordered.default\n },\n {\n variant: \"bordered\",\n color: \"primary\",\n class: colorVariants.bordered.primary\n },\n {\n variant: \"bordered\",\n color: \"secondary\",\n class: colorVariants.bordered.secondary\n },\n {\n variant: \"bordered\",\n color: \"success\",\n class: colorVariants.bordered.success\n },\n {\n variant: \"bordered\",\n color: \"warning\",\n class: colorVariants.bordered.warning\n },\n {\n variant: \"bordered\",\n color: \"danger\",\n class: colorVariants.bordered.danger\n },\n // flat / color\n {\n variant: \"flat\",\n color: \"default\",\n class: colorVariants.flat.default\n },\n {\n variant: \"flat\",\n color: \"primary\",\n class: colorVariants.flat.primary\n },\n {\n variant: \"flat\",\n color: \"secondary\",\n class: colorVariants.flat.secondary\n },\n {\n variant: \"flat\",\n color: \"success\",\n class: colorVariants.flat.success\n },\n {\n variant: \"flat\",\n color: \"warning\",\n class: colorVariants.flat.warning\n },\n {\n variant: \"flat\",\n color: \"danger\",\n class: colorVariants.flat.danger\n },\n // faded / color\n {\n variant: \"faded\",\n color: \"default\",\n class: colorVariants.faded.default\n },\n {\n variant: \"faded\",\n color: \"primary\",\n class: colorVariants.faded.primary\n },\n {\n variant: \"faded\",\n color: \"secondary\",\n class: colorVariants.faded.secondary\n },\n {\n variant: \"faded\",\n color: \"success\",\n class: colorVariants.faded.success\n },\n {\n variant: \"faded\",\n color: \"warning\",\n class: colorVariants.faded.warning\n },\n {\n variant: \"faded\",\n color: \"danger\",\n class: colorVariants.faded.danger\n },\n // light / color\n {\n variant: \"light\",\n color: \"default\",\n class: [colorVariants.light.default, \"data-[hover=true]:bg-default/40\"]\n },\n {\n variant: \"light\",\n color: \"primary\",\n class: [colorVariants.light.primary, \"data-[hover=true]:bg-primary/20\"]\n },\n {\n variant: \"light\",\n color: \"secondary\",\n class: [colorVariants.light.secondary, \"data-[hover=true]:bg-secondary/20\"]\n },\n {\n variant: \"light\",\n color: \"success\",\n class: [colorVariants.light.success, \"data-[hover=true]:bg-success/20\"]\n },\n {\n variant: \"light\",\n color: \"warning\",\n class: [colorVariants.light.warning, \"data-[hover=true]:bg-warning/20\"]\n },\n {\n variant: \"light\",\n color: \"danger\",\n class: [colorVariants.light.danger, \"data-[hover=true]:bg-danger/20\"]\n },\n // ghost / color\n {\n variant: \"ghost\",\n color: \"default\",\n class: [colorVariants.ghost.default, \"data-[hover=true]:!bg-default\"]\n },\n {\n variant: \"ghost\",\n color: \"primary\",\n class: [\n colorVariants.ghost.primary,\n \"data-[hover=true]:!bg-primary data-[hover=true]:!text-primary-foreground\"\n ]\n },\n {\n variant: \"ghost\",\n color: \"secondary\",\n class: [\n colorVariants.ghost.secondary,\n \"data-[hover=true]:!bg-secondary data-[hover=true]:!text-secondary-foreground\"\n ]\n },\n {\n variant: \"ghost\",\n color: \"success\",\n class: [\n colorVariants.ghost.success,\n \"data-[hover=true]:!bg-success data-[hover=true]:!text-success-foreground\"\n ]\n },\n {\n variant: \"ghost\",\n color: \"warning\",\n class: [\n colorVariants.ghost.warning,\n \"data-[hover=true]:!bg-warning data-[hover=true]:!text-warning-foreground\"\n ]\n },\n {\n variant: \"ghost\",\n color: \"danger\",\n class: [\n colorVariants.ghost.danger,\n \"data-[hover=true]:!bg-danger data-[hover=true]:!text-danger-foreground\"\n ]\n },\n // isInGroup / radius / size <-- radius not provided\n {\n isInGroup: true,\n class: \"rounded-none first:rounded-s-medium last:rounded-e-medium\"\n },\n {\n isInGroup: true,\n size: \"sm\",\n class: \"rounded-none first:rounded-s-small last:rounded-e-small\"\n },\n {\n isInGroup: true,\n size: \"md\",\n class: \"rounded-none first:rounded-s-medium last:rounded-e-medium\"\n },\n {\n isInGroup: true,\n size: \"lg\",\n class: \"rounded-none first:rounded-s-large last:rounded-e-large\"\n },\n {\n isInGroup: true,\n isRounded: true,\n class: \"rounded-none first:rounded-s-full last:rounded-e-full\"\n },\n // isInGroup / radius <-- radius provided\n {\n isInGroup: true,\n radius: \"none\",\n class: \"rounded-none first:rounded-s-none last:rounded-e-none\"\n },\n {\n isInGroup: true,\n radius: \"sm\",\n class: \"rounded-none first:rounded-s-small last:rounded-e-small\"\n },\n {\n isInGroup: true,\n radius: \"md\",\n class: \"rounded-none first:rounded-s-medium last:rounded-e-medium\"\n },\n {\n isInGroup: true,\n radius: \"lg\",\n class: \"rounded-none first:rounded-s-large last:rounded-e-large\"\n },\n {\n isInGroup: true,\n radius: \"full\",\n class: \"rounded-none first:rounded-s-full last:rounded-e-full\"\n },\n // isInGroup / bordered / ghost\n {\n isInGroup: true,\n variant: [\"ghost\", \"bordered\"],\n color: \"default\",\n className: collapseAdjacentVariantBorders.default\n },\n {\n isInGroup: true,\n variant: [\"ghost\", \"bordered\"],\n color: \"primary\",\n className: collapseAdjacentVariantBorders.primary\n },\n {\n isInGroup: true,\n variant: [\"ghost\", \"bordered\"],\n color: \"secondary\",\n className: collapseAdjacentVariantBorders.secondary\n },\n {\n isInGroup: true,\n variant: [\"ghost\", \"bordered\"],\n color: \"success\",\n className: collapseAdjacentVariantBorders.success\n },\n {\n isInGroup: true,\n variant: [\"ghost\", \"bordered\"],\n color: \"warning\",\n className: collapseAdjacentVariantBorders.warning\n },\n {\n isInGroup: true,\n variant: [\"ghost\", \"bordered\"],\n color: \"danger\",\n className: collapseAdjacentVariantBorders.danger\n },\n {\n isIconOnly: true,\n size: \"sm\",\n class: \"min-w-8 w-8 h-8\"\n },\n {\n isIconOnly: true,\n size: \"md\",\n class: \"min-w-10 w-10 h-10\"\n },\n {\n isIconOnly: true,\n size: \"lg\",\n class: \"min-w-12 w-12 h-12\"\n },\n // variant / hover\n {\n variant: [\"solid\", \"faded\", \"flat\", \"bordered\", \"shadow\"],\n class: \"data-[hover=true]:opacity-hover\"\n }\n ]\n});\nvar buttonGroup = tv({\n base: \"inline-flex items-center justify-center h-auto\",\n variants: {\n fullWidth: {\n true: \"w-full\"\n }\n },\n defaultVariants: {\n fullWidth: false\n }\n});\n\nexport {\n button,\n buttonGroup\n};\n","import {\n tv\n} from \"./chunk-TX3FPB7D.mjs\";\nimport {\n dataFocusVisibleClasses\n} from \"./chunk-JGY6VQQQ.mjs\";\n\n// src/components/card.ts\nvar card = tv({\n slots: {\n base: [\n \"flex\",\n \"flex-col\",\n \"relative\",\n \"overflow-hidden\",\n \"h-auto\",\n \"outline-solid outline-transparent\",\n \"text-foreground\",\n \"box-border\",\n \"bg-content1\",\n // focus ring\n ...dataFocusVisibleClasses\n ],\n header: [\n \"flex\",\n \"p-3\",\n \"z-10\",\n \"w-full\",\n \"justify-start\",\n \"items-center\",\n \"shrink-0\",\n \"overflow-inherit\",\n \"color-inherit\",\n \"subpixel-antialiased\"\n ],\n body: [\n \"relative\",\n \"flex\",\n \"flex-1\",\n \"w-full\",\n \"p-3\",\n \"flex-auto\",\n \"flex-col\",\n \"place-content-inherit\",\n \"align-items-inherit\",\n \"h-auto\",\n \"break-words\",\n \"text-left\",\n \"overflow-y-auto\",\n \"subpixel-antialiased\"\n ],\n footer: [\n \"p-3\",\n \"h-auto\",\n \"flex\",\n \"w-full\",\n \"items-center\",\n \"overflow-hidden\",\n \"color-inherit\",\n \"subpixel-antialiased\"\n ]\n },\n variants: {\n shadow: {\n none: {\n base: \"shadow-none\"\n },\n sm: {\n base: \"shadow-small\"\n },\n md: {\n base: \"shadow-medium\"\n },\n lg: {\n base: \"shadow-large\"\n }\n },\n radius: {\n none: {\n base: \"rounded-none\",\n header: \"rounded-none\",\n footer: \"rounded-none\"\n },\n sm: {\n base: \"rounded-small\",\n header: \"rounded-t-small\",\n footer: \"rounded-b-small\"\n },\n md: {\n base: \"rounded-medium\",\n header: \"rounded-t-medium\",\n footer: \"rounded-b-medium\"\n },\n lg: {\n base: \"rounded-large\",\n header: \"rounded-t-large\",\n footer: \"rounded-b-large\"\n }\n },\n fullWidth: {\n true: {\n base: \"w-full\"\n }\n },\n isHoverable: {\n true: {\n base: \"data-[hover=true]:bg-content2 dark:data-[hover=true]:bg-content2\"\n }\n },\n isPressable: {\n true: { base: \"cursor-pointer\" }\n },\n isBlurred: {\n true: {\n base: [\n \"bg-background/80\",\n \"dark:bg-background/20\",\n \"backdrop-blur-md\",\n \"backdrop-saturate-150\"\n ]\n }\n },\n isFooterBlurred: {\n true: {\n footer: [\"bg-background/10\", \"backdrop-blur\", \"backdrop-saturate-150\"]\n }\n },\n isDisabled: {\n true: {\n base: \"opacity-disabled cursor-not-allowed\"\n }\n },\n disableAnimation: {\n true: \"\",\n false: { base: \"transition-transform-background motion-reduce:transition-none\" }\n }\n },\n compoundVariants: [\n {\n isPressable: true,\n class: \"data-[pressed=true]:scale-[0.97] tap-highlight-transparent\"\n }\n ],\n defaultVariants: {\n radius: \"lg\",\n shadow: \"md\",\n fullWidth: false,\n isHoverable: false,\n isPressable: false,\n isDisabled: false,\n isFooterBlurred: false\n }\n});\n\nexport {\n card\n};\n","import {\n colorVariants\n} from \"./chunk-GQT3YUX3.mjs\";\nimport {\n tv\n} from \"./chunk-TX3FPB7D.mjs\";\nimport {\n dataFocusVisibleClasses,\n translateCenterClasses\n} from \"./chunk-JGY6VQQQ.mjs\";\n\n// src/components/avatar.ts\nvar avatar = tv({\n slots: {\n base: [\n \"flex\",\n \"relative\",\n \"justify-center\",\n \"items-center\",\n \"box-border\",\n \"overflow-hidden\",\n \"align-middle\",\n \"text-white\",\n \"z-0\",\n // focus ring\n ...dataFocusVisibleClasses\n ],\n img: [\n \"flex\",\n \"object-cover\",\n \"w-full\",\n \"h-full\",\n \"transition-opacity\",\n \"!duration-500\",\n \"opacity-0\",\n \"data-[loaded=true]:opacity-100\"\n ],\n fallback: [...translateCenterClasses, \"flex\", \"items-center\", \"justify-center\"],\n name: [...translateCenterClasses, \"font-normal\", \"text-center\", \"text-inherit\"],\n icon: [\n ...translateCenterClasses,\n \"flex\",\n \"items-center\",\n \"justify-center\",\n \"text-inherit\",\n \"w-full\",\n \"h-full\"\n ]\n },\n variants: {\n size: {\n sm: {\n base: \"w-8 h-8 text-tiny\"\n },\n md: {\n base: \"w-10 h-10 text-tiny\"\n },\n lg: {\n base: \"w-14 h-14 text-small\"\n }\n },\n color: {\n default: {\n base: colorVariants.solid.default\n },\n primary: {\n base: colorVariants.solid.primary\n },\n secondary: {\n base: colorVariants.solid.secondary\n },\n success: {\n base: colorVariants.solid.success\n },\n warning: {\n base: colorVariants.solid.warning\n },\n danger: {\n base: colorVariants.solid.danger\n }\n },\n radius: {\n none: {\n base: \"rounded-none\"\n },\n sm: {\n base: \"rounded-small\"\n },\n md: {\n base: \"rounded-medium\"\n },\n lg: {\n base: \"rounded-large\"\n },\n full: {\n base: \"rounded-full\"\n }\n },\n isBordered: {\n true: {\n base: \"ring-2 ring-offset-2 ring-offset-background dark:ring-offset-background-dark\"\n }\n },\n isDisabled: {\n true: {\n base: \"opacity-disabled\"\n }\n },\n isInGroup: {\n true: {\n base: [\n \"-ms-2 data-[hover=true]:-translate-x-3 rtl:data-[hover=true]:translate-x-3 transition-transform\",\n \"data-[focus-visible=true]:-translate-x-3 rtl:data-[focus-visible=true]:translate-x-3\"\n ]\n }\n },\n isInGridGroup: {\n true: {\n base: \"m-0 data-[hover=true]:translate-x-0\"\n }\n },\n disableAnimation: {\n true: {\n base: \"transition-none\",\n img: \"transition-none\"\n },\n false: {}\n }\n },\n defaultVariants: {\n size: \"md\",\n color: \"default\",\n radius: \"full\"\n },\n compoundVariants: [\n {\n color: \"default\",\n isBordered: true,\n class: {\n base: \"ring-default\"\n }\n },\n {\n color: \"primary\",\n isBordered: true,\n class: {\n base: \"ring-primary\"\n }\n },\n {\n color: \"secondary\",\n isBordered: true,\n class: {\n base: \"ring-secondary\"\n }\n },\n {\n color: \"success\",\n isBordered: true,\n class: {\n base: \"ring-success\"\n }\n },\n {\n color: \"warning\",\n isBordered: true,\n class: {\n base: \"ring-warning\"\n }\n },\n {\n color: \"danger\",\n isBordered: true,\n class: {\n base: \"ring-danger\"\n }\n }\n ]\n});\nvar avatarGroup = tv({\n slots: {\n base: \"flex items-center justify-center h-auto w-max\",\n count: \"hover:-translate-x-0\"\n },\n variants: {\n isGrid: {\n true: \"inline-grid grid-cols-4 gap-3\"\n }\n }\n});\n\nexport {\n avatar,\n avatarGroup\n};\n","// src/index.ts\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nfunction useIsMounted(props = {}) {\n const { rerender = false, delay = 0 } = props;\n const isMountedRef = useRef(false);\n const [isMounted, setIsMounted] = useState(false);\n useEffect(() => {\n isMountedRef.current = true;\n let timer = null;\n if (rerender) {\n if (delay > 0) {\n timer = setTimeout(() => {\n setIsMounted(true);\n }, delay);\n } else {\n setIsMounted(true);\n }\n }\n return () => {\n isMountedRef.current = false;\n if (rerender) {\n setIsMounted(false);\n }\n if (timer) {\n clearTimeout(timer);\n }\n };\n }, [rerender]);\n return [useCallback(() => isMountedRef.current, []), isMounted];\n}\nexport {\n useIsMounted\n};\n","import {useId as $83Elw$useId, useLabels as $83Elw$useLabels} 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 */ \nfunction $d191a55c9702f145$export$8467354a121f1b9f(props) {\n let { id: id, label: label, 'aria-labelledby': ariaLabelledby, 'aria-label': ariaLabel, labelElementType: labelElementType = 'label' } = props;\n id = (0, $83Elw$useId)(id);\n let labelId = (0, $83Elw$useId)();\n let labelProps = {};\n if (label) {\n ariaLabelledby = ariaLabelledby ? `${labelId} ${ariaLabelledby}` : labelId;\n labelProps = {\n id: labelId,\n htmlFor: labelElementType === 'label' ? id : undefined\n };\n } else if (!ariaLabelledby && !ariaLabel && process.env.NODE_ENV !== 'production') console.warn('If you do not provide a visible label, you must specify an aria-label or aria-labelledby attribute for accessibility');\n let fieldProps = (0, $83Elw$useLabels)({\n id: id,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby\n });\n return {\n labelProps: labelProps,\n fieldProps: fieldProps\n };\n}\n\n\nexport {$d191a55c9702f145$export$8467354a121f1b9f as useLabel};\n//# sourceMappingURL=useLabel.module.js.map\n","import {filterDOMProps as $2xLm1$filterDOMProps, clamp as $2xLm1$clamp, mergeProps as $2xLm1$mergeProps} from \"@react-aria/utils\";\nimport {useLabel as $2xLm1$useLabel} from \"@react-aria/label\";\nimport {useNumberFormatter as $2xLm1$useNumberFormatter} from \"@react-aria/i18n\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\nfunction $204d9ebcedfb8806$export$ed5abd763a836edc(props) {\n let { value: value = 0, minValue: minValue = 0, maxValue: maxValue = 100, valueLabel: valueLabel, isIndeterminate: isIndeterminate, formatOptions: formatOptions = {\n style: 'percent'\n } } = props;\n let domProps = (0, $2xLm1$filterDOMProps)(props, {\n labelable: true\n });\n let { labelProps: labelProps, fieldProps: fieldProps } = (0, $2xLm1$useLabel)({\n ...props,\n // Progress bar is not an HTML input element so it\n // shouldn't be labeled by a <label> element.\n labelElementType: 'span'\n });\n value = (0, $2xLm1$clamp)(value, minValue, maxValue);\n let percentage = (value - minValue) / (maxValue - minValue);\n let formatter = (0, $2xLm1$useNumberFormatter)(formatOptions);\n if (!isIndeterminate && !valueLabel) {\n let valueToFormat = formatOptions.style === 'percent' ? percentage : value;\n valueLabel = formatter.format(valueToFormat);\n }\n return {\n progressBarProps: (0, $2xLm1$mergeProps)(domProps, {\n ...fieldProps,\n 'aria-valuenow': isIndeterminate ? undefined : value,\n 'aria-valuemin': minValue,\n 'aria-valuemax': maxValue,\n 'aria-valuetext': isIndeterminate ? undefined : valueLabel,\n role: 'progressbar'\n }),\n labelProps: labelProps\n };\n}\n\n\nexport {$204d9ebcedfb8806$export$ed5abd763a836edc as useProgressBar};\n//# sourceMappingURL=useProgressBar.module.js.map\n","\"use client\";\n\n// src/use-progress.ts\nimport { mapPropsVariants, useProviderContext } from \"@heroui/system\";\nimport { progress } from \"@heroui/theme\";\nimport { useDOMRef } from \"@heroui/react-utils\";\nimport { clampPercentage, clsx, dataAttr, objectToDeps, mergeProps } from \"@heroui/shared-utils\";\nimport { useMemo, useCallback } from \"react\";\nimport { useIsMounted } from \"@heroui/use-is-mounted\";\nimport { useProgressBar as useAriaProgress } from \"@react-aria/progress\";\nfunction useProgress(originalProps) {\n var _a, _b;\n const globalContext = useProviderContext();\n const [props, variantProps] = mapPropsVariants(originalProps, progress.variantKeys);\n const {\n ref,\n as,\n id,\n className,\n classNames,\n label,\n valueLabel,\n value = 0,\n minValue = 0,\n maxValue = 100,\n showValueLabel = false,\n formatOptions = {\n style: \"percent\"\n },\n ...otherProps\n } = props;\n const Component = as || \"div\";\n const domRef = useDOMRef(ref);\n const baseStyles = clsx(classNames == null ? void 0 : classNames.base, className);\n const [, isMounted] = useIsMounted({\n rerender: true,\n delay: 100\n });\n const isIndeterminate = originalProps.isIndeterminate;\n const disableAnimation = (_b = (_a = originalProps.disableAnimation) != null ? _a : globalContext == null ? void 0 : globalContext.disableAnimation) != null ? _b : false;\n const { progressBarProps, labelProps } = useAriaProgress({\n id,\n label,\n value,\n minValue,\n maxValue,\n valueLabel,\n formatOptions,\n isIndeterminate,\n \"aria-labelledby\": originalProps[\"aria-labelledby\"],\n \"aria-label\": originalProps[\"aria-label\"]\n });\n const slots = useMemo(\n () => progress({\n ...variantProps,\n disableAnimation\n }),\n [objectToDeps(variantProps), disableAnimation]\n );\n const selfMounted = disableAnimation ? true : isMounted;\n const percentage = useMemo(\n () => isIndeterminate || !selfMounted ? void 0 : clampPercentage((value - minValue) / (maxValue - minValue) * 100),\n [selfMounted, isIndeterminate, value, minValue, maxValue]\n );\n const getProgressBarProps = useCallback(\n (props2 = {}) => ({\n ref: domRef,\n \"data-indeterminate\": dataAttr(isIndeterminate),\n \"data-disabled\": dataAttr(originalProps.isDisabled),\n className: slots.base({ class: baseStyles }),\n ...mergeProps(progressBarProps, otherProps, props2)\n }),\n [\n domRef,\n slots,\n isIndeterminate,\n originalProps.isDisabled,\n baseStyles,\n progressBarProps,\n otherProps\n ]\n );\n const getLabelProps = useCallback(\n (props2 = {}) => ({\n className: slots.label({ class: classNames == null ? void 0 : classNames.label }),\n ...mergeProps(labelProps, props2)\n }),\n [slots, classNames, labelProps]\n );\n return {\n Component,\n domRef,\n slots,\n classNames,\n label,\n percentage,\n showValueLabel,\n getProgressBarProps,\n getLabelProps\n };\n}\n\nexport {\n useProgress\n};\n","\"use client\";\nimport {\n useProgress\n} from \"./chunk-Z2ODYSHN.mjs\";\n\n// src/progress.tsx\nimport { forwardRef } from \"@heroui/system\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar Progress = forwardRef((props, ref) => {\n const {\n Component,\n slots,\n classNames,\n label,\n percentage,\n showValueLabel,\n getProgressBarProps,\n getLabelProps\n } = useProgress({ ...props, ref });\n const progressBarProps = getProgressBarProps();\n const shouldShowLabelWrapper = label || showValueLabel;\n return /* @__PURE__ */ jsxs(Component, { ...progressBarProps, children: [\n shouldShowLabelWrapper ? /* @__PURE__ */ jsxs(\"div\", { className: slots.labelWrapper({ class: classNames == null ? void 0 : classNames.labelWrapper }), children: [\n label && /* @__PURE__ */ jsx(\"span\", { ...getLabelProps(), children: label }),\n showValueLabel && /* @__PURE__ */ jsx(\"span\", { className: slots.value({ class: classNames == null ? void 0 : classNames.value }), children: progressBarProps[\"aria-valuetext\"] })\n ] }) : null,\n /* @__PURE__ */ jsx(\"div\", { className: slots.track({ class: classNames == null ? void 0 : classNames.track }), children: /* @__PURE__ */ jsx(\n \"div\",\n {\n className: slots.indicator({ class: classNames == null ? void 0 : classNames.indicator }),\n style: {\n transform: `translateX(-${100 - (percentage || 0)}%)`\n }\n }\n ) })\n ] });\n});\nProgress.displayName = \"HeroUI.Progress\";\nvar progress_default = Progress;\n\nexport {\n progress_default\n};\n","\"use client\";\n\n// src/card-context.ts\nimport { createContext } from \"@heroui/react-utils\";\nvar [CardProvider, useCardContext] = createContext({\n name: \"CardContext\",\n strict: true,\n errorMessage: \"useCardContext: `context` is undefined. Seems you forgot to wrap component within <Card />\"\n});\n\nexport {\n CardProvider,\n useCardContext\n};\n","\"use client\";\nimport {\n useCardContext\n} from \"./chunk-XHGGCEVJ.mjs\";\n\n// src/card-body.tsx\nimport { forwardRef } from \"@heroui/system\";\nimport { useDOMRef } from \"@heroui/react-utils\";\nimport { clsx } from \"@heroui/shared-utils\";\nimport { jsx } from \"react/jsx-runtime\";\nvar CardBody = forwardRef((props, ref) => {\n var _a;\n const { as, className, children, ...otherProps } = props;\n const Component = as || \"div\";\n const domRef = useDOMRef(ref);\n const { slots, classNames } = useCardContext();\n const bodyStyles = clsx(classNames == null ? void 0 : classNames.body, className);\n return /* @__PURE__ */ jsx(Component, { ref: domRef, className: (_a = slots.body) == null ? void 0 : _a.call(slots, { class: bodyStyles }), ...otherProps, children });\n});\nCardBody.displayName = \"HeroUI.CardBody\";\nvar card_body_default = CardBody;\n\nexport {\n card_body_default\n};\n","\"use client\";\nimport {\n useCardContext\n} from \"./chunk-XHGGCEVJ.mjs\";\n\n// src/card-footer.tsx\nimport { forwardRef } from \"@heroui/system\";\nimport { useDOMRef } from \"@heroui/react-utils\";\nimport { clsx } from \"@heroui/shared-utils\";\nimport { jsx } from \"react/jsx-runtime\";\nvar CardFooter = forwardRef((props, ref) => {\n var _a;\n const { as, className, children, ...otherProps } = props;\n const Component = as || \"div\";\n const domRef = useDOMRef(ref);\n const { slots, classNames } = useCardContext();\n const footerStyles = clsx(classNames == null ? void 0 : classNames.footer, className);\n return /* @__PURE__ */ jsx(Component, { ref: domRef, className: (_a = slots.footer) == null ? void 0 : _a.call(slots, { class: footerStyles }), ...otherProps, children });\n});\nCardFooter.displayName = \"HeroUI.CardFooter\";\nvar card_footer_default = CardFooter;\n\nexport {\n card_footer_default\n};\n","// src/index.ts\nimport { filterDOMProps, mergeProps } from \"@react-aria/utils\";\nimport { useFocusable } from \"@react-aria/focus\";\nimport { usePress } from \"@react-aria/interactions\";\nfunction useAriaButton(props, ref) {\n let {\n elementType = \"button\",\n isDisabled,\n onPress,\n onPressStart,\n onPressEnd,\n onPressUp,\n onPressChange,\n // @ts-ignore - undocumented\n preventFocusOnPress,\n // @ts-ignore - undocumented\n allowFocusWhenDisabled,\n onClick,\n href,\n target,\n rel,\n type = \"button\",\n allowTextSelectionOnPress\n } = props;\n let additionalProps;\n if (elementType === \"button\") {\n additionalProps = {\n type,\n disabled: isDisabled\n };\n } else {\n additionalProps = {\n role: \"button\",\n href: elementType === \"a\" && !isDisabled ? href : void 0,\n target: elementType === \"a\" ? target : void 0,\n type: elementType === \"input\" ? type : void 0,\n disabled: elementType === \"input\" ? isDisabled : void 0,\n \"aria-disabled\": !isDisabled || elementType === \"input\" ? void 0 : isDisabled,\n rel: elementType === \"a\" ? rel : void 0\n };\n }\n let { pressProps, isPressed } = usePress({\n onClick,\n onPressStart,\n onPressEnd,\n onPressUp,\n onPressChange,\n onPress,\n isDisabled,\n preventFocusOnPress,\n allowTextSelectionOnPress,\n ref\n });\n let { focusableProps } = useFocusable(props, ref);\n if (allowFocusWhenDisabled) {\n focusableProps.tabIndex = isDisabled ? -1 : focusableProps.tabIndex;\n }\n let buttonProps = mergeProps(\n focusableProps,\n pressProps,\n filterDOMProps(props, { labelable: true })\n );\n return {\n isPressed,\n // Used to indicate press state for visual\n buttonProps: mergeProps(additionalProps, buttonProps, {\n \"aria-haspopup\": props[\"aria-haspopup\"],\n \"aria-expanded\": props[\"aria-expanded\"],\n \"aria-controls\": props[\"aria-controls\"],\n \"aria-pressed\": props[\"aria-pressed\"],\n \"aria-current\": props[\"aria-current\"]\n })\n };\n}\nexport {\n useAriaButton\n};\n","\"use client\";\n\n// src/ripple.tsx\nimport { AnimatePresence, m, LazyMotion } from \"framer-motion\";\nimport { clamp } from \"@heroui/shared-utils\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nvar domAnimation = () => import(\"@heroui/dom-animation\").then((res) => res.default);\nvar Ripple = (props) => {\n const { ripples = [], motionProps, color = \"currentColor\", style, onClear } = props;\n return /* @__PURE__ */ jsx(Fragment, { children: ripples.map((ripple) => {\n const duration = clamp(0.01 * ripple.size, 0.2, ripple.size > 100 ? 0.75 : 0.5);\n return /* @__PURE__ */ jsx(LazyMotion, { features: domAnimation, children: /* @__PURE__ */ jsx(AnimatePresence, { mode: \"popLayout\", children: /* @__PURE__ */ jsx(\n m.span,\n {\n animate: { transform: \"scale(2)\", opacity: 0 },\n className: \"heroui-ripple\",\n exit: { opacity: 0 },\n initial: { transform: \"scale(0)\", opacity: 0.35 },\n style: {\n position: \"absolute\",\n backgroundColor: color,\n borderRadius: \"100%\",\n transformOrigin: \"center\",\n pointerEvents: \"none\",\n overflow: \"hidden\",\n inset: 0,\n zIndex: 0,\n top: ripple.y,\n left: ripple.x,\n width: `${ripple.size}px`,\n height: `${ripple.size}px`,\n ...style\n },\n transition: { duration },\n onAnimationComplete: () => {\n onClear(ripple.key);\n },\n ...motionProps\n }\n ) }) }, ripple.key);\n }) });\n};\nRipple.displayName = \"HeroUI.Ripple\";\nvar ripple_default = Ripple;\n\nexport {\n ripple_default\n};\n","\"use client\";\n\n// src/use-ripple.ts\nimport { getUniqueID } from \"@heroui/shared-utils\";\nimport { useCallback, useState } from \"react\";\nfunction useRipple(props = {}) {\n const [ripples, setRipples] = useState([]);\n const onPress = useCallback((event) => {\n const trigger = event.target;\n const size = Math.max(trigger.clientWidth, trigger.clientHeight);\n setRipples((prevRipples) => [\n ...prevRipples,\n {\n key: getUniqueID(prevRipples.length.toString()),\n size,\n x: event.x - size / 2,\n y: event.y - size / 2\n }\n ]);\n }, []);\n const onClear = useCallback((key) => {\n setRipples((prevState) => prevState.filter((ripple) => ripple.key !== key));\n }, []);\n return { ripples, onClear, onPress, ...props };\n}\n\nexport {\n useRipple\n};\n","\"use client\";\n\n// src/use-card.ts\nimport { card } from \"@heroui/theme\";\nimport { useCallback, useMemo } from \"react\";\nimport { useFocusRing } from \"@react-aria/focus\";\nimport { useHover } from \"@react-aria/interactions\";\nimport { useAriaButton } from \"@heroui/use-aria-button\";\nimport { mapPropsVariants, useProviderContext } from \"@heroui/system\";\nimport { clsx, dataAttr, objectToDeps, chain, mergeProps } from \"@heroui/shared-utils\";\nimport { filterDOMProps } from \"@heroui/react-utils\";\nimport { useDOMRef } from \"@heroui/react-utils\";\nimport { useRipple } from \"@heroui/ripple\";\nfunction useCard(originalProps) {\n var _a, _b, _c, _d;\n const globalContext = useProviderContext();\n const [props, variantProps] = mapPropsVariants(originalProps, card.variantKeys);\n const {\n ref,\n as,\n children,\n onClick,\n onPress,\n autoFocus,\n className,\n classNames,\n allowTextSelectionOnPress = true,\n ...otherProps\n } = props;\n const domRef = useDOMRef(ref);\n const Component = as || (originalProps.isPressable ? \"button\" : \"div\");\n const shouldFilterDOMProps = typeof Component === \"string\";\n const disableAnimation = (_b = (_a = originalProps.disableAnimation) != null ? _a : globalContext == null ? void 0 : globalContext.disableAnimation) != null ? _b : false;\n const disableRipple = (_d = (_c = originalProps.disableRipple) != null ? _c : globalContext == null ? void 0 : globalContext.disableRipple) != null ? _d : false;\n const baseStyles = clsx(classNames == null ? void 0 : classNames.base, className);\n const { onClear: onClearRipple, onPress: onRipplePressHandler, ripples } = useRipple();\n const handlePress = useCallback(\n (e) => {\n if (disableRipple || disableAnimation) return;\n domRef.current && onRipplePressHandler(e);\n },\n [disableRipple, disableAnimation, domRef, onRipplePressHandler]\n );\n const { buttonProps, isPressed } = useAriaButton(\n {\n onPress: chain(onPress, handlePress),\n elementType: as,\n isDisabled: !originalProps.isPressable,\n onClick,\n allowTextSelectionOnPress,\n ...otherProps\n },\n domRef\n );\n const { hoverProps, isHovered } = useHover({\n isDisabled: !originalProps.isHoverable,\n ...otherProps\n });\n const { isFocusVisible, isFocused, focusProps } = useFocusRing({\n autoFocus\n });\n const slots = useMemo(\n () => card({\n ...variantProps,\n disableAnimation\n }),\n [objectToDeps(variantProps), disableAnimation]\n );\n const context = useMemo(\n () => ({\n slots,\n classNames,\n disableAnimation,\n isDisabled: originalProps.isDisabled,\n isFooterBlurred: originalProps.isFooterBlurred,\n fullWidth: originalProps.fullWidth\n }),\n [\n slots,\n classNames,\n originalProps.isDisabled,\n originalProps.isFooterBlurred,\n disableAnimation,\n originalProps.fullWidth\n ]\n );\n const getCardProps = useCallback(\n (props2 = {}) => {\n return {\n ref: domRef,\n className: slots.base({ class: baseStyles }),\n tabIndex: originalProps.isPressable ? 0 : -1,\n \"data-hover\": dataAttr(isHovered),\n \"data-pressed\": dataAttr(isPressed),\n \"data-focus\": dataAttr(isFocused),\n \"data-focus-visible\": dataAttr(isFocusVisible),\n \"data-disabled\": dataAttr(originalProps.isDisabled),\n ...mergeProps(\n originalProps.isPressable ? { ...buttonProps, ...focusProps, role: \"button\" } : {},\n originalProps.isHoverable ? hoverProps : {},\n filterDOMProps(otherProps, {\n enabled: shouldFilterDOMProps\n }),\n filterDOMProps(props2)\n )\n };\n },\n [\n domRef,\n slots,\n baseStyles,\n shouldFilterDOMProps,\n originalProps.isPressable,\n originalProps.isHoverable,\n originalProps.isDisabled,\n isHovered,\n isPressed,\n isFocusVisible,\n buttonProps,\n focusProps,\n hoverProps,\n otherProps\n ]\n );\n const getRippleProps = useCallback(\n () => ({ ripples, onClear: onClearRipple }),\n [ripples, onClearRipple]\n );\n return {\n context,\n domRef,\n Component,\n classNames,\n children,\n isHovered,\n isPressed,\n disableAnimation,\n isPressable: originalProps.isPressable,\n isHoverable: originalProps.isHoverable,\n disableRipple,\n handlePress,\n isFocusVisible,\n getCardProps,\n getRippleProps\n };\n}\n\nexport {\n useCard\n};\n","\"use client\";\nimport {\n CardProvider\n} from \"./chunk-XHGGCEVJ.mjs\";\nimport {\n useCard\n} from \"./chunk-DHMIPUUY.mjs\";\n\n// src/card.tsx\nimport { forwardRef } from \"@heroui/system\";\nimport { Ripple } from \"@heroui/ripple\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar Card = forwardRef((props, ref) => {\n const {\n children,\n context,\n Component,\n isPressable,\n disableAnimation,\n disableRipple,\n getCardProps,\n getRippleProps\n } = useCard({ ...props, ref });\n return /* @__PURE__ */ jsxs(Component, { ...getCardProps(), children: [\n /* @__PURE__ */ jsx(CardProvider, { value: context, children }),\n isPressable && !disableAnimation && !disableRipple && /* @__PURE__ */ jsx(Ripple, { ...getRippleProps() })\n ] });\n});\nCard.displayName = \"HeroUI.Card\";\nvar card_default = Card;\n\nexport {\n card_default\n};\n","/**\n * @license lucide-react v0.541.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst toCamelCase = (string) => string.replace(\n /^([A-Z])|[\\s-_]+(\\w)/g,\n (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()\n);\nconst toPascalCase = (string) => {\n const camelCase = toCamelCase(string);\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\n};\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\nconst hasA11yProp = (props) => {\n for (const prop in props) {\n if (prop.startsWith(\"aria-\") || prop === \"role\" || prop === \"title\") {\n return true;\n }\n }\n};\n\nexport { hasA11yProp, mergeClasses, toCamelCase, toKebabCase, toPascalCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.541.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.541.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses, hasA11yProp } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...!children && !hasA11yProp(rest) && { \"aria-hidden\": \"true\" },\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n )\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.541.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className\n ),\n ...props\n })\n );\n Component.displayName = toPascalCase(iconName);\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.541.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"m12 5 7 7-7 7\", key: \"xquz4c\" }]\n];\nconst ArrowRight = createLucideIcon(\"arrow-right\", __iconNode);\n\nexport { __iconNode, ArrowRight as default };\n//# sourceMappingURL=arrow-right.js.map\n","/**\n * @license lucide-react v0.541.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m6 9 6 6 6-6\", key: \"qrunsl\" }]];\nconst ChevronDown = createLucideIcon(\"chevron-down\", __iconNode);\n\nexport { __iconNode, ChevronDown as default };\n//# sourceMappingURL=chevron-down.js.map\n","/**\n * @license lucide-react v0.541.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m9 18 6-6-6-6\", key: \"mthhwq\" }]];\nconst ChevronRight = createLucideIcon(\"chevron-right\", __iconNode);\n\nexport { __iconNode, ChevronRight as default };\n//# sourceMappingURL=chevron-right.js.map\n","// 内容手风琴组件类型定义\r\nimport type { KnowledgeItem, Lesson, Unit } from '../../types';\r\n\r\nexport interface ContentAccordionProps {\r\n /** 当前学习单元数据 */\r\n unit: Unit | null;\r\n /** 激活的课程ID列表 */\r\n activeLessonIds: string[];\r\n /** 切换课程激活状态的函数 */\r\n onToggleLesson: (lessonId: string) => void;\r\n /** 点击学习按钮的回调 */\r\n onLearnAction: (knowledgeItem: KnowledgeItem) => void;\r\n /** 加载状态 */\r\n loading?: boolean;\r\n /** 自定义类名 */\r\n className?: string;\r\n /** 空状态显示内容 */\r\n emptyState?: React.ReactNode;\r\n}\r\n\r\nexport interface ContentAccordionState {\r\n /** 内部展开状态管理 */\r\n expandedLessons: Set<string>;\r\n /** 动画状态 */\r\n isAnimating: boolean;\r\n}\r\n\r\nexport interface LessonItemProps {\r\n /** 课程数据 */\r\n lesson: Lesson;\r\n /** 是否展开状态 */\r\n isExpanded: boolean;\r\n /** 切换展开状态回调 */\r\n onToggle: (lessonId: string) => void;\r\n /** 学习按钮点击回调 */\r\n onLearnAction: (knowledgeItem: KnowledgeItem) => void;\r\n}\r\n\r\nexport interface KnowledgeCardProps {\r\n /** 知识点数据 */\r\n knowledgeItem: KnowledgeItem;\r\n /** 学习按钮点击回调 */\r\n onLearnAction: (knowledgeItem: KnowledgeItem) => void;\r\n}\r\n\r\n// 工具函数类型\r\nexport type GetButtonTextFn = (progress: number) => string;\r\nexport type CalculateLessonProgressFn = (knowledgeItems: KnowledgeItem[]) => number;\r\n\r\n// 进度按钮文本生成算法\r\nexport const getButtonText: GetButtonTextFn = (progress: number): string => {\r\n if (progress === 0) return '开始学习';\r\n if (progress === 100) return '复习';\r\n return '继续学习';\r\n};\r\n\r\n// 课程进度计算算法\r\nexport const calculateLessonProgress: CalculateLessonProgressFn = (knowledgeItems: KnowledgeItem[]): number => {\r\n if (knowledgeItems.length === 0) return 0;\r\n const totalProgress = knowledgeItems.reduce((sum, item) => sum + item.progress, 0);\r\n return Math.round(totalProgress / knowledgeItems.length);\r\n};","import React from 'react';\r\nimport { Progress } from '@heroui/progress';\r\nimport { Card, CardBody, CardFooter } from '@heroui/card';\r\nimport { Button } from '../Button';\r\nimport { ChevronDown, ChevronRight } from 'lucide-react';\r\nimport type { ContentAccordionProps, LessonItemProps, KnowledgeCardProps } from './types';\r\nimport { getButtonText, calculateLessonProgress } from './types';\r\nimport './ContentAccordion.css';\r\n\r\nconst KnowledgeCard: React.FC<KnowledgeCardProps> = ({ knowledgeItem, onLearnAction }) => {\r\n const handleLearnClick = () => {\r\n onLearnAction(knowledgeItem);\r\n };\r\n\r\n // 调试信息\r\n console.log('KnowledgeCard render:', {\r\n progress: knowledgeItem.progress,\r\n text: getButtonText(knowledgeItem.progress)\r\n });\r\n\r\n return (\r\n <Card className=\"content-accordion__knowledge-card\">\r\n <CardBody>\r\n <h3 className=\"content-accordion__knowledge-title\">{knowledgeItem.title}</h3>\r\n <p className=\"content-accordion__knowledge-description\">{knowledgeItem.description}</p>\r\n </CardBody>\r\n <CardFooter className=\"content-accordion__knowledge-actions\">\r\n <div className=\"content-accordion__progress-container\">\r\n <Progress\r\n value={knowledgeItem.progress}\r\n size=\"sm\"\r\n aria-label={`${knowledgeItem.title} 进度`}\r\n className=\"content-accordion__progress-bar\"\r\n />\r\n <span className=\"content-accordion__progress-text\">{knowledgeItem.progress}%</span>\r\n </div>\r\n <Button\r\n size=\"sm\"\r\n radius=\"md\"\r\n onClick={handleLearnClick}\r\n progress={knowledgeItem.progress}\r\n variant={knowledgeItem.progress === 100 ? 'light' : knowledgeItem.progress === 0 ? 'solid' : 'bordered'}\r\n className=\"content-accordion__learn-button\"\r\n >\r\n {getButtonText(knowledgeItem.progress)}\r\n </Button>\r\n </CardFooter>\r\n </Card>\r\n );\r\n};\r\n\r\nconst LessonItem: React.FC<LessonItemProps> = ({ lesson, isExpanded, onToggle, onLearnAction }) => {\r\n const handleToggle = () => {\r\n onToggle(lesson.id);\r\n };\r\n\r\n const lessonProgress = calculateLessonProgress(lesson.knowledgeItems);\r\n\r\n return (\r\n <div className={`content-accordion__lesson-item ${isExpanded ? 'content-accordion__lesson-item--expanded' : ''}`}>\r\n <div\r\n className=\"content-accordion__lesson-header\"\r\n onClick={handleToggle}\r\n role=\"button\"\r\n tabIndex={0}\r\n aria-expanded={isExpanded}\r\n aria-label={`${lesson.title},点击${isExpanded ? '收起' : '展开'}`}\r\n >\r\n <div className=\"content-accordion__lesson-header-content\">\r\n <h2 className=\"content-accordion__lesson-title\">{lesson.title}</h2>\r\n <span className=\"content-accordion__lesson-duration\">约 {lesson.duration} 分钟</span>\r\n </div>\r\n <div className=\"content-accordion__lesson-actions\">\r\n <span className=\"content-accordion__lesson-progress\">{lessonProgress}%</span>\r\n {isExpanded ? (\r\n <ChevronDown className=\"content-accordion__lesson-icon\" />\r\n ) : (\r\n <ChevronRight className=\"content-accordion__lesson-icon\" />\r\n )}\r\n </div>\r\n </div>\r\n\r\n {isExpanded && (\r\n <div className=\"content-accordion__knowledge-list\">\r\n {lesson.knowledgeItems.map((item) => (\r\n <KnowledgeCard\r\n key={item.id}\r\n knowledgeItem={item}\r\n onLearnAction={onLearnAction}\r\n />\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport const ContentAccordion: React.FC<ContentAccordionProps> = ({\r\n unit,\r\n activeLessonIds,\r\n onToggleLesson,\r\n onLearnAction,\r\n loading = false,\r\n className = '',\r\n emptyState\r\n}) => {\r\n if (loading) {\r\n return (\r\n <div className=\"content-accordion content-accordion--loading\">\r\n <div className=\"content-accordion__loading\">加载中...</div>\r\n </div>\r\n );\r\n }\r\n\r\n if (!unit) {\r\n return (\r\n <div className=\"content-accordion content-accordion--empty\">\r\n {emptyState || <div className=\"content-accordion__empty\">暂无学习内容</div>}\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className={`content-accordion ${className}`}>\r\n {/* 单元头部信息 */}\r\n <header className=\"content-accordion__header\">\r\n <h1 className=\"content-accordion__unit-title\">{unit.title}</h1>\r\n <p className=\"content-accordion__unit-description\">{unit.description}</p>\r\n <div className=\"content-accordion__unit-meta\">\r\n <span>总共 {unit.totalLessons} 节课</span>\r\n <span>•</span>\r\n <span>预计学习 {unit.estimatedDuration}</span>\r\n </div>\r\n </header>\r\n\r\n {/* 课程列表 */}\r\n <div className=\"content-accordion__lessons\">\r\n {unit.lessons.map((lesson) => (\r\n <LessonItem\r\n key={lesson.id}\r\n lesson={lesson}\r\n isExpanded={activeLessonIds.includes(lesson.id)}\r\n onToggle={onToggleLesson}\r\n onLearnAction={onLearnAction}\r\n />\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n};","\"use client\";\n\n// src/avatar-icon.tsx\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar AvatarIcon = () => /* @__PURE__ */ jsxs(\n \"svg\",\n {\n \"aria-hidden\": \"true\",\n fill: \"none\",\n height: \"80%\",\n role: \"presentation\",\n viewBox: \"0 0 24 24\",\n width: \"80%\",\n children: [\n /* @__PURE__ */ jsx(\n \"path\",\n {\n d: \"M12 2C9.38 2 7.25 4.13 7.25 6.75C7.25 9.32 9.26 11.4 11.88 11.49C11.96 11.48 12.04 11.48 12.1 11.49C12.12 11.49 12.13 11.49 12.15 11.49C12.16 11.49 12.16 11.49 12.17 11.49C14.73 11.4 16.74 9.32 16.75 6.75C16.75 4.13 14.62 2 12 2Z\",\n fill: \"currentColor\"\n }\n ),\n /* @__PURE__ */ jsx(\n \"path\",\n {\n d: \"M17.0809 14.1489C14.2909 12.2889 9.74094 12.2889 6.93094 14.1489C5.66094 14.9989 4.96094 16.1489 4.96094 17.3789C4.96094 18.6089 5.66094 19.7489 6.92094 20.5889C8.32094 21.5289 10.1609 21.9989 12.0009 21.9989C13.8409 21.9989 15.6809 21.5289 17.0809 20.5889C18.3409 19.7389 19.0409 18.5989 19.0409 17.3589C19.0309 16.1289 18.3409 14.9889 17.0809 14.1489Z\",\n fill: \"currentColor\"\n }\n )\n ]\n }\n);\n\nexport {\n AvatarIcon\n};\n","\"use client\";\n\n// src/avatar-group-context.ts\nimport { createContext } from \"@heroui/react-utils\";\nvar [AvatarGroupProvider, useAvatarGroupContext] = createContext({\n name: \"AvatarGroupContext\",\n strict: false\n});\n\nexport {\n AvatarGroupProvider,\n useAvatarGroupContext\n};\n","// src/index.ts\nimport { useEffect, useLayoutEffect } from \"react\";\nvar useSafeLayoutEffect = Boolean(globalThis == null ? void 0 : globalThis.document) ? useLayoutEffect : useEffect;\nexport {\n useSafeLayoutEffect\n};\n","// src/index.ts\nimport { useRef, useState, useEffect, useCallback } from \"react\";\nimport { useIsHydrated } from \"@heroui/react-utils\";\nimport { useSafeLayoutEffect } from \"@heroui/use-safe-layout-effect\";\nfunction useImage(props = {}) {\n const {\n onLoad,\n onError,\n ignoreFallback,\n src,\n crossOrigin,\n srcSet,\n sizes,\n loading,\n shouldBypassImageLoad = false\n } = props;\n const isHydrated = useIsHydrated();\n const imageRef = useRef(isHydrated ? new Image() : null);\n const [status, setStatus] = useState(\"pending\");\n useEffect(() => {\n if (!imageRef.current) return;\n imageRef.current.onload = (event) => {\n flush();\n setStatus(\"loaded\");\n onLoad == null ? void 0 : onLoad(event);\n };\n imageRef.current.onerror = (error) => {\n flush();\n setStatus(\"failed\");\n onError == null ? void 0 : onError(error);\n };\n }, [imageRef.current]);\n const flush = () => {\n if (imageRef.current) {\n imageRef.current.onload = null;\n imageRef.current.onerror = null;\n imageRef.current = null;\n }\n };\n const load = useCallback(() => {\n if (!src) return \"pending\";\n if (ignoreFallback || shouldBypassImageLoad) return \"loaded\";\n const img = new Image();\n img.src = src;\n if (crossOrigin) img.crossOrigin = crossOrigin;\n if (srcSet) img.srcset = srcSet;\n if (sizes) img.sizes = sizes;\n if (loading) img.loading = loading;\n imageRef.current = img;\n if (img.complete && img.naturalWidth) {\n return \"loaded\";\n }\n return \"loading\";\n }, [src, crossOrigin, srcSet, sizes, onLoad, onError, loading, shouldBypassImageLoad]);\n useSafeLayoutEffect(() => {\n if (isHydrated) {\n setStatus(load());\n }\n }, [isHydrated, load]);\n return ignoreFallback ? \"loaded\" : status;\n}\nvar shouldShowFallbackImage = (status, fallbackStrategy) => status !== \"loaded\" && fallbackStrategy === \"beforeLoadOrError\" || status === \"failed\" && fallbackStrategy === \"onError\";\nexport {\n shouldShowFallbackImage,\n useImage\n};\n","\"use client\";\nimport {\n useAvatarGroupContext\n} from \"./chunk-JUJ53SJZ.mjs\";\n\n// src/use-avatar.ts\nimport { avatar } from \"@heroui/theme\";\nimport { useProviderContext } from \"@heroui/system\";\nimport { useDOMRef, filterDOMProps } from \"@heroui/react-utils\";\nimport { clsx, safeText, dataAttr, mergeProps } from \"@heroui/shared-utils\";\nimport { useFocusRing } from \"@react-aria/focus\";\nimport { useMemo, useCallback } from \"react\";\nimport { useImage } from \"@heroui/use-image\";\nimport { useHover } from \"@react-aria/interactions\";\nfunction useAvatar(originalProps = {}) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const globalContext = useProviderContext();\n const groupContext = useAvatarGroupContext();\n const isInGroup = !!groupContext;\n const {\n as,\n ref,\n src,\n name,\n icon,\n classNames,\n fallback,\n alt = name || \"avatar\",\n imgRef: imgRefProp,\n color = (_a = groupContext == null ? void 0 : groupContext.color) != null ? _a : \"default\",\n radius = (_b = groupContext == null ? void 0 : groupContext.radius) != null ? _b : \"full\",\n size = (_c = groupContext == null ? void 0 : groupContext.size) != null ? _c : \"md\",\n isBordered = (_d = groupContext == null ? void 0 : groupContext.isBordered) != null ? _d : false,\n isDisabled = (_e = groupContext == null ? void 0 : groupContext.isDisabled) != null ? _e : false,\n isFocusable = false,\n getInitials = safeText,\n ignoreFallback = false,\n showFallback: showFallbackProp = false,\n ImgComponent = \"img\",\n imgProps,\n className,\n onError,\n disableAnimation: disableAnimationProp,\n ...otherProps\n } = originalProps;\n const Component = as || \"span\";\n const domRef = useDOMRef(ref);\n const imgRef = useDOMRef(imgRefProp);\n const { isFocusVisible, isFocused, focusProps } = useFocusRing();\n const { isHovered, hoverProps } = useHover({ isDisabled });\n const disableAnimation = (_f = disableAnimationProp != null ? disableAnimationProp : globalContext == null ? void 0 : globalContext.disableAnimation) != null ? _f : false;\n const isHeroImage = (_h = typeof ImgComponent === \"object\" && ((_g = ImgComponent == null ? void 0 : ImgComponent.displayName) == null ? void 0 : _g.includes(\"HeroUI\"))) != null ? _h : false;\n const imageStatus = useImage({\n src,\n onError,\n ignoreFallback,\n shouldBypassImageLoad: as !== void 0 || ImgComponent !== \"img\" && !isHeroImage\n });\n const isImgLoaded = imageStatus === \"loaded\";\n const shouldFilterDOMProps = !isHeroImage;\n const showFallback = (!src || !isImgLoaded) && showFallbackProp;\n const slots = useMemo(\n () => {\n var _a2;\n return avatar({\n color,\n radius,\n size,\n isBordered,\n isDisabled,\n isInGroup,\n disableAnimation,\n isInGridGroup: (_a2 = groupContext == null ? void 0 : groupContext.isGrid) != null ? _a2 : false\n });\n },\n [\n color,\n radius,\n size,\n isBordered,\n isDisabled,\n disableAnimation,\n isInGroup,\n groupContext == null ? void 0 : groupContext.isGrid\n ]\n );\n const baseStyles = clsx(classNames == null ? void 0 : classNames.base, className);\n const canBeFocused = useMemo(() => {\n return isFocusable || as === \"button\";\n }, [isFocusable, as]);\n const getAvatarProps = useCallback(\n (props = {}) => ({\n ref: domRef,\n tabIndex: canBeFocused ? 0 : -1,\n \"data-hover\": dataAttr(isHovered),\n \"data-focus\": dataAttr(isFocused),\n \"data-focus-visible\": dataAttr(isFocusVisible),\n className: slots.base({\n class: clsx(baseStyles, props == null ? void 0 : props.className)\n }),\n ...mergeProps(otherProps, hoverProps, canBeFocused ? focusProps : {})\n }),\n [canBeFocused, slots, baseStyles, focusProps, otherProps]\n );\n const getImageProps = useCallback(\n (props = {}) => ({\n ref: imgRef,\n src,\n \"data-loaded\": dataAttr(isImgLoaded),\n className: slots.img({ class: classNames == null ? void 0 : classNames.img }),\n ...mergeProps(\n imgProps,\n props,\n filterDOMProps({ disableAnimation }, {\n enabled: shouldFilterDOMProps\n })\n )\n }),\n [slots, isImgLoaded, imgProps, disableAnimation, src, imgRef, shouldFilterDOMProps]\n );\n return {\n Component,\n ImgComponent,\n src,\n alt,\n icon,\n name,\n imgRef,\n slots,\n classNames,\n fallback,\n isImgLoaded,\n showFallback,\n ignoreFallback,\n getInitials,\n getAvatarProps,\n getImageProps\n };\n}\n\nexport {\n useAvatar\n};\n","\"use client\";\nimport {\n AvatarIcon\n} from \"./chunk-25E6VDTZ.mjs\";\nimport {\n useAvatar\n} from \"./chunk-S5XC7GTZ.mjs\";\n\n// src/avatar.tsx\nimport { useMemo } from \"react\";\nimport { forwardRef } from \"@heroui/system\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar Avatar = forwardRef((props, ref) => {\n const {\n Component,\n ImgComponent,\n src,\n icon = /* @__PURE__ */ jsx(AvatarIcon, {}),\n alt,\n classNames,\n slots,\n name,\n showFallback,\n fallback: fallbackComponent,\n getInitials,\n getAvatarProps,\n getImageProps\n } = useAvatar({\n ...props,\n ref\n });\n const fallback = useMemo(() => {\n if (!showFallback && src) return null;\n if (fallbackComponent) {\n return /* @__PURE__ */ jsx(\"div\", { \"aria-label\": alt, className: slots.fallback({ class: classNames == null ? void 0 : classNames.fallback }), role: \"img\", children: fallbackComponent });\n }\n return name ? /* @__PURE__ */ jsx(\"span\", { \"aria-label\": alt, className: slots.name({ class: classNames == null ? void 0 : classNames.name }), role: \"img\", children: getInitials(name) }) : /* @__PURE__ */ jsx(\"span\", { \"aria-label\": alt, className: slots.icon({ class: classNames == null ? void 0 : classNames.icon }), role: \"img\", children: icon });\n }, [showFallback, src, fallbackComponent, name, classNames]);\n return /* @__PURE__ */ jsxs(Component, { ...getAvatarProps(), children: [\n src && /* @__PURE__ */ jsx(ImgComponent, { ...getImageProps(), alt }),\n fallback\n ] });\n});\nAvatar.displayName = \"HeroUI.Avatar\";\nvar avatar_default = Avatar;\n\nexport {\n avatar_default\n};\n","\"use client\";\n\n// src/button-group-context.ts\nimport { createContext } from \"@heroui/react-utils\";\nvar [ButtonGroupProvider, useButtonGroupContext] = createContext({\n name: \"ButtonGroupContext\",\n strict: false\n});\n\nexport {\n ButtonGroupProvider,\n useButtonGroupContext\n};\n","\"use client\";\nimport {\n useButtonGroupContext\n} from \"./chunk-3SAWKTTV.mjs\";\n\n// src/use-button.ts\nimport { useProviderContext } from \"@heroui/system\";\nimport { dataAttr, chain, mergeProps } from \"@heroui/shared-utils\";\nimport { useCallback } from \"react\";\nimport { useFocusRing } from \"@react-aria/focus\";\nimport { useDOMRef, filterDOMProps } from \"@heroui/react-utils\";\nimport { button } from \"@heroui/theme\";\nimport { isValidElement, cloneElement, useMemo } from \"react\";\nimport { useAriaButton } from \"@heroui/use-aria-button\";\nimport { useHover } from \"@react-aria/interactions\";\nimport { useRipple } from \"@heroui/ripple\";\nfunction useButton(props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i;\n const groupContext = useButtonGroupContext();\n const globalContext = useProviderContext();\n const isInGroup = !!groupContext;\n const {\n ref,\n as,\n children,\n startContent: startContentProp,\n endContent: endContentProp,\n autoFocus,\n className,\n spinner,\n isLoading = false,\n disableRipple: disableRippleProp = false,\n fullWidth = (_a = groupContext == null ? void 0 : groupContext.fullWidth) != null ? _a : false,\n radius = groupContext == null ? void 0 : groupContext.radius,\n size = (_b = groupContext == null ? void 0 : groupContext.size) != null ? _b : \"md\",\n color = (_c = groupContext == null ? void 0 : groupContext.color) != null ? _c : \"default\",\n variant = (_d = groupContext == null ? void 0 : groupContext.variant) != null ? _d : \"solid\",\n disableAnimation = (_f = (_e = groupContext == null ? void 0 : groupContext.disableAnimation) != null ? _e : globalContext == null ? void 0 : globalContext.disableAnimation) != null ? _f : false,\n isDisabled: isDisabledProp = (_g = groupContext == null ? void 0 : groupContext.isDisabled) != null ? _g : false,\n isIconOnly = (_h = groupContext == null ? void 0 : groupContext.isIconOnly) != null ? _h : false,\n spinnerPlacement = \"start\",\n onPress,\n onClick,\n ...otherProps\n } = props;\n const Component = as || \"button\";\n const shouldFilterDOMProps = typeof Component === \"string\";\n const domRef = useDOMRef(ref);\n const disableRipple = (_i = disableRippleProp || (globalContext == null ? void 0 : globalContext.disableRipple)) != null ? _i : disableAnimation;\n const { isFocusVisible, isFocused, focusProps } = useFocusRing({\n autoFocus\n });\n const isDisabled = isDisabledProp || isLoading;\n const styles = useMemo(\n () => button({\n size,\n color,\n variant,\n radius,\n fullWidth,\n isDisabled,\n isInGroup,\n disableAnimation,\n isIconOnly,\n className\n }),\n [\n size,\n color,\n variant,\n radius,\n fullWidth,\n isDisabled,\n isInGroup,\n isIconOnly,\n disableAnimation,\n className\n ]\n );\n const { onPress: onRipplePressHandler, onClear: onClearRipple, ripples } = useRipple();\n const handlePress = useCallback(\n (e) => {\n if (disableRipple || isDisabled || disableAnimation) return;\n domRef.current && onRipplePressHandler(e);\n },\n [disableRipple, isDisabled, disableAnimation, domRef, onRipplePressHandler]\n );\n const { buttonProps: ariaButtonProps, isPressed } = useAriaButton(\n {\n elementType: as,\n isDisabled,\n onPress: chain(onPress, handlePress),\n onClick,\n ...otherProps\n },\n domRef\n );\n const { isHovered, hoverProps } = useHover({ isDisabled });\n const getButtonProps = useCallback(\n (props2 = {}) => ({\n \"data-disabled\": dataAttr(isDisabled),\n \"data-focus\": dataAttr(isFocused),\n \"data-pressed\": dataAttr(isPressed),\n \"data-focus-visible\": dataAttr(isFocusVisible),\n \"data-hover\": dataAttr(isHovered),\n \"data-loading\": dataAttr(isLoading),\n ...mergeProps(\n ariaButtonProps,\n focusProps,\n hoverProps,\n filterDOMProps(otherProps, {\n enabled: shouldFilterDOMProps\n }),\n filterDOMProps(props2)\n ),\n className: styles\n }),\n [\n isLoading,\n isDisabled,\n isFocused,\n isPressed,\n shouldFilterDOMProps,\n isFocusVisible,\n isHovered,\n ariaButtonProps,\n focusProps,\n hoverProps,\n otherProps,\n styles\n ]\n );\n const getIconClone = (icon) => isValidElement(icon) ? cloneElement(icon, {\n // @ts-ignore\n \"aria-hidden\": true,\n focusable: false\n }) : null;\n const startContent = getIconClone(startContentProp);\n const endContent = getIconClone(endContentProp);\n const spinnerSize = useMemo(() => {\n const buttonSpinnerSizeMap = {\n sm: \"sm\",\n md: \"sm\",\n lg: \"md\"\n };\n return buttonSpinnerSizeMap[size];\n }, [size]);\n const getRippleProps = useCallback(\n () => ({ ripples, onClear: onClearRipple }),\n [ripples, onClearRipple]\n );\n return {\n Component,\n children,\n domRef,\n spinner,\n styles,\n startContent,\n endContent,\n isLoading,\n spinnerPlacement,\n spinnerSize,\n disableRipple,\n getButtonProps,\n getRippleProps,\n isIconOnly\n };\n}\n\nexport {\n useButton\n};\n","\"use client\";\n\n// src/use-spinner.ts\nimport { mapPropsVariants } from \"@heroui/system-rsc\";\nimport { spinner } from \"@heroui/theme\";\nimport { clsx, objectToDeps } from \"@heroui/shared-utils\";\nimport { useMemo, useCallback } from \"react\";\nimport { useProviderContext } from \"@heroui/system\";\nfunction useSpinner(originalProps) {\n var _a, _b;\n const [props, variantProps] = mapPropsVariants(originalProps, spinner.variantKeys);\n const globalContext = useProviderContext();\n const variant = (_b = (_a = originalProps == null ? void 0 : originalProps.variant) != null ? _a : globalContext == null ? void 0 : globalContext.spinnerVariant) != null ? _b : \"default\";\n const { children, className, classNames, label: labelProp, ...otherProps } = props;\n const slots = useMemo(() => spinner({ ...variantProps }), [objectToDeps(variantProps)]);\n const baseStyles = clsx(classNames == null ? void 0 : classNames.base, className);\n const label = labelProp || children;\n const ariaLabel = useMemo(() => {\n if (label && typeof label === \"string\") {\n return label;\n }\n return !otherProps[\"aria-label\"] ? \"Loading\" : \"\";\n }, [children, label, otherProps[\"aria-label\"]]);\n const getSpinnerProps = useCallback(\n () => ({\n \"aria-label\": ariaLabel,\n className: slots.base({\n class: baseStyles\n }),\n ...otherProps\n }),\n [ariaLabel, slots, baseStyles, otherProps]\n );\n return { label, slots, classNames, variant, getSpinnerProps };\n}\n\nexport {\n useSpinner\n};\n","\"use client\";\nimport {\n useSpinner\n} from \"./chunk-IKKYW34A.mjs\";\n\n// src/spinner.tsx\nimport { forwardRef } from \"@heroui/system-rsc\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar Spinner = forwardRef((props, ref) => {\n const { slots, classNames, label, variant, getSpinnerProps } = useSpinner({ ...props });\n if (variant === \"wave\" || variant === \"dots\") {\n return /* @__PURE__ */ jsxs(\"div\", { ref, ...getSpinnerProps(), children: [\n /* @__PURE__ */ jsx(\"div\", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: [...new Array(3)].map((_, index) => /* @__PURE__ */ jsx(\n \"i\",\n {\n className: slots.dots({ class: classNames == null ? void 0 : classNames.dots }),\n style: {\n \"--dot-index\": index\n }\n },\n `dot-${index}`\n )) }),\n label && /* @__PURE__ */ jsx(\"span\", { className: slots.label({ class: classNames == null ? void 0 : classNames.label }), children: label })\n ] });\n }\n if (variant === \"simple\") {\n return /* @__PURE__ */ jsxs(\"div\", { ref, ...getSpinnerProps(), children: [\n /* @__PURE__ */ jsxs(\n \"svg\",\n {\n className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }),\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n children: [\n /* @__PURE__ */ jsx(\n \"circle\",\n {\n className: slots.circle1({ class: classNames == null ? void 0 : classNames.circle1 }),\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n stroke: \"currentColor\",\n strokeWidth: \"4\"\n }\n ),\n /* @__PURE__ */ jsx(\n \"path\",\n {\n className: slots.circle2({ class: classNames == null ? void 0 : classNames.circle2 }),\n d: \"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\",\n fill: \"currentColor\"\n }\n )\n ]\n }\n ),\n label && /* @__PURE__ */ jsx(\"span\", { className: slots.label({ class: classNames == null ? void 0 : classNames.label }), children: label })\n ] });\n }\n if (variant === \"spinner\") {\n return /* @__PURE__ */ jsxs(\"div\", { ref, ...getSpinnerProps(), children: [\n /* @__PURE__ */ jsx(\"div\", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: [...new Array(12)].map((_, index) => /* @__PURE__ */ jsx(\n \"i\",\n {\n className: slots.spinnerBars({ class: classNames == null ? void 0 : classNames.spinnerBars }),\n style: {\n \"--bar-index\": index\n }\n },\n `star-${index}`\n )) }),\n label && /* @__PURE__ */ jsx(\"span\", { className: slots.label({ class: classNames == null ? void 0 : classNames.label }), children: label })\n ] });\n }\n return /* @__PURE__ */ jsxs(\"div\", { ref, ...getSpinnerProps(), children: [\n /* @__PURE__ */ jsxs(\"div\", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: [\n /* @__PURE__ */ jsx(\"i\", { className: slots.circle1({ class: classNames == null ? void 0 : classNames.circle1 }) }),\n /* @__PURE__ */ jsx(\"i\", { className: slots.circle2({ class: classNames == null ? void 0 : classNames.circle2 }) })\n ] }),\n label && /* @__PURE__ */ jsx(\"span\", { className: slots.label({ class: classNames == null ? void 0 : classNames.label }), children: label })\n ] });\n});\nSpinner.displayName = \"HeroUI.Spinner\";\nvar spinner_default = Spinner;\n\nexport {\n spinner_default\n};\n","\"use client\";\nimport {\n useButton\n} from \"./chunk-REKYGLAJ.mjs\";\n\n// src/button.tsx\nimport { Spinner } from \"@heroui/spinner\";\nimport { Ripple } from \"@heroui/ripple\";\nimport { forwardRef } from \"@heroui/system\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar Button = forwardRef((props, ref) => {\n const {\n Component,\n domRef,\n children,\n spinnerSize,\n spinner = /* @__PURE__ */ jsx(Spinner, { color: \"current\", size: spinnerSize }),\n spinnerPlacement,\n startContent,\n endContent,\n isLoading,\n disableRipple,\n getButtonProps,\n getRippleProps,\n isIconOnly\n } = useButton({ ...props, ref });\n return /* @__PURE__ */ jsxs(Component, { ref: domRef, ...getButtonProps(), children: [\n startContent,\n isLoading && spinnerPlacement === \"start\" && spinner,\n isLoading && isIconOnly ? null : children,\n isLoading && spinnerPlacement === \"end\" && spinner,\n endContent,\n !disableRipple && /* @__PURE__ */ jsx(Ripple, { ...getRippleProps() })\n ] });\n});\nButton.displayName = \"HeroUI.Button\";\nvar button_default = Button;\n\nexport {\n button_default\n};\n","// Sidebar 组件类型定义\r\n\r\nexport interface UnitProgressData {\r\n unitId: string;\r\n title: string;\r\n description: string;\r\n moduleCategory: string;\r\n estimatedDuration: string;\r\n totalLessons: number;\r\n completedLessons: number;\r\n progressPercentage: number;\r\n status: 'not-started' | 'in-progress' | 'completed';\r\n lastAccessed?: string;\r\n isActive: boolean;\r\n route: string;\r\n icon?: string;\r\n}\r\n\r\nexport interface UserGradeUnitsProgressData {\r\n userId: string;\r\n courseId: string;\r\n courseTitle: string;\r\n courseLevel: number;\r\n totalUnits: number;\r\n completedUnits: number;\r\n overallProgress: number;\r\n status: 'not-started' | 'in-progress' | 'completed';\r\n lastAccessed?: string;\r\n units: UnitProgressData[];\r\n}\r\n\r\nexport interface SidebarProps {\r\n // 核心数据 - 用户年级单元进度数据\r\n data: UserGradeUnitsProgressData | null;\r\n\r\n // 状态控制\r\n loading?: boolean;\r\n error?: Error | null;\r\n collapsed?: boolean;\r\n\r\n // 交互回调\r\n onToggleCollapse?: () => void;\r\n activeUnitId?: string | null;\r\n onUnitSelect?: (unitId: string) => void;\r\n\r\n // 自定义渲染\r\n renderUnitItem?: (unit: UnitProgressData, progress?: UnitProgressData) => React.ReactNode;\r\n\r\n // 样式配置\r\n className?: string;\r\n unitItemClassName?: string;\r\n style?: React.CSSProperties;\r\n unitItemStyle?: React.CSSProperties;\r\n}\r\n\r\n// 进度状态颜色映射\r\nexport const getProgressColor = (status: UnitProgressData['status']): 'success' | 'primary' | 'default' => {\r\n switch (status) {\r\n case 'completed':\r\n return 'success';\r\n case 'in-progress':\r\n return 'primary';\r\n case 'not-started':\r\n default:\r\n return 'default';\r\n }\r\n};","import React from 'react';\r\nimport { Progress } from '@heroui/react';\r\nimport type { SidebarProps, UnitProgressData } from './types';\r\nimport { getProgressColor } from './types';\r\nimport './Sidebar.css';\r\n\r\nexport const Sidebar: React.FC<SidebarProps> = ({\r\n data,\r\n loading = false,\r\n error = null,\r\n collapsed = false,\r\n onToggleCollapse,\r\n activeUnitId = null,\r\n onUnitSelect,\r\n renderUnitItem,\r\n className = '',\r\n unitItemClassName = '',\r\n style = {},\r\n unitItemStyle = {},\r\n}) => {\r\n const handleUnitSelect = (unitId: string, event: React.MouseEvent) => {\r\n event.preventDefault();\r\n onUnitSelect?.(unitId);\r\n };\r\n\r\n const handleToggleCollapse = () => {\r\n onToggleCollapse?.();\r\n };\r\n\r\n // 渲染默认单元项\r\n const renderDefaultUnitItem = (unit: UnitProgressData) => (\r\n <div\r\n key={unit.unitId}\r\n className={`sidebar__unit-item ${unitItemClassName} ${\r\n activeUnitId === unit.unitId ? 'sidebar__unit-item--active' : ''\r\n } ${unit.status ? `sidebar__unit-item--${unit.status}` : ''}`}\r\n style={unitItemStyle}\r\n onClick={(e) => handleUnitSelect(unit.unitId, e)}\r\n role=\"button\"\r\n tabIndex={0}\r\n aria-label={`${unit.title},进度 ${unit.progressPercentage}%`}\r\n >\r\n <div className=\"sidebar__unit-item__content\">\r\n {unit.icon && (\r\n <span className=\"sidebar__unit-item__icon\">{unit.icon}</span>\r\n )}\r\n {!collapsed && (\r\n <span className=\"sidebar__unit-item__title\">{unit.title}</span>\r\n )}\r\n </div>\r\n\r\n {!collapsed && unit.progressPercentage !== undefined && (\r\n <div className=\"sidebar__unit-item__progress\">\r\n <Progress\r\n value={unit.progressPercentage}\r\n size=\"sm\"\r\n color={getProgressColor(unit.status)}\r\n aria-label={`${unit.title} 进度`}\r\n />\r\n <span className=\"progress-percentage\">\r\n {unit.progressPercentage}%\r\n </span>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n\r\n // 渲染状态内容\r\n const renderContent = () => {\r\n if (loading) {\r\n return (\r\n <div className=\"sidebar__loading\">\r\n 加载中...\r\n </div>\r\n );\r\n }\r\n\r\n if (error) {\r\n return (\r\n <div className=\"sidebar__error\">\r\n 加载失败: {error.message}\r\n </div>\r\n );\r\n }\r\n\r\n if (!data) {\r\n return (\r\n <div className=\"sidebar__empty\">\r\n 暂无课程数据\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <>\r\n <div className=\"sidebar__header\">\r\n <button\r\n className=\"sidebar__toggle-btn\"\r\n onClick={handleToggleCollapse}\r\n aria-label=\"切换侧边栏折叠状态\"\r\n >\r\n {collapsed ? '→' : '←'}\r\n </button>\r\n {!collapsed && (\r\n <div className=\"sidebar__course-info\">\r\n <h3 className=\"sidebar__course-title\">{data.courseTitle}</h3>\r\n <span className=\"sidebar__course-level\">{data.courseLevel}年级</span>\r\n </div>\r\n )}\r\n </div>\r\n\r\n <nav className=\"sidebar__content\">\r\n <ul className=\"sidebar__unit-list\">\r\n {data.units.map((unit) => (\r\n <li key={unit.unitId}>\r\n {renderUnitItem\r\n ? renderUnitItem(unit, unit)\r\n : renderDefaultUnitItem(unit)}\r\n </li>\r\n ))}\r\n </ul>\r\n </nav>\r\n </>\r\n );\r\n };\r\n\r\n return (\r\n <aside\r\n className={`sidebar ${className} ${collapsed ? 'sidebar--collapsed' : ''} ${\r\n loading ? 'sidebar--loading' : ''\r\n } ${error ? 'sidebar--error' : ''}`}\r\n style={style}\r\n aria-label=\"课程导航侧边栏\"\r\n role=\"complementary\"\r\n >\r\n {renderContent()}\r\n </aside>\r\n );\r\n};","import React from 'react'\r\nimport './Submenu.css'\r\n\r\nexport interface SubmenuItem {\r\n id: string | number\r\n label?: React.ReactNode\r\n value?: unknown\r\n icon?: React.ReactNode\r\n disabled?: boolean\r\n onClick?: (item: SubmenuItem) => void\r\n [key: string]: unknown\r\n}\r\n\r\nexport interface SubmenuProps {\r\n trigger: React.ReactNode\r\n items: SubmenuItem[]\r\n position?: 'top' | 'bottom' | 'left' | 'right' | 'auto'\r\n alignment?: 'start' | 'center' | 'end'\r\n openDelay?: number\r\n closeDelay?: number\r\n onOpen?: () => void\r\n onClose?: () => void\r\n renderItem?: (item: SubmenuItem, config: TItemConfig) => React.ReactNode\r\n itemConfig?: TItemConfig\r\n className?: string\r\n menuClassName?: string\r\n itemClassName?: string\r\n activeItemClassName?: string\r\n}\r\n\r\ntype TItemConfig = {\r\n currentUserRole?: 'guest' | 'student' | 'teacher' | 'admin'\r\n theme?: 'light' | 'dark'\r\n [key: string]: unknown\r\n}\r\n\r\nconst Submenu: React.FC<SubmenuProps> = ({\r\n trigger,\r\n items,\r\n position = 'bottom',\r\n alignment = 'start',\r\n openDelay = 300,\r\n closeDelay = 100,\r\n onOpen,\r\n onClose,\r\n renderItem,\r\n itemConfig = {},\r\n className,\r\n menuClassName,\r\n itemClassName,\r\n // activeItemClassName is available for custom styling but not used in default implementation\r\n}) => {\r\n const [isOpen, setIsOpen] = React.useState(false)\r\n const openTimeoutRef = React.useRef<NodeJS.Timeout | null>(null)\r\n const closeTimeoutRef = React.useRef<NodeJS.Timeout | null>(null)\r\n\r\n const clearTimeouts = () => {\r\n if (openTimeoutRef.current) {\r\n clearTimeout(openTimeoutRef.current)\r\n }\r\n if (closeTimeoutRef.current) {\r\n clearTimeout(closeTimeoutRef.current)\r\n }\r\n }\r\n\r\n const handleMouseEnter = () => {\r\n clearTimeouts()\r\n openTimeoutRef.current = setTimeout(() => {\r\n setIsOpen(true)\r\n onOpen?.()\r\n }, openDelay)\r\n }\r\n\r\n const handleMouseLeave = () => {\r\n clearTimeouts()\r\n closeTimeoutRef.current = setTimeout(() => {\r\n setIsOpen(false)\r\n onClose?.()\r\n }, closeDelay)\r\n }\r\n\r\n const handleItemClick = (item: SubmenuItem) => {\r\n if (!item.disabled && item.onClick) {\r\n item.onClick(item)\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n return () => clearTimeouts()\r\n }, [])\r\n\r\n const defaultRenderItem = (item: SubmenuItem) => (\r\n <div\r\n key={item.id}\r\n className={`submenu-item ${item.disabled ? 'is-disabled' : ''} ${itemClassName || ''}`}\r\n onClick={() => handleItemClick(item)}\r\n >\r\n {item.icon && <span className=\"submenu-item-icon\">{item.icon}</span>}\r\n <span>{item.label}</span>\r\n </div>\r\n )\r\n\r\n const getPanelClasses = () => {\r\n const classes = ['submenu-panel']\r\n \r\n if (menuClassName) {\r\n classes.push(menuClassName)\r\n }\r\n \r\n // Add position class\r\n classes.push(`position-${position}`)\r\n \r\n // Add alignment class if not 'start' (default)\r\n if (alignment !== 'start') {\r\n classes.push(`alignment-${alignment}`)\r\n }\r\n \r\n // Add open state class\r\n if (isOpen) {\r\n classes.push('is-open')\r\n }\r\n \r\n return classes.join(' ')\r\n }\r\n\r\n return (\r\n <div \r\n className={`submenu-container ${className || ''}`}\r\n onMouseEnter={handleMouseEnter}\r\n onMouseLeave={handleMouseLeave}\r\n >\r\n <div className=\"submenu-trigger\">\r\n {trigger}\r\n </div>\r\n \r\n <div className={getPanelClasses()}>\r\n {items.map(item => \r\n renderItem \r\n ? renderItem(item, itemConfig)\r\n : defaultRenderItem(item)\r\n )}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Submenu","'use strict';\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 {Boolean} `true` if the interceptor was removed, `false` otherwise\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) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : 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\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n }\n}\n\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\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n 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\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 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.12.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};\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 React from 'react';\r\nimport { Avatar } from \"@heroui/react\";\r\nimport Submenu from \"../Submenu/Submenu\";\r\nimport type { SubmenuItem } from \"../Submenu/Submenu\";\r\nimport axios from \"axios\";\r\nimport type { UserData } from '../../types';\r\nimport './UserProfile.css';\r\n\r\n// 图标组件定义\r\nconst UserIcon = () => <span style={{ marginRight: 8, fontSize: '1.2em' }}>👤</span>;\r\nconst SettingsIcon = () => <span style={{ marginRight: 8, fontSize: '1.2em' }}>⚙️</span>;\r\nconst HelpIcon = () => <span style={{ marginRight: 8, fontSize: '1.2em' }}>❓</span>;\r\nconst LogoutIcon = () => <span style={{ marginRight: 8, fontSize: '1.2em' }}>🚪</span>;\r\n\r\n// API 配置类型\r\nexport interface ApiConfig {\r\n baseURL: string;\r\n endpoints: {\r\n userProfile: string;\r\n };\r\n headers?: Record<string, string>;\r\n}\r\n\r\n\r\n// 默认菜单项配置\r\nconst DEFAULT_MENU_ITEMS: SubmenuItem[] = [\r\n { id: 'profile', label: '个人主页', icon: <UserIcon /> },\r\n { id: 'settings', label: '设置', icon: <SettingsIcon /> },\r\n { id: 'help', label: '帮助', icon: <HelpIcon /> },\r\n { id: 'logout', label: '退出', icon: <LogoutIcon /> }\r\n];\r\n\r\nexport interface UserProfileProps {\r\n // 用户数据配置\r\n userId?: string;\r\n userName?: string;\r\n userAvatar?: string;\r\n \r\n // API 配置\r\n apiConfig?: ApiConfig;\r\n \r\n // 菜单配置\r\n menuItems?: SubmenuItem[];\r\n \r\n // 样式配置\r\n avatarSize?: 'sm' | 'md' | 'lg';\r\n avatarClassName?: string;\r\n userNameClassName?: string;\r\n containerClassName?: string;\r\n \r\n // 状态控制\r\n isLoading?: boolean;\r\n error?: Error | null;\r\n \r\n // 事件回调\r\n onMenuOpen?: () => void;\r\n onMenuClose?: () => void;\r\n onMenuItemClick?: (itemId: string) => void;\r\n onLogout?: () => void;\r\n \r\n // 定制化渲染\r\n renderMenuItem?: (item: SubmenuItem, userData: UserData) => React.ReactNode;\r\n renderUserInfo?: (userData: UserData) => React.ReactNode;\r\n}\r\n\r\nconst UserProfile: React.FC<UserProfileProps> = ({\r\n userId,\r\n userName: initialUserName,\r\n userAvatar: initialUserAvatar,\r\n apiConfig,\r\n menuItems = DEFAULT_MENU_ITEMS,\r\n avatarSize = 'md',\r\n isLoading = false,\r\n error = null,\r\n avatarClassName,\r\n userNameClassName,\r\n containerClassName,\r\n onMenuOpen,\r\n onMenuClose,\r\n onMenuItemClick,\r\n onLogout,\r\n renderMenuItem,\r\n renderUserInfo\r\n}) => {\r\n const [userData, setUserData] = React.useState<UserData>({\r\n id: userId || '',\r\n name: initialUserName || '',\r\n avatar: initialUserAvatar || '',\r\n level: 0,\r\n badges: []\r\n });\r\n \r\n const [loading, setLoading] = React.useState(isLoading);\r\n const [errorState, setErrorState] = React.useState<Error | null>(error);\r\n\r\n // 数据获取逻辑\r\n React.useEffect(() => {\r\n if (userId && apiConfig && !initialUserName && !initialUserAvatar) {\r\n fetchUserData();\r\n }\r\n }, [userId, apiConfig, initialUserName, initialUserAvatar]);\r\n\r\n const fetchUserData = async () => {\r\n setLoading(true);\r\n setErrorState(null);\r\n \r\n try {\r\n const endpoint = apiConfig!.endpoints.userProfile.replace(':userId', userId!);\r\n const response = await axios.get(`${apiConfig!.baseURL}${endpoint}`, {\r\n headers: apiConfig!.headers\r\n });\r\n \r\n setUserData(response.data);\r\n } catch (err) {\r\n setErrorState(err as Error);\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n // 处理菜单项点击\r\n const handleMenuItemClick = (item: SubmenuItem) => {\r\n onMenuItemClick?.(item.id as string);\r\n \r\n if (item.id === 'logout') {\r\n onLogout?.();\r\n }\r\n };\r\n\r\n // 处理菜单打开\r\n const handleMenuOpen = () => {\r\n onMenuOpen?.();\r\n };\r\n\r\n // 处理菜单关闭\r\n const handleMenuClose = () => {\r\n onMenuClose?.();\r\n };\r\n\r\n // 渲染用户信息区域\r\n const renderDefaultUserInfo = () => (\r\n <div className=\"user-profile-trigger\">\r\n <Avatar\r\n src={userData.avatar}\r\n size={avatarSize}\r\n className={avatarClassName}\r\n alt=\"用户头像\"\r\n />\r\n <span className={`user-name ${userNameClassName || ''}`}>\r\n {userData.name}\r\n </span>\r\n </div>\r\n );\r\n\r\n // 渲染默认菜单项\r\n const renderDefaultMenuItem = (item: SubmenuItem) => (\r\n <div\r\n key={item.id}\r\n className=\"submenu-item\"\r\n onClick={() => handleMenuItemClick(item)}\r\n >\r\n {item.icon && <span className=\"submenu-item-icon\">{item.icon}</span>}\r\n <span>{item.label}</span>\r\n </div>\r\n );\r\n\r\n if (loading) {\r\n return (\r\n <div className={`user-profile-container ${containerClassName || ''} is-loading`}>\r\n <div className=\"user-profile-loading\">加载中...</div>\r\n </div>\r\n );\r\n }\r\n\r\n if (errorState) {\r\n return (\r\n <div className={`user-profile-container ${containerClassName || ''} has-error`}>\r\n <div className=\"user-profile-error\">\r\n 错误: {errorState.message}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n if (!userData.name) {\r\n return (\r\n <div className={`user-profile-container ${containerClassName || ''}`}>\r\n <div className=\"user-profile-loading\">未登录</div>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className={`user-profile-container ${containerClassName || ''}`}>\r\n <Submenu\r\n trigger={renderUserInfo ? renderUserInfo(userData) : renderDefaultUserInfo()}\r\n items={menuItems.map(item => ({\r\n ...item,\r\n onClick: () => handleMenuItemClick(item)\r\n }))}\r\n position=\"bottom\"\r\n alignment=\"end\"\r\n onOpen={handleMenuOpen}\r\n onClose={handleMenuClose}\r\n renderItem={renderMenuItem ? (item) => renderMenuItem(item, userData) : undefined}\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default UserProfile;","import React from 'react';\r\nimport Submenu from '../Submenu/Submenu';\r\nimport UserProfile from '../UserProfile/UserProfile';\r\nimport type { SubmenuItem } from '../Submenu/Submenu';\r\nimport type { MathWizHeaderProps, ExploreItem } from './MathWizHeader.types';\r\nimport './MathWizHeader.css';\r\n\r\n// 默认探索菜单项渲染函数\r\nconst defaultRenderExploreItem = (item: ExploreItem) => (\r\n <div\r\n key={item.id}\r\n className=\"explore-menu-item\"\r\n onClick={() => item.onClick?.(item)}\r\n >\r\n <span className=\"explore-item-label\">{item.label}</span>\r\n {item.status && (\r\n <span className={`explore-item-status status-${item.status.toLowerCase().replace('%', '').replace(' ', '-')}`}>\r\n {item.status}\r\n </span>\r\n )}\r\n </div>\r\n);\r\n\r\n// 默认探索菜单触发器\r\nconst ExploreTrigger = () => (\r\n <button className=\"explore-button\" aria-label=\"探索数学课程\">\r\n <span className=\"explore-icon\">🌍</span>\r\n <span className=\"explore-text\">探索</span>\r\n </button>\r\n);\r\n\r\nconst MathWizHeader: React.FC<MathWizHeaderProps> = ({\r\n // 通用Props\r\n className = '',\r\n style,\r\n logoHref = '/',\r\n logoText = 'MathWiz',\r\n onLogoClick,\r\n\r\n // 探索菜单Props\r\n exploreItems = [],\r\n exploreMenuOpen = false,\r\n onExploreMenuToggle,\r\n onExploreItemClick,\r\n renderExploreItem = defaultRenderExploreItem,\r\n\r\n // 用户资料Props\r\n userData,\r\n userMenuItems,\r\n onUserMenuItemClick,\r\n onLogout,\r\n\r\n // 状态控制Props\r\n isLoading = false,\r\n error = null,\r\n\r\n // 样式定制Props\r\n headerClassName = '',\r\n logoClassName = '',\r\n exploreClassName = '',\r\n userProfileClassName = '',\r\n\r\n // 无障碍访问Props\r\n 'aria-label': ariaLabel,\r\n 'aria-labelledby': ariaLabelledBy,\r\n\r\n ...restProps\r\n}) => {\r\n // 准备探索菜单项数据 - 纯数据转换,无业务逻辑\r\n const preparedExploreItems: SubmenuItem[] = exploreItems.map(item => ({\r\n id: item.id,\r\n label: renderExploreItem(item),\r\n onClick: () => onExploreItemClick?.(item)\r\n }));\r\n\r\n return (\r\n <header\r\n className={`mathwiz-header site-header ${headerClassName} ${className}`}\r\n style={style}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n role=\"banner\"\r\n {...restProps}\r\n >\r\n <div className=\"header-content\">\r\n {/* 左侧:探索菜单 */}\r\n <div className=\"header-section left\">\r\n <Submenu\r\n trigger={<ExploreTrigger />}\r\n items={preparedExploreItems}\r\n position=\"bottom\"\r\n alignment=\"start\"\r\n openDelay={300}\r\n closeDelay={100}\r\n onOpen={() => onExploreMenuToggle?.(true)}\r\n onClose={() => onExploreMenuToggle?.(false)}\r\n className={`explore-submenu ${exploreClassName}`}\r\n menuClassName=\"explore-panel\"\r\n />\r\n </div>\r\n\r\n {/* 中间:Logo */}\r\n <div className=\"header-section center\">\r\n <a\r\n href={logoHref}\r\n className={`logo ${logoClassName}`}\r\n onClick={onLogoClick}\r\n aria-label=\"MathWiz 首页\"\r\n >\r\n {logoText}\r\n </a>\r\n </div>\r\n\r\n {/* 右侧:用户资料 */}\r\n <div className=\"header-section right\">\r\n <UserProfile\r\n userName={userData?.name}\r\n userAvatar={userData?.avatar}\r\n menuItems={userMenuItems}\r\n onMenuItemClick={onUserMenuItemClick}\r\n onLogout={onLogout}\r\n containerClassName={userProfileClassName}\r\n isLoading={isLoading}\r\n error={error}\r\n />\r\n </div>\r\n </div>\r\n </header>\r\n );\r\n};\r\n\r\n// 使用 React.memo 优化性能,避免不必要的重渲染\r\nexport default React.memo(MathWizHeader, (prevProps, nextProps) => {\r\n // 自定义比较函数,只在相关props变化时重渲染\r\n return (\r\n prevProps.logoText === nextProps.logoText &&\r\n prevProps.logoHref === nextProps.logoHref &&\r\n prevProps.className === nextProps.className &&\r\n prevProps.headerClassName === nextProps.headerClassName &&\r\n prevProps.logoClassName === nextProps.logoClassName &&\r\n prevProps.exploreClassName === nextProps.exploreClassName &&\r\n prevProps.userProfileClassName === nextProps.userProfileClassName &&\r\n prevProps['aria-label'] === nextProps['aria-label'] &&\r\n prevProps['aria-labelledby'] === nextProps['aria-labelledby'] &&\r\n prevProps.isLoading === nextProps.isLoading &&\r\n prevProps.error === nextProps.error &&\r\n // 深度比较数组\r\n JSON.stringify(prevProps.exploreItems) === JSON.stringify(nextProps.exploreItems) &&\r\n // 深度比较对象\r\n JSON.stringify(prevProps.userData) === JSON.stringify(nextProps.userData) &&\r\n JSON.stringify(prevProps.userMenuItems) === JSON.stringify(nextProps.userMenuItems)\r\n );\r\n});","import React from 'react';\r\nimport type { RadarChartProps } from '../../../types/radarAbility';\r\n\r\nconst RadarChart: React.FC<RadarChartProps> = ({ \r\n abilities, \r\n width = 400, \r\n height = 400 \r\n}) => {\r\n // 计算雷达图的数据点\r\n const calculateRadarPoints = () => {\r\n if (abilities.length === 0) return '';\r\n \r\n return abilities\r\n .map(ability => {\r\n // 使用预定义的SVG坐标点,如果没有则动态计算\r\n if (ability.svgPoint) {\r\n return `${ability.svgPoint.x},${ability.svgPoint.y}`;\r\n }\r\n \r\n // 动态计算坐标(基于能力和分数)\r\n const angle = (Math.PI * 2 * abilities.indexOf(ability)) / abilities.length;\r\n const radius = (ability.score / ability.maxScore) * 40 + 10; // 10-50范围\r\n const x = 50 + radius * Math.sin(angle);\r\n const y = 50 - radius * Math.cos(angle);\r\n \r\n return `${x},${y}`;\r\n })\r\n .join(' ');\r\n };\r\n\r\n // 计算轴线端点\r\n const calculateAxisEndPoints = (index: number) => {\r\n const angle = (Math.PI * 2 * index) / Math.max(abilities.length, 1);\r\n const x2 = 50 + 40 * Math.sin(angle);\r\n const y2 = 50 - 40 * Math.cos(angle);\r\n return { x2, y2 };\r\n };\r\n\r\n // 计算标签位置\r\n const calculateLabelPosition = (index: number) => {\r\n const angle = (Math.PI * 2 * index) / Math.max(abilities.length, 1);\r\n const x = 50 + 45 * Math.sin(angle);\r\n const y = 50 - 45 * Math.cos(angle);\r\n \r\n // 根据角度调整文本锚点\r\n let textAnchor = 'middle';\r\n if (angle > Math.PI * 0.25 && angle < Math.PI * 0.75) textAnchor = 'start';\r\n if (angle > Math.PI * 1.25 && angle < Math.PI * 1.75) textAnchor = 'end';\r\n \r\n return { x, y, textAnchor };\r\n };\r\n\r\n return (\r\n <svg \r\n data-testid=\"radar-chart\"\r\n width={width} \r\n height={height} \r\n viewBox=\"0 0 100 100\" \r\n className=\"w-full h-full\"\r\n preserveAspectRatio=\"xMidYMid meet\"\r\n >\r\n {/* 中心点 */}\r\n <circle \r\n data-testid=\"center-point\"\r\n cx=\"50\" \r\n cy=\"50\" \r\n r=\"1\" \r\n fill=\"#4A90E2\" \r\n />\r\n\r\n {/* 轴线 */}\r\n {abilities.map((_, index) => {\r\n const { x2, y2 } = calculateAxisEndPoints(index);\r\n return (\r\n <line\r\n key={`axis-${index}`}\r\n data-testid=\"axis-line\"\r\n x1=\"50\"\r\n y1=\"50\"\r\n x2={x2}\r\n y2={y2}\r\n stroke=\"#E2E8F0\"\r\n strokeWidth=\"0.5\"\r\n />\r\n );\r\n })}\r\n\r\n {/* 雷达多边形 */}\r\n {abilities.length > 2 && (\r\n <polygon\r\n data-testid=\"radar-polygon\"\r\n points={calculateRadarPoints()}\r\n fill=\"rgba(74, 144, 226, 0.2)\"\r\n stroke=\"rgb(74, 144, 226)\"\r\n strokeWidth=\"1\"\r\n fillRule=\"evenodd\"\r\n />\r\n )}\r\n\r\n {/* 数据点 */}\r\n {abilities.map((ability, index) => {\r\n let x, y;\r\n \r\n if (ability.svgPoint) {\r\n x = ability.svgPoint.x;\r\n y = ability.svgPoint.y;\r\n } else {\r\n const angle = (Math.PI * 2 * index) / abilities.length;\r\n const radius = (ability.score / ability.maxScore) * 40 + 10;\r\n x = 50 + radius * Math.sin(angle);\r\n y = 50 - radius * Math.cos(angle);\r\n }\r\n \r\n return (\r\n <circle\r\n key={`point-${ability.name}`}\r\n data-testid=\"data-point\"\r\n cx={x}\r\n cy={y}\r\n r=\"2\"\r\n fill={ability.progressBarColor === 'bg-orange-400' ? '#FBBF24' : '#4A90E2'}\r\n />\r\n );\r\n })}\r\n\r\n {/* 能力标签 */}\r\n {abilities.map((ability, index) => {\r\n const { x, y, textAnchor } = calculateLabelPosition(index);\r\n \r\n return (\r\n <text\r\n key={`label-${ability.name}`}\r\n x={x}\r\n y={y}\r\n textAnchor={textAnchor as any}\r\n fontSize=\"5\"\r\n fill=\"#334155\"\r\n className=\"text-xs\"\r\n >\r\n {ability.name}\r\n </text>\r\n );\r\n })}\r\n </svg>\r\n );\r\n};\r\n\r\nexport default RadarChart;","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nexport { createStore };\n","import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n React.useCallback(() => selector(api.getState()), [api, selector]),\n React.useCallback(() => selector(api.getInitialState()), [api, selector])\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = ((createState) => createState ? createImpl(createState) : createImpl);\n\nexport { create, useStore };\n","import axios from 'axios';\r\nimport type { RadarAbilityData } from '../types/radarAbility';\r\n\r\n// 模拟数据 - 在实际应用中会从API获取\r\nexport const mockRadarAbilityData: RadarAbilityData = {\r\n overallRating: '优秀',\r\n generalRecommendation: '你的空间想象力和逻辑推理能力非常出色!若能进一步提升在复杂图形下的专注力,你将所向披靡。建议尝试我们‘专注力挑战’系列游戏。',\r\n abilities: [\r\n {\r\n name: '空间想象力',\r\n score: 7.5,\r\n maxScore: 10,\r\n progressBarColor: 'bg-blue-500',\r\n svgPoint: { x: 50, y: 17.5 },\r\n recommendation: '通过观察三维物体在不同角度的投影,或尝试构建复杂结构的游戏,能有效提升空间想象力。',\r\n recommendationLink: '#spatial-challenges'\r\n },\r\n {\r\n name: '逻辑推理',\r\n score: 8.0,\r\n maxScore: 10,\r\n progressBarColor: 'bg-blue-500',\r\n svgPoint: { x: 82, y: 35 },\r\n recommendation: '解决数独、迷宫或逻辑谜题,能够持续锻炼你的逻辑思维,尝试挑战更高难度的推理游戏。',\r\n recommendationLink: '#logic-puzzles'\r\n },\r\n {\r\n name: '图形辨识',\r\n score: 9.0,\r\n maxScore: 10,\r\n progressBarColor: 'bg-blue-500',\r\n svgPoint: { x: 85, y: 65 },\r\n recommendation: '你在这方面表现出色!可以尝试在更复杂、干扰因素更多的图形中进行辨识训练,保持敏锐。',\r\n recommendationLink: '#graphic-training'\r\n },\r\n {\r\n name: '专注力',\r\n score: 7.0,\r\n maxScore: 10,\r\n progressBarColor: 'bg-orange-400',\r\n svgPoint: { x: 50, y: 80 },\r\n recommendation: '在长时间的游戏中保持专注对你来说是一个挑战,建议尝试我们‘专注力挑战’系列游戏,逐渐延长专注时间。',\r\n recommendationLink: '#focus-challenges'\r\n },\r\n {\r\n name: '观察力',\r\n score: 8.5,\r\n maxScore: 10,\r\n progressBarColor: 'bg-blue-500',\r\n svgPoint: { x: 15, y: 65 },\r\n recommendation: '你的观察力非常敏锐,在细节发现上尤为突出。尝试在限时模式下进行观察力训练,提高反应速度。',\r\n recommendationLink: '#observation-drills'\r\n },\r\n {\r\n name: '抗压性',\r\n score: 7.8,\r\n maxScore: 10,\r\n progressBarColor: 'bg-blue-500',\r\n svgPoint: { x: 18, y: 35 },\r\n recommendation: '面对高压挑战时,保持冷静是关键。通过模拟竞赛或限时任务来提升抗压能力,逐步适应压力。',\r\n recommendationLink: '#stress-games'\r\n }\r\n ]\r\n};\r\n\r\nexport class RadarAbilityService {\r\n private static readonly API_BASE_URL = '/api/radar-ability';\r\n\r\n static async fetchRadarAbilityData(): Promise<RadarAbilityData> {\r\n try {\r\n // 在测试环境中使用mock数据,避免真实API调用\r\n if (process.env.NODE_ENV === 'test') {\r\n // 测试环境使用mock数据\r\n await new Promise(resolve => setTimeout(resolve, 100));\r\n return mockRadarAbilityData;\r\n } else {\r\n // 开发和生产环境调用真实API\r\n const response = await axios.get<RadarAbilityData>(`${this.API_BASE_URL}/assessment`);\r\n return response.data;\r\n }\r\n } catch (error) {\r\n console.error('Failed to fetch radar ability data:', error);\r\n // 在测试环境中抛出错误以便测试错误处理\r\n if (process.env.NODE_ENV === 'test') {\r\n throw new Error('获取能力评估数据失败');\r\n }\r\n // 开发和生产环境返回mock数据作为fallback\r\n return mockRadarAbilityData;\r\n }\r\n }\r\n\r\n static async submitFeedback(feedback: {\r\n abilityName: string;\r\n rating: number;\r\n comment: string;\r\n }): Promise<void> {\r\n try {\r\n // 模拟API调用\r\n await axios.post(`${this.API_BASE_URL}/feedback`, feedback);\r\n } catch (error) {\r\n console.error('Failed to submit feedback:', error);\r\n throw new Error('提交反馈失败');\r\n }\r\n }\r\n}","import { create } from 'zustand';\r\nimport type { RadarAbilityData } from '../types/radarAbility';\r\nimport { RadarAbilityService } from '../services/radarAbilityService';\r\n\r\ninterface RadarAbilityState {\r\n data: RadarAbilityData | null;\r\n loading: boolean;\r\n error: string | null;\r\n fetchData: () => Promise<void>;\r\n setData: (data: RadarAbilityData) => void;\r\n setError: (error: string) => void;\r\n reset: () => void;\r\n}\r\n\r\nexport const useRadarAbilityStore = create<RadarAbilityState>((set, get) => ({\r\n data: null,\r\n loading: false,\r\n error: null,\r\n\r\n fetchData: async () => {\r\n // Don't fetch if already loading\r\n if (get().loading) return;\r\n\r\n set({ loading: true, error: null });\r\n\r\n try {\r\n const radarData = await RadarAbilityService.fetchRadarAbilityData();\r\n set({ data: radarData, loading: false });\r\n } catch (error) {\r\n const errorMessage = error instanceof Error ? error.message : '获取数据失败';\r\n set({ error: errorMessage, loading: false });\r\n }\r\n },\r\n\r\n setData: (data: RadarAbilityData) => {\r\n set({ data, error: null, loading: false });\r\n },\r\n\r\n setError: (error: string) => {\r\n set({ error, loading: false });\r\n },\r\n\r\n reset: () => {\r\n set({ data: null, loading: false, error: null });\r\n }\r\n}));","import React from 'react';\r\nimport type { AbilityProgressBarProps } from '../../../types/radarAbility';\r\n\r\nconst AbilityProgressBar: React.FC<AbilityProgressBarProps> = ({ ability }) => {\r\n const percentage = (ability.score / ability.maxScore) * 100;\r\n \r\n return (\r\n <div \r\n className=\"ability-progress-bar-item\" \r\n data-ability={ability.name}\r\n data-testid=\"progress-bar-container\"\r\n >\r\n <div className=\"flex justify-between text-sm mb-1\">\r\n <span className=\"text-gray-700 font-medium\">{ability.name}</span>\r\n <span className=\"text-gray-600\">\r\n {ability.score}/{ability.maxScore}\r\n </span>\r\n </div>\r\n \r\n <div \r\n className=\"w-full bg-gray-200 rounded-full h-2.5\"\r\n data-testid=\"progress-bar-outer\"\r\n >\r\n <div \r\n className={`${ability.progressBarColor} h-2.5 rounded-full transition-all duration-300`}\r\n style={{ width: `${percentage}%` }}\r\n data-testid=\"progress-bar-inner\"\r\n role=\"progressbar\"\r\n aria-valuenow={ability.score}\r\n aria-valuemin={0}\r\n aria-valuemax={ability.maxScore}\r\n aria-label={`${ability.name} progress: ${ability.score} out of ${ability.maxScore}`}\r\n />\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default AbilityProgressBar;","import React from 'react';\r\nimport type { PersonalizedAdvicePanelProps } from '../../../types/radarAbility';\r\n\r\nconst PersonalizedAdvicePanel: React.FC<PersonalizedAdvicePanelProps> = ({ \r\n generalRecommendation \r\n}) => {\r\n return (\r\n <div \r\n className=\"bg-blue-50 border border-blue-200 rounded-lg p-4\"\r\n data-testid=\"advice-panel\"\r\n role=\"region\"\r\n aria-label=\"个性化建议\"\r\n >\r\n <div className=\"flex items-start\">\r\n <div className=\"flex-shrink-0\">\r\n <i \r\n className=\"material-icons text-blue-500\"\r\n data-testid=\"lightbulb-icon\"\r\n aria-hidden=\"true\"\r\n >\r\n lightbulb\r\n </i>\r\n </div>\r\n \r\n <div className=\"ml-3\">\r\n <h3 \r\n className=\"text-md font-semibold text-blue-800\"\r\n aria-level={3}\r\n >\r\n 个性化建议\r\n </h3>\r\n \r\n <p \r\n className=\"text-sm text-blue-700 mt-1\"\r\n data-testid=\"recommendation-text\"\r\n >\r\n {generalRecommendation}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default PersonalizedAdvicePanel;","import React from 'react';\r\nimport { Card, CardBody, Button } from '@heroui/react';\r\nimport { ArrowRight } from 'lucide-react';\r\nimport type { RecommendationCardProps } from '../../../types/radarAbility';\r\n\r\nconst RecommendationCard: React.FC<RecommendationCardProps> = ({ ability, customLinkTexts = {} }) => {\r\n // 根据能力名称生成对应的链接文本,支持自定义映射\r\n const getLinkText = (abilityName: string) => {\r\n const defaultLinkTexts: Record<string, string> = {\r\n '空间想象力': '探索空间挑战',\r\n '逻辑推理': '深入逻辑谜题',\r\n '图形辨识': '精进图形训练',\r\n '专注力': '挑战专注极限',\r\n '观察力': '提升观察速度',\r\n '抗压性': '磨砺抗压意志'\r\n };\r\n \r\n // 优先使用自定义链接文本,如果没有则使用默认值\r\n return customLinkTexts[abilityName] || defaultLinkTexts[abilityName] || '开始挑战';\r\n };\r\n\r\n return (\r\n <Card \r\n className=\"recommendation-card w-full max-w-sm hover:shadow-lg transition-all duration-300\"\r\n data-ability={ability.name}\r\n data-testid=\"recommendation-card\"\r\n isHoverable\r\n isPressable\r\n >\r\n <CardBody className=\"p-5\">\r\n <div className=\"flex flex-col gap-3\">\r\n <h4 \r\n className=\"text-lg font-semibold text-foreground\"\r\n aria-level={4}\r\n >\r\n {ability.name}: 专项提高\r\n </h4>\r\n \r\n <p \r\n className=\"text-sm text-default-600 leading-relaxed\"\r\n data-testid=\"recommendation-description\"\r\n >\r\n {ability.recommendation}\r\n </p>\r\n \r\n <Button\r\n as=\"a\"\r\n href={ability.recommendationLink}\r\n className=\"mt-2 w-fit\"\r\n size=\"sm\"\r\n variant=\"flat\"\r\n color=\"primary\"\r\n endContent={<ArrowRight className=\"w-4 h-4\" />}\r\n data-testid=\"recommendation-link\"\r\n aria-label={`前往${ability.name}专项提高页面`}\r\n >\r\n {getLinkText(ability.name)}\r\n </Button>\r\n </div>\r\n </CardBody>\r\n </Card>\r\n );\r\n};\r\n\r\nexport default RecommendationCard;","import React, { useEffect } from 'react';\r\nimport { useRadarAbilityStore } from '../../../store/radarAbilityStore';\r\nimport RadarChart from '../RadarChart/RadarChart';\r\nimport AbilityProgressBar from '../AbilityProgressBar/AbilityProgressBar';\r\nimport PersonalizedAdvicePanel from '../PersonalizedAdvicePanel/PersonalizedAdvicePanel';\r\nimport RecommendationCard from '../RecommendationCard/RecommendationCard';\r\nimport styles from './AbilityAssessmentDashboard.module.css';\r\n\r\nconst AbilityAssessmentDashboard: React.FC = () => {\r\n const { data, loading, error, fetchData } = useRadarAbilityStore();\r\n\r\n useEffect(() => {\r\n fetchData();\r\n }, [fetchData]);\r\n\r\n if (loading) {\r\n return (\r\n <div \r\n className=\"card max-w-4xl mx-auto p-6 md:p-8 flex items-center justify-center\"\r\n data-testid=\"loading-spinner\"\r\n >\r\n <div className=\"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-500\"></div>\r\n <span className=\"ml-3 text-gray-600\">加载中...</span>\r\n </div>\r\n );\r\n }\r\n\r\n if (error) {\r\n return (\r\n <div \r\n className=\"card max-w-4xl mx-auto p-6 md:p-8 text-center\"\r\n role=\"alert\"\r\n aria-live=\"assertive\"\r\n >\r\n <div className=\"text-red-500 mb-4\">\r\n <i \r\n className=\"material-icons text-4xl\"\r\n aria-hidden=\"true\"\r\n >\r\n error_outline\r\n </i>\r\n </div>\r\n <h3 className=\"text-lg font-semibold text-gray-800 mb-2\">加载失败</h3>\r\n <p className=\"text-gray-600 mb-4\">{error}</p>\r\n <button\r\n onClick={fetchData}\r\n className=\"bg-blue-500 hover:bg-blue-600 text-white px-4 py-2 rounded-lg transition-colors focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2\"\r\n aria-label=\"重试加载数据\"\r\n >\r\n 重试\r\n </button>\r\n </div>\r\n );\r\n }\r\n\r\n if (!data) {\r\n return (\r\n <div \r\n className=\"card max-w-4xl mx-auto p-6 md:p-8 text-center\"\r\n role=\"status\"\r\n aria-live=\"polite\"\r\n >\r\n <p className=\"text-gray-600\">暂无数据</p>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div \r\n className=\"card max-w-4xl mx-auto p-6 md:p-8 animate-fade-in\"\r\n data-component=\"AbilityAssessmentDashboard\"\r\n role=\"main\"\r\n aria-label=\"能力评估雷达图展示\"\r\n >\r\n {/* 头部标题和评级 */}\r\n <div className=\"flex justify-between items-center mb-6\">\r\n <h2 className=\"text-xl font-bold text-gray-800\">能力评估雷达图</h2>\r\n <span \r\n className=\"bg-blue-100 text-blue-800 text-sm font-semibold px-2.5 py-0.5 rounded-full\"\r\n aria-label={`综合评级: ${data.overallRating}`}\r\n >\r\n 综合评级: {data.overallRating}\r\n </span>\r\n </div>\r\n\r\n {/* 主要内容区域 - 上下布局 3:2 */}\r\n <div className={styles.dashboardLayout}>\r\n {/* 上部容器: 能力雷达展示视图 (3/5 高度) */}\r\n <div className={styles.upperSection}>\r\n {/* 左边: 雷达图 */}\r\n <div className={styles.radarChartArea}>\r\n <RadarChart abilities={data.abilities} />\r\n </div>\r\n\r\n {/* 右边: 进度条列表 */}\r\n <div className=\"space-y-4 flex flex-col justify-around py-2\">\r\n {data.abilities.map(ability => (\r\n <AbilityProgressBar \r\n key={ability.name} \r\n ability={ability} \r\n />\r\n ))}\r\n </div>\r\n </div>\r\n\r\n {/* 下部容器: 个性化推荐视图 (2/5 高度) */}\r\n <div className={styles.lowerSection}>\r\n {/* 通用个性化建议面板 */}\r\n <PersonalizedAdvicePanel \r\n generalRecommendation={data.generalRecommendation} \r\n />\r\n\r\n {/* 专项提升建议 */}\r\n <h3 className=\"text-lg font-bold text-gray-800 mb-4 mt-6\">\r\n 专项提升建议\r\n </h3>\r\n\r\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\r\n {data.abilities.map(ability => (\r\n <RecommendationCard \r\n key={ability.name} \r\n ability={ability} \r\n />\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default AbilityAssessmentDashboard;","// 单一数据源 - 所有模拟数据集中管理\r\n// 这是整个应用的唯一mock数据来源,确保数据一致性\r\n\r\nexport const MOCK_USER_DATA = {\r\n id: 'user-001',\r\n name: '小明',\r\n level: 5,\r\n avatar: 'https://i.pravatar.cc/40?u=student1',\r\n logIn: true,\r\n badges: ['🏆', '🏅', '🌟']\r\n};\r\n\r\nexport const MOCK_EXPLORE_ITEMS = [\r\n { id: 'g3', label: '三年级', status: 'new', onClick: () => console.log('三年级 clicked') },\r\n { id: 'g4', label: '四年级', status: '2%', onClick: () => console.log('四年级 clicked') },\r\n { id: 'g5', label: '五年级', status: '进行中', onClick: () => console.log('五年级 clicked') },\r\n { id: 'g6', label: '六年级', status: 'new', onClick: () => console.log('六年级 clicked') },\r\n { id: 'g7', label: '七年级', status: 'new', onClick: () => console.log('七年级 clicked') },\r\n { id: 'g8', label: '八年级', status: 'new', onClick: () => console.log('八年级 clicked') },\r\n { id: 'alg_topic', label: '代数专题', status: 'new', onClick: () => console.log('代数专题 clicked') },\r\n { id: 'calc_topic', label: '计算专题', status: 'new', onClick: () => console.log('计算专题 clicked') },\r\n { id: 'geo_topic', label: '几何专题', status: 'new', onClick: () => console.log('几何专题 clicked') },\r\n { id: 'olym_topic', label: '奥数专题', status: 'new', onClick: () => console.log('奥数专题 clicked') }\r\n];\r\n\r\n// JWT token (API专用)\r\nexport const MOCK_JWT_TOKEN = \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJ1c2VyLTAwMSIsIm5hbWUiOiLlsI_mmI4iLCJsZXZlbCI6NSwiYXZhdGFyIjoiaHR0cHM6Ly9pLnByYXZhdGFyLmNjLzQwP3U9c3R1ZGVudDEiLCJiYWRnZXMiOlsi8J-SoiIsIvCfjZUiLCLwn5KbIl0sImlhdCI6MTY5MTYwMDAwMCwiZXhwIjoxNzIzMTM2MDAwfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c\";","import type { CourseData, UnitProgress } from '../types';\r\nimport { MOCK_JWT_TOKEN } from '../data/mockData';\r\n\r\nexport interface UserGradeUnitsNav {\r\n userId: string;\r\n courseId: string;\r\n courseTitle: string;\r\n courseLevel: number;\r\n totalUnits: number;\r\n completedUnits: number;\r\n overallProgress: number;\r\n status: 'not-started' | 'in-progress' | 'completed';\r\n lastAccessed?: string;\r\n units: Array<{\r\n unitId: string;\r\n title: string;\r\n description: string;\r\n moduleCategory: string;\r\n estimatedDuration: string;\r\n totalLessons: number;\r\n completedLessons: number;\r\n progressPercentage: number;\r\n status: 'not-started' | 'in-progress' | 'completed';\r\n lastAccessed?: string;\r\n isActive: boolean;\r\n route: string;\r\n }>;\r\n}\r\n\r\nexport interface BatchLessonProgressUpdate {\r\n lessonId: string;\r\n status: 'not-started' | 'in-progress' | 'completed';\r\n progress?: number;\r\n}\r\n\r\nclass CourseService {\r\n private baseURL: string;\r\n private token: string;\r\n\r\n constructor(baseURL: string = '/api', token: string = MOCK_JWT_TOKEN) {\r\n this.baseURL = baseURL;\r\n this.token = token;\r\n }\r\n\r\n private getAuthHeaders(): HeadersInit {\r\n return {\r\n 'Authorization': `Bearer ${this.token}`,\r\n 'Content-Type': 'application/json'\r\n };\r\n }\r\n\r\n private async fetchWithAuth(url: string, options: RequestInit = {}): Promise<Response> {\r\n const response = await fetch(url, {\r\n ...options,\r\n headers: {\r\n ...this.getAuthHeaders(),\r\n ...options.headers\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n throw new Error(`HTTP error! status: ${response.status}`);\r\n }\r\n\r\n return response;\r\n }\r\n\r\n // 获取课程数据\r\n async getCourseData(courseId: string): Promise<CourseData> {\r\n const response = await this.fetchWithAuth(`${this.baseURL}/courses/${courseId}`);\r\n return response.json();\r\n }\r\n\r\n // 获取用户年级单元导航数据(包含所有单元进度)\r\n async getUserGradeUnitsNav(gradeId?: string): Promise<UserGradeUnitsNav> {\r\n const url = gradeId\r\n ? `${this.baseURL}/user/grade/units/nav?gradeId=${encodeURIComponent(gradeId)}`\r\n : `${this.baseURL}/user/grade/units/nav`;\r\n\r\n const response = await this.fetchWithAuth(url);\r\n return response.json();\r\n }\r\n\r\n // 获取单元进度\r\n async getUnitProgress(courseId: string, unitId?: string): Promise<Record<string, UnitProgress>> {\r\n const url = unitId\r\n ? `${this.baseURL}/courses/${courseId}/units/${unitId}/progress`\r\n : `${this.baseURL}/courses/${courseId}/progress`;\r\n\r\n const response = await this.fetchWithAuth(url);\r\n return response.json();\r\n }\r\n\r\n // 批量更新单元课时进度\r\n async batchUpdateLessonProgress(\r\n unitId: string,\r\n progressUpdates: BatchLessonProgressUpdate[]\r\n ): Promise<{ success: boolean; results: Array<{ lessonId: string; success: boolean; status: string }> }> {\r\n const response = await this.fetchWithAuth(\r\n `${this.baseURL}/user/units/${unitId}/progress/batch`,\r\n {\r\n method: 'POST',\r\n body: JSON.stringify(progressUpdates)\r\n }\r\n );\r\n\r\n return response.json();\r\n }\r\n\r\n // 更新学习进度(单个课时)\r\n async updateLessonProgress(\r\n courseId: string,\r\n unitId: string,\r\n lessonId: string,\r\n status: 'completed' | 'in-progress' | 'not-started'\r\n ): Promise<void> {\r\n await this.fetchWithAuth(\r\n `${this.baseURL}/courses/${courseId}/units/${unitId}/lessons/${lessonId}/progress`,\r\n {\r\n method: 'POST',\r\n body: JSON.stringify({ status })\r\n }\r\n );\r\n }\r\n\r\n // 设置认证token\r\n setToken(token: string): void {\r\n this.token = token;\r\n }\r\n\r\n // 获取当前token\r\n getToken(): string {\r\n return this.token;\r\n }\r\n}\r\n\r\n// 单例模式导出\r\nexport const courseService = new CourseService();","import type { CourseData } from '../types';\r\n\r\nexport const courseData: CourseData = {\r\n \"id\": \"g5\",\r\n \"title\": \"小学数学五年级\",\r\n \"level\": 5,\r\n \"subject\": \"数学\",\r\n \"units\": [\r\n {\r\n \"id\": \"unit_1\",\r\n \"title\": \"小数乘法\",\r\n \"description\": \"学习小数乘法的计算方法及应用\",\r\n \"estimatedDuration\": \"3周\",\r\n \"totalLessons\": 10,\r\n \"moduleCategory\": \"Arithmetic and Algebra\",\r\n \"lessons\": [\r\n { \"id\": \"unit1_lesson1\", \"title\": \"小数乘整数\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit1_lesson1_k1\", \"title\": \"小数乘整数的意义\", \"description\": \"理解小数乘整数的意义与整数乘法相同\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit1_lesson1_k2\", \"title\": \"小数乘整数的计算方法\", \"description\": \"掌握小数乘整数的计算方法:先按整数乘法计算,再看因数中有几位小数,就从积的右边起数出几位点上小数点\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit1_lesson2\", \"title\": \"小数乘小数\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit1_lesson2_k1\", \"title\": \"小数乘小数的计算方法\", \"description\": \"掌握小数乘小数的计算方法:先按整数乘法算出积,再给积点上小数点\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit1_lesson2_k2\", \"title\": \"积的小数位数确定\", \"description\": \"理解积的小数位数等于两个因数的小数位数之和\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit1_lesson3\", \"title\": \"积的近似数\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit1_lesson3_k1\", \"title\": \"用\\\"四舍五入\\\"法求积的近似数\", \"description\": \"掌握用\\\"四舍五入\\\"法求积的近似数的方法\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit1_lesson4\", \"title\": \"整数乘法运算定律推广到小数\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit1_lesson4_k1\", \"title\": \"乘法运算定律在小数中的适用性\", \"description\": \"理解整数乘法运算定律对于小数乘法同样适用\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit1_lesson4_k2\", \"title\": \"运用运算定律进行简便计算\", \"description\": \"能运用乘法运算定律进行小数乘法的简便计算\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit1_lesson5\", \"title\": \"解决问题\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit1_lesson5_k1\", \"title\": \"用小数乘法解决实际问题\", \"description\": \"能运用小数乘法解决购物、面积计算等实际问题\", \"progress\": 0, \"contentUrl\": \"\" } ] }\r\n ]\r\n },\r\n {\r\n \"id\": \"unit_2\", \"title\": \"小数除法\", \"description\": \"学习小数除法的计算方法及应用\", \"estimatedDuration\": \"3周\", \"totalLessons\": 12, \"moduleCategory\": \"Arithmetic and Algebra\",\r\n \"lessons\": [\r\n { \"id\": \"unit2_lesson1\", \"title\": \"小数除以整数\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit2_lesson1_k1\", \"title\": \"小数除以整数的计算方法\", \"description\": \"掌握小数除以整数的计算方法:按照整数除法的方法计算,商的小数点要与被除数的小数点对齐\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit2_lesson2\", \"title\": \"一个数除以小数\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit2_lesson2_k1\", \"title\": \"除数是小数的除法计算方法\", \"description\": \"掌握除数是小数的除法计算方法:利用商不变的性质,将除数转化为整数\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit2_lesson3\", \"title\": \"商的近似数\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit2_lesson3_k1\", \"title\": \"用\\\"四舍五入\\\"法求商的近似数\", \"description\": \"掌握用\\\"四舍五入\\\"法求商的近似数的方法\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit2_lesson4\", \"title\": \"循环小数\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit2_lesson4_k1\", \"title\": \"循环小数的概念\", \"description\": \"理解循环小数的概念,认识循环节\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit2_lesson4_k2\", \"title\": \"循环小数的表示方法\", \"description\": \"掌握循环小数的简便表示方法\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit2_lesson5\", \"title\": \"用计算器探索规律\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit2_lesson5_k1\", \"title\": \"用计算器计算小数除法\", \"description\": \"会用计算器计算较复杂的小数除法\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit2_lesson5_k2\", \"title\": \"发现商的变化规律\", \"description\": \"能借助计算器发现商的变化规律\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit2_lesson6\", \"title\": \"解决问题\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit2_lesson6_k1\", \"title\": \"用小数除法解决实际问题\", \"description\": \"能运用小数除法解决购物、分配等实际问题\", \"progress\": 0, \"contentUrl\": \"\" } ] }\r\n ]\r\n },\r\n {\r\n \"id\": \"unit_3\", \"title\": \"简易方程\", \"description\": \"学习用字母表示数和解简易方程\", \"estimatedDuration\": \"4周\", \"totalLessons\": 14, \"moduleCategory\": \"Arithmetic and Algebra\",\r\n \"lessons\": [\r\n { \"id\": \"unit3_lesson1\", \"title\": \"用字母表示数\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit3_lesson1_k1\", \"title\": \"用字母表示数\", \"description\": \"初步理解用字母表示数的意义和作用\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit3_lesson1_k2\", \"title\": \"用字母表示运算定律和计算公式\", \"description\": \"会用字母表示运算定律和计算公式\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit3_lesson2\", \"title\": \"方程的意义\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit3_lesson2_k1\", \"title\": \"方程的概念\", \"description\": \"理解方程的意义,知道方程与等式的区别和联系\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit3_lesson3\", \"title\": \"等式的性质\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit3_lesson3_k1\", \"title\": \"等式的性质1\", \"description\": \"理解等式的性质1:等式两边加上或减去同一个数,左右两边仍然相等\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit3_lesson3_k2\", \"title\": \"等式的性质2\", \"description\": \"理解等式的性质2:等式两边乘同一个数,或除以同一个不为0的数,左右两边仍然相等\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit3_lesson4\", \"title\": \"解简易方程\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit3_lesson4_k1\", \"title\": \"利用等式的性质解方程\", \"description\": \"会利用等式的性质解形如x±a=b、ax=b、x÷a=b、a-x=b、a÷x=b的方程\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit3_lesson5\", \"title\": \"实际问题与方程\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit3_lesson5_k1\", \"title\": \"列方程解决实际问题\", \"description\": \"初步学会列方程解决一些简单的实际问题\", \"progress\": 0, \"contentUrl\": \"\" } ] }\r\n ]\r\n },\r\n {\r\n \"id\": \"unit_4\", \"title\": \"多边形的面积\", \"description\": \"学习平行四边形、三角形、梯形和组合图形的面积计算\", \"estimatedDuration\": \"3周\", \"totalLessons\": 12, \"moduleCategory\": \"Graphics and Geometry\",\r\n \"lessons\": [\r\n { \"id\": \"unit4_lesson1\", \"title\": \"平行四边形的面积\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit4_lesson1_k1\", \"title\": \"平行四边形面积公式的推导\", \"description\": \"通过割补法理解平行四边形面积公式的推导过程\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit4_lesson1_k2\", \"title\": \"平行四边形面积的计算\", \"description\": \"掌握平行四边形面积计算公式:S=ah,并能正确运用\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit4_lesson2\", \"title\": \"三角形的面积\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit4_lesson2_k1\", \"title\": \"三角形面积公式的推导\", \"description\": \"通过拼摆法理解三角形面积公式的推导过程\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit4_lesson2_k2\", \"title\": \"三角形面积的计算\", \"description\": \"掌握三角形面积计算公式:S=ah÷2,并能正确运用\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit4_lesson3\", \"title\": \"梯形的面积\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit4_lesson3_k1\", \"title\": \"梯形面积公式的推导\", \"description\": \"通过拼摆法理解梯形面积公式的推导过程\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit4_lesson3_k2\", \"title\": \"梯形面积的计算\", \"description\": \"掌握梯形面积计算公式:S=(a+b)h÷2,并能正确运用\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit4_lesson4\", \"title\": \"组合图形的面积\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit4_lesson4_k1\", \"title\": \"认识组合图形\", \"description\": \"认识组合图形,会把组合图形分解成已学过的平面图形\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit4_lesson4_k2\", \"title\": \"计算组合图形的面积\", \"description\": \"掌握计算组合图形面积的多种方法\", \"progress\": 0, \"contentUrl\": \"\" } ] }\r\n ]\r\n },\r\n {\r\n \"id\": \"unit_5\", \"title\": \"因数与倍数\", \"description\": \"学习因数、倍数、质数、合数等概念\", \"estimatedDuration\": \"3周\", \"totalLessons\": 10, \"moduleCategory\": \"Arithmetic and Algebra\",\r\n \"lessons\": [\r\n { \"id\": \"unit5_lesson1\", \"title\": \"因数和倍数\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit5_lesson1_k1\", \"title\": \"因数和倍数的意义\", \"description\": \"理解因数和倍数的意义,掌握找一个数的因数和倍数的方法\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit5_lesson1_k2\", \"title\": \"因数和倍数的特征\", \"description\": \"了解一个数的因数的个数是有限的,倍数的个数是无限的\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit5_lesson2\", \"title\": \"2、5、3的倍数的特征\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit5_lesson2_k1\", \"title\": \"2、5的倍数的特征\", \"description\": \"掌握2、5的倍数的特征,理解奇数和偶数的意义\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit5_lesson2_k2\", \"title\": \"3的倍数的特征\", \"description\": \"掌握3的倍数的特征,能判断一个数是不是3的倍数\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit5_lesson3\", \"title\": \"质数和合数\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit5_lesson3_k1\", \"title\": \"质数和合数的意义\", \"description\": \"理解质数和合数的意义,能判断一个数是质数还是合数\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit5_lesson3_k2\", \"title\": \"制作100以内的质数表\", \"description\": \"会制作100以内的质数表,熟记20以内的质数\", \"progress\": 0, \"contentUrl\": \"\" } ] }\r\n ]\r\n },\r\n {\r\n \"id\": \"unit_6\", \"title\": \"长方体和正方体\", \"description\": \"学习长方体和正方体的特征、表面积和体积计算\", \"estimatedDuration\": \"4周\", \"totalLessons\": 14, \"moduleCategory\": \"Graphics and Geometry\",\r\n \"lessons\": [\r\n { \"id\": \"unit6_lesson1\", \"title\": \"长方体和正方体的认识\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit6_lesson1_k1\", \"title\": \"长方体的特征\", \"description\": \"认识长方体的特征,了解长方体的长、宽、高\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit6_lesson1_k2\", \"title\": \"正方体的特征\", \"description\": \"认识正方体的特征,理解正方体是特殊的长方体\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit6_lesson2\", \"title\": \"长方体和正方体的表面积\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit6_lesson2_k1\", \"title\": \"表面积的意义\", \"description\": \"理解表面积的意义,掌握长方体和正方体表面积的计算方法\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit6_lesson2_k2\", \"title\": \"表面积的实际应用\", \"description\": \"能运用表面积知识解决一些实际问题\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit6_lesson3\", \"title\": \"长方体和正方体的体积\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit6_lesson3_k1\", \"title\": \"体积和体积单位\", \"description\": \"理解体积的意义,认识常用的体积单位\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit6_lesson3_k2\", \"title\": \"长方体和正方体体积的计算\", \"description\": \"掌握长方体和正方体体积的计算公式\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit6_lesson3_k3\", \"title\": \"体积单位间的进率\", \"description\": \"掌握体积单位之间的进率和换算\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit6_lesson4\", \"title\": \"容积和容积单位\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit6_lesson4_k1\", \"title\": \"容积和容积单位\", \"description\": \"理解容积的意义,认识常用的容积单位\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit6_lesson4_k2\", \"title\": \"容积和体积的关系\", \"description\": \"掌握容积和体积之间的关系\", \"progress\": 0, \"contentUrl\": \"\" } ] }\r\n ]\r\n },\r\n {\r\n \"id\": \"unit_7\", \"title\": \"分数的意义和性质\", \"description\": \"学习分数的意义、性质和约分、通分等方法\", \"estimatedDuration\": \"4周\", \"totalLessons\": 16, \"moduleCategory\": \"Arithmetic and Algebra\",\r\n \"lessons\": [\r\n { \"id\": \"unit7_lesson1\", \"title\": \"分数的意义\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit7_lesson1_k1\", \"title\": \"分数的产生和意义\", \"description\": \"理解分数的产生和意义,明确分数与除法的关系\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit7_lesson1_k2\", \"title\": \"分数单位\", \"description\": \"认识分数单位,能说出一个分数中有几个这样的分数单位\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit7_lesson2\", \"title\": \"分数与除法\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit7_lesson2_k1\", \"title\": \"分数与除法的关系\", \"description\": \"理解分数与除法的关系,会用分数表示两个数相除的商\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit7_lesson3\", \"title\": \"真分数和假分数\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit7_lesson3_k1\", \"title\": \"真分数和假分数的意义\", \"description\": \"理解真分数和假分数的意义和特征\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit7_lesson3_k2\", \"title\": \"带分数\", \"description\": \"认识带分数,会进行假分数与整数、带分数的互化\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit7_lesson4\", \"title\": \"分数的基本性质\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit7_lesson4_k1\", \"title\": \"分数的基本性质\", \"description\": \"理解分数的基本性质,能运用分数的基本性质进行分数的变形\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit7_lesson5\", \"title\": \"约分\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit7_lesson5_k1\", \"title\": \"最大公因数\", \"description\": \"理解公因数和最大公因数的意义,掌握求两个数的最大公因数的方法\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit7_lesson5_k2\", \"title\": \"约分的方法\", \"description\": \"掌握约分的方法,能正确地进行约分\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit7_lesson6\", \"title\": \"通分\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit7_lesson6_k1\", \"title\": \"最小公倍数\", \"description\": \"理解公倍数和最小公倍数的意义,掌握求两个数的最小公倍数的方法\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit7_lesson6_k2\", \"title\": \"通分的方法\", \"description\": \"掌握通分的方法,能正确地进行通分\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit7_lesson7\", \"title\": \"分数和小数的互化\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit7_lesson7_k1\", \"title\": \"分数化成小数\", \"description\": \"掌握分数化成小数的方法\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit7_lesson7_k2\", \"title\": \"小数化成分数\", \"description\": \"掌握小数化成分数的方法\", \"progress\": 0, \"contentUrl\": \"\" } ] }\r\n ]\r\n },\r\n {\r\n \"id\": \"unit_8\", \"title\": \"分数的加法和减法\", \"description\": \"学习同分母分数、异分母分数的加法和减法\", \"estimatedDuration\": \"3周\", \"totalLessons\": 12, \"moduleCategory\": \"Arithmetic and Algebra\",\r\n \"lessons\": [\r\n { \"id\": \"unit8_lesson1\", \"title\": \"同分母分数加、减法\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit8_lesson1_k1\", \"title\": \"同分母分数加法的计算方法\", \"description\": \"掌握同分母分数加法的计算方法\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit8_lesson1_k2\", \"title\": \"同分母分数减法的计算方法\", \"description\": \"掌握同分母分数减法的计算方法\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit8_lesson2\", \"title\": \"异分母分数加、减法\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit8_lesson2_k1\", \"title\": \"异分母分数加法的计算方法\", \"description\": \"掌握异分母分数加法的计算方法:先通分,然后按照同分母分数加法进行计算\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit8_lesson2_k2\", \"title\": \"异分母分数减法的计算方法\", \"description\": \"掌握异分母分数减法的计算方法:先通分,然后按照同分母分数减法进行计算\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit8_lesson3\", \"title\": \"分数加减混合运算\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit8_lesson3_k1\", \"title\": \"分数加减混合运算的顺序\", \"description\": \"掌握分数加减混合运算的运算顺序\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit8_lesson3_k2\", \"title\": \"整数加法运算定律推广到分数加法\", \"description\": \"理解整数加法运算定律对于分数加法同样适用,能运用运算定律进行简便计算\", \"progress\": 0, \"contentUrl\": \"\" } ] }\r\n ]\r\n },\r\n {\r\n \"id\": \"unit_9\", \"title\": \"折线统计图\", \"description\": \"学习单式折线统计图和复式折线统计图的认识和制作\", \"estimatedDuration\": \"2周\", \"totalLessons\": 6, \"moduleCategory\": \"Probability and Statistics\",\r\n \"lessons\": [\r\n { \"id\": \"unit9_lesson1\", \"title\": \"单式折线统计图\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit9_lesson1_k1\", \"title\": \"单式折线统计图的特点\", \"description\": \"认识单式折线统计图,了解其特点和作用\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit9_lesson1_k2\", \"title\": \"绘制单式折线统计图\", \"description\": \"能根据数据绘制单式折线统计图\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit9_lesson2\", \"title\": \"复式折线统计图\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit9_lesson2_k1\", \"title\": \"复式折线统计图的特点\", \"description\": \"认识复式折线统计图,了解其特点和作用\", \"progress\": 0, \"contentUrl\": \"\" }, { \"id\": \"unit9_lesson2_k2\", \"title\": \"绘制复式折线统计图\", \"description\": \"能根据数据绘制复式折线统计图\", \"progress\": 0, \"contentUrl\": \"\" } ] },\r\n { \"id\": \"unit9_lesson3\", \"title\": \"数据分析\", \"duration\": 40, \"knowledgeItems\": [ { \"id\": \"unit9_lesson3_k1\", \"title\": \"根据统计图进行数据分析\", \"description\": \"能根据折线统计图进行简单的数据分析,作出合理的判断和预测\", \"progress\": 0, \"contentUrl\": \"\" } ] }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nimport { MOCK_USER_DATA, MOCK_EXPLORE_ITEMS } from './mockData';\r\n\r\n// 从单一数据源导入,确保数据一致性\r\nexport const exploreItems = MOCK_EXPLORE_ITEMS;\r\nexport const userData = MOCK_USER_DATA;","import React, { createContext, useContext, useState, useCallback, useEffect } from 'react';\r\nimport type { UserData, Lesson } from '../../types';\r\nimport type { ExploreItem } from '../../components/MathWizHeader/MathWizHeader.types';\r\nimport type { UserGradeUnitsProgressData } from '../../components/Sidebar/types';\r\nimport type { GradeUnitBrowserContextType } from './types';\r\nimport { courseService } from '../../services/courseService';\r\nimport { courseData } from '../../data/courseData';\r\n\r\n// 创建 Context\r\nexport const GradeUnitBrowserContext = createContext<GradeUnitBrowserContextType | null>(null);\r\n\r\nexport const useGradeUnitBrowser = () => {\r\n const context = useContext(GradeUnitBrowserContext);\r\n if (!context) {\r\n throw new Error('useGradeUnitBrowser must be used within GradeUnitBrowserProvider');\r\n }\r\n return context;\r\n};\r\n\r\n// Context Provider 组件\r\nexport const GradeUnitBrowserProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\r\n const [userInfo, setUserInfo] = useState<UserData | null>(null);\r\n const [exploreMenu, setExploreMenu] = useState<ExploreItem[]>([]);\r\n const [unitsData, setUnitsData] = useState<UserGradeUnitsProgressData | null>(null);\r\n const [lessons, setLessons] = useState<Record<string, Lesson[]>>({});\r\n const [loading, setLoading] = useState<boolean>(false);\r\n const [error, setError] = useState<string | null>(null);\r\n const [activeUnitId, setActiveUnitId] = useState<string | null>(null);\r\n const [activeLessonIds, setActiveLessonIds] = useState<string[]>([]);\r\n\r\n const loadPageData = useCallback(async (gradeId: string, userId: string) => {\r\n setLoading(true);\r\n setError(null);\r\n\r\n try {\r\n // 添加短暂延迟确保MSW已初始化\r\n await new Promise(resolve => setTimeout(resolve, 100));\r\n\r\n try {\r\n // 调用API获取数据\r\n console.log('Attempting to fetch units data from API...');\r\n const unitsData = await courseService.getUserGradeUnitsNav(gradeId);\r\n console.log('API call successful, units data:', unitsData);\r\n setUnitsData(unitsData);\r\n console.log('unitsData:', unitsData);\r\n } catch (error) {\r\n const err = error as Error;\r\n console.error('API call failed, using mock data. Error details:', {\r\n message: err.message,\r\n name: err.name,\r\n stack: err.stack\r\n });\r\n // 如果API调用失败,使用模拟数据\r\n const mockUnitsData = {\r\n userId: userId,\r\n courseId: 'g5',\r\n courseTitle: '小学数学五年级',\r\n courseLevel: 5,\r\n totalUnits: 2,\r\n completedUnits: 0,\r\n overallProgress: 23,\r\n status: 'in-progress' as const,\r\n lastAccessed: new Date().toISOString(),\r\n units: [\r\n {\r\n unitId: 'unit_1',\r\n title: '小数乘法',\r\n description: '学习小数乘法的计算方法及应用',\r\n moduleCategory: 'Arithmetic and Algebra',\r\n estimatedDuration: '3周',\r\n totalLessons: 5,\r\n completedLessons: 1,\r\n progressPercentage: 20,\r\n status: 'in-progress' as const,\r\n lastAccessed: new Date().toISOString(),\r\n isActive: true,\r\n route: '/math/grade-5/unit/unit_1'\r\n },\r\n {\r\n unitId: 'unit_2',\r\n title: '小数除法',\r\n description: '学习小数除法的计算方法及应用',\r\n moduleCategory: 'Arithmetic and Algebra',\r\n estimatedDuration: '3周',\r\n totalLessons: 5,\r\n completedLessons: 0,\r\n progressPercentage: 0,\r\n status: 'not-started' as const,\r\n isActive: false,\r\n route: '/math/grade-5/unit/unit_2'\r\n }\r\n ]\r\n };\r\n setUnitsData(mockUnitsData);\r\n }\r\n\r\n // 设置课程数据(从本地课程数据中获取)\r\n const lessonsData: Record<string, Lesson[]> = {};\r\n courseData.units.forEach(unit => {\r\n lessonsData[unit.id] = unit.lessons.map(lesson => ({\r\n id: lesson.id,\r\n title: lesson.title,\r\n duration: lesson.duration,\r\n knowledgeItems: lesson.knowledgeItems.map(item => ({\r\n ...item,\r\n progress: 0 // 添加默认进度值\r\n }))\r\n }));\r\n });\r\n console.log('Lessons data loaded:', lessonsData);\r\n setLessons(lessonsData);\r\n\r\n // 默认单元选择将在状态更新后执行(在 useEffect 中)\r\n\r\n // 调试日志\r\n console.log('unitsData:', unitsData);\r\n console.log('unitsData.units:', unitsData?.units);\r\n console.log('First unit isActive:', unitsData?.units?.[0]?.isActive);\r\n console.log('First unit unitId:', unitsData?.units?.[0]?.unitId);\r\n console.log('Lessons data keys:', Object.keys(lessonsData));\r\n console.log('Lessons for unit_1:', lessonsData['unit_1']);\r\n\r\n // 设置用户信息(这里应该从API获取,暂时使用模拟数据)\r\n setUserInfo({\r\n id: userId,\r\n name: '学生用户',\r\n level: 5,\r\n avatar: 'https://i.pravatar.cc/40',\r\n badges: ['🏆']\r\n });\r\n\r\n // 设置探索菜单(这里应该从API获取,暂时使用模拟数据)\r\n setExploreMenu([\r\n { id: 'g5', label: '五年级', status: '进行中' },\r\n { id: 'g6', label: '六年级', status: 'new' }\r\n ]);\r\n\r\n } catch (err) {\r\n setError(err instanceof Error ? err.message : '数据加载失败');\r\n console.error('数据加载错误:', err);\r\n console.error('API call error details:', err);\r\n console.log('gradeId parameter:', gradeId);\r\n } finally {\r\n setLoading(false);\r\n }\r\n }, []);\r\n\r\n const toggleLesson = useCallback((lessonId: string) => {\r\n setActiveLessonIds(prev =>\r\n prev.includes(lessonId)\r\n ? prev.filter(id => id !== lessonId)\r\n : [...prev, lessonId]\r\n );\r\n }, []);\r\n\r\n // 包装setActiveUnit函数,接受unitId参数(可为null)\r\n const setActiveUnit = useCallback((unitId: string | null) => {\r\n setActiveUnitId(unitId);\r\n }, []);\r\n\r\n // 状态更新后执行默认单元选择\r\n useEffect(() => {\r\n console.log('unitsData state updated:', unitsData);\r\n\r\n if (unitsData && unitsData.units.length > 0) {\r\n const defaultActiveUnit = unitsData.units.find(unit => unit.isActive)?.unitId ||\r\n unitsData.units[0].unitId;\r\n setActiveUnitId(defaultActiveUnit);\r\n console.log('Default active unit set after state update:', defaultActiveUnit);\r\n }\r\n }, [unitsData]);\r\n\r\n const contextValue: GradeUnitBrowserContextType = {\r\n // 数据状态\r\n userInfo,\r\n exploreMenu,\r\n unitsData,\r\n lessons,\r\n\r\n // UI状态\r\n loading,\r\n error,\r\n activeUnitId,\r\n activeLessonIds,\r\n\r\n // Actions\r\n setLoading,\r\n setError,\r\n setActiveUnit,\r\n toggleLesson,\r\n loadPageData\r\n };\r\n\r\n return (\r\n <GradeUnitBrowserContext.Provider value={contextValue}>\r\n {children}\r\n </GradeUnitBrowserContext.Provider>\r\n );\r\n};","import React, { useEffect } from 'react';\r\nimport MathWizHeader from '../../components/MathWizHeader/MathWizHeader';\r\nimport { Sidebar } from '../../components/Sidebar/Sidebar';\r\nimport { ContentAccordion } from '../../components/ContentAccordion/ContentAccordion';\r\nimport { useGradeUnitBrowser } from './GradeUnitBrowserContext';\r\nimport type { GradeUnitBrowserPageProps } from './types';\r\nimport './GradeUnitBrowserPage.css';\r\n\r\n// 主页面组件\r\nexport const GradeUnitBrowserPage: React.FC<GradeUnitBrowserPageProps> = ({\r\n gradeId,\r\n userId,\r\n onLearnAction,\r\n className,\r\n userInfo: propUserInfo,\r\n exploreMenu: propExploreMenu\r\n}) => {\r\n const {\r\n userInfo: contextUserInfo,\r\n exploreMenu: contextExploreMenu,\r\n unitsData,\r\n lessons,\r\n loading,\r\n error,\r\n activeUnitId,\r\n activeLessonIds,\r\n setActiveUnit,\r\n toggleLesson,\r\n loadPageData\r\n } = useGradeUnitBrowser();\r\n\r\n // 使用props中的值或context中的值\r\n const userInfo = propUserInfo ?? contextUserInfo;\r\n const exploreMenu = propExploreMenu ?? contextExploreMenu;\r\n\r\n useEffect(() => {\r\n loadPageData(gradeId, userId);\r\n }, [gradeId, userId, loadPageData]);\r\n\r\n // 调试日志\r\n useEffect(() => {\r\n console.log('activeUnitId from context:', activeUnitId);\r\n console.log('lessons from context:', lessons);\r\n\r\n // 重新计算 activeUnit 用于调试\r\n const activeUnitNav = unitsData?.units?.find(unit => unit.unitId === activeUnitId) || null;\r\n const debugActiveUnit = activeUnitNav && activeUnitId && lessons[activeUnitId] ? {\r\n id: activeUnitNav.unitId,\r\n title: activeUnitNav.title,\r\n description: activeUnitNav.description,\r\n estimatedDuration: activeUnitNav.estimatedDuration,\r\n totalLessons: activeUnitNav.totalLessons,\r\n moduleCategory: activeUnitNav.moduleCategory,\r\n lessons: lessons[activeUnitId]\r\n } : null;\r\n\r\n console.log('activeUnit computed:', debugActiveUnit);\r\n }, [activeUnitId, lessons, unitsData]);\r\n\r\n // 获取当前激活的单元\r\n const activeUnitNav = unitsData?.units?.find(unit => unit.unitId === activeUnitId) || null;\r\n\r\n // 获取完整的单元数据(包含课程和知识点)\r\n const activeUnit = activeUnitNav && activeUnitId && lessons[activeUnitId] ? {\r\n id: activeUnitNav.unitId,\r\n title: activeUnitNav.title,\r\n description: activeUnitNav.description,\r\n estimatedDuration: activeUnitNav.estimatedDuration,\r\n totalLessons: activeUnitNav.totalLessons,\r\n moduleCategory: activeUnitNav.moduleCategory,\r\n lessons: lessons[activeUnitId]\r\n } : null;\r\n\r\n if (loading) {\r\n return (\r\n <div className=\"grade-unit-browser-page loading\" data-testid=\"grade-unit-browser-page\">\r\n <div className=\"loading-spinner\" data-testid=\"loading-spinner\">\r\n 加载中...\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n if (error) {\r\n return (\r\n <div className=\"grade-unit-browser-page error\" data-testid=\"grade-unit-browser-page\">\r\n <div className=\"error-message\" data-testid=\"error-message\">\r\n {error}\r\n </div>\r\n <button\r\n onClick={() => loadPageData(gradeId, userId)}\r\n className=\"retry-button\"\r\n >\r\n 重试\r\n </button>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div\r\n className={`grade-unit-browser-page ${className || ''}`}\r\n data-testid=\"grade-unit-browser-page\"\r\n >\r\n {/* Header 区域 */}\r\n <div className=\"header-area\">\r\n <MathWizHeader\r\n userData={userInfo || undefined}\r\n exploreItems={exploreMenu}\r\n />\r\n </div>\r\n\r\n {/* Sidebar 区域 */}\r\n <div className=\"sidebar-area\">\r\n <Sidebar\r\n data={unitsData}\r\n activeUnitId={activeUnitId}\r\n onUnitSelect={setActiveUnit}\r\n loading={loading}\r\n />\r\n </div>\r\n\r\n {/* 主内容区域 */}\r\n <div className=\"content-area\">\r\n <ContentAccordion\r\n unit={activeUnit}\r\n activeLessonIds={activeLessonIds}\r\n onToggleLesson={toggleLesson}\r\n onLearnAction={onLearnAction || (() => { })}\r\n loading={loading}\r\n />\r\n </div>\r\n </div>\r\n );\r\n};","// 课程数据类型定义\r\nexport interface KnowledgeItem {\r\n id: string;\r\n title: string;\r\n description: string;\r\n progress: number;\r\n contentUrl: string;\r\n status?: 'mastered' | 'proficient' | 'familiar' | 'attempted' | 'not-started';\r\n}\r\n\r\nexport interface Lesson {\r\n id: string;\r\n title: string;\r\n duration: number;\r\n knowledgeItems: KnowledgeItem[];\r\n}\r\n\r\nexport interface Unit {\r\n id: string;\r\n title: string;\r\n description: string;\r\n estimatedDuration: string;\r\n totalLessons: number;\r\n moduleCategory: string;\r\n lessons: Lesson[];\r\n}\r\n\r\nexport interface CourseData {\r\n id: string;\r\n title: string;\r\n level: number;\r\n subject: string;\r\n units: Unit[];\r\n}\r\n\r\n// 用户数据类型\r\nexport interface UserData {\r\n id: string;\r\n name: string;\r\n level: number;\r\n avatar: string;\r\n badges: string[];\r\n}\r\n\r\n// 探索菜单项\r\nexport interface ExploreItem {\r\n id: string;\r\n label: string;\r\n status: string;\r\n}\r\n\r\n// 单元进度类型\r\nexport interface UnitProgress {\r\n unitId: string;\r\n title: string;\r\n progressPercentage: number;\r\n status: 'not-started' | 'in-progress' | 'completed';\r\n totalLessons: number;\r\n completedLessons: number;\r\n lastAccessed?: string;\r\n}\r\n\r\n// 状态管理类型\r\nexport interface AppState {\r\n currentUnitId: string | null;\r\n currentLessonId: string | null;\r\n currentKnowledgeId: string | null;\r\n sidebarCollapsed: boolean;\r\n exploreMenuOpen: boolean;\r\n activeLessonIds: string[];\r\n \r\n // Actions\r\n setCurrentUnit: (unitId: string) => void;\r\n setCurrentLesson: (lessonId: string) => void;\r\n setCurrentKnowledge: (knowledgeId: string) => void;\r\n toggleSidebar: () => void;\r\n toggleExploreMenu: (open?: boolean) => void;\r\n toggleLessonActive: (lessonId: string) => void;\r\n}\r\n\r\n// 图标映射\r\nexport const categoryIcons: Record<string, string> = {\r\n \"Arithmetic and Algebra\": \"🔢\",\r\n \"Graphics and Geometry\": \"📐\",\r\n \"Probability and Statistics\": \"📊\",\r\n \"Default\": \"📚\"\r\n};\r\n\r\n// 状态映射\r\nexport const statusMapping: Record<string, string> = {\r\n 'mastered': '已掌握',\r\n 'proficient': '熟练',\r\n 'familiar': '熟悉',\r\n 'attempted': '已尝试',\r\n 'not-started': '未开始'\r\n};\r\n\r\nexport const statusColors: Record<string, string> = {\r\n 'mastered': '#10b981',\r\n 'proficient': '#3b82f6',\r\n 'familiar': '#f59e0b',\r\n 'attempted': '#8b5cf6',\r\n 'not-started': '#6b7280'\r\n};","/**\r\n * 几何核心工具函数 \r\n * 专注于三角形寻宝游戏的几何计算、坐标处理和三角形验证\r\n */\r\n\r\n// ==================== 基础几何计算 ====================\r\n\r\n/**\r\n * 计算线段上指定比例的点\r\n * @param {Object} p1 - 起点 {x, y}\r\n * @param {Object} p2 - 终点 {x, y}\r\n * @param {number} ratio - 比例 (0-1)\r\n * @returns {Object} 计算出的点 {x, y}\r\n */\r\nexport const pointOnLine = (p1, p2, ratio) => ({\r\n x: p1.x + (p2.x - p1.x) * ratio,\r\n y: p1.y + (p2.y - p1.y) * ratio\r\n});\r\n\r\n\r\n// ==================== 几何数据导入 ====================\r\n\r\n/**\r\n * 🔧 架构修复:从单一数据源导入几何数据\r\n * \r\n * ✅ 职责:提供纯工具函数 (符合utils层职责)\r\n * \r\n * 数据源:\r\n * - 统一从 data/geometryDefinitions.js 获取\r\n * - 实现真正的单一数据源架构\r\n * - 支持依赖注入和数据源切换\r\n */\r\n\r\n/**\r\n * 计算标准化的三角形分割点坐标 - 重构版本\r\n */\r\nexport const calculateGamePoints = () => {\r\n\r\n // 基础三角形顶点(归一化坐标)\r\n const A = { x: 0.5, y: 0.1, name: 'A' };\r\n const B = { x: 0.1, y: 0.75, name: 'B' };\r\n const C = { x: 0.9, y: 0.75, name: 'C' };\r\n\r\n // 第一层分割线(距离顶点A的1/3处)\r\n const D = { ...pointOnLine(A, B, 1 / 3), name: 'D' };\r\n const E = { ...pointOnLine(A, C, 1 / 3), name: 'E' };\r\n\r\n // 第二层分割线(距离顶点A的2/3处)\r\n const M = { ...pointOnLine(A, B, 2 / 3), name: 'M' };\r\n const N = { ...pointOnLine(A, C, 2 / 3), name: 'N' };\r\n\r\n // 底边BC上的分割点\r\n const P = { ...pointOnLine(B, C, 1 / 3), name: 'P' };\r\n const Q = { ...pointOnLine(B, C, 2 / 3), name: 'Q' };\r\n\r\n // DE线上的分割点\r\n const U = { ...pointOnLine(D, E, 1 / 3), name: 'U' };\r\n const S = { ...pointOnLine(D, E, 2 / 3), name: 'S' };\r\n\r\n // MN线上的分割点\r\n const K = { ...pointOnLine(M, N, 1 / 3), name: 'K' };\r\n const L = { ...pointOnLine(M, N, 2 / 3), name: 'L' };\r\n\r\n return { A, B, C, D, E, M, N, P, Q, U, S, K, L };\r\n};\r\n\r\n/**\r\n * 将归一化坐标转换为绝对像素坐标\r\n * @param {Object} normalizedPoints - 归一化坐标点集\r\n * @param {number} width - 画布宽度\r\n * @param {number} height - 画布高度\r\n * @returns {Object} 绝对坐标点集\r\n */\r\nexport const toPixelCoordinates = (normalizedPoints, width, height) => {\r\n const pixelPoints = {};\r\n\r\n for (const [name, point] of Object.entries(normalizedPoints)) {\r\n pixelPoints[name] = {\r\n ...point,\r\n x: point.x * width,\r\n y: point.y * height\r\n };\r\n }\r\n\r\n return pixelPoints;\r\n};\r\n\r\n\r\n\r\n/**\r\n * 使用重心坐标判断点是否在三角形内 - 来自 gameUtils.js\r\n * @param {Object} point - 待检测的点 {x, y}\r\n * @param {Array} triangle - 三角形的三个顶点\r\n * @returns {boolean} 点是否在三角形内\r\n */\r\nexport const isPointInTriangle = (point, triangle) => {\r\n const [p1, p2, p3] = triangle;\r\n const { x, y } = point;\r\n\r\n // 使用重心坐标系\r\n const denominator = ((p2.y - p3.y) * (p1.x - p3.x) + (p3.x - p2.x) * (p1.y - p3.y));\r\n\r\n if (Math.abs(denominator) < 0.0001) return false; // 退化三角形\r\n\r\n const a = ((p2.y - p3.y) * (x - p3.x) + (p3.x - p2.x) * (y - p3.y)) / denominator;\r\n const b = ((p3.y - p1.y) * (x - p3.x) + (p1.x - p3.x) * (y - p3.y)) / denominator;\r\n const c = 1 - a - b;\r\n\r\n // 点在三角形内当且仅当所有重心坐标都非负\r\n return a >= -0.001 && b >= -0.001 && c >= -0.001;\r\n};\r\n\r\n/**\r\n * 检查两个三角形是否匹配 (顶点相同,顺序可能不同) - 来自 gameUtils.js\r\n * @param {Array} triangle1 - 第一个三角形的顶点数组\r\n * @param {Array} triangle2 - 第二个三角形的顶点数组\r\n * @returns {boolean} 是否匹配\r\n */\r\nexport const trianglesMatch = (triangle1, triangle2) => {\r\n if (!triangle1 || !triangle2) return false;\r\n if (triangle1.length !== 3 || triangle2.length !== 3) return false;\r\n\r\n const names1 = triangle1.map(p => p.name).sort();\r\n const names2 = triangle2.map(p => p.name).sort();\r\n\r\n return names1.every((name, index) => name === names2[index]);\r\n};\r\n\r\n/**\r\n * 比较两个点数组是否包含相同的点(忽略顺序)\r\n * @param {Array} points1 - 第一组点\r\n * @param {Array} points2 - 第二组点\r\n * @returns {boolean} 是否匹配\r\n */\r\nexport const comparePointArrays = (points1, points2) => {\r\n if (!points1 || !points2 || points1.length !== points2.length) {\r\n return false;\r\n }\r\n\r\n const names1 = points1.map(p => p.name).sort();\r\n const names2 = points2.map(p => p.name).sort();\r\n\r\n return names1.join('') === names2.join('');\r\n};\r\n\r\n\r\n\r\n/**\r\n * 获取标准化的三角形连线定义\r\n * @returns {Array} 连线数组\r\n */\r\nexport const getBasicLineDefinitions = () => [\r\n // 大三角形边\r\n { from: 'A', to: 'B' },\r\n { from: 'A', to: 'C' },\r\n { from: 'B', to: 'C' },\r\n \r\n // 第一层分割线\r\n { from: 'D', to: 'E' },\r\n \r\n // 第二层分割线\r\n { from: 'M', to: 'N' },\r\n \r\n // 底边分割线\r\n { from: 'P', to: 'Q' },\r\n \r\n // 连接到顶点的线段\r\n { from: 'A', to: 'D' },\r\n { from: 'A', to: 'E' },\r\n { from: 'A', to: 'M' },\r\n { from: 'A', to: 'N' },\r\n { from: 'A', to: 'P' },\r\n { from: 'A', to: 'Q' },\r\n \r\n // 内部连接线段\r\n { from: 'D', to: 'U' },\r\n { from: 'U', to: 'S' },\r\n { from: 'S', to: 'E' },\r\n { from: 'M', to: 'K' },\r\n { from: 'K', to: 'L' },\r\n { from: 'L', to: 'N' },\r\n \r\n // 到底边的连接\r\n { from: 'B', to: 'P' },\r\n { from: 'P', to: 'Q' },\r\n { from: 'Q', to: 'C' }\r\n];\r\n\r\n/**\r\n * 获取18个宝石的基础定义 - MVP版本\r\n * @returns {Array} 宝石数组\r\n */\r\nexport const getBasicGemDefinitions = () => [\r\n // 大三角形系列(3个)\r\n { id: 'gem_1', vertices: ['A', 'B', 'P'], points: 10, category: 'basic' },\r\n { id: 'gem_2', vertices: ['A', 'P', 'Q'], points: 10, category: 'basic' },\r\n { id: 'gem_3', vertices: ['A', 'Q', 'C'], points: 10, category: 'basic' },\r\n\r\n // 中等三角形系列(3个)\r\n { id: 'gem_4', vertices: ['A', 'B', 'Q'], points: 15, category: 'medium' },\r\n { id: 'gem_5', vertices: ['A', 'P', 'C'], points: 15, category: 'medium' },\r\n { id: 'gem_6', vertices: ['A', 'B', 'C'], points: 20, category: 'large' },\r\n\r\n // ADE区域系列(6个)\r\n { id: 'gem_7', vertices: ['A', 'D', 'U'], points: 12, category: 'ade_small' },\r\n { id: 'gem_8', vertices: ['A', 'U', 'S'], points: 12, category: 'ade_small' },\r\n { id: 'gem_9', vertices: ['A', 'S', 'E'], points: 12, category: 'ade_small' },\r\n { id: 'gem_10', vertices: ['A', 'D', 'S'], points: 18, category: 'ade_medium' },\r\n { id: 'gem_11', vertices: ['A', 'U', 'E'], points: 18, category: 'ade_medium' },\r\n { id: 'gem_12', vertices: ['A', 'D', 'E'], points: 25, category: 'ade_large' },\r\n\r\n // AMN区域系列(6个)\r\n { id: 'gem_13', vertices: ['A', 'M', 'K'], points: 14, category: 'amn_small' },\r\n { id: 'gem_14', vertices: ['A', 'K', 'L'], points: 14, category: 'amn_small' },\r\n { id: 'gem_15', vertices: ['A', 'L', 'N'], points: 14, category: 'amn_small' },\r\n { id: 'gem_16', vertices: ['A', 'M', 'L'], points: 20, category: 'amn_medium' },\r\n { id: 'gem_17', vertices: ['A', 'K', 'N'], points: 20, category: 'amn_medium' },\r\n { id: 'gem_18', vertices: ['A', 'M', 'N'], points: 30, category: 'amn_large' }\r\n];\r\n\r\n// ==================== 几何配置和默认导出 ====================\r\n\r\n/**\r\n * 几何配置常量 - 整合版本\r\n */\r\nexport const GEOMETRY_CONFIG = {\r\n TOTAL_GEMS: 18,\r\n CANVAS_RATIO: 4 / 3,\r\n DEFAULT_VIEWBOX: { width: 700, height: 600 },\r\n POINT_RADIUS: { default: 6, selected: 9 },\r\n TOLERANCE: 0.001,\r\n\r\n // 新增:几何计算相关常量\r\n MIN_TRIANGLE_AREA: 0.001,\r\n COORDINATE_PRECISION: 0.0001,\r\n BARYCENTRIC_TOLERANCE: -0.001\r\n};\r\n\r\n/**\r\n * 默认导出 - 包含所有几何工具函数\r\n */\r\nexport default {\r\n // 基础几何计算\r\n pointOnLine,\r\n calculateGamePoints,\r\n toPixelCoordinates,\r\n\r\n // 三角形验证和分析\r\n isPointInTriangle,\r\n trianglesMatch,\r\n comparePointArrays,\r\n\r\n // 数据和配置 (重新导出数据层接口)\r\n getBasicGemDefinitions,\r\n getBasicLineDefinitions,\r\n GEOMETRY_CONFIG,\r\n\r\n // 🔧 新增:单一数据源访问接口\r\n // getStandardGeometryPoints: calculateGamePoints // 暂时注释掉,需要时再实现\r\n}; ","import { MOCK_USER_DATA, MOCK_JWT_TOKEN } from './mockData';\r\nimport { courseData } from './courseData';\r\n\r\nexport interface UserLessonProgress {\r\n lessonId: string;\r\n status: 'not-started' | 'in-progress' | 'completed';\r\n progressPercentage: number;\r\n lastAccessed?: string;\r\n timeSpent?: number; // 分钟\r\n score?: number; // 分数 0-100\r\n attempts?: number; // 尝试次数\r\n}\r\n\r\nexport interface UserUnitProgress {\r\n unitId: string;\r\n userId: string;\r\n totalLessons: number;\r\n completedLessons: number;\r\n progressPercentage: number;\r\n status: 'not-started' | 'in-progress' | 'completed';\r\n lastAccessed?: string;\r\n lessons: UserLessonProgress[];\r\n}\r\n\r\nexport interface UserCourseProgress {\r\n courseId: string;\r\n userId: string;\r\n totalUnits: number;\r\n completedUnits: number;\r\n progressPercentage: number;\r\n status: 'not-started' | 'in-progress' | 'completed';\r\n lastAccessed?: string;\r\n units: UserUnitProgress[];\r\n}\r\n\r\n// 生成模拟的用户课程进度数据\r\nexport const generateMockUserCourseProgress = (userId: string = MOCK_USER_DATA.id): UserCourseProgress => {\r\n const unitsProgress: UserUnitProgress[] = courseData.units.map((unit, index) => {\r\n // 模拟进度数据 - 根据单元索引设置不同的进度\r\n const baseProgress = Math.min(100, Math.max(0, index * 15 + Math.random() * 20));\r\n const completedLessons = Math.floor((unit.lessons.length * baseProgress) / 100);\r\n\r\n const lessonsProgress: UserLessonProgress[] = unit.lessons.map((lesson, lessonIndex) => {\r\n const lessonProgress = Math.min(100, Math.max(0, baseProgress - (lessonIndex * 10) + Math.random() * 30));\r\n\r\n return {\r\n lessonId: lesson.id,\r\n status: lessonProgress >= 100 ? 'completed' : lessonProgress > 0 ? 'in-progress' : 'not-started',\r\n progressPercentage: Math.round(lessonProgress),\r\n lastAccessed: lessonProgress > 0 ? new Date(Date.now() - Math.random() * 7 * 24 * 60 * 60 * 1000).toISOString() : undefined,\r\n timeSpent: lessonProgress > 0 ? Math.floor(Math.random() * 120 + 10) : undefined,\r\n score: lessonProgress >= 100 ? Math.floor(Math.random() * 21 + 80) : undefined,\r\n attempts: lessonProgress > 0 ? Math.floor(Math.random() * 3 + 1) : undefined\r\n };\r\n });\r\n\r\n return {\r\n unitId: unit.id,\r\n userId,\r\n totalLessons: unit.lessons.length,\r\n completedLessons,\r\n progressPercentage: Math.round(baseProgress),\r\n status: baseProgress >= 100 ? 'completed' : baseProgress > 0 ? 'in-progress' : 'not-started',\r\n lastAccessed: baseProgress > 0 ? new Date(Date.now() - Math.random() * 14 * 24 * 60 * 60 * 1000).toISOString() : undefined,\r\n lessons: lessonsProgress\r\n };\r\n });\r\n\r\n const totalProgress = unitsProgress.reduce((sum, unit) => sum + unit.progressPercentage, 0) / unitsProgress.length;\r\n const completedUnits = unitsProgress.filter(unit => unit.status === 'completed').length;\r\n\r\n return {\r\n courseId: courseData.id,\r\n userId,\r\n totalUnits: unitsProgress.length,\r\n completedUnits,\r\n progressPercentage: Math.round(totalProgress),\r\n status: totalProgress >= 100 ? 'completed' : totalProgress > 0 ? 'in-progress' : 'not-started',\r\n lastAccessed: new Date(Date.now() - Math.random() * 3 * 24 * 60 * 60 * 1000).toISOString(),\r\n units: unitsProgress\r\n };\r\n};\r\n\r\n// 模拟用户课程进度数据\r\nexport const MOCK_USER_COURSE_PROGRESS: UserCourseProgress = generateMockUserCourseProgress();\r\n\r\n// 获取用户课程进度\r\nexport const getUserCourseProgress = (userId: string, courseId: string): UserCourseProgress | null => {\r\n if (userId === MOCK_USER_DATA.id && courseId === courseData.id) {\r\n return MOCK_USER_COURSE_PROGRESS;\r\n }\r\n return null;\r\n};\r\n\r\n// 获取特定单元的进度\r\nexport const getUserUnitProgress = (userId: string, courseId: string, unitId: string): UserUnitProgress | null => {\r\n const courseProgress = getUserCourseProgress(userId, courseId);\r\n if (!courseProgress) return null;\r\n\r\n return courseProgress.units.find(unit => unit.unitId === unitId) || null;\r\n};\r\n\r\n// 获取特定课时的进度\r\nexport const getUserLessonProgress = (userId: string, courseId: string, unitId: string, lessonId: string): UserLessonProgress | null => {\r\n const unitProgress = getUserUnitProgress(userId, courseId, unitId);\r\n if (!unitProgress) return null;\r\n\r\n return unitProgress.lessons.find(lesson => lesson.lessonId === lessonId) || null;\r\n};\r\n\r\n// 更新课时进度\r\nexport const updateUserLessonProgress = (\r\n userId: string,\r\n courseId: string,\r\n unitId: string,\r\n lessonId: string,\r\n progress: Partial<UserLessonProgress>\r\n): boolean => {\r\n // 在实际应用中,这里会调用API更新数据库\r\n // 这里只是模拟更新操作\r\n console.log('Updating lesson progress:', { userId, courseId, unitId, lessonId, progress });\r\n return true;\r\n};","import { MOCK_USER_DATA, MOCK_JWT_TOKEN } from './mockData';\r\nimport { courseData } from './courseData';\r\nimport { getUserCourseProgress } from './userCourseProgress';\r\nimport type { UserUnitProgress } from './userCourseProgress';\r\n\r\nexport interface UserGradeUnitNavItem {\r\n unitId: string;\r\n title: string;\r\n description: string;\r\n moduleCategory: string;\r\n estimatedDuration: string;\r\n totalLessons: number;\r\n completedLessons: number;\r\n progressPercentage: number;\r\n status: 'not-started' | 'in-progress' | 'completed';\r\n lastAccessed?: string;\r\n isActive: boolean;\r\n route: string;\r\n icon?: string;\r\n}\r\n\r\nexport interface UserGradeUnitsNav {\r\n userId: string;\r\n courseId: string;\r\n courseTitle: string;\r\n courseLevel: number;\r\n totalUnits: number;\r\n completedUnits: number;\r\n overallProgress: number;\r\n status: 'not-started' | 'in-progress' | 'completed';\r\n lastAccessed?: string;\r\n units: UserGradeUnitNavItem[];\r\n}\r\n\r\n// 获取用户年级单元导航数据\r\nexport const getUserGradeUnitsNav = (userId: string, courseId: string): UserGradeUnitsNav | null => {\r\n const userProgress = getUserCourseProgress(userId, courseId);\r\n if (!userProgress) return null;\r\n\r\n const unitsNav: UserGradeUnitNavItem[] = courseData.units.map((unit, index) => {\r\n const unitProgress = userProgress.units.find(up => up.unitId === unit.id);\r\n\r\n return {\r\n unitId: unit.id,\r\n title: unit.title,\r\n description: unit.description,\r\n moduleCategory: unit.moduleCategory,\r\n estimatedDuration: unit.estimatedDuration,\r\n totalLessons: unit.lessons.length,\r\n completedLessons: unitProgress?.completedLessons || 0,\r\n progressPercentage: unitProgress?.progressPercentage || 0,\r\n status: unitProgress?.status || 'not-started',\r\n lastAccessed: unitProgress?.lastAccessed,\r\n isActive: index === 0, // 默认第一个单元为活跃状态\r\n route: `/math/grade-${courseData.level}/unit/${unit.id}`\r\n };\r\n });\r\n\r\n return {\r\n userId,\r\n courseId: courseData.id,\r\n courseTitle: courseData.title,\r\n courseLevel: courseData.level,\r\n totalUnits: unitsNav.length,\r\n completedUnits: unitsNav.filter(unit => unit.status === 'completed').length,\r\n overallProgress: userProgress.progressPercentage,\r\n status: userProgress.status,\r\n lastAccessed: userProgress.lastAccessed,\r\n units: unitsNav\r\n };\r\n};\r\n\r\n// 获取特定单元的导航项\r\nexport const getUnitNavItem = (userId: string, courseId: string, unitId: string): UserGradeUnitNavItem | null => {\r\n const navData = getUserGradeUnitsNav(userId, courseId);\r\n if (!navData) return null;\r\n\r\n return navData.units.find(unit => unit.unitId === unitId) || null;\r\n};\r\n\r\n// 更新单元活跃状态\r\nexport const updateUnitActiveStatus = (userId: string, courseId: string, unitId: string, isActive: boolean): boolean => {\r\n // 在实际应用中,这里会更新用户的学习状态\r\n // 这里只是模拟操作\r\n console.log('Updating unit active status:', { userId, courseId, unitId, isActive });\r\n return true;\r\n};\r\n\r\n// 模拟用户年级单元导航数据\r\nexport const MOCK_USER_GRADE_UNITS_NAV: UserGradeUnitsNav = getUserGradeUnitsNav(MOCK_USER_DATA.id, courseData.id)!;","// 用户年级单元进度数据 - 用于 Sidebar 展示组件\r\nimport { MOCK_USER_DATA } from './mockData';\r\nimport { courseData } from './courseData';\r\n\r\nexport interface UnitProgressData {\r\n unitId: string;\r\n title: string;\r\n description: string;\r\n moduleCategory: string;\r\n estimatedDuration: string;\r\n totalLessons: number;\r\n completedLessons: number;\r\n progressPercentage: number;\r\n status: 'not-started' | 'in-progress' | 'completed';\r\n lastAccessed?: string;\r\n isActive: boolean;\r\n route: string;\r\n icon?: string;\r\n}\r\n\r\nexport interface UserGradeUnitsProgressData {\r\n userId: string;\r\n courseId: string;\r\n courseTitle: string;\r\n courseLevel: number;\r\n totalUnits: number;\r\n completedUnits: number;\r\n overallProgress: number;\r\n status: 'not-started' | 'in-progress' | 'completed';\r\n lastAccessed?: string;\r\n units: UnitProgressData[];\r\n}\r\n\r\n// 模拟用户年级单元进度数据 - 用于 Sidebar 展示组件\r\n// 此数据仅用于展示,不包含任何业务逻辑或API调用\r\n\r\nexport const MOCK_USER_GRADE_UNITS_PROGRESS: UserGradeUnitsProgressData = {\r\n userId: MOCK_USER_DATA.id,\r\n courseId: courseData.id,\r\n courseTitle: courseData.title,\r\n courseLevel: courseData.level,\r\n totalUnits: courseData.units.length,\r\n completedUnits: 3,\r\n overallProgress: 45,\r\n status: 'in-progress',\r\n lastAccessed: '2024-01-15T10:30:00Z',\r\n units: [\r\n {\r\n unitId: 'unit_1',\r\n title: '小数乘法',\r\n description: '学习小数乘法的计算方法及应用',\r\n moduleCategory: 'Arithmetic and Algebra',\r\n estimatedDuration: '3周',\r\n totalLessons: 10,\r\n completedLessons: 8,\r\n progressPercentage: 80,\r\n status: 'completed',\r\n lastAccessed: '2024-01-10T14:20:00Z',\r\n isActive: false,\r\n route: '/math/grade-5/unit/unit_1',\r\n icon: '🔢'\r\n },\r\n {\r\n unitId: 'unit_2',\r\n title: '小数除法',\r\n description: '学习小数除法的计算方法及应用',\r\n moduleCategory: 'Arithmetic and Algebra',\r\n estimatedDuration: '3周',\r\n totalLessons: 12,\r\n completedLessons: 6,\r\n progressPercentage: 50,\r\n status: 'in-progress',\r\n lastAccessed: '2024-01-15T10:30:00Z',\r\n isActive: true,\r\n route: '/math/grade-5/unit/unit_2',\r\n icon: '➗'\r\n },\r\n {\r\n unitId: 'unit_3',\r\n title: '简易方程',\r\n description: '学习用字母表示数和解简易方程',\r\n moduleCategory: 'Arithmetic and Algebra',\r\n estimatedDuration: '4周',\r\n totalLessons: 14,\r\n completedLessons: 2,\r\n progressPercentage: 14,\r\n status: 'in-progress',\r\n lastAccessed: '2024-01-12T16:45:00Z',\r\n isActive: false,\r\n route: '/math/grade-5/unit/unit_3',\r\n icon: '📝'\r\n },\r\n {\r\n unitId: 'unit_4',\r\n title: '多边形的面积',\r\n description: '学习平行四边形、三角形、梯形和组合图形的面积计算',\r\n moduleCategory: 'Graphics and Geometry',\r\n estimatedDuration: '3周',\r\n totalLessons: 12,\r\n completedLessons: 0,\r\n progressPercentage: 0,\r\n status: 'not-started',\r\n isActive: false,\r\n route: '/math/grade-5/unit/unit_4',\r\n icon: '📐'\r\n },\r\n {\r\n unitId: 'unit_5',\r\n title: '因数与倍数',\r\n description: '学习因数、倍数、质数、合数等概念',\r\n moduleCategory: 'Arithmetic and Algebra',\r\n estimatedDuration: '3周',\r\n totalLessons: 10,\r\n completedLessons: 0,\r\n progressPercentage: 0,\r\n status: 'not-started',\r\n isActive: false,\r\n route: '/math/grade-5/unit/unit_5',\r\n icon: '🔢'\r\n },\r\n {\r\n unitId: 'unit_6',\r\n title: '长方体和正方体',\r\n description: '学习长方体和正方体的特征、表面积和体积计算',\r\n moduleCategory: 'Graphics and Geometry',\r\n estimatedDuration: '4周',\r\n totalLessons: 14,\r\n completedLessons: 0,\r\n progressPercentage: 0,\r\n status: 'not-started',\r\n isActive: false,\r\n route: '/math/grade-5/unit/unit_6',\r\n icon: '📦'\r\n },\r\n {\r\n unitId: 'unit_7',\r\n title: '分数的意义和性质',\r\n description: '学习分数的意义、性质和约分、通分等方法',\r\n moduleCategory: 'Arithmetic and Algebra',\r\n estimatedDuration: '4周',\r\n totalLessons: 16,\r\n completedLessons: 0,\r\n progressPercentage: 0,\r\n status: 'not-started',\r\n isActive: false,\r\n route: '/math/grade-5/unit/unit_7',\r\n icon: '½'\r\n },\r\n {\r\n unitId: 'unit_8',\r\n title: '分数的加法和减法',\r\n description: '学习同分母分数、异分母分数的加法和减法',\r\n moduleCategory: 'Arithmetic and Algebra',\r\n estimatedDuration: '3周',\r\n totalLessons: 12,\r\n completedLessons: 0,\r\n progressPercentage: 0,\r\n status: 'not-started',\r\n isActive: false,\r\n route: '/math/grade-5/unit/unit_8',\r\n icon: '➕'\r\n },\r\n {\r\n unitId: 'unit_9',\r\n title: '折线统计图',\r\n description: '学习单式折线统计图和复式折线统计图的认识和制作',\r\n moduleCategory: 'Probability and Statistics',\r\n estimatedDuration: '2周',\r\n totalLessons: 6,\r\n completedLessons: 0,\r\n progressPercentage: 0,\r\n status: 'not-started',\r\n isActive: false,\r\n route: '/math/grade-5/unit/unit_9',\r\n icon: '📊'\r\n }\r\n ]\r\n};"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","self","source","owner","debugStack","debugTask","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","Button","progress","variant","size","radius","className","colorClass","buttonClasses","jsx","createContext2","options","strict","errorMessage","Context","useContext2","_a","context","error","useDOMRef","ref","domRef","useRef","useImperativeHandle","dataAttr","condition","toVal","mix","y","str","clsx","args","i","tmp","x","safeText","text","getUniqueID","prefix","objectToDeps","obj","clamp","min","max","clampPercentage","chain","callbacks","callback","idsUpdaterMap","mergeIds","idA","idB","setIdsA","setIdsB","mergeProps","result","a","b","useIsHydrated","subscribe","DOMPropNames","DOMEventNames","propRe","ariaRe","funcRe","filterDOMProps","opts","labelable","enabled","propNames","omitPropNames","omitEventNames","omitDataProps","omitEventProps","filteredProps","prop","ProviderContext","useProviderContext","createContext","$148a7a147e38ea7f$var$RTL_SCRIPTS","$148a7a147e38ea7f$var$RTL_LANGS","$148a7a147e38ea7f$export$702d680b21cbd764","localeString","locale","textInfo","lang","$b5e257d569688ac6$var$defaultContext","$b5e257d569688ac6$var$SSRContext","$670gB$react","$b5e257d569688ac6$var$IsSSRContext","$b5e257d569688ac6$var$canUseDOM","$b5e257d569688ac6$var$componentIds","$b5e257d569688ac6$var$useCounter","isDisabled","ctx","$670gB$useContext","$670gB$useRef","_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner","_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","currentOwner","prevComponentValue","$b5e257d569688ac6$var$useLegacySSRSafeId","defaultId","counter","$b5e257d569688ac6$var$useModernSSRSafeId","id","didSSR","$670gB$useState","$b5e257d569688ac6$export$535bd6ca7f90a273","$b5e257d569688ac6$export$619500959fc48b26","$b5e257d569688ac6$var$getSnapshot","$b5e257d569688ac6$var$getServerSnapshot","$b5e257d569688ac6$var$subscribe","onStoreChange","$1e5a04cdaf7d1af8$var$localeSymbol","$1e5a04cdaf7d1af8$export$f09106e7c6677ec5","$1e5a04cdaf7d1af8$var$currentLocale","$1e5a04cdaf7d1af8$var$listeners","$1e5a04cdaf7d1af8$var$updateLocale","listener","$1e5a04cdaf7d1af8$export$188ec29ebc2bdc3a","isSSR","$ffhGL$useIsSSR","defaultLocale","setDefaultLocale","$ffhGL$useState","$ffhGL$useEffect","$18f2051aff69b9bf$var$I18nContext","$h9FiU$react","$18f2051aff69b9bf$export$43bb16f9c6d9e3f7","$h9FiU$useContext","_check_private_redeclaration","privateCollection","_class_private_field_init","privateMap","$f0a04ccd8dbdd83b$export$e5c5a5f917a5871c","$HgANd$react","$8ae05eaa5c114e9c$var$_React_useInsertionEffect","$8ae05eaa5c114e9c$var$useEarlyEffect","$lmaYr$react","$8ae05eaa5c114e9c$export$7f54fc3180508a52","fn","$lmaYr$useRef","$lmaYr$useCallback","f","$bdb11010cef70236$var$canUseDOM","$bdb11010cef70236$export$d41a04c74483c6ef","$bdb11010cef70236$var$registry","heldValue","$bdb11010cef70236$export$f680877a34711e37","setValue","$eKkEp$useState","nextId","$eKkEp$useRef","res","$eKkEp$useSSRSafeId","cleanupRef","cacheIdRef","r","$eKkEp$useEffect","newId","$bdb11010cef70236$export$cd8c9cb68f842629","$ff5963eb1fccf552$export$e08e3b67e392101e","$431fbd86ca7dc216$export$b204af158042fbac","el","_el_ownerDocument","$431fbd86ca7dc216$export$f21a1ffae260145a","$431fbd86ca7dc216$var$isNode","$431fbd86ca7dc216$export$af51f0f06c0f328a","$f4e2df6bd15f8569$var$_shadowDOM","$f4e2df6bd15f8569$export$98658e8c59125e6a","$d4ee10de306f2510$export$4282f70798064fe0","otherNode","$lcSu5$shadowDOM","currentNode","$d4ee10de306f2510$export$cd4e5573fbe2b576","doc","_activeElement_shadowRoot","activeElement","$d4ee10de306f2510$export$e58f029f0fbfdb29","event","o","$3ef42575df84b30b$export$9d1611c77c2fe928","$7jXr9$clsx","$65484d02dcb7eb3e$var$DOMPropNames","$65484d02dcb7eb3e$var$labelablePropNames","$65484d02dcb7eb3e$var$linkPropNames","$65484d02dcb7eb3e$var$globalAttrs","$65484d02dcb7eb3e$var$globalEvents","$65484d02dcb7eb3e$var$propRe","$65484d02dcb7eb3e$export$457c3d6518dd4c6f","isLink","global","events","$7215afc6de606d6b$export$de79e2c695e052f3","element","$7215afc6de606d6b$var$supportsPreventScroll","scrollableElements","$7215afc6de606d6b$var$getScrollableElements","$7215afc6de606d6b$var$restoreScrollPosition","$7215afc6de606d6b$var$supportsPreventScrollCached","parent","rootScrollingElement","scrollTop","scrollLeft","$c87311424ea30a05$var$testUserAgent","re","_window_navigator_userAgentData","brands","brand","$c87311424ea30a05$var$testPlatform","$c87311424ea30a05$var$cached","$c87311424ea30a05$export$9ac100e40613ea10","$c87311424ea30a05$export$186c6964ca17d99","$c87311424ea30a05$export$7bef049ce92e4224","$c87311424ea30a05$export$fedb369cb70207f1","$c87311424ea30a05$export$78551043582a6a98","$c87311424ea30a05$export$6446a186d09e379e","$c87311424ea30a05$export$a11b0059900ceec8","$c87311424ea30a05$export$b7d78993b74f766d","$ea8dcbcb9ea1b556$export$95185d699e05d4d7","target","modifiers","setOpening","_window_event_type","_window_event","metaKey","ctrlKey","altKey","shiftKey","$bbed8b41f857bcc0$var$transitionsByElement","$bbed8b41f857bcc0$var$transitionCallbacks","$bbed8b41f857bcc0$var$setupGlobalEvents","isTransitionEvent","onTransitionStart","e","transitions","onTransitionEnd","properties","cb","$bbed8b41f857bcc0$var$cleanupDetachedElements","eventTarget","$bbed8b41f857bcc0$export$24490316f764c430","$03deb23ff14920c4$export$4eaf04e54aa8eed6","globalListeners","$lPAwt$useRef","addGlobalListener","$lPAwt$useCallback","removeGlobalListener","_globalListeners_current_get","removeAllGlobalListeners","$lPAwt$useEffect","$313b98861ee5dd6c$export$d6875122194c7b44","defaultLabel","label","labelledBy","$e7801be82b4b2a53$export$4debdb1a3f0fa79e","$6a7db85432448f7f$export$60278871457622de","$6a7db85432448f7f$export$29bf1b5f2c56cf63","$7d2416ea0959daaa$var$supportsCheckVisibility","$7d2416ea0959daaa$var$isStyleVisible","windowObject","display","visibility","isVisible","getComputedStyle","computedDisplay","computedVisibility","$7d2416ea0959daaa$var$isAttributeVisible","childElement","$7d2416ea0959daaa$export$e989c0fffaa6b27a","$b4b717babfbb907b$var$focusableElements","$b4b717babfbb907b$var$FOCUSABLE_ELEMENT_SELECTOR","$b4b717babfbb907b$export$4c063cf1350e6fed","$b4b717babfbb907b$var$isInert","$9446cca9a3875146$export$7d15b64cf5a3a4c4","$488c6ddbf4ef74c2$var$formatterCache","$488c6ddbf4ef74c2$var$supportsSignDisplay","$488c6ddbf4ef74c2$var$supportsUnit","$488c6ddbf4ef74c2$var$UNITS","$488c6ddbf4ef74c2$export$cc77c4ff7e8673c5","$488c6ddbf4ef74c2$export$711b50b3c525e0f2","_UNITS_unit","unit","unitDisplay","values","start","end","startParts","endParts","p","$488c6ddbf4ef74c2$var$getCachedNumberFormatter","numberingSystem","cacheKey","numberFormatter","numberFormat","signDisplay","num","needsPositiveSign","negative","noSign","minus","$a916eb452884faea$export$b7a616150fdb9f44","$JFEdn$useMemo","$JFEdn$NumberFormatter","LayoutGroupContext","useConstant","init","isBrowser","useIsomorphicLayoutEffect","useLayoutEffect","useEffect","PresenceContext","v","formatErrorMessage","message","errorCode","warning","invariant","check","isObject","warned","warnOnce","checkStringStartsWith","token","isCSSVariableName","startsAsVariableToken","isCSSVariableToken","singleCssVariableRegex","number","alpha","scale","createUnitType","degrees","percent","px","vh","vw","progressPercentage","transformPropOrder","transformProps","int","transformValueTypes","numberValueTypes","getValueAsType","isHTMLElement","isMotionValue","MotionConfigContext","setRef","composeRefs","refs","hasCleanup","cleanups","cleanup","useComposedRefs","PopChildMeasure","prevProps","parentWidth","PopChild","isPresent","anchorX","root","useId","nonce","useContext","composedRef","useInsertionEffect","width","height","top","left","right","style","PresenceChild","initial","onExitComplete","custom","presenceAffectsLayout","mode","presenceChildren","newChildrenMap","isReusedContext","useMemo","childId","isComplete","_","usePresence","register","safeToRemove","useCallback","getChildKey","child","onlyElements","filtered","Children","isValidElement","AnimatePresence","propagate","isParentPresent","presentChildren","presentKeys","isInitialRender","pendingPresentChildren","exitComplete","diffedChildren","setDiffedChildren","useState","renderedChildren","setRenderedChildren","exitingChildren","nextChildren","forceRender","Fragment","onExit","isEveryExitComplete","isExitComplete","LazyContext","featureProps","featureDefinitions","loadFeatures","features","LazyMotion","setIsLoaded","isLazyBundle","loadedRenderer","renderer","loadedFeatures","validMotionProps","isValidMotionProp","shouldForward","loadExternalIsValidProp","isValidProp","filterProps","isDom","forwardMotionProps","MotionContext","isAnimationControls","isVariantLabel","variantPriorityOrder","variantProps","isControllingVariants","isVariantNode","getCurrentTreeVariants","animate","useCreateMotionContext","variantLabelsAsDependency","scaleCorrectors","isForcedMotionValue","layout","layoutId","translateAlias","numTransforms","buildTransform","latestValues","transform","transformTemplate","transformString","transformIsDefault","valueIsDefault","valueAsType","transformName","buildHTMLStyles","state","vars","transformOrigin","hasTransform","hasTransformOrigin","originX","originY","originZ","createHtmlRenderState","copyRawValuesOnly","useInitialMotionValues","visualState","useStyle","styleProp","useHTMLProps","htmlProps","dashKeys","camelKeys","buildSVGPath","attrs","length","spacing","offset","useDashCase","pathLength","pathSpacing","buildSVGAttrs","attrX","attrY","attrScale","pathOffset","latest","isSVGTag","createSvgRenderState","tag","useSVGProps","_isStatic","Component","visualProps","rawStyles","lowercaseSVGElements","isSVGComponent","useRender","isStatic","elementProps","createElement","getValueState","visualElement","resolveVariantFromProps","definition","current","velocity","resolveMotionValue","makeState","scrapeMotionValuesFromProps","createRenderState","presenceContext","makeLatestValues","scrapeMotionValues","motionValues","isControllingVariants$1","isVariantNode$1","isInitialAnimationBlocked","variantToSet","list","resolved","transitionEnd","transition","valueTarget","index","makeUseVisualState","make","newValues","useHTMLVisualState","scrapeMotionValuesFromProps$1","targetKey","useSVGVisualState","motionComponentSymbol","isRefObject","useMotionRef","externalRef","instance","camelToDash","optimizedAppearDataId","optimizedAppearDataAttribute","SwitchLayoutGroupContext","useVisualElement","createVisualElement","ProjectionNodeConstructor","lazyContext","reducedMotionConfig","visualElementRef","initialLayoutGroupConfig","createProjectionNode","isMounted","optimisedAppearId","wantsHandoff","initialPromotionConfig","drag","dragConstraints","layoutScroll","layoutRoot","layoutCrossfade","getClosestProjectingNode","createMotionComponent","preloadedFeatures","useVisualState","MotionDOMComponent","MeasureLayout","configAndProps","useLayoutId","useStrictMode","layoutProjection","getProjectionFunctionality","jsxs","ForwardRefMotionComponent","forwardRef","layoutGroupId","isStrict","strictMessage","combined","createMotionProxy","componentCache","factory","deprecatedFactoryFunction","_target","m","$8a9cb279dc87e130$export$525bc4921d56d4a","nativeEvent","$8a9cb279dc87e130$export$c2b7abe5d61ec696","$8a9cb279dc87e130$export$715c682d09d639cc","onBlur","stateRef","$6dfIe$useRef","$6dfIe$useLayoutEffect","dispatchBlur","$6dfIe$useEffectEvent","$6dfIe$useCallback","onBlurHandler","_stateRef_current_observer","relatedTargetEl","$8a9cb279dc87e130$export$fda7da73ab5d4c48","$8a9cb279dc87e130$export$cabe61c495ee3649","$6dfIe$isFocusable","window","$6dfIe$getOwnerWindow","isRefocusing","onFocusOut","$6dfIe$focusWithoutScrolling","onFocus","onFocusIn","raf","$14c0b72509d70225$var$state","$14c0b72509d70225$var$savedUserSelect","$14c0b72509d70225$var$modifiedElementMap","$14c0b72509d70225$export$16a4697467175487","$7R18e$isIOS","documentObject","$7R18e$getOwnerDocument","property","$14c0b72509d70225$export$b0d6fa1ab32e3295","$7R18e$runAfterTransition","targetOldUserSelect","$ae1eeba8b9eafd08$export$5165eccb35aaadb5","$3aeG1$react","_class_apply_descriptor_get","receiver","descriptor","_class_extract_field_descriptor","action","_class_private_field_get","_class_apply_descriptor_set","_class_private_field_set","$f6c31cce2adf654f$var$usePressResponderContext","$7mdmh$useContext","contextProps","$7mdmh$mergeProps","$7mdmh$useSyncRef","$f6c31cce2adf654f$var$_shouldStopPropagation","$f6c31cce2adf654f$var$PressEvent","$7mdmh$_2","$7mdmh$_","pointerType","originalEvent","$7mdmh$_1","_state_target","currentTarget","rect","clientX","clientY","$f6c31cce2adf654f$var$LINK_CLICKED","$f6c31cce2adf654f$var$STYLE_ID","$f6c31cce2adf654f$var$PRESSABLE_ATTRIBUTE","$f6c31cce2adf654f$export$45712eceda6fad21","onPress","onPressChange","onPressStart","onPressEnd","onPressUp","onClick","isPressedProp","preventFocusOnPress","shouldCancelOnPointerExit","allowTextSelectionOnPress","domProps","isPressed","setPressed","$7mdmh$useState","$7mdmh$useRef","$7mdmh$useGlobalListeners","triggerPressStart","$7mdmh$useEffectEvent","shouldStopPropagation","triggerPressEnd","wasPressed","triggerPressUp","cancel","$f6c31cce2adf654f$var$createEvent","dispose","cancelOnPointerExit","triggerClick","triggerSyntheticClick","pressProps","$7mdmh$useMemo","$f6c31cce2adf654f$var$isValidKeyboardEvent","$7mdmh$nodeContains","$7mdmh$getEventTarget","_state_metaKeyEvents","$f6c31cce2adf654f$var$shouldPreventDefaultKeyboard","originalTarget","pressUp","$7mdmh$getOwnerDocument","$7mdmh$chain","onKeyUp","$7mdmh$isMac","$7mdmh$openLink","$7mdmh$isVirtualClick","stopPressStart","stopPressUp","stopPressEnd","_state_metaKeyEvents1","$f6c31cce2adf654f$var$isHTMLAnchorLink","$7mdmh$isVirtualPointerEvent","onPointerUp","onPointerCancel","clicked","timeout","$7mdmh$focusWithoutScrolling","$7mdmh$flushSync","onMouseUp","touch","$f6c31cce2adf654f$var$getTouchFromEvent","$f6c31cce2adf654f$var$createTouchEvent","$7mdmh$getOwnerWindow","onScroll","$f6c31cce2adf654f$var$getTouchById","$f6c31cce2adf654f$var$isOverTarget","$7mdmh$useEffect","ownerDocument","code","role","$f6c31cce2adf654f$var$isValidInputKey","targetTouches","pointerId","changedTouches","$f6c31cce2adf654f$var$getPointClientRect","point","offsetX","offsetY","$f6c31cce2adf654f$var$areRectanglesOverlapping","pointRect","$f6c31cce2adf654f$var$shouldPreventDefaultUp","$f6c31cce2adf654f$var$nonTextInputTypes","$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","$28AnR$getOwnerWindow","$28AnR$getOwnerDocument","focus","$507fabe10e71c6fb$var$tearDownWindowFocusTracking","loadListener","$507fabe10e71c6fb$export$2f1888112f558a7d","$507fabe10e71c6fb$export$b9b3dfddab17db27","$507fabe10e71c6fb$export$630ff653c5ada6a9","$507fabe10e71c6fb$var$nonTextInputTypes","$507fabe10e71c6fb$var$isKeyboardFocusEvent","isTextInput","document1","IHTMLInputElement","IHTMLTextAreaElement","IHTMLElement","IKeyboardEvent","$507fabe10e71c6fb$export$ec71b4b83ac08ec3","deps","$28AnR$useEffect","$3ad3f6e1647bc98d$export$80f3e147d781571c","$k50bp$getOwnerDocument","$k50bp$getActiveElement","lastFocusedElement","$k50bp$runAfterTransition","$k50bp$focusWithoutScrolling","$a1ea59d68270f0dd$export$f8168d8dd8fd66e6","onFocusProp","onBlurProp","onFocusChange","$hf0lj$useCallback","onSyntheticFocus","$hf0lj$getOwnerDocument","$hf0lj$getActiveElement","$hf0lj$getEventTarget","$93925083ecbb358c$export$48d1ea6320830260","$46d819fcbaf35654$export$8f71654801c2f7cd","$f645667febf57a63$export$f9762fab77588ecb","$fcPuG$react","$f645667febf57a63$var$useFocusableContext","$fcPuG$useContext","$fcPuG$useSyncRef","otherProps","$f645667febf57a63$export$4c014de7c8940b4c","focusProps","keyboardProps","interactions","$fcPuG$mergeProps","interactionProps","autoFocusRef","$fcPuG$useRef","$fcPuG$useEffect","tabIndex","$9ab94262bd0047c7$export$420e68273165f4ec","onBlurWithin","onFocusWithin","onFocusWithinChange","$3b9Q0$useRef","$3b9Q0$useGlobalListeners","$3b9Q0$useCallback","$3b9Q0$getOwnerDocument","$3b9Q0$getActiveElement","$3b9Q0$getEventTarget","$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","$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","$isWE5$useFocus","focusWithinProps","$isWE5$useFocusWithin","component","baseForwardRef","mapPropsVariants","variantKeys","removeVariantProps","picked","acc","solid","shadow","bordered","flat","faded","light","ghost","colorVariants","animation_default","custom_default","scrollbar_hide_default","text_default","DEFAULT_TRANSITION_DURATION","transition_default","utilities","COMMON_UNITS","twMergeConfig","u","n","t","c","l","CLASS_PART_SEPARATOR","createClassGroupUtils","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","classParts","getGroupRecursive","getGroupIdForArbitraryProperty","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","classGroupFromNextClassPart","classRest","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","theme","classGroups","processClassesRecursively","classGroup","classDefinition","classPartObjectToEdit","getPart","isThemeGetter","path","currentClassPartObject","pathPart","func","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","IMPORTANT_MODIFIER","MODIFIER_SEPARATOR","MODIFIER_SEPARATOR_LENGTH","createParseClassName","experimentalParseClassName","parseClassName","bracketDepth","parenDepth","modifierStart","postfixModifierPosition","currentCharacter","baseClassNameWithImportantModifier","baseClassName","stripImportantModifier","hasImportantModifier","maybePostfixModifierPosition","fullPrefix","parseClassNameOriginal","createSortModifiers","orderSensitiveModifiers","modifier","sortedModifiers","unsortedModifiers","createConfigUtils","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","getClassGroupId","getConflictingClassGroupIds","sortModifiers","classGroupsInConflict","classNames","originalClassName","isExternal","variantModifier","modifierId","classId","conflictGroups","group","twJoin","argument","resolvedValue","string","toValue","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","isNumber","isInteger","isPercent","isTshirtSize","isAny","isLengthOnly","isNever","isShadow","isImage","isAnyNonArbitrary","isArbitraryValue","isArbitraryVariable","isArbitrarySize","getIsArbitraryValue","isLabelSize","isArbitraryLength","isLabelLength","isArbitraryNumber","isLabelNumber","isArbitraryPosition","isLabelPosition","isArbitraryImage","isLabelImage","isArbitraryShadow","isLabelShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isLabelFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","testLabel","testValue","shouldMatchNoLabel","getDefaultConfig","themeColor","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeTextShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleBreak","scalePosition","scalePositionWithArbitrary","scaleOverflow","scaleOverscroll","scaleUnambiguousSpacing","scaleInset","scaleGridTemplateColsRows","scaleGridColRowStartAndEnd","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleAlignPrimaryAxis","scaleAlignSecondaryAxis","scaleMargin","scaleSizing","scaleColor","scaleBgPosition","scaleBgRepeat","scaleBgSize","scaleGradientStopPosition","scaleRadius","scaleBorderWidth","scaleLineStyle","scaleBlendMode","scaleMaskImagePosition","scaleBlur","scaleRotate","scaleScale","scaleSkew","scaleTranslate","mergeConfigs","baseConfig","extend","override","overrideProperty","overrideConfigProperties","mergeConfigProperties","mergeArrayProperties","baseObject","overrideKey","overrideValue","overrideObject","mergeObject","mergeValue","extendTailwindMerge","configExtension","createConfig","twMerge","s","st","X","d","P","B","F","S","Q","rt","R","q","A","L","M","g","T","j","N","w","V","b$1","Z","h","U","a$1","C","G","nt","K","W","z","D","tt","et","Y","tv","_b","_c","tvBase","spinner","dataFocusVisibleClasses","translateCenterClasses","collapseAdjacentVariantBorders","button","card","avatar","useIsMounted","rerender","delay","isMountedRef","setIsMounted","timer","$d191a55c9702f145$export$8467354a121f1b9f","ariaLabelledby","ariaLabel","labelElementType","$83Elw$useId","labelId","labelProps","fieldProps","$83Elw$useLabels","$204d9ebcedfb8806$export$ed5abd763a836edc","minValue","maxValue","valueLabel","isIndeterminate","formatOptions","$2xLm1$filterDOMProps","$2xLm1$useLabel","$2xLm1$clamp","percentage","formatter","$2xLm1$useNumberFormatter","valueToFormat","$2xLm1$mergeProps","useProgress","originalProps","globalContext","as","showValueLabel","baseStyles","disableAnimation","progressBarProps","useAriaProgress","slots","selfMounted","getProgressBarProps","props2","getLabelProps","Progress","shouldShowLabelWrapper","progress_default","CardProvider","useCardContext","CardBody","bodyStyles","card_body_default","CardFooter","footerStyles","card_footer_default","useAriaButton","elementType","allowFocusWhenDisabled","href","rel","additionalProps","usePress","focusableProps","useFocusable","buttonProps","domAnimation","Ripple","ripples","motionProps","color","onClear","ripple","duration","ripple_default","useRipple","setRipples","trigger","prevRipples","prevState","useCard","_d","shouldFilterDOMProps","disableRipple","onClearRipple","onRipplePressHandler","handlePress","useHover","useFocusRing","getCardProps","getRippleProps","Card","isPressable","card_default","toKebabCase","toCamelCase","match","p1","p2","toPascalCase","camelCase","mergeClasses","classes","array","hasA11yProp","defaultAttributes","Icon","strokeWidth","absoluteStrokeWidth","iconNode","rest","createLucideIcon","iconName","__iconNode","ArrowRight","ChevronDown","ChevronRight","getButtonText","calculateLessonProgress","knowledgeItems","totalProgress","sum","item","KnowledgeCard","knowledgeItem","onLearnAction","handleLearnClick","LessonItem","lesson","isExpanded","onToggle","handleToggle","lessonProgress","ContentAccordion","activeLessonIds","onToggleLesson","loading","emptyState","AvatarIcon","AvatarGroupProvider","useAvatarGroupContext","useSafeLayoutEffect","useImage","onLoad","onError","ignoreFallback","src","crossOrigin","srcSet","sizes","shouldBypassImageLoad","isHydrated","imageRef","status","setStatus","flush","load","img","useAvatar","_e","_f","_g","_h","groupContext","isInGroup","icon","fallback","alt","imgRefProp","isBordered","isFocusable","getInitials","showFallbackProp","ImgComponent","imgProps","disableAnimationProp","imgRef","isHeroImage","isImgLoaded","showFallback","_a2","canBeFocused","getAvatarProps","getImageProps","Avatar","fallbackComponent","avatar_default","ButtonGroupProvider","useButtonGroupContext","useButton","_i","startContentProp","endContentProp","isLoading","disableRippleProp","fullWidth","isDisabledProp","isIconOnly","spinnerPlacement","styles","ariaButtonProps","getButtonProps","getIconClone","cloneElement","startContent","endContent","spinnerSize","useSpinner","labelProp","getSpinnerProps","Spinner","spinner_default","button_default","getProgressColor","Sidebar","data","collapsed","onToggleCollapse","activeUnitId","onUnitSelect","renderUnitItem","unitItemClassName","unitItemStyle","handleUnitSelect","unitId","handleToggleCollapse","renderDefaultUnitItem","renderContent","Submenu","items","position","alignment","openDelay","closeDelay","onOpen","onClose","renderItem","itemConfig","menuClassName","itemClassName","isOpen","setIsOpen","openTimeoutRef","closeTimeoutRef","clearTimeouts","handleMouseEnter","handleMouseLeave","handleItemClick","defaultRenderItem","getPanelClasses","bind","thisArg","toString","getPrototypeOf","iterator","toStringTag","kindOf","thing","kindOfTest","typeOfTest","isArray","isUndefined","isBuffer","val","isFunction","isArrayBuffer","isArrayBufferView","isString","isBoolean","isPlainObject","prototype","isEmptyObject","isDate","isFile","isBlob","isFileList","isStream","isFormData","kind","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","trim","forEach","allOwnKeys","len","findKey","_key","_global","isContextDefined","merge","caseless","skipUndefined","assignValue","stripBOM","content","inherits","constructor","superConstructor","descriptors","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","lastIndex","toArray","arr","isTypedArray","TypedArray","forEachEntry","_iterator","pair","matchAll","regExp","matches","isHTMLForm","isRegExp","reduceDescriptors","reducer","reducedDescriptors","ret","freezeMethods","toObjectSet","arrayOrString","delimiter","define","noop","toFiniteNumber","defaultValue","isSpecCompliantForm","toJSONObject","stack","visit","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","asap","isIterable","utils$1","AxiosError","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","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","platform","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","rawValue","parser","defaults","headers","contentType","hasJSONContentType","isObjectPayload","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","method","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","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","threshold","lastArgs","invoke","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","loaded","total","progressBytes","rate","inRange","progressEventDecorator","throttled","lengthComputable","asyncDecorator","isURLSameOrigin","isMSIE","cookies","expires","domain","secure","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","protocol","composeSignals","signals","controller","aborted","onabort","reason","unsubscribe","signal","streamChunk","chunk","chunkSize","pos","readBytes","iterable","readStream","stream","reader","trackStream","onProgress","onFinish","_onFinish","loadedBytes","DEFAULT_CHUNK_SIZE","globalFetchAPI","Request","Response","ReadableStream","TextEncoder","test","env","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","hasContentType","supportsResponseStream","resolvers","getBodyLength","body","resolveBodyLength","cancelToken","withCredentials","fetchOptions","_fetch","composedSignal","requestContentLength","_request","contentTypeHeader","isCredentialsSupported","resolvedOptions","isStreamResponse","responseContentLength","responseData","seedCache","getFetch","fetch","seeds","seed","map","knownAdapters","fetchAdapter.getFetch","renderReason","isResolvedHandle","adapter","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","version","formatMessage","opt","desc","correctSpelling","assertOptions","schema","allowUnknown","Axios$1","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","onFulfilled","onRejected","fullPath","Axios","generateHTTPMethod","isForm","CancelToken$1","CancelToken","executor","resolvePromise","onfulfilled","_resolve","abort","spread","isAxiosError","payload","HttpStatusCode","createInstance","defaultConfig","axios","promises","all","Cancel","formToJSON","getAdapter","UserIcon","SettingsIcon","HelpIcon","LogoutIcon","DEFAULT_MENU_ITEMS","UserProfile","userId","initialUserName","initialUserAvatar","apiConfig","menuItems","avatarSize","avatarClassName","userNameClassName","containerClassName","onMenuOpen","onMenuClose","onMenuItemClick","onLogout","renderMenuItem","renderUserInfo","userData","setUserData","setLoading","errorState","setErrorState","fetchUserData","endpoint","handleMenuItemClick","handleMenuOpen","handleMenuClose","renderDefaultUserInfo","defaultRenderExploreItem","ExploreTrigger","MathWizHeader","logoHref","logoText","onLogoClick","exploreItems","exploreMenuOpen","onExploreMenuToggle","onExploreItemClick","renderExploreItem","userMenuItems","onUserMenuItemClick","headerClassName","logoClassName","exploreClassName","userProfileClassName","ariaLabelledBy","restProps","preparedExploreItems","MathWizHeader$1","nextProps","RadarChart","abilities","calculateRadarPoints","ability","angle","calculateAxisEndPoints","x2","y2","calculateLabelPosition","textAnchor","createStoreImpl","createState","listeners","setState","partial","replace","nextState","previousState","getState","api","initialState","createStore","identity","arg","useStore","selector","slice","createImpl","useBoundStore","create","mockRadarAbilityData","RadarAbilityService","feedback","useRadarAbilityStore","set","get","radarData","AbilityProgressBar","PersonalizedAdvicePanel","generalRecommendation","RecommendationCard","customLinkTexts","getLinkText","abilityName","defaultLinkTexts","AbilityAssessmentDashboard","fetchData","MOCK_USER_DATA","MOCK_EXPLORE_ITEMS","MOCK_JWT_TOKEN","CourseService","courseId","gradeId","progressUpdates","lessonId","courseService","courseData","GradeUnitBrowserContext","useGradeUnitBrowser","GradeUnitBrowserProvider","userInfo","setUserInfo","exploreMenu","setExploreMenu","unitsData","setUnitsData","lessons","setLessons","setError","setActiveUnitId","setActiveLessonIds","loadPageData","mockUnitsData","lessonsData","toggleLesson","prev","setActiveUnit","defaultActiveUnit","contextValue","GradeUnitBrowserPage","propUserInfo","propExploreMenu","contextUserInfo","contextExploreMenu","activeUnitNav","debugActiveUnit","activeUnit","categoryIcons","statusMapping","statusColors","pointOnLine","ratio","calculateGamePoints","E","toPixelCoordinates","normalizedPoints","pixelPoints","isPointInTriangle","triangle","p3","denominator","trianglesMatch","triangle1","triangle2","names1","names2","comparePointArrays","points1","points2","getBasicLineDefinitions","getBasicGemDefinitions","GEOMETRY_CONFIG","generateMockUserCourseProgress","unitsProgress","baseProgress","completedLessons","lessonsProgress","lessonIndex","completedUnits","MOCK_USER_COURSE_PROGRESS","getUserCourseProgress","getUserUnitProgress","courseProgress","getUserLessonProgress","unitProgress","updateUserLessonProgress","getUserGradeUnitsNav","userProgress","unitsNav","up","getUnitNavItem","navData","updateUnitActiveStatus","isActive","MOCK_USER_GRADE_UNITS_NAV","MOCK_USER_GRADE_UNITS_PROGRESS"],"mappings":"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A;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC,GACGC,KAAgC,oBAAI,IAAI;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC,GC9KGC,KAAS,eACTC,KAAS,eACTC,KAAS;AACb,SAASC,GAAehG,GAAOiG,IAAO,IAAI;AACxC,MAAI;AAAA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","x_google_ignoreList":[0,1,2,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,86,87,88,89,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,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,171,172,173,174,175,176,177,178,179,180,181,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,238,239]}