{"version":3,"file":"static/js/main.071e0512.js","mappings":"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","sources":["App.js","Home.jsx","data.jsx","index.js","reportWebVitals.js","utils/Img.js","../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/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/index.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/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.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/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.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/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","utils/getJson.js","utils/getSheet.js","utils/path.js","../node_modules/proxy-compare/src/index.ts","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/framer-motion/dist/es/utils/use-is-mounted.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/index.mjs","../node_modules/framer-motion/dist/es/utils/use-force-update.mjs","../node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","../node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","../node_modules/framer-motion/dist/es/context/PresenceContext.mjs","../node_modules/framer-motion/dist/es/frameloop/render-step.mjs","../node_modules/framer-motion/dist/es/frameloop/batcher.mjs","../node_modules/framer-motion/dist/es/frameloop/frame.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","../node_modules/framer-motion/dist/es/context/LazyContext.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/frameloop/microtask.mjs","../node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","../node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.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/create.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","../node_modules/framer-motion/dist/es/motion/features/definitions.mjs","../node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/motion/utils/symbol.mjs","../node_modules/framer-motion/dist/es/motion/index.mjs","../node_modules/framer-motion/dist/es/motion/features/load-features.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","../node_modules/framer-motion/dist/es/render/dom/motion-proxy.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/projection/styles/scale-correction.mjs","../node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","../node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","../node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","../node_modules/framer-motion/dist/es/utils/clamp.mjs","../node_modules/framer-motion/dist/es/value/types/numbers/index.mjs","../node_modules/framer-motion/dist/es/value/types/utils.mjs","../node_modules/framer-motion/dist/es/value/types/numbers/units.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/number.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/motion/utils/valid-prop.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.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/dom/use-render.mjs","../node_modules/framer-motion/dist/es/render/html/utils/render.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","../node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","../node_modules/framer-motion/dist/es/utils/resolve-value.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/svg/config-motion.mjs","../node_modules/framer-motion/dist/es/render/html/config-motion.mjs","../node_modules/framer-motion/dist/es/events/add-dom-event.mjs","../node_modules/framer-motion/dist/es/events/utils/is-primary-pointer.mjs","../node_modules/framer-motion/dist/es/events/event-info.mjs","../node_modules/framer-motion/dist/es/events/add-pointer-event.mjs","../node_modules/framer-motion/dist/es/utils/pipe.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","../node_modules/framer-motion/dist/es/motion/features/Feature.mjs","../node_modules/framer-motion/dist/es/gestures/hover.mjs","../node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","../node_modules/framer-motion/dist/es/gestures/press.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs","../node_modules/framer-motion/dist/es/motion/features/gestures.mjs","../node_modules/framer-motion/dist/es/gestures/focus.mjs","../node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs","../node_modules/framer-motion/dist/es/utils/time-conversion.mjs","../node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","../node_modules/framer-motion/dist/es/animation/utils/transitions.mjs","../node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs","../node_modules/framer-motion/dist/es/frameloop/sync-time.mjs","../node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","../node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","../node_modules/framer-motion/dist/es/render/utils/KeyframesResolver.mjs","../node_modules/framer-motion/dist/es/value/types/color/utils.mjs","../node_modules/framer-motion/dist/es/value/types/color/rgba.mjs","../node_modules/framer-motion/dist/es/value/types/color/hex.mjs","../node_modules/framer-motion/dist/es/value/types/color/hsla.mjs","../node_modules/framer-motion/dist/es/value/types/color/index.mjs","../node_modules/framer-motion/dist/es/value/types/complex/index.mjs","../node_modules/framer-motion/dist/es/value/types/complex/filter.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","../node_modules/framer-motion/dist/es/render/dom/DOMKeyframesResolver.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-none.mjs","../node_modules/framer-motion/dist/es/render/html/utils/make-none-animatable.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","../node_modules/framer-motion/dist/es/animation/animators/BaseAnimation.mjs","../node_modules/framer-motion/dist/es/animation/animators/utils/can-animate.mjs","../node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs","../node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs","../node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs","../node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs","../node_modules/framer-motion/dist/es/animation/generators/inertia.mjs","../node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs","../node_modules/framer-motion/dist/es/easing/ease.mjs","../node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs","../node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs","../node_modules/framer-motion/dist/es/easing/circ.mjs","../node_modules/framer-motion/dist/es/easing/back.mjs","../node_modules/framer-motion/dist/es/easing/utils/map.mjs","../node_modules/framer-motion/dist/es/easing/anticipate.mjs","../node_modules/framer-motion/dist/es/utils/progress.mjs","../node_modules/framer-motion/dist/es/utils/mix/number.mjs","../node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs","../node_modules/framer-motion/dist/es/utils/mix/color.mjs","../node_modules/framer-motion/dist/es/utils/mix/complex.mjs","../node_modules/framer-motion/dist/es/utils/mix/index.mjs","../node_modules/framer-motion/dist/es/utils/interpolate.mjs","../node_modules/framer-motion/dist/es/utils/offsets/default.mjs","../node_modules/framer-motion/dist/es/utils/offsets/fill.mjs","../node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs","../node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs","../node_modules/framer-motion/dist/es/utils/offsets/time.mjs","../node_modules/framer-motion/dist/es/animation/animators/drivers/driver-frameloop.mjs","../node_modules/framer-motion/dist/es/animation/animators/MainThreadAnimation.mjs","../node_modules/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs","../node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/easing.mjs","../node_modules/framer-motion/dist/es/animation/animators/AcceleratedAnimation.mjs","../node_modules/framer-motion/dist/es/utils/memo.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs","../node_modules/framer-motion/dist/es/value/use-will-change/is.mjs","../node_modules/framer-motion/dist/es/utils/array.mjs","../node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","../node_modules/framer-motion/dist/es/value/index.mjs","../node_modules/framer-motion/dist/es/render/utils/setters.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs","../node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs","../node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs","../node_modules/framer-motion/dist/es/motion/features/animations.mjs","../node_modules/framer-motion/dist/es/motion/features/animation/index.mjs","../node_modules/framer-motion/dist/es/utils/distance.mjs","../node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","../node_modules/framer-motion/dist/es/projection/geometry/models.mjs","../node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","../node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","../node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","../node_modules/framer-motion/dist/es/projection/utils/measure.mjs","../node_modules/framer-motion/dist/es/utils/get-context-window.mjs","../node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","../node_modules/framer-motion/dist/es/gestures/pan/index.mjs","../node_modules/framer-motion/dist/es/projection/node/state.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","../node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","../node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","../node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","../node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","../node_modules/framer-motion/dist/es/projection/shared/stack.mjs","../node_modules/framer-motion/dist/es/projection/styles/transform.mjs","../node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","../node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","../node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","../node_modules/framer-motion/dist/es/debug/record.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs","../node_modules/framer-motion/dist/es/utils/delay.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/single-value.mjs","../node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","../node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","../node_modules/framer-motion/dist/es/motion/features/drag.mjs","../node_modules/framer-motion/dist/es/gestures/drag/index.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs","../node_modules/framer-motion/dist/es/render/store.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","../node_modules/framer-motion/dist/es/render/VisualElement.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs","../node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","../node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs","../node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs","../node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs","../node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","../node_modules/framer-motion/dist/es/render/dom/motion.mjs","../node_modules/framer-motion/dist/es/motion/features/layout.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs","../node_modules/framer-motion/dist/es/utils/GlobalConfig.mjs","../node_modules/framer-motion/dist/es/utils/errors.mjs","../node_modules/framer-motion/dist/es/utils/is-browser.mjs","../node_modules/framer-motion/dist/es/utils/noop.mjs","../node_modules/framer-motion/dist/es/utils/use-constant.mjs","../node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","../node_modules/valtio/esm/react.mjs","../node_modules/valtio/esm/vanilla.mjs","../webpack/bootstrap","../webpack/runtime/async module","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/startup"],"sourcesContent":["import \"./App.css\";\nimport Home from \"./Home\";\nimport Img from \"./utils/Img\";\n\nfunction App() {\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t{/* 手機橫向提醒 */}\n\t\t\t\n\t\t
\n\t);\n}\n\nexport default App;\n","import { useSnapshot } from \"valtio\";\r\nimport { uiState } from \"./data\";\r\nimport { AnimatePresence, motion } from \"framer-motion\";\r\nimport { googleSheet } from \"./utils/getSheet\";\r\nimport { useEffect } from \"react\";\r\n\r\nconst logoVariants = {\r\n\tright: { x: 10 },\r\n\tleft: { x: -10 },\r\n\tup: { y: 10 },\r\n\tdown: { y: -10 },\r\n};\r\n\r\nconst bgVariants = {\r\n\tright: { x: -10 },\r\n\tleft: { x: 10 },\r\n\tup: { y: -10 },\r\n\tdown: { y: 10 },\r\n};\r\n\r\nexport default function NewHome({ event }) {\r\n\tconst { showPage1, showPage2, windowSize, direction, isInitial, prevMousePosition, btnDisable, isEnterHover } = useSnapshot(uiState[event]);\r\n\tconst { isLoading } = useSnapshot(uiState);\r\n\tlet data = googleSheet[\"homepage\"] && googleSheet[\"homepage\"][0];\r\n\r\n\tconst arr = [\"../index/bgTexture2.png\"];\r\n\r\n\tuseEffect(() => {\r\n\t\tconst cacheImage = async (prload) => {\r\n\t\t\tconst promiseLoading = arr.map((item) => {\r\n\t\t\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t\t\tconst img = new Image();\r\n\r\n\t\t\t\t\timg.src = item;\r\n\t\t\t\t\timg.onload = () => resolve();\r\n\t\t\t\t\timg.onerror = () => reject();\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\tawait Promise.all(promiseLoading);\r\n\t\t\tuiState.isLoading = false;\r\n\t\t\tuiState[event].showPage1 = true;\r\n\t\t};\r\n\t\tcacheImage();\r\n\t\t// setTimeout(() => {\r\n\t\t// }, 2000);\r\n\t}, []);\r\n\r\n\t// useEffect(() => {\r\n\t// \tsetTimeout(() => {\r\n\t// \t\tuiState.isLoading = false;\r\n\t// \t\tuiState[event].showPage1 = true;\r\n\t// \t}, 2000);\r\n\t// }, []);\r\n\r\n\t// const [windowSize, setWindowSize] = useState({ width: 0, height: 0 });\r\n\t// const [direction, setDirection] = useState(\"\");\r\n\t// const [prevMousePosition, setPrevMousePosition] = useState({\r\n\t// x: null,\r\n\t// y: null,\r\n\t// });\r\n\t// const [isInitial, setIsInitial] = useState(false);\r\n\t// const [isLastAnimation, setIsLastAnimation] = useState(false);\r\n\r\n\tconst handleMouseMove = (e) => {\r\n\t\tconst { clientX, clientY } = e;\r\n\t\tconst deltaX = clientX - prevMousePosition.x;\r\n\t\tconst deltaY = clientY - prevMousePosition.y;\r\n\r\n\t\t// useState 寫法\r\n\t\t// if (deltaX !== 0) {\r\n\t\t// if (deltaX > 0) {\r\n\t\t// setDirection(\"right\");\r\n\t\t// } else {\r\n\t\t// setDirection(\"left\");\r\n\t\t// }\r\n\t\t// }\r\n\r\n\t\t// if (deltaY !== 0) {\r\n\t\t// if (deltaY > 0) {\r\n\t\t// setDirection(\"down\");\r\n\t\t// } else {\r\n\t\t// setDirection(\"up\");\r\n\t\t// }\r\n\t\t// }\r\n\t\t// setPrevMousePosition({ x: clientX, y: clientY });\r\n\t\t// setIsLastAnimation(!isLastAnimation);\r\n\r\n\t\t// uiState寫法\r\n\t\tif (deltaX !== 0) {\r\n\t\t\tif (deltaX > 0) {\r\n\t\t\t\tuiState[event].direction = \"right\";\r\n\t\t\t} else {\r\n\t\t\t\tuiState[event].direction = \"left\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (deltaY !== 0) {\r\n\t\t\tif (deltaY > 0) {\r\n\t\t\t\tuiState[event].direction = \"down\";\r\n\t\t\t} else {\r\n\t\t\t\tuiState[event].direction = \"up\";\r\n\t\t\t}\r\n\t\t}\r\n\t\tuiState[event].prevMousePosition.x = clientX;\r\n\t\tuiState[event].prevMousePosition.y = clientY;\r\n\t};\r\n\tconst goVr = () => {\r\n\t\tlet currentUrl = window.location.href;\r\n\t\tvar newUrl = currentUrl.replace(\"/start/start.html\", \"/vr/v0.html\");\r\n\t\twindow.location.href = newUrl;\r\n\t};\r\n\tif (isLoading) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t{showPage1 && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{/* 第一層 */}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t windowSize.height && \"hidden\"}`}\r\n\t\t\t\t\t\t\t\talt=\"上方的中間裝飾\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t windowSize.height && \"hidden\"}`}\r\n\t\t\t\t\t\t\t\talt=\"下方的中間裝飾\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t windowSize.height ? \"w-[30%] sm:w-[28%] 2xl:w-[20%] top-[1%] left-[4%]\" : \"w-[40%] top-[5%] left-[4%]\"\r\n\t\t\t\t\t\t\t\t}`}\r\n\t\t\t\t\t\t\t\talt=\"左上角樹枝\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t windowSize.height ? \"h-[60%] top-[15%] left-[4%]\" : \"h-[70%] top-[15%] left-[4%]\"}`}\r\n\t\t\t\t\t\t\t\talt=\"左邊中間的線\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t windowSize.height\r\n\t\t\t\t\t\t\t\t\t\t? \"w-[2%] sm:w-[1.5%] 2xl:w-[1%] lg:w-[2%] 2xl:w-[1.5%] top-[45%] sm:top-[43%] left-[6%]\"\r\n\t\t\t\t\t\t\t\t\t\t: \"w-[4%] top-[45%] left-[6%]\"\r\n\t\t\t\t\t\t\t\t}`}\r\n\t\t\t\t\t\t\t\talt=\"左邊中間的圓點\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t windowSize.height ? \"w-[30%] sm:w-[28%] 2xl:w-[20%] bottom-[1%] left-[4%]\" : \"w-[40%] bottom-[5%] left-[4%]\"\r\n\t\t\t\t\t\t\t\t}`}\r\n\t\t\t\t\t\t\t\talt=\"左下角樹枝\"\r\n\t\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\t\t windowSize.height ? \"w-[30%] sm:w-[28%] 2xl:w-[20%] top-[1%] right-[4%]\" : \"w-[40%] top-[5%] right-[4%]\"\r\n\t\t\t\t\t\t\t\t}`}\r\n\t\t\t\t\t\t\t\talt=\"右上角樹枝\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t windowSize.height ? \"h-[60%] top-[15%] right-[4%]\" : \"h-[70%] top-[15%] right-[4%]\"}`}\r\n\t\t\t\t\t\t\t\talt=\"右邊中間的線\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t windowSize.height\r\n\t\t\t\t\t\t\t\t\t\t? \"w-[2%] sm:w-[1.5%] 2xl:w-[1%] lg:w-[2%] 2xl:w-[1.5%] top-[45%] sm:top-[43%] right-[6%]\"\r\n\t\t\t\t\t\t\t\t\t\t: \"w-[4%] top-[45%] right-[6%]\"\r\n\t\t\t\t\t\t\t\t}`}\r\n\t\t\t\t\t\t\t\talt=\"右邊中間的圓點\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t windowSize.height ? \"w-[30%] sm:w-[28%] 2xl:w-[20%] bottom-[1%] right-[4%]\" : \"w-[40%] bottom-[5%] right-[4%]\"\r\n\t\t\t\t\t\t\t\t}`}\r\n\t\t\t\t\t\t\t\talt=\"右下角樹枝\"\r\n\t\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\t\t windowSize.height ? \"w-[23%] 2xl:w-[20%] left-[40%] top-[10%]\" : \"w-[50%] left-[22%] smart:left-[24%] top-[14%]\"\r\n\t\t\t\t\t\t\t\t}`}\r\n\t\t\t\t\t\t\t\talt=\"國立國父紀念館\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t windowSize.height\r\n\t\t\t\t\t\t\t\t\t? \"w-[34%] md:w-[30%] lg:w-[40%] xl:w-[42%] 2xl:w-[32%] top-[40%] sm:top-[35%] md:top-[38%] lg:top-[32%] 2xl:top-[35%] left-[34%] smart1:left-[36%] lg:left-[33%] 2xl:left-[35%]\"\r\n\t\t\t\t\t\t\t\t\t: \"w-[30%] sm:w-[30%] top-[35%] smart:top-[37%] sm:top-[33%] lg:left-[36%] sm:left-[36%] left-[36%]\"\r\n\t\t\t\t\t\t\t}`}>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t windowSize.height ? \"../index/logoTitle.png\" : \"../index/ph_logoTitle.png\"}`}\r\n\t\t\t\t\t\t\t\t\tclassName=\"object-contain\"\r\n\t\t\t\t\t\t\t\t\talt=\"島嶼+記憶 logo\"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tuiState[\"homepage\"].isInitial = true;\r\n\t\t\t\t\t\t\t\tuiState[\"homepage\"].btnDisable = false;\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\tclassName={`absolute ${\r\n\t\t\t\t\t\t\t\twindowSize.width > windowSize.height\r\n\t\t\t\t\t\t\t\t\t? \"w-[80%] sm:w-[65%] md:w-[70%] lg:w-[75%] xl:w-[75%] 2xl:w-[63%] top-[28%] sm:top-[28%] left-[10%] sm:left-[18%] md:left-[18%] lg:left-[15%] xl:left-[13%] 2xl:left-[19%]\"\r\n\t\t\t\t\t\t\t\t\t: \"w-[60%] sm:w-[50%] lg:w-[80%] top-[32%] smart:top-[34%] sm:top-[30%] lg:top-[28%] left-[18%] sm:left-[25%] lg:left-[25%]\"\r\n\t\t\t\t\t\t\t}`}>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t windowSize.height ? \"../index/bgImg.png\" : \"../index/ph_bgImg.png\"}`}\r\n\t\t\t\t\t\t\t\t\tclassName=\"object-contain\"\r\n\t\t\t\t\t\t\t\t\talt=\"島嶼+記憶 背景\"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t windowSize.height ? \"sm:w-[30px] md:w-[50px] lg:w-[50px] bottom-[10%] \" : \"w-[30px] sm:w-[50px] bottom-[15%]\"\r\n\t\t\t\t\t\t\t\t} `}\r\n\t\t\t\t\t\t\t\t// className={`z-[100] absolute hover:scale-[1.1] hover:cursor-pointer ${\r\n\t\t\t\t\t\t\t\t// \twindowSize.width > windowSize.height\r\n\t\t\t\t\t\t\t\t// \t\t? \"w-[30px] lg:w-[50px] xl:w-[60px] -bottom-[10%] lg:-bottom-[30%] smart1:-bottom-[7%] 2xl:-bottom-[0%] left-[45%] smart1:left-[47%] lg:left-[45%] xl:left-[48%] 2xl:left-[48%]\"\r\n\t\t\t\t\t\t\t\t// \t\t: \"w-[40px] lg:w-[60px] -bottom-[30%] smart:-bottom-[45%] sm:-bottom-[10%] lg:-bottom-[15%] left-[40%] smart:left-[43%] lg:left-[28%]\"\r\n\t\t\t\t\t\t\t\t// }`}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tuiState[event].showPage1 = false;\r\n\t\t\t\t\t\t\t\t\tuiState[event].showPage2 = true;\r\n\t\t\t\t\t\t\t\t\tuiState[event].isInitial = false;\r\n\t\t\t\t\t\t\t\t\tuiState[\"homepage\"].btnDisable = true;\r\n\t\t\t\t\t\t\t\t}}>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t{/* \r\n */}\r\n\t\t\t\t{showPage2 && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tuiState[\"homepage\"].btnDisable = false;\r\n\t\t\t\t\t\t\t}}>\r\n\t\t\t\t\t\t\t windowSize.height\r\n\t\t\t\t\t\t\t\t// \t\t? \"sm:w-[30px] lg:w-[50px] xl:w-[60px] sm:top-[5%] sm:left-[48%] lg:left-[48%] 2xl:left-[45%]\"\r\n\t\t\t\t\t\t\t\t// \t\t: \"w-[30px] sm:w-[50px] top-[5%] left-[46%]\"\r\n\t\t\t\t\t\t\t\t// }`}\r\n\t\t\t\t\t\t\t\tclassName={`z-50 fixed top-[5%] sm:top-[35px] left-1/2 -translate-x-1/2 hover:scale-[1.1] hover:cursor-pointer ${\r\n\t\t\t\t\t\t\t\t\twindowSize.width > windowSize.height ? \"sm:w-[30px] md:w-[50px] lg:w-[50px]\" : \"w-[30px] sm:w-[50px]\"\r\n\t\t\t\t\t\t\t\t}`}\r\n\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\tuiState[event].showPage2 = false;\r\n\t\t\t\t\t\t\t\t\tuiState[event].showPage1 = true;\r\n\t\t\t\t\t\t\t\t\tuiState[\"homepage\"].btnDisable = true;\r\n\t\t\t\t\t\t\t\t}}>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t windowSize.height\r\n\t\t\t\t\t\t\t\t\t\t? \"sm:w-[40%] 2xl:w-[35%] sm:-top-[35%] lg:-top-[30%] xl:-top-[34%] sm:-left-[20%] lg:-left-[17%]\"\r\n\t\t\t\t\t\t\t\t\t\t: \"w-[60%] sm:w-[55%] top-[3%] sm:top-[5%] -left-[45%] sm:-left-[40%]\"\r\n\t\t\t\t\t\t\t\t}`}>\r\n\t\t\t\t\t\t\t\t windowSize.height ? \"rotate-[30deg]\" : \"rotate-[110deg]\"}`}\r\n\t\t\t\t\t\t\t\t\talt=\"左上角邊框\"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t windowSize.height\r\n\t\t\t\t\t\t\t\t\t\t? \"sm:w-[40%] 2xl:w-[35%] sm:-bottom-[35%] md:-bottom-[35%] lg:-bottom-[30%] xl:-bottom-[32%] sm:-left-[20%] lg:-left-[20%]\"\r\n\t\t\t\t\t\t\t\t\t\t: \"w-[60%] sm:w-[55%] bottom-[3%] sm:bottom-[5%] -left-[50%] sm:-left-[45%]\"\r\n\t\t\t\t\t\t\t\t}`}>\r\n\t\t\t\t\t\t\t\t windowSize.height ? \"rotate-[75deg]\" : \"rotate-[120deg]\"}`}\r\n\t\t\t\t\t\t\t\t\talt=\"左下角邊框\"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t windowSize.height\r\n\t\t\t\t\t\t\t\t\t\t? \"sm:w-[40%] 2xl:w-[35%] sm:-top-[15%] md:-top-[25%] lg:top-[0%] 2xl:-top-[10%] sm:-right-[25%] lg:-right-[27%]\"\r\n\t\t\t\t\t\t\t\t\t\t: \"w-[60%] sm:w-[55%] -top-[10%] sm:-top-[20%] -right-[50%] sm:-right-[30%]\"\r\n\t\t\t\t\t\t\t\t}`}>\r\n\t\t\t\t\t\t\t\t windowSize.height ? \"rotate-[160deg]\" : \"rotate-[165deg]\"}`}\r\n\t\t\t\t\t\t\t\t\talt=\"右上角邊框\"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t windowSize.height\r\n\t\t\t\t\t\t\t\t\t\t? \"sm:w-[40%] 2xl:w-[35%] sm:-bottom-[25%] md:-bottom-[25%] lg:-bottom-[30%] xl:-bottom-[32%] 2xl:-bottom-[38%] sm:-right-[22%] lg:-right-[22%]\"\r\n\t\t\t\t\t\t\t\t\t\t: \"w-[60%] sm:w-[55%] -bottom-[4%] sm:-bottom-[7%] -right-[50%] sm:-right-[45%]\"\r\n\t\t\t\t\t\t\t\t}`}>\r\n\t\t\t\t\t\t\t\t windowSize.height ? \"rotate-[100deg]\" : \"rotate-[55deg]\"}`}\r\n\t\t\t\t\t\t\t\t\talt=\"右下角邊框\"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t windowSize.height ? \"sm:pt-4\" : \"\"} GenYoMin-SB`}>\r\n\t\t\t\t\t\t\t\t\t{data.zh_title}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t windowSize.height ? \"sm:h-[25dvh] md:h-[35dvh] lg:w-3/4 2xl:w-3/4 lg:h-[45dvh] lg:text-xl\" : \"\"\r\n\t\t\t\t\t\t\t\t\t} GenYoMin-SB font-semibold`}>\r\n\t\t\t\t\t\t\t\t\t

{data.zh_content.replace(\"策展人:莊慈\", \"\")}

\r\n\t\t\t\t\t\t\t\t\t

{data.en_content}

\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t windowSize.height\r\n\t\t\t\t\t\t\t\t\t\t\t? \"sm:text-base md:text-xl sm:pr-32 md:pr-44 lg:pr-56 xl:pr-72 2xl:pr-96\"\r\n\t\t\t\t\t\t\t\t\t\t\t: \"sm:pr-36 md:pr-[30%] lg:pr-52\"\r\n\t\t\t\t\t\t\t\t\t} GenYoMin-SB font-semibold`}>\r\n\t\t\t\t\t\t\t\t\t策展人:莊慈\r\n\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t windowSize.height ? \"sm:w-[100px] lg:w-[180px]\" : \"w-[75px] smart:w-[100px] sm:w-[125px] md:w-[150px]\"\r\n\t\t\t\t\t\t\t\t} left-1/2 -translate-x-1/2 bottom-[15%]`}\r\n\t\t\t\t\t\t\t\t// className={`absolute ${\r\n\t\t\t\t\t\t\t\t// \twindowSize.width > windowSize.height\r\n\t\t\t\t\t\t\t\t// \t\t? \"sm:w-[100px] lg:w-[180px] sm:left-[43%] md:left-[44%] lg:left-[41%] xl:left-[43%] sm:bottom-[16%]\"\r\n\t\t\t\t\t\t\t\t// \t\t: \"w-[75px] smart:w-[100px] sm:w-[125px] md:w-[150px] lg:w-[170px] bottom-[14%] md:bottom-[16%] left-[37%] smart:left-[35%] sm:left-[40%]\"\r\n\t\t\t\t\t\t\t\t// }`}\r\n\t\t\t\t\t\t\t\tonMouseEnter={() => {\r\n\t\t\t\t\t\t\t\t\tuiState[event].isEnterHover = true;\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tonMouseLeave={() => {\r\n\t\t\t\t\t\t\t\t\tuiState[event].isEnterHover = false;\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tonClick={goVr}>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t windowSize.height ? \"sm:w-[65%] bottom-[5%] sm:left-[17%]\" : \"w-[65%] bottom-[5%] left-[17%]\"\r\n\t\t\t\t\t\t\t\t}`}>\r\n\t\t\t\t\t\t\t\t windowSize.height ? \"../index/logoAll.png\" : \"../index/logoAll_phone.png\"}`}\r\n\t\t\t\t\t\t\t\t\tclassName=\"object-contain\"\r\n\t\t\t\t\t\t\t\t\talt=\"指導單位:文化部 主辦單位:國立國父紀念館 統籌指導:王蘭生 展覽執行:昀禾創藝有限公司\"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n}\r\n","import { proxy } from \"valtio\";\r\n\r\nexport const uiState = proxy({\r\n\tisLoading: true,\r\n\thomepage: {\r\n\t\tvisible: false,\r\n\t\tshowPage1: false,\r\n\t\tshowPage2: false,\r\n\t\tisEnterHover: false,\r\n\t\twindowSize: { width: window.innerWidth, height: window.innerHeight },\r\n\t\tdirection: \"\",\r\n\t\tprevMousePosition: { x: 0, y: 0 },\r\n\t\tisInitial: false,\r\n\t\tisLastAnimation: false,\r\n\t\tbtnDisable: true,\r\n\t},\r\n});\r\n\r\nconst getWindowSize = () => {\r\n\tconst { innerWidth, innerHeight } = window;\r\n\tuiState.homepage.windowSize.width = innerWidth;\r\n\tuiState.homepage.windowSize.height = innerHeight;\r\n};\r\nwindow.addEventListener(\"resize\", getWindowSize);\r\n\r\nwindow.frontEnd = {\r\n\t...window.frontEnd,\r\n\tuiState,\r\n};\r\n","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nconst root = ReactDOM.createRoot(document.getElementById('root'));\nroot.render(\n \n \n \n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import { sourcePath } from \"../utils/path\";\n\nconst Img = ({ src, ...rest }) => {\n\treturn (\n\t\t\n\t);\n};\nexport default Img;\n","'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;\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) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\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\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 // 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 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} = 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 {\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} 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[Symbol.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}\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 value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\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[Symbol.toStringTag] === 'FormData' && thing[Symbol.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 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\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\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 ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\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 response && (this.response = response);\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.response && this.response.status ? this.response.status : null\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 AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\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} 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} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} 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 (!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} 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} params - The parameters to be converted to a FormData object.\n * @param {Object} 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 replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\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} 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 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","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","'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","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== '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 = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\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\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\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';\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} 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 | 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'],\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 ) {\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 (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);\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';\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(), Object.assign({\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","'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 {\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 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","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\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) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\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 \"://\" 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 utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\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","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.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 speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return 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 };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), 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() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\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 // 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 if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\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 (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\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(fullPath);\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 utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\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) => {\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) {\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","// eslint-disable-next-line strict\nexport default null;\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\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);\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","'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, 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, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, 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) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, 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","export const VERSION = \"1.6.8\";","'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\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\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 }\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.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.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, 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 i = 0;\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);\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 /**\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","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","'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","import axios from 'axios'\nimport { sourcePath } from './path'\n\nexport const getJson = (path) => {\n return axios\n .get(path.replace('./', sourcePath))\n .then((response) => {\n const json = response.data\n // console.log(json)\n return json\n })\n .catch((error) => {\n console.error('Error:', error)\n })\n}\n","import axios from \"axios\";\nimport { getJson } from \"./getJson\";\n\nexport const getSheet = async (sheetId) => {\n const sheetApi =\n \"https://script.google.com/macros/s/AKfycbzjHGLAqoWV1Zb1zpFolwkfKssZ9_oJ6O1Hrq7CfJS4Z5iEGyeCbwZ0pYgh6lNcQo0t/exec?sheetId=\";\n return axios\n .get(`${sheetApi}${sheetId}`)\n .then((response) => {\n const data = response.data;\n console.log(data);\n return data;\n })\n .catch((error) => {\n console.error(\"Axios error:\", error);\n return {};\n });\n};\n\n// 檢查當前網址是否為 localhost\nconst isLocalhost = window.location.hostname === \"localhost\";\n// 動態設置路徑\nconst path = isLocalhost\n ? \"../website_data.json\"\n : \"../vr/frontEnd/plugin/vr/website_data.json\";\n// 使用動態路徑獲取資料\nexport const googleSheet = await getJson(path);\n","export const projectFile = 'vr'\nexport const sourcePath = window.hasKrpano\n ? `./vr/frontEnd/plugin/${projectFile}/`\n : './'\n","// symbols\nconst TRACK_MEMO_SYMBOL = Symbol();\nconst GET_ORIGINAL_SYMBOL = Symbol();\n\n// properties\nconst AFFECTED_PROPERTY = 'a';\nconst IS_TARGET_COPIED_PROPERTY = 'f';\nconst PROXY_PROPERTY = 'p';\nconst PROXY_CACHE_PROPERTY = 'c';\nconst TARGET_CACHE_PROPERTY = 't';\nconst NEXT_OBJECT_PROPERTY = 'n';\nconst CHANGED_PROPERTY = 'g';\nconst HAS_KEY_PROPERTY = 'h';\nconst ALL_OWN_KEYS_PROPERTY = 'w';\nconst HAS_OWN_KEY_PROPERTY = 'o';\nconst KEYS_PROPERTY = 'k';\n\n// function to create a new bare proxy\nlet newProxy = (\n target: T,\n handler: ProxyHandler,\n) => new Proxy(target, handler);\n\n// get object prototype\nconst getProto = Object.getPrototypeOf;\n\nconst objectsToTrack = new WeakMap();\n\n// check if obj is a plain object or an array\nconst isObjectToTrack = (obj: T): obj is T extends object ? T : never => (\n obj && (objectsToTrack.has(obj as unknown as object)\n ? objectsToTrack.get(obj as unknown as object) as boolean\n : (getProto(obj) === Object.prototype || getProto(obj) === Array.prototype)\n )\n);\n\n// check if it is object\nconst isObject = (x: unknown): x is object => (\n typeof x === 'object' && x !== null\n);\n\n// Properties that are both non-configurable and non-writable will break\n// the proxy get trap when we try to return a recursive/child compare proxy\n// from them. We can avoid this by making a copy of the target object with\n// all descriptors marked as configurable, see `copyTargetObject`.\n// See: https://github.com/dai-shi/proxy-compare/pull/8\nconst needsToCopyTargetObject = (obj: object) => (\n Object.values(Object.getOwnPropertyDescriptors(obj)).some(\n (descriptor) => !descriptor.configurable && !descriptor.writable,\n )\n);\n\n// Make a copy with all descriptors marked as configurable.\nconst copyTargetObject = (obj: T): T => {\n if (Array.isArray(obj)) {\n // Arrays need a special way to copy\n return Array.from(obj) as T;\n }\n // For non-array objects, we create a new object keeping the prototype\n // with changing all configurable options (otherwise, proxies will complain)\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n Object.values(descriptors).forEach((desc) => { desc.configurable = true; });\n return Object.create(getProto(obj), descriptors);\n};\n\ntype HasKeySet = Set\ntype HasOwnKeySet = Set\ntype KeysSet = Set\ntype Used = {\n [HAS_KEY_PROPERTY]?: HasKeySet;\n [ALL_OWN_KEYS_PROPERTY]?: true;\n [HAS_OWN_KEY_PROPERTY]?: HasOwnKeySet;\n [KEYS_PROPERTY]?: KeysSet;\n};\ntype Affected = WeakMap;\ntype ProxyHandlerState = {\n readonly [IS_TARGET_COPIED_PROPERTY]: boolean;\n [PROXY_PROPERTY]?: T;\n [PROXY_CACHE_PROPERTY]?: ProxyCache | undefined;\n [TARGET_CACHE_PROPERTY]?: TargetCache | undefined;\n [AFFECTED_PROPERTY]?: Affected;\n}\ntype ProxyCache = WeakMap<\n object,\n readonly [ProxyHandler, ProxyHandlerState]\n>;\ntype TargetCache = WeakMap<\n object,\n readonly [target: T, copiedTarget?: T]\n>;\n\nconst createProxyHandler = (origObj: T, isTargetCopied: boolean) => {\n const state: ProxyHandlerState = {\n [IS_TARGET_COPIED_PROPERTY]: isTargetCopied,\n };\n let trackObject = false; // for trackMemo\n const recordUsage = (\n type:\n | typeof HAS_KEY_PROPERTY\n | typeof ALL_OWN_KEYS_PROPERTY\n | typeof HAS_OWN_KEY_PROPERTY\n | typeof KEYS_PROPERTY,\n key?: string | symbol,\n ) => {\n if (!trackObject) {\n let used = (state[AFFECTED_PROPERTY] as Affected).get(origObj);\n if (!used) {\n used = {};\n (state[AFFECTED_PROPERTY] as Affected).set(origObj, used);\n }\n if (type === ALL_OWN_KEYS_PROPERTY) {\n used[ALL_OWN_KEYS_PROPERTY] = true;\n } else {\n let set = used[type];\n if (!set) {\n set = new Set();\n used[type] = set;\n }\n set.add(key as string | symbol);\n }\n }\n };\n const recordObjectAsUsed = () => {\n trackObject = true;\n (state[AFFECTED_PROPERTY] as Affected).delete(origObj);\n };\n const handler: ProxyHandler = {\n get(target, key) {\n if (key === GET_ORIGINAL_SYMBOL) {\n return origObj;\n }\n recordUsage(KEYS_PROPERTY, key);\n return createProxy(\n Reflect.get(target, key),\n (state[AFFECTED_PROPERTY] as Affected),\n state[PROXY_CACHE_PROPERTY],\n state[TARGET_CACHE_PROPERTY],\n );\n },\n has(target, key) {\n if (key === TRACK_MEMO_SYMBOL) {\n recordObjectAsUsed();\n return true;\n }\n recordUsage(HAS_KEY_PROPERTY, key);\n return Reflect.has(target, key);\n },\n getOwnPropertyDescriptor(target, key) {\n recordUsage(HAS_OWN_KEY_PROPERTY, key);\n return Reflect.getOwnPropertyDescriptor(target, key);\n },\n ownKeys(target) {\n recordUsage(ALL_OWN_KEYS_PROPERTY);\n return Reflect.ownKeys(target);\n },\n };\n if (isTargetCopied) {\n handler.set = handler.deleteProperty = () => false;\n }\n return [handler, state] as const;\n};\n\nconst getOriginalObject = (obj: T) => (\n // unwrap proxy\n (obj as { [GET_ORIGINAL_SYMBOL]?: typeof obj })[GET_ORIGINAL_SYMBOL]\n // otherwise\n || obj\n);\n\n/**\n * Create a proxy.\n *\n * This function will create a proxy at top level and proxy nested objects as you access them,\n * in order to keep track of which properties were accessed via get/has proxy handlers:\n *\n * NOTE: Printing of WeakMap is hard to inspect and not very readable\n * for this purpose you can use the `affectedToPathList` helper.\n *\n * @param {object} obj - Object that will be wrapped on the proxy.\n * @param {WeakMap} affected -\n * WeakMap that will hold the tracking of which properties in the proxied object were accessed.\n * @param {WeakMap} [proxyCache] -\n * WeakMap that will help keep referential identity for proxies.\n * @returns {Proxy} - Object wrapped in a proxy.\n *\n * @example\n * import { createProxy } from 'proxy-compare';\n *\n * const original = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n * const proxy = createProxy(original, affected);\n *\n * proxy.a // Will mark as used and track its value.\n * // This will update the affected WeakMap with original as key\n * // and a Set with \"a\"\n *\n * proxy.d // Will mark \"d\" as accessed to track and proxy itself ({ e: \"3\" }).\n * // This will update the affected WeakMap with original as key\n * // and a Set with \"d\"\n */\nexport const createProxy = (\n obj: T,\n affected: WeakMap,\n proxyCache?: WeakMap,\n targetCache?: WeakMap,\n): T => {\n if (!isObjectToTrack(obj)) return obj;\n let targetAndCopied = (\n targetCache && (targetCache as TargetCache).get(obj)\n );\n if (!targetAndCopied) {\n const target = getOriginalObject(obj);\n if (needsToCopyTargetObject(target)) {\n targetAndCopied = [target, copyTargetObject(target)];\n } else {\n targetAndCopied = [target];\n }\n targetCache?.set(obj, targetAndCopied);\n }\n const [target, copiedTarget] = targetAndCopied;\n let handlerAndState = (\n proxyCache && (proxyCache as ProxyCache).get(target)\n );\n if (\n !handlerAndState\n || handlerAndState[1][IS_TARGET_COPIED_PROPERTY] !== !!copiedTarget\n ) {\n handlerAndState = createProxyHandler(target, !!copiedTarget);\n handlerAndState[1][PROXY_PROPERTY] = newProxy(\n copiedTarget || target,\n handlerAndState[0],\n );\n if (proxyCache) {\n proxyCache.set(target, handlerAndState);\n }\n }\n handlerAndState[1][AFFECTED_PROPERTY] = affected as Affected;\n handlerAndState[1][PROXY_CACHE_PROPERTY] = proxyCache as ProxyCache | undefined;\n handlerAndState[1][TARGET_CACHE_PROPERTY] = targetCache as TargetCache | undefined;\n return handlerAndState[1][PROXY_PROPERTY] as typeof target;\n};\n\nconst isAllOwnKeysChanged = (prevObj: object, nextObj: object) => {\n const prevKeys = Reflect.ownKeys(prevObj);\n const nextKeys = Reflect.ownKeys(nextObj);\n return prevKeys.length !== nextKeys.length\n || prevKeys.some((k, i) => k !== nextKeys[i]);\n};\n\ntype ChangedCache = WeakMap;\n\n/**\n * Compare changes on objects.\n *\n * This will compare the affected properties on tracked objects inside the proxy\n * to check if there were any changes made to it,\n * by default if no property was accessed on the proxy it will attempt to do a\n * reference equality check for the objects provided (Object.is(a, b)). If you access a property\n * on the proxy, then isChanged will only compare the affected properties.\n *\n * @param {object} prevObj - The previous object to compare.\n * @param {object} nextObj - Object to compare with the previous one.\n * @param {WeakMap} affected -\n * WeakMap that holds the tracking of which properties in the proxied object were accessed.\n * @param {WeakMap} [cache] -\n * WeakMap that holds a cache of the comparisons for better performance with repetitive comparisons,\n * and to avoid infinite loop with circular structures.\n * @returns {boolean} - Boolean indicating if the affected property on the object has changed.\n *\n * @example\n * import { createProxy, isChanged } from 'proxy-compare';\n *\n * const obj = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(obj, affected);\n *\n * proxy.a\n *\n * isChanged(obj, { a: \"1\" }, affected) // false\n *\n * proxy.a = \"2\"\n *\n * isChanged(obj, { a: \"1\" }, affected) // true\n */\n\nexport const isChanged = (\n prevObj: unknown,\n nextObj: unknown,\n affected: WeakMap,\n cache?: WeakMap,\n isEqual: (a: unknown, b: unknown) => boolean = Object.is,\n): boolean => {\n if (isEqual(prevObj, nextObj)) {\n return false;\n }\n if (!isObject(prevObj) || !isObject(nextObj)) return true;\n const used = (affected as Affected).get(getOriginalObject(prevObj));\n if (!used) return true;\n if (cache) {\n const hit = (cache as ChangedCache).get(prevObj);\n if (hit && hit[NEXT_OBJECT_PROPERTY] === nextObj) {\n return hit[CHANGED_PROPERTY];\n }\n // for object with cycles\n (cache as ChangedCache).set(prevObj, {\n [NEXT_OBJECT_PROPERTY]: nextObj,\n [CHANGED_PROPERTY]: false,\n });\n }\n let changed: boolean | null = null;\n try {\n for (const key of used[HAS_KEY_PROPERTY] || []) {\n changed = Reflect.has(prevObj, key) !== Reflect.has(nextObj, key);\n if (changed) return changed;\n }\n if (used[ALL_OWN_KEYS_PROPERTY] === true) {\n changed = isAllOwnKeysChanged(prevObj, nextObj);\n if (changed) return changed;\n } else {\n for (const key of used[HAS_OWN_KEY_PROPERTY] || []) {\n const hasPrev = !!Reflect.getOwnPropertyDescriptor(prevObj, key);\n const hasNext = !!Reflect.getOwnPropertyDescriptor(nextObj, key);\n changed = hasPrev !== hasNext;\n if (changed) return changed;\n }\n }\n for (const key of used[KEYS_PROPERTY] || []) {\n changed = isChanged(\n (prevObj as any)[key],\n (nextObj as any)[key],\n affected,\n cache,\n isEqual,\n );\n if (changed) return changed;\n }\n if (changed === null) changed = true;\n return changed;\n } finally {\n if (cache) {\n cache.set(prevObj, {\n [NEXT_OBJECT_PROPERTY]: nextObj,\n [CHANGED_PROPERTY]: changed,\n });\n }\n }\n};\n\n// explicitly track object with memo\nexport const trackMemo = (obj: unknown) => {\n if (isObjectToTrack(obj)) {\n return TRACK_MEMO_SYMBOL in obj;\n }\n return false;\n};\n\n/**\n * Unwrap proxy to get the original object.\n *\n * Used to retrieve the original object used to create the proxy instance with `createProxy`.\n *\n * @param {Proxy} obj - The proxy wrapper of the originial object.\n * @returns {object | null} - Return either the unwrapped object if exists.\n *\n * @example\n * import { createProxy, getUntracked } from 'proxy-compare';\n *\n * const original = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(original, affected);\n * const originalFromProxy = getUntracked(proxy)\n *\n * Object.is(original, originalFromProxy) // true\n * isChanged(original, originalFromProxy, affected) // false\n */\nexport const getUntracked = (obj: T): T | null => {\n if (isObjectToTrack(obj)) {\n return (obj as { [GET_ORIGINAL_SYMBOL]?: T })[GET_ORIGINAL_SYMBOL] || null;\n }\n return null;\n};\n\n/**\n * Mark object to be tracked.\n *\n * This function marks an object that will be passed into `createProxy`\n * as marked to track or not. By default only Array and Object are marked to track,\n * so this is useful for example to mark a class instance to track or to mark a object\n * to be untracked when creating your proxy.\n *\n * @param obj - Object to mark as tracked or not.\n * @param mark - Boolean indicating whether you want to track this object or not.\n * @returns - No return.\n *\n * @example\n * import { createProxy, markToTrack, isChanged } from 'proxy-compare';\n *\n * const nested = { e: \"3\" }\n *\n * markToTrack(nested, false)\n *\n * const original = { a: \"1\", c: \"2\", d: nested };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(original, affected);\n *\n * proxy.d.e\n *\n * isChanged(original, { d: { e: \"3\" } }, affected) // true\n */\nexport const markToTrack = (obj: object, mark = true) => {\n objectsToTrack.set(obj, mark);\n};\n\n/**\n * Convert `affected` to path list\n *\n * `affected` is a weak map which is not printable.\n * This function is can convert it to printable path list.\n * It's for debugging purpose.\n *\n * @param obj - An object that is used with `createProxy`.\n * @param affected - A weak map that is used with `createProxy`.\n * @param onlyWithValues - An optional boolean to exclude object getters.\n * @returns - An array of paths.\n */\nexport const affectedToPathList = (\n obj: unknown,\n affected: WeakMap,\n onlyWithValues?: boolean,\n) => {\n const list: (string | symbol)[][] = [];\n const seen = new WeakSet();\n const walk = (x: unknown, path?: (string | symbol)[]) => {\n if (seen.has(x as object)) {\n // for object with cycles\n return;\n }\n if (isObject(x)) {\n seen.add(x);\n }\n const used = isObject(x) && (affected as Affected).get(getOriginalObject(x));\n if (used) {\n used[HAS_KEY_PROPERTY]?.forEach((key) => {\n const segment = `:has(${String(key)})`;\n list.push(path ? [...path, segment] : [segment]);\n });\n if (used[ALL_OWN_KEYS_PROPERTY] === true) {\n const segment = ':ownKeys';\n list.push(path ? [...path, segment] : [segment]);\n } else {\n used[HAS_OWN_KEY_PROPERTY]?.forEach((key) => {\n const segment = `:hasOwn(${String(key)})`;\n list.push(path ? [...path, segment] : [segment]);\n });\n }\n used[KEYS_PROPERTY]?.forEach((key) => {\n if (!onlyWithValues || 'value' in (Object.getOwnPropertyDescriptor(x, key) || {})) {\n walk((x as any)[key], path ? [...path, key] : [key]);\n }\n });\n } else if (path) {\n list.push(path);\n }\n };\n walk(obj);\n return list;\n};\n\n/**\n * replace newProxy function.\n *\n * This can be used if you want to use proxy-polyfill.\n * Note that proxy-polyfill can't polyfill everything.\n * Use it at your own risk.\n */\nexport const replaceNewProxy = (fn: typeof newProxy) => {\n newProxy = fn;\n};\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its 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 Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its 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'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","import { useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-effect.mjs';\n\nfunction useIsMounted() {\n const isMounted = useRef(false);\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n}\n\nexport { useIsMounted };\n","import * as React from 'react';\nimport { useId, useRef, useContext, useInsertionEffect } from 'react';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.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 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 }\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 }) {\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 });\n const { nonce } = useContext(MotionConfigContext);\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 } = size.current;\n if (isPresent || !ref.current || !width || !height)\n return;\n ref.current.dataset.motionPopId = id;\n const style = document.createElement(\"style\");\n if (nonce)\n style.nonce = nonce;\n document.head.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 top: ${top}px !important;\n left: ${left}px !important;\n }\n `);\n }\n return () => {\n document.head.removeChild(style);\n };\n }, [isPresent]);\n return (React.createElement(PopChildMeasure, { isPresent: isPresent, childRef: ref, sizeRef: size }, React.cloneElement(children, { ref })));\n}\n\nexport { PopChild };\n","import * 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, }) => {\n const presenceChildren = useConstant(newChildrenMap);\n const id = useId();\n const context = useMemo(() => ({\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 /**\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 presenceAffectsLayout ? undefined : [isPresent]);\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 = React.createElement(PopChild, { isPresent: isPresent }, children);\n }\n return (React.createElement(PresenceContext.Provider, { value: context }, children));\n};\nfunction newChildrenMap() {\n return new Map();\n}\n\nexport { PresenceChild };\n","import * as React from 'react';\nimport { useContext, useRef, cloneElement, Children, isValidElement } from 'react';\nimport { useForceUpdate } from '../../utils/use-force-update.mjs';\nimport { useIsMounted } from '../../utils/use-is-mounted.mjs';\nimport { PresenceChild } from './PresenceChild.mjs';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { useUnmountEffect } from '../../utils/use-unmount-effect.mjs';\nimport { invariant } from '../../utils/errors.mjs';\n\nconst getChildKey = (child) => child.key || \"\";\nfunction updateChildLookup(children, allChildren) {\n children.forEach((child) => {\n const key = getChildKey(child);\n allChildren.set(key, child);\n });\n}\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/**\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 * \n * {items.map(item => (\n * \n * ))}\n * \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, exitBeforeEnter, presenceAffectsLayout = true, mode = \"sync\", }) => {\n invariant(!exitBeforeEnter, \"Replace exitBeforeEnter with mode='wait'\");\n // We want to force a re-render once all exiting animations have finished. We\n // either use a local forceRender function, or one from a parent context if it exists.\n const forceRender = useContext(LayoutGroupContext).forceRender || useForceUpdate()[0];\n const isMounted = useIsMounted();\n // Filter out any children that aren't ReactElements. We can only track ReactElements with a props.key\n const filteredChildren = onlyElements(children);\n let childrenToRender = filteredChildren;\n const exitingChildren = useRef(new Map()).current;\n // Keep a living record of the children we're actually rendering so we\n // can diff to figure out which are entering and exiting\n const presentChildren = useRef(childrenToRender);\n // A lookup table to quickly reference components by key\n const allChildren = useRef(new Map()).current;\n // If this is the initial component render, just deal with logic surrounding whether\n // we play onMount animations or not.\n const isInitialRender = useRef(true);\n useIsomorphicLayoutEffect(() => {\n isInitialRender.current = false;\n updateChildLookup(filteredChildren, allChildren);\n presentChildren.current = childrenToRender;\n });\n useUnmountEffect(() => {\n isInitialRender.current = true;\n allChildren.clear();\n exitingChildren.clear();\n });\n if (isInitialRender.current) {\n return (React.createElement(React.Fragment, null, childrenToRender.map((child) => (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, initial: initial ? undefined : false, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child)))));\n }\n // If this is a subsequent render, deal with entering and exiting children\n childrenToRender = [...childrenToRender];\n // Diff the keys of the currently-present and target children to update our\n // exiting list.\n const presentKeys = presentChildren.current.map(getChildKey);\n const targetKeys = filteredChildren.map(getChildKey);\n // Diff the present children with our target children and mark those that are exiting\n const numPresent = presentKeys.length;\n for (let i = 0; i < numPresent; i++) {\n const key = presentKeys[i];\n if (targetKeys.indexOf(key) === -1 && !exitingChildren.has(key)) {\n exitingChildren.set(key, undefined);\n }\n }\n // If we currently have exiting children, and we're deferring rendering incoming children\n // until after all current children have exiting, empty the childrenToRender array\n if (mode === \"wait\" && exitingChildren.size) {\n childrenToRender = [];\n }\n // Loop through all currently exiting components and clone them to overwrite `animate`\n // with any `exit` prop they might have defined.\n exitingChildren.forEach((component, key) => {\n // If this component is actually entering again, early return\n if (targetKeys.indexOf(key) !== -1)\n return;\n const child = allChildren.get(key);\n if (!child)\n return;\n const insertionIndex = presentKeys.indexOf(key);\n let exitingComponent = component;\n if (!exitingComponent) {\n const onExit = () => {\n // clean up the exiting children map\n exitingChildren.delete(key);\n // compute the keys of children that were rendered once but are no longer present\n // this could happen in case of too many fast consequent renderings\n // @link https://github.com/framer/motion/issues/2023\n const leftOverKeys = Array.from(allChildren.keys()).filter((childKey) => !targetKeys.includes(childKey));\n // clean up the all children map\n leftOverKeys.forEach((leftOverKey) => allChildren.delete(leftOverKey));\n // make sure to render only the children that are actually visible\n presentChildren.current = filteredChildren.filter((presentChild) => {\n const presentChildKey = getChildKey(presentChild);\n return (\n // filter out the node exiting\n presentChildKey === key ||\n // filter out the leftover children\n leftOverKeys.includes(presentChildKey));\n });\n // Defer re-rendering until all exiting children have indeed left\n if (!exitingChildren.size) {\n if (isMounted.current === false)\n return;\n forceRender();\n onExitComplete && onExitComplete();\n }\n };\n exitingComponent = (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: false, onExitComplete: onExit, custom: custom, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child));\n exitingChildren.set(key, exitingComponent);\n }\n childrenToRender.splice(insertionIndex, 0, exitingComponent);\n });\n // Add `MotionContext` even to children that don't need it to ensure we're rendering\n // the same tree between renders\n childrenToRender = childrenToRender.map((child) => {\n const key = child.key;\n return exitingChildren.has(key) ? (child) : (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child));\n });\n if (process.env.NODE_ENV !== \"production\" &&\n mode === \"wait\" &&\n childrenToRender.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 return (React.createElement(React.Fragment, null, exitingChildren.size\n ? childrenToRender\n : childrenToRender.map((child) => cloneElement(child))));\n};\n\nexport { AnimatePresence };\n","import { useState, useCallback } from 'react';\nimport { useIsMounted } from './use-is-mounted.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction useForceUpdate() {\n const isMounted = useIsMounted();\n const [forcedRenderCount, setForcedRenderCount] = useState(0);\n const forceRender = useCallback(() => {\n isMounted.current && setForcedRenderCount(forcedRenderCount + 1);\n }, [forcedRenderCount]);\n /**\n * Defer this to the end of the next animation frame in case there are multiple\n * synchronous calls.\n */\n const deferredForceRender = useCallback(() => frame.postRender(forceRender), [forceRender]);\n return [deferredForceRender, forcedRenderCount];\n}\n\nexport { useForceUpdate };\n","import { useEffect } from 'react';\n\nfunction useUnmountEffect(callback) {\n return useEffect(() => () => callback(), []);\n}\n\nexport { useUnmountEffect };\n","import { createContext } from 'react';\n\nconst LayoutGroupContext = createContext({});\n\nexport { LayoutGroupContext };\n","import { 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 { createContext } from 'react';\n\n/**\n * @public\n */\nconst PresenceContext = createContext(null);\n\nexport { PresenceContext };\n","class Queue {\n constructor() {\n this.order = [];\n this.scheduled = new Set();\n }\n add(process) {\n if (!this.scheduled.has(process)) {\n this.scheduled.add(process);\n this.order.push(process);\n return true;\n }\n }\n remove(process) {\n const index = this.order.indexOf(process);\n if (index !== -1) {\n this.order.splice(index, 1);\n this.scheduled.delete(process);\n }\n }\n clear() {\n this.order.length = 0;\n this.scheduled.clear();\n }\n}\nfunction createRenderStep(runNextFrame) {\n /**\n * We create and reuse two queues, one to queue jobs for the current frame\n * and one for the next. We reuse to avoid triggering GC after x frames.\n */\n let thisFrame = new Queue();\n let nextFrame = new Queue();\n let numToRun = 0;\n /**\n * Track whether we're currently processing jobs in this step. This way\n * we can decide whether to schedule new jobs for this frame or next.\n */\n let isProcessing = false;\n let flushNextFrame = false;\n /**\n * A set of processes which were marked keepAlive when scheduled.\n */\n const toKeepAlive = new WeakSet();\n const step = {\n /**\n * Schedule a process to run on the next frame.\n */\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const queue = addToCurrentFrame ? thisFrame : nextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n if (queue.add(callback) && addToCurrentFrame && isProcessing) {\n // If we're adding it to the currently running queue, update its measured size\n numToRun = thisFrame.order.length;\n }\n return callback;\n },\n /**\n * Cancel the provided callback from running on the next frame.\n */\n cancel: (callback) => {\n nextFrame.remove(callback);\n toKeepAlive.delete(callback);\n },\n /**\n * Execute all schedule callbacks.\n */\n process: (frameData) => {\n /**\n * If we're already processing we've probably been triggered by a flushSync\n * inside an existing process. Instead of executing, mark flushNextFrame\n * as true and ensure we flush the following frame at the end of this one.\n */\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n [thisFrame, nextFrame] = [nextFrame, thisFrame];\n // Clear the next frame queue\n nextFrame.clear();\n // Execute this frame\n numToRun = thisFrame.order.length;\n if (numToRun) {\n for (let i = 0; i < numToRun; i++) {\n const callback = thisFrame.order[i];\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n callback(frameData);\n }\n }\n isProcessing = false;\n if (flushNextFrame) {\n flushNextFrame = false;\n step.process(frameData);\n }\n },\n };\n return step;\n}\n\nexport { createRenderStep };\n","import { MotionGlobalConfig } from '../utils/GlobalConfig.mjs';\nimport { createRenderStep } from './render-step.mjs';\n\nconst stepsOrder = [\n \"read\",\n \"resolveKeyframes\",\n \"update\",\n \"preRender\",\n \"render\",\n \"postRender\", // Compute\n];\nconst maxElapsed = 40;\nfunction createRenderBatcher(scheduleNextBatch, allowKeepAlive) {\n let runNextFrame = false;\n let useDefaultElapsed = true;\n const state = {\n delta: 0,\n timestamp: 0,\n isProcessing: false,\n };\n const steps = stepsOrder.reduce((acc, key) => {\n acc[key] = createRenderStep(() => (runNextFrame = true));\n return acc;\n }, {});\n const processStep = (stepId) => {\n steps[stepId].process(state);\n };\n const processBatch = () => {\n const timestamp = MotionGlobalConfig.useManualTiming\n ? state.timestamp\n : performance.now();\n runNextFrame = false;\n state.delta = useDefaultElapsed\n ? 1000 / 60\n : Math.max(Math.min(timestamp - state.timestamp, maxElapsed), 1);\n state.timestamp = timestamp;\n state.isProcessing = true;\n stepsOrder.forEach(processStep);\n state.isProcessing = false;\n if (runNextFrame && allowKeepAlive) {\n useDefaultElapsed = false;\n scheduleNextBatch(processBatch);\n }\n };\n const wake = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!state.isProcessing) {\n scheduleNextBatch(processBatch);\n }\n };\n const schedule = stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n wake();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n }, {});\n const cancel = (process) => stepsOrder.forEach((key) => steps[key].cancel(process));\n return { schedule, cancel, state, steps };\n}\n\nexport { createRenderBatcher, stepsOrder };\n","import { noop } from '../utils/noop.mjs';\nimport { createRenderBatcher } from './batcher.mjs';\n\nconst { schedule: frame, cancel: cancelFrame, state: frameData, steps, } = createRenderBatcher(typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : noop, true);\n\nexport { cancelFrame, frame, frameData, steps };\n","import { createContext } from 'react';\n\nconst MotionContext = createContext({});\n\nexport { MotionContext };\n","import { createContext } from 'react';\n\nconst LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\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","import { createRenderBatcher } from './batcher.mjs';\n\nconst { schedule: microtask, cancel: cancelMicrotask } = createRenderBatcher(queueMicrotask, false);\n\nexport { cancelMicrotask, microtask };\n","function isRefObject(ref) {\n return (ref &&\n typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\nexport { isRefObject };\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","function isAnimationControls(v) {\n return (v !== null &&\n typeof v === \"object\" &&\n typeof v.start === \"function\");\n}\n\nexport { isAnimationControls };\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 { 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 { isVariantLabel } from '../../render/utils/is-variant-label.mjs';\nimport { isControllingVariants } from '../../render/utils/is-controlling-variants.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","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 { createContext } from 'react';\n\n/**\n * Internal, exported only for usage in Framer\n */\nconst SwitchLayoutGroupContext = createContext({});\n\nexport { SwitchLayoutGroupContext };\n","const motionComponentSymbol = Symbol.for(\"motionComponentSymbol\");\n\nexport { motionComponentSymbol };\n","import * as React from 'react';\nimport { forwardRef, useContext } from 'react';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { MotionContext } from '../context/MotionContext/index.mjs';\nimport { useVisualElement } from './utils/use-visual-element.mjs';\nimport { useMotionRef } from './utils/use-motion-ref.mjs';\nimport { useCreateMotionContext } from '../context/MotionContext/create.mjs';\nimport { loadFeatures } from './features/load-features.mjs';\nimport { isBrowser } from '../utils/is-browser.mjs';\nimport { LayoutGroupContext } from '../context/LayoutGroupContext.mjs';\nimport { LazyContext } from '../context/LazyContext.mjs';\nimport { SwitchLayoutGroupContext } from '../context/SwitchLayoutGroupContext.mjs';\nimport { motionComponentSymbol } from './utils/symbol.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({ preloadedFeatures, createVisualElement, useRender, useVisualState, Component, }) {\n preloadedFeatures && loadFeatures(preloadedFeatures);\n function MotionComponent(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 /**\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);\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 const isStrict = useContext(LazyContext).strict;\n if (context.visualElement) {\n MeasureLayout = context.visualElement.loadFeatures(\n // Note: Pass the full new combined props to correctly re-render dynamic feature components.\n configAndProps, isStrict, preloadedFeatures, initialLayoutGroupConfig);\n }\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 (React.createElement(MotionContext.Provider, { value: context },\n MeasureLayout && context.visualElement ? (React.createElement(MeasureLayout, { visualElement: context.visualElement, ...configAndProps })) : null,\n useRender(Component, props, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic, context.visualElement)));\n }\n const ForwardRefComponent = forwardRef(MotionComponent);\n ForwardRefComponent[motionComponentSymbol] = Component;\n return ForwardRefComponent;\n}\nfunction useLayoutId({ layoutId }) {\n const layoutGroupId = useContext(LayoutGroupContext).id;\n return layoutGroupId && layoutId !== undefined\n ? layoutGroupId + \"-\" + layoutId\n : layoutId;\n}\n\nexport { createMotionComponent };\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","import { useContext, useRef, useInsertionEffect, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { LazyContext } from '../../context/LazyContext.mjs';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\nimport { optimizedAppearDataAttribute } from '../../animation/optimized-appear/data-id.mjs';\nimport { microtask } from '../../frameloop/microtask.mjs';\n\nfunction useVisualElement(Component, visualState, props, createVisualElement) {\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();\n /**\n * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\n */\n createVisualElement = createVisualElement || 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 useInsertionEffect(() => {\n visualElement && visualElement.update(props, presenceContext);\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 wantsHandoff = useRef(Boolean(props[optimizedAppearDataAttribute] && !window.HandoffComplete));\n useIsomorphicLayoutEffect(() => {\n if (!visualElement)\n return;\n microtask.postRender(visualElement.render);\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 visualElement.updateFeatures();\n if (!wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n if (wantsHandoff.current) {\n wantsHandoff.current = false;\n // This ensures all future calls to animateChanges() will run in useEffect\n window.HandoffComplete = true;\n }\n });\n return visualElement;\n}\n\nexport { useVisualElement };\n","import { 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 instance && visualState.mount && visualState.mount(instance);\n if (visualElement) {\n instance\n ? visualElement.mount(instance)\n : visualElement.unmount();\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 * Only pass a new ref callback to React if we've received a visual element\n * factory. Otherwise we'll be mounting/remounting every time externalRef\n * or other dependencies change.\n */\n [visualElement]);\n}\n\nexport { useMotionRef };\n","import { createMotionComponent } from '../../motion/index.mjs';\n\n/**\n * Convert any React component into a `motion` component. The provided component\n * **must** use `React.forwardRef` to the underlying DOM component you want to animate.\n *\n * ```jsx\n * const Component = React.forwardRef((props, ref) => {\n * return
\n * })\n *\n * const MotionComponent = motion(Component)\n * ```\n *\n * @public\n */\nfunction createMotionProxy(createConfig) {\n function custom(Component, customMotionComponentConfig = {}) {\n return createMotionComponent(createConfig(Component, customMotionComponentConfig));\n }\n if (typeof Proxy === \"undefined\") {\n return custom;\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 return new Proxy(custom, {\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 /**\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, custom(key));\n }\n return componentCache.get(key);\n },\n });\n}\n\nexport { createMotionProxy };\n","/**\n * We keep these listed seperately 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","const scaleCorrectors = {};\nfunction addScaleCorrector(correctors) {\n Object.assign(scaleCorrectors, correctors);\n}\n\nexport { addScaleCorrector, scaleCorrectors };\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 = new Set(transformPropOrder);\n\nexport { transformPropOrder, transformProps };\n","import { scaleCorrectors } from '../../projection/styles/scale-correction.mjs';\nimport { transformProps } from '../../render/html/utils/transform.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","const isMotionValue = (value) => Boolean(value && value.getVelocity);\n\nexport { isMotionValue };\n","import { transformPropOrder } from './transform.mjs';\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(transform, { enableHardwareAcceleration = true, allowTransformNone = true, }, transformIsDefault, transformTemplate) {\n // The transform string we're going to build into.\n let transformString = \"\";\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 if (transform[key] !== undefined) {\n const transformName = translateAlias[key] || key;\n transformString += `${transformName}(${transform[key]}) `;\n }\n }\n if (enableHardwareAcceleration && !transform.z) {\n transformString += \"translateZ(0)\";\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 (allowTransformNone && transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n\nexport { buildTransform };\n","const checkStringStartsWith = (token) => (key) => typeof key === \"string\" && key.startsWith(token);\nconst isCSSVariableName = checkStringStartsWith(\"--\");\nconst startsAsVariableToken = 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","/**\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","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","import { clamp } from '../../../utils/clamp.mjs';\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","/**\n * TODO: When we move from string as a source of truth to data models\n * everything in this folder should probably be referred to as models vs types\n */\n// If this number is a decimal, make it just five decimal places\n// to avoid exponents\nconst sanitize = (v) => Math.round(v * 100000) / 100000;\nconst floatRegex = /-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/gu;\nconst colorRegex = /(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))/giu;\nconst singleColorRegex = /^(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))$/iu;\nfunction isString(v) {\n return typeof v === \"string\";\n}\n\nexport { colorRegex, floatRegex, isString, sanitize, singleColorRegex };\n","import { isString } from '../utils.mjs';\n\nconst createUnitType = (unit) => ({\n test: (v) => isString(v) && v.endsWith(unit) && v.split(\" \").length === 1,\n parse: parseFloat,\n transform: (v) => `${v}${unit}`,\n});\nconst degrees = createUnitType(\"deg\");\nconst percent = createUnitType(\"%\");\nconst px = createUnitType(\"px\");\nconst vh = createUnitType(\"vh\");\nconst vw = createUnitType(\"vw\");\nconst progressPercentage = {\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","import { number } from '../../../value/types/numbers/index.mjs';\n\nconst int = {\n ...number,\n transform: Math.round,\n};\n\nexport { int };\n","import { scale, alpha } from '../../../value/types/numbers/index.mjs';\nimport { px, degrees, progressPercentage } from '../../../value/types/numbers/units.mjs';\nimport { int } from './type-int.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 size: 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 // Transform props\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 // Misc\n zIndex: int,\n backgroundPositionX: px,\n backgroundPositionY: px,\n // SVG\n fillOpacity: alpha,\n strokeOpacity: alpha,\n numOctaves: int,\n};\n\nexport { numberValueTypes };\n","import { buildTransform } from './build-transform.mjs';\nimport { isCSSVariableName } from '../../dom/utils/is-css-variable.mjs';\nimport { transformProps } from './transform.mjs';\nimport { getValueAsType } from '../../dom/value-types/get-as-type.mjs';\nimport { numberValueTypes } from '../../dom/value-types/number.mjs';\n\nfunction buildHTMLStyles(state, latestValues, options, transformTemplate) {\n const { style, vars, transform, transformOrigin } = state;\n // Track whether we encounter any transform or transformOrigin values.\n let hasTransform = false;\n let hasTransformOrigin = false;\n // Does the calculated transform essentially equal \"none\"?\n let transformIsNone = true;\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 seperately for further processing.\n */\n for (const key in latestValues) {\n const value = latestValues[key];\n /**\n * If this is a CSS variable we don't do any further processing.\n */\n if (isCSSVariableName(key)) {\n vars[key] = value;\n continue;\n }\n // Convert the value to its default value type, ie 0 -> \"0px\"\n const valueType = numberValueTypes[key];\n const valueAsType = getValueAsType(value, valueType);\n if (transformProps.has(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n transform[key] = valueAsType;\n // If we already know we have a non-default transform, early return\n if (!transformIsNone)\n continue;\n // Otherwise check to see if this is a default transform\n if (value !== (valueType.default || 0))\n transformIsNone = false;\n }\n else if (key.startsWith(\"origin\")) {\n // If this is a transform origin, flag and enable further transform-origin processing\n hasTransformOrigin = true;\n transformOrigin[key] = valueAsType;\n }\n else {\n style[key] = valueAsType;\n }\n }\n if (!latestValues.transform) {\n if (hasTransform || transformTemplate) {\n style.transform = buildTransform(state.transform, options, transformIsNone, 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","import { useMemo } from 'react';\nimport { isForcedMotionValue } from '../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../value/utils/is-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, isStatic) {\n return useMemo(() => {\n const state = createHtmlRenderState();\n buildHTMLStyles(state, visualState, { enableHardwareAcceleration: !isStatic }, transformTemplate);\n return Object.assign({}, state.vars, state.style);\n }, [visualState]);\n}\nfunction useStyle(props, visualState, isStatic) {\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, isStatic));\n return style;\n}\nfunction useHTMLProps(props, visualState, isStatic) {\n // The `any` isn't ideal but it is the type of createElement props argument\n const htmlProps = {};\n const style = useStyle(props, visualState, isStatic);\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","/**\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 (!isValidProp)\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 (_a) {\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\"] && key.startsWith(\"onDrag\"))) {\n filteredProps[key] = props[key];\n }\n }\n return filteredProps;\n}\n\nexport { filterProps, loadExternalIsValidProp };\n","import { px } from '../../../value/types/numbers/units.mjs';\n\nfunction calcOrigin(origin, offset, size) {\n return typeof origin === \"string\"\n ? origin\n : px.transform(offset + size * origin);\n}\n/**\n * The SVG transform origin defaults are different to CSS and is less intuitive,\n * so we use the measured dimensions of the SVG to reconcile these.\n */\nfunction calcSVGTransformOrigin(dimensions, originX, originY) {\n const pxOriginX = calcOrigin(originX, dimensions.x, dimensions.width);\n const pxOriginY = calcOrigin(originY, dimensions.y, dimensions.height);\n return `${pxOriginX} ${pxOriginY}`;\n}\n\nexport { calcSVGTransformOrigin };\n","import { px } from '../../../value/types/numbers/units.mjs';\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 { calcSVGTransformOrigin } from './transform-origin.mjs';\nimport { buildSVGPath } from './path.mjs';\n\n/**\n * Build SVG visual attrbutes, like cx and style.transform\n */\nfunction buildSVGAttrs(state, { attrX, attrY, attrScale, originX, originY, pathLength, pathSpacing = 1, pathOffset = 0, \n// This is object creation, which we try to avoid per-frame.\n...latest }, options, isSVGTag, transformTemplate) {\n buildHTMLStyles(state, latest, options, 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, dimensions } = state;\n /**\n * However, we apply transforms as CSS transforms. So if we detect a transform we take it from attrs\n * and copy it into style.\n */\n if (attrs.transform) {\n if (dimensions)\n style.transform = attrs.transform;\n delete attrs.transform;\n }\n // Parse transformOrigin\n if (dimensions &&\n (originX !== undefined || originY !== undefined || style.transform)) {\n style.transformOrigin = calcSVGTransformOrigin(dimensions, originX !== undefined ? originX : 0.5, originY !== undefined ? originY : 0.5);\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","import { 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, { enableHardwareAcceleration: false }, isSVGTag(Component), props.transformTemplate);\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","import { Fragment, useMemo, createElement } from 'react';\nimport { useHTMLProps } from '../html/use-props.mjs';\nimport { filterProps } from './utils/filter-props.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\nimport { useSVGProps } from '../svg/use-props.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction createUseRender(forwardMotionProps = false) {\n const useRender = (Component, props, ref, { latestValues }, isStatic) => {\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\n ? { ...filteredProps, ...visualProps, ref }\n : {};\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 return useRender;\n}\n\nexport { createUseRender };\n","function renderHTML(element, { style, vars }, styleProp, projection) {\n Object.assign(element.style, style, projection && projection.getProjectionStyles(styleProp));\n // Loop over any CSS variables and assign those.\n for (const key in vars) {\n element.style.setProperty(key, vars[key]);\n }\n}\n\nexport { renderHTML };\n","/**\n * A set of attribute names that are always read/written as camel case.\n */\nconst camelCaseAttributes = new Set([\n \"baseFrequency\",\n \"diffuseConstant\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keySplines\",\n \"keyTimes\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerWidth\",\n \"numOctaves\",\n \"targetX\",\n \"targetY\",\n \"surfaceScale\",\n \"specularConstant\",\n \"specularExponent\",\n \"stdDeviation\",\n \"tableValues\",\n \"viewBox\",\n \"gradientTransform\",\n \"pathLength\",\n \"startOffset\",\n \"textLength\",\n \"lengthAdjust\",\n]);\n\nexport { camelCaseAttributes };\n","import { camelToDash } from '../../dom/utils/camel-to-dash.mjs';\nimport { renderHTML } from '../../html/utils/render.mjs';\nimport { camelCaseAttributes } from './camel-case-attrs.mjs';\n\nfunction renderSVG(element, renderState, _styleProp, projection) {\n renderHTML(element, renderState, undefined, projection);\n for (const key in renderState.attrs) {\n element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]);\n }\n}\n\nexport { renderSVG };\n","import { isForcedMotionValue } from '../../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\n\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n var _a;\n const { style } = props;\n const newValues = {};\n for (const key in style) {\n if (isMotionValue(style[key]) ||\n (prevProps.style && isMotionValue(prevProps.style[key])) ||\n isForcedMotionValue(key, props) ||\n ((_a = visualElement === null || visualElement === void 0 ? void 0 : visualElement.getValue(key)) === null || _a === void 0 ? void 0 : _a.liveStyle) !== undefined) {\n newValues[key] = style[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","import { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\nimport { scrapeMotionValuesFromProps as scrapeMotionValuesFromProps$1 } from '../../html/utils/scrape-motion-values.mjs';\nimport { transformPropOrder } from '../../html/utils/transform.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]) || 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","function resolveVariantFromProps(props, definition, custom, currentValues = {}, currentVelocity = {}) {\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n definition = definition(custom !== undefined ? custom : props.custom, currentValues, currentVelocity);\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 definition = definition(custom !== undefined ? custom : props.custom, currentValues, currentVelocity);\n }\n return definition;\n}\n\nexport { resolveVariantFromProps };\n","const isKeyframesTarget = (v) => {\n return Array.isArray(v);\n};\n\nexport { isKeyframesTarget };\n","import { isKeyframesTarget } from '../animation/utils/is-keyframes-target.mjs';\n\nconst isCustomValue = (v) => {\n return Boolean(v && typeof v === \"object\" && v.mix && v.toValue);\n};\nconst resolveFinalValueInKeyframes = (v) => {\n // TODO maybe throw if v.length - 1 is placeholder token?\n return isKeyframesTarget(v) ? v[v.length - 1] || 0 : v;\n};\n\nexport { isCustomValue, resolveFinalValueInKeyframes };\n","import { isCustomValue } from '../../utils/resolve-value.mjs';\nimport { isMotionValue } from './is-motion-value.mjs';\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 const unwrappedValue = isMotionValue(value) ? value.get() : value;\n return isCustomValue(unwrappedValue)\n ? unwrappedValue.toValue()\n : unwrappedValue;\n}\n\nexport { resolveMotionValue };\n","import { useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.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';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\nimport { isControllingVariants, isVariantNode } from '../../render/utils/is-controlling-variants.mjs';\n\nfunction makeState({ scrapeMotionValuesFromProps, createRenderState, onMount, }, props, context, presenceContext) {\n const state = {\n latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\n renderState: createRenderState(),\n };\n if (onMount) {\n state.mount = (instance) => onMount(props, instance, state);\n }\n return state;\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};\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 list.forEach((definition) => {\n const resolved = resolveVariantFromProps(props, definition);\n if (!resolved)\n return;\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 return values;\n}\n\nexport { makeUseVisualState };\n","import { renderSVG } from './utils/render.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst svgMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createSvgRenderState,\n onMount: (props, instance, { renderState, latestValues }) => {\n frame.read(() => {\n try {\n renderState.dimensions =\n typeof instance.getBBox ===\n \"function\"\n ? instance.getBBox()\n : instance.getBoundingClientRect();\n }\n catch (e) {\n // Most likely trying to measure an unrendered element under Firefox\n renderState.dimensions = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n });\n frame.render(() => {\n buildSVGAttrs(renderState, latestValues, { enableHardwareAcceleration: false }, isSVGTag(instance.tagName), props.transformTemplate);\n renderSVG(instance, renderState);\n });\n },\n }),\n};\n\nexport { svgMotionConfig };\n","import { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nconst htmlMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps,\n createRenderState: createHtmlRenderState,\n }),\n};\n\nexport { htmlMotionConfig };\n","function addDomEvent(target, eventName, handler, options = { passive: true }) {\n target.addEventListener(eventName, handler, options);\n return () => target.removeEventListener(eventName, handler);\n}\n\nexport { addDomEvent };\n","const isPrimaryPointer = (event) => {\n if (event.pointerType === \"mouse\") {\n return typeof event.button !== \"number\" || event.button <= 0;\n }\n else {\n /**\n * isPrimary is true for all mice buttons, whereas every touch point\n * is regarded as its own input. So subsequent concurrent touch points\n * will be false.\n *\n * Specifically match against false here as incomplete versions of\n * PointerEvents in very old browser might have it set as undefined.\n */\n return event.isPrimary !== false;\n }\n};\n\nexport { isPrimaryPointer };\n","import { isPrimaryPointer } from './utils/is-primary-pointer.mjs';\n\nfunction extractEventInfo(event, pointType = \"page\") {\n return {\n point: {\n x: event[pointType + \"X\"],\n y: event[pointType + \"Y\"],\n },\n };\n}\nconst addPointerInfo = (handler) => {\n return (event) => isPrimaryPointer(event) && handler(event, extractEventInfo(event));\n};\n\nexport { addPointerInfo, extractEventInfo };\n","import { addDomEvent } from './add-dom-event.mjs';\nimport { addPointerInfo } from './event-info.mjs';\n\nfunction addPointerEvent(target, eventName, handler, options) {\n return addDomEvent(target, eventName, addPointerInfo(handler), options);\n}\n\nexport { addPointerEvent };\n","/**\n * Pipe\n * Compose other transformers to run linearily\n * pipe(min(20), max(40))\n * @param {...functions} transformers\n * @return {function}\n */\nconst combineFunctions = (a, b) => (v) => b(a(v));\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\n\nexport { pipe };\n","function createLock(name) {\n let lock = null;\n return () => {\n const openLock = () => {\n lock = null;\n };\n if (lock === null) {\n lock = name;\n return openLock;\n }\n return false;\n };\n}\nconst globalHorizontalLock = createLock(\"dragHorizontal\");\nconst globalVerticalLock = createLock(\"dragVertical\");\nfunction getGlobalLock(drag) {\n let lock = false;\n if (drag === \"y\") {\n lock = globalVerticalLock();\n }\n else if (drag === \"x\") {\n lock = globalHorizontalLock();\n }\n else {\n const openHorizontal = globalHorizontalLock();\n const openVertical = globalVerticalLock();\n if (openHorizontal && openVertical) {\n lock = () => {\n openHorizontal();\n openVertical();\n };\n }\n else {\n // Release the locks because we don't use them\n if (openHorizontal)\n openHorizontal();\n if (openVertical)\n openVertical();\n }\n }\n return lock;\n}\nfunction isDragActive() {\n // Check the gesture lock - if we get it, it means no drag gesture is active\n // and we can safely fire the tap gesture.\n const openGestureLock = getGlobalLock(true);\n if (!openGestureLock)\n return true;\n openGestureLock();\n return false;\n}\n\nexport { createLock, getGlobalLock, isDragActive };\n","class Feature {\n constructor(node) {\n this.isMounted = false;\n this.node = node;\n }\n update() { }\n}\n\nexport { Feature };\n","import { addPointerEvent } from '../events/add-pointer-event.mjs';\nimport { pipe } from '../utils/pipe.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\n\nfunction addHoverEvent(node, isActive) {\n const eventName = \"pointer\" + (isActive ? \"enter\" : \"leave\");\n const callbackName = \"onHover\" + (isActive ? \"Start\" : \"End\");\n const handleEvent = (event, info) => {\n if (event.pointerType === \"touch\" || isDragActive())\n return;\n const props = node.getProps();\n if (node.animationState && props.whileHover) {\n node.animationState.setActive(\"whileHover\", isActive);\n }\n if (props[callbackName]) {\n props[callbackName](event, info);\n }\n };\n return addPointerEvent(node.current, eventName, handleEvent, {\n passive: !node.getProps()[callbackName],\n });\n}\nclass HoverGesture extends Feature {\n mount() {\n this.unmount = pipe(addHoverEvent(this.node, true), addHoverEvent(this.node, false));\n }\n unmount() { }\n}\n\nexport { HoverGesture };\n","/**\n * Recursively traverse up the tree to check whether the provided child node\n * is the parent or a descendant of it.\n *\n * @param parent - Element to find\n * @param child - Element to test against parent\n */\nconst isNodeOrChild = (parent, child) => {\n if (!child) {\n return false;\n }\n else if (parent === child) {\n return true;\n }\n else {\n return isNodeOrChild(parent, child.parentElement);\n }\n};\n\nexport { isNodeOrChild };\n","import { extractEventInfo } from '../events/event-info.mjs';\nimport { addDomEvent } from '../events/add-dom-event.mjs';\nimport { addPointerEvent } from '../events/add-pointer-event.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\nimport { pipe } from '../utils/pipe.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\nimport { isNodeOrChild } from './utils/is-node-or-child.mjs';\nimport { noop } from '../utils/noop.mjs';\n\nfunction fireSyntheticPointerEvent(name, handler) {\n if (!handler)\n return;\n const syntheticPointerEvent = new PointerEvent(\"pointer\" + name);\n handler(syntheticPointerEvent, extractEventInfo(syntheticPointerEvent));\n}\nclass PressGesture extends Feature {\n constructor() {\n super(...arguments);\n this.removeStartListeners = noop;\n this.removeEndListeners = noop;\n this.removeAccessibleListeners = noop;\n this.startPointerPress = (startEvent, startInfo) => {\n if (this.isPressing)\n return;\n this.removeEndListeners();\n const props = this.node.getProps();\n const endPointerPress = (endEvent, endInfo) => {\n if (!this.checkPressEnd())\n return;\n const { onTap, onTapCancel, globalTapTarget } = this.node.getProps();\n /**\n * We only count this as a tap gesture if the event.target is the same\n * as, or a child of, this component's element\n */\n !globalTapTarget &&\n !isNodeOrChild(this.node.current, endEvent.target)\n ? onTapCancel && onTapCancel(endEvent, endInfo)\n : onTap && onTap(endEvent, endInfo);\n };\n const removePointerUpListener = addPointerEvent(window, \"pointerup\", endPointerPress, { passive: !(props.onTap || props[\"onPointerUp\"]) });\n const removePointerCancelListener = addPointerEvent(window, \"pointercancel\", (cancelEvent, cancelInfo) => this.cancelPress(cancelEvent, cancelInfo), { passive: !(props.onTapCancel || props[\"onPointerCancel\"]) });\n this.removeEndListeners = pipe(removePointerUpListener, removePointerCancelListener);\n this.startPress(startEvent, startInfo);\n };\n this.startAccessiblePress = () => {\n const handleKeydown = (keydownEvent) => {\n if (keydownEvent.key !== \"Enter\" || this.isPressing)\n return;\n const handleKeyup = (keyupEvent) => {\n if (keyupEvent.key !== \"Enter\" || !this.checkPressEnd())\n return;\n fireSyntheticPointerEvent(\"up\", (event, info) => {\n const { onTap } = this.node.getProps();\n if (onTap)\n onTap(event, info);\n });\n };\n this.removeEndListeners();\n this.removeEndListeners = addDomEvent(this.node.current, \"keyup\", handleKeyup);\n fireSyntheticPointerEvent(\"down\", (event, info) => {\n this.startPress(event, info);\n });\n };\n const removeKeydownListener = addDomEvent(this.node.current, \"keydown\", handleKeydown);\n const handleBlur = () => {\n if (!this.isPressing)\n return;\n fireSyntheticPointerEvent(\"cancel\", (cancelEvent, cancelInfo) => this.cancelPress(cancelEvent, cancelInfo));\n };\n const removeBlurListener = addDomEvent(this.node.current, \"blur\", handleBlur);\n this.removeAccessibleListeners = pipe(removeKeydownListener, removeBlurListener);\n };\n }\n startPress(event, info) {\n this.isPressing = true;\n const { onTapStart, whileTap } = this.node.getProps();\n /**\n * Ensure we trigger animations before firing event callback\n */\n if (whileTap && this.node.animationState) {\n this.node.animationState.setActive(\"whileTap\", true);\n }\n if (onTapStart) {\n onTapStart(event, info);\n }\n }\n checkPressEnd() {\n this.removeEndListeners();\n this.isPressing = false;\n const props = this.node.getProps();\n if (props.whileTap && this.node.animationState) {\n this.node.animationState.setActive(\"whileTap\", false);\n }\n return !isDragActive();\n }\n cancelPress(event, info) {\n if (!this.checkPressEnd())\n return;\n const { onTapCancel } = this.node.getProps();\n if (onTapCancel)\n onTapCancel(event, info);\n }\n mount() {\n const props = this.node.getProps();\n const removePointerListener = addPointerEvent(props.globalTapTarget ? window : this.node.current, \"pointerdown\", this.startPointerPress, { passive: !(props.onTapStart || props[\"onPointerStart\"]) });\n const removeFocusListener = addDomEvent(this.node.current, \"focus\", this.startAccessiblePress);\n this.removeStartListeners = pipe(removePointerListener, removeFocusListener);\n }\n unmount() {\n this.removeStartListeners();\n this.removeEndListeners();\n this.removeAccessibleListeners();\n }\n}\n\nexport { PressGesture };\n","/**\n * Map an IntersectionHandler callback to an element. We only ever make one handler for one\n * element, so even though these handlers might all be triggered by different\n * observers, we can keep them in the same map.\n */\nconst observerCallbacks = new WeakMap();\n/**\n * Multiple observers can be created for multiple element/document roots. Each with\n * different settings. So here we store dictionaries of observers to each root,\n * using serialised settings (threshold/margin) as lookup keys.\n */\nconst observers = new WeakMap();\nconst fireObserverCallback = (entry) => {\n const callback = observerCallbacks.get(entry.target);\n callback && callback(entry);\n};\nconst fireAllObserverCallbacks = (entries) => {\n entries.forEach(fireObserverCallback);\n};\nfunction initIntersectionObserver({ root, ...options }) {\n const lookupRoot = root || document;\n /**\n * If we don't have an observer lookup map for this root, create one.\n */\n if (!observers.has(lookupRoot)) {\n observers.set(lookupRoot, {});\n }\n const rootObservers = observers.get(lookupRoot);\n const key = JSON.stringify(options);\n /**\n * If we don't have an observer for this combination of root and settings,\n * create one.\n */\n if (!rootObservers[key]) {\n rootObservers[key] = new IntersectionObserver(fireAllObserverCallbacks, { root, ...options });\n }\n return rootObservers[key];\n}\nfunction observeIntersection(element, options, callback) {\n const rootInteresectionObserver = initIntersectionObserver(options);\n observerCallbacks.set(element, callback);\n rootInteresectionObserver.observe(element);\n return () => {\n observerCallbacks.delete(element);\n rootInteresectionObserver.unobserve(element);\n };\n}\n\nexport { observeIntersection };\n","import { Feature } from '../Feature.mjs';\nimport { observeIntersection } from './observers.mjs';\n\nconst thresholdNames = {\n some: 0,\n all: 1,\n};\nclass InViewFeature extends Feature {\n constructor() {\n super(...arguments);\n this.hasEnteredView = false;\n this.isInView = false;\n }\n startObserver() {\n this.unmount();\n const { viewport = {} } = this.node.getProps();\n const { root, margin: rootMargin, amount = \"some\", once } = viewport;\n const options = {\n root: root ? root.current : undefined,\n rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholdNames[amount],\n };\n const onIntersectionUpdate = (entry) => {\n const { isIntersecting } = entry;\n /**\n * If there's been no change in the viewport state, early return.\n */\n if (this.isInView === isIntersecting)\n return;\n this.isInView = isIntersecting;\n /**\n * Handle hasEnteredView. If this is only meant to run once, and\n * element isn't visible, early return. Otherwise set hasEnteredView to true.\n */\n if (once && !isIntersecting && this.hasEnteredView) {\n return;\n }\n else if (isIntersecting) {\n this.hasEnteredView = true;\n }\n if (this.node.animationState) {\n this.node.animationState.setActive(\"whileInView\", isIntersecting);\n }\n /**\n * Use the latest committed props rather than the ones in scope\n * when this observer is created\n */\n const { onViewportEnter, onViewportLeave } = this.node.getProps();\n const callback = isIntersecting ? onViewportEnter : onViewportLeave;\n callback && callback(entry);\n };\n return observeIntersection(this.node.current, options, onIntersectionUpdate);\n }\n mount() {\n this.startObserver();\n }\n update() {\n if (typeof IntersectionObserver === \"undefined\")\n return;\n const { props, prevProps } = this.node;\n const hasOptionsChanged = [\"amount\", \"margin\", \"root\"].some(hasViewportOptionChanged(props, prevProps));\n if (hasOptionsChanged) {\n this.startObserver();\n }\n }\n unmount() { }\n}\nfunction hasViewportOptionChanged({ viewport = {} }, { viewport: prevViewport = {} } = {}) {\n return (name) => viewport[name] !== prevViewport[name];\n}\n\nexport { InViewFeature };\n","import { HoverGesture } from '../../gestures/hover.mjs';\nimport { FocusGesture } from '../../gestures/focus.mjs';\nimport { PressGesture } from '../../gestures/press.mjs';\nimport { InViewFeature } from './viewport/index.mjs';\n\nconst gestureAnimations = {\n inView: {\n Feature: InViewFeature,\n },\n tap: {\n Feature: PressGesture,\n },\n focus: {\n Feature: FocusGesture,\n },\n hover: {\n Feature: HoverGesture,\n },\n};\n\nexport { gestureAnimations };\n","import { addDomEvent } from '../events/add-dom-event.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\nimport { pipe } from '../utils/pipe.mjs';\n\nclass FocusGesture extends Feature {\n constructor() {\n super(...arguments);\n this.isActive = false;\n }\n onFocus() {\n let isFocusVisible = false;\n /**\n * If this element doesn't match focus-visible then don't\n * apply whileHover. But, if matches throws that focus-visible\n * is not a valid selector then in that browser outline styles will be applied\n * to the element by default and we want to match that behaviour with whileFocus.\n */\n try {\n isFocusVisible = this.node.current.matches(\":focus-visible\");\n }\n catch (e) {\n isFocusVisible = true;\n }\n if (!isFocusVisible || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", true);\n this.isActive = true;\n }\n onBlur() {\n if (!this.isActive || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", false);\n this.isActive = false;\n }\n mount() {\n this.unmount = pipe(addDomEvent(this.node.current, \"focus\", () => this.onFocus()), addDomEvent(this.node.current, \"blur\", () => this.onBlur()));\n }\n unmount() { }\n}\n\nexport { FocusGesture };\n","function shallowCompare(next, prev) {\n if (!Array.isArray(prev))\n return false;\n const prevLength = prev.length;\n if (prevLength !== next.length)\n return false;\n for (let i = 0; i < prevLength; i++) {\n if (prev[i] !== next[i])\n return false;\n }\n return true;\n}\n\nexport { shallowCompare };\n","import { resolveVariantFromProps } from './resolve-variants.mjs';\n\n/**\n * Creates an object containing the latest state of every MotionValue on a VisualElement\n */\nfunction getCurrent(visualElement) {\n const current = {};\n visualElement.values.forEach((value, key) => (current[key] = value.get()));\n return current;\n}\n/**\n * Creates an object containing the latest velocity of every MotionValue on a VisualElement\n */\nfunction getVelocity(visualElement) {\n const velocity = {};\n visualElement.values.forEach((value, key) => (velocity[key] = value.getVelocity()));\n return velocity;\n}\nfunction resolveVariant(visualElement, definition, custom) {\n const props = visualElement.getProps();\n return resolveVariantFromProps(props, definition, custom !== undefined ? custom : props.custom, getCurrent(visualElement), getVelocity(visualElement));\n}\n\nexport { resolveVariant };\n","/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\nconst secondsToMilliseconds = (seconds) => seconds * 1000;\nconst millisecondsToSeconds = (milliseconds) => milliseconds / 1000;\n\nexport { millisecondsToSeconds, secondsToMilliseconds };\n","import { transformProps } from '../../render/html/utils/transform.mjs';\n\nconst underDampedSpring = {\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restSpeed: 10,\n};\nconst criticallyDampedSpring = (target) => ({\n type: \"spring\",\n stiffness: 550,\n damping: target === 0 ? 2 * Math.sqrt(550) : 30,\n restSpeed: 10,\n});\nconst keyframesTransition = {\n type: \"keyframes\",\n duration: 0.8,\n};\n/**\n * Default easing curve is a slightly shallower version of\n * the default browser easing curve.\n */\nconst ease = {\n type: \"keyframes\",\n ease: [0.25, 0.1, 0.35, 1],\n duration: 0.3,\n};\nconst getDefaultTransition = (valueKey, { keyframes }) => {\n if (keyframes.length > 2) {\n return keyframesTransition;\n }\n else if (transformProps.has(valueKey)) {\n return valueKey.startsWith(\"scale\")\n ? criticallyDampedSpring(keyframes[1])\n : underDampedSpring;\n }\n return ease;\n};\n\nexport { getDefaultTransition };\n","/**\n * Decide whether a transition is defined on a given Transition.\n * This filters out orchestration options and returns true\n * if any options are left.\n */\nfunction isTransitionDefined({ when, delay: _delay, delayChildren, staggerChildren, staggerDirection, repeat, repeatType, repeatDelay, from, elapsed, ...transition }) {\n return !!Object.keys(transition).length;\n}\nfunction getValueTransition(transition, key) {\n return transition[key] || transition[\"default\"] || transition;\n}\n\nexport { getValueTransition, isTransitionDefined };\n","const instantAnimationState = {\n current: false,\n};\n\nexport { instantAnimationState };\n","const isNotNull = (value) => value !== null;\nfunction getFinalKeyframe(keyframes, { repeat, repeatType = \"loop\" }, finalKeyframe) {\n const resolvedKeyframes = keyframes.filter(isNotNull);\n const index = repeat && repeatType !== \"loop\" && repeat % 2 === 1\n ? 0\n : resolvedKeyframes.length - 1;\n return !index || finalKeyframe === undefined\n ? resolvedKeyframes[index]\n : finalKeyframe;\n}\n\nexport { getFinalKeyframe };\n","import { MotionGlobalConfig } from '../utils/GlobalConfig.mjs';\nimport { frameData } from './frame.mjs';\n\nlet now;\nfunction clearTime() {\n now = undefined;\n}\n/**\n * An eventloop-synchronous alternative to performance.now().\n *\n * Ensures that time measurements remain consistent within a synchronous context.\n * Usually calling performance.now() twice within the same synchronous context\n * will return different values which isn't useful for animations when we're usually\n * trying to sync animations to the same frame.\n */\nconst time = {\n now: () => {\n if (now === undefined) {\n time.set(frameData.isProcessing || MotionGlobalConfig.useManualTiming\n ? frameData.timestamp\n : performance.now());\n }\n return now;\n },\n set: (newTime) => {\n now = newTime;\n queueMicrotask(clearTime);\n },\n};\n\nexport { time };\n","/**\n * Check if the value is a zero value string like \"0px\" or \"0%\"\n */\nconst isZeroValueString = (v) => /^0[^.\\s]+$/u.test(v);\n\nexport { isZeroValueString };\n","/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nconst isNumericalString = (v) => /^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)$/u.test(v);\n\nexport { isNumericalString };\n","import { invariant } from '../../../utils/errors.mjs';\nimport { isNumericalString } from '../../../utils/is-numerical-string.mjs';\nimport { isCSSVariableToken } from './is-css-variable.mjs';\n\n/**\n * Parse Framer's special CSS variable format into a CSS token and a fallback.\n *\n * ```\n * `var(--foo, #fff)` => [`--foo`, '#fff']\n * ```\n *\n * @param current\n */\nconst splitCSSVariableRegex = \n// eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive, as it can match a lot of words\n/^var\\(--(?:([\\w-]+)|([\\w-]+), ?([a-zA-Z\\d ()%#.,-]+))\\)/u;\nfunction parseCSSVariable(current) {\n const match = splitCSSVariableRegex.exec(current);\n if (!match)\n return [,];\n const [, token1, token2, fallback] = match;\n return [`--${token1 !== null && token1 !== void 0 ? token1 : token2}`, fallback];\n}\nconst maxDepth = 4;\nfunction getVariableValue(current, element, depth = 1) {\n invariant(depth <= maxDepth, `Max CSS variable fallback depth detected in property \"${current}\". This may indicate a circular fallback dependency.`);\n const [token, fallback] = parseCSSVariable(current);\n // No CSS variable detected\n if (!token)\n return;\n // Attempt to read this CSS variable off the element\n const resolved = window.getComputedStyle(element).getPropertyValue(token);\n if (resolved) {\n const trimmed = resolved.trim();\n return isNumericalString(trimmed) ? parseFloat(trimmed) : trimmed;\n }\n return isCSSVariableToken(fallback)\n ? getVariableValue(fallback, element, depth + 1)\n : fallback;\n}\n\nexport { getVariableValue, parseCSSVariable };\n","import { transformPropOrder } from '../../html/utils/transform.mjs';\nimport { number } from '../../../value/types/numbers/index.mjs';\nimport { px } from '../../../value/types/numbers/units.mjs';\n\nconst positionalKeys = new Set([\n \"width\",\n \"height\",\n \"top\",\n \"left\",\n \"right\",\n \"bottom\",\n \"x\",\n \"y\",\n \"translateX\",\n \"translateY\",\n]);\nconst isNumOrPxType = (v) => v === number || v === px;\nconst getPosFromMatrix = (matrix, pos) => parseFloat(matrix.split(\", \")[pos]);\nconst getTranslateFromMatrix = (pos2, pos3) => (_bbox, { transform }) => {\n if (transform === \"none\" || !transform)\n return 0;\n const matrix3d = transform.match(/^matrix3d\\((.+)\\)$/u);\n if (matrix3d) {\n return getPosFromMatrix(matrix3d[1], pos3);\n }\n else {\n const matrix = transform.match(/^matrix\\((.+)\\)$/u);\n if (matrix) {\n return getPosFromMatrix(matrix[1], pos2);\n }\n else {\n return 0;\n }\n }\n};\nconst transformKeys = new Set([\"x\", \"y\", \"z\"]);\nconst nonTranslationalTransformKeys = transformPropOrder.filter((key) => !transformKeys.has(key));\nfunction removeNonTranslationalTransform(visualElement) {\n const removedTransforms = [];\n nonTranslationalTransformKeys.forEach((key) => {\n const value = visualElement.getValue(key);\n if (value !== undefined) {\n removedTransforms.push([key, value.get()]);\n value.set(key.startsWith(\"scale\") ? 1 : 0);\n }\n });\n return removedTransforms;\n}\nconst positionalValues = {\n // Dimensions\n width: ({ x }, { paddingLeft = \"0\", paddingRight = \"0\" }) => x.max - x.min - parseFloat(paddingLeft) - parseFloat(paddingRight),\n height: ({ y }, { paddingTop = \"0\", paddingBottom = \"0\" }) => y.max - y.min - parseFloat(paddingTop) - parseFloat(paddingBottom),\n top: (_bbox, { top }) => parseFloat(top),\n left: (_bbox, { left }) => parseFloat(left),\n bottom: ({ y }, { top }) => parseFloat(top) + (y.max - y.min),\n right: ({ x }, { left }) => parseFloat(left) + (x.max - x.min),\n // Transform\n x: getTranslateFromMatrix(4, 13),\n y: getTranslateFromMatrix(5, 14),\n};\n// Alias translate longform names\npositionalValues.translateX = positionalValues.x;\npositionalValues.translateY = positionalValues.y;\n\nexport { isNumOrPxType, positionalKeys, positionalValues, removeNonTranslationalTransform };\n","/**\n * Tests a provided value against a ValueType\n */\nconst testValueType = (v) => (type) => type.test(v);\n\nexport { testValueType };\n","import { number } from '../../../value/types/numbers/index.mjs';\nimport { px, percent, degrees, vw, vh } from '../../../value/types/numbers/units.mjs';\nimport { testValueType } from './test.mjs';\nimport { auto } from './type-auto.mjs';\n\n/**\n * A list of value types commonly used for dimensions\n */\nconst dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\nconst findDimensionValueType = (v) => dimensionValueTypes.find(testValueType(v));\n\nexport { dimensionValueTypes, findDimensionValueType };\n","/**\n * ValueType for \"auto\"\n */\nconst auto = {\n test: (v) => v === \"auto\",\n parse: (v) => v,\n};\n\nexport { auto };\n","import { removeNonTranslationalTransform } from '../dom/utils/unit-conversion.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst toResolve = new Set();\nlet isScheduled = false;\nlet anyNeedsMeasurement = false;\nfunction measureAllKeyframes() {\n if (anyNeedsMeasurement) {\n const resolversToMeasure = Array.from(toResolve).filter((resolver) => resolver.needsMeasurement);\n const elementsToMeasure = new Set(resolversToMeasure.map((resolver) => resolver.element));\n const transformsToRestore = new Map();\n /**\n * Write pass\n * If we're measuring elements we want to remove bounding box-changing transforms.\n */\n elementsToMeasure.forEach((element) => {\n const removedTransforms = removeNonTranslationalTransform(element);\n if (!removedTransforms.length)\n return;\n transformsToRestore.set(element, removeNonTranslationalTransform(element));\n element.render();\n });\n // Read\n resolversToMeasure.forEach((resolver) => resolver.measureInitialState());\n // Write\n elementsToMeasure.forEach((element) => {\n element.render();\n });\n // Read\n resolversToMeasure.forEach((resolver) => resolver.measureEndState());\n // Write\n resolversToMeasure.forEach((resolver) => {\n if (resolver.suspendedScrollY !== undefined) {\n window.scrollTo(0, resolver.suspendedScrollY);\n }\n });\n }\n anyNeedsMeasurement = false;\n isScheduled = false;\n toResolve.forEach((resolver) => resolver.complete());\n toResolve.clear();\n}\nfunction readAllKeyframes() {\n toResolve.forEach((resolver) => {\n resolver.readKeyframes();\n if (resolver.needsMeasurement) {\n anyNeedsMeasurement = true;\n }\n });\n}\nfunction flushKeyframeResolvers() {\n readAllKeyframes();\n measureAllKeyframes();\n}\nclass KeyframeResolver {\n constructor(unresolvedKeyframes, onComplete, name, motionValue, element, isAsync = false) {\n /**\n * Track whether this resolver has completed. Once complete, it never\n * needs to attempt keyframe resolution again.\n */\n this.isComplete = false;\n /**\n * Track whether this resolver is async. If it is, it'll be added to the\n * resolver queue and flushed in the next frame. Resolvers that aren't going\n * to trigger read/write thrashing don't need to be async.\n */\n this.isAsync = false;\n /**\n * Track whether this resolver needs to perform a measurement\n * to resolve its keyframes.\n */\n this.needsMeasurement = false;\n /**\n * Track whether this resolver is currently scheduled to resolve\n * to allow it to be cancelled and resumed externally.\n */\n this.isScheduled = false;\n this.unresolvedKeyframes = [...unresolvedKeyframes];\n this.onComplete = onComplete;\n this.name = name;\n this.motionValue = motionValue;\n this.element = element;\n this.isAsync = isAsync;\n }\n scheduleResolve() {\n this.isScheduled = true;\n if (this.isAsync) {\n toResolve.add(this);\n if (!isScheduled) {\n isScheduled = true;\n frame.read(readAllKeyframes);\n frame.resolveKeyframes(measureAllKeyframes);\n }\n }\n else {\n this.readKeyframes();\n this.complete();\n }\n }\n readKeyframes() {\n const { unresolvedKeyframes, name, element, motionValue } = this;\n /**\n * If a keyframe is null, we hydrate it either by reading it from\n * the instance, or propagating from previous keyframes.\n */\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n if (unresolvedKeyframes[i] === null) {\n /**\n * If the first keyframe is null, we need to find its value by sampling the element\n */\n if (i === 0) {\n const currentValue = motionValue === null || motionValue === void 0 ? void 0 : motionValue.get();\n const finalKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n if (currentValue !== undefined) {\n unresolvedKeyframes[0] = currentValue;\n }\n else if (element && name) {\n const valueAsRead = element.readValue(name, finalKeyframe);\n if (valueAsRead !== undefined && valueAsRead !== null) {\n unresolvedKeyframes[0] = valueAsRead;\n }\n }\n if (unresolvedKeyframes[0] === undefined) {\n unresolvedKeyframes[0] = finalKeyframe;\n }\n if (motionValue && currentValue === undefined) {\n motionValue.set(unresolvedKeyframes[0]);\n }\n }\n else {\n unresolvedKeyframes[i] = unresolvedKeyframes[i - 1];\n }\n }\n }\n }\n setFinalKeyframe() { }\n measureInitialState() { }\n renderEndStyles() { }\n measureEndState() { }\n complete() {\n this.isComplete = true;\n this.onComplete(this.unresolvedKeyframes, this.finalKeyframe);\n toResolve.delete(this);\n }\n cancel() {\n if (!this.isComplete) {\n this.isScheduled = false;\n toResolve.delete(this);\n }\n }\n resume() {\n if (!this.isComplete)\n this.scheduleResolve();\n }\n}\n\nexport { KeyframeResolver, flushKeyframeResolvers };\n","import { isString, singleColorRegex, floatRegex } from '../utils.mjs';\n\n/**\n * Returns true if the provided string is a color, ie rgba(0,0,0,0) or #000,\n * but false if a number or multiple colors\n */\nconst isColorString = (type, testProp) => (v) => {\n return Boolean((isString(v) && singleColorRegex.test(v) && v.startsWith(type)) ||\n (testProp && Object.prototype.hasOwnProperty.call(v, testProp)));\n};\nconst splitColor = (aName, bName, cName) => (v) => {\n if (!isString(v))\n return v;\n const [a, b, c, alpha] = v.match(floatRegex);\n return {\n [aName]: parseFloat(a),\n [bName]: parseFloat(b),\n [cName]: parseFloat(c),\n alpha: alpha !== undefined ? parseFloat(alpha) : 1,\n };\n};\n\nexport { isColorString, splitColor };\n","import { clamp } from '../../../utils/clamp.mjs';\nimport { number, alpha } from '../numbers/index.mjs';\nimport { sanitize } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst clampRgbUnit = (v) => clamp(0, 255, v);\nconst rgbUnit = {\n ...number,\n transform: (v) => Math.round(clampRgbUnit(v)),\n};\nconst rgba = {\n test: isColorString(\"rgb\", \"red\"),\n parse: splitColor(\"red\", \"green\", \"blue\"),\n transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => \"rgba(\" +\n rgbUnit.transform(red) +\n \", \" +\n rgbUnit.transform(green) +\n \", \" +\n rgbUnit.transform(blue) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\",\n};\n\nexport { rgbUnit, rgba };\n","import { rgba } from './rgba.mjs';\nimport { isColorString } from './utils.mjs';\n\nfunction parseHex(v) {\n let r = \"\";\n let g = \"\";\n let b = \"\";\n let a = \"\";\n // If we have 6 characters, ie #FF0000\n if (v.length > 5) {\n r = v.substring(1, 3);\n g = v.substring(3, 5);\n b = v.substring(5, 7);\n a = v.substring(7, 9);\n // Or we have 3 characters, ie #F00\n }\n else {\n r = v.substring(1, 2);\n g = v.substring(2, 3);\n b = v.substring(3, 4);\n a = v.substring(4, 5);\n r += r;\n g += g;\n b += b;\n a += a;\n }\n return {\n red: parseInt(r, 16),\n green: parseInt(g, 16),\n blue: parseInt(b, 16),\n alpha: a ? parseInt(a, 16) / 255 : 1,\n };\n}\nconst hex = {\n test: isColorString(\"#\"),\n parse: parseHex,\n transform: rgba.transform,\n};\n\nexport { hex };\n","import { alpha } from '../numbers/index.mjs';\nimport { percent } from '../numbers/units.mjs';\nimport { sanitize } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst hsla = {\n test: isColorString(\"hsl\", \"hue\"),\n parse: splitColor(\"hue\", \"saturation\", \"lightness\"),\n transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n return (\"hsla(\" +\n Math.round(hue) +\n \", \" +\n percent.transform(sanitize(saturation)) +\n \", \" +\n percent.transform(sanitize(lightness)) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\");\n },\n};\n\nexport { hsla };\n","import { isString } from '../utils.mjs';\nimport { hex } from './hex.mjs';\nimport { hsla } from './hsla.mjs';\nimport { rgba } from './rgba.mjs';\n\nconst color = {\n test: (v) => rgba.test(v) || hex.test(v) || hsla.test(v),\n parse: (v) => {\n if (rgba.test(v)) {\n return rgba.parse(v);\n }\n else if (hsla.test(v)) {\n return hsla.parse(v);\n }\n else {\n return hex.parse(v);\n }\n },\n transform: (v) => {\n return isString(v)\n ? v\n : v.hasOwnProperty(\"red\")\n ? rgba.transform(v)\n : hsla.transform(v);\n },\n};\n\nexport { color };\n","import { color } from '../color/index.mjs';\nimport { isString, floatRegex, colorRegex, sanitize } from '../utils.mjs';\n\nfunction test(v) {\n var _a, _b;\n return (isNaN(v) &&\n isString(v) &&\n (((_a = v.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) || 0) +\n (((_b = v.match(colorRegex)) === null || _b === void 0 ? void 0 : _b.length) || 0) >\n 0);\n}\nconst NUMBER_TOKEN = \"number\";\nconst COLOR_TOKEN = \"color\";\nconst VAR_TOKEN = \"var\";\nconst VAR_FUNCTION_TOKEN = \"var(\";\nconst SPLIT_TOKEN = \"${}\";\n// this regex consists of the `singleCssVariableRegex|rgbHSLValueRegex|digitRegex`\nconst complexRegex = /var\\s*\\(\\s*--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)|#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\)|-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/giu;\nfunction analyseComplexValue(value) {\n const originalValue = value.toString();\n const values = [];\n const indexes = {\n color: [],\n number: [],\n var: [],\n };\n const types = [];\n let i = 0;\n const tokenised = originalValue.replace(complexRegex, (parsedValue) => {\n if (color.test(parsedValue)) {\n indexes.color.push(i);\n types.push(COLOR_TOKEN);\n values.push(color.parse(parsedValue));\n }\n else if (parsedValue.startsWith(VAR_FUNCTION_TOKEN)) {\n indexes.var.push(i);\n types.push(VAR_TOKEN);\n values.push(parsedValue);\n }\n else {\n indexes.number.push(i);\n types.push(NUMBER_TOKEN);\n values.push(parseFloat(parsedValue));\n }\n ++i;\n return SPLIT_TOKEN;\n });\n const split = tokenised.split(SPLIT_TOKEN);\n return { values, split, indexes, types };\n}\nfunction parseComplexValue(v) {\n return analyseComplexValue(v).values;\n}\nfunction createTransformer(source) {\n const { split, types } = analyseComplexValue(source);\n const numSections = split.length;\n return (v) => {\n let output = \"\";\n for (let i = 0; i < numSections; i++) {\n output += split[i];\n if (v[i] !== undefined) {\n const type = types[i];\n if (type === NUMBER_TOKEN) {\n output += sanitize(v[i]);\n }\n else if (type === COLOR_TOKEN) {\n output += color.transform(v[i]);\n }\n else {\n output += v[i];\n }\n }\n }\n return output;\n };\n}\nconst convertNumbersToZero = (v) => typeof v === \"number\" ? 0 : v;\nfunction getAnimatableNone(v) {\n const parsed = parseComplexValue(v);\n const transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\nconst complex = {\n test,\n parse: parseComplexValue,\n createTransformer,\n getAnimatableNone,\n};\n\nexport { analyseComplexValue, complex };\n","import { complex } from './index.mjs';\nimport { floatRegex } from '../utils.mjs';\n\n/**\n * Properties that should default to 1 or 100%\n */\nconst maxDefaults = new Set([\"brightness\", \"contrast\", \"saturate\", \"opacity\"]);\nfunction applyDefaultFilter(v) {\n const [name, value] = v.slice(0, -1).split(\"(\");\n if (name === \"drop-shadow\")\n return v;\n const [number] = value.match(floatRegex) || [];\n if (!number)\n return v;\n const unit = value.replace(number, \"\");\n let defaultValue = maxDefaults.has(name) ? 1 : 0;\n if (number !== value)\n defaultValue *= 100;\n return name + \"(\" + defaultValue + unit + \")\";\n}\nconst functionRegex = /\\b([a-z-]*)\\(.*?\\)/gu;\nconst filter = {\n ...complex,\n getAnimatableNone: (v) => {\n const functions = v.match(functionRegex);\n return functions ? functions.map(applyDefaultFilter).join(\" \") : v;\n },\n};\n\nexport { filter };\n","import { color } from '../../../value/types/color/index.mjs';\nimport { filter } from '../../../value/types/complex/filter.mjs';\nimport { numberValueTypes } from './number.mjs';\n\n/**\n * A map of default value types for common values\n */\nconst defaultValueTypes = {\n ...numberValueTypes,\n // Color props\n color,\n backgroundColor: color,\n outlineColor: color,\n fill: color,\n stroke: color,\n // Border props\n borderColor: color,\n borderTopColor: color,\n borderRightColor: color,\n borderBottomColor: color,\n borderLeftColor: color,\n filter,\n WebkitFilter: filter,\n};\n/**\n * Gets the default ValueType for the provided value key\n */\nconst getDefaultValueType = (key) => defaultValueTypes[key];\n\nexport { defaultValueTypes, getDefaultValueType };\n","import { complex } from '../../../value/types/complex/index.mjs';\nimport { filter } from '../../../value/types/complex/filter.mjs';\nimport { getDefaultValueType } from './defaults.mjs';\n\nfunction getAnimatableNone(key, value) {\n let defaultValueType = getDefaultValueType(key);\n if (defaultValueType !== filter)\n defaultValueType = complex;\n // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\n return defaultValueType.getAnimatableNone\n ? defaultValueType.getAnimatableNone(value)\n : undefined;\n}\n\nexport { getAnimatableNone };\n","import { isNone } from '../../animation/utils/is-none.mjs';\nimport { getVariableValue } from './utils/css-variables-conversion.mjs';\nimport { isCSSVariableToken } from './utils/is-css-variable.mjs';\nimport { positionalKeys, isNumOrPxType, positionalValues } from './utils/unit-conversion.mjs';\nimport { findDimensionValueType } from './value-types/dimensions.mjs';\nimport { KeyframeResolver } from '../utils/KeyframesResolver.mjs';\nimport { makeNoneKeyframesAnimatable } from '../html/utils/make-none-animatable.mjs';\n\nclass DOMKeyframesResolver extends KeyframeResolver {\n constructor(unresolvedKeyframes, onComplete, name, motionValue) {\n super(unresolvedKeyframes, onComplete, name, motionValue, motionValue === null || motionValue === void 0 ? void 0 : motionValue.owner, true);\n }\n readKeyframes() {\n const { unresolvedKeyframes, element, name } = this;\n if (!element.current)\n return;\n super.readKeyframes();\n /**\n * If any keyframe is a CSS variable, we need to find its value by sampling the element\n */\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n const keyframe = unresolvedKeyframes[i];\n if (typeof keyframe === \"string\" && isCSSVariableToken(keyframe)) {\n const resolved = getVariableValue(keyframe, element.current);\n if (resolved !== undefined) {\n unresolvedKeyframes[i] = resolved;\n }\n }\n }\n /**\n * Check to see if unit type has changed. If so schedule jobs that will\n * temporarily set styles to the destination keyframes.\n * Skip if we have more than two keyframes or this isn't a positional value.\n * TODO: We can throw if there are multiple keyframes and the value type changes.\n */\n if (!positionalKeys.has(name) || unresolvedKeyframes.length !== 2) {\n return this.resolveNoneKeyframes();\n }\n const [origin, target] = unresolvedKeyframes;\n const originType = findDimensionValueType(origin);\n const targetType = findDimensionValueType(target);\n /**\n * Either we don't recognise these value types or we can animate between them.\n */\n if (originType === targetType)\n return;\n /**\n * If both values are numbers or pixels, we can animate between them by\n * converting them to numbers.\n */\n if (isNumOrPxType(originType) && isNumOrPxType(targetType)) {\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n const value = unresolvedKeyframes[i];\n if (typeof value === \"string\") {\n unresolvedKeyframes[i] = parseFloat(value);\n }\n }\n }\n else {\n /**\n * Else, the only way to resolve this is by measuring the element.\n */\n this.needsMeasurement = true;\n }\n }\n resolveNoneKeyframes() {\n const { unresolvedKeyframes, name } = this;\n const noneKeyframeIndexes = [];\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n if (isNone(unresolvedKeyframes[i])) {\n noneKeyframeIndexes.push(i);\n }\n }\n if (noneKeyframeIndexes.length) {\n makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name);\n }\n }\n measureInitialState() {\n const { element, unresolvedKeyframes, name } = this;\n if (!element.current)\n return;\n if (name === \"height\") {\n this.suspendedScrollY = window.pageYOffset;\n }\n this.measuredOrigin = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n unresolvedKeyframes[0] = this.measuredOrigin;\n // Set final key frame to measure after next render\n const measureKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n if (measureKeyframe !== undefined) {\n element.getValue(name, measureKeyframe).jump(measureKeyframe, false);\n }\n }\n measureEndState() {\n var _a;\n const { element, name, unresolvedKeyframes } = this;\n if (!element.current)\n return;\n const value = element.getValue(name);\n value && value.jump(this.measuredOrigin, false);\n const finalKeyframeIndex = unresolvedKeyframes.length - 1;\n const finalKeyframe = unresolvedKeyframes[finalKeyframeIndex];\n unresolvedKeyframes[finalKeyframeIndex] = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n if (finalKeyframe !== null) {\n this.finalKeyframe = finalKeyframe;\n }\n // If we removed transform values, reapply them before the next render\n if ((_a = this.removedTransforms) === null || _a === void 0 ? void 0 : _a.length) {\n this.removedTransforms.forEach(([unsetTransformName, unsetTransformValue]) => {\n element\n .getValue(unsetTransformName)\n .set(unsetTransformValue);\n });\n }\n this.resolveNoneKeyframes();\n }\n}\n\nexport { DOMKeyframesResolver };\n","import { isZeroValueString } from '../../utils/is-zero-value-string.mjs';\n\nfunction isNone(value) {\n if (typeof value === \"number\") {\n return value === 0;\n }\n else if (value !== null) {\n return value === \"none\" || value === \"0\" || isZeroValueString(value);\n }\n else {\n return true;\n }\n}\n\nexport { isNone };\n","import { getAnimatableNone } from '../../dom/value-types/animatable-none.mjs';\n\n/**\n * If we encounter keyframes like \"none\" or \"0\" and we also have keyframes like\n * \"#fff\" or \"200px 200px\" we want to find a keyframe to serve as a template for\n * the \"none\" keyframes. In this case \"#fff\" or \"200px 200px\" - then these get turned into\n * zero equivalents, i.e. \"#fff0\" or \"0px 0px\".\n */\nfunction makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name) {\n let i = 0;\n let animatableTemplate = undefined;\n while (i < unresolvedKeyframes.length && !animatableTemplate) {\n if (typeof unresolvedKeyframes[i] === \"string\" &&\n unresolvedKeyframes[i] !== \"none\" &&\n unresolvedKeyframes[i] !== \"0\") {\n animatableTemplate = unresolvedKeyframes[i];\n }\n i++;\n }\n if (animatableTemplate && name) {\n for (const noneIndex of noneKeyframeIndexes) {\n unresolvedKeyframes[noneIndex] = getAnimatableNone(name, animatableTemplate);\n }\n }\n}\n\nexport { makeNoneKeyframesAnimatable };\n","import { complex } from '../../value/types/complex/index.mjs';\n\n/**\n * Check if a value is animatable. Examples:\n *\n * ✅: 100, \"100px\", \"#fff\"\n * ❌: \"block\", \"url(2.jpg)\"\n * @param value\n *\n * @internal\n */\nconst isAnimatable = (value, name) => {\n // If the list of keys tat might be non-animatable grows, replace with Set\n if (name === \"zIndex\")\n return false;\n // If it's a number or a keyframes array, we can animate it. We might at some point\n // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,\n // but for now lets leave it like this for performance reasons\n if (typeof value === \"number\" || Array.isArray(value))\n return true;\n if (typeof value === \"string\" && // It's animatable if we have a string\n (complex.test(value) || value === \"0\") && // And it contains numbers and/or colors\n !value.startsWith(\"url(\") // Unless it starts with \"url(\"\n ) {\n return true;\n }\n return false;\n};\n\nexport { isAnimatable };\n","import { flushKeyframeResolvers } from '../../render/utils/KeyframesResolver.mjs';\nimport { instantAnimationState } from '../../utils/use-instant-transition-state.mjs';\nimport { canAnimate } from './utils/can-animate.mjs';\nimport { getFinalKeyframe } from './waapi/utils/get-final-keyframe.mjs';\n\nclass BaseAnimation {\n constructor({ autoplay = true, delay = 0, type = \"keyframes\", repeat = 0, repeatDelay = 0, repeatType = \"loop\", ...options }) {\n // Track whether the animation has been stopped. Stopped animations won't restart.\n this.isStopped = false;\n this.hasAttemptedResolve = false;\n this.options = {\n autoplay,\n delay,\n type,\n repeat,\n repeatDelay,\n repeatType,\n ...options,\n };\n this.updateFinishedPromise();\n }\n /**\n * A getter for resolved data. If keyframes are not yet resolved, accessing\n * this.resolved will synchronously flush all pending keyframe resolvers.\n * This is a deoptimisation, but at its worst still batches read/writes.\n */\n get resolved() {\n if (!this._resolved && !this.hasAttemptedResolve) {\n flushKeyframeResolvers();\n }\n return this._resolved;\n }\n /**\n * A method to be called when the keyframes resolver completes. This method\n * will check if its possible to run the animation and, if not, skip it.\n * Otherwise, it will call initPlayback on the implementing class.\n */\n onKeyframesResolved(keyframes, finalKeyframe) {\n this.hasAttemptedResolve = true;\n const { name, type, velocity, delay, onComplete, onUpdate, isGenerator, } = this.options;\n /**\n * If we can't animate this value with the resolved keyframes\n * then we should complete it immediately.\n */\n if (!isGenerator && !canAnimate(keyframes, name, type, velocity)) {\n // Finish immediately\n if (instantAnimationState.current || !delay) {\n onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(getFinalKeyframe(keyframes, this.options, finalKeyframe));\n onComplete === null || onComplete === void 0 ? void 0 : onComplete();\n this.resolveFinishedPromise();\n return;\n }\n // Finish after a delay\n else {\n this.options.duration = 0;\n }\n }\n const resolvedAnimation = this.initPlayback(keyframes, finalKeyframe);\n if (resolvedAnimation === false)\n return;\n this._resolved = {\n keyframes,\n finalKeyframe,\n ...resolvedAnimation,\n };\n this.onPostResolved();\n }\n onPostResolved() { }\n /**\n * Allows the returned animation to be awaited or promise-chained. Currently\n * resolves when the animation finishes at all but in a future update could/should\n * reject if its cancels.\n */\n then(resolve, reject) {\n return this.currentFinishedPromise.then(resolve, reject);\n }\n updateFinishedPromise() {\n this.currentFinishedPromise = new Promise((resolve) => {\n this.resolveFinishedPromise = resolve;\n });\n }\n}\n\nexport { BaseAnimation };\n","import { warning } from '../../../utils/errors.mjs';\nimport { isAnimatable } from '../../utils/is-animatable.mjs';\n\nfunction hasKeyframesChanged(keyframes) {\n const current = keyframes[0];\n if (keyframes.length === 1)\n return true;\n for (let i = 0; i < keyframes.length; i++) {\n if (keyframes[i] !== current)\n return true;\n }\n}\nfunction canAnimate(keyframes, name, type, velocity) {\n /**\n * Check if we're able to animate between the start and end keyframes,\n * and throw a warning if we're attempting to animate between one that's\n * animatable and another that isn't.\n */\n const originKeyframe = keyframes[0];\n if (originKeyframe === null)\n return false;\n const targetKeyframe = keyframes[keyframes.length - 1];\n const isOriginAnimatable = isAnimatable(originKeyframe, name);\n const isTargetAnimatable = isAnimatable(targetKeyframe, name);\n warning(isOriginAnimatable === isTargetAnimatable, `You are trying to animate ${name} from \"${originKeyframe}\" to \"${targetKeyframe}\". ${originKeyframe} is not an animatable value - to enable this animation set ${originKeyframe} to a value animatable to ${targetKeyframe} via the \\`style\\` property.`);\n // Always skip if any of these are true\n if (!isOriginAnimatable || !isTargetAnimatable) {\n return false;\n }\n return hasKeyframesChanged(keyframes) || (type === \"spring\" && velocity);\n}\n\nexport { canAnimate };\n","/*\n Convert velocity into velocity per second\n\n @param [number]: Unit per frame\n @param [number]: Frame duration in ms\n*/\nfunction velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\nexport { velocityPerSecond };\n","import { velocityPerSecond } from '../../../utils/velocity-per-second.mjs';\n\nconst velocitySampleDuration = 5; // ms\nfunction calcGeneratorVelocity(resolveValue, t, current) {\n const prevT = Math.max(t - velocitySampleDuration, 0);\n return velocityPerSecond(current - resolveValue(prevT), t - prevT);\n}\n\nexport { calcGeneratorVelocity };\n","import { warning } from '../../../utils/errors.mjs';\nimport { clamp } from '../../../utils/clamp.mjs';\nimport { secondsToMilliseconds, millisecondsToSeconds } from '../../../utils/time-conversion.mjs';\n\nconst safeMin = 0.001;\nconst minDuration = 0.01;\nconst maxDuration = 10.0;\nconst minDamping = 0.05;\nconst maxDamping = 1;\nfunction findSpring({ duration = 800, bounce = 0.25, velocity = 0, mass = 1, }) {\n let envelope;\n let derivative;\n warning(duration <= secondsToMilliseconds(maxDuration), \"Spring duration must be 10 seconds or less\");\n let dampingRatio = 1 - bounce;\n /**\n * Restrict dampingRatio and duration to within acceptable ranges.\n */\n dampingRatio = clamp(minDamping, maxDamping, dampingRatio);\n duration = clamp(minDuration, maxDuration, millisecondsToSeconds(duration));\n if (dampingRatio < 1) {\n /**\n * Underdamped spring\n */\n envelope = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const a = exponentialDecay - velocity;\n const b = calcAngularFreq(undampedFreq, dampingRatio);\n const c = Math.exp(-delta);\n return safeMin - (a / b) * c;\n };\n derivative = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const d = delta * velocity + velocity;\n const e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\n const f = Math.exp(-delta);\n const g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\n const factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\n return (factor * ((d - e) * f)) / g;\n };\n }\n else {\n /**\n * Critically-damped spring\n */\n envelope = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (undampedFreq - velocity) * duration + 1;\n return -safeMin + a * b;\n };\n derivative = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (velocity - undampedFreq) * (duration * duration);\n return a * b;\n };\n }\n const initialGuess = 5 / duration;\n const undampedFreq = approximateRoot(envelope, derivative, initialGuess);\n duration = secondsToMilliseconds(duration);\n if (isNaN(undampedFreq)) {\n return {\n stiffness: 100,\n damping: 10,\n duration,\n };\n }\n else {\n const stiffness = Math.pow(undampedFreq, 2) * mass;\n return {\n stiffness,\n damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),\n duration,\n };\n }\n}\nconst rootIterations = 12;\nfunction approximateRoot(envelope, derivative, initialGuess) {\n let result = initialGuess;\n for (let i = 1; i < rootIterations; i++) {\n result = result - envelope(result) / derivative(result);\n }\n return result;\n}\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\n return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\n}\n\nexport { calcAngularFreq, findSpring, maxDamping, maxDuration, minDamping, minDuration };\n","import { millisecondsToSeconds } from '../../../utils/time-conversion.mjs';\nimport { calcGeneratorVelocity } from '../utils/velocity.mjs';\nimport { findSpring, calcAngularFreq } from './find.mjs';\n\nconst durationKeys = [\"duration\", \"bounce\"];\nconst physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n return keys.some((key) => options[key] !== undefined);\n}\nfunction getSpringOptions(options) {\n let springOptions = {\n velocity: 0.0,\n stiffness: 100,\n damping: 10,\n mass: 1.0,\n isResolvedFromDuration: false,\n ...options,\n };\n // stiffness/damping/mass overrides duration/bounce\n if (!isSpringType(options, physicsKeys) &&\n isSpringType(options, durationKeys)) {\n const derived = findSpring(options);\n springOptions = {\n ...springOptions,\n ...derived,\n mass: 1.0,\n };\n springOptions.isResolvedFromDuration = true;\n }\n return springOptions;\n}\nfunction spring({ keyframes, restDelta, restSpeed, ...options }) {\n const origin = keyframes[0];\n const target = keyframes[keyframes.length - 1];\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = { done: false, value: origin };\n const { stiffness, damping, mass, duration, velocity, isResolvedFromDuration, } = getSpringOptions({\n ...options,\n velocity: -millisecondsToSeconds(options.velocity || 0),\n });\n const initialVelocity = velocity || 0.0;\n const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n const initialDelta = target - origin;\n const undampedAngularFreq = millisecondsToSeconds(Math.sqrt(stiffness / mass));\n /**\n * If we're working on a granular scale, use smaller defaults for determining\n * when the spring is finished.\n *\n * These defaults have been selected emprically based on what strikes a good\n * ratio between feeling good and finishing as soon as changes are imperceptible.\n */\n const isGranularScale = Math.abs(initialDelta) < 5;\n restSpeed || (restSpeed = isGranularScale ? 0.01 : 2);\n restDelta || (restDelta = isGranularScale ? 0.005 : 0.5);\n let resolveSpring;\n if (dampingRatio < 1) {\n const angularFreq = calcAngularFreq(undampedAngularFreq, dampingRatio);\n // Underdamped spring\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (target -\n envelope *\n (((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) /\n angularFreq) *\n Math.sin(angularFreq * t) +\n initialDelta * Math.cos(angularFreq * t)));\n };\n }\n else if (dampingRatio === 1) {\n // Critically damped spring\n resolveSpring = (t) => target -\n Math.exp(-undampedAngularFreq * t) *\n (initialDelta +\n (initialVelocity + undampedAngularFreq * initialDelta) * t);\n }\n else {\n // Overdamped spring\n const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n // When performing sinh or cosh values can hit Infinity so we cap them here\n const freqForT = Math.min(dampedAngularFreq * t, 300);\n return (target -\n (envelope *\n ((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) *\n Math.sinh(freqForT) +\n dampedAngularFreq *\n initialDelta *\n Math.cosh(freqForT))) /\n dampedAngularFreq);\n };\n }\n return {\n calculatedDuration: isResolvedFromDuration ? duration || null : null,\n next: (t) => {\n const current = resolveSpring(t);\n if (!isResolvedFromDuration) {\n let currentVelocity = initialVelocity;\n if (t !== 0) {\n /**\n * We only need to calculate velocity for under-damped springs\n * as over- and critically-damped springs can't overshoot, so\n * checking only for displacement is enough.\n */\n if (dampingRatio < 1) {\n currentVelocity = calcGeneratorVelocity(resolveSpring, t, current);\n }\n else {\n currentVelocity = 0;\n }\n }\n const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n const isBelowDisplacementThreshold = Math.abs(target - current) <= restDelta;\n state.done =\n isBelowVelocityThreshold && isBelowDisplacementThreshold;\n }\n else {\n state.done = t >= duration;\n }\n state.value = state.done ? target : current;\n return state;\n },\n };\n}\n\nexport { spring };\n","import { spring } from './spring/index.mjs';\nimport { calcGeneratorVelocity } from './utils/velocity.mjs';\n\nfunction inertia({ keyframes, velocity = 0.0, power = 0.8, timeConstant = 325, bounceDamping = 10, bounceStiffness = 500, modifyTarget, min, max, restDelta = 0.5, restSpeed, }) {\n const origin = keyframes[0];\n const state = {\n done: false,\n value: origin,\n };\n const isOutOfBounds = (v) => (min !== undefined && v < min) || (max !== undefined && v > max);\n const nearestBoundary = (v) => {\n if (min === undefined)\n return max;\n if (max === undefined)\n return min;\n return Math.abs(min - v) < Math.abs(max - v) ? min : max;\n };\n let amplitude = power * velocity;\n const ideal = origin + amplitude;\n const target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\n /**\n * If the target has changed we need to re-calculate the amplitude, otherwise\n * the animation will start from the wrong position.\n */\n if (target !== ideal)\n amplitude = target - origin;\n const calcDelta = (t) => -amplitude * Math.exp(-t / timeConstant);\n const calcLatest = (t) => target + calcDelta(t);\n const applyFriction = (t) => {\n const delta = calcDelta(t);\n const latest = calcLatest(t);\n state.done = Math.abs(delta) <= restDelta;\n state.value = state.done ? target : latest;\n };\n /**\n * Ideally this would resolve for t in a stateless way, we could\n * do that by always precalculating the animation but as we know\n * this will be done anyway we can assume that spring will\n * be discovered during that.\n */\n let timeReachedBoundary;\n let spring$1;\n const checkCatchBoundary = (t) => {\n if (!isOutOfBounds(state.value))\n return;\n timeReachedBoundary = t;\n spring$1 = spring({\n keyframes: [state.value, nearestBoundary(state.value)],\n velocity: calcGeneratorVelocity(calcLatest, t, state.value),\n damping: bounceDamping,\n stiffness: bounceStiffness,\n restDelta,\n restSpeed,\n });\n };\n checkCatchBoundary(0);\n return {\n calculatedDuration: null,\n next: (t) => {\n /**\n * We need to resolve the friction to figure out if we need a\n * spring but we don't want to do this twice per frame. So here\n * we flag if we updated for this frame and later if we did\n * we can skip doing it again.\n */\n let hasUpdatedFrame = false;\n if (!spring$1 && timeReachedBoundary === undefined) {\n hasUpdatedFrame = true;\n applyFriction(t);\n checkCatchBoundary(t);\n }\n /**\n * If we have a spring and the provided t is beyond the moment the friction\n * animation crossed the min/max boundary, use the spring.\n */\n if (timeReachedBoundary !== undefined && t >= timeReachedBoundary) {\n return spring$1.next(t - timeReachedBoundary);\n }\n else {\n !hasUpdatedFrame && applyFriction(t);\n return state;\n }\n },\n };\n}\n\nexport { inertia };\n","import { noop } from '../utils/noop.mjs';\n\n/*\n Bezier function generator\n This has been modified from Gaëtan Renaudeau's BezierEasing\n https://github.com/gre/bezier-easing/blob/master/src/index.js\n https://github.com/gre/bezier-easing/blob/master/LICENSE\n \n I've removed the newtonRaphsonIterate algo because in benchmarking it\n wasn't noticiably faster than binarySubdivision, indeed removing it\n usually improved times, depending on the curve.\n I also removed the lookup table, as for the added bundle size and loop we're\n only cutting ~4 or so subdivision iterations. I bumped the max iterations up\n to 12 to compensate and this still tended to be faster for no perceivable\n loss in accuracy.\n Usage\n const easeOut = cubicBezier(.17,.67,.83,.67);\n const x = easeOut(0.5); // returns 0.627...\n*/\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nconst calcBezier = (t, a1, a2) => (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) *\n t;\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 12;\nfunction binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = lowerBound + (upperBound - lowerBound) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - x;\n if (currentX > 0.0) {\n upperBound = currentT;\n }\n else {\n lowerBound = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n // If this is a linear gradient, return linear easing\n if (mX1 === mY1 && mX2 === mY2)\n return noop;\n const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);\n // If animation is at start/end, return t without easing\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\nexport { cubicBezier };\n","import { cubicBezier } from './cubic-bezier.mjs';\n\nconst easeIn = cubicBezier(0.42, 0, 1, 1);\nconst easeOut = cubicBezier(0, 0, 0.58, 1);\nconst easeInOut = cubicBezier(0.42, 0, 0.58, 1);\n\nexport { easeIn, easeInOut, easeOut };\n","// Accepts an easing function and returns a new one that outputs mirrored values for\n// the second half of the animation. Turns easeIn into easeInOut.\nconst mirrorEasing = (easing) => (p) => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\n\nexport { mirrorEasing };\n","// Accepts an easing function and returns a new one that outputs reversed values.\n// Turns easeIn into easeOut.\nconst reverseEasing = (easing) => (p) => 1 - easing(1 - p);\n\nexport { reverseEasing };\n","import { mirrorEasing } from './modifiers/mirror.mjs';\nimport { reverseEasing } from './modifiers/reverse.mjs';\n\nconst circIn = (p) => 1 - Math.sin(Math.acos(p));\nconst circOut = reverseEasing(circIn);\nconst circInOut = mirrorEasing(circIn);\n\nexport { circIn, circInOut, circOut };\n","import { cubicBezier } from './cubic-bezier.mjs';\nimport { mirrorEasing } from './modifiers/mirror.mjs';\nimport { reverseEasing } from './modifiers/reverse.mjs';\n\nconst backOut = cubicBezier(0.33, 1.53, 0.69, 0.99);\nconst backIn = reverseEasing(backOut);\nconst backInOut = mirrorEasing(backIn);\n\nexport { backIn, backInOut, backOut };\n","import { invariant } from '../../utils/errors.mjs';\nimport { cubicBezier } from '../cubic-bezier.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { easeIn, easeInOut, easeOut } from '../ease.mjs';\nimport { circIn, circInOut, circOut } from '../circ.mjs';\nimport { backIn, backInOut, backOut } from '../back.mjs';\nimport { anticipate } from '../anticipate.mjs';\n\nconst easingLookup = {\n linear: noop,\n easeIn,\n easeInOut,\n easeOut,\n circIn,\n circInOut,\n circOut,\n backIn,\n backInOut,\n backOut,\n anticipate,\n};\nconst easingDefinitionToFunction = (definition) => {\n if (Array.isArray(definition)) {\n // If cubic bezier definition, create bezier curve\n invariant(definition.length === 4, `Cubic bezier arrays must contain four numerical values.`);\n const [x1, y1, x2, y2] = definition;\n return cubicBezier(x1, y1, x2, y2);\n }\n else if (typeof definition === \"string\") {\n // Else lookup from table\n invariant(easingLookup[definition] !== undefined, `Invalid easing type '${definition}'`);\n return easingLookup[definition];\n }\n return definition;\n};\n\nexport { easingDefinitionToFunction };\n","import { backIn } from './back.mjs';\n\nconst anticipate = (p) => (p *= 2) < 1 ? 0.5 * backIn(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n\nexport { anticipate };\n","/*\n Progress within given range\n\n Given a lower limit and an upper limit, we return the progress\n (expressed as a number 0-1) represented by the given value, and\n limit that progress to within 0-1.\n\n @param [number]: Lower limit\n @param [number]: Upper limit\n @param [number]: Value to find progress within given range\n @return [number]: Progress of value within range as expressed 0-1\n*/\nconst progress = (from, to, value) => {\n const toFromDifference = to - from;\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\nexport { progress };\n","/*\n Value in range from progress\n\n Given a lower limit and an upper limit, we return the value within\n that range as expressed by progress (usually a number from 0 to 1)\n\n So progress = 0.5 would change\n\n from -------- to\n\n to\n\n from ---- to\n\n E.g. from = 10, to = 20, progress = 0.5 => 15\n\n @param [number]: Lower limit of range\n @param [number]: Upper limit of range\n @param [number]: The progress between lower and upper limits expressed 0-1\n @return [number]: Value as calculated from progress within range (not limited within range)\n*/\nconst mixNumber = (from, to, progress) => {\n return from + (to - from) * progress;\n};\n\nexport { mixNumber };\n","// Adapted from https://gist.github.com/mjackson/5311256\nfunction hueToRgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\nfunction hslaToRgba({ hue, saturation, lightness, alpha }) {\n hue /= 360;\n saturation /= 100;\n lightness /= 100;\n let red = 0;\n let green = 0;\n let blue = 0;\n if (!saturation) {\n red = green = blue = lightness;\n }\n else {\n const q = lightness < 0.5\n ? lightness * (1 + saturation)\n : lightness + saturation - lightness * saturation;\n const p = 2 * lightness - q;\n red = hueToRgb(p, q, hue + 1 / 3);\n green = hueToRgb(p, q, hue);\n blue = hueToRgb(p, q, hue - 1 / 3);\n }\n return {\n red: Math.round(red * 255),\n green: Math.round(green * 255),\n blue: Math.round(blue * 255),\n alpha,\n };\n}\n\nexport { hslaToRgba };\n","import { mixNumber } from './number.mjs';\nimport { invariant } from '../errors.mjs';\nimport { hslaToRgba } from '../hsla-to-rgba.mjs';\nimport { hex } from '../../value/types/color/hex.mjs';\nimport { rgba } from '../../value/types/color/rgba.mjs';\nimport { hsla } from '../../value/types/color/hsla.mjs';\n\n// Linear color space blending\n// Explained https://www.youtube.com/watch?v=LKnqECcg6Gw\n// Demonstrated http://codepen.io/osublake/pen/xGVVaN\nconst mixLinearColor = (from, to, v) => {\n const fromExpo = from * from;\n const expo = v * (to * to - fromExpo) + fromExpo;\n return expo < 0 ? 0 : Math.sqrt(expo);\n};\nconst colorTypes = [hex, rgba, hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nfunction asRGBA(color) {\n const type = getColorType(color);\n invariant(Boolean(type), `'${color}' is not an animatable color. Use the equivalent color code instead.`);\n let model = type.parse(color);\n if (type === hsla) {\n // TODO Remove this cast - needed since Framer Motion's stricter typing\n model = hslaToRgba(model);\n }\n return model;\n}\nconst mixColor = (from, to) => {\n const fromRGBA = asRGBA(from);\n const toRGBA = asRGBA(to);\n const blended = { ...fromRGBA };\n return (v) => {\n blended.red = mixLinearColor(fromRGBA.red, toRGBA.red, v);\n blended.green = mixLinearColor(fromRGBA.green, toRGBA.green, v);\n blended.blue = mixLinearColor(fromRGBA.blue, toRGBA.blue, v);\n blended.alpha = mixNumber(fromRGBA.alpha, toRGBA.alpha, v);\n return rgba.transform(blended);\n };\n};\n\nexport { mixColor, mixLinearColor };\n","import { mixNumber as mixNumber$1 } from './number.mjs';\nimport { mixColor } from './color.mjs';\nimport { pipe } from '../pipe.mjs';\nimport { warning } from '../errors.mjs';\nimport { color } from '../../value/types/color/index.mjs';\nimport { complex, analyseComplexValue } from '../../value/types/complex/index.mjs';\nimport { isCSSVariableToken } from '../../render/dom/utils/is-css-variable.mjs';\n\nfunction mixImmediate(a, b) {\n return (p) => (p > 0 ? b : a);\n}\nfunction mixNumber(a, b) {\n return (p) => mixNumber$1(a, b, p);\n}\nfunction getMixer(a) {\n if (typeof a === \"number\") {\n return mixNumber;\n }\n else if (typeof a === \"string\") {\n return isCSSVariableToken(a)\n ? mixImmediate\n : color.test(a)\n ? mixColor\n : mixComplex;\n }\n else if (Array.isArray(a)) {\n return mixArray;\n }\n else if (typeof a === \"object\") {\n return color.test(a) ? mixColor : mixObject;\n }\n return mixImmediate;\n}\nfunction mixArray(a, b) {\n const output = [...a];\n const numValues = output.length;\n const blendValue = a.map((v, i) => getMixer(v)(v, b[i]));\n return (p) => {\n for (let i = 0; i < numValues; i++) {\n output[i] = blendValue[i](p);\n }\n return output;\n };\n}\nfunction mixObject(a, b) {\n const output = { ...a, ...b };\n const blendValue = {};\n for (const key in output) {\n if (a[key] !== undefined && b[key] !== undefined) {\n blendValue[key] = getMixer(a[key])(a[key], b[key]);\n }\n }\n return (v) => {\n for (const key in blendValue) {\n output[key] = blendValue[key](v);\n }\n return output;\n };\n}\nfunction matchOrder(origin, target) {\n var _a;\n const orderedOrigin = [];\n const pointers = { color: 0, var: 0, number: 0 };\n for (let i = 0; i < target.values.length; i++) {\n const type = target.types[i];\n const originIndex = origin.indexes[type][pointers[type]];\n const originValue = (_a = origin.values[originIndex]) !== null && _a !== void 0 ? _a : 0;\n orderedOrigin[i] = originValue;\n pointers[type]++;\n }\n return orderedOrigin;\n}\nconst mixComplex = (origin, target) => {\n const template = complex.createTransformer(target);\n const originStats = analyseComplexValue(origin);\n const targetStats = analyseComplexValue(target);\n const canInterpolate = originStats.indexes.var.length === targetStats.indexes.var.length &&\n originStats.indexes.color.length === targetStats.indexes.color.length &&\n originStats.indexes.number.length >= targetStats.indexes.number.length;\n if (canInterpolate) {\n return pipe(mixArray(matchOrder(originStats, targetStats), targetStats.values), template);\n }\n else {\n warning(true, `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`);\n return mixImmediate(origin, target);\n }\n};\n\nexport { getMixer, mixArray, mixComplex, mixObject };\n","import { getMixer } from './complex.mjs';\nimport { mixNumber } from './number.mjs';\n\nfunction mix(from, to, p) {\n if (typeof from === \"number\" &&\n typeof to === \"number\" &&\n typeof p === \"number\") {\n return mixNumber(from, to, p);\n }\n const mixer = getMixer(from);\n return mixer(from, to);\n}\n\nexport { mix };\n","import { invariant } from './errors.mjs';\nimport { clamp } from './clamp.mjs';\nimport { pipe } from './pipe.mjs';\nimport { progress } from './progress.mjs';\nimport { noop } from './noop.mjs';\nimport { mix } from './mix/index.mjs';\n\nfunction createMixers(output, ease, customMixer) {\n const mixers = [];\n const mixerFactory = customMixer || mix;\n const numMixers = output.length - 1;\n for (let i = 0; i < numMixers; i++) {\n let mixer = mixerFactory(output[i], output[i + 1]);\n if (ease) {\n const easingFunction = Array.isArray(ease) ? ease[i] || noop : ease;\n mixer = pipe(easingFunction, mixer);\n }\n mixers.push(mixer);\n }\n return mixers;\n}\n/**\n * Create a function that maps from a numerical input array to a generic output array.\n *\n * Accepts:\n * - Numbers\n * - Colors (hex, hsl, hsla, rgb, rgba)\n * - Complex (combinations of one or more numbers or strings)\n *\n * ```jsx\n * const mixColor = interpolate([0, 1], ['#fff', '#000'])\n *\n * mixColor(0.5) // 'rgba(128, 128, 128, 1)'\n * ```\n *\n * TODO Revist this approach once we've moved to data models for values,\n * probably not needed to pregenerate mixer functions.\n *\n * @public\n */\nfunction interpolate(input, output, { clamp: isClamp = true, ease, mixer } = {}) {\n const inputLength = input.length;\n invariant(inputLength === output.length, \"Both input and output ranges must be the same length\");\n /**\n * If we're only provided a single input, we can just make a function\n * that returns the output.\n */\n if (inputLength === 1)\n return () => output[0];\n if (inputLength === 2 && input[0] === input[1])\n return () => output[1];\n // If input runs highest -> lowest, reverse both arrays\n if (input[0] > input[inputLength - 1]) {\n input = [...input].reverse();\n output = [...output].reverse();\n }\n const mixers = createMixers(output, ease, mixer);\n const numMixers = mixers.length;\n const interpolator = (v) => {\n let i = 0;\n if (numMixers > 1) {\n for (; i < input.length - 2; i++) {\n if (v < input[i + 1])\n break;\n }\n }\n const progressInRange = progress(input[i], input[i + 1], v);\n return mixers[i](progressInRange);\n };\n return isClamp\n ? (v) => interpolator(clamp(input[0], input[inputLength - 1], v))\n : interpolator;\n}\n\nexport { interpolate };\n","import { fillOffset } from './fill.mjs';\n\nfunction defaultOffset(arr) {\n const offset = [0];\n fillOffset(offset, arr.length - 1);\n return offset;\n}\n\nexport { defaultOffset };\n","import { mixNumber } from '../mix/number.mjs';\nimport { progress } from '../progress.mjs';\n\nfunction fillOffset(offset, remaining) {\n const min = offset[offset.length - 1];\n for (let i = 1; i <= remaining; i++) {\n const offsetProgress = progress(0, remaining, i);\n offset.push(mixNumber(min, 1, offsetProgress));\n }\n}\n\nexport { fillOffset };\n","import { easeInOut } from '../../easing/ease.mjs';\nimport { isEasingArray } from '../../easing/utils/is-easing-array.mjs';\nimport { easingDefinitionToFunction } from '../../easing/utils/map.mjs';\nimport { interpolate } from '../../utils/interpolate.mjs';\nimport { defaultOffset } from '../../utils/offsets/default.mjs';\nimport { convertOffsetToTimes } from '../../utils/offsets/time.mjs';\n\nfunction defaultEasing(values, easing) {\n return values.map(() => easing || easeInOut).splice(0, values.length - 1);\n}\nfunction keyframes({ duration = 300, keyframes: keyframeValues, times, ease = \"easeInOut\", }) {\n /**\n * Easing functions can be externally defined as strings. Here we convert them\n * into actual functions.\n */\n const easingFunctions = isEasingArray(ease)\n ? ease.map(easingDefinitionToFunction)\n : easingDefinitionToFunction(ease);\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = {\n done: false,\n value: keyframeValues[0],\n };\n /**\n * Create a times array based on the provided 0-1 offsets\n */\n const absoluteTimes = convertOffsetToTimes(\n // Only use the provided offsets if they're the correct length\n // TODO Maybe we should warn here if there's a length mismatch\n times && times.length === keyframeValues.length\n ? times\n : defaultOffset(keyframeValues), duration);\n const mapTimeToKeyframe = interpolate(absoluteTimes, keyframeValues, {\n ease: Array.isArray(easingFunctions)\n ? easingFunctions\n : defaultEasing(keyframeValues, easingFunctions),\n });\n return {\n calculatedDuration: duration,\n next: (t) => {\n state.value = mapTimeToKeyframe(t);\n state.done = t >= duration;\n return state;\n },\n };\n}\n\nexport { defaultEasing, keyframes };\n","const isEasingArray = (ease) => {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\nexport { isEasingArray };\n","function convertOffsetToTimes(offset, duration) {\n return offset.map((o) => o * duration);\n}\n\nexport { convertOffsetToTimes };\n","import { time } from '../../../frameloop/sync-time.mjs';\nimport { frame, cancelFrame, frameData } from '../../../frameloop/frame.mjs';\n\nconst frameloopDriver = (update) => {\n const passTimestamp = ({ timestamp }) => update(timestamp);\n return {\n start: () => frame.update(passTimestamp, true),\n stop: () => cancelFrame(passTimestamp),\n /**\n * If we're processing this frame we can use the\n * framelocked timestamp to keep things in sync.\n */\n now: () => (frameData.isProcessing ? frameData.timestamp : time.now()),\n };\n};\n\nexport { frameloopDriver };\n","import { KeyframeResolver } from '../../render/utils/KeyframesResolver.mjs';\nimport { spring } from '../generators/spring/index.mjs';\nimport { inertia } from '../generators/inertia.mjs';\nimport { keyframes } from '../generators/keyframes.mjs';\nimport { BaseAnimation } from './BaseAnimation.mjs';\nimport { pipe } from '../../utils/pipe.mjs';\nimport { mix } from '../../utils/mix/index.mjs';\nimport { calcGeneratorDuration } from '../generators/utils/calc-duration.mjs';\nimport { millisecondsToSeconds, secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { clamp } from '../../utils/clamp.mjs';\nimport { invariant } from '../../utils/errors.mjs';\nimport { frameloopDriver } from './drivers/driver-frameloop.mjs';\nimport { getFinalKeyframe } from './waapi/utils/get-final-keyframe.mjs';\n\nconst generators = {\n decay: inertia,\n inertia,\n tween: keyframes,\n keyframes: keyframes,\n spring,\n};\nconst percentToProgress = (percent) => percent / 100;\n/**\n * Animation that runs on the main thread. Designed to be WAAPI-spec in the subset of\n * features we expose publically. Mostly the compatibility is to ensure visual identity\n * between both WAAPI and main thread animations.\n */\nclass MainThreadAnimation extends BaseAnimation {\n constructor({ KeyframeResolver: KeyframeResolver$1 = KeyframeResolver, ...options }) {\n super(options);\n /**\n * The time at which the animation was paused.\n */\n this.holdTime = null;\n /**\n * The time at which the animation was started.\n */\n this.startTime = null;\n /**\n * The time at which the animation was cancelled.\n */\n this.cancelTime = null;\n /**\n * The current time of the animation.\n */\n this.currentTime = 0;\n /**\n * Playback speed as a factor. 0 would be stopped, -1 reverse and 2 double speed.\n */\n this.playbackSpeed = 1;\n /**\n * The state of the animation to apply when the animation is resolved. This\n * allows calls to the public API to control the animation before it is resolved,\n * without us having to resolve it first.\n */\n this.pendingPlayState = \"running\";\n this.state = \"idle\";\n const { name, motionValue, keyframes } = this.options;\n const onResolved = (resolvedKeyframes, finalKeyframe) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe);\n if (name && motionValue && motionValue.owner) {\n this.resolver = motionValue.owner.resolveKeyframes(keyframes, onResolved, name, motionValue);\n }\n else {\n this.resolver = new KeyframeResolver$1(keyframes, onResolved, name, motionValue);\n }\n this.resolver.scheduleResolve();\n }\n initPlayback(keyframes$1) {\n const { type = \"keyframes\", repeat = 0, repeatDelay = 0, repeatType, velocity = 0, } = this.options;\n const generatorFactory = generators[type] || keyframes;\n /**\n * If our generator doesn't support mixing numbers, we need to replace keyframes with\n * [0, 100] and then make a function that maps that to the actual keyframes.\n *\n * 100 is chosen instead of 1 as it works nicer with spring animations.\n */\n let mapPercentToKeyframes;\n let mirroredGenerator;\n if (generatorFactory !== keyframes &&\n typeof keyframes$1[0] !== \"number\") {\n if (process.env.NODE_ENV !== \"production\") {\n invariant(keyframes$1.length === 2, `Only two keyframes currently supported with spring and inertia animations. Trying to animate ${keyframes$1}`);\n }\n mapPercentToKeyframes = pipe(percentToProgress, mix(keyframes$1[0], keyframes$1[1]));\n keyframes$1 = [0, 100];\n }\n const generator = generatorFactory({ ...this.options, keyframes: keyframes$1 });\n /**\n * If we have a mirror repeat type we need to create a second generator that outputs the\n * mirrored (not reversed) animation and later ping pong between the two generators.\n */\n if (repeatType === \"mirror\") {\n mirroredGenerator = generatorFactory({\n ...this.options,\n keyframes: [...keyframes$1].reverse(),\n velocity: -velocity,\n });\n }\n /**\n * If duration is undefined and we have repeat options,\n * we need to calculate a duration from the generator.\n *\n * We set it to the generator itself to cache the duration.\n * Any timeline resolver will need to have already precalculated\n * the duration by this step.\n */\n if (generator.calculatedDuration === null) {\n generator.calculatedDuration = calcGeneratorDuration(generator);\n }\n const { calculatedDuration } = generator;\n const resolvedDuration = calculatedDuration + repeatDelay;\n const totalDuration = resolvedDuration * (repeat + 1) - repeatDelay;\n return {\n generator,\n mirroredGenerator,\n mapPercentToKeyframes,\n calculatedDuration,\n resolvedDuration,\n totalDuration,\n };\n }\n onPostResolved() {\n const { autoplay = true } = this.options;\n this.play();\n if (this.pendingPlayState === \"paused\" || !autoplay) {\n this.pause();\n }\n else {\n this.state = this.pendingPlayState;\n }\n }\n tick(timestamp, sample = false) {\n const { resolved } = this;\n // If the animations has failed to resolve, return the final keyframe.\n if (!resolved) {\n const { keyframes } = this.options;\n return { done: true, value: keyframes[keyframes.length - 1] };\n }\n const { finalKeyframe, generator, mirroredGenerator, mapPercentToKeyframes, keyframes, calculatedDuration, totalDuration, resolvedDuration, } = resolved;\n if (this.startTime === null)\n return generator.next(0);\n const { delay, repeat, repeatType, repeatDelay, onUpdate } = this.options;\n /**\n * requestAnimationFrame timestamps can come through as lower than\n * the startTime as set by performance.now(). Here we prevent this,\n * though in the future it could be possible to make setting startTime\n * a pending operation that gets resolved here.\n */\n if (this.speed > 0) {\n this.startTime = Math.min(this.startTime, timestamp);\n }\n else if (this.speed < 0) {\n this.startTime = Math.min(timestamp - totalDuration / this.speed, this.startTime);\n }\n // Update currentTime\n if (sample) {\n this.currentTime = timestamp;\n }\n else if (this.holdTime !== null) {\n this.currentTime = this.holdTime;\n }\n else {\n // Rounding the time because floating point arithmetic is not always accurate, e.g. 3000.367 - 1000.367 =\n // 2000.0000000000002. This is a problem when we are comparing the currentTime with the duration, for\n // example.\n this.currentTime =\n Math.round(timestamp - this.startTime) * this.speed;\n }\n // Rebase on delay\n const timeWithoutDelay = this.currentTime - delay * (this.speed >= 0 ? 1 : -1);\n const isInDelayPhase = this.speed >= 0\n ? timeWithoutDelay < 0\n : timeWithoutDelay > totalDuration;\n this.currentTime = Math.max(timeWithoutDelay, 0);\n // If this animation has finished, set the current time to the total duration.\n if (this.state === \"finished\" && this.holdTime === null) {\n this.currentTime = totalDuration;\n }\n let elapsed = this.currentTime;\n let frameGenerator = generator;\n if (repeat) {\n /**\n * Get the current progress (0-1) of the animation. If t is >\n * than duration we'll get values like 2.5 (midway through the\n * third iteration)\n */\n const progress = Math.min(this.currentTime, totalDuration) / resolvedDuration;\n /**\n * Get the current iteration (0 indexed). For instance the floor of\n * 2.5 is 2.\n */\n let currentIteration = Math.floor(progress);\n /**\n * Get the current progress of the iteration by taking the remainder\n * so 2.5 is 0.5 through iteration 2\n */\n let iterationProgress = progress % 1.0;\n /**\n * If iteration progress is 1 we count that as the end\n * of the previous iteration.\n */\n if (!iterationProgress && progress >= 1) {\n iterationProgress = 1;\n }\n iterationProgress === 1 && currentIteration--;\n currentIteration = Math.min(currentIteration, repeat + 1);\n /**\n * Reverse progress if we're not running in \"normal\" direction\n */\n const isOddIteration = Boolean(currentIteration % 2);\n if (isOddIteration) {\n if (repeatType === \"reverse\") {\n iterationProgress = 1 - iterationProgress;\n if (repeatDelay) {\n iterationProgress -= repeatDelay / resolvedDuration;\n }\n }\n else if (repeatType === \"mirror\") {\n frameGenerator = mirroredGenerator;\n }\n }\n elapsed = clamp(0, 1, iterationProgress) * resolvedDuration;\n }\n /**\n * If we're in negative time, set state as the initial keyframe.\n * This prevents delay: x, duration: 0 animations from finishing\n * instantly.\n */\n const state = isInDelayPhase\n ? { done: false, value: keyframes[0] }\n : frameGenerator.next(elapsed);\n if (mapPercentToKeyframes) {\n state.value = mapPercentToKeyframes(state.value);\n }\n let { done } = state;\n if (!isInDelayPhase && calculatedDuration !== null) {\n done =\n this.speed >= 0\n ? this.currentTime >= totalDuration\n : this.currentTime <= 0;\n }\n const isAnimationFinished = this.holdTime === null &&\n (this.state === \"finished\" || (this.state === \"running\" && done));\n if (isAnimationFinished && finalKeyframe !== undefined) {\n state.value = getFinalKeyframe(keyframes, this.options, finalKeyframe);\n }\n if (onUpdate) {\n onUpdate(state.value);\n }\n if (isAnimationFinished) {\n this.finish();\n }\n return state;\n }\n get duration() {\n const { resolved } = this;\n return resolved ? millisecondsToSeconds(resolved.calculatedDuration) : 0;\n }\n get time() {\n return millisecondsToSeconds(this.currentTime);\n }\n set time(newTime) {\n newTime = secondsToMilliseconds(newTime);\n this.currentTime = newTime;\n if (this.holdTime !== null || this.speed === 0) {\n this.holdTime = newTime;\n }\n else if (this.driver) {\n this.startTime = this.driver.now() - newTime / this.speed;\n }\n }\n get speed() {\n return this.playbackSpeed;\n }\n set speed(newSpeed) {\n const hasChanged = this.playbackSpeed !== newSpeed;\n this.playbackSpeed = newSpeed;\n if (hasChanged) {\n this.time = millisecondsToSeconds(this.currentTime);\n }\n }\n play() {\n if (!this.resolver.isScheduled) {\n this.resolver.resume();\n }\n if (!this._resolved) {\n this.pendingPlayState = \"running\";\n return;\n }\n if (this.isStopped)\n return;\n const { driver = frameloopDriver, onPlay } = this.options;\n if (!this.driver) {\n this.driver = driver((timestamp) => this.tick(timestamp));\n }\n onPlay && onPlay();\n const now = this.driver.now();\n if (this.holdTime !== null) {\n this.startTime = now - this.holdTime;\n }\n else if (!this.startTime || this.state === \"finished\") {\n this.startTime = now;\n }\n if (this.state === \"finished\") {\n this.updateFinishedPromise();\n }\n this.cancelTime = this.startTime;\n this.holdTime = null;\n /**\n * Set playState to running only after we've used it in\n * the previous logic.\n */\n this.state = \"running\";\n this.driver.start();\n }\n pause() {\n var _a;\n if (!this._resolved) {\n this.pendingPlayState = \"paused\";\n return;\n }\n this.state = \"paused\";\n this.holdTime = (_a = this.currentTime) !== null && _a !== void 0 ? _a : 0;\n }\n stop() {\n this.resolver.cancel();\n this.isStopped = true;\n if (this.state === \"idle\")\n return;\n this.teardown();\n const { onStop } = this.options;\n onStop && onStop();\n }\n complete() {\n if (this.state !== \"running\") {\n this.play();\n }\n this.pendingPlayState = this.state = \"finished\";\n this.holdTime = null;\n }\n finish() {\n this.teardown();\n this.state = \"finished\";\n const { onComplete } = this.options;\n onComplete && onComplete();\n }\n cancel() {\n if (this.cancelTime !== null) {\n this.tick(this.cancelTime);\n }\n this.teardown();\n this.updateFinishedPromise();\n }\n teardown() {\n this.state = \"idle\";\n this.stopDriver();\n this.resolveFinishedPromise();\n this.updateFinishedPromise();\n this.startTime = this.cancelTime = null;\n this.resolver.cancel();\n }\n stopDriver() {\n if (!this.driver)\n return;\n this.driver.stop();\n this.driver = undefined;\n }\n sample(time) {\n this.startTime = 0;\n return this.tick(time, true);\n }\n}\n// Legacy interface\nfunction animateValue(options) {\n return new MainThreadAnimation(options);\n}\n\nexport { MainThreadAnimation, animateValue };\n","/**\n * Implement a practical max duration for keyframe generation\n * to prevent infinite loops\n */\nconst maxGeneratorDuration = 20000;\nfunction calcGeneratorDuration(generator) {\n let duration = 0;\n const timeStep = 50;\n let state = generator.next(duration);\n while (!state.done && duration < maxGeneratorDuration) {\n duration += timeStep;\n state = generator.next(duration);\n }\n return duration >= maxGeneratorDuration ? Infinity : duration;\n}\n\nexport { calcGeneratorDuration, maxGeneratorDuration };\n","const isBezierDefinition = (easing) => Array.isArray(easing) && typeof easing[0] === \"number\";\n\nexport { isBezierDefinition };\n","import { isBezierDefinition } from '../../../easing/utils/is-bezier-definition.mjs';\n\nfunction isWaapiSupportedEasing(easing) {\n return Boolean(!easing ||\n (typeof easing === \"string\" && supportedWaapiEasing[easing]) ||\n isBezierDefinition(easing) ||\n (Array.isArray(easing) && easing.every(isWaapiSupportedEasing)));\n}\nconst cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\nconst supportedWaapiEasing = {\n linear: \"linear\",\n ease: \"ease\",\n easeIn: \"ease-in\",\n easeOut: \"ease-out\",\n easeInOut: \"ease-in-out\",\n circIn: cubicBezierAsString([0, 0.65, 0.55, 1]),\n circOut: cubicBezierAsString([0.55, 0, 1, 0.45]),\n backIn: cubicBezierAsString([0.31, 0.01, 0.66, -0.59]),\n backOut: cubicBezierAsString([0.33, 1.53, 0.69, 0.99]),\n};\nfunction mapEasingToNativeEasing(easing) {\n if (!easing)\n return undefined;\n return isBezierDefinition(easing)\n ? cubicBezierAsString(easing)\n : Array.isArray(easing)\n ? easing.map(mapEasingToNativeEasing)\n : supportedWaapiEasing[easing];\n}\n\nexport { cubicBezierAsString, isWaapiSupportedEasing, mapEasingToNativeEasing, supportedWaapiEasing };\n","import { time } from '../../frameloop/sync-time.mjs';\nimport { DOMKeyframesResolver } from '../../render/dom/DOMKeyframesResolver.mjs';\nimport { memo } from '../../utils/memo.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { millisecondsToSeconds, secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { BaseAnimation } from './BaseAnimation.mjs';\nimport { MainThreadAnimation } from './MainThreadAnimation.mjs';\nimport { animateStyle } from './waapi/index.mjs';\nimport { isWaapiSupportedEasing } from './waapi/easing.mjs';\nimport { getFinalKeyframe } from './waapi/utils/get-final-keyframe.mjs';\n\nconst supportsWaapi = memo(() => Object.hasOwnProperty.call(Element.prototype, \"animate\"));\n/**\n * A list of values that can be hardware-accelerated.\n */\nconst acceleratedValues = new Set([\n \"opacity\",\n \"clipPath\",\n \"filter\",\n \"transform\",\n // TODO: Can be accelerated but currently disabled until https://issues.chromium.org/issues/41491098 is resolved\n // or until we implement support for linear() easing.\n // \"background-color\"\n]);\n/**\n * 10ms is chosen here as it strikes a balance between smooth\n * results (more than one keyframe per frame at 60fps) and\n * keyframe quantity.\n */\nconst sampleDelta = 10; //ms\n/**\n * Implement a practical max duration for keyframe generation\n * to prevent infinite loops\n */\nconst maxDuration = 20000;\n/**\n * Check if an animation can run natively via WAAPI or requires pregenerated keyframes.\n * WAAPI doesn't support spring or function easings so we run these as JS animation before\n * handing off.\n */\nfunction requiresPregeneratedKeyframes(options) {\n return (options.type === \"spring\" ||\n options.name === \"backgroundColor\" ||\n !isWaapiSupportedEasing(options.ease));\n}\nfunction pregenerateKeyframes(keyframes, options) {\n /**\n * Create a main-thread animation to pregenerate keyframes.\n * We sample this at regular intervals to generate keyframes that we then\n * linearly interpolate between.\n */\n const sampleAnimation = new MainThreadAnimation({\n ...options,\n keyframes,\n repeat: 0,\n delay: 0,\n isGenerator: true,\n });\n let state = { done: false, value: keyframes[0] };\n const pregeneratedKeyframes = [];\n /**\n * Bail after 20 seconds of pre-generated keyframes as it's likely\n * we're heading for an infinite loop.\n */\n let t = 0;\n while (!state.done && t < maxDuration) {\n state = sampleAnimation.sample(t);\n pregeneratedKeyframes.push(state.value);\n t += sampleDelta;\n }\n return {\n times: undefined,\n keyframes: pregeneratedKeyframes,\n duration: t - sampleDelta,\n ease: \"linear\",\n };\n}\nclass AcceleratedAnimation extends BaseAnimation {\n constructor(options) {\n super(options);\n const { name, motionValue, keyframes } = this.options;\n this.resolver = new DOMKeyframesResolver(keyframes, (resolvedKeyframes, finalKeyframe) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe), name, motionValue);\n this.resolver.scheduleResolve();\n }\n initPlayback(keyframes, finalKeyframe) {\n var _a;\n let { duration = 300, times, ease, type, motionValue, name, } = this.options;\n /**\n * If element has since been unmounted, return false to indicate\n * the animation failed to initialised.\n */\n if (!((_a = motionValue.owner) === null || _a === void 0 ? void 0 : _a.current)) {\n return false;\n }\n /**\n * If this animation needs pre-generated keyframes then generate.\n */\n if (requiresPregeneratedKeyframes(this.options)) {\n const { onComplete, onUpdate, motionValue, ...options } = this.options;\n const pregeneratedAnimation = pregenerateKeyframes(keyframes, options);\n keyframes = pregeneratedAnimation.keyframes;\n // If this is a very short animation, ensure we have\n // at least two keyframes to animate between as older browsers\n // can't animate between a single keyframe.\n if (keyframes.length === 1) {\n keyframes[1] = keyframes[0];\n }\n duration = pregeneratedAnimation.duration;\n times = pregeneratedAnimation.times;\n ease = pregeneratedAnimation.ease;\n type = \"keyframes\";\n }\n const animation = animateStyle(motionValue.owner.current, name, keyframes, { ...this.options, duration, times, ease });\n // Override the browser calculated startTime with one synchronised to other JS\n // and WAAPI animations starting this event loop.\n animation.startTime = time.now();\n if (this.pendingTimeline) {\n animation.timeline = this.pendingTimeline;\n this.pendingTimeline = undefined;\n }\n else {\n /**\n * Prefer the `onfinish` prop as it's more widely supported than\n * the `finished` promise.\n *\n * Here, we synchronously set the provided MotionValue to the end\n * keyframe. If we didn't, when the WAAPI animation is finished it would\n * be removed from the element which would then revert to its old styles.\n */\n animation.onfinish = () => {\n const { onComplete } = this.options;\n motionValue.set(getFinalKeyframe(keyframes, this.options, finalKeyframe));\n onComplete && onComplete();\n this.cancel();\n this.resolveFinishedPromise();\n };\n }\n return {\n animation,\n duration,\n times,\n type,\n ease,\n keyframes: keyframes,\n };\n }\n get duration() {\n const { resolved } = this;\n if (!resolved)\n return 0;\n const { duration } = resolved;\n return millisecondsToSeconds(duration);\n }\n get time() {\n const { resolved } = this;\n if (!resolved)\n return 0;\n const { animation } = resolved;\n return millisecondsToSeconds(animation.currentTime || 0);\n }\n set time(newTime) {\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n animation.currentTime = secondsToMilliseconds(newTime);\n }\n get speed() {\n const { resolved } = this;\n if (!resolved)\n return 1;\n const { animation } = resolved;\n return animation.playbackRate;\n }\n set speed(newSpeed) {\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n animation.playbackRate = newSpeed;\n }\n get state() {\n const { resolved } = this;\n if (!resolved)\n return \"idle\";\n const { animation } = resolved;\n return animation.playState;\n }\n /**\n * Replace the default DocumentTimeline with another AnimationTimeline.\n * Currently used for scroll animations.\n */\n attachTimeline(timeline) {\n if (!this._resolved) {\n this.pendingTimeline = timeline;\n }\n else {\n const { resolved } = this;\n if (!resolved)\n return noop;\n const { animation } = resolved;\n animation.timeline = timeline;\n animation.onfinish = null;\n }\n return noop;\n }\n play() {\n if (this.isStopped)\n return;\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n if (animation.playState === \"finished\") {\n this.updateFinishedPromise();\n }\n animation.play();\n }\n pause() {\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n animation.pause();\n }\n stop() {\n this.resolver.cancel();\n this.isStopped = true;\n if (this.state === \"idle\")\n return;\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation, keyframes, duration, type, ease, times } = resolved;\n if (animation.playState === \"idle\" ||\n animation.playState === \"finished\") {\n return;\n }\n /**\n * WAAPI doesn't natively have any interruption capabilities.\n *\n * Rather than read commited styles back out of the DOM, we can\n * create a renderless JS animation and sample it twice to calculate\n * its current value, \"previous\" value, and therefore allow\n * Motion to calculate velocity for any subsequent animation.\n */\n if (this.time) {\n const { motionValue, onUpdate, onComplete, ...options } = this.options;\n const sampleAnimation = new MainThreadAnimation({\n ...options,\n keyframes,\n duration,\n type,\n ease,\n times,\n isGenerator: true,\n });\n const sampleTime = secondsToMilliseconds(this.time);\n motionValue.setWithVelocity(sampleAnimation.sample(sampleTime - sampleDelta).value, sampleAnimation.sample(sampleTime).value, sampleDelta);\n }\n this.cancel();\n }\n complete() {\n const { resolved } = this;\n if (!resolved)\n return;\n resolved.animation.finish();\n }\n cancel() {\n const { resolved } = this;\n if (!resolved)\n return;\n resolved.animation.cancel();\n }\n static supports(options) {\n const { motionValue, name, repeatDelay, repeatType, damping, type } = options;\n return (supportsWaapi() &&\n name &&\n acceleratedValues.has(name) &&\n motionValue &&\n motionValue.owner &&\n motionValue.owner.current instanceof HTMLElement &&\n /**\n * If we're outputting values to onUpdate then we can't use WAAPI as there's\n * no way to read the value from WAAPI every frame.\n */\n !motionValue.owner.getProps().onUpdate &&\n !repeatDelay &&\n repeatType !== \"mirror\" &&\n damping !== 0 &&\n type !== \"inertia\");\n }\n}\n\nexport { AcceleratedAnimation };\n","function memo(callback) {\n let result;\n return () => {\n if (result === undefined)\n result = callback();\n return result;\n };\n}\n\nexport { memo };\n","import { mapEasingToNativeEasing } from './easing.mjs';\n\nfunction animateStyle(element, valueName, keyframes, { delay = 0, duration = 300, repeat = 0, repeatType = \"loop\", ease, times, } = {}) {\n const keyframeOptions = { [valueName]: keyframes };\n if (times)\n keyframeOptions.offset = times;\n const easing = mapEasingToNativeEasing(ease);\n /**\n * If this is an easing array, apply to keyframes, not animation as a whole\n */\n if (Array.isArray(easing))\n keyframeOptions.easing = easing;\n return element.animate(keyframeOptions, {\n delay,\n duration,\n easing: !Array.isArray(easing) ? easing : \"linear\",\n fill: \"both\",\n iterations: repeat + 1,\n direction: repeatType === \"reverse\" ? \"alternate\" : \"normal\",\n });\n}\n\nexport { animateStyle };\n","import { secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { getDefaultTransition } from '../utils/default-transitions.mjs';\nimport { getValueTransition, isTransitionDefined } from '../utils/transitions.mjs';\nimport { MotionGlobalConfig } from '../../utils/GlobalConfig.mjs';\nimport { instantAnimationState } from '../../utils/use-instant-transition-state.mjs';\nimport { getFinalKeyframe } from '../animators/waapi/utils/get-final-keyframe.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\nimport { AcceleratedAnimation } from '../animators/AcceleratedAnimation.mjs';\nimport { MainThreadAnimation } from '../animators/MainThreadAnimation.mjs';\n\nconst animateMotionValue = (name, value, target, transition = {}, element, isHandoff) => (onComplete) => {\n const valueTransition = getValueTransition(transition, name) || {};\n /**\n * Most transition values are currently completely overwritten by value-specific\n * transitions. In the future it'd be nicer to blend these transitions. But for now\n * delay actually does inherit from the root transition if not value-specific.\n */\n const delay = valueTransition.delay || transition.delay || 0;\n /**\n * Elapsed isn't a public transition option but can be passed through from\n * optimized appear effects in milliseconds.\n */\n let { elapsed = 0 } = transition;\n elapsed = elapsed - secondsToMilliseconds(delay);\n let options = {\n keyframes: Array.isArray(target) ? target : [null, target],\n ease: \"easeOut\",\n velocity: value.getVelocity(),\n ...valueTransition,\n delay: -elapsed,\n onUpdate: (v) => {\n value.set(v);\n valueTransition.onUpdate && valueTransition.onUpdate(v);\n },\n onComplete: () => {\n onComplete();\n valueTransition.onComplete && valueTransition.onComplete();\n },\n name,\n motionValue: value,\n element: isHandoff ? undefined : element,\n };\n /**\n * If there's no transition defined for this value, we can generate\n * unqiue transition settings for this value.\n */\n if (!isTransitionDefined(valueTransition)) {\n options = {\n ...options,\n ...getDefaultTransition(name, options),\n };\n }\n /**\n * Both WAAPI and our internal animation functions use durations\n * as defined by milliseconds, while our external API defines them\n * as seconds.\n */\n if (options.duration) {\n options.duration = secondsToMilliseconds(options.duration);\n }\n if (options.repeatDelay) {\n options.repeatDelay = secondsToMilliseconds(options.repeatDelay);\n }\n if (options.from !== undefined) {\n options.keyframes[0] = options.from;\n }\n let shouldSkip = false;\n if (options.type === false) {\n options.duration = 0;\n if (options.delay === 0) {\n shouldSkip = true;\n }\n }\n if (instantAnimationState.current ||\n MotionGlobalConfig.skipAnimations) {\n shouldSkip = true;\n options.duration = 0;\n options.delay = 0;\n }\n /**\n * If we can or must skip creating the animation, and apply only\n * the final keyframe, do so. We also check once keyframes are resolved but\n * this early check prevents the need to create an animation at all.\n */\n if (shouldSkip && !isHandoff && value.get() !== undefined) {\n const finalKeyframe = getFinalKeyframe(options.keyframes, valueTransition);\n if (finalKeyframe !== undefined) {\n frame.update(() => {\n options.onUpdate(finalKeyframe);\n options.onComplete();\n });\n return;\n }\n }\n /**\n * Animate via WAAPI if possible. If this is a handoff animation, the optimised animation will be running via\n * WAAPI. Therefore, this animation must be JS to ensure it runs \"under\" the\n * optimised animation.\n */\n if (!isHandoff && AcceleratedAnimation.supports(options)) {\n return new AcceleratedAnimation(options);\n }\n else {\n return new MainThreadAnimation(options);\n }\n};\n\nexport { animateMotionValue };\n","import { isMotionValue } from '../utils/is-motion-value.mjs';\n\nfunction isWillChangeMotionValue(value) {\n return Boolean(isMotionValue(value) && value.add);\n}\n\nexport { isWillChangeMotionValue };\n","function addUniqueItem(arr, item) {\n if (arr.indexOf(item) === -1)\n arr.push(item);\n}\nfunction removeItem(arr, item) {\n const index = arr.indexOf(item);\n if (index > -1)\n arr.splice(index, 1);\n}\n// Adapted from array-move\nfunction moveItem([...arr], fromIndex, toIndex) {\n const startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex;\n if (startIndex >= 0 && startIndex < arr.length) {\n const endIndex = toIndex < 0 ? arr.length + toIndex : toIndex;\n const [item] = arr.splice(fromIndex, 1);\n arr.splice(endIndex, 0, item);\n }\n return arr;\n}\n\nexport { addUniqueItem, moveItem, removeItem };\n","import { addUniqueItem, removeItem } from './array.mjs';\n\nclass SubscriptionManager {\n constructor() {\n this.subscriptions = [];\n }\n add(handler) {\n addUniqueItem(this.subscriptions, handler);\n return () => removeItem(this.subscriptions, handler);\n }\n notify(a, b, c) {\n const numSubscriptions = this.subscriptions.length;\n if (!numSubscriptions)\n return;\n if (numSubscriptions === 1) {\n /**\n * If there's only a single handler we can just call it without invoking a loop.\n */\n this.subscriptions[0](a, b, c);\n }\n else {\n for (let i = 0; i < numSubscriptions; i++) {\n /**\n * Check whether the handler exists before firing as it's possible\n * the subscriptions were modified during this loop running.\n */\n const handler = this.subscriptions[i];\n handler && handler(a, b, c);\n }\n }\n }\n getSize() {\n return this.subscriptions.length;\n }\n clear() {\n this.subscriptions.length = 0;\n }\n}\n\nexport { SubscriptionManager };\n","import { SubscriptionManager } from '../utils/subscription-manager.mjs';\nimport { velocityPerSecond } from '../utils/velocity-per-second.mjs';\nimport { warnOnce } from '../utils/warn-once.mjs';\nimport { time } from '../frameloop/sync-time.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\n/**\n * Maximum time between the value of two frames, beyond which we\n * assume the velocity has since been 0.\n */\nconst MAX_VELOCITY_DELTA = 30;\nconst isFloat = (value) => {\n return !isNaN(parseFloat(value));\n};\nconst collectMotionValues = {\n current: undefined,\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\nclass MotionValue {\n /**\n * @param init - The initiating value\n * @param config - Optional configuration options\n *\n * - `transformer`: A function to transform incoming values with.\n *\n * @internal\n */\n constructor(init, options = {}) {\n /**\n * This will be replaced by the build step with the latest version number.\n * When MotionValues are provided to motion components, warn if versions are mixed.\n */\n this.version = \"11.0.25\";\n /**\n * Tracks whether this value can output a velocity. Currently this is only true\n * if the value is numerical, but we might be able to widen the scope here and support\n * other value types.\n *\n * @internal\n */\n this.canTrackVelocity = false;\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n this.updateAndNotify = (v, render = true) => {\n const currentTime = time.now();\n /**\n * If we're updating the value during another frame or eventloop\n * than the previous frame, then the we set the previous frame value\n * to current.\n */\n if (this.updatedAt !== currentTime) {\n this.setPrevFrameValue();\n }\n this.prev = this.current;\n this.setCurrent(v);\n // Update update subscribers\n if (this.current !== this.prev && this.events.change) {\n this.events.change.notify(this.current);\n }\n // Update render subscribers\n if (render && this.events.renderRequest) {\n this.events.renderRequest.notify(this.current);\n }\n };\n this.hasAnimated = false;\n this.setCurrent(init);\n this.canTrackVelocity = isFloat(this.current);\n this.owner = options.owner;\n }\n setCurrent(current) {\n this.current = current;\n this.updatedAt = time.now();\n }\n setPrevFrameValue(prevFrameValue = this.current) {\n this.prevFrameValue = prevFrameValue;\n this.prevUpdatedAt = this.updatedAt;\n }\n /**\n * Adds a function that will be notified when the `MotionValue` is updated.\n *\n * It returns a function that, when called, will cancel the subscription.\n *\n * When calling `onChange` inside a React component, it should be wrapped with the\n * `useEffect` hook. As it returns an unsubscribe function, this should be returned\n * from the `useEffect` function to ensure you don't add duplicate subscribers..\n *\n * ```jsx\n * export const MyComponent = () => {\n * const x = useMotionValue(0)\n * const y = useMotionValue(0)\n * const opacity = useMotionValue(1)\n *\n * useEffect(() => {\n * function updateOpacity() {\n * const maxXY = Math.max(x.get(), y.get())\n * const newOpacity = transform(maxXY, [0, 100], [1, 0])\n * opacity.set(newOpacity)\n * }\n *\n * const unsubscribeX = x.on(\"change\", updateOpacity)\n * const unsubscribeY = y.on(\"change\", updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return \n * }\n * ```\n *\n * @param subscriber - A function that receives the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @deprecated\n */\n onChange(subscription) {\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(false, `value.onChange(callback) is deprecated. Switch to value.on(\"change\", callback).`);\n }\n return this.on(\"change\", subscription);\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new SubscriptionManager();\n }\n const unsubscribe = this.events[eventName].add(callback);\n if (eventName === \"change\") {\n return () => {\n unsubscribe();\n /**\n * If we have no more change listeners by the start\n * of the next frame, stop active animations.\n */\n frame.read(() => {\n if (!this.events.change.getSize()) {\n this.stop();\n }\n });\n };\n }\n return unsubscribe;\n }\n clearListeners() {\n for (const eventManagers in this.events) {\n this.events[eventManagers].clear();\n }\n }\n /**\n * Attaches a passive effect to the `MotionValue`.\n *\n * @internal\n */\n attach(passiveEffect, stopPassiveEffect) {\n this.passiveEffect = passiveEffect;\n this.stopPassiveEffect = stopPassiveEffect;\n }\n /**\n * Sets the state of the `MotionValue`.\n *\n * @remarks\n *\n * ```jsx\n * const x = useMotionValue(0)\n * x.set(10)\n * ```\n *\n * @param latest - Latest value to set.\n * @param render - Whether to notify render subscribers. Defaults to `true`\n *\n * @public\n */\n set(v, render = true) {\n if (!render || !this.passiveEffect) {\n this.updateAndNotify(v, render);\n }\n else {\n this.passiveEffect(v, this.updateAndNotify);\n }\n }\n setWithVelocity(prev, current, delta) {\n this.set(current);\n this.prev = undefined;\n this.prevFrameValue = prev;\n this.prevUpdatedAt = this.updatedAt - delta;\n }\n /**\n * Set the state of the `MotionValue`, stopping any active animations,\n * effects, and resets velocity to `0`.\n */\n jump(v, endAnimation = true) {\n this.updateAndNotify(v);\n this.prev = v;\n this.prevUpdatedAt = this.prevFrameValue = undefined;\n endAnimation && this.stop();\n if (this.stopPassiveEffect)\n this.stopPassiveEffect();\n }\n /**\n * Returns the latest state of `MotionValue`\n *\n * @returns - The latest state of `MotionValue`\n *\n * @public\n */\n get() {\n if (collectMotionValues.current) {\n collectMotionValues.current.push(this);\n }\n return this.current;\n }\n /**\n * @public\n */\n getPrevious() {\n return this.prev;\n }\n /**\n * Returns the latest velocity of `MotionValue`\n *\n * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\n *\n * @public\n */\n getVelocity() {\n const currentTime = time.now();\n if (!this.canTrackVelocity ||\n this.prevFrameValue === undefined ||\n currentTime - this.updatedAt > MAX_VELOCITY_DELTA) {\n return 0;\n }\n const delta = Math.min(this.updatedAt - this.prevUpdatedAt, MAX_VELOCITY_DELTA);\n // Casts because of parseFloat's poor typing\n return velocityPerSecond(parseFloat(this.current) -\n parseFloat(this.prevFrameValue), delta);\n }\n /**\n * Registers a new animation to control this `MotionValue`. Only one\n * animation can drive a `MotionValue` at one time.\n *\n * ```jsx\n * value.start()\n * ```\n *\n * @param animation - A function that starts the provided animation\n *\n * @internal\n */\n start(startAnimation) {\n this.stop();\n return new Promise((resolve) => {\n this.hasAnimated = true;\n this.animation = startAnimation(resolve);\n if (this.events.animationStart) {\n this.events.animationStart.notify();\n }\n }).then(() => {\n if (this.events.animationComplete) {\n this.events.animationComplete.notify();\n }\n this.clearAnimation();\n });\n }\n /**\n * Stop the currently active animation.\n *\n * @public\n */\n stop() {\n if (this.animation) {\n this.animation.stop();\n if (this.events.animationCancel) {\n this.events.animationCancel.notify();\n }\n }\n this.clearAnimation();\n }\n /**\n * Returns `true` if this value is currently animating.\n *\n * @public\n */\n isAnimating() {\n return !!this.animation;\n }\n clearAnimation() {\n delete this.animation;\n }\n /**\n * Destroy and clean up subscribers to this `MotionValue`.\n *\n * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\n * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\n * created a `MotionValue` via the `motionValue` function.\n *\n * @public\n */\n destroy() {\n this.clearListeners();\n this.stop();\n if (this.stopPassiveEffect) {\n this.stopPassiveEffect();\n }\n }\n}\nfunction motionValue(init, options) {\n return new MotionValue(init, options);\n}\n\nexport { MotionValue, collectMotionValues, motionValue };\n","import { resolveFinalValueInKeyframes } from '../../utils/resolve-value.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\n\n/**\n * Set VisualElement's MotionValue, creating a new MotionValue for it if\n * it doesn't exist.\n */\nfunction setMotionValue(visualElement, key, value) {\n if (visualElement.hasValue(key)) {\n visualElement.getValue(key).set(value);\n }\n else {\n visualElement.addValue(key, motionValue(value));\n }\n}\nfunction setTarget(visualElement, definition) {\n const resolved = resolveVariant(visualElement, definition);\n let { transitionEnd = {}, transition = {}, ...target } = resolved || {};\n target = { ...target, ...transitionEnd };\n for (const key in target) {\n const value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n }\n}\n\nexport { setTarget };\n","import { transformProps } from '../../render/html/utils/transform.mjs';\nimport { optimizedAppearDataAttribute } from '../optimized-appear/data-id.mjs';\nimport { animateMotionValue } from './motion-value.mjs';\nimport { isWillChangeMotionValue } from '../../value/use-will-change/is.mjs';\nimport { setTarget } from '../../render/utils/setters.mjs';\nimport { getValueTransition } from '../utils/transitions.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\n/**\n * Decide whether we should block this animation. Previously, we achieved this\n * just by checking whether the key was listed in protectedKeys, but this\n * posed problems if an animation was triggered by afterChildren and protectedKeys\n * had been set to true in the meantime.\n */\nfunction shouldBlockAnimation({ protectedKeys, needsAnimating }, key) {\n const shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\n needsAnimating[key] = false;\n return shouldBlock;\n}\nfunction animateTarget(visualElement, targetAndTransition, { delay = 0, transitionOverride, type } = {}) {\n var _a;\n let { transition = visualElement.getDefaultTransition(), transitionEnd, ...target } = targetAndTransition;\n const willChange = visualElement.getValue(\"willChange\");\n if (transitionOverride)\n transition = transitionOverride;\n const animations = [];\n const animationTypeState = type &&\n visualElement.animationState &&\n visualElement.animationState.getState()[type];\n for (const key in target) {\n const value = visualElement.getValue(key, (_a = visualElement.latestValues[key]) !== null && _a !== void 0 ? _a : null);\n const valueTarget = target[key];\n if (valueTarget === undefined ||\n (animationTypeState &&\n shouldBlockAnimation(animationTypeState, key))) {\n continue;\n }\n const valueTransition = {\n delay,\n elapsed: 0,\n ...getValueTransition(transition || {}, key),\n };\n /**\n * If this is the first time a value is being animated, check\n * to see if we're handling off from an existing animation.\n */\n let isHandoff = false;\n if (window.HandoffAppearAnimations) {\n const appearId = visualElement.getProps()[optimizedAppearDataAttribute];\n if (appearId) {\n const elapsed = window.HandoffAppearAnimations(appearId, key);\n if (elapsed !== null) {\n valueTransition.elapsed = elapsed;\n isHandoff = true;\n }\n }\n }\n value.start(animateMotionValue(key, value, valueTarget, visualElement.shouldReduceMotion && transformProps.has(key)\n ? { type: false }\n : valueTransition, visualElement, isHandoff));\n const animation = value.animation;\n if (animation) {\n if (isWillChangeMotionValue(willChange)) {\n willChange.add(key);\n animation.then(() => willChange.remove(key));\n }\n animations.push(animation);\n }\n }\n if (transitionEnd) {\n Promise.all(animations).then(() => {\n frame.update(() => {\n transitionEnd && setTarget(visualElement, transitionEnd);\n });\n });\n }\n return animations;\n}\n\nexport { animateTarget };\n","import { resolveVariant } from '../../render/utils/resolve-dynamic-variants.mjs';\nimport { animateTarget } from './visual-element-target.mjs';\n\nfunction animateVariant(visualElement, variant, options = {}) {\n var _a;\n const resolved = resolveVariant(visualElement, variant, options.type === \"exit\"\n ? (_a = visualElement.presenceContext) === null || _a === void 0 ? void 0 : _a.custom\n : undefined);\n let { transition = visualElement.getDefaultTransition() || {} } = resolved || {};\n if (options.transitionOverride) {\n transition = options.transitionOverride;\n }\n /**\n * If we have a variant, create a callback that runs it as an animation.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getAnimation = resolved\n ? () => Promise.all(animateTarget(visualElement, resolved, options))\n : () => Promise.resolve();\n /**\n * If we have children, create a callback that runs all their animations.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getChildAnimations = visualElement.variantChildren && visualElement.variantChildren.size\n ? (forwardDelay = 0) => {\n const { delayChildren = 0, staggerChildren, staggerDirection, } = transition;\n return animateChildren(visualElement, variant, delayChildren + forwardDelay, staggerChildren, staggerDirection, options);\n }\n : () => Promise.resolve();\n /**\n * If the transition explicitly defines a \"when\" option, we need to resolve either\n * this animation or all children animations before playing the other.\n */\n const { when } = transition;\n if (when) {\n const [first, last] = when === \"beforeChildren\"\n ? [getAnimation, getChildAnimations]\n : [getChildAnimations, getAnimation];\n return first().then(() => last());\n }\n else {\n return Promise.all([getAnimation(), getChildAnimations(options.delay)]);\n }\n}\nfunction animateChildren(visualElement, variant, delayChildren = 0, staggerChildren = 0, staggerDirection = 1, options) {\n const animations = [];\n const maxStaggerDuration = (visualElement.variantChildren.size - 1) * staggerChildren;\n const generateStaggerDuration = staggerDirection === 1\n ? (i = 0) => i * staggerChildren\n : (i = 0) => maxStaggerDuration - i * staggerChildren;\n Array.from(visualElement.variantChildren)\n .sort(sortByTreeOrder)\n .forEach((child, i) => {\n child.notify(\"AnimationStart\", variant);\n animations.push(animateVariant(child, variant, {\n ...options,\n delay: delayChildren + generateStaggerDuration(i),\n }).then(() => child.notify(\"AnimationComplete\", variant)));\n });\n return Promise.all(animations);\n}\nfunction sortByTreeOrder(a, b) {\n return a.sortNodePosition(b);\n}\n\nexport { animateVariant, sortByTreeOrder };\n","import { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isKeyframesTarget } from '../../animation/utils/is-keyframes-target.mjs';\nimport { shallowCompare } from '../../utils/shallow-compare.mjs';\nimport { isVariantLabel } from './is-variant-label.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\nimport { variantPriorityOrder } from './variant-props.mjs';\nimport { animateVisualElement } from '../../animation/interfaces/visual-element.mjs';\n\nconst reversePriorityOrder = [...variantPriorityOrder].reverse();\nconst numAnimationTypes = variantPriorityOrder.length;\nfunction animateList(visualElement) {\n return (animations) => Promise.all(animations.map(({ animation, options }) => animateVisualElement(visualElement, animation, options)));\n}\nfunction createAnimationState(visualElement) {\n let animate = animateList(visualElement);\n const state = createState();\n let isInitialRender = true;\n /**\n * This function will be used to reduce the animation definitions for\n * each active animation type into an object of resolved values for it.\n */\n const buildResolvedTypeValues = (type) => (acc, definition) => {\n var _a;\n const resolved = resolveVariant(visualElement, definition, type === \"exit\"\n ? (_a = visualElement.presenceContext) === null || _a === void 0 ? void 0 : _a.custom\n : undefined);\n if (resolved) {\n const { transition, transitionEnd, ...target } = resolved;\n acc = { ...acc, ...target, ...transitionEnd };\n }\n return acc;\n };\n /**\n * This just allows us to inject mocked animation functions\n * @internal\n */\n function setAnimateFunction(makeAnimator) {\n animate = makeAnimator(visualElement);\n }\n /**\n * When we receive new props, we need to:\n * 1. Create a list of protected keys for each type. This is a directory of\n * value keys that are currently being \"handled\" by types of a higher priority\n * so that whenever an animation is played of a given type, these values are\n * protected from being animated.\n * 2. Determine if an animation type needs animating.\n * 3. Determine if any values have been removed from a type and figure out\n * what to animate those to.\n */\n function animateChanges(changedActiveType) {\n const props = visualElement.getProps();\n const context = visualElement.getVariantContext(true) || {};\n /**\n * A list of animations that we'll build into as we iterate through the animation\n * types. This will get executed at the end of the function.\n */\n const animations = [];\n /**\n * Keep track of which values have been removed. Then, as we hit lower priority\n * animation types, we can check if they contain removed values and animate to that.\n */\n const removedKeys = new Set();\n /**\n * A dictionary of all encountered keys. This is an object to let us build into and\n * copy it without iteration. Each time we hit an animation type we set its protected\n * keys - the keys its not allowed to animate - to the latest version of this object.\n */\n let encounteredKeys = {};\n /**\n * If a variant has been removed at a given index, and this component is controlling\n * variant animations, we want to ensure lower-priority variants are forced to animate.\n */\n let removedVariantIndex = Infinity;\n /**\n * Iterate through all animation types in reverse priority order. For each, we want to\n * detect which values it's handling and whether or not they've changed (and therefore\n * need to be animated). If any values have been removed, we want to detect those in\n * lower priority props and flag for animation.\n */\n for (let i = 0; i < numAnimationTypes; i++) {\n const type = reversePriorityOrder[i];\n const typeState = state[type];\n const prop = props[type] !== undefined ? props[type] : context[type];\n const propIsVariant = isVariantLabel(prop);\n /**\n * If this type has *just* changed isActive status, set activeDelta\n * to that status. Otherwise set to null.\n */\n const activeDelta = type === changedActiveType ? typeState.isActive : null;\n if (activeDelta === false)\n removedVariantIndex = i;\n /**\n * If this prop is an inherited variant, rather than been set directly on the\n * component itself, we want to make sure we allow the parent to trigger animations.\n *\n * TODO: Can probably change this to a !isControllingVariants check\n */\n let isInherited = prop === context[type] && prop !== props[type] && propIsVariant;\n /**\n *\n */\n if (isInherited &&\n isInitialRender &&\n visualElement.manuallyAnimateOnMount) {\n isInherited = false;\n }\n /**\n * Set all encountered keys so far as the protected keys for this type. This will\n * be any key that has been animated or otherwise handled by active, higher-priortiy types.\n */\n typeState.protectedKeys = { ...encounteredKeys };\n // Check if we can skip analysing this prop early\n if (\n // If it isn't active and hasn't *just* been set as inactive\n (!typeState.isActive && activeDelta === null) ||\n // If we didn't and don't have any defined prop for this animation type\n (!prop && !typeState.prevProp) ||\n // Or if the prop doesn't define an animation\n isAnimationControls(prop) ||\n typeof prop === \"boolean\") {\n continue;\n }\n /**\n * As we go look through the values defined on this type, if we detect\n * a changed value or a value that was removed in a higher priority, we set\n * this to true and add this prop to the animation list.\n */\n const variantDidChange = checkVariantsDidChange(typeState.prevProp, prop);\n let shouldAnimateType = variantDidChange ||\n // If we're making this variant active, we want to always make it active\n (type === changedActiveType &&\n typeState.isActive &&\n !isInherited &&\n propIsVariant) ||\n // If we removed a higher-priority variant (i is in reverse order)\n (i > removedVariantIndex && propIsVariant);\n let handledRemovedValues = false;\n /**\n * As animations can be set as variant lists, variants or target objects, we\n * coerce everything to an array if it isn't one already\n */\n const definitionList = Array.isArray(prop) ? prop : [prop];\n /**\n * Build an object of all the resolved values. We'll use this in the subsequent\n * animateChanges calls to determine whether a value has changed.\n */\n let resolvedValues = definitionList.reduce(buildResolvedTypeValues(type), {});\n if (activeDelta === false)\n resolvedValues = {};\n /**\n * Now we need to loop through all the keys in the prev prop and this prop,\n * and decide:\n * 1. If the value has changed, and needs animating\n * 2. If it has been removed, and needs adding to the removedKeys set\n * 3. If it has been removed in a higher priority type and needs animating\n * 4. If it hasn't been removed in a higher priority but hasn't changed, and\n * needs adding to the type's protectedKeys list.\n */\n const { prevResolvedValues = {} } = typeState;\n const allKeys = {\n ...prevResolvedValues,\n ...resolvedValues,\n };\n const markToAnimate = (key) => {\n shouldAnimateType = true;\n if (removedKeys.has(key)) {\n handledRemovedValues = true;\n removedKeys.delete(key);\n }\n typeState.needsAnimating[key] = true;\n const motionValue = visualElement.getValue(key);\n if (motionValue)\n motionValue.liveStyle = false;\n };\n for (const key in allKeys) {\n const next = resolvedValues[key];\n const prev = prevResolvedValues[key];\n // If we've already handled this we can just skip ahead\n if (encounteredKeys.hasOwnProperty(key))\n continue;\n /**\n * If the value has changed, we probably want to animate it.\n */\n let valueHasChanged = false;\n if (isKeyframesTarget(next) && isKeyframesTarget(prev)) {\n valueHasChanged = !shallowCompare(next, prev);\n }\n else {\n valueHasChanged = next !== prev;\n }\n if (valueHasChanged) {\n if (next !== undefined && next !== null) {\n // If next is defined and doesn't equal prev, it needs animating\n markToAnimate(key);\n }\n else {\n // If it's undefined, it's been removed.\n removedKeys.add(key);\n }\n }\n else if (next !== undefined && removedKeys.has(key)) {\n /**\n * If next hasn't changed and it isn't undefined, we want to check if it's\n * been removed by a higher priority\n */\n markToAnimate(key);\n }\n else {\n /**\n * If it hasn't changed, we add it to the list of protected values\n * to ensure it doesn't get animated.\n */\n typeState.protectedKeys[key] = true;\n }\n }\n /**\n * Update the typeState so next time animateChanges is called we can compare the\n * latest prop and resolvedValues to these.\n */\n typeState.prevProp = prop;\n typeState.prevResolvedValues = resolvedValues;\n /**\n *\n */\n if (typeState.isActive) {\n encounteredKeys = { ...encounteredKeys, ...resolvedValues };\n }\n if (isInitialRender && visualElement.blockInitialAnimation) {\n shouldAnimateType = false;\n }\n /**\n * If this is an inherited prop we want to hard-block animations\n */\n if (shouldAnimateType && (!isInherited || handledRemovedValues)) {\n animations.push(...definitionList.map((animation) => ({\n animation: animation,\n options: { type },\n })));\n }\n }\n /**\n * If there are some removed value that haven't been dealt with,\n * we need to create a new animation that falls back either to the value\n * defined in the style prop, or the last read value.\n */\n if (removedKeys.size) {\n const fallbackAnimation = {};\n removedKeys.forEach((key) => {\n const fallbackTarget = visualElement.getBaseTarget(key);\n const motionValue = visualElement.getValue(key);\n if (motionValue)\n motionValue.liveStyle = true;\n fallbackAnimation[key] =\n fallbackTarget === undefined ? null : fallbackTarget;\n });\n animations.push({ animation: fallbackAnimation });\n }\n let shouldAnimate = Boolean(animations.length);\n if (isInitialRender &&\n (props.initial === false || props.initial === props.animate) &&\n !visualElement.manuallyAnimateOnMount) {\n shouldAnimate = false;\n }\n isInitialRender = false;\n return shouldAnimate ? animate(animations) : Promise.resolve();\n }\n /**\n * Change whether a certain animation type is active.\n */\n function setActive(type, isActive) {\n var _a;\n // If the active state hasn't changed, we can safely do nothing here\n if (state[type].isActive === isActive)\n return Promise.resolve();\n // Propagate active change to children\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach((child) => { var _a; return (_a = child.animationState) === null || _a === void 0 ? void 0 : _a.setActive(type, isActive); });\n state[type].isActive = isActive;\n const animations = animateChanges(type);\n for (const key in state) {\n state[key].protectedKeys = {};\n }\n return animations;\n }\n return {\n animateChanges,\n setActive,\n setAnimateFunction,\n getState: () => state,\n };\n}\nfunction checkVariantsDidChange(prev, next) {\n if (typeof next === \"string\") {\n return next !== prev;\n }\n else if (Array.isArray(next)) {\n return !shallowCompare(next, prev);\n }\n return false;\n}\nfunction createTypeState(isActive = false) {\n return {\n isActive,\n protectedKeys: {},\n needsAnimating: {},\n prevResolvedValues: {},\n };\n}\nfunction createState() {\n return {\n animate: createTypeState(true),\n whileInView: createTypeState(),\n whileHover: createTypeState(),\n whileTap: createTypeState(),\n whileDrag: createTypeState(),\n whileFocus: createTypeState(),\n exit: createTypeState(),\n };\n}\n\nexport { checkVariantsDidChange, createAnimationState };\n","import { resolveVariant } from '../../render/utils/resolve-dynamic-variants.mjs';\nimport { animateTarget } from './visual-element-target.mjs';\nimport { animateVariant } from './visual-element-variant.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nfunction animateVisualElement(visualElement, definition, options = {}) {\n visualElement.notify(\"AnimationStart\", definition);\n let animation;\n if (Array.isArray(definition)) {\n const animations = definition.map((variant) => animateVariant(visualElement, variant, options));\n animation = Promise.all(animations);\n }\n else if (typeof definition === \"string\") {\n animation = animateVariant(visualElement, definition, options);\n }\n else {\n const resolvedDefinition = typeof definition === \"function\"\n ? resolveVariant(visualElement, definition, options.custom)\n : definition;\n animation = Promise.all(animateTarget(visualElement, resolvedDefinition, options));\n }\n return animation.then(() => {\n frame.postRender(() => {\n visualElement.notify(\"AnimationComplete\", definition);\n });\n });\n}\n\nexport { animateVisualElement };\n","import { Feature } from '../Feature.mjs';\n\nlet id = 0;\nclass ExitAnimationFeature extends Feature {\n constructor() {\n super(...arguments);\n this.id = id++;\n }\n update() {\n if (!this.node.presenceContext)\n return;\n const { isPresent, onExitComplete } = this.node.presenceContext;\n const { isPresent: prevIsPresent } = this.node.prevPresenceContext || {};\n if (!this.node.animationState || isPresent === prevIsPresent) {\n return;\n }\n const exitAnimation = this.node.animationState.setActive(\"exit\", !isPresent);\n if (onExitComplete && !isPresent) {\n exitAnimation.then(() => onExitComplete(this.id));\n }\n }\n mount() {\n const { register } = this.node.presenceContext || {};\n if (register) {\n this.unmount = register(this.id);\n }\n }\n unmount() { }\n}\n\nexport { ExitAnimationFeature };\n","import { AnimationFeature } from './animation/index.mjs';\nimport { ExitAnimationFeature } from './animation/exit.mjs';\n\nconst animations = {\n animation: {\n Feature: AnimationFeature,\n },\n exit: {\n Feature: ExitAnimationFeature,\n },\n};\n\nexport { animations };\n","import { isAnimationControls } from '../../../animation/utils/is-animation-controls.mjs';\nimport { createAnimationState } from '../../../render/utils/animation-state.mjs';\nimport { Feature } from '../Feature.mjs';\n\nclass AnimationFeature extends Feature {\n /**\n * We dynamically generate the AnimationState manager as it contains a reference\n * to the underlying animation library. We only want to load that if we load this,\n * so people can optionally code split it out using the `m` component.\n */\n constructor(node) {\n super(node);\n node.animationState || (node.animationState = createAnimationState(node));\n }\n updateAnimationControlsSubscription() {\n const { animate } = this.node.getProps();\n this.unmount();\n if (isAnimationControls(animate)) {\n this.unmount = animate.subscribe(this.node);\n }\n }\n /**\n * Subscribe any provided AnimationControls to the component's VisualElement\n */\n mount() {\n this.updateAnimationControlsSubscription();\n }\n update() {\n const { animate } = this.node.getProps();\n const { animate: prevAnimate } = this.node.prevProps || {};\n if (animate !== prevAnimate) {\n this.updateAnimationControlsSubscription();\n }\n }\n unmount() { }\n}\n\nexport { AnimationFeature };\n","const distance = (a, b) => Math.abs(a - b);\nfunction distance2D(a, b) {\n // Multi-dimensional\n const xDelta = distance(a.x, b.x);\n const yDelta = distance(a.y, b.y);\n return Math.sqrt(xDelta ** 2 + yDelta ** 2);\n}\n\nexport { distance, distance2D };\n","import { extractEventInfo } from '../../events/event-info.mjs';\nimport { secondsToMilliseconds, millisecondsToSeconds } from '../../utils/time-conversion.mjs';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { pipe } from '../../utils/pipe.mjs';\nimport { distance2D } from '../../utils/distance.mjs';\nimport { isPrimaryPointer } from '../../events/utils/is-primary-pointer.mjs';\nimport { frame, cancelFrame, frameData } from '../../frameloop/frame.mjs';\n\n/**\n * @internal\n */\nclass PanSession {\n constructor(event, handlers, { transformPagePoint, contextWindow, dragSnapToOrigin = false } = {}) {\n /**\n * @internal\n */\n this.startEvent = null;\n /**\n * @internal\n */\n this.lastMoveEvent = null;\n /**\n * @internal\n */\n this.lastMoveEventInfo = null;\n /**\n * @internal\n */\n this.handlers = {};\n /**\n * @internal\n */\n this.contextWindow = window;\n this.updatePoint = () => {\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const info = getPanInfo(this.lastMoveEventInfo, this.history);\n const isPanStarted = this.startEvent !== null;\n // Only start panning if the offset is larger than 3 pixels. If we make it\n // any larger than this we'll want to reset the pointer history\n // on the first update to avoid visual snapping to the cursoe.\n const isDistancePastThreshold = distance2D(info.offset, { x: 0, y: 0 }) >= 3;\n if (!isPanStarted && !isDistancePastThreshold)\n return;\n const { point } = info;\n const { timestamp } = frameData;\n this.history.push({ ...point, timestamp });\n const { onStart, onMove } = this.handlers;\n if (!isPanStarted) {\n onStart && onStart(this.lastMoveEvent, info);\n this.startEvent = this.lastMoveEvent;\n }\n onMove && onMove(this.lastMoveEvent, info);\n };\n this.handlePointerMove = (event, info) => {\n this.lastMoveEvent = event;\n this.lastMoveEventInfo = transformPoint(info, this.transformPagePoint);\n // Throttle mouse move event to once per frame\n frame.update(this.updatePoint, true);\n };\n this.handlePointerUp = (event, info) => {\n this.end();\n const { onEnd, onSessionEnd, resumeAnimation } = this.handlers;\n if (this.dragSnapToOrigin)\n resumeAnimation && resumeAnimation();\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const panInfo = getPanInfo(event.type === \"pointercancel\"\n ? this.lastMoveEventInfo\n : transformPoint(info, this.transformPagePoint), this.history);\n if (this.startEvent && onEnd) {\n onEnd(event, panInfo);\n }\n onSessionEnd && onSessionEnd(event, panInfo);\n };\n // If we have more than one touch, don't start detecting this gesture\n if (!isPrimaryPointer(event))\n return;\n this.dragSnapToOrigin = dragSnapToOrigin;\n this.handlers = handlers;\n this.transformPagePoint = transformPagePoint;\n this.contextWindow = contextWindow || window;\n const info = extractEventInfo(event);\n const initialInfo = transformPoint(info, this.transformPagePoint);\n const { point } = initialInfo;\n const { timestamp } = frameData;\n this.history = [{ ...point, timestamp }];\n const { onSessionStart } = handlers;\n onSessionStart &&\n onSessionStart(event, getPanInfo(initialInfo, this.history));\n this.removeListeners = pipe(addPointerEvent(this.contextWindow, \"pointermove\", this.handlePointerMove), addPointerEvent(this.contextWindow, \"pointerup\", this.handlePointerUp), addPointerEvent(this.contextWindow, \"pointercancel\", this.handlePointerUp));\n }\n updateHandlers(handlers) {\n this.handlers = handlers;\n }\n end() {\n this.removeListeners && this.removeListeners();\n cancelFrame(this.updatePoint);\n }\n}\nfunction transformPoint(info, transformPagePoint) {\n return transformPagePoint ? { point: transformPagePoint(info.point) } : info;\n}\nfunction subtractPoint(a, b) {\n return { x: a.x - b.x, y: a.y - b.y };\n}\nfunction getPanInfo({ point }, history) {\n return {\n point,\n delta: subtractPoint(point, lastDevicePoint(history)),\n offset: subtractPoint(point, startDevicePoint(history)),\n velocity: getVelocity(history, 0.1),\n };\n}\nfunction startDevicePoint(history) {\n return history[0];\n}\nfunction lastDevicePoint(history) {\n return history[history.length - 1];\n}\nfunction getVelocity(history, timeDelta) {\n if (history.length < 2) {\n return { x: 0, y: 0 };\n }\n let i = history.length - 1;\n let timestampedPoint = null;\n const lastPoint = lastDevicePoint(history);\n while (i >= 0) {\n timestampedPoint = history[i];\n if (lastPoint.timestamp - timestampedPoint.timestamp >\n secondsToMilliseconds(timeDelta)) {\n break;\n }\n i--;\n }\n if (!timestampedPoint) {\n return { x: 0, y: 0 };\n }\n const time = millisecondsToSeconds(lastPoint.timestamp - timestampedPoint.timestamp);\n if (time === 0) {\n return { x: 0, y: 0 };\n }\n const currentVelocity = {\n x: (lastPoint.x - timestampedPoint.x) / time,\n y: (lastPoint.y - timestampedPoint.y) / time,\n };\n if (currentVelocity.x === Infinity) {\n currentVelocity.x = 0;\n }\n if (currentVelocity.y === Infinity) {\n currentVelocity.y = 0;\n }\n return currentVelocity;\n}\n\nexport { PanSession };\n","import { mixNumber } from '../../utils/mix/number.mjs';\n\nfunction calcLength(axis) {\n return axis.max - axis.min;\n}\nfunction isNear(value, target = 0, maxDistance = 0.01) {\n return Math.abs(value - target) <= maxDistance;\n}\nfunction calcAxisDelta(delta, source, target, origin = 0.5) {\n delta.origin = origin;\n delta.originPoint = mixNumber(source.min, source.max, delta.origin);\n delta.scale = calcLength(target) / calcLength(source);\n if (isNear(delta.scale, 1, 0.0001) || isNaN(delta.scale))\n delta.scale = 1;\n delta.translate =\n mixNumber(target.min, target.max, delta.origin) - delta.originPoint;\n if (isNear(delta.translate) || isNaN(delta.translate))\n delta.translate = 0;\n}\nfunction calcBoxDelta(delta, source, target, origin) {\n calcAxisDelta(delta.x, source.x, target.x, origin ? origin.originX : undefined);\n calcAxisDelta(delta.y, source.y, target.y, origin ? origin.originY : undefined);\n}\nfunction calcRelativeAxis(target, relative, parent) {\n target.min = parent.min + relative.min;\n target.max = target.min + calcLength(relative);\n}\nfunction calcRelativeBox(target, relative, parent) {\n calcRelativeAxis(target.x, relative.x, parent.x);\n calcRelativeAxis(target.y, relative.y, parent.y);\n}\nfunction calcRelativeAxisPosition(target, layout, parent) {\n target.min = layout.min - parent.min;\n target.max = target.min + calcLength(layout);\n}\nfunction calcRelativePosition(target, layout, parent) {\n calcRelativeAxisPosition(target.x, layout.x, parent.x);\n calcRelativeAxisPosition(target.y, layout.y, parent.y);\n}\n\nexport { calcAxisDelta, calcBoxDelta, calcLength, calcRelativeAxis, calcRelativeAxisPosition, calcRelativeBox, calcRelativePosition, isNear };\n","import { progress } from '../../../utils/progress.mjs';\nimport { calcLength } from '../../../projection/geometry/delta-calc.mjs';\nimport { clamp } from '../../../utils/clamp.mjs';\nimport { mixNumber } from '../../../utils/mix/number.mjs';\n\n/**\n * Apply constraints to a point. These constraints are both physical along an\n * axis, and an elastic factor that determines how much to constrain the point\n * by if it does lie outside the defined parameters.\n */\nfunction applyConstraints(point, { min, max }, elastic) {\n if (min !== undefined && point < min) {\n // If we have a min point defined, and this is outside of that, constrain\n point = elastic\n ? mixNumber(min, point, elastic.min)\n : Math.max(point, min);\n }\n else if (max !== undefined && point > max) {\n // If we have a max point defined, and this is outside of that, constrain\n point = elastic\n ? mixNumber(max, point, elastic.max)\n : Math.min(point, max);\n }\n return point;\n}\n/**\n * Calculate constraints in terms of the viewport when defined relatively to the\n * measured axis. This is measured from the nearest edge, so a max constraint of 200\n * on an axis with a max value of 300 would return a constraint of 500 - axis length\n */\nfunction calcRelativeAxisConstraints(axis, min, max) {\n return {\n min: min !== undefined ? axis.min + min : undefined,\n max: max !== undefined\n ? axis.max + max - (axis.max - axis.min)\n : undefined,\n };\n}\n/**\n * Calculate constraints in terms of the viewport when\n * defined relatively to the measured bounding box.\n */\nfunction calcRelativeConstraints(layoutBox, { top, left, bottom, right }) {\n return {\n x: calcRelativeAxisConstraints(layoutBox.x, left, right),\n y: calcRelativeAxisConstraints(layoutBox.y, top, bottom),\n };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative axis\n */\nfunction calcViewportAxisConstraints(layoutAxis, constraintsAxis) {\n let min = constraintsAxis.min - layoutAxis.min;\n let max = constraintsAxis.max - layoutAxis.max;\n // If the constraints axis is actually smaller than the layout axis then we can\n // flip the constraints\n if (constraintsAxis.max - constraintsAxis.min <\n layoutAxis.max - layoutAxis.min) {\n [min, max] = [max, min];\n }\n return { min, max };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative box\n */\nfunction calcViewportConstraints(layoutBox, constraintsBox) {\n return {\n x: calcViewportAxisConstraints(layoutBox.x, constraintsBox.x),\n y: calcViewportAxisConstraints(layoutBox.y, constraintsBox.y),\n };\n}\n/**\n * Calculate a transform origin relative to the source axis, between 0-1, that results\n * in an asthetically pleasing scale/transform needed to project from source to target.\n */\nfunction calcOrigin(source, target) {\n let origin = 0.5;\n const sourceLength = calcLength(source);\n const targetLength = calcLength(target);\n if (targetLength > sourceLength) {\n origin = progress(target.min, target.max - sourceLength, source.min);\n }\n else if (sourceLength > targetLength) {\n origin = progress(source.min, source.max - targetLength, target.min);\n }\n return clamp(0, 1, origin);\n}\n/**\n * Rebase the calculated viewport constraints relative to the layout.min point.\n */\nfunction rebaseAxisConstraints(layout, constraints) {\n const relativeConstraints = {};\n if (constraints.min !== undefined) {\n relativeConstraints.min = constraints.min - layout.min;\n }\n if (constraints.max !== undefined) {\n relativeConstraints.max = constraints.max - layout.min;\n }\n return relativeConstraints;\n}\nconst defaultElastic = 0.35;\n/**\n * Accepts a dragElastic prop and returns resolved elastic values for each axis.\n */\nfunction resolveDragElastic(dragElastic = defaultElastic) {\n if (dragElastic === false) {\n dragElastic = 0;\n }\n else if (dragElastic === true) {\n dragElastic = defaultElastic;\n }\n return {\n x: resolveAxisElastic(dragElastic, \"left\", \"right\"),\n y: resolveAxisElastic(dragElastic, \"top\", \"bottom\"),\n };\n}\nfunction resolveAxisElastic(dragElastic, minLabel, maxLabel) {\n return {\n min: resolvePointElastic(dragElastic, minLabel),\n max: resolvePointElastic(dragElastic, maxLabel),\n };\n}\nfunction resolvePointElastic(dragElastic, label) {\n return typeof dragElastic === \"number\"\n ? dragElastic\n : dragElastic[label] || 0;\n}\n\nexport { applyConstraints, calcOrigin, calcRelativeAxisConstraints, calcRelativeConstraints, calcViewportAxisConstraints, calcViewportConstraints, defaultElastic, rebaseAxisConstraints, resolveAxisElastic, resolveDragElastic, resolvePointElastic };\n","const createAxisDelta = () => ({\n translate: 0,\n scale: 1,\n origin: 0,\n originPoint: 0,\n});\nconst createDelta = () => ({\n x: createAxisDelta(),\n y: createAxisDelta(),\n});\nconst createAxis = () => ({ min: 0, max: 0 });\nconst createBox = () => ({\n x: createAxis(),\n y: createAxis(),\n});\n\nexport { createAxis, createAxisDelta, createBox, createDelta };\n","function eachAxis(callback) {\n return [callback(\"x\"), callback(\"y\")];\n}\n\nexport { eachAxis };\n","/**\n * Bounding boxes tend to be defined as top, left, right, bottom. For various operations\n * it's easier to consider each axis individually. This function returns a bounding box\n * as a map of single-axis min/max values.\n */\nfunction convertBoundingBoxToBox({ top, left, right, bottom, }) {\n return {\n x: { min: left, max: right },\n y: { min: top, max: bottom },\n };\n}\nfunction convertBoxToBoundingBox({ x, y }) {\n return { top: y.min, right: x.max, bottom: y.max, left: x.min };\n}\n/**\n * Applies a TransformPoint function to a bounding box. TransformPoint is usually a function\n * provided by Framer to allow measured points to be corrected for device scaling. This is used\n * when measuring DOM elements and DOM event points.\n */\nfunction transformBoxPoints(point, transformPoint) {\n if (!transformPoint)\n return point;\n const topLeft = transformPoint({ x: point.left, y: point.top });\n const bottomRight = transformPoint({ x: point.right, y: point.bottom });\n return {\n top: topLeft.y,\n left: topLeft.x,\n bottom: bottomRight.y,\n right: bottomRight.x,\n };\n}\n\nexport { convertBoundingBoxToBox, convertBoxToBoundingBox, transformBoxPoints };\n","function isIdentityScale(scale) {\n return scale === undefined || scale === 1;\n}\nfunction hasScale({ scale, scaleX, scaleY }) {\n return (!isIdentityScale(scale) ||\n !isIdentityScale(scaleX) ||\n !isIdentityScale(scaleY));\n}\nfunction hasTransform(values) {\n return (hasScale(values) ||\n has2DTranslate(values) ||\n values.z ||\n values.rotate ||\n values.rotateX ||\n values.rotateY ||\n values.skewX ||\n values.skewY);\n}\nfunction has2DTranslate(values) {\n return is2DTranslate(values.x) || is2DTranslate(values.y);\n}\nfunction is2DTranslate(value) {\n return value && value !== \"0%\";\n}\n\nexport { has2DTranslate, hasScale, hasTransform };\n","import { mixNumber } from '../../utils/mix/number.mjs';\nimport { hasTransform } from '../utils/has-transform.mjs';\n\n/**\n * Scales a point based on a factor and an originPoint\n */\nfunction scalePoint(point, scale, originPoint) {\n const distanceFromOrigin = point - originPoint;\n const scaled = scale * distanceFromOrigin;\n return originPoint + scaled;\n}\n/**\n * Applies a translate/scale delta to a point\n */\nfunction applyPointDelta(point, translate, scale, originPoint, boxScale) {\n if (boxScale !== undefined) {\n point = scalePoint(point, boxScale, originPoint);\n }\n return scalePoint(point, scale, originPoint) + translate;\n}\n/**\n * Applies a translate/scale delta to an axis\n */\nfunction applyAxisDelta(axis, translate = 0, scale = 1, originPoint, boxScale) {\n axis.min = applyPointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = applyPointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Applies a translate/scale delta to a box\n */\nfunction applyBoxDelta(box, { x, y }) {\n applyAxisDelta(box.x, x.translate, x.scale, x.originPoint);\n applyAxisDelta(box.y, y.translate, y.scale, y.originPoint);\n}\n/**\n * Apply a tree of deltas to a box. We do this to calculate the effect of all the transforms\n * in a tree upon our box before then calculating how to project it into our desired viewport-relative box\n *\n * This is the final nested loop within updateLayoutDelta for future refactoring\n */\nfunction applyTreeDeltas(box, treeScale, treePath, isSharedTransition = false) {\n const treeLength = treePath.length;\n if (!treeLength)\n return;\n // Reset the treeScale\n treeScale.x = treeScale.y = 1;\n let node;\n let delta;\n for (let i = 0; i < treeLength; i++) {\n node = treePath[i];\n delta = node.projectionDelta;\n /**\n * TODO: Prefer to remove this, but currently we have motion components with\n * display: contents in Framer.\n */\n const instance = node.instance;\n if (instance &&\n instance.style &&\n instance.style.display === \"contents\") {\n continue;\n }\n if (isSharedTransition &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(box, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (delta) {\n // Incoporate each ancestor's scale into a culmulative treeScale for this component\n treeScale.x *= delta.x.scale;\n treeScale.y *= delta.y.scale;\n // Apply each ancestor's calculated delta into this component's recorded layout box\n applyBoxDelta(box, delta);\n }\n if (isSharedTransition && hasTransform(node.latestValues)) {\n transformBox(box, node.latestValues);\n }\n }\n /**\n * Snap tree scale back to 1 if it's within a non-perceivable threshold.\n * This will help reduce useless scales getting rendered.\n */\n treeScale.x = snapToDefault(treeScale.x);\n treeScale.y = snapToDefault(treeScale.y);\n}\nfunction snapToDefault(scale) {\n if (Number.isInteger(scale))\n return scale;\n return scale > 1.0000000000001 || scale < 0.999999999999 ? scale : 1;\n}\nfunction translateAxis(axis, distance) {\n axis.min = axis.min + distance;\n axis.max = axis.max + distance;\n}\n/**\n * Apply a transform to an axis from the latest resolved motion values.\n * This function basically acts as a bridge between a flat motion value map\n * and applyAxisDelta\n */\nfunction transformAxis(axis, transforms, [key, scaleKey, originKey]) {\n const axisOrigin = transforms[originKey] !== undefined ? transforms[originKey] : 0.5;\n const originPoint = mixNumber(axis.min, axis.max, axisOrigin);\n // Apply the axis delta to the final axis\n applyAxisDelta(axis, transforms[key], transforms[scaleKey], originPoint, transforms.scale);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nconst xKeys = [\"x\", \"scaleX\", \"originX\"];\nconst yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Apply a transform to a box from the latest resolved motion values.\n */\nfunction transformBox(box, transform) {\n transformAxis(box.x, transform, xKeys);\n transformAxis(box.y, transform, yKeys);\n}\n\nexport { applyAxisDelta, applyBoxDelta, applyPointDelta, applyTreeDeltas, scalePoint, transformAxis, transformBox, translateAxis };\n","import { convertBoundingBoxToBox, transformBoxPoints } from '../geometry/conversion.mjs';\nimport { translateAxis } from '../geometry/delta-apply.mjs';\n\nfunction measureViewportBox(instance, transformPoint) {\n return convertBoundingBoxToBox(transformBoxPoints(instance.getBoundingClientRect(), transformPoint));\n}\nfunction measurePageBox(element, rootProjectionNode, transformPagePoint) {\n const viewportBox = measureViewportBox(element, transformPagePoint);\n const { scroll } = rootProjectionNode;\n if (scroll) {\n translateAxis(viewportBox.x, scroll.offset.x);\n translateAxis(viewportBox.y, scroll.offset.y);\n }\n return viewportBox;\n}\n\nexport { measurePageBox, measureViewportBox };\n","// Fixes https://github.com/framer/motion/issues/2270\nconst getContextWindow = ({ current }) => {\n return current ? current.ownerDocument.defaultView : null;\n};\n\nexport { getContextWindow };\n","import { invariant } from '../../utils/errors.mjs';\nimport { PanSession } from '../pan/PanSession.mjs';\nimport { getGlobalLock } from './utils/lock.mjs';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { applyConstraints, calcRelativeConstraints, resolveDragElastic, calcViewportConstraints, defaultElastic, rebaseAxisConstraints, calcOrigin } from './utils/constraints.mjs';\nimport { createBox } from '../../projection/geometry/models.mjs';\nimport { eachAxis } from '../../projection/utils/each-axis.mjs';\nimport { measurePageBox } from '../../projection/utils/measure.mjs';\nimport { extractEventInfo } from '../../events/event-info.mjs';\nimport { convertBoxToBoundingBox, convertBoundingBoxToBox } from '../../projection/geometry/conversion.mjs';\nimport { addDomEvent } from '../../events/add-dom-event.mjs';\nimport { calcLength } from '../../projection/geometry/delta-calc.mjs';\nimport { mixNumber } from '../../utils/mix/number.mjs';\nimport { percent } from '../../value/types/numbers/units.mjs';\nimport { animateMotionValue } from '../../animation/interfaces/motion-value.mjs';\nimport { getContextWindow } from '../../utils/get-context-window.mjs';\n\nconst elementDragControls = new WeakMap();\n/**\n *\n */\n// let latestPointerEvent: PointerEvent\nclass VisualElementDragControls {\n constructor(visualElement) {\n // This is a reference to the global drag gesture lock, ensuring only one component\n // can \"capture\" the drag of one or both axes.\n // TODO: Look into moving this into pansession?\n this.openGlobalLock = null;\n this.isDragging = false;\n this.currentDirection = null;\n this.originPoint = { x: 0, y: 0 };\n /**\n * The permitted boundaries of travel, in pixels.\n */\n this.constraints = false;\n this.hasMutatedConstraints = false;\n /**\n * The per-axis resolved elastic values.\n */\n this.elastic = createBox();\n this.visualElement = visualElement;\n }\n start(originEvent, { snapToCursor = false } = {}) {\n /**\n * Don't start dragging if this component is exiting\n */\n const { presenceContext } = this.visualElement;\n if (presenceContext && presenceContext.isPresent === false)\n return;\n const onSessionStart = (event) => {\n const { dragSnapToOrigin } = this.getProps();\n // Stop or pause any animations on both axis values immediately. This allows the user to throw and catch\n // the component.\n dragSnapToOrigin ? this.pauseAnimation() : this.stopAnimation();\n if (snapToCursor) {\n this.snapToCursor(extractEventInfo(event, \"page\").point);\n }\n };\n const onStart = (event, info) => {\n // Attempt to grab the global drag gesture lock - maybe make this part of PanSession\n const { drag, dragPropagation, onDragStart } = this.getProps();\n if (drag && !dragPropagation) {\n if (this.openGlobalLock)\n this.openGlobalLock();\n this.openGlobalLock = getGlobalLock(drag);\n // If we don 't have the lock, don't start dragging\n if (!this.openGlobalLock)\n return;\n }\n this.isDragging = true;\n this.currentDirection = null;\n this.resolveConstraints();\n if (this.visualElement.projection) {\n this.visualElement.projection.isAnimationBlocked = true;\n this.visualElement.projection.target = undefined;\n }\n /**\n * Record gesture origin\n */\n eachAxis((axis) => {\n let current = this.getAxisMotionValue(axis).get() || 0;\n /**\n * If the MotionValue is a percentage value convert to px\n */\n if (percent.test(current)) {\n const { projection } = this.visualElement;\n if (projection && projection.layout) {\n const measuredAxis = projection.layout.layoutBox[axis];\n if (measuredAxis) {\n const length = calcLength(measuredAxis);\n current = length * (parseFloat(current) / 100);\n }\n }\n }\n this.originPoint[axis] = current;\n });\n // Fire onDragStart event\n if (onDragStart)\n onDragStart(event, info);\n const { animationState } = this.visualElement;\n animationState && animationState.setActive(\"whileDrag\", true);\n };\n const onMove = (event, info) => {\n // latestPointerEvent = event\n const { dragPropagation, dragDirectionLock, onDirectionLock, onDrag, } = this.getProps();\n // If we didn't successfully receive the gesture lock, early return.\n if (!dragPropagation && !this.openGlobalLock)\n return;\n const { offset } = info;\n // Attempt to detect drag direction if directionLock is true\n if (dragDirectionLock && this.currentDirection === null) {\n this.currentDirection = getCurrentDirection(offset);\n // If we've successfully set a direction, notify listener\n if (this.currentDirection !== null) {\n onDirectionLock && onDirectionLock(this.currentDirection);\n }\n return;\n }\n // Update each point with the latest position\n this.updateAxis(\"x\", info.point, offset);\n this.updateAxis(\"y\", info.point, offset);\n /**\n * Ideally we would leave the renderer to fire naturally at the end of\n * this frame but if the element is about to change layout as the result\n * of a re-render we want to ensure the browser can read the latest\n * bounding box to ensure the pointer and element don't fall out of sync.\n */\n this.visualElement.render();\n /**\n * This must fire after the render call as it might trigger a state\n * change which itself might trigger a layout update.\n */\n onDrag && onDrag(event, info);\n };\n const onSessionEnd = (event, info) => this.stop(event, info);\n const resumeAnimation = () => eachAxis((axis) => {\n var _a;\n return this.getAnimationState(axis) === \"paused\" &&\n ((_a = this.getAxisMotionValue(axis).animation) === null || _a === void 0 ? void 0 : _a.play());\n });\n const { dragSnapToOrigin } = this.getProps();\n this.panSession = new PanSession(originEvent, {\n onSessionStart,\n onStart,\n onMove,\n onSessionEnd,\n resumeAnimation,\n }, {\n transformPagePoint: this.visualElement.getTransformPagePoint(),\n dragSnapToOrigin,\n contextWindow: getContextWindow(this.visualElement),\n });\n }\n stop(event, info) {\n const isDragging = this.isDragging;\n this.cancel();\n if (!isDragging)\n return;\n const { velocity } = info;\n this.startAnimation(velocity);\n const { onDragEnd } = this.getProps();\n if (onDragEnd)\n onDragEnd(event, info);\n }\n cancel() {\n this.isDragging = false;\n const { projection, animationState } = this.visualElement;\n if (projection) {\n projection.isAnimationBlocked = false;\n }\n this.panSession && this.panSession.end();\n this.panSession = undefined;\n const { dragPropagation } = this.getProps();\n if (!dragPropagation && this.openGlobalLock) {\n this.openGlobalLock();\n this.openGlobalLock = null;\n }\n animationState && animationState.setActive(\"whileDrag\", false);\n }\n updateAxis(axis, _point, offset) {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!offset || !shouldDrag(axis, drag, this.currentDirection))\n return;\n const axisValue = this.getAxisMotionValue(axis);\n let next = this.originPoint[axis] + offset[axis];\n // Apply constraints\n if (this.constraints && this.constraints[axis]) {\n next = applyConstraints(next, this.constraints[axis], this.elastic[axis]);\n }\n axisValue.set(next);\n }\n resolveConstraints() {\n var _a;\n const { dragConstraints, dragElastic } = this.getProps();\n const layout = this.visualElement.projection &&\n !this.visualElement.projection.layout\n ? this.visualElement.projection.measure(false)\n : (_a = this.visualElement.projection) === null || _a === void 0 ? void 0 : _a.layout;\n const prevConstraints = this.constraints;\n if (dragConstraints && isRefObject(dragConstraints)) {\n if (!this.constraints) {\n this.constraints = this.resolveRefConstraints();\n }\n }\n else {\n if (dragConstraints && layout) {\n this.constraints = calcRelativeConstraints(layout.layoutBox, dragConstraints);\n }\n else {\n this.constraints = false;\n }\n }\n this.elastic = resolveDragElastic(dragElastic);\n /**\n * If we're outputting to external MotionValues, we want to rebase the measured constraints\n * from viewport-relative to component-relative.\n */\n if (prevConstraints !== this.constraints &&\n layout &&\n this.constraints &&\n !this.hasMutatedConstraints) {\n eachAxis((axis) => {\n if (this.getAxisMotionValue(axis)) {\n this.constraints[axis] = rebaseAxisConstraints(layout.layoutBox[axis], this.constraints[axis]);\n }\n });\n }\n }\n resolveRefConstraints() {\n const { dragConstraints: constraints, onMeasureDragConstraints } = this.getProps();\n if (!constraints || !isRefObject(constraints))\n return false;\n const constraintsElement = constraints.current;\n invariant(constraintsElement !== null, \"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.\");\n const { projection } = this.visualElement;\n // TODO\n if (!projection || !projection.layout)\n return false;\n const constraintsBox = measurePageBox(constraintsElement, projection.root, this.visualElement.getTransformPagePoint());\n let measuredConstraints = calcViewportConstraints(projection.layout.layoutBox, constraintsBox);\n /**\n * If there's an onMeasureDragConstraints listener we call it and\n * if different constraints are returned, set constraints to that\n */\n if (onMeasureDragConstraints) {\n const userConstraints = onMeasureDragConstraints(convertBoxToBoundingBox(measuredConstraints));\n this.hasMutatedConstraints = !!userConstraints;\n if (userConstraints) {\n measuredConstraints = convertBoundingBoxToBox(userConstraints);\n }\n }\n return measuredConstraints;\n }\n startAnimation(velocity) {\n const { drag, dragMomentum, dragElastic, dragTransition, dragSnapToOrigin, onDragTransitionEnd, } = this.getProps();\n const constraints = this.constraints || {};\n const momentumAnimations = eachAxis((axis) => {\n if (!shouldDrag(axis, drag, this.currentDirection)) {\n return;\n }\n let transition = (constraints && constraints[axis]) || {};\n if (dragSnapToOrigin)\n transition = { min: 0, max: 0 };\n /**\n * Overdamp the boundary spring if `dragElastic` is disabled. There's still a frame\n * of spring animations so we should look into adding a disable spring option to `inertia`.\n * We could do something here where we affect the `bounceStiffness` and `bounceDamping`\n * using the value of `dragElastic`.\n */\n const bounceStiffness = dragElastic ? 200 : 1000000;\n const bounceDamping = dragElastic ? 40 : 10000000;\n const inertia = {\n type: \"inertia\",\n velocity: dragMomentum ? velocity[axis] : 0,\n bounceStiffness,\n bounceDamping,\n timeConstant: 750,\n restDelta: 1,\n restSpeed: 10,\n ...dragTransition,\n ...transition,\n };\n // If we're not animating on an externally-provided `MotionValue` we can use the\n // component's animation controls which will handle interactions with whileHover (etc),\n // otherwise we just have to animate the `MotionValue` itself.\n return this.startAxisValueAnimation(axis, inertia);\n });\n // Run all animations and then resolve the new drag constraints.\n return Promise.all(momentumAnimations).then(onDragTransitionEnd);\n }\n startAxisValueAnimation(axis, transition) {\n const axisValue = this.getAxisMotionValue(axis);\n return axisValue.start(animateMotionValue(axis, axisValue, 0, transition, this.visualElement));\n }\n stopAnimation() {\n eachAxis((axis) => this.getAxisMotionValue(axis).stop());\n }\n pauseAnimation() {\n eachAxis((axis) => { var _a; return (_a = this.getAxisMotionValue(axis).animation) === null || _a === void 0 ? void 0 : _a.pause(); });\n }\n getAnimationState(axis) {\n var _a;\n return (_a = this.getAxisMotionValue(axis).animation) === null || _a === void 0 ? void 0 : _a.state;\n }\n /**\n * Drag works differently depending on which props are provided.\n *\n * - If _dragX and _dragY are provided, we output the gesture delta directly to those motion values.\n * - Otherwise, we apply the delta to the x/y motion values.\n */\n getAxisMotionValue(axis) {\n const dragKey = \"_drag\" + axis.toUpperCase();\n const props = this.visualElement.getProps();\n const externalMotionValue = props[dragKey];\n return externalMotionValue\n ? externalMotionValue\n : this.visualElement.getValue(axis, (props.initial ? props.initial[axis] : undefined) || 0);\n }\n snapToCursor(point) {\n eachAxis((axis) => {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!shouldDrag(axis, drag, this.currentDirection))\n return;\n const { projection } = this.visualElement;\n const axisValue = this.getAxisMotionValue(axis);\n if (projection && projection.layout) {\n const { min, max } = projection.layout.layoutBox[axis];\n axisValue.set(point[axis] - mixNumber(min, max, 0.5));\n }\n });\n }\n /**\n * When the viewport resizes we want to check if the measured constraints\n * have changed and, if so, reposition the element within those new constraints\n * relative to where it was before the resize.\n */\n scalePositionWithinConstraints() {\n if (!this.visualElement.current)\n return;\n const { drag, dragConstraints } = this.getProps();\n const { projection } = this.visualElement;\n if (!isRefObject(dragConstraints) || !projection || !this.constraints)\n return;\n /**\n * Stop current animations as there can be visual glitching if we try to do\n * this mid-animation\n */\n this.stopAnimation();\n /**\n * Record the relative position of the dragged element relative to the\n * constraints box and save as a progress value.\n */\n const boxProgress = { x: 0, y: 0 };\n eachAxis((axis) => {\n const axisValue = this.getAxisMotionValue(axis);\n if (axisValue) {\n const latest = axisValue.get();\n boxProgress[axis] = calcOrigin({ min: latest, max: latest }, this.constraints[axis]);\n }\n });\n /**\n * Update the layout of this element and resolve the latest drag constraints\n */\n const { transformTemplate } = this.visualElement.getProps();\n this.visualElement.current.style.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n this.resolveConstraints();\n /**\n * For each axis, calculate the current progress of the layout axis\n * within the new constraints.\n */\n eachAxis((axis) => {\n if (!shouldDrag(axis, drag, null))\n return;\n /**\n * Calculate a new transform based on the previous box progress\n */\n const axisValue = this.getAxisMotionValue(axis);\n const { min, max } = this.constraints[axis];\n axisValue.set(mixNumber(min, max, boxProgress[axis]));\n });\n }\n addListeners() {\n if (!this.visualElement.current)\n return;\n elementDragControls.set(this.visualElement, this);\n const element = this.visualElement.current;\n /**\n * Attach a pointerdown event listener on this DOM element to initiate drag tracking.\n */\n const stopPointerListener = addPointerEvent(element, \"pointerdown\", (event) => {\n const { drag, dragListener = true } = this.getProps();\n drag && dragListener && this.start(event);\n });\n const measureDragConstraints = () => {\n const { dragConstraints } = this.getProps();\n if (isRefObject(dragConstraints)) {\n this.constraints = this.resolveRefConstraints();\n }\n };\n const { projection } = this.visualElement;\n const stopMeasureLayoutListener = projection.addEventListener(\"measure\", measureDragConstraints);\n if (projection && !projection.layout) {\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n }\n measureDragConstraints();\n /**\n * Attach a window resize listener to scale the draggable target within its defined\n * constraints as the window resizes.\n */\n const stopResizeListener = addDomEvent(window, \"resize\", () => this.scalePositionWithinConstraints());\n /**\n * If the element's layout changes, calculate the delta and apply that to\n * the drag gesture's origin point.\n */\n const stopLayoutUpdateListener = projection.addEventListener(\"didUpdate\", (({ delta, hasLayoutChanged }) => {\n if (this.isDragging && hasLayoutChanged) {\n eachAxis((axis) => {\n const motionValue = this.getAxisMotionValue(axis);\n if (!motionValue)\n return;\n this.originPoint[axis] += delta[axis].translate;\n motionValue.set(motionValue.get() + delta[axis].translate);\n });\n this.visualElement.render();\n }\n }));\n return () => {\n stopResizeListener();\n stopPointerListener();\n stopMeasureLayoutListener();\n stopLayoutUpdateListener && stopLayoutUpdateListener();\n };\n }\n getProps() {\n const props = this.visualElement.getProps();\n const { drag = false, dragDirectionLock = false, dragPropagation = false, dragConstraints = false, dragElastic = defaultElastic, dragMomentum = true, } = props;\n return {\n ...props,\n drag,\n dragDirectionLock,\n dragPropagation,\n dragConstraints,\n dragElastic,\n dragMomentum,\n };\n }\n}\nfunction shouldDrag(direction, drag, currentDirection) {\n return ((drag === true || drag === direction) &&\n (currentDirection === null || currentDirection === direction));\n}\n/**\n * Based on an x/y offset determine the current drag direction. If both axis' offsets are lower\n * than the provided threshold, return `null`.\n *\n * @param offset - The x/y offset from origin.\n * @param lockThreshold - (Optional) - the minimum absolute offset before we can determine a drag direction.\n */\nfunction getCurrentDirection(offset, lockThreshold = 10) {\n let direction = null;\n if (Math.abs(offset.y) > lockThreshold) {\n direction = \"y\";\n }\n else if (Math.abs(offset.x) > lockThreshold) {\n direction = \"x\";\n }\n return direction;\n}\n\nexport { VisualElementDragControls, elementDragControls };\n","import { PanSession } from './PanSession.mjs';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { Feature } from '../../motion/features/Feature.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { getContextWindow } from '../../utils/get-context-window.mjs';\n\nconst asyncHandler = (handler) => (event, info) => {\n if (handler) {\n handler(event, info);\n }\n};\nclass PanGesture extends Feature {\n constructor() {\n super(...arguments);\n this.removePointerDownListener = noop;\n }\n onPointerDown(pointerDownEvent) {\n this.session = new PanSession(pointerDownEvent, this.createPanHandlers(), {\n transformPagePoint: this.node.getTransformPagePoint(),\n contextWindow: getContextWindow(this.node),\n });\n }\n createPanHandlers() {\n const { onPanSessionStart, onPanStart, onPan, onPanEnd } = this.node.getProps();\n return {\n onSessionStart: asyncHandler(onPanSessionStart),\n onStart: asyncHandler(onPanStart),\n onMove: onPan,\n onEnd: (event, info) => {\n delete this.session;\n if (onPanEnd)\n onPanEnd(event, info);\n },\n };\n }\n mount() {\n this.removePointerDownListener = addPointerEvent(this.node.current, \"pointerdown\", (event) => this.onPointerDown(event));\n }\n update() {\n this.session && this.session.updateHandlers(this.createPanHandlers());\n }\n unmount() {\n this.removePointerDownListener();\n this.session && this.session.end();\n }\n}\n\nexport { PanGesture };\n","/**\n * This should only ever be modified on the client otherwise it'll\n * persist through server requests. If we need instanced states we\n * could lazy-init via root.\n */\nconst globalProjectionState = {\n /**\n * Global flag as to whether the tree has animated since the last time\n * we resized the window\n */\n hasAnimatedSinceResize: true,\n /**\n * We set this to true once, on the first update. Any nodes added to the tree beyond that\n * update will be given a `data-projection-id` attribute.\n */\n hasEverUpdated: false,\n};\n\nexport { globalProjectionState };\n","import { px } from '../../value/types/numbers/units.mjs';\n\nfunction pixelsToPercent(pixels, axis) {\n if (axis.max === axis.min)\n return 0;\n return (pixels / (axis.max - axis.min)) * 100;\n}\n/**\n * We always correct borderRadius as a percentage rather than pixels to reduce paints.\n * For example, if you are projecting a box that is 100px wide with a 10px borderRadius\n * into a box that is 200px wide with a 20px borderRadius, that is actually a 10%\n * borderRadius in both states. If we animate between the two in pixels that will trigger\n * a paint each time. If we animate between the two in percentage we'll avoid a paint.\n */\nconst correctBorderRadius = {\n correct: (latest, node) => {\n if (!node.target)\n return latest;\n /**\n * If latest is a string, if it's a percentage we can return immediately as it's\n * going to be stretched appropriately. Otherwise, if it's a pixel, convert it to a number.\n */\n if (typeof latest === \"string\") {\n if (px.test(latest)) {\n latest = parseFloat(latest);\n }\n else {\n return latest;\n }\n }\n /**\n * If latest is a number, it's a pixel value. We use the current viewportBox to calculate that\n * pixel value as a percentage of each axis\n */\n const x = pixelsToPercent(latest, node.target.x);\n const y = pixelsToPercent(latest, node.target.y);\n return `${x}% ${y}%`;\n },\n};\n\nexport { correctBorderRadius, pixelsToPercent };\n","import { mixNumber } from '../../utils/mix/number.mjs';\nimport { complex } from '../../value/types/complex/index.mjs';\n\nconst correctBoxShadow = {\n correct: (latest, { treeScale, projectionDelta }) => {\n const original = latest;\n const shadow = complex.parse(latest);\n // TODO: Doesn't support multiple shadows\n if (shadow.length > 5)\n return original;\n const template = complex.createTransformer(latest);\n const offset = typeof shadow[0] !== \"number\" ? 1 : 0;\n // Calculate the overall context scale\n const xScale = projectionDelta.x.scale * treeScale.x;\n const yScale = projectionDelta.y.scale * treeScale.y;\n shadow[0 + offset] /= xScale;\n shadow[1 + offset] /= yScale;\n /**\n * Ideally we'd correct x and y scales individually, but because blur and\n * spread apply to both we have to take a scale average and apply that instead.\n * We could potentially improve the outcome of this by incorporating the ratio between\n * the two scales.\n */\n const averageScale = mixNumber(xScale, yScale, 0.5);\n // Blur\n if (typeof shadow[2 + offset] === \"number\")\n shadow[2 + offset] /= averageScale;\n // Spread\n if (typeof shadow[3 + offset] === \"number\")\n shadow[3 + offset] /= averageScale;\n return template(shadow);\n },\n};\n\nexport { correctBoxShadow };\n","import React__default, { useContext } from 'react';\nimport { usePresence } from '../../../components/AnimatePresence/use-presence.mjs';\nimport { LayoutGroupContext } from '../../../context/LayoutGroupContext.mjs';\nimport { SwitchLayoutGroupContext } from '../../../context/SwitchLayoutGroupContext.mjs';\nimport { globalProjectionState } from '../../../projection/node/state.mjs';\nimport { correctBorderRadius } from '../../../projection/styles/scale-border-radius.mjs';\nimport { correctBoxShadow } from '../../../projection/styles/scale-box-shadow.mjs';\nimport { addScaleCorrector } from '../../../projection/styles/scale-correction.mjs';\nimport { microtask } from '../../../frameloop/microtask.mjs';\nimport { frame } from '../../../frameloop/frame.mjs';\n\nclass MeasureLayoutWithContext extends React__default.Component {\n /**\n * This only mounts projection nodes for components that\n * need measuring, we might want to do it for all components\n * in order to incorporate transforms\n */\n componentDidMount() {\n const { visualElement, layoutGroup, switchLayoutGroup, layoutId } = this.props;\n const { projection } = visualElement;\n addScaleCorrector(defaultScaleCorrectors);\n if (projection) {\n if (layoutGroup.group)\n layoutGroup.group.add(projection);\n if (switchLayoutGroup && switchLayoutGroup.register && layoutId) {\n switchLayoutGroup.register(projection);\n }\n projection.root.didUpdate();\n projection.addEventListener(\"animationComplete\", () => {\n this.safeToRemove();\n });\n projection.setOptions({\n ...projection.options,\n onExitComplete: () => this.safeToRemove(),\n });\n }\n globalProjectionState.hasEverUpdated = true;\n }\n getSnapshotBeforeUpdate(prevProps) {\n const { layoutDependency, visualElement, drag, isPresent } = this.props;\n const projection = visualElement.projection;\n if (!projection)\n return null;\n /**\n * TODO: We use this data in relegate to determine whether to\n * promote a previous element. There's no guarantee its presence data\n * will have updated by this point - if a bug like this arises it will\n * have to be that we markForRelegation and then find a new lead some other way,\n * perhaps in didUpdate\n */\n projection.isPresent = isPresent;\n if (drag ||\n prevProps.layoutDependency !== layoutDependency ||\n layoutDependency === undefined) {\n projection.willUpdate();\n }\n else {\n this.safeToRemove();\n }\n if (prevProps.isPresent !== isPresent) {\n if (isPresent) {\n projection.promote();\n }\n else if (!projection.relegate()) {\n /**\n * If there's another stack member taking over from this one,\n * it's in charge of the exit animation and therefore should\n * be in charge of the safe to remove. Otherwise we call it here.\n */\n frame.postRender(() => {\n const stack = projection.getStack();\n if (!stack || !stack.members.length) {\n this.safeToRemove();\n }\n });\n }\n }\n return null;\n }\n componentDidUpdate() {\n const { projection } = this.props.visualElement;\n if (projection) {\n projection.root.didUpdate();\n microtask.postRender(() => {\n if (!projection.currentAnimation && projection.isLead()) {\n this.safeToRemove();\n }\n });\n }\n }\n componentWillUnmount() {\n const { visualElement, layoutGroup, switchLayoutGroup: promoteContext, } = this.props;\n const { projection } = visualElement;\n if (projection) {\n projection.scheduleCheckAfterUnmount();\n if (layoutGroup && layoutGroup.group)\n layoutGroup.group.remove(projection);\n if (promoteContext && promoteContext.deregister)\n promoteContext.deregister(projection);\n }\n }\n safeToRemove() {\n const { safeToRemove } = this.props;\n safeToRemove && safeToRemove();\n }\n render() {\n return null;\n }\n}\nfunction MeasureLayout(props) {\n const [isPresent, safeToRemove] = usePresence();\n const layoutGroup = useContext(LayoutGroupContext);\n return (React__default.createElement(MeasureLayoutWithContext, { ...props, layoutGroup: layoutGroup, switchLayoutGroup: useContext(SwitchLayoutGroupContext), isPresent: isPresent, safeToRemove: safeToRemove }));\n}\nconst defaultScaleCorrectors = {\n borderRadius: {\n ...correctBorderRadius,\n applyTo: [\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n ],\n },\n borderTopLeftRadius: correctBorderRadius,\n borderTopRightRadius: correctBorderRadius,\n borderBottomLeftRadius: correctBorderRadius,\n borderBottomRightRadius: correctBorderRadius,\n boxShadow: correctBoxShadow,\n};\n\nexport { MeasureLayout };\n","import { useContext, useId, useEffect } 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
\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() {\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(() => register(id), []);\n const safeToRemove = () => onExitComplete && onExitComplete(id);\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
\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 { circOut } from '../../easing/circ.mjs';\nimport { progress } from '../../utils/progress.mjs';\nimport { mixNumber } from '../../utils/mix/number.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { percent, px } from '../../value/types/numbers/units.mjs';\n\nconst borders = [\"TopLeft\", \"TopRight\", \"BottomLeft\", \"BottomRight\"];\nconst numBorders = borders.length;\nconst asNumber = (value) => typeof value === \"string\" ? parseFloat(value) : value;\nconst isPx = (value) => typeof value === \"number\" || px.test(value);\nfunction mixValues(target, follow, lead, progress, shouldCrossfadeOpacity, isOnlyMember) {\n if (shouldCrossfadeOpacity) {\n target.opacity = mixNumber(0, \n // TODO Reinstate this if only child\n lead.opacity !== undefined ? lead.opacity : 1, easeCrossfadeIn(progress));\n target.opacityExit = mixNumber(follow.opacity !== undefined ? follow.opacity : 1, 0, easeCrossfadeOut(progress));\n }\n else if (isOnlyMember) {\n target.opacity = mixNumber(follow.opacity !== undefined ? follow.opacity : 1, lead.opacity !== undefined ? lead.opacity : 1, progress);\n }\n /**\n * Mix border radius\n */\n for (let i = 0; i < numBorders; i++) {\n const borderLabel = `border${borders[i]}Radius`;\n let followRadius = getRadius(follow, borderLabel);\n let leadRadius = getRadius(lead, borderLabel);\n if (followRadius === undefined && leadRadius === undefined)\n continue;\n followRadius || (followRadius = 0);\n leadRadius || (leadRadius = 0);\n const canMix = followRadius === 0 ||\n leadRadius === 0 ||\n isPx(followRadius) === isPx(leadRadius);\n if (canMix) {\n target[borderLabel] = Math.max(mixNumber(asNumber(followRadius), asNumber(leadRadius), progress), 0);\n if (percent.test(leadRadius) || percent.test(followRadius)) {\n target[borderLabel] += \"%\";\n }\n }\n else {\n target[borderLabel] = leadRadius;\n }\n }\n /**\n * Mix rotation\n */\n if (follow.rotate || lead.rotate) {\n target.rotate = mixNumber(follow.rotate || 0, lead.rotate || 0, progress);\n }\n}\nfunction getRadius(values, radiusName) {\n return values[radiusName] !== undefined\n ? values[radiusName]\n : values.borderRadius;\n}\n// /**\n// * We only want to mix the background color if there's a follow element\n// * that we're not crossfading opacity between. For instance with switch\n// * AnimateSharedLayout animations, this helps the illusion of a continuous\n// * element being animated but also cuts down on the number of paints triggered\n// * for elements where opacity is doing that work for us.\n// */\n// if (\n// !hasFollowElement &&\n// latestLeadValues.backgroundColor &&\n// latestFollowValues.backgroundColor\n// ) {\n// /**\n// * This isn't ideal performance-wise as mixColor is creating a new function every frame.\n// * We could probably create a mixer that runs at the start of the animation but\n// * the idea behind the crossfader is that it runs dynamically between two potentially\n// * changing targets (ie opacity or borderRadius may be animating independently via variants)\n// */\n// leadState.backgroundColor = followState.backgroundColor = mixColor(\n// latestFollowValues.backgroundColor as string,\n// latestLeadValues.backgroundColor as string\n// )(p)\n// }\nconst easeCrossfadeIn = compress(0, 0.5, circOut);\nconst easeCrossfadeOut = compress(0.5, 0.95, noop);\nfunction compress(min, max, easing) {\n return (p) => {\n // Could replace ifs with clamp\n if (p < min)\n return 0;\n if (p > max)\n return 1;\n return easing(progress(min, max, p));\n };\n}\n\nexport { mixValues };\n","/**\n * Reset an axis to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyAxisInto(axis, originAxis) {\n axis.min = originAxis.min;\n axis.max = originAxis.max;\n}\n/**\n * Reset a box to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyBoxInto(box, originBox) {\n copyAxisInto(box.x, originBox.x);\n copyAxisInto(box.y, originBox.y);\n}\n\nexport { copyAxisInto, copyBoxInto };\n","import { mixNumber } from '../../utils/mix/number.mjs';\nimport { percent } from '../../value/types/numbers/units.mjs';\nimport { scalePoint } from './delta-apply.mjs';\n\n/**\n * Remove a delta from a point. This is essentially the steps of applyPointDelta in reverse\n */\nfunction removePointDelta(point, translate, scale, originPoint, boxScale) {\n point -= translate;\n point = scalePoint(point, 1 / scale, originPoint);\n if (boxScale !== undefined) {\n point = scalePoint(point, 1 / boxScale, originPoint);\n }\n return point;\n}\n/**\n * Remove a delta from an axis. This is essentially the steps of applyAxisDelta in reverse\n */\nfunction removeAxisDelta(axis, translate = 0, scale = 1, origin = 0.5, boxScale, originAxis = axis, sourceAxis = axis) {\n if (percent.test(translate)) {\n translate = parseFloat(translate);\n const relativeProgress = mixNumber(sourceAxis.min, sourceAxis.max, translate / 100);\n translate = relativeProgress - sourceAxis.min;\n }\n if (typeof translate !== \"number\")\n return;\n let originPoint = mixNumber(originAxis.min, originAxis.max, origin);\n if (axis === originAxis)\n originPoint -= translate;\n axis.min = removePointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = removePointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Remove a transforms from an axis. This is essentially the steps of applyAxisTransforms in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeAxisTransforms(axis, transforms, [key, scaleKey, originKey], origin, sourceAxis) {\n removeAxisDelta(axis, transforms[key], transforms[scaleKey], transforms[originKey], transforms.scale, origin, sourceAxis);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nconst xKeys = [\"x\", \"scaleX\", \"originX\"];\nconst yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Remove a transforms from an box. This is essentially the steps of applyAxisBox in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeBoxTransforms(box, transforms, originBox, sourceBox) {\n removeAxisTransforms(box.x, transforms, xKeys, originBox ? originBox.x : undefined, sourceBox ? sourceBox.x : undefined);\n removeAxisTransforms(box.y, transforms, yKeys, originBox ? originBox.y : undefined, sourceBox ? sourceBox.y : undefined);\n}\n\nexport { removeAxisDelta, removeAxisTransforms, removeBoxTransforms, removePointDelta };\n","import { calcLength } from './delta-calc.mjs';\n\nfunction isAxisDeltaZero(delta) {\n return delta.translate === 0 && delta.scale === 1;\n}\nfunction isDeltaZero(delta) {\n return isAxisDeltaZero(delta.x) && isAxisDeltaZero(delta.y);\n}\nfunction boxEquals(a, b) {\n return (a.x.min === b.x.min &&\n a.x.max === b.x.max &&\n a.y.min === b.y.min &&\n a.y.max === b.y.max);\n}\nfunction boxEqualsRounded(a, b) {\n return (Math.round(a.x.min) === Math.round(b.x.min) &&\n Math.round(a.x.max) === Math.round(b.x.max) &&\n Math.round(a.y.min) === Math.round(b.y.min) &&\n Math.round(a.y.max) === Math.round(b.y.max));\n}\nfunction aspectRatio(box) {\n return calcLength(box.x) / calcLength(box.y);\n}\n\nexport { aspectRatio, boxEquals, boxEqualsRounded, isDeltaZero };\n","import { addUniqueItem, removeItem } from '../../utils/array.mjs';\n\nclass NodeStack {\n constructor() {\n this.members = [];\n }\n add(node) {\n addUniqueItem(this.members, node);\n node.scheduleRender();\n }\n remove(node) {\n removeItem(this.members, node);\n if (node === this.prevLead) {\n this.prevLead = undefined;\n }\n if (node === this.lead) {\n const prevLead = this.members[this.members.length - 1];\n if (prevLead) {\n this.promote(prevLead);\n }\n }\n }\n relegate(node) {\n const indexOfNode = this.members.findIndex((member) => node === member);\n if (indexOfNode === 0)\n return false;\n /**\n * Find the next projection node that is present\n */\n let prevLead;\n for (let i = indexOfNode; i >= 0; i--) {\n const member = this.members[i];\n if (member.isPresent !== false) {\n prevLead = member;\n break;\n }\n }\n if (prevLead) {\n this.promote(prevLead);\n return true;\n }\n else {\n return false;\n }\n }\n promote(node, preserveFollowOpacity) {\n const prevLead = this.lead;\n if (node === prevLead)\n return;\n this.prevLead = prevLead;\n this.lead = node;\n node.show();\n if (prevLead) {\n prevLead.instance && prevLead.scheduleRender();\n node.scheduleRender();\n node.resumeFrom = prevLead;\n if (preserveFollowOpacity) {\n node.resumeFrom.preserveOpacity = true;\n }\n if (prevLead.snapshot) {\n node.snapshot = prevLead.snapshot;\n node.snapshot.latestValues =\n prevLead.animationValues || prevLead.latestValues;\n }\n if (node.root && node.root.isUpdating) {\n node.isLayoutDirty = true;\n }\n const { crossfade } = node.options;\n if (crossfade === false) {\n prevLead.hide();\n }\n /**\n * TODO:\n * - Test border radius when previous node was deleted\n * - boxShadow mixing\n * - Shared between element A in scrolled container and element B (scroll stays the same or changes)\n * - Shared between element A in transformed container and element B (transform stays the same or changes)\n * - Shared between element A in scrolled page and element B (scroll stays the same or changes)\n * ---\n * - Crossfade opacity of root nodes\n * - layoutId changes after animation\n * - layoutId changes mid animation\n */\n }\n }\n exitAnimationComplete() {\n this.members.forEach((node) => {\n const { options, resumingFrom } = node;\n options.onExitComplete && options.onExitComplete();\n if (resumingFrom) {\n resumingFrom.options.onExitComplete &&\n resumingFrom.options.onExitComplete();\n }\n });\n }\n scheduleRender() {\n this.members.forEach((node) => {\n node.instance && node.scheduleRender(false);\n });\n }\n /**\n * Clear any leads that have been removed this render to prevent them from being\n * used in future animations and to prevent memory leaks\n */\n removeLeadSnapshot() {\n if (this.lead && this.lead.snapshot) {\n this.lead.snapshot = undefined;\n }\n }\n}\n\nexport { NodeStack };\n","function buildProjectionTransform(delta, treeScale, latestTransform) {\n let transform = \"\";\n /**\n * The translations we use to calculate are always relative to the viewport coordinate space.\n * But when we apply scales, we also scale the coordinate space of an element and its children.\n * For instance if we have a treeScale (the culmination of all parent scales) of 0.5 and we need\n * to move an element 100 pixels, we actually need to move it 200 in within that scaled space.\n */\n const xTranslate = delta.x.translate / treeScale.x;\n const yTranslate = delta.y.translate / treeScale.y;\n const zTranslate = (latestTransform === null || latestTransform === void 0 ? void 0 : latestTransform.z) || 0;\n if (xTranslate || yTranslate || zTranslate) {\n transform = `translate3d(${xTranslate}px, ${yTranslate}px, ${zTranslate}px) `;\n }\n /**\n * Apply scale correction for the tree transform.\n * This will apply scale to the screen-orientated axes.\n */\n if (treeScale.x !== 1 || treeScale.y !== 1) {\n transform += `scale(${1 / treeScale.x}, ${1 / treeScale.y}) `;\n }\n if (latestTransform) {\n const { rotate, rotateX, rotateY, skewX, skewY } = latestTransform;\n if (rotate)\n transform += `rotate(${rotate}deg) `;\n if (rotateX)\n transform += `rotateX(${rotateX}deg) `;\n if (rotateY)\n transform += `rotateY(${rotateY}deg) `;\n if (skewX)\n transform += `skewX(${skewX}deg) `;\n if (skewY)\n transform += `skewY(${skewY}deg) `;\n }\n /**\n * Apply scale to match the size of the element to the size we want it.\n * This will apply scale to the element-orientated axes.\n */\n const elementScaleX = delta.x.scale * treeScale.x;\n const elementScaleY = delta.y.scale * treeScale.y;\n if (elementScaleX !== 1 || elementScaleY !== 1) {\n transform += `scale(${elementScaleX}, ${elementScaleY})`;\n }\n return transform || \"none\";\n}\n\nexport { buildProjectionTransform };\n","const compareByDepth = (a, b) => a.depth - b.depth;\n\nexport { compareByDepth };\n","import { addUniqueItem, removeItem } from '../../utils/array.mjs';\nimport { compareByDepth } from './compare-by-depth.mjs';\n\nclass FlatTree {\n constructor() {\n this.children = [];\n this.isDirty = false;\n }\n add(child) {\n addUniqueItem(this.children, child);\n this.isDirty = true;\n }\n remove(child) {\n removeItem(this.children, child);\n this.isDirty = true;\n }\n forEach(callback) {\n this.isDirty && this.children.sort(compareByDepth);\n this.isDirty = false;\n this.children.forEach(callback);\n }\n}\n\nexport { FlatTree };\n","import { SubscriptionManager } from '../../utils/subscription-manager.mjs';\nimport { mixValues } from '../animation/mix-values.mjs';\nimport { copyBoxInto } from '../geometry/copy.mjs';\nimport { translateAxis, transformBox, applyBoxDelta, applyTreeDeltas } from '../geometry/delta-apply.mjs';\nimport { calcRelativePosition, calcRelativeBox, calcBoxDelta, calcLength, isNear } from '../geometry/delta-calc.mjs';\nimport { removeBoxTransforms } from '../geometry/delta-remove.mjs';\nimport { createBox, createDelta } from '../geometry/models.mjs';\nimport { getValueTransition } from '../../animation/utils/transitions.mjs';\nimport { boxEqualsRounded, isDeltaZero, aspectRatio, boxEquals } from '../geometry/utils.mjs';\nimport { NodeStack } from '../shared/stack.mjs';\nimport { scaleCorrectors } from '../styles/scale-correction.mjs';\nimport { buildProjectionTransform } from '../styles/transform.mjs';\nimport { eachAxis } from '../utils/each-axis.mjs';\nimport { hasTransform, hasScale, has2DTranslate } from '../utils/has-transform.mjs';\nimport { FlatTree } from '../../render/utils/flat-tree.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\nimport { globalProjectionState } from './state.mjs';\nimport { delay } from '../../utils/delay.mjs';\nimport { mixNumber } from '../../utils/mix/number.mjs';\nimport { record } from '../../debug/record.mjs';\nimport { isSVGElement } from '../../render/dom/utils/is-svg-element.mjs';\nimport { animateSingleValue } from '../../animation/interfaces/single-value.mjs';\nimport { clamp } from '../../utils/clamp.mjs';\nimport { cancelFrame, frameData, steps, frame } from '../../frameloop/frame.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { time } from '../../frameloop/sync-time.mjs';\nimport { microtask } from '../../frameloop/microtask.mjs';\n\nconst transformAxes = [\"\", \"X\", \"Y\", \"Z\"];\nconst hiddenVisibility = { visibility: \"hidden\" };\n/**\n * We use 1000 as the animation target as 0-1000 maps better to pixels than 0-1\n * which has a noticeable difference in spring animations\n */\nconst animationTarget = 1000;\nlet id = 0;\n/**\n * Use a mutable data object for debug data so as to not create a new\n * object every frame.\n */\nconst projectionFrameData = {\n type: \"projectionFrame\",\n totalNodes: 0,\n resolvedTargetDeltas: 0,\n recalculatedProjection: 0,\n};\nfunction resetDistortingTransform(key, visualElement, values, sharedAnimationValues) {\n const { latestValues } = visualElement;\n // Record the distorting transform and then temporarily set it to 0\n if (latestValues[key]) {\n values[key] = latestValues[key];\n visualElement.setStaticValue(key, 0);\n if (sharedAnimationValues) {\n sharedAnimationValues[key] = 0;\n }\n }\n}\nfunction createProjectionNode({ attachResizeListener, defaultParent, measureScroll, checkIsScrollRoot, resetTransform, }) {\n return class ProjectionNode {\n constructor(latestValues = {}, parent = defaultParent === null || defaultParent === void 0 ? void 0 : defaultParent()) {\n /**\n * A unique ID generated for every projection node.\n */\n this.id = id++;\n /**\n * An id that represents a unique session instigated by startUpdate.\n */\n this.animationId = 0;\n /**\n * A Set containing all this component's children. This is used to iterate\n * through the children.\n *\n * TODO: This could be faster to iterate as a flat array stored on the root node.\n */\n this.children = new Set();\n /**\n * Options for the node. We use this to configure what kind of layout animations\n * we should perform (if any).\n */\n this.options = {};\n /**\n * We use this to detect when its safe to shut down part of a projection tree.\n * We have to keep projecting children for scale correction and relative projection\n * until all their parents stop performing layout animations.\n */\n this.isTreeAnimating = false;\n this.isAnimationBlocked = false;\n /**\n * Flag to true if we think this layout has been changed. We can't always know this,\n * currently we set it to true every time a component renders, or if it has a layoutDependency\n * if that has changed between renders. Additionally, components can be grouped by LayoutGroup\n * and if one node is dirtied, they all are.\n */\n this.isLayoutDirty = false;\n /**\n * Flag to true if we think the projection calculations for this node needs\n * recalculating as a result of an updated transform or layout animation.\n */\n this.isProjectionDirty = false;\n /**\n * Flag to true if the layout *or* transform has changed. This then gets propagated\n * throughout the projection tree, forcing any element below to recalculate on the next frame.\n */\n this.isSharedProjectionDirty = false;\n /**\n * Flag transform dirty. This gets propagated throughout the whole tree but is only\n * respected by shared nodes.\n */\n this.isTransformDirty = false;\n /**\n * Block layout updates for instant layout transitions throughout the tree.\n */\n this.updateManuallyBlocked = false;\n this.updateBlockedByResize = false;\n /**\n * Set to true between the start of the first `willUpdate` call and the end of the `didUpdate`\n * call.\n */\n this.isUpdating = false;\n /**\n * If this is an SVG element we currently disable projection transforms\n */\n this.isSVG = false;\n /**\n * Flag to true (during promotion) if a node doing an instant layout transition needs to reset\n * its projection styles.\n */\n this.needsReset = false;\n /**\n * Flags whether this node should have its transform reset prior to measuring.\n */\n this.shouldResetTransform = false;\n /**\n * An object representing the calculated contextual/accumulated/tree scale.\n * This will be used to scale calculcated projection transforms, as these are\n * calculated in screen-space but need to be scaled for elements to layoutly\n * make it to their calculated destinations.\n *\n * TODO: Lazy-init\n */\n this.treeScale = { x: 1, y: 1 };\n /**\n *\n */\n this.eventHandlers = new Map();\n this.hasTreeAnimated = false;\n // Note: Currently only running on root node\n this.updateScheduled = false;\n this.projectionUpdateScheduled = false;\n this.checkUpdateFailed = () => {\n if (this.isUpdating) {\n this.isUpdating = false;\n this.clearAllSnapshots();\n }\n };\n /**\n * This is a multi-step process as shared nodes might be of different depths. Nodes\n * are sorted by depth order, so we need to resolve the entire tree before moving to\n * the next step.\n */\n this.updateProjection = () => {\n this.projectionUpdateScheduled = false;\n /**\n * Reset debug counts. Manually resetting rather than creating a new\n * object each frame.\n */\n projectionFrameData.totalNodes =\n projectionFrameData.resolvedTargetDeltas =\n projectionFrameData.recalculatedProjection =\n 0;\n this.nodes.forEach(propagateDirtyNodes);\n this.nodes.forEach(resolveTargetDelta);\n this.nodes.forEach(calcProjection);\n this.nodes.forEach(cleanDirtyNodes);\n record(projectionFrameData);\n };\n this.hasProjected = false;\n this.isVisible = true;\n this.animationProgress = 0;\n /**\n * Shared layout\n */\n // TODO Only running on root node\n this.sharedNodes = new Map();\n this.latestValues = latestValues;\n this.root = parent ? parent.root || parent : this;\n this.path = parent ? [...parent.path, parent] : [];\n this.parent = parent;\n this.depth = parent ? parent.depth + 1 : 0;\n for (let i = 0; i < this.path.length; i++) {\n this.path[i].shouldResetTransform = true;\n }\n if (this.root === this)\n this.nodes = new FlatTree();\n }\n addEventListener(name, handler) {\n if (!this.eventHandlers.has(name)) {\n this.eventHandlers.set(name, new SubscriptionManager());\n }\n return this.eventHandlers.get(name).add(handler);\n }\n notifyListeners(name, ...args) {\n const subscriptionManager = this.eventHandlers.get(name);\n subscriptionManager && subscriptionManager.notify(...args);\n }\n hasListeners(name) {\n return this.eventHandlers.has(name);\n }\n /**\n * Lifecycles\n */\n mount(instance, isLayoutDirty = this.root.hasTreeAnimated) {\n if (this.instance)\n return;\n this.isSVG = isSVGElement(instance);\n this.instance = instance;\n const { layoutId, layout, visualElement } = this.options;\n if (visualElement && !visualElement.current) {\n visualElement.mount(instance);\n }\n this.root.nodes.add(this);\n this.parent && this.parent.children.add(this);\n if (isLayoutDirty && (layout || layoutId)) {\n this.isLayoutDirty = true;\n }\n if (attachResizeListener) {\n let cancelDelay;\n const resizeUnblockUpdate = () => (this.root.updateBlockedByResize = false);\n attachResizeListener(instance, () => {\n this.root.updateBlockedByResize = true;\n cancelDelay && cancelDelay();\n cancelDelay = delay(resizeUnblockUpdate, 250);\n if (globalProjectionState.hasAnimatedSinceResize) {\n globalProjectionState.hasAnimatedSinceResize = false;\n this.nodes.forEach(finishAnimation);\n }\n });\n }\n if (layoutId) {\n this.root.registerSharedNode(layoutId, this);\n }\n // Only register the handler if it requires layout animation\n if (this.options.animate !== false &&\n visualElement &&\n (layoutId || layout)) {\n this.addEventListener(\"didUpdate\", ({ delta, hasLayoutChanged, hasRelativeTargetChanged, layout: newLayout, }) => {\n if (this.isTreeAnimationBlocked()) {\n this.target = undefined;\n this.relativeTarget = undefined;\n return;\n }\n // TODO: Check here if an animation exists\n const layoutTransition = this.options.transition ||\n visualElement.getDefaultTransition() ||\n defaultLayoutTransition;\n const { onLayoutAnimationStart, onLayoutAnimationComplete, } = visualElement.getProps();\n /**\n * The target layout of the element might stay the same,\n * but its position relative to its parent has changed.\n */\n const targetChanged = !this.targetLayout ||\n !boxEqualsRounded(this.targetLayout, newLayout) ||\n hasRelativeTargetChanged;\n /**\n * If the layout hasn't seemed to have changed, it might be that the\n * element is visually in the same place in the document but its position\n * relative to its parent has indeed changed. So here we check for that.\n */\n const hasOnlyRelativeTargetChanged = !hasLayoutChanged && hasRelativeTargetChanged;\n if (this.options.layoutRoot ||\n (this.resumeFrom && this.resumeFrom.instance) ||\n hasOnlyRelativeTargetChanged ||\n (hasLayoutChanged &&\n (targetChanged || !this.currentAnimation))) {\n if (this.resumeFrom) {\n this.resumingFrom = this.resumeFrom;\n this.resumingFrom.resumingFrom = undefined;\n }\n this.setAnimationOrigin(delta, hasOnlyRelativeTargetChanged);\n const animationOptions = {\n ...getValueTransition(layoutTransition, \"layout\"),\n onPlay: onLayoutAnimationStart,\n onComplete: onLayoutAnimationComplete,\n };\n if (visualElement.shouldReduceMotion ||\n this.options.layoutRoot) {\n animationOptions.delay = 0;\n animationOptions.type = false;\n }\n this.startAnimation(animationOptions);\n }\n else {\n /**\n * If the layout hasn't changed and we have an animation that hasn't started yet,\n * finish it immediately. Otherwise it will be animating from a location\n * that was probably never commited to screen and look like a jumpy box.\n */\n if (!hasLayoutChanged) {\n finishAnimation(this);\n }\n if (this.isLead() && this.options.onExitComplete) {\n this.options.onExitComplete();\n }\n }\n this.targetLayout = newLayout;\n });\n }\n }\n unmount() {\n this.options.layoutId && this.willUpdate();\n this.root.nodes.remove(this);\n const stack = this.getStack();\n stack && stack.remove(this);\n this.parent && this.parent.children.delete(this);\n this.instance = undefined;\n cancelFrame(this.updateProjection);\n }\n // only on the root\n blockUpdate() {\n this.updateManuallyBlocked = true;\n }\n unblockUpdate() {\n this.updateManuallyBlocked = false;\n }\n isUpdateBlocked() {\n return this.updateManuallyBlocked || this.updateBlockedByResize;\n }\n isTreeAnimationBlocked() {\n return (this.isAnimationBlocked ||\n (this.parent && this.parent.isTreeAnimationBlocked()) ||\n false);\n }\n // Note: currently only running on root node\n startUpdate() {\n if (this.isUpdateBlocked())\n return;\n this.isUpdating = true;\n this.nodes && this.nodes.forEach(resetSkewAndRotation);\n this.animationId++;\n }\n getTransformTemplate() {\n const { visualElement } = this.options;\n return visualElement && visualElement.getProps().transformTemplate;\n }\n willUpdate(shouldNotifyListeners = true) {\n this.root.hasTreeAnimated = true;\n if (this.root.isUpdateBlocked()) {\n this.options.onExitComplete && this.options.onExitComplete();\n return;\n }\n !this.root.isUpdating && this.root.startUpdate();\n if (this.isLayoutDirty)\n return;\n this.isLayoutDirty = true;\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.shouldResetTransform = true;\n node.updateScroll(\"snapshot\");\n if (node.options.layoutRoot) {\n node.willUpdate(false);\n }\n }\n const { layoutId, layout } = this.options;\n if (layoutId === undefined && !layout)\n return;\n const transformTemplate = this.getTransformTemplate();\n this.prevTransformTemplateValue = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : undefined;\n this.updateSnapshot();\n shouldNotifyListeners && this.notifyListeners(\"willUpdate\");\n }\n update() {\n this.updateScheduled = false;\n const updateWasBlocked = this.isUpdateBlocked();\n // When doing an instant transition, we skip the layout update,\n // but should still clean up the measurements so that the next\n // snapshot could be taken correctly.\n if (updateWasBlocked) {\n this.unblockUpdate();\n this.clearAllSnapshots();\n this.nodes.forEach(clearMeasurements);\n return;\n }\n if (!this.isUpdating) {\n this.nodes.forEach(clearIsLayoutDirty);\n }\n this.isUpdating = false;\n /**\n * Write\n */\n if (window.HandoffCancelAllAnimations) {\n window.HandoffCancelAllAnimations();\n }\n this.nodes.forEach(resetTransformStyle);\n /**\n * Read ==================\n */\n // Update layout measurements of updated children\n this.nodes.forEach(updateLayout);\n /**\n * Write\n */\n // Notify listeners that the layout is updated\n this.nodes.forEach(notifyLayoutUpdate);\n this.clearAllSnapshots();\n /**\n * Manually flush any pending updates. Ideally\n * we could leave this to the following requestAnimationFrame but this seems\n * to leave a flash of incorrectly styled content.\n */\n const now = time.now();\n frameData.delta = clamp(0, 1000 / 60, now - frameData.timestamp);\n frameData.timestamp = now;\n frameData.isProcessing = true;\n steps.update.process(frameData);\n steps.preRender.process(frameData);\n steps.render.process(frameData);\n frameData.isProcessing = false;\n }\n didUpdate() {\n if (!this.updateScheduled) {\n this.updateScheduled = true;\n microtask.read(() => this.update());\n }\n }\n clearAllSnapshots() {\n this.nodes.forEach(clearSnapshot);\n this.sharedNodes.forEach(removeLeadSnapshots);\n }\n scheduleUpdateProjection() {\n if (!this.projectionUpdateScheduled) {\n this.projectionUpdateScheduled = true;\n frame.preRender(this.updateProjection, false, true);\n }\n }\n scheduleCheckAfterUnmount() {\n /**\n * If the unmounting node is in a layoutGroup and did trigger a willUpdate,\n * we manually call didUpdate to give a chance to the siblings to animate.\n * Otherwise, cleanup all snapshots to prevents future nodes from reusing them.\n */\n frame.postRender(() => {\n if (this.isLayoutDirty) {\n this.root.didUpdate();\n }\n else {\n this.root.checkUpdateFailed();\n }\n });\n }\n /**\n * Update measurements\n */\n updateSnapshot() {\n if (this.snapshot || !this.instance)\n return;\n this.snapshot = this.measure();\n }\n updateLayout() {\n if (!this.instance)\n return;\n // TODO: Incorporate into a forwarded scroll offset\n this.updateScroll();\n if (!(this.options.alwaysMeasureLayout && this.isLead()) &&\n !this.isLayoutDirty) {\n return;\n }\n /**\n * When a node is mounted, it simply resumes from the prevLead's\n * snapshot instead of taking a new one, but the ancestors scroll\n * might have updated while the prevLead is unmounted. We need to\n * update the scroll again to make sure the layout we measure is\n * up to date.\n */\n if (this.resumeFrom && !this.resumeFrom.instance) {\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.updateScroll();\n }\n }\n const prevLayout = this.layout;\n this.layout = this.measure(false);\n this.layoutCorrected = createBox();\n this.isLayoutDirty = false;\n this.projectionDelta = undefined;\n this.notifyListeners(\"measure\", this.layout.layoutBox);\n const { visualElement } = this.options;\n visualElement &&\n visualElement.notify(\"LayoutMeasure\", this.layout.layoutBox, prevLayout ? prevLayout.layoutBox : undefined);\n }\n updateScroll(phase = \"measure\") {\n let needsMeasurement = Boolean(this.options.layoutScroll && this.instance);\n if (this.scroll &&\n this.scroll.animationId === this.root.animationId &&\n this.scroll.phase === phase) {\n needsMeasurement = false;\n }\n if (needsMeasurement) {\n this.scroll = {\n animationId: this.root.animationId,\n phase,\n isRoot: checkIsScrollRoot(this.instance),\n offset: measureScroll(this.instance),\n };\n }\n }\n resetTransform() {\n if (!resetTransform)\n return;\n const isResetRequested = this.isLayoutDirty || this.shouldResetTransform;\n const hasProjection = this.projectionDelta && !isDeltaZero(this.projectionDelta);\n const transformTemplate = this.getTransformTemplate();\n const transformTemplateValue = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : undefined;\n const transformTemplateHasChanged = transformTemplateValue !== this.prevTransformTemplateValue;\n if (isResetRequested &&\n (hasProjection ||\n hasTransform(this.latestValues) ||\n transformTemplateHasChanged)) {\n resetTransform(this.instance, transformTemplateValue);\n this.shouldResetTransform = false;\n this.scheduleRender();\n }\n }\n measure(removeTransform = true) {\n const pageBox = this.measurePageBox();\n let layoutBox = this.removeElementScroll(pageBox);\n /**\n * Measurements taken during the pre-render stage\n * still have transforms applied so we remove them\n * via calculation.\n */\n if (removeTransform) {\n layoutBox = this.removeTransform(layoutBox);\n }\n roundBox(layoutBox);\n return {\n animationId: this.root.animationId,\n measuredBox: pageBox,\n layoutBox,\n latestValues: {},\n source: this.id,\n };\n }\n measurePageBox() {\n const { visualElement } = this.options;\n if (!visualElement)\n return createBox();\n const box = visualElement.measureViewportBox();\n // Remove viewport scroll to give page-relative coordinates\n const { scroll } = this.root;\n if (scroll) {\n translateAxis(box.x, scroll.offset.x);\n translateAxis(box.y, scroll.offset.y);\n }\n return box;\n }\n removeElementScroll(box) {\n const boxWithoutScroll = createBox();\n copyBoxInto(boxWithoutScroll, box);\n /**\n * Performance TODO: Keep a cumulative scroll offset down the tree\n * rather than loop back up the path.\n */\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n const { scroll, options } = node;\n if (node !== this.root && scroll && options.layoutScroll) {\n /**\n * If this is a new scroll root, we want to remove all previous scrolls\n * from the viewport box.\n */\n if (scroll.isRoot) {\n copyBoxInto(boxWithoutScroll, box);\n const { scroll: rootScroll } = this.root;\n /**\n * Undo the application of page scroll that was originally added\n * to the measured bounding box.\n */\n if (rootScroll) {\n translateAxis(boxWithoutScroll.x, -rootScroll.offset.x);\n translateAxis(boxWithoutScroll.y, -rootScroll.offset.y);\n }\n }\n translateAxis(boxWithoutScroll.x, scroll.offset.x);\n translateAxis(boxWithoutScroll.y, scroll.offset.y);\n }\n }\n return boxWithoutScroll;\n }\n applyTransform(box, transformOnly = false) {\n const withTransforms = createBox();\n copyBoxInto(withTransforms, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!transformOnly &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(withTransforms, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (!hasTransform(node.latestValues))\n continue;\n transformBox(withTransforms, node.latestValues);\n }\n if (hasTransform(this.latestValues)) {\n transformBox(withTransforms, this.latestValues);\n }\n return withTransforms;\n }\n removeTransform(box) {\n const boxWithoutTransform = createBox();\n copyBoxInto(boxWithoutTransform, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!node.instance)\n continue;\n if (!hasTransform(node.latestValues))\n continue;\n hasScale(node.latestValues) && node.updateSnapshot();\n const sourceBox = createBox();\n const nodeBox = node.measurePageBox();\n copyBoxInto(sourceBox, nodeBox);\n removeBoxTransforms(boxWithoutTransform, node.latestValues, node.snapshot ? node.snapshot.layoutBox : undefined, sourceBox);\n }\n if (hasTransform(this.latestValues)) {\n removeBoxTransforms(boxWithoutTransform, this.latestValues);\n }\n return boxWithoutTransform;\n }\n setTargetDelta(delta) {\n this.targetDelta = delta;\n this.root.scheduleUpdateProjection();\n this.isProjectionDirty = true;\n }\n setOptions(options) {\n this.options = {\n ...this.options,\n ...options,\n crossfade: options.crossfade !== undefined ? options.crossfade : true,\n };\n }\n clearMeasurements() {\n this.scroll = undefined;\n this.layout = undefined;\n this.snapshot = undefined;\n this.prevTransformTemplateValue = undefined;\n this.targetDelta = undefined;\n this.target = undefined;\n this.isLayoutDirty = false;\n }\n forceRelativeParentToResolveTarget() {\n if (!this.relativeParent)\n return;\n /**\n * If the parent target isn't up-to-date, force it to update.\n * This is an unfortunate de-optimisation as it means any updating relative\n * projection will cause all the relative parents to recalculate back\n * up the tree.\n */\n if (this.relativeParent.resolvedRelativeTargetAt !==\n frameData.timestamp) {\n this.relativeParent.resolveTargetDelta(true);\n }\n }\n resolveTargetDelta(forceRecalculation = false) {\n var _a;\n /**\n * Once the dirty status of nodes has been spread through the tree, we also\n * need to check if we have a shared node of a different depth that has itself\n * been dirtied.\n */\n const lead = this.getLead();\n this.isProjectionDirty || (this.isProjectionDirty = lead.isProjectionDirty);\n this.isTransformDirty || (this.isTransformDirty = lead.isTransformDirty);\n this.isSharedProjectionDirty || (this.isSharedProjectionDirty = lead.isSharedProjectionDirty);\n const isShared = Boolean(this.resumingFrom) || this !== lead;\n /**\n * We don't use transform for this step of processing so we don't\n * need to check whether any nodes have changed transform.\n */\n const canSkip = !(forceRecalculation ||\n (isShared && this.isSharedProjectionDirty) ||\n this.isProjectionDirty ||\n ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isProjectionDirty) ||\n this.attemptToResolveRelativeTarget);\n if (canSkip)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If we have no layout, we can't perform projection, so early return\n */\n if (!this.layout || !(layout || layoutId))\n return;\n this.resolvedRelativeTargetAt = frameData.timestamp;\n /**\n * If we don't have a targetDelta but do have a layout, we can attempt to resolve\n * a relativeParent. This will allow a component to perform scale correction\n * even if no animation has started.\n */\n if (!this.targetDelta && !this.relativeTarget) {\n const relativeParent = this.getClosestProjectingParent();\n if (relativeParent &&\n relativeParent.layout &&\n this.animationProgress !== 1) {\n this.relativeParent = relativeParent;\n this.forceRelativeParentToResolveTarget();\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.layout.layoutBox, relativeParent.layout.layoutBox);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n }\n else {\n this.relativeParent = this.relativeTarget = undefined;\n }\n }\n /**\n * If we have no relative target or no target delta our target isn't valid\n * for this frame.\n */\n if (!this.relativeTarget && !this.targetDelta)\n return;\n /**\n * Lazy-init target data structure\n */\n if (!this.target) {\n this.target = createBox();\n this.targetWithTransforms = createBox();\n }\n /**\n * If we've got a relative box for this component, resolve it into a target relative to the parent.\n */\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n this.relativeParent &&\n this.relativeParent.target) {\n this.forceRelativeParentToResolveTarget();\n calcRelativeBox(this.target, this.relativeTarget, this.relativeParent.target);\n /**\n * If we've only got a targetDelta, resolve it into a target\n */\n }\n else if (this.targetDelta) {\n if (Boolean(this.resumingFrom)) {\n // TODO: This is creating a new object every frame\n this.target = this.applyTransform(this.layout.layoutBox);\n }\n else {\n copyBoxInto(this.target, this.layout.layoutBox);\n }\n applyBoxDelta(this.target, this.targetDelta);\n }\n else {\n /**\n * If no target, use own layout as target\n */\n copyBoxInto(this.target, this.layout.layoutBox);\n }\n /**\n * If we've been told to attempt to resolve a relative target, do so.\n */\n if (this.attemptToResolveRelativeTarget) {\n this.attemptToResolveRelativeTarget = false;\n const relativeParent = this.getClosestProjectingParent();\n if (relativeParent &&\n Boolean(relativeParent.resumingFrom) ===\n Boolean(this.resumingFrom) &&\n !relativeParent.options.layoutScroll &&\n relativeParent.target &&\n this.animationProgress !== 1) {\n this.relativeParent = relativeParent;\n this.forceRelativeParentToResolveTarget();\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.target, relativeParent.target);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n }\n else {\n this.relativeParent = this.relativeTarget = undefined;\n }\n }\n /**\n * Increase debug counter for resolved target deltas\n */\n projectionFrameData.resolvedTargetDeltas++;\n }\n getClosestProjectingParent() {\n if (!this.parent ||\n hasScale(this.parent.latestValues) ||\n has2DTranslate(this.parent.latestValues)) {\n return undefined;\n }\n if (this.parent.isProjecting()) {\n return this.parent;\n }\n else {\n return this.parent.getClosestProjectingParent();\n }\n }\n isProjecting() {\n return Boolean((this.relativeTarget ||\n this.targetDelta ||\n this.options.layoutRoot) &&\n this.layout);\n }\n calcProjection() {\n var _a;\n const lead = this.getLead();\n const isShared = Boolean(this.resumingFrom) || this !== lead;\n let canSkip = true;\n /**\n * If this is a normal layout animation and neither this node nor its nearest projecting\n * is dirty then we can't skip.\n */\n if (this.isProjectionDirty || ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isProjectionDirty)) {\n canSkip = false;\n }\n /**\n * If this is a shared layout animation and this node's shared projection is dirty then\n * we can't skip.\n */\n if (isShared &&\n (this.isSharedProjectionDirty || this.isTransformDirty)) {\n canSkip = false;\n }\n /**\n * If we have resolved the target this frame we must recalculate the\n * projection to ensure it visually represents the internal calculations.\n */\n if (this.resolvedRelativeTargetAt === frameData.timestamp) {\n canSkip = false;\n }\n if (canSkip)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If this section of the tree isn't animating we can\n * delete our target sources for the following frame.\n */\n this.isTreeAnimating = Boolean((this.parent && this.parent.isTreeAnimating) ||\n this.currentAnimation ||\n this.pendingAnimation);\n if (!this.isTreeAnimating) {\n this.targetDelta = this.relativeTarget = undefined;\n }\n if (!this.layout || !(layout || layoutId))\n return;\n /**\n * Reset the corrected box with the latest values from box, as we're then going\n * to perform mutative operations on it.\n */\n copyBoxInto(this.layoutCorrected, this.layout.layoutBox);\n /**\n * Record previous tree scales before updating.\n */\n const prevTreeScaleX = this.treeScale.x;\n const prevTreeScaleY = this.treeScale.y;\n /**\n * Apply all the parent deltas to this box to produce the corrected box. This\n * is the layout box, as it will appear on screen as a result of the transforms of its parents.\n */\n applyTreeDeltas(this.layoutCorrected, this.treeScale, this.path, isShared);\n /**\n * If this layer needs to perform scale correction but doesn't have a target,\n * use the layout as the target.\n */\n if (lead.layout &&\n !lead.target &&\n (this.treeScale.x !== 1 || this.treeScale.y !== 1)) {\n lead.target = lead.layout.layoutBox;\n lead.targetWithTransforms = createBox();\n }\n const { target } = lead;\n if (!target) {\n /**\n * If we don't have a target to project into, but we were previously\n * projecting, we want to remove the stored transform and schedule\n * a render to ensure the elements reflect the removed transform.\n */\n if (this.projectionTransform) {\n this.projectionDelta = createDelta();\n this.projectionTransform = \"none\";\n this.scheduleRender();\n }\n return;\n }\n if (!this.projectionDelta) {\n this.projectionDelta = createDelta();\n this.projectionDeltaWithTransform = createDelta();\n }\n const prevProjectionTransform = this.projectionTransform;\n /**\n * Update the delta between the corrected box and the target box before user-set transforms were applied.\n * This will allow us to calculate the corrected borderRadius and boxShadow to compensate\n * for our layout reprojection, but still allow them to be scaled correctly by the user.\n * It might be that to simplify this we may want to accept that user-set scale is also corrected\n * and we wouldn't have to keep and calc both deltas, OR we could support a user setting\n * to allow people to choose whether these styles are corrected based on just the\n * layout reprojection or the final bounding box.\n */\n calcBoxDelta(this.projectionDelta, this.layoutCorrected, target, this.latestValues);\n this.projectionTransform = buildProjectionTransform(this.projectionDelta, this.treeScale);\n if (this.projectionTransform !== prevProjectionTransform ||\n this.treeScale.x !== prevTreeScaleX ||\n this.treeScale.y !== prevTreeScaleY) {\n this.hasProjected = true;\n this.scheduleRender();\n this.notifyListeners(\"projectionUpdate\", target);\n }\n /**\n * Increase debug counter for recalculated projections\n */\n projectionFrameData.recalculatedProjection++;\n }\n hide() {\n this.isVisible = false;\n // TODO: Schedule render\n }\n show() {\n this.isVisible = true;\n // TODO: Schedule render\n }\n scheduleRender(notifyAll = true) {\n this.options.scheduleRender && this.options.scheduleRender();\n if (notifyAll) {\n const stack = this.getStack();\n stack && stack.scheduleRender();\n }\n if (this.resumingFrom && !this.resumingFrom.instance) {\n this.resumingFrom = undefined;\n }\n }\n setAnimationOrigin(delta, hasOnlyRelativeTargetChanged = false) {\n const snapshot = this.snapshot;\n const snapshotLatestValues = snapshot\n ? snapshot.latestValues\n : {};\n const mixedValues = { ...this.latestValues };\n const targetDelta = createDelta();\n if (!this.relativeParent ||\n !this.relativeParent.options.layoutRoot) {\n this.relativeTarget = this.relativeTargetOrigin = undefined;\n }\n this.attemptToResolveRelativeTarget = !hasOnlyRelativeTargetChanged;\n const relativeLayout = createBox();\n const snapshotSource = snapshot ? snapshot.source : undefined;\n const layoutSource = this.layout ? this.layout.source : undefined;\n const isSharedLayoutAnimation = snapshotSource !== layoutSource;\n const stack = this.getStack();\n const isOnlyMember = !stack || stack.members.length <= 1;\n const shouldCrossfadeOpacity = Boolean(isSharedLayoutAnimation &&\n !isOnlyMember &&\n this.options.crossfade === true &&\n !this.path.some(hasOpacityCrossfade));\n this.animationProgress = 0;\n let prevRelativeTarget;\n this.mixTargetDelta = (latest) => {\n const progress = latest / 1000;\n mixAxisDelta(targetDelta.x, delta.x, progress);\n mixAxisDelta(targetDelta.y, delta.y, progress);\n this.setTargetDelta(targetDelta);\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n this.layout &&\n this.relativeParent &&\n this.relativeParent.layout) {\n calcRelativePosition(relativeLayout, this.layout.layoutBox, this.relativeParent.layout.layoutBox);\n mixBox(this.relativeTarget, this.relativeTargetOrigin, relativeLayout, progress);\n /**\n * If this is an unchanged relative target we can consider the\n * projection not dirty.\n */\n if (prevRelativeTarget &&\n boxEquals(this.relativeTarget, prevRelativeTarget)) {\n this.isProjectionDirty = false;\n }\n if (!prevRelativeTarget)\n prevRelativeTarget = createBox();\n copyBoxInto(prevRelativeTarget, this.relativeTarget);\n }\n if (isSharedLayoutAnimation) {\n this.animationValues = mixedValues;\n mixValues(mixedValues, snapshotLatestValues, this.latestValues, progress, shouldCrossfadeOpacity, isOnlyMember);\n }\n this.root.scheduleUpdateProjection();\n this.scheduleRender();\n this.animationProgress = progress;\n };\n this.mixTargetDelta(this.options.layoutRoot ? 1000 : 0);\n }\n startAnimation(options) {\n this.notifyListeners(\"animationStart\");\n this.currentAnimation && this.currentAnimation.stop();\n if (this.resumingFrom && this.resumingFrom.currentAnimation) {\n this.resumingFrom.currentAnimation.stop();\n }\n if (this.pendingAnimation) {\n cancelFrame(this.pendingAnimation);\n this.pendingAnimation = undefined;\n }\n /**\n * Start the animation in the next frame to have a frame with progress 0,\n * where the target is the same as when the animation started, so we can\n * calculate the relative positions correctly for instant transitions.\n */\n this.pendingAnimation = frame.update(() => {\n globalProjectionState.hasAnimatedSinceResize = true;\n this.currentAnimation = animateSingleValue(0, animationTarget, {\n ...options,\n onUpdate: (latest) => {\n this.mixTargetDelta(latest);\n options.onUpdate && options.onUpdate(latest);\n },\n onComplete: () => {\n options.onComplete && options.onComplete();\n this.completeAnimation();\n },\n });\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = this.currentAnimation;\n }\n this.pendingAnimation = undefined;\n });\n }\n completeAnimation() {\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = undefined;\n this.resumingFrom.preserveOpacity = undefined;\n }\n const stack = this.getStack();\n stack && stack.exitAnimationComplete();\n this.resumingFrom =\n this.currentAnimation =\n this.animationValues =\n undefined;\n this.notifyListeners(\"animationComplete\");\n }\n finishAnimation() {\n if (this.currentAnimation) {\n this.mixTargetDelta && this.mixTargetDelta(animationTarget);\n this.currentAnimation.stop();\n }\n this.completeAnimation();\n }\n applyTransformsToTarget() {\n const lead = this.getLead();\n let { targetWithTransforms, target, layout, latestValues } = lead;\n if (!targetWithTransforms || !target || !layout)\n return;\n /**\n * If we're only animating position, and this element isn't the lead element,\n * then instead of projecting into the lead box we instead want to calculate\n * a new target that aligns the two boxes but maintains the layout shape.\n */\n if (this !== lead &&\n this.layout &&\n layout &&\n shouldAnimatePositionOnly(this.options.animationType, this.layout.layoutBox, layout.layoutBox)) {\n target = this.target || createBox();\n const xLength = calcLength(this.layout.layoutBox.x);\n target.x.min = lead.target.x.min;\n target.x.max = target.x.min + xLength;\n const yLength = calcLength(this.layout.layoutBox.y);\n target.y.min = lead.target.y.min;\n target.y.max = target.y.min + yLength;\n }\n copyBoxInto(targetWithTransforms, target);\n /**\n * Apply the latest user-set transforms to the targetBox to produce the targetBoxFinal.\n * This is the final box that we will then project into by calculating a transform delta and\n * applying it to the corrected box.\n */\n transformBox(targetWithTransforms, latestValues);\n /**\n * Update the delta between the corrected box and the final target box, after\n * user-set transforms are applied to it. This will be used by the renderer to\n * create a transform style that will reproject the element from its layout layout\n * into the desired bounding box.\n */\n calcBoxDelta(this.projectionDeltaWithTransform, this.layoutCorrected, targetWithTransforms, latestValues);\n }\n registerSharedNode(layoutId, node) {\n if (!this.sharedNodes.has(layoutId)) {\n this.sharedNodes.set(layoutId, new NodeStack());\n }\n const stack = this.sharedNodes.get(layoutId);\n stack.add(node);\n const config = node.options.initialPromotionConfig;\n node.promote({\n transition: config ? config.transition : undefined,\n preserveFollowOpacity: config && config.shouldPreserveFollowOpacity\n ? config.shouldPreserveFollowOpacity(node)\n : undefined,\n });\n }\n isLead() {\n const stack = this.getStack();\n return stack ? stack.lead === this : true;\n }\n getLead() {\n var _a;\n const { layoutId } = this.options;\n return layoutId ? ((_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.lead) || this : this;\n }\n getPrevLead() {\n var _a;\n const { layoutId } = this.options;\n return layoutId ? (_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.prevLead : undefined;\n }\n getStack() {\n const { layoutId } = this.options;\n if (layoutId)\n return this.root.sharedNodes.get(layoutId);\n }\n promote({ needsReset, transition, preserveFollowOpacity, } = {}) {\n const stack = this.getStack();\n if (stack)\n stack.promote(this, preserveFollowOpacity);\n if (needsReset) {\n this.projectionDelta = undefined;\n this.needsReset = true;\n }\n if (transition)\n this.setOptions({ transition });\n }\n relegate() {\n const stack = this.getStack();\n if (stack) {\n return stack.relegate(this);\n }\n else {\n return false;\n }\n }\n resetSkewAndRotation() {\n const { visualElement } = this.options;\n if (!visualElement)\n return;\n // If there's no detected skew or rotation values, we can early return without a forced render.\n let hasDistortingTransform = false;\n /**\n * An unrolled check for rotation values. Most elements don't have any rotation and\n * skipping the nested loop and new object creation is 50% faster.\n */\n const { latestValues } = visualElement;\n if (latestValues.z ||\n latestValues.rotate ||\n latestValues.rotateX ||\n latestValues.rotateY ||\n latestValues.rotateZ ||\n latestValues.skewX ||\n latestValues.skewY) {\n hasDistortingTransform = true;\n }\n // If there's no distorting values, we don't need to do any more.\n if (!hasDistortingTransform)\n return;\n const resetValues = {};\n if (latestValues.z) {\n resetDistortingTransform(\"z\", visualElement, resetValues, this.animationValues);\n }\n // Check the skew and rotate value of all axes and reset to 0\n for (let i = 0; i < transformAxes.length; i++) {\n resetDistortingTransform(`rotate${transformAxes[i]}`, visualElement, resetValues, this.animationValues);\n resetDistortingTransform(`skew${transformAxes[i]}`, visualElement, resetValues, this.animationValues);\n }\n // Force a render of this element to apply the transform with all skews and rotations\n // set to 0.\n visualElement.render();\n // Put back all the values we reset\n for (const key in resetValues) {\n visualElement.setStaticValue(key, resetValues[key]);\n if (this.animationValues) {\n this.animationValues[key] = resetValues[key];\n }\n }\n // Schedule a render for the next frame. This ensures we won't visually\n // see the element with the reset rotate value applied.\n visualElement.scheduleRender();\n }\n getProjectionStyles(styleProp) {\n var _a, _b;\n if (!this.instance || this.isSVG)\n return undefined;\n if (!this.isVisible) {\n return hiddenVisibility;\n }\n const styles = {\n visibility: \"\",\n };\n const transformTemplate = this.getTransformTemplate();\n if (this.needsReset) {\n this.needsReset = false;\n styles.opacity = \"\";\n styles.pointerEvents =\n resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || \"\";\n styles.transform = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : \"none\";\n return styles;\n }\n const lead = this.getLead();\n if (!this.projectionDelta || !this.layout || !lead.target) {\n const emptyStyles = {};\n if (this.options.layoutId) {\n emptyStyles.opacity =\n this.latestValues.opacity !== undefined\n ? this.latestValues.opacity\n : 1;\n emptyStyles.pointerEvents =\n resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || \"\";\n }\n if (this.hasProjected && !hasTransform(this.latestValues)) {\n emptyStyles.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n this.hasProjected = false;\n }\n return emptyStyles;\n }\n const valuesToRender = lead.animationValues || lead.latestValues;\n this.applyTransformsToTarget();\n styles.transform = buildProjectionTransform(this.projectionDeltaWithTransform, this.treeScale, valuesToRender);\n if (transformTemplate) {\n styles.transform = transformTemplate(valuesToRender, styles.transform);\n }\n const { x, y } = this.projectionDelta;\n styles.transformOrigin = `${x.origin * 100}% ${y.origin * 100}% 0`;\n if (lead.animationValues) {\n /**\n * If the lead component is animating, assign this either the entering/leaving\n * opacity\n */\n styles.opacity =\n lead === this\n ? (_b = (_a = valuesToRender.opacity) !== null && _a !== void 0 ? _a : this.latestValues.opacity) !== null && _b !== void 0 ? _b : 1\n : this.preserveOpacity\n ? this.latestValues.opacity\n : valuesToRender.opacityExit;\n }\n else {\n /**\n * Or we're not animating at all, set the lead component to its layout\n * opacity and other components to hidden.\n */\n styles.opacity =\n lead === this\n ? valuesToRender.opacity !== undefined\n ? valuesToRender.opacity\n : \"\"\n : valuesToRender.opacityExit !== undefined\n ? valuesToRender.opacityExit\n : 0;\n }\n /**\n * Apply scale correction\n */\n for (const key in scaleCorrectors) {\n if (valuesToRender[key] === undefined)\n continue;\n const { correct, applyTo } = scaleCorrectors[key];\n /**\n * Only apply scale correction to the value if we have an\n * active projection transform. Otherwise these values become\n * vulnerable to distortion if the element changes size without\n * a corresponding layout animation.\n */\n const corrected = styles.transform === \"none\"\n ? valuesToRender[key]\n : correct(valuesToRender[key], lead);\n if (applyTo) {\n const num = applyTo.length;\n for (let i = 0; i < num; i++) {\n styles[applyTo[i]] = corrected;\n }\n }\n else {\n styles[key] = corrected;\n }\n }\n /**\n * Disable pointer events on follow components. This is to ensure\n * that if a follow component covers a lead component it doesn't block\n * pointer events on the lead.\n */\n if (this.options.layoutId) {\n styles.pointerEvents =\n lead === this\n ? resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || \"\"\n : \"none\";\n }\n return styles;\n }\n clearSnapshot() {\n this.resumeFrom = this.snapshot = undefined;\n }\n // Only run on root\n resetTree() {\n this.root.nodes.forEach((node) => { var _a; return (_a = node.currentAnimation) === null || _a === void 0 ? void 0 : _a.stop(); });\n this.root.nodes.forEach(clearMeasurements);\n this.root.sharedNodes.clear();\n }\n };\n}\nfunction updateLayout(node) {\n node.updateLayout();\n}\nfunction notifyLayoutUpdate(node) {\n var _a;\n const snapshot = ((_a = node.resumeFrom) === null || _a === void 0 ? void 0 : _a.snapshot) || node.snapshot;\n if (node.isLead() &&\n node.layout &&\n snapshot &&\n node.hasListeners(\"didUpdate\")) {\n const { layoutBox: layout, measuredBox: measuredLayout } = node.layout;\n const { animationType } = node.options;\n const isShared = snapshot.source !== node.layout.source;\n // TODO Maybe we want to also resize the layout snapshot so we don't trigger\n // animations for instance if layout=\"size\" and an element has only changed position\n if (animationType === \"size\") {\n eachAxis((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = calcLength(axisSnapshot);\n axisSnapshot.min = layout[axis].min;\n axisSnapshot.max = axisSnapshot.min + length;\n });\n }\n else if (shouldAnimatePositionOnly(animationType, snapshot.layoutBox, layout)) {\n eachAxis((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = calcLength(layout[axis]);\n axisSnapshot.max = axisSnapshot.min + length;\n /**\n * Ensure relative target gets resized and rerendererd\n */\n if (node.relativeTarget && !node.currentAnimation) {\n node.isProjectionDirty = true;\n node.relativeTarget[axis].max =\n node.relativeTarget[axis].min + length;\n }\n });\n }\n const layoutDelta = createDelta();\n calcBoxDelta(layoutDelta, layout, snapshot.layoutBox);\n const visualDelta = createDelta();\n if (isShared) {\n calcBoxDelta(visualDelta, node.applyTransform(measuredLayout, true), snapshot.measuredBox);\n }\n else {\n calcBoxDelta(visualDelta, layout, snapshot.layoutBox);\n }\n const hasLayoutChanged = !isDeltaZero(layoutDelta);\n let hasRelativeTargetChanged = false;\n if (!node.resumeFrom) {\n const relativeParent = node.getClosestProjectingParent();\n /**\n * If the relativeParent is itself resuming from a different element then\n * the relative snapshot is not relavent\n */\n if (relativeParent && !relativeParent.resumeFrom) {\n const { snapshot: parentSnapshot, layout: parentLayout } = relativeParent;\n if (parentSnapshot && parentLayout) {\n const relativeSnapshot = createBox();\n calcRelativePosition(relativeSnapshot, snapshot.layoutBox, parentSnapshot.layoutBox);\n const relativeLayout = createBox();\n calcRelativePosition(relativeLayout, layout, parentLayout.layoutBox);\n if (!boxEqualsRounded(relativeSnapshot, relativeLayout)) {\n hasRelativeTargetChanged = true;\n }\n if (relativeParent.options.layoutRoot) {\n node.relativeTarget = relativeLayout;\n node.relativeTargetOrigin = relativeSnapshot;\n node.relativeParent = relativeParent;\n }\n }\n }\n }\n node.notifyListeners(\"didUpdate\", {\n layout,\n snapshot,\n delta: visualDelta,\n layoutDelta,\n hasLayoutChanged,\n hasRelativeTargetChanged,\n });\n }\n else if (node.isLead()) {\n const { onExitComplete } = node.options;\n onExitComplete && onExitComplete();\n }\n /**\n * Clearing transition\n * TODO: Investigate why this transition is being passed in as {type: false } from Framer\n * and why we need it at all\n */\n node.options.transition = undefined;\n}\nfunction propagateDirtyNodes(node) {\n /**\n * Increase debug counter for nodes encountered this frame\n */\n projectionFrameData.totalNodes++;\n if (!node.parent)\n return;\n /**\n * If this node isn't projecting, propagate isProjectionDirty. It will have\n * no performance impact but it will allow the next child that *is* projecting\n * but *isn't* dirty to just check its parent to see if *any* ancestor needs\n * correcting.\n */\n if (!node.isProjecting()) {\n node.isProjectionDirty = node.parent.isProjectionDirty;\n }\n /**\n * Propagate isSharedProjectionDirty and isTransformDirty\n * throughout the whole tree. A future revision can take another look at\n * this but for safety we still recalcualte shared nodes.\n */\n node.isSharedProjectionDirty || (node.isSharedProjectionDirty = Boolean(node.isProjectionDirty ||\n node.parent.isProjectionDirty ||\n node.parent.isSharedProjectionDirty));\n node.isTransformDirty || (node.isTransformDirty = node.parent.isTransformDirty);\n}\nfunction cleanDirtyNodes(node) {\n node.isProjectionDirty =\n node.isSharedProjectionDirty =\n node.isTransformDirty =\n false;\n}\nfunction clearSnapshot(node) {\n node.clearSnapshot();\n}\nfunction clearMeasurements(node) {\n node.clearMeasurements();\n}\nfunction clearIsLayoutDirty(node) {\n node.isLayoutDirty = false;\n}\nfunction resetTransformStyle(node) {\n const { visualElement } = node.options;\n if (visualElement && visualElement.getProps().onBeforeLayoutMeasure) {\n visualElement.notify(\"BeforeLayoutMeasure\");\n }\n node.resetTransform();\n}\nfunction finishAnimation(node) {\n node.finishAnimation();\n node.targetDelta = node.relativeTarget = node.target = undefined;\n node.isProjectionDirty = true;\n}\nfunction resolveTargetDelta(node) {\n node.resolveTargetDelta();\n}\nfunction calcProjection(node) {\n node.calcProjection();\n}\nfunction resetSkewAndRotation(node) {\n node.resetSkewAndRotation();\n}\nfunction removeLeadSnapshots(stack) {\n stack.removeLeadSnapshot();\n}\nfunction mixAxisDelta(output, delta, p) {\n output.translate = mixNumber(delta.translate, 0, p);\n output.scale = mixNumber(delta.scale, 1, p);\n output.origin = delta.origin;\n output.originPoint = delta.originPoint;\n}\nfunction mixAxis(output, from, to, p) {\n output.min = mixNumber(from.min, to.min, p);\n output.max = mixNumber(from.max, to.max, p);\n}\nfunction mixBox(output, from, to, p) {\n mixAxis(output.x, from.x, to.x, p);\n mixAxis(output.y, from.y, to.y, p);\n}\nfunction hasOpacityCrossfade(node) {\n return (node.animationValues && node.animationValues.opacityExit !== undefined);\n}\nconst defaultLayoutTransition = {\n duration: 0.45,\n ease: [0.4, 0, 0.1, 1],\n};\nconst userAgentContains = (string) => typeof navigator !== \"undefined\" &&\n navigator.userAgent &&\n navigator.userAgent.toLowerCase().includes(string);\n/**\n * Measured bounding boxes must be rounded in Safari and\n * left untouched in Chrome, otherwise non-integer layouts within scaled-up elements\n * can appear to jump.\n */\nconst roundPoint = userAgentContains(\"applewebkit/\") && !userAgentContains(\"chrome/\")\n ? Math.round\n : noop;\nfunction roundAxis(axis) {\n // Round to the nearest .5 pixels to support subpixel layouts\n axis.min = roundPoint(axis.min);\n axis.max = roundPoint(axis.max);\n}\nfunction roundBox(box) {\n roundAxis(box.x);\n roundAxis(box.y);\n}\nfunction shouldAnimatePositionOnly(animationType, snapshot, layout) {\n return (animationType === \"position\" ||\n (animationType === \"preserve-aspect\" &&\n !isNear(aspectRatio(snapshot), aspectRatio(layout), 0.2)));\n}\n\nexport { cleanDirtyNodes, createProjectionNode, mixAxis, mixAxisDelta, mixBox, propagateDirtyNodes };\n","function record(data) {\n if (window.MotionDebug) {\n window.MotionDebug.record(data);\n }\n}\n\nexport { record };\n","function isSVGElement(element) {\n return element instanceof SVGElement && element.tagName !== \"svg\";\n}\n\nexport { isSVGElement };\n","import { time } from '../frameloop/sync-time.mjs';\nimport { frame, cancelFrame } from '../frameloop/frame.mjs';\n\n/**\n * Timeout defined in ms\n */\nfunction delay(callback, timeout) {\n const start = time.now();\n const checkElapsed = ({ timestamp }) => {\n const elapsed = timestamp - start;\n if (elapsed >= timeout) {\n cancelFrame(checkElapsed);\n callback(elapsed - timeout);\n }\n };\n frame.read(checkElapsed, true);\n return () => cancelFrame(checkElapsed);\n}\n\nexport { delay };\n","import { animateMotionValue } from './motion-value.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction animateSingleValue(value, keyframes, options) {\n const motionValue$1 = isMotionValue(value) ? value : motionValue(value);\n motionValue$1.start(animateMotionValue(\"\", motionValue$1, keyframes, options));\n return motionValue$1.animation;\n}\n\nexport { animateSingleValue };\n","import { createProjectionNode } from './create-projection-node.mjs';\nimport { addDomEvent } from '../../events/add-dom-event.mjs';\n\nconst DocumentProjectionNode = createProjectionNode({\n attachResizeListener: (ref, notify) => addDomEvent(ref, \"resize\", notify),\n measureScroll: () => ({\n x: document.documentElement.scrollLeft || document.body.scrollLeft,\n y: document.documentElement.scrollTop || document.body.scrollTop,\n }),\n checkIsScrollRoot: () => true,\n});\n\nexport { DocumentProjectionNode };\n","import { createProjectionNode } from './create-projection-node.mjs';\nimport { DocumentProjectionNode } from './DocumentProjectionNode.mjs';\n\nconst rootProjectionNode = {\n current: undefined,\n};\nconst HTMLProjectionNode = createProjectionNode({\n measureScroll: (instance) => ({\n x: instance.scrollLeft,\n y: instance.scrollTop,\n }),\n defaultParent: () => {\n if (!rootProjectionNode.current) {\n const documentNode = new DocumentProjectionNode({});\n documentNode.mount(window);\n documentNode.setOptions({ layoutScroll: true });\n rootProjectionNode.current = documentNode;\n }\n return rootProjectionNode.current;\n },\n resetTransform: (instance, value) => {\n instance.style.transform = value !== undefined ? value : \"none\";\n },\n checkIsScrollRoot: (instance) => Boolean(window.getComputedStyle(instance).position === \"fixed\"),\n});\n\nexport { HTMLProjectionNode, rootProjectionNode };\n","import { DragGesture } from '../../gestures/drag/index.mjs';\nimport { PanGesture } from '../../gestures/pan/index.mjs';\nimport { MeasureLayout } from './layout/MeasureLayout.mjs';\nimport { HTMLProjectionNode } from '../../projection/node/HTMLProjectionNode.mjs';\n\nconst drag = {\n pan: {\n Feature: PanGesture,\n },\n drag: {\n Feature: DragGesture,\n ProjectionNode: HTMLProjectionNode,\n MeasureLayout,\n },\n};\n\nexport { drag };\n","import { Feature } from '../../motion/features/Feature.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { VisualElementDragControls } from './VisualElementDragControls.mjs';\n\nclass DragGesture extends Feature {\n constructor(node) {\n super(node);\n this.removeGroupControls = noop;\n this.removeListeners = noop;\n this.controls = new VisualElementDragControls(node);\n }\n mount() {\n // If we've been provided a DragControls for manual control over the drag gesture,\n // subscribe this component to it on mount.\n const { dragControls } = this.node.getProps();\n if (dragControls) {\n this.removeGroupControls = dragControls.subscribe(this.controls);\n }\n this.removeListeners = this.controls.addListeners() || noop;\n }\n unmount() {\n this.removeGroupControls();\n this.removeListeners();\n }\n}\n\nexport { DragGesture };\n","// Does this device prefer reduced motion? Returns `null` server-side.\nconst prefersReducedMotion = { current: null };\nconst hasReducedMotionListener = { current: false };\n\nexport { hasReducedMotionListener, prefersReducedMotion };\n","const visualElementStore = new WeakMap();\n\nexport { visualElementStore };\n","import { color } from '../../../value/types/color/index.mjs';\nimport { complex } from '../../../value/types/complex/index.mjs';\nimport { dimensionValueTypes } from './dimensions.mjs';\nimport { testValueType } from './test.mjs';\n\n/**\n * A list of all ValueTypes\n */\nconst valueTypes = [...dimensionValueTypes, color, complex];\n/**\n * Tests a value against the list of ValueTypes\n */\nconst findValueType = (v) => valueTypes.find(testValueType(v));\n\nexport { findValueType };\n","import { warning, invariant } from '../utils/errors.mjs';\nimport { createBox } from '../projection/geometry/models.mjs';\nimport { isRefObject } from '../utils/is-ref-object.mjs';\nimport { initPrefersReducedMotion } from '../utils/reduced-motion/index.mjs';\nimport { hasReducedMotionListener, prefersReducedMotion } from '../utils/reduced-motion/state.mjs';\nimport { SubscriptionManager } from '../utils/subscription-manager.mjs';\nimport { motionValue } from '../value/index.mjs';\nimport { isWillChangeMotionValue } from '../value/use-will-change/is.mjs';\nimport { isMotionValue } from '../value/utils/is-motion-value.mjs';\nimport { transformProps } from './html/utils/transform.mjs';\nimport { isControllingVariants, isVariantNode } from './utils/is-controlling-variants.mjs';\nimport { isVariantLabel } from './utils/is-variant-label.mjs';\nimport { updateMotionValuesFromProps } from './utils/motion-values.mjs';\nimport { resolveVariantFromProps } from './utils/resolve-variants.mjs';\nimport { warnOnce } from '../utils/warn-once.mjs';\nimport { featureDefinitions } from '../motion/features/definitions.mjs';\nimport { variantProps } from './utils/variant-props.mjs';\nimport { visualElementStore } from './store.mjs';\nimport { KeyframeResolver } from './utils/KeyframesResolver.mjs';\nimport { isNumericalString } from '../utils/is-numerical-string.mjs';\nimport { isZeroValueString } from '../utils/is-zero-value-string.mjs';\nimport { findValueType } from './dom/value-types/find.mjs';\nimport { complex } from '../value/types/complex/index.mjs';\nimport { getAnimatableNone } from './dom/value-types/animatable-none.mjs';\nimport { frame, cancelFrame } from '../frameloop/frame.mjs';\n\nconst featureNames = Object.keys(featureDefinitions);\nconst numFeatures = featureNames.length;\nconst propEventHandlers = [\n \"AnimationStart\",\n \"AnimationComplete\",\n \"Update\",\n \"BeforeLayoutMeasure\",\n \"LayoutMeasure\",\n \"LayoutAnimationStart\",\n \"LayoutAnimationComplete\",\n];\nconst numVariantProps = variantProps.length;\nfunction getClosestProjectingNode(visualElement) {\n if (!visualElement)\n return undefined;\n return visualElement.options.allowProjection !== false\n ? visualElement.projection\n : getClosestProjectingNode(visualElement.parent);\n}\n/**\n * A VisualElement is an imperative abstraction around UI elements such as\n * HTMLElement, SVGElement, Three.Object3D etc.\n */\nclass VisualElement {\n constructor({ parent, props, presenceContext, reducedMotionConfig, blockInitialAnimation, visualState, }, options = {}) {\n this.resolveKeyframes = (keyframes, \n // We use an onComplete callback here rather than a Promise as a Promise\n // resolution is a microtask and we want to retain the ability to force\n // the resolution of keyframes synchronously.\n onComplete, name, value) => {\n return new this.KeyframeResolver(keyframes, onComplete, name, value, this);\n };\n /**\n * A reference to the current underlying Instance, e.g. a HTMLElement\n * or Three.Mesh etc.\n */\n this.current = null;\n /**\n * A set containing references to this VisualElement's children.\n */\n this.children = new Set();\n /**\n * Determine what role this visual element should take in the variant tree.\n */\n this.isVariantNode = false;\n this.isControllingVariants = false;\n /**\n * Decides whether this VisualElement should animate in reduced motion\n * mode.\n *\n * TODO: This is currently set on every individual VisualElement but feels\n * like it could be set globally.\n */\n this.shouldReduceMotion = null;\n /**\n * A map of all motion values attached to this visual element. Motion\n * values are source of truth for any given animated value. A motion\n * value might be provided externally by the component via props.\n */\n this.values = new Map();\n this.KeyframeResolver = KeyframeResolver;\n /**\n * Cleanup functions for active features (hover/tap/exit etc)\n */\n this.features = {};\n /**\n * A map of every subscription that binds the provided or generated\n * motion values onChange listeners to this visual element.\n */\n this.valueSubscriptions = new Map();\n /**\n * A reference to the previously-provided motion values as returned\n * from scrapeMotionValuesFromProps. We use the keys in here to determine\n * if any motion values need to be removed after props are updated.\n */\n this.prevMotionValues = {};\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n /**\n * An object containing an unsubscribe function for each prop event subscription.\n * For example, every \"Update\" event can have multiple subscribers via\n * VisualElement.on(), but only one of those can be defined via the onUpdate prop.\n */\n this.propEventSubscriptions = {};\n this.notifyUpdate = () => this.notify(\"Update\", this.latestValues);\n this.render = () => {\n if (!this.current)\n return;\n this.triggerBuild();\n this.renderInstance(this.current, this.renderState, this.props.style, this.projection);\n };\n this.scheduleRender = () => frame.render(this.render, false, true);\n const { latestValues, renderState } = visualState;\n this.latestValues = latestValues;\n this.baseTarget = { ...latestValues };\n this.initialValues = props.initial ? { ...latestValues } : {};\n this.renderState = renderState;\n this.parent = parent;\n this.props = props;\n this.presenceContext = presenceContext;\n this.depth = parent ? parent.depth + 1 : 0;\n this.reducedMotionConfig = reducedMotionConfig;\n this.options = options;\n this.blockInitialAnimation = Boolean(blockInitialAnimation);\n this.isControllingVariants = isControllingVariants(props);\n this.isVariantNode = isVariantNode(props);\n if (this.isVariantNode) {\n this.variantChildren = new Set();\n }\n this.manuallyAnimateOnMount = Boolean(parent && parent.current);\n /**\n * Any motion values that are provided to the element when created\n * aren't yet bound to the element, as this would technically be impure.\n * However, we iterate through the motion values and set them to the\n * initial values for this component.\n *\n * TODO: This is impure and we should look at changing this to run on mount.\n * Doing so will break some tests but this isn't neccessarily a breaking change,\n * more a reflection of the test.\n */\n const { willChange, ...initialMotionValues } = this.scrapeMotionValuesFromProps(props, {}, this);\n for (const key in initialMotionValues) {\n const value = initialMotionValues[key];\n if (latestValues[key] !== undefined && isMotionValue(value)) {\n value.set(latestValues[key], false);\n if (isWillChangeMotionValue(willChange)) {\n willChange.add(key);\n }\n }\n }\n }\n /**\n * This method takes React props and returns found MotionValues. For example, HTML\n * MotionValues will be found within the style prop, whereas for Three.js within attribute arrays.\n *\n * This isn't an abstract method as it needs calling in the constructor, but it is\n * intended to be one.\n */\n scrapeMotionValuesFromProps(_props, _prevProps, _visualElement) {\n return {};\n }\n mount(instance) {\n this.current = instance;\n visualElementStore.set(instance, this);\n if (this.projection && !this.projection.instance) {\n this.projection.mount(instance);\n }\n if (this.parent && this.isVariantNode && !this.isControllingVariants) {\n this.removeFromVariantTree = this.parent.addVariantChild(this);\n }\n this.values.forEach((value, key) => this.bindToMotionValue(key, value));\n if (!hasReducedMotionListener.current) {\n initPrefersReducedMotion();\n }\n this.shouldReduceMotion =\n this.reducedMotionConfig === \"never\"\n ? false\n : this.reducedMotionConfig === \"always\"\n ? true\n : prefersReducedMotion.current;\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(this.shouldReduceMotion !== true, \"You have Reduced Motion enabled on your device. Animations may not appear as expected.\");\n }\n if (this.parent)\n this.parent.children.add(this);\n this.update(this.props, this.presenceContext);\n }\n unmount() {\n visualElementStore.delete(this.current);\n this.projection && this.projection.unmount();\n cancelFrame(this.notifyUpdate);\n cancelFrame(this.render);\n this.valueSubscriptions.forEach((remove) => remove());\n this.removeFromVariantTree && this.removeFromVariantTree();\n this.parent && this.parent.children.delete(this);\n for (const key in this.events) {\n this.events[key].clear();\n }\n for (const key in this.features) {\n this.features[key].unmount();\n }\n this.current = null;\n }\n bindToMotionValue(key, value) {\n const valueIsTransform = transformProps.has(key);\n const removeOnChange = value.on(\"change\", (latestValue) => {\n this.latestValues[key] = latestValue;\n this.props.onUpdate && frame.preRender(this.notifyUpdate);\n if (valueIsTransform && this.projection) {\n this.projection.isTransformDirty = true;\n }\n });\n const removeOnRenderRequest = value.on(\"renderRequest\", this.scheduleRender);\n this.valueSubscriptions.set(key, () => {\n removeOnChange();\n removeOnRenderRequest();\n if (value.owner)\n value.stop();\n });\n }\n sortNodePosition(other) {\n /**\n * If these nodes aren't even of the same type we can't compare their depth.\n */\n if (!this.current ||\n !this.sortInstanceNodePosition ||\n this.type !== other.type) {\n return 0;\n }\n return this.sortInstanceNodePosition(this.current, other.current);\n }\n loadFeatures({ children, ...renderedProps }, isStrict, preloadedFeatures, initialLayoutGroupConfig) {\n let ProjectionNodeConstructor;\n let MeasureLayout;\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 renderedProps.ignoreStrict\n ? warning(false, strictMessage)\n : invariant(false, strictMessage);\n }\n for (let i = 0; i < numFeatures; i++) {\n const name = featureNames[i];\n const { isEnabled, Feature: FeatureConstructor, ProjectionNode, MeasureLayout: MeasureLayoutComponent, } = featureDefinitions[name];\n if (ProjectionNode)\n ProjectionNodeConstructor = ProjectionNode;\n if (isEnabled(renderedProps)) {\n if (!this.features[name] && FeatureConstructor) {\n this.features[name] = new FeatureConstructor(this);\n }\n if (MeasureLayoutComponent) {\n MeasureLayout = MeasureLayoutComponent;\n }\n }\n }\n if ((this.type === \"html\" || this.type === \"svg\") &&\n !this.projection &&\n ProjectionNodeConstructor) {\n this.projection = new ProjectionNodeConstructor(this.latestValues, getClosestProjectingNode(this.parent));\n const { layoutId, layout, drag, dragConstraints, layoutScroll, layoutRoot, } = renderedProps;\n this.projection.setOptions({\n layoutId,\n layout,\n alwaysMeasureLayout: Boolean(drag) ||\n (dragConstraints && isRefObject(dragConstraints)),\n visualElement: this,\n scheduleRender: () => this.scheduleRender(),\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: initialLayoutGroupConfig,\n layoutScroll,\n layoutRoot,\n });\n }\n return MeasureLayout;\n }\n updateFeatures() {\n for (const key in this.features) {\n const feature = this.features[key];\n if (feature.isMounted) {\n feature.update();\n }\n else {\n feature.mount();\n feature.isMounted = true;\n }\n }\n }\n triggerBuild() {\n this.build(this.renderState, this.latestValues, this.options, this.props);\n }\n /**\n * Measure the current viewport box with or without transforms.\n * Only measures axis-aligned boxes, rotate and skew must be manually\n * removed with a re-render to work.\n */\n measureViewportBox() {\n return this.current\n ? this.measureInstanceViewportBox(this.current, this.props)\n : createBox();\n }\n getStaticValue(key) {\n return this.latestValues[key];\n }\n setStaticValue(key, value) {\n this.latestValues[key] = value;\n }\n /**\n * Update the provided props. Ensure any newly-added motion values are\n * added to our map, old ones removed, and listeners updated.\n */\n update(props, presenceContext) {\n if (props.transformTemplate || this.props.transformTemplate) {\n this.scheduleRender();\n }\n this.prevProps = this.props;\n this.props = props;\n this.prevPresenceContext = this.presenceContext;\n this.presenceContext = presenceContext;\n /**\n * Update prop event handlers ie onAnimationStart, onAnimationComplete\n */\n for (let i = 0; i < propEventHandlers.length; i++) {\n const key = propEventHandlers[i];\n if (this.propEventSubscriptions[key]) {\n this.propEventSubscriptions[key]();\n delete this.propEventSubscriptions[key];\n }\n const listener = props[\"on\" + key];\n if (listener) {\n this.propEventSubscriptions[key] = this.on(key, listener);\n }\n }\n this.prevMotionValues = updateMotionValuesFromProps(this, this.scrapeMotionValuesFromProps(props, this.prevProps, this), this.prevMotionValues);\n if (this.handleChildMotionValue) {\n this.handleChildMotionValue();\n }\n }\n getProps() {\n return this.props;\n }\n /**\n * Returns the variant definition with a given name.\n */\n getVariant(name) {\n return this.props.variants ? this.props.variants[name] : undefined;\n }\n /**\n * Returns the defined default transition on this component.\n */\n getDefaultTransition() {\n return this.props.transition;\n }\n getTransformPagePoint() {\n return this.props.transformPagePoint;\n }\n getClosestVariantNode() {\n return this.isVariantNode\n ? this\n : this.parent\n ? this.parent.getClosestVariantNode()\n : undefined;\n }\n getVariantContext(startAtParent = false) {\n if (startAtParent) {\n return this.parent ? this.parent.getVariantContext() : undefined;\n }\n if (!this.isControllingVariants) {\n const context = this.parent\n ? this.parent.getVariantContext() || {}\n : {};\n if (this.props.initial !== undefined) {\n context.initial = this.props.initial;\n }\n return context;\n }\n const context = {};\n for (let i = 0; i < numVariantProps; i++) {\n const name = variantProps[i];\n const prop = this.props[name];\n if (isVariantLabel(prop) || prop === false) {\n context[name] = prop;\n }\n }\n return context;\n }\n /**\n * Add a child visual element to our set of children.\n */\n addVariantChild(child) {\n const closestVariantNode = this.getClosestVariantNode();\n if (closestVariantNode) {\n closestVariantNode.variantChildren &&\n closestVariantNode.variantChildren.add(child);\n return () => closestVariantNode.variantChildren.delete(child);\n }\n }\n /**\n * Add a motion value and bind it to this visual element.\n */\n addValue(key, value) {\n // Remove existing value if it exists\n if (value !== this.values.get(key)) {\n this.removeValue(key);\n this.bindToMotionValue(key, value);\n }\n this.values.set(key, value);\n this.latestValues[key] = value.get();\n }\n /**\n * Remove a motion value and unbind any active subscriptions.\n */\n removeValue(key) {\n this.values.delete(key);\n const unsubscribe = this.valueSubscriptions.get(key);\n if (unsubscribe) {\n unsubscribe();\n this.valueSubscriptions.delete(key);\n }\n delete this.latestValues[key];\n this.removeValueFromRenderState(key, this.renderState);\n }\n /**\n * Check whether we have a motion value for this key\n */\n hasValue(key) {\n return this.values.has(key);\n }\n getValue(key, defaultValue) {\n if (this.props.values && this.props.values[key]) {\n return this.props.values[key];\n }\n let value = this.values.get(key);\n if (value === undefined && defaultValue !== undefined) {\n value = motionValue(defaultValue === null ? undefined : defaultValue, { owner: this });\n this.addValue(key, value);\n }\n return value;\n }\n /**\n * If we're trying to animate to a previously unencountered value,\n * we need to check for it in our state and as a last resort read it\n * directly from the instance (which might have performance implications).\n */\n readValue(key, target) {\n var _a;\n let value = this.latestValues[key] !== undefined || !this.current\n ? this.latestValues[key]\n : (_a = this.getBaseTargetFromProps(this.props, key)) !== null && _a !== void 0 ? _a : this.readValueFromInstance(this.current, key, this.options);\n if (value !== undefined && value !== null) {\n if (typeof value === \"string\" &&\n (isNumericalString(value) || isZeroValueString(value))) {\n // If this is a number read as a string, ie \"0\" or \"200\", convert it to a number\n value = parseFloat(value);\n }\n else if (!findValueType(value) && complex.test(target)) {\n value = getAnimatableNone(key, target);\n }\n this.setBaseTarget(key, isMotionValue(value) ? value.get() : value);\n }\n return isMotionValue(value) ? value.get() : value;\n }\n /**\n * Set the base target to later animate back to. This is currently\n * only hydrated on creation and when we first read a value.\n */\n setBaseTarget(key, value) {\n this.baseTarget[key] = value;\n }\n /**\n * Find the base target for a value thats been removed from all animation\n * props.\n */\n getBaseTarget(key) {\n var _a, _b;\n const { initial } = this.props;\n const valueFromInitial = typeof initial === \"string\" || typeof initial === \"object\"\n ? (_b = resolveVariantFromProps(this.props, initial, (_a = this.presenceContext) === null || _a === void 0 ? void 0 : _a.custom)) === null || _b === void 0 ? void 0 : _b[key]\n : undefined;\n /**\n * If this value still exists in the current initial variant, read that.\n */\n if (initial && valueFromInitial !== undefined) {\n return valueFromInitial;\n }\n /**\n * Alternatively, if this VisualElement config has defined a getBaseTarget\n * so we can read the value from an alternative source, try that.\n */\n const target = this.getBaseTargetFromProps(this.props, key);\n if (target !== undefined && !isMotionValue(target))\n return target;\n /**\n * If the value was initially defined on initial, but it doesn't any more,\n * return undefined. Otherwise return the value as initially read from the DOM.\n */\n return this.initialValues[key] !== undefined &&\n valueFromInitial === undefined\n ? undefined\n : this.baseTarget[key];\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new SubscriptionManager();\n }\n return this.events[eventName].add(callback);\n }\n notify(eventName, ...args) {\n if (this.events[eventName]) {\n this.events[eventName].notify(...args);\n }\n }\n}\n\nexport { VisualElement };\n","import { isBrowser } from '../is-browser.mjs';\nimport { hasReducedMotionListener, prefersReducedMotion } from './state.mjs';\n\nfunction initPrefersReducedMotion() {\n hasReducedMotionListener.current = true;\n if (!isBrowser)\n return;\n if (window.matchMedia) {\n const motionMediaQuery = window.matchMedia(\"(prefers-reduced-motion)\");\n const setReducedMotionPreferences = () => (prefersReducedMotion.current = motionMediaQuery.matches);\n motionMediaQuery.addListener(setReducedMotionPreferences);\n setReducedMotionPreferences();\n }\n else {\n prefersReducedMotion.current = false;\n }\n}\n\nexport { initPrefersReducedMotion };\n","import { isWillChangeMotionValue } from '../../value/use-will-change/is.mjs';\nimport { warnOnce } from '../../utils/warn-once.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction updateMotionValuesFromProps(element, next, prev) {\n const { willChange } = next;\n for (const key in next) {\n const nextValue = next[key];\n const prevValue = prev[key];\n if (isMotionValue(nextValue)) {\n /**\n * If this is a motion value found in props or style, we want to add it\n * to our visual element's motion value map.\n */\n element.addValue(key, nextValue);\n if (isWillChangeMotionValue(willChange)) {\n willChange.add(key);\n }\n /**\n * Check the version of the incoming motion value with this version\n * and warn against mismatches.\n */\n if (process.env.NODE_ENV === \"development\") {\n warnOnce(nextValue.version === \"11.0.25\", `Attempting to mix Framer Motion versions ${nextValue.version} with 11.0.25 may not work as expected.`);\n }\n }\n else if (isMotionValue(prevValue)) {\n /**\n * If we're swapping from a motion value to a static value,\n * create a new motion value from that\n */\n element.addValue(key, motionValue(nextValue, { owner: element }));\n if (isWillChangeMotionValue(willChange)) {\n willChange.remove(key);\n }\n }\n else if (prevValue !== nextValue) {\n /**\n * If this is a flat value that has changed, update the motion value\n * or create one if it doesn't exist. We only want to do this if we're\n * not handling the value with our animation state.\n */\n if (element.hasValue(key)) {\n const existingValue = element.getValue(key);\n if (existingValue.liveStyle === true) {\n existingValue.jump(nextValue);\n }\n else if (!existingValue.hasAnimated) {\n existingValue.set(nextValue);\n }\n }\n else {\n const latestValue = element.getStaticValue(key);\n element.addValue(key, motionValue(latestValue !== undefined ? latestValue : nextValue, { owner: element }));\n }\n }\n }\n // Handle removed values\n for (const key in prev) {\n if (next[key] === undefined)\n element.removeValue(key);\n }\n return next;\n}\n\nexport { updateMotionValuesFromProps };\n","import { VisualElement } from '../VisualElement.mjs';\nimport { DOMKeyframesResolver } from './DOMKeyframesResolver.mjs';\n\nclass DOMVisualElement extends VisualElement {\n constructor() {\n super(...arguments);\n this.KeyframeResolver = DOMKeyframesResolver;\n }\n sortInstanceNodePosition(a, b) {\n /**\n * compareDocumentPosition returns a bitmask, by using the bitwise &\n * we're returning true if 2 in that bitmask is set to true. 2 is set\n * to true if b preceeds a.\n */\n return a.compareDocumentPosition(b) & 2 ? 1 : -1;\n }\n getBaseTargetFromProps(props, key) {\n return props.style ? props.style[key] : undefined;\n }\n removeValueFromRenderState(key, { vars, style }) {\n delete vars[key];\n delete style[key];\n }\n}\n\nexport { DOMVisualElement };\n","import { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { isCSSVariableName } from '../dom/utils/is-css-variable.mjs';\nimport { transformProps } from './utils/transform.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { renderHTML } from './utils/render.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\nimport { measureViewportBox } from '../../projection/utils/measure.mjs';\nimport { DOMVisualElement } from '../dom/DOMVisualElement.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction getComputedStyle(element) {\n return window.getComputedStyle(element);\n}\nclass HTMLVisualElement extends DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"html\";\n }\n readValueFromInstance(instance, key) {\n if (transformProps.has(key)) {\n const defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n else {\n const computedStyle = getComputedStyle(instance);\n const value = (isCSSVariableName(key)\n ? computedStyle.getPropertyValue(key)\n : computedStyle[key]) || 0;\n return typeof value === \"string\" ? value.trim() : value;\n }\n }\n measureInstanceViewportBox(instance, { transformPagePoint }) {\n return measureViewportBox(instance, transformPagePoint);\n }\n build(renderState, latestValues, options, props) {\n buildHTMLStyles(renderState, latestValues, options, props.transformTemplate);\n }\n scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n return scrapeMotionValuesFromProps(props, prevProps, visualElement);\n }\n handleChildMotionValue() {\n if (this.childSubscription) {\n this.childSubscription();\n delete this.childSubscription;\n }\n const { children } = this.props;\n if (isMotionValue(children)) {\n this.childSubscription = children.on(\"change\", (latest) => {\n if (this.current)\n this.current.textContent = `${latest}`;\n });\n }\n }\n renderInstance(instance, renderState, styleProp, projection) {\n renderHTML(instance, renderState, styleProp, projection);\n }\n}\n\nexport { HTMLVisualElement, getComputedStyle };\n","import { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { DOMVisualElement } from '../dom/DOMVisualElement.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { camelToDash } from '../dom/utils/camel-to-dash.mjs';\nimport { camelCaseAttributes } from './utils/camel-case-attrs.mjs';\nimport { transformProps } from '../html/utils/transform.mjs';\nimport { renderSVG } from './utils/render.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\nimport { createBox } from '../../projection/geometry/models.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\n\nclass SVGVisualElement extends DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"svg\";\n this.isSVGTag = false;\n }\n getBaseTargetFromProps(props, key) {\n return props[key];\n }\n readValueFromInstance(instance, key) {\n if (transformProps.has(key)) {\n const defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;\n return instance.getAttribute(key);\n }\n measureInstanceViewportBox() {\n return createBox();\n }\n scrapeMotionValuesFromProps(props, prevProps) {\n return scrapeMotionValuesFromProps(props, prevProps, this);\n }\n build(renderState, latestValues, options, props) {\n buildSVGAttrs(renderState, latestValues, options, this.isSVGTag, props.transformTemplate);\n }\n renderInstance(instance, renderState, styleProp, projection) {\n renderSVG(instance, renderState, styleProp, projection);\n }\n mount(instance) {\n this.isSVGTag = isSVGTag(instance.tagName);\n super.mount(instance);\n }\n}\n\nexport { SVGVisualElement };\n","import { Fragment } from 'react';\nimport { HTMLVisualElement } from '../html/HTMLVisualElement.mjs';\nimport { SVGVisualElement } from '../svg/SVGVisualElement.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\n\nconst createDomVisualElement = (Component, options) => {\n return isSVGComponent(Component)\n ? new SVGVisualElement(options, { enableHardwareAcceleration: false })\n : new HTMLVisualElement(options, {\n allowProjection: Component !== Fragment,\n enableHardwareAcceleration: true,\n });\n};\n\nexport { createDomVisualElement };\n","import { createMotionComponent } from '../../motion/index.mjs';\nimport { createMotionProxy } from './motion-proxy.mjs';\nimport { createDomMotionConfig } from './utils/create-config.mjs';\nimport { gestureAnimations } from '../../motion/features/gestures.mjs';\nimport { animations } from '../../motion/features/animations.mjs';\nimport { drag } from '../../motion/features/drag.mjs';\nimport { createDomVisualElement } from './create-visual-element.mjs';\nimport { layout } from '../../motion/features/layout.mjs';\n\nconst preloadedFeatures = {\n ...animations,\n ...gestureAnimations,\n ...drag,\n ...layout,\n};\n/**\n * HTML & SVG components, optimised for use with gestures and animation. These can be used as\n * drop-in replacements for any HTML & SVG component, all CSS & SVG properties are supported.\n *\n * @public\n */\nconst motion = /*@__PURE__*/ createMotionProxy((Component, config) => createDomMotionConfig(Component, config, preloadedFeatures, createDomVisualElement));\n/**\n * Create a DOM `motion` component with the provided string. This is primarily intended\n * as a full alternative to `motion` for consumers who have to support environments that don't\n * support `Proxy`.\n *\n * ```javascript\n * import { createDomMotionComponent } from \"framer-motion\"\n *\n * const motion = {\n * div: createDomMotionComponent('div')\n * }\n * ```\n *\n * @public\n */\nfunction createDomMotionComponent(key) {\n return createMotionComponent(createDomMotionConfig(key, { forwardMotionProps: false }, preloadedFeatures, createDomVisualElement));\n}\n\nexport { createDomMotionComponent, motion };\n","import { HTMLProjectionNode } from '../../projection/node/HTMLProjectionNode.mjs';\nimport { MeasureLayout } from './layout/MeasureLayout.mjs';\n\nconst layout = {\n layout: {\n ProjectionNode: HTMLProjectionNode,\n MeasureLayout,\n },\n};\n\nexport { layout };\n","import { isSVGComponent } from './is-svg-component.mjs';\nimport { createUseRender } from '../use-render.mjs';\nimport { svgMotionConfig } from '../../svg/config-motion.mjs';\nimport { htmlMotionConfig } from '../../html/config-motion.mjs';\n\nfunction createDomMotionConfig(Component, { forwardMotionProps = false }, preloadedFeatures, createVisualElement) {\n const baseConfig = isSVGComponent(Component)\n ? svgMotionConfig\n : htmlMotionConfig;\n return {\n ...baseConfig,\n preloadedFeatures,\n useRender: createUseRender(forwardMotionProps),\n createVisualElement,\n Component,\n };\n}\n\nexport { createDomMotionConfig };\n","const MotionGlobalConfig = {\n skipAnimations: false,\n useManualTiming: false,\n};\n\nexport { MotionGlobalConfig };\n","import { noop } from './noop.mjs';\n\nlet warning = noop;\nlet invariant = noop;\nif (process.env.NODE_ENV !== \"production\") {\n warning = (check, message) => {\n if (!check && typeof console !== \"undefined\") {\n console.warn(message);\n }\n };\n invariant = (check, message) => {\n if (!check) {\n throw new Error(message);\n }\n };\n}\n\nexport { invariant, warning };\n","const isBrowser = typeof document !== \"undefined\";\n\nexport { isBrowser };\n","const noop = (any) => any;\n\nexport { noop };\n","import { 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","import { useLayoutEffect, useEffect } from 'react';\nimport { isBrowser } from './is-browser.mjs';\n\nconst useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n\nexport { useIsomorphicLayoutEffect };\n","import ReactExports, { useRef, useCallback, useEffect, useMemo, useDebugValue } from 'react';\nimport { isChanged, createProxy, affectedToPathList } from 'proxy-compare';\nimport useSyncExternalStoreExports from 'use-sync-external-store/shim/index.js';\nimport { subscribe, snapshot } from 'valtio/vanilla';\n\nconst { use } = ReactExports;\nconst { useSyncExternalStore } = useSyncExternalStoreExports;\nconst useAffectedDebugValue = (state, affected) => {\n const pathList = useRef();\n useEffect(() => {\n pathList.current = affectedToPathList(state, affected, true);\n });\n useDebugValue(pathList.current);\n};\nconst targetCache = /* @__PURE__ */ new WeakMap();\nfunction useSnapshot(proxyObject, options) {\n const notifyInSync = options == null ? void 0 : options.sync;\n const lastSnapshot = useRef();\n const lastAffected = useRef();\n let inRender = true;\n const currSnapshot = useSyncExternalStore(\n useCallback(\n (callback) => {\n const unsub = subscribe(proxyObject, callback, notifyInSync);\n callback();\n return unsub;\n },\n [proxyObject, notifyInSync]\n ),\n () => {\n const nextSnapshot = snapshot(proxyObject, use);\n try {\n if (!inRender && lastSnapshot.current && lastAffected.current && !isChanged(\n lastSnapshot.current,\n nextSnapshot,\n lastAffected.current,\n /* @__PURE__ */ new WeakMap()\n )) {\n return lastSnapshot.current;\n }\n } catch (e) {\n }\n return nextSnapshot;\n },\n () => snapshot(proxyObject, use)\n );\n inRender = false;\n const currAffected = /* @__PURE__ */ new WeakMap();\n useEffect(() => {\n lastSnapshot.current = currSnapshot;\n lastAffected.current = currAffected;\n });\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n useAffectedDebugValue(currSnapshot, currAffected);\n }\n const proxyCache = useMemo(() => /* @__PURE__ */ new WeakMap(), []);\n return createProxy(\n currSnapshot,\n currAffected,\n proxyCache,\n targetCache\n );\n}\n\nexport { useSnapshot };\n","import { markToTrack, getUntracked } from 'proxy-compare';\n\nconst isObject = (x) => typeof x === \"object\" && x !== null;\nconst proxyStateMap = /* @__PURE__ */ new WeakMap();\nconst refSet = /* @__PURE__ */ new WeakSet();\nconst buildProxyFunction = (objectIs = Object.is, newProxy = (target, handler) => new Proxy(target, handler), canProxy = (x) => isObject(x) && !refSet.has(x) && (Array.isArray(x) || !(Symbol.iterator in x)) && !(x instanceof WeakMap) && !(x instanceof WeakSet) && !(x instanceof Error) && !(x instanceof Number) && !(x instanceof Date) && !(x instanceof String) && !(x instanceof RegExp) && !(x instanceof ArrayBuffer), defaultHandlePromise = (promise) => {\n switch (promise.status) {\n case \"fulfilled\":\n return promise.value;\n case \"rejected\":\n throw promise.reason;\n default:\n throw promise;\n }\n}, snapCache = /* @__PURE__ */ new WeakMap(), createSnapshot = (target, version, handlePromise = defaultHandlePromise) => {\n const cache = snapCache.get(target);\n if ((cache == null ? void 0 : cache[0]) === version) {\n return cache[1];\n }\n const snap = Array.isArray(target) ? [] : Object.create(Object.getPrototypeOf(target));\n markToTrack(snap, true);\n snapCache.set(target, [version, snap]);\n Reflect.ownKeys(target).forEach((key) => {\n if (Object.getOwnPropertyDescriptor(snap, key)) {\n return;\n }\n const value = Reflect.get(target, key);\n const { enumerable } = Reflect.getOwnPropertyDescriptor(\n target,\n key\n );\n const desc = {\n value,\n enumerable,\n // This is intentional to avoid copying with proxy-compare.\n // It's still non-writable, so it avoids assigning a value.\n configurable: true\n };\n if (refSet.has(value)) {\n markToTrack(value, false);\n } else if (value instanceof Promise) {\n delete desc.value;\n desc.get = () => handlePromise(value);\n } else if (proxyStateMap.has(value)) {\n const [target2, ensureVersion] = proxyStateMap.get(\n value\n );\n desc.value = createSnapshot(\n target2,\n ensureVersion(),\n handlePromise\n );\n }\n Object.defineProperty(snap, key, desc);\n });\n return Object.preventExtensions(snap);\n}, proxyCache = /* @__PURE__ */ new WeakMap(), versionHolder = [1, 1], proxyFunction = (initialObject) => {\n if (!isObject(initialObject)) {\n throw new Error(\"object required\");\n }\n const found = proxyCache.get(initialObject);\n if (found) {\n return found;\n }\n let version = versionHolder[0];\n const listeners = /* @__PURE__ */ new Set();\n const notifyUpdate = (op, nextVersion = ++versionHolder[0]) => {\n if (version !== nextVersion) {\n version = nextVersion;\n listeners.forEach((listener) => listener(op, nextVersion));\n }\n };\n let checkVersion = versionHolder[1];\n const ensureVersion = (nextCheckVersion = ++versionHolder[1]) => {\n if (checkVersion !== nextCheckVersion && !listeners.size) {\n checkVersion = nextCheckVersion;\n propProxyStates.forEach(([propProxyState]) => {\n const propVersion = propProxyState[1](nextCheckVersion);\n if (propVersion > version) {\n version = propVersion;\n }\n });\n }\n return version;\n };\n const createPropListener = (prop) => (op, nextVersion) => {\n const newOp = [...op];\n newOp[1] = [prop, ...newOp[1]];\n notifyUpdate(newOp, nextVersion);\n };\n const propProxyStates = /* @__PURE__ */ new Map();\n const addPropListener = (prop, propProxyState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && propProxyStates.has(prop)) {\n throw new Error(\"prop listener already exists\");\n }\n if (listeners.size) {\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n } else {\n propProxyStates.set(prop, [propProxyState]);\n }\n };\n const removePropListener = (prop) => {\n var _a;\n const entry = propProxyStates.get(prop);\n if (entry) {\n propProxyStates.delete(prop);\n (_a = entry[1]) == null ? void 0 : _a.call(entry);\n }\n };\n const addListener = (listener) => {\n listeners.add(listener);\n if (listeners.size === 1) {\n propProxyStates.forEach(([propProxyState, prevRemove], prop) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && prevRemove) {\n throw new Error(\"remove already exists\");\n }\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n });\n }\n const removeListener = () => {\n listeners.delete(listener);\n if (listeners.size === 0) {\n propProxyStates.forEach(([propProxyState, remove], prop) => {\n if (remove) {\n remove();\n propProxyStates.set(prop, [propProxyState]);\n }\n });\n }\n };\n return removeListener;\n };\n const baseObject = Array.isArray(initialObject) ? [] : Object.create(Object.getPrototypeOf(initialObject));\n const handler = {\n deleteProperty(target, prop) {\n const prevValue = Reflect.get(target, prop);\n removePropListener(prop);\n const deleted = Reflect.deleteProperty(target, prop);\n if (deleted) {\n notifyUpdate([\"delete\", [prop], prevValue]);\n }\n return deleted;\n },\n set(target, prop, value, receiver) {\n const hasPrevValue = Reflect.has(target, prop);\n const prevValue = Reflect.get(target, prop, receiver);\n if (hasPrevValue && (objectIs(prevValue, value) || proxyCache.has(value) && objectIs(prevValue, proxyCache.get(value)))) {\n return true;\n }\n removePropListener(prop);\n if (isObject(value)) {\n value = getUntracked(value) || value;\n }\n let nextValue = value;\n if (value instanceof Promise) {\n value.then((v) => {\n value.status = \"fulfilled\";\n value.value = v;\n notifyUpdate([\"resolve\", [prop], v]);\n }).catch((e) => {\n value.status = \"rejected\";\n value.reason = e;\n notifyUpdate([\"reject\", [prop], e]);\n });\n } else {\n if (!proxyStateMap.has(value) && canProxy(value)) {\n nextValue = proxyFunction(value);\n }\n const childProxyState = !refSet.has(nextValue) && proxyStateMap.get(nextValue);\n if (childProxyState) {\n addPropListener(prop, childProxyState);\n }\n }\n Reflect.set(target, prop, nextValue, receiver);\n notifyUpdate([\"set\", [prop], value, prevValue]);\n return true;\n }\n };\n const proxyObject = newProxy(baseObject, handler);\n proxyCache.set(initialObject, proxyObject);\n const proxyState = [\n baseObject,\n ensureVersion,\n createSnapshot,\n addListener\n ];\n proxyStateMap.set(proxyObject, proxyState);\n Reflect.ownKeys(initialObject).forEach((key) => {\n const desc = Object.getOwnPropertyDescriptor(\n initialObject,\n key\n );\n if (\"value\" in desc) {\n proxyObject[key] = initialObject[key];\n delete desc.value;\n delete desc.writable;\n }\n Object.defineProperty(baseObject, key, desc);\n });\n return proxyObject;\n}) => [\n // public functions\n proxyFunction,\n // shared state\n proxyStateMap,\n refSet,\n // internal things\n objectIs,\n newProxy,\n canProxy,\n defaultHandlePromise,\n snapCache,\n createSnapshot,\n proxyCache,\n versionHolder\n];\nconst [defaultProxyFunction] = buildProxyFunction();\nfunction proxy(initialObject = {}) {\n return defaultProxyFunction(initialObject);\n}\nfunction getVersion(proxyObject) {\n const proxyState = proxyStateMap.get(proxyObject);\n return proxyState == null ? void 0 : proxyState[1]();\n}\nfunction subscribe(proxyObject, callback, notifyInSync) {\n const proxyState = proxyStateMap.get(proxyObject);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n let promise;\n const ops = [];\n const addListener = proxyState[3];\n let isListenerActive = false;\n const listener = (op) => {\n ops.push(op);\n if (notifyInSync) {\n callback(ops.splice(0));\n return;\n }\n if (!promise) {\n promise = Promise.resolve().then(() => {\n promise = void 0;\n if (isListenerActive) {\n callback(ops.splice(0));\n }\n });\n }\n };\n const removeListener = addListener(listener);\n isListenerActive = true;\n return () => {\n isListenerActive = false;\n removeListener();\n };\n}\nfunction snapshot(proxyObject, handlePromise) {\n const proxyState = proxyStateMap.get(proxyObject);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n const [target, ensureVersion, createSnapshot] = proxyState;\n return createSnapshot(target, ensureVersion(), handlePromise);\n}\nfunction ref(obj) {\n refSet.add(obj);\n return obj;\n}\nconst unstable_buildProxyFunction = buildProxyFunction;\n\nexport { getVersion, proxy, ref, snapshot, subscribe, unstable_buildProxyFunction };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var webpackQueues = typeof Symbol === \"function\" ? Symbol(\"webpack queues\") : \"__webpack_queues__\";\nvar webpackExports = typeof Symbol === \"function\" ? Symbol(\"webpack exports\") : \"__webpack_exports__\";\nvar webpackError = typeof Symbol === \"function\" ? Symbol(\"webpack error\") : \"__webpack_error__\";\nvar resolveQueue = (queue) => {\n\tif(queue && queue.d < 1) {\n\t\tqueue.d = 1;\n\t\tqueue.forEach((fn) => (fn.r--));\n\t\tqueue.forEach((fn) => (fn.r-- ? fn.r++ : fn()));\n\t}\n}\nvar wrapDeps = (deps) => (deps.map((dep) => {\n\tif(dep !== null && typeof dep === \"object\") {\n\t\tif(dep[webpackQueues]) return dep;\n\t\tif(dep.then) {\n\t\t\tvar queue = [];\n\t\t\tqueue.d = 0;\n\t\t\tdep.then((r) => {\n\t\t\t\tobj[webpackExports] = r;\n\t\t\t\tresolveQueue(queue);\n\t\t\t}, (e) => {\n\t\t\t\tobj[webpackError] = e;\n\t\t\t\tresolveQueue(queue);\n\t\t\t});\n\t\t\tvar obj = {};\n\t\t\tobj[webpackQueues] = (fn) => (fn(queue));\n\t\t\treturn obj;\n\t\t}\n\t}\n\tvar ret = {};\n\tret[webpackQueues] = x => {};\n\tret[webpackExports] = dep;\n\treturn ret;\n}));\n__webpack_require__.a = (module, body, hasAwait) => {\n\tvar queue;\n\thasAwait && ((queue = []).d = -1);\n\tvar depQueues = new Set();\n\tvar exports = module.exports;\n\tvar currentDeps;\n\tvar outerResolve;\n\tvar reject;\n\tvar promise = new Promise((resolve, rej) => {\n\t\treject = rej;\n\t\touterResolve = resolve;\n\t});\n\tpromise[webpackExports] = exports;\n\tpromise[webpackQueues] = (fn) => (queue && fn(queue), depQueues.forEach(fn), promise[\"catch\"](x => {}));\n\tmodule.exports = promise;\n\tbody((deps) => {\n\t\tcurrentDeps = wrapDeps(deps);\n\t\tvar fn;\n\t\tvar getResult = () => (currentDeps.map((d) => {\n\t\t\tif(d[webpackError]) throw d[webpackError];\n\t\t\treturn d[webpackExports];\n\t\t}))\n\t\tvar promise = new Promise((resolve) => {\n\t\t\tfn = () => (resolve(getResult));\n\t\t\tfn.r = 0;\n\t\t\tvar fnQueue = (q) => (q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn))));\n\t\t\tcurrentDeps.map((dep) => (dep[webpackQueues](fnQueue)));\n\t\t});\n\t\treturn fn.r ? promise : getResult();\n\t}, (err) => ((err ? reject(promise[webpackError] = err) : outerResolve(exports)), resolveQueue(queue)));\n\tqueue && queue.d < 0 && (queue.d = 0);\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"ed3810f9\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"my-app:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"./\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkmy_app\"] = self[\"webpackChunkmy_app\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module used 'module' so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(812);\n"],"names":["App","_jsxs","className","children","_jsx","Home","event","Img","src","alt","logoVariants","right","x","left","up","y","down","bgVariants","NewHome","_ref","showPage1","showPage2","windowSize","direction","isInitial","prevMousePosition","btnDisable","isEnterHover","useSnapshot","uiState","isLoading","data","googleSheet","arr","useEffect","async","promiseLoading","map","item","Promise","resolve","reject","img","Image","onload","onerror","all","cacheImage","motion","div","initial","opacity","animate","exit","_Fragment","AnimatePresence","onMouseMove","e","clientX","clientY","deltaX","deltaY","loading","transition","duration","concat","width","height","delay","variants","onAnimationComplete","disabled","onClick","zh_title","zh_content","replace","en_content","onMouseEnter","onMouseLeave","goVr","newUrl","window","location","href","proxy","homepage","visible","innerWidth","innerHeight","isLastAnimation","addEventListener","getWindowSize","frontEnd","ReactDOM","document","getElementById","render","React","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","rest","sourcePath","bind","fn","thisArg","apply","arguments","toString","Object","prototype","getPrototypeOf","kindOf","cache","create","thing","str","call","slice","toLowerCase","kindOfTest","type","typeOfTest","isArray","Array","isUndefined","isArrayBuffer","isString","isFunction","isNumber","isObject","isPlainObject","val","Symbol","toStringTag","iterator","isDate","isFile","isBlob","isFileList","isURLSearchParams","forEach","obj","i","l","allOwnKeys","length","undefined","keys","getOwnPropertyNames","len","key","findKey","_key","_global","globalThis","self","global","isContextDefined","context","isTypedArray","TypedArray","Uint8Array","isHTMLForm","hasOwnProperty","prop","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","ret","defineProperties","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","toUpperCase","isAsyncFn","isBuffer","constructor","isFormData","kind","FormData","append","isArrayBufferView","result","ArrayBuffer","isView","buffer","isBoolean","isStream","pipe","merge","caseless","this","assignValue","targetKey","extend","a","b","trim","stripBOM","content","charCodeAt","inherits","superConstructor","props","defineProperty","value","assign","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","position","String","lastIndex","indexOf","toArray","forEachEntry","next","done","pair","matchAll","regExp","matches","exec","push","hasOwnProp","freezeMethods","enumerable","writable","set","Error","toObjectSet","arrayOrString","delimiter","define","split","toCamelCase","m","p1","p2","noop","toFiniteNumber","defaultValue","Number","isFinite","generateString","size","alphabet","Math","random","isSpecCompliantForm","toJSONObject","stack","visit","source","target","reducedValue","isThenable","catch","AxiosError","message","code","config","request","response","captureStackTrace","utils","toJSON","description","number","fileName","lineNumber","columnNumber","status","from","error","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","path","dots","token","join","predicates","test","formData","options","TypeError","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","toISOString","Buffer","JSON","stringify","some","isFlatArray","el","index","exposedHelpers","build","pop","encode","charMap","encodeURIComponent","match","AxiosURLSearchParams","params","_pairs","toFormData","encoder","_encode","buildURL","url","serializeFn","serialize","serializedParams","hashmarkIndex","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","id","clear","h","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","hasStandardBrowserEnv","product","navigator","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","platform","buildPath","isNumericKey","isLast","arrayToObject","entries","parsePropPath","defaults","transitional","transitionalDefaults","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","formDataToJSON","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","parse","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","method","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","substring","parseHeaders","get","tokens","tokensRE","parseTokens","has","matcher","delete","deleted","deleteHeader","normalize","format","normalized","w","char","formatHeader","_len","targets","asStrings","first","computed","_len2","_key2","accessor","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","configurable","buildAccessors","_ref2","mapped","headerValue","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","write","expires","domain","secure","cookie","Date","toGMTString","read","RegExp","decodeURIComponent","remove","now","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","msie","userAgent","urlParsingNode","createElement","originURL","resolveURL","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","requestURL","samplesCount","min","bytes","timestamps","firstSampleTS","head","tail","chunkLength","startedAt","bytesCount","passed","round","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","speedometer","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","knownAdapters","http","xhr","XMLHttpRequest","requestData","requestHeaders","onCanceled","withXSRFToken","cancelToken","unsubscribe","signal","removeEventListener","Boolean","auth","username","password","unescape","btoa","fullPath","onloadend","responseHeaders","getAllResponseHeaders","ERR_BAD_REQUEST","floor","settle","err","responseText","statusText","open","paramsSerializer","onreadystatechange","readyState","responseURL","setTimeout","onabort","ECONNABORTED","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","isURLSameOrigin","xsrfValue","cookies","setRequestHeader","withCredentials","onDownloadProgress","onUploadProgress","upload","cancel","abort","subscribe","aborted","parseProtocol","send","renderReason","reason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","state","s","throwIfCancellationRequested","throwIfRequested","dispatchRequest","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","configValue","VERSION","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","ERR_DEPRECATED","console","warn","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","InterceptorManager","configOrUrl","_request","dummy","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","responseInterceptorChain","promise","chain","newConfig","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","splice","c","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","defaultConfig","instance","Cancel","promises","spread","callback","isAxiosError","payload","formToJSON","getAdapter","default","getJson","hasKrpano","t","r","n","o","Proxy","WeakMap","f","values","u","p","g","Set","add","Reflect","getOwnPropertyDescriptor","ownKeys","deleteProperty","is","k","WeakSet","aa","require","ca","da","ea","fa","ha","ia","ja","ka","la","ma","v","d","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","z","ra","sa","ta","pa","isNaN","qa","oa","removeAttribute","setAttributeNS","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","A","Ma","Na","Oa","prepareStackTrace","construct","displayName","includes","Pa","tag","Qa","$$typeof","_context","_payload","_init","Ra","Sa","Ta","nodeName","Va","_valueTracker","getValue","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","body","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","cb","db","ownerDocument","eb","fb","selected","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","textContent","kb","lb","mb","nb","namespaceURI","innerHTML","valueOf","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","style","setProperty","tb","menuitem","area","base","br","col","embed","hr","input","keygen","link","meta","param","track","wbr","ub","vb","wb","xb","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","child","sibling","current","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","B","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","qc","log","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","C","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Map","Pc","Qc","Rc","Sc","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","shift","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","fd","gd","hd","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","fromCharCode","repeat","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","date","datetime","email","month","range","tel","text","time","week","me","ne","oe","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","node","offset","nextSibling","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","Ne","contentEditable","Oe","focusedElem","selectionRange","documentElement","start","end","selectionStart","selectionEnd","defaultView","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","element","scrollLeft","top","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","D","of","pf","qf","rf","sf","capture","passive","J","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","clearTimeout","Hf","Jf","queueMicrotask","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","elementType","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","mode","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","defaultProps","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","bh","ch","eventTime","lane","dh","K","eh","fh","gh","q","hh","ih","jh","Component","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","L","lh","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","contextType","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","sh","ref","_owner","_stringRef","th","uh","vh","wh","xh","yh","implementation","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","tagName","Jh","Kh","Lh","M","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","O","P","Sh","Th","Uh","Vh","Q","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","queue","di","ei","fi","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","gi","hi","ii","ji","ki","getSnapshot","li","mi","R","ni","lastEffect","stores","oi","pi","qi","ri","destroy","deps","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useContext","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","digest","Li","Mi","Ni","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","compare","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","lj","pendingContext","mj","Aj","Bj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","last","tailMode","yj","Ej","S","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","onclick","createElementNS","autoFocus","createTextNode","T","Hj","Ij","Jj","Kj","U","Lj","V","Mj","W","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","insertBefore","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","display","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","ceil","nk","ok","pk","Y","Z","qk","rk","sk","tk","uk","Infinity","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","cl","pendingSuspenseBoundaries","fl","gl","hl","il","jl","zj","$k","ll","reportError","ml","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","querySelectorAll","form","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","exports","createPortal","dl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","module","__self","__source","Fragment","jsx","jsxs","setState","forceUpdate","escape","_status","_result","Children","count","only","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","inst","useIsMounted","useIsomorphicLayoutEffect","PopChildMeasure","prevProps","childRef","isPresent","sizeRef","offsetHeight","offsetWidth","offsetTop","offsetLeft","PopChild","nonce","MotionConfigContext","motionPopId","sheet","insertRule","PresenceChild","onExitComplete","custom","presenceAffectsLayout","presenceChildren","useConstant","newChildrenMap","childId","isComplete","register","_","PresenceContext","getChildKey","exitBeforeEnter","invariant","forceRender","LayoutGroupContext","forcedRenderCount","setForcedRenderCount","frame","postRender","useForceUpdate","filteredChildren","filtered","onlyElements","childrenToRender","exitingChildren","presentChildren","allChildren","isInitialRender","updateChildLookup","presentKeys","targetKeys","numPresent","component","insertionIndex","exitingComponent","onExit","leftOverKeys","childKey","leftOverKey","presentChild","presentChildKey","transformPagePoint","isStatic","reducedMotion","Queue","scheduled","process","stepsOrder","maxElapsed","createRenderBatcher","scheduleNextBatch","allowKeepAlive","runNextFrame","useDefaultElapsed","delta","timestamp","isProcessing","steps","reduce","acc","thisFrame","nextFrame","numToRun","flushNextFrame","toKeepAlive","step","schedule","addToCurrentFrame","frameData","createRenderStep","processStep","stepId","processBatch","MotionGlobalConfig","useManualTiming","max","keepAlive","immediate","cancelFrame","requestAnimationFrame","MotionContext","LazyContext","strict","camelToDash","optimizedAppearDataAttribute","microtask","cancelMicrotask","isRefObject","isVariantLabel","isAnimationControls","variantPriorityOrder","variantProps","isControllingVariants","isVariantNode","useCreateMotionContext","inherit","getCurrentTreeVariants","variantLabelsAsDependency","featureProps","drag","hover","tap","pan","inView","layout","featureDefinitions","isEnabled","SwitchLayoutGroupContext","motionComponentSymbol","createMotionComponent","preloadedFeatures","createVisualElement","useRender","useVisualState","features","loadFeatures","ForwardRefComponent","externalRef","MeasureLayout","configAndProps","layoutId","useLayoutId","visualState","visualElement","parent","lazyContext","presenceContext","reducedMotionConfig","visualElementRef","renderer","blockInitialAnimation","update","wantsHandoff","HandoffComplete","animationState","animateChanges","updateFeatures","useVisualElement","initialLayoutGroupConfig","isStrict","mount","useMotionRef","layoutGroupId","createMotionProxy","createConfig","componentCache","_target","lowercaseSVGElements","isSVGComponent","scaleCorrectors","transformPropOrder","transformProps","isForcedMotionValue","startsWith","isMotionValue","getVelocity","translateAlias","transformPerspective","numTransforms","checkStringStartsWith","isCSSVariableName","startsAsVariableToken","isCSSVariableToken","singleCssVariableRegex","getValueAsType","transform","clamp","parseFloat","alpha","scale","sanitize","floatRegex","colorRegex","singleColorRegex","createUnitType","unit","degrees","percent","px","vw","progressPercentage","int","numberValueTypes","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderRadius","radius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","maxWidth","maxHeight","bottom","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","margin","marginTop","marginRight","marginBottom","marginLeft","rotate","rotateX","rotateY","rotateZ","scaleX","scaleY","scaleZ","skew","skewX","skewY","distance","translateX","translateY","translateZ","perspective","originX","originY","originZ","backgroundPositionX","backgroundPositionY","numOctaves","buildHTMLStyles","latestValues","transformTemplate","vars","transformOrigin","hasTransform","hasTransformOrigin","transformIsNone","valueType","valueAsType","transformIsDefault","enableHardwareAcceleration","allowTransformNone","transformString","transformName","buildTransform","createHtmlRenderState","copyRawValuesOnly","useStyle","useInitialMotionValues","useHTMLProps","htmlProps","dragListener","draggable","userSelect","WebkitUserSelect","WebkitTouchCallout","touchAction","tabIndex","onTap","onTapStart","whileTap","validMotionProps","isValidMotionProp","shouldForward","isValidProp","_a","calcOrigin","origin","dashKeys","array","camelKeys","buildSVGAttrs","isSVGTag","attrX","attrY","attrScale","pathLength","pathSpacing","pathOffset","latest","viewBox","attrs","dimensions","pxOriginX","pxOriginY","calcSVGTransformOrigin","spacing","useDashCase","buildSVGPath","createSvgRenderState","useSVGProps","_isStatic","visualProps","rawStyles","createUseRender","forwardMotionProps","filteredProps","isDom","filterProps","elementProps","renderedChildren","renderHTML","styleProp","projection","getProjectionStyles","camelCaseAttributes","renderSVG","renderState","_styleProp","scrapeMotionValuesFromProps","newValues","liveStyle","scrapeMotionValuesFromProps$1","resolveVariantFromProps","definition","currentValues","currentVelocity","isKeyframesTarget","isCustomValue","mix","toValue","resolveFinalValueInKeyframes","resolveMotionValue","unwrappedValue","makeUseVisualState","make","createRenderState","onMount","makeLatestValues","makeState","scrapeMotionValues","motionValues","isControllingVariants$1","isVariantNode$1","isInitialAnimationBlocked","variantToSet","resolved","transitionEnd","valueTarget","svgMotionConfig","getBBox","getBoundingClientRect","htmlMotionConfig","addDomEvent","eventName","handler","isPrimaryPointer","extractEventInfo","pointType","point","addPointerInfo","addPointerEvent","combineFunctions","transformers","createLock","lock","openLock","globalHorizontalLock","globalVerticalLock","getGlobalLock","openHorizontal","openVertical","isDragActive","openGestureLock","Feature","addHoverEvent","isActive","callbackName","handleEvent","info","getProps","whileHover","setActive","isNodeOrChild","parentElement","fireSyntheticPointerEvent","syntheticPointerEvent","PointerEvent","observerCallbacks","observers","fireObserverCallback","entry","fireAllObserverCallbacks","observeIntersection","rootInteresectionObserver","root","lookupRoot","rootObservers","IntersectionObserver","initIntersectionObserver","observe","unobserve","thresholdNames","gestureAnimations","super","hasEnteredView","isInView","startObserver","viewport","rootMargin","amount","once","threshold","isIntersecting","onViewportEnter","onViewportLeave","hasOptionsChanged","prevViewport","hasViewportOptionChanged","removeStartListeners","removeEndListeners","removeAccessibleListeners","startPointerPress","startEvent","startInfo","isPressing","removePointerUpListener","endPointerPress","endEvent","endInfo","checkPressEnd","onTapCancel","globalTapTarget","removePointerCancelListener","cancelEvent","cancelInfo","cancelPress","startPress","startAccessiblePress","removeKeydownListener","keydownEvent","keyupEvent","removeBlurListener","handleBlur","removePointerListener","removeFocusListener","onFocus","isFocusVisible","onBlur","shallowCompare","prev","prevLength","resolveVariant","getCurrent","velocity","secondsToMilliseconds","seconds","millisecondsToSeconds","milliseconds","underDampedSpring","stiffness","damping","restSpeed","keyframesTransition","ease","getDefaultTransition","valueKey","keyframes","sqrt","getValueTransition","instantAnimationState","isNotNull","getFinalKeyframe","finalKeyframe","repeatType","resolvedKeyframes","clearTime","newTime","isZeroValueString","isNumericalString","splitCSSVariableRegex","getVariableValue","depth","token1","token2","parseCSSVariable","getComputedStyle","getPropertyValue","trimmed","positionalKeys","isNumOrPxType","getPosFromMatrix","matrix","pos","getTranslateFromMatrix","pos2","pos3","_bbox","matrix3d","transformKeys","nonTranslationalTransformKeys","removeNonTranslationalTransform","removedTransforms","positionalValues","_ref3","_ref4","_ref5","_ref6","_ref7","_ref8","_ref9","_ref10","_ref11","testValueType","dimensionValueTypes","findDimensionValueType","find","toResolve","isScheduled","anyNeedsMeasurement","measureAllKeyframes","resolversToMeasure","resolver","needsMeasurement","elementsToMeasure","transformsToRestore","measureInitialState","measureEndState","suspendedScrollY","scrollTo","complete","readAllKeyframes","readKeyframes","KeyframeResolver","unresolvedKeyframes","onComplete","motionValue","isAsync","scheduleResolve","resolveKeyframes","currentValue","valueAsRead","readValue","setFinalKeyframe","renderEndStyles","resume","isColorString","testProp","splitColor","aName","bName","cName","rgbUnit","clampRgbUnit","rgba","red","green","blue","alpha$1","hex","parseInt","hsla","hue","saturation","lightness","NUMBER_TOKEN","COLOR_TOKEN","VAR_TOKEN","VAR_FUNCTION_TOKEN","SPLIT_TOKEN","complexRegex","analyseComplexValue","originalValue","var","types","parsedValue","parseComplexValue","createTransformer","numSections","output","convertNumbersToZero","complex","_b","getAnimatableNone","transformer","maxDefaults","applyDefaultFilter","functionRegex","functions","defaultValueTypes","backgroundColor","outlineColor","fill","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","WebkitFilter","getDefaultValueType","defaultValueType","DOMKeyframesResolver","owner","keyframe","resolveNoneKeyframes","originType","targetType","noneKeyframeIndexes","animatableTemplate","noneIndex","makeNoneKeyframesAnimatable","pageYOffset","measuredOrigin","measureViewportBox","measureKeyframe","jump","finalKeyframeIndex","unsetTransformName","unsetTransformValue","isAnimatable","BaseAnimation","autoplay","repeatDelay","isStopped","hasAttemptedResolve","updateFinishedPromise","_resolved","onKeyframesResolved","onUpdate","isGenerator","originKeyframe","targetKeyframe","isOriginAnimatable","isTargetAnimatable","warning","hasKeyframesChanged","canAnimate","resolveFinishedPromise","resolvedAnimation","initPlayback","onPostResolved","currentFinishedPromise","velocityPerSecond","frameDuration","velocitySampleDuration","calcGeneratorVelocity","resolveValue","prevT","safeMin","minDuration","maxDuration","minDamping","maxDamping","findSpring","envelope","derivative","bounce","mass","dampingRatio","undampedFreq","exponentialDecay","calcAngularFreq","exp","pow","initialGuess","rootIterations","approximateRoot","durationKeys","physicsKeys","isSpringType","spring","restDelta","isResolvedFromDuration","springOptions","derived","getSpringOptions","initialVelocity","initialDelta","undampedAngularFreq","isGranularScale","abs","resolveSpring","angularFreq","sin","cos","dampedAngularFreq","freqForT","sinh","cosh","calculatedDuration","isBelowVelocityThreshold","isBelowDisplacementThreshold","inertia","power","timeConstant","bounceDamping","bounceStiffness","modifyTarget","nearestBoundary","amplitude","ideal","calcDelta","calcLatest","applyFriction","timeReachedBoundary","spring$1","checkCatchBoundary","hasUpdatedFrame","calcBezier","a1","a2","subdivisionPrecision","subdivisionMaxIterations","cubicBezier","mX1","mY1","mX2","mY2","getTForX","aX","lowerBound","upperBound","currentX","currentT","binarySubdivide","easeIn","easeOut","easeInOut","mirrorEasing","easing","reverseEasing","circIn","acos","circOut","circInOut","backOut","backIn","backInOut","easingLookup","linear","anticipate","easingDefinitionToFunction","x1","y1","x2","y2","to","toFromDifference","mixNumber","hueToRgb","mixLinearColor","fromExpo","expo","colorTypes","asRGBA","model","hslaToRgba","mixColor","fromRGBA","toRGBA","blended","mixImmediate","mixNumber$1","getMixer","mixComplex","mixArray","mixObject","numValues","blendValue","template","originStats","targetStats","orderedOrigin","pointers","originIndex","originValue","matchOrder","mixer","interpolate","isClamp","inputLength","reverse","mixers","customMixer","mixerFactory","numMixers","easingFunction","createMixers","interpolator","progressInRange","defaultOffset","remaining","offsetProgress","fillOffset","keyframeValues","times","easingFunctions","isEasingArray","absoluteTimes","convertOffsetToTimes","mapTimeToKeyframe","frameloopDriver","passTimestamp","stop","generators","decay","tween","percentToProgress","MainThreadAnimation","KeyframeResolver$1","holdTime","cancelTime","currentTime","playbackSpeed","pendingPlayState","onResolved","keyframes$1","generatorFactory","mapPercentToKeyframes","mirroredGenerator","generator","calcGeneratorDuration","resolvedDuration","totalDuration","play","pause","tick","sample","speed","timeWithoutDelay","isInDelayPhase","elapsed","frameGenerator","currentIteration","iterationProgress","isAnimationFinished","finish","driver","newSpeed","hasChanged","onPlay","teardown","onStop","stopDriver","isBezierDefinition","isWaapiSupportedEasing","supportedWaapiEasing","every","cubicBezierAsString","mapEasingToNativeEasing","supportsWaapi","Element","acceleratedValues","AcceleratedAnimation","pregeneratedAnimation","sampleAnimation","pregeneratedKeyframes","pregenerateKeyframes","valueName","keyframeOptions","iterations","animateStyle","pendingTimeline","timeline","onfinish","playbackRate","playState","attachTimeline","sampleTime","setWithVelocity","supports","HTMLElement","animateMotionValue","isHandoff","valueTransition","when","_delay","delayChildren","staggerChildren","staggerDirection","isTransitionDefined","shouldSkip","skipAnimations","isWillChangeMotionValue","addUniqueItem","removeItem","SubscriptionManager","subscriptions","notify","numSubscriptions","getSize","collectMotionValues","MotionValue","init","_this","canTrackVelocity","events","updateAndNotify","updatedAt","setPrevFrameValue","setCurrent","change","renderRequest","hasAnimated","prevFrameValue","prevUpdatedAt","onChange","subscription","on","clearListeners","eventManagers","attach","passiveEffect","stopPassiveEffect","endAnimation","getPrevious","startAnimation","animationStart","animationComplete","clearAnimation","animationCancel","isAnimating","setMotionValue","hasValue","addValue","shouldBlockAnimation","protectedKeys","needsAnimating","shouldBlock","animateTarget","targetAndTransition","transitionOverride","willChange","animations","animationTypeState","getState","HandoffAppearAnimations","appearId","shouldReduceMotion","setTarget","animateVariant","variant","getAnimation","getChildAnimations","variantChildren","forwardDelay","maxStaggerDuration","generateStaggerDuration","sort","sortByTreeOrder","animateChildren","sortNodePosition","reversePriorityOrder","numAnimationTypes","animateList","resolvedDefinition","animateVisualElement","createAnimationState","createTypeState","whileInView","whileDrag","whileFocus","buildResolvedTypeValues","changedActiveType","getVariantContext","removedKeys","encounteredKeys","removedVariantIndex","typeState","propIsVariant","activeDelta","isInherited","manuallyAnimateOnMount","prevProp","shouldAnimateType","checkVariantsDidChange","handledRemovedValues","definitionList","resolvedValues","prevResolvedValues","allKeys","markToAnimate","valueHasChanged","fallbackAnimation","fallbackTarget","getBaseTarget","shouldAnimate","setAnimateFunction","makeAnimator","updateAnimationControlsSubscription","prevAnimate","prevIsPresent","prevPresenceContext","exitAnimation","PanSession","contextWindow","dragSnapToOrigin","lastMoveEvent","lastMoveEventInfo","updatePoint","getPanInfo","history","isPanStarted","isDistancePastThreshold","xDelta","yDelta","distance2D","onStart","onMove","handlePointerMove","transformPoint","handlePointerUp","onEnd","onSessionEnd","resumeAnimation","panInfo","initialInfo","onSessionStart","removeListeners","updateHandlers","subtractPoint","lastDevicePoint","startDevicePoint","timeDelta","timestampedPoint","lastPoint","calcLength","axis","isNear","maxDistance","calcAxisDelta","originPoint","translate","calcBoxDelta","calcRelativeAxis","relative","calcRelativeAxisPosition","calcRelativePosition","calcRelativeAxisConstraints","calcViewportAxisConstraints","layoutAxis","constraintsAxis","defaultElastic","resolveAxisElastic","dragElastic","minLabel","maxLabel","resolvePointElastic","label","createDelta","createBox","eachAxis","convertBoundingBoxToBox","isIdentityScale","hasScale","has2DTranslate","is2DTranslate","scalePoint","applyPointDelta","boxScale","applyAxisDelta","applyBoxDelta","box","snapToDefault","isInteger","translateAxis","transformAxis","transforms","scaleKey","originKey","axisOrigin","xKeys","yKeys","transformBox","topLeft","bottomRight","transformBoxPoints","getContextWindow","elementDragControls","VisualElementDragControls","openGlobalLock","isDragging","currentDirection","constraints","hasMutatedConstraints","elastic","originEvent","snapToCursor","panSession","pauseAnimation","stopAnimation","dragPropagation","onDragStart","resolveConstraints","isAnimationBlocked","getAxisMotionValue","measuredAxis","layoutBox","dragDirectionLock","onDirectionLock","onDrag","lockThreshold","getCurrentDirection","updateAxis","getAnimationState","getTransformPagePoint","onDragEnd","_point","shouldDrag","axisValue","applyConstraints","dragConstraints","measure","prevConstraints","resolveRefConstraints","calcRelativeConstraints","resolveDragElastic","relativeConstraints","rebaseAxisConstraints","onMeasureDragConstraints","constraintsElement","constraintsBox","rootProjectionNode","viewportBox","scroll","measurePageBox","measuredConstraints","calcViewportConstraints","userConstraints","convertBoxToBoundingBox","dragMomentum","dragTransition","onDragTransitionEnd","momentumAnimations","startAxisValueAnimation","dragKey","externalMotionValue","scalePositionWithinConstraints","boxProgress","sourceLength","targetLength","updateScroll","updateLayout","addListeners","stopPointerListener","measureDragConstraints","stopMeasureLayoutListener","stopResizeListener","stopLayoutUpdateListener","hasLayoutChanged","asyncHandler","globalProjectionState","hasAnimatedSinceResize","hasEverUpdated","pixelsToPercent","pixels","correctBorderRadius","correct","correctBoxShadow","treeScale","projectionDelta","original","shadow","xScale","yScale","averageScale","MeasureLayoutWithContext","React__default","layoutGroup","switchLayoutGroup","correctors","defaultScaleCorrectors","group","didUpdate","safeToRemove","setOptions","layoutDependency","willUpdate","promote","relegate","getStack","members","currentAnimation","isLead","promoteContext","scheduleCheckAfterUnmount","deregister","usePresence","applyTo","boxShadow","borders","numBorders","asNumber","isPx","getRadius","radiusName","easeCrossfadeIn","compress","easeCrossfadeOut","copyAxisInto","originAxis","copyBoxInto","originBox","removePointDelta","removeAxisTransforms","sourceAxis","removeAxisDelta","removeBoxTransforms","sourceBox","isAxisDeltaZero","isDeltaZero","boxEqualsRounded","NodeStack","scheduleRender","prevLead","lead","indexOfNode","findIndex","member","preserveFollowOpacity","show","resumeFrom","preserveOpacity","snapshot","animationValues","isUpdating","isLayoutDirty","crossfade","hide","exitAnimationComplete","resumingFrom","removeLeadSnapshot","buildProjectionTransform","latestTransform","xTranslate","yTranslate","zTranslate","elementScaleX","elementScaleY","compareByDepth","FlatTree","isDirty","transformAxes","hiddenVisibility","visibility","projectionFrameData","totalNodes","resolvedTargetDeltas","recalculatedProjection","resetDistortingTransform","sharedAnimationValues","setStaticValue","createProjectionNode","attachResizeListener","defaultParent","measureScroll","checkIsScrollRoot","resetTransform","animationId","isTreeAnimating","isProjectionDirty","isSharedProjectionDirty","isTransformDirty","updateManuallyBlocked","updateBlockedByResize","isSVG","needsReset","shouldResetTransform","eventHandlers","hasTreeAnimated","updateScheduled","projectionUpdateScheduled","checkUpdateFailed","clearAllSnapshots","updateProjection","nodes","propagateDirtyNodes","resolveTargetDelta","calcProjection","cleanDirtyNodes","MotionDebug","record","hasProjected","isVisible","animationProgress","sharedNodes","notifyListeners","subscriptionManager","args","hasListeners","SVGElement","cancelDelay","resizeUnblockUpdate","checkElapsed","finishAnimation","registerSharedNode","hasRelativeTargetChanged","newLayout","isTreeAnimationBlocked","relativeTarget","layoutTransition","defaultLayoutTransition","onLayoutAnimationStart","onLayoutAnimationComplete","targetChanged","targetLayout","hasOnlyRelativeTargetChanged","layoutRoot","setAnimationOrigin","animationOptions","blockUpdate","unblockUpdate","isUpdateBlocked","startUpdate","resetSkewAndRotation","getTransformTemplate","shouldNotifyListeners","prevTransformTemplateValue","updateSnapshot","clearMeasurements","clearIsLayoutDirty","HandoffCancelAllAnimations","resetTransformStyle","notifyLayoutUpdate","preRender","clearSnapshot","removeLeadSnapshots","scheduleUpdateProjection","alwaysMeasureLayout","prevLayout","layoutCorrected","phase","layoutScroll","isRoot","isResetRequested","hasProjection","transformTemplateValue","transformTemplateHasChanged","removeTransform","pageBox","removeElementScroll","roundAxis","measuredBox","boxWithoutScroll","rootScroll","applyTransform","transformOnly","withTransforms","boxWithoutTransform","setTargetDelta","targetDelta","forceRelativeParentToResolveTarget","relativeParent","resolvedRelativeTargetAt","forceRecalculation","getLead","isShared","attemptToResolveRelativeTarget","getClosestProjectingParent","relativeTargetOrigin","targetWithTransforms","isProjecting","canSkip","pendingAnimation","prevTreeScaleX","prevTreeScaleY","treePath","isSharedTransition","treeLength","applyTreeDeltas","projectionTransform","projectionDeltaWithTransform","prevProjectionTransform","notifyAll","snapshotLatestValues","mixedValues","relativeLayout","isSharedLayoutAnimation","isOnlyMember","shouldCrossfadeOpacity","hasOpacityCrossfade","prevRelativeTarget","mixTargetDelta","mixAxisDelta","mixAxis","follow","opacityExit","borderLabel","followRadius","leadRadius","mixValues","motionValue$1","animateSingleValue","completeAnimation","applyTransformsToTarget","shouldAnimatePositionOnly","animationType","xLength","yLength","initialPromotionConfig","shouldPreserveFollowOpacity","getPrevLead","hasDistortingTransform","resetValues","styles","pointerEvents","emptyStyles","valuesToRender","corrected","num","resetTree","measuredLayout","axisSnapshot","layoutDelta","visualDelta","parentSnapshot","parentLayout","relativeSnapshot","onBeforeLayoutMeasure","userAgentContains","string","roundPoint","DocumentProjectionNode","HTMLProjectionNode","documentNode","removePointerDownListener","onPointerDown","pointerDownEvent","session","createPanHandlers","onPanSessionStart","onPanStart","onPan","onPanEnd","removeGroupControls","controls","dragControls","ProjectionNode","prefersReducedMotion","hasReducedMotionListener","visualElementStore","valueTypes","featureNames","numFeatures","propEventHandlers","numVariantProps","getClosestProjectingNode","allowProjection","VisualElement","valueSubscriptions","prevMotionValues","propEventSubscriptions","notifyUpdate","triggerBuild","renderInstance","baseTarget","initialValues","initialMotionValues","_props","_prevProps","_visualElement","removeFromVariantTree","addVariantChild","bindToMotionValue","matchMedia","motionMediaQuery","setReducedMotionPreferences","addListener","initPrefersReducedMotion","valueIsTransform","removeOnChange","latestValue","removeOnRenderRequest","other","sortInstanceNodePosition","ProjectionNodeConstructor","renderedProps","FeatureConstructor","MeasureLayoutComponent","feature","measureInstanceViewportBox","getStaticValue","nextValue","prevValue","existingValue","removeValue","updateMotionValuesFromProps","handleChildMotionValue","getVariant","getClosestVariantNode","closestVariantNode","removeValueFromRenderState","getBaseTargetFromProps","readValueFromInstance","setBaseTarget","valueFromInitial","DOMVisualElement","HTMLVisualElement","defaultType","computedStyle","childSubscription","SVGVisualElement","getAttribute","createDomVisualElement","createDomMotionConfig","any","ReactExports","useSyncExternalStoreExports","useAffectedDebugValue","affected","pathList","affectedToPathList","targetCache","proxyObject","notifyInSync","sync","lastSnapshot","lastAffected","inRender","currSnapshot","unsub","nextSnapshot","isChanged","currAffected","proxyCache","createProxy","proxyStateMap","refSet","buildProxyFunction","objectIs","newProxy","canProxy","defaultHandlePromise","snapCache","createSnapshot","handlePromise","snap","markToTrack","target2","ensureVersion","preventExtensions","versionHolder","proxyFunction","initialObject","found","op","nextVersion","checkVersion","createPropListener","newOp","propProxyStates","removePropListener","baseObject","receiver","hasPrevValue","getUntracked","childProxyState","addPropListener","propProxyState","proxyState","nextCheckVersion","propVersion","prevRemove","removeListener","defaultProxyFunction","ops","isListenerActive","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","webpackQueues","webpackExports","webpackError","resolveQueue","hasAwait","currentDeps","outerResolve","depQueues","rej","dep","wrapDeps","getResult","fnQueue","chunkId","miniCssF","inProgress","dataWebpackPrefix","script","needAttach","scripts","getElementsByTagName","charset","nc","onScriptComplete","doneFns","installedChunks","j","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal"],"sourceRoot":""}