{"version":3,"file":"static/chunks/985-0910cccda66225f5.js","mappings":"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","sources":["webpack://_N_E/./node_modules/@nextui-org/system/node_modules/@nextui-org/react-utils/dist/chunk-3XT5V4LF.mjs","webpack://_N_E/./node_modules/@nextui-org/system/dist/chunk-Q66YAGZJ.mjs","webpack://_N_E/./node_modules/@nextui-org/theme/dist/chunk-XHQUSKIE.mjs","webpack://_N_E/./node_modules/@react-aria/focus/dist/focusSafely.mjs","webpack://_N_E/./node_modules/@react-aria/interactions/dist/useFocusVisible.mjs","webpack://_N_E/./node_modules/@react-aria/ssr/dist/SSRProvider.mjs","webpack://_N_E/./node_modules/@react-aria/utils/dist/chain.mjs","webpack://_N_E/./node_modules/@react-aria/utils/dist/domHelpers.mjs","webpack://_N_E/./node_modules/@react-aria/utils/dist/focusWithoutScrolling.mjs","webpack://_N_E/./node_modules/@react-aria/utils/dist/isVirtualEvent.mjs","webpack://_N_E/./node_modules/@react-aria/utils/node_modules/clsx/dist/clsx.mjs","webpack://_N_E/./node_modules/@react-aria/utils/dist/mergeProps.mjs","webpack://_N_E/./node_modules/@react-aria/utils/dist/platform.mjs","webpack://_N_E/./node_modules/@react-aria/utils/dist/runAfterTransition.mjs","webpack://_N_E/./node_modules/@react-aria/utils/dist/useEffectEvent.mjs","webpack://_N_E/./node_modules/@react-aria/utils/dist/useValueEffect.mjs","webpack://_N_E/./node_modules/@react-aria/utils/dist/useId.mjs","webpack://_N_E/./node_modules/@react-aria/utils/dist/useLayoutEffect.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/memo.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/animators/utils/can-animate.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/animators/BaseAnimation.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/generators/inertia.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/easing/ease.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/easing/back.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/easing/anticipate.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/easing/utils/map.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/offsets/time.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/animators/drivers/driver-frameloop.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/animators/MainThreadAnimation.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/animators/waapi/easing.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/animators/AcceleratedAnimation.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/transitions.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/components/LazyMotion/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/LazyContext.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/easing/circ.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/events/add-dom-event.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/events/event-info.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/events/utils/is-primary-pointer.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/frameloop/render-step.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/frameloop/batcher.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/frameloop/frame.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/frameloop/microtask.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/frameloop/sync-time.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/Feature.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/setters.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/animation/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/animations.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/definitions.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/hover.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/focus.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/press.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/gestures.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/load-features.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/geometry/models.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/utils/measure.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/is-none.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/make-none-animatable.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/DOMKeyframesResolver.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/store.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/VisualElement.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/features-animation.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/motion-minimal.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/symbol.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/use-props.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/use-props.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/use-render.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/config-motion.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/render.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/KeyframesResolver.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/variant-props.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/GlobalConfig.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/array.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/clamp.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/errors.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/interpolate.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/is-browser.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/mix/color.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/mix/complex.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/mix/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/mix/number.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/noop.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/offsets/fill.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/offsets/default.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/pipe.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/progress.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/resolve-value.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/time-conversion.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-constant.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-force-update.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/types/color/hex.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/types/color/hsla.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/types/color/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/types/color/rgba.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/types/color/utils.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/types/complex/filter.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/types/complex/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/types/numbers/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/types/numbers/units.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/types/utils.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/use-will-change/is.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs"],"sourcesContent":["\"use client\";\n\n// src/context.ts\nimport * as React from \"react\";\nfunction createContext2(options = {}) {\n const {\n strict = true,\n errorMessage = \"useContext: `context` is undefined. Seems you forgot to wrap component within the Provider\",\n name\n } = options;\n const Context = React.createContext(void 0);\n Context.displayName = name;\n function useContext2() {\n var _a;\n const context = React.useContext(Context);\n if (!context && strict) {\n const error = new Error(errorMessage);\n error.name = \"ContextError\";\n (_a = Error.captureStackTrace) == null ? void 0 : _a.call(Error, error, useContext2);\n throw error;\n }\n return context;\n }\n return [Context.Provider, useContext2, Context];\n}\n\nexport {\n createContext2 as createContext\n};\n","\"use client\";\n\n// src/provider-context.ts\nimport { createContext } from \"@nextui-org/react-utils\";\nvar [ProviderContext, useProviderContext] = createContext({\n name: \"ProviderContext\",\n strict: false\n});\n\nexport {\n ProviderContext,\n useProviderContext\n};\n","// src/utils/classes.ts\nvar baseStyles = (prefix) => ({\n color: `hsl(var(--${prefix}-foreground))`,\n backgroundColor: `hsl(var(--${prefix}-background))`\n});\nvar focusVisibleClasses = [\n \"focus-visible:z-10\",\n \"focus-visible:outline-2\",\n \"focus-visible:outline-focus\",\n \"focus-visible:outline-offset-2\"\n];\nvar dataFocusVisibleClasses = [\n \"outline-none\",\n \"data-[focus-visible=true]:z-10\",\n \"data-[focus-visible=true]:outline-2\",\n \"data-[focus-visible=true]:outline-focus\",\n \"data-[focus-visible=true]:outline-offset-2\"\n];\nvar groupDataFocusVisibleClasses = [\n \"outline-none\",\n \"group-data-[focus-visible=true]:z-10\",\n \"group-data-[focus-visible=true]:ring-2\",\n \"group-data-[focus-visible=true]:ring-focus\",\n \"group-data-[focus-visible=true]:ring-offset-2\",\n \"group-data-[focus-visible=true]:ring-offset-background\"\n];\nvar ringClasses = [\n \"outline-none\",\n \"ring-2\",\n \"ring-focus\",\n \"ring-offset-2\",\n \"ring-offset-background\"\n];\nvar translateCenterClasses = [\n \"absolute\",\n \"top-1/2\",\n \"left-1/2\",\n \"-translate-x-1/2\",\n \"-translate-y-1/2\"\n];\nvar absoluteFullClasses = [\"absolute\", \"inset-0\"];\nvar collapseAdjacentVariantBorders = {\n default: [\"[&+.border-medium.border-default]:ms-[calc(theme(borderWidth.medium)*-1)]\"],\n primary: [\"[&+.border-medium.border-primary]:ms-[calc(theme(borderWidth.medium)*-1)]\"],\n secondary: [\"[&+.border-medium.border-secondary]:ms-[calc(theme(borderWidth.medium)*-1)]\"],\n success: [\"[&+.border-medium.border-success]:ms-[calc(theme(borderWidth.medium)*-1)]\"],\n warning: [\"[&+.border-medium.border-warning]:ms-[calc(theme(borderWidth.medium)*-1)]\"],\n danger: [\"[&+.border-medium.border-danger]:ms-[calc(theme(borderWidth.medium)*-1)]\"]\n};\n\nexport {\n baseStyles,\n focusVisibleClasses,\n dataFocusVisibleClasses,\n groupDataFocusVisibleClasses,\n ringClasses,\n translateCenterClasses,\n absoluteFullClasses,\n collapseAdjacentVariantBorders\n};\n","import {getOwnerDocument as $jlOai$getOwnerDocument, runAfterTransition as $jlOai$runAfterTransition, focusWithoutScrolling as $jlOai$focusWithoutScrolling} from \"@react-aria/utils\";\nimport {getInteractionModality as $jlOai$getInteractionModality} from \"@react-aria/interactions\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $6a99195332edec8b$export$80f3e147d781571c(element) {\n // If the user is interacting with a virtual cursor, e.g. screen reader, then\n // wait until after any animated transitions that are currently occurring on\n // the page before shifting focus. This avoids issues with VoiceOver on iOS\n // causing the page to scroll when moving focus if the element is transitioning\n // from off the screen.\n const ownerDocument = (0, $jlOai$getOwnerDocument)(element);\n if ((0, $jlOai$getInteractionModality)() === 'virtual') {\n let lastFocusedElement = ownerDocument.activeElement;\n (0, $jlOai$runAfterTransition)(()=>{\n // If focus did not move and the element is still in the document, focus it.\n if (ownerDocument.activeElement === lastFocusedElement && element.isConnected) (0, $jlOai$focusWithoutScrolling)(element);\n });\n } else (0, $jlOai$focusWithoutScrolling)(element);\n}\n\n\nexport {$6a99195332edec8b$export$80f3e147d781571c as focusSafely};\n//# sourceMappingURL=focusSafely.module.js.map\n","import {isMac as $28AnR$isMac, isVirtualClick as $28AnR$isVirtualClick, getOwnerWindow as $28AnR$getOwnerWindow, getOwnerDocument as $28AnR$getOwnerDocument} from \"@react-aria/utils\";\nimport {useState as $28AnR$useState, useEffect as $28AnR$useEffect} from \"react\";\nimport {useIsSSR as $28AnR$useIsSSR} from \"@react-aria/ssr\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n\nlet $507fabe10e71c6fb$var$currentModality = null;\nlet $507fabe10e71c6fb$var$changeHandlers = new Set();\nlet $507fabe10e71c6fb$export$d90243b58daecda7 = new Map(); // We use a map here to support setting event listeners across multiple document objects.\nlet $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\nlet $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;\n// Only Tab or Esc keys will make focus visible on text input elements\nconst $507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS = {\n Tab: true,\n Escape: true\n};\nfunction $507fabe10e71c6fb$var$triggerChangeHandlers(modality, e) {\n for (let handler of $507fabe10e71c6fb$var$changeHandlers)handler(modality, e);\n}\n/**\n * Helper function to determine if a KeyboardEvent is unmodified and could make keyboard focus styles visible.\n */ function $507fabe10e71c6fb$var$isValidKey(e) {\n // Control and Shift keys trigger when navigating back to the tab with keyboard.\n return !(e.metaKey || !(0, $28AnR$isMac)() && e.altKey || e.ctrlKey || e.key === 'Control' || e.key === 'Shift' || e.key === 'Meta');\n}\nfunction $507fabe10e71c6fb$var$handleKeyboardEvent(e) {\n $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n if ($507fabe10e71c6fb$var$isValidKey(e)) {\n $507fabe10e71c6fb$var$currentModality = 'keyboard';\n $507fabe10e71c6fb$var$triggerChangeHandlers('keyboard', e);\n }\n}\nfunction $507fabe10e71c6fb$var$handlePointerEvent(e) {\n $507fabe10e71c6fb$var$currentModality = 'pointer';\n if (e.type === 'mousedown' || e.type === 'pointerdown') {\n $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n $507fabe10e71c6fb$var$triggerChangeHandlers('pointer', e);\n }\n}\nfunction $507fabe10e71c6fb$var$handleClickEvent(e) {\n if ((0, $28AnR$isVirtualClick)(e)) {\n $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n $507fabe10e71c6fb$var$currentModality = 'virtual';\n }\n}\nfunction $507fabe10e71c6fb$var$handleFocusEvent(e) {\n // Firefox fires two extra focus events when the user first clicks into an iframe:\n // first on the window, then on the document. We ignore these events so they don't\n // cause keyboard focus rings to appear.\n if (e.target === window || e.target === document) return;\n // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.\n // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n if (!$507fabe10e71c6fb$var$hasEventBeforeFocus && !$507fabe10e71c6fb$var$hasBlurredWindowRecently) {\n $507fabe10e71c6fb$var$currentModality = 'virtual';\n $507fabe10e71c6fb$var$triggerChangeHandlers('virtual', e);\n }\n $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\n $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;\n}\nfunction $507fabe10e71c6fb$var$handleWindowBlur() {\n // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n // for example, since a subsequent focus event won't be fired.\n $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\n $507fabe10e71c6fb$var$hasBlurredWindowRecently = true;\n}\n/**\n * Setup global event listeners to control when keyboard focus style should be visible.\n */ function $507fabe10e71c6fb$var$setupGlobalFocusEvents(element) {\n if (typeof window === 'undefined' || $507fabe10e71c6fb$export$d90243b58daecda7.get((0, $28AnR$getOwnerWindow)(element))) return;\n const windowObject = (0, $28AnR$getOwnerWindow)(element);\n const documentObject = (0, $28AnR$getOwnerDocument)(element);\n // Programmatic focus() calls shouldn't affect the current input modality.\n // However, we need to detect other cases when a focus event occurs without\n // a preceding user event (e.g. screen reader focus). Overriding the focus\n // method on HTMLElement.prototype is a bit hacky, but works.\n let focus = windowObject.HTMLElement.prototype.focus;\n windowObject.HTMLElement.prototype.focus = function() {\n $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n focus.apply(this, arguments);\n };\n documentObject.addEventListener('keydown', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n documentObject.addEventListener('keyup', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n documentObject.addEventListener('click', $507fabe10e71c6fb$var$handleClickEvent, true);\n // Register focus events on the window so they are sure to happen\n // before React's event listeners (registered on the document).\n windowObject.addEventListener('focus', $507fabe10e71c6fb$var$handleFocusEvent, true);\n windowObject.addEventListener('blur', $507fabe10e71c6fb$var$handleWindowBlur, false);\n if (typeof PointerEvent !== 'undefined') {\n documentObject.addEventListener('pointerdown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.addEventListener('pointermove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.addEventListener('pointerup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n } else {\n documentObject.addEventListener('mousedown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.addEventListener('mousemove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.addEventListener('mouseup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n }\n // Add unmount handler\n windowObject.addEventListener('beforeunload', ()=>{\n $507fabe10e71c6fb$var$tearDownWindowFocusTracking(element);\n }, {\n once: true\n });\n $507fabe10e71c6fb$export$d90243b58daecda7.set(windowObject, {\n focus: focus\n });\n}\nconst $507fabe10e71c6fb$var$tearDownWindowFocusTracking = (element, loadListener)=>{\n const windowObject = (0, $28AnR$getOwnerWindow)(element);\n const documentObject = (0, $28AnR$getOwnerDocument)(element);\n if (loadListener) documentObject.removeEventListener('DOMContentLoaded', loadListener);\n if (!$507fabe10e71c6fb$export$d90243b58daecda7.has(windowObject)) return;\n windowObject.HTMLElement.prototype.focus = $507fabe10e71c6fb$export$d90243b58daecda7.get(windowObject).focus;\n documentObject.removeEventListener('keydown', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n documentObject.removeEventListener('keyup', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n documentObject.removeEventListener('click', $507fabe10e71c6fb$var$handleClickEvent, true);\n windowObject.removeEventListener('focus', $507fabe10e71c6fb$var$handleFocusEvent, true);\n windowObject.removeEventListener('blur', $507fabe10e71c6fb$var$handleWindowBlur, false);\n if (typeof PointerEvent !== 'undefined') {\n documentObject.removeEventListener('pointerdown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.removeEventListener('pointermove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.removeEventListener('pointerup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n } else {\n documentObject.removeEventListener('mousedown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.removeEventListener('mousemove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.removeEventListener('mouseup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n }\n $507fabe10e71c6fb$export$d90243b58daecda7.delete(windowObject);\n};\nfunction $507fabe10e71c6fb$export$2f1888112f558a7d(element) {\n const documentObject = (0, $28AnR$getOwnerDocument)(element);\n let loadListener;\n if (documentObject.readyState !== 'loading') $507fabe10e71c6fb$var$setupGlobalFocusEvents(element);\n else {\n loadListener = ()=>{\n $507fabe10e71c6fb$var$setupGlobalFocusEvents(element);\n };\n documentObject.addEventListener('DOMContentLoaded', loadListener);\n }\n return ()=>$507fabe10e71c6fb$var$tearDownWindowFocusTracking(element, loadListener);\n}\n// Server-side rendering does not have the document object defined\n// eslint-disable-next-line no-restricted-globals\nif (typeof document !== 'undefined') $507fabe10e71c6fb$export$2f1888112f558a7d();\nfunction $507fabe10e71c6fb$export$b9b3dfddab17db27() {\n return $507fabe10e71c6fb$var$currentModality !== 'pointer';\n}\nfunction $507fabe10e71c6fb$export$630ff653c5ada6a9() {\n return $507fabe10e71c6fb$var$currentModality;\n}\nfunction $507fabe10e71c6fb$export$8397ddfc504fdb9a(modality) {\n $507fabe10e71c6fb$var$currentModality = modality;\n $507fabe10e71c6fb$var$triggerChangeHandlers(modality, null);\n}\nfunction $507fabe10e71c6fb$export$98e20ec92f614cfe() {\n $507fabe10e71c6fb$var$setupGlobalFocusEvents();\n let [modality, setModality] = (0, $28AnR$useState)($507fabe10e71c6fb$var$currentModality);\n (0, $28AnR$useEffect)(()=>{\n let handler = ()=>{\n setModality($507fabe10e71c6fb$var$currentModality);\n };\n $507fabe10e71c6fb$var$changeHandlers.add(handler);\n return ()=>{\n $507fabe10e71c6fb$var$changeHandlers.delete(handler);\n };\n }, []);\n return (0, $28AnR$useIsSSR)() ? null : modality;\n}\nconst $507fabe10e71c6fb$var$nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\n/**\n * If this is attached to text input component, return if the event is a focus event (Tab/Escape keys pressed) so that\n * focus visible style can be properly set.\n */ function $507fabe10e71c6fb$var$isKeyboardFocusEvent(isTextInput, modality, e) {\n var _e_target;\n const IHTMLInputElement = typeof window !== 'undefined' ? (0, $28AnR$getOwnerWindow)(e === null || e === void 0 ? void 0 : e.target).HTMLInputElement : HTMLInputElement;\n const IHTMLTextAreaElement = typeof window !== 'undefined' ? (0, $28AnR$getOwnerWindow)(e === null || e === void 0 ? void 0 : e.target).HTMLTextAreaElement : HTMLTextAreaElement;\n const IHTMLElement = typeof window !== 'undefined' ? (0, $28AnR$getOwnerWindow)(e === null || e === void 0 ? void 0 : e.target).HTMLElement : HTMLElement;\n const IKeyboardEvent = typeof window !== 'undefined' ? (0, $28AnR$getOwnerWindow)(e === null || e === void 0 ? void 0 : e.target).KeyboardEvent : KeyboardEvent;\n isTextInput = isTextInput || (e === null || e === void 0 ? void 0 : e.target) instanceof IHTMLInputElement && !$507fabe10e71c6fb$var$nonTextInputTypes.has(e === null || e === void 0 ? void 0 : (_e_target = e.target) === null || _e_target === void 0 ? void 0 : _e_target.type) || (e === null || e === void 0 ? void 0 : e.target) instanceof IHTMLTextAreaElement || (e === null || e === void 0 ? void 0 : e.target) instanceof IHTMLElement && (e === null || e === void 0 ? void 0 : e.target.isContentEditable);\n return !(isTextInput && modality === 'keyboard' && e instanceof IKeyboardEvent && !$507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS[e.key]);\n}\nfunction $507fabe10e71c6fb$export$ffd9e5021c1fb2d6(props = {}) {\n let { isTextInput: isTextInput, autoFocus: autoFocus } = props;\n let [isFocusVisibleState, setFocusVisible] = (0, $28AnR$useState)(autoFocus || $507fabe10e71c6fb$export$b9b3dfddab17db27());\n $507fabe10e71c6fb$export$ec71b4b83ac08ec3((isFocusVisible)=>{\n setFocusVisible(isFocusVisible);\n }, [\n isTextInput\n ], {\n isTextInput: isTextInput\n });\n return {\n isFocusVisible: isFocusVisibleState\n };\n}\nfunction $507fabe10e71c6fb$export$ec71b4b83ac08ec3(fn, deps, opts) {\n $507fabe10e71c6fb$var$setupGlobalFocusEvents();\n (0, $28AnR$useEffect)(()=>{\n let handler = (modality, e)=>{\n if (!$507fabe10e71c6fb$var$isKeyboardFocusEvent(!!(opts === null || opts === void 0 ? void 0 : opts.isTextInput), modality, e)) return;\n fn($507fabe10e71c6fb$export$b9b3dfddab17db27());\n };\n $507fabe10e71c6fb$var$changeHandlers.add(handler);\n return ()=>{\n $507fabe10e71c6fb$var$changeHandlers.delete(handler);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n}\n\n\nexport {$507fabe10e71c6fb$export$d90243b58daecda7 as hasSetupGlobalListeners, $507fabe10e71c6fb$export$2f1888112f558a7d as addWindowFocusTracking, $507fabe10e71c6fb$export$b9b3dfddab17db27 as isFocusVisible, $507fabe10e71c6fb$export$630ff653c5ada6a9 as getInteractionModality, $507fabe10e71c6fb$export$8397ddfc504fdb9a as setInteractionModality, $507fabe10e71c6fb$export$98e20ec92f614cfe as useInteractionModality, $507fabe10e71c6fb$export$ffd9e5021c1fb2d6 as useFocusVisible, $507fabe10e71c6fb$export$ec71b4b83ac08ec3 as useFocusVisibleListener};\n//# sourceMappingURL=useFocusVisible.module.js.map\n","import $670gB$react, {useContext as $670gB$useContext, useState as $670gB$useState, useMemo as $670gB$useMemo, useLayoutEffect as $670gB$useLayoutEffect, useRef as $670gB$useRef} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // We must avoid a circular dependency with @react-aria/utils, and this useLayoutEffect is\n// guarded by a check that it only runs on the client side.\n// eslint-disable-next-line rulesdir/useLayoutEffectRule\n\n// Default context value to use in case there is no SSRProvider. This is fine for\n// client-only apps. In order to support multiple copies of React Aria potentially\n// being on the page at once, the prefix is set to a random number. SSRProvider\n// will reset this to zero for consistency between server and client, so in the\n// SSR case multiple copies of React Aria is not supported.\nconst $b5e257d569688ac6$var$defaultContext = {\n prefix: String(Math.round(Math.random() * 10000000000)),\n current: 0\n};\nconst $b5e257d569688ac6$var$SSRContext = /*#__PURE__*/ (0, $670gB$react).createContext($b5e257d569688ac6$var$defaultContext);\nconst $b5e257d569688ac6$var$IsSSRContext = /*#__PURE__*/ (0, $670gB$react).createContext(false);\n// This is only used in React < 18.\nfunction $b5e257d569688ac6$var$LegacySSRProvider(props) {\n let cur = (0, $670gB$useContext)($b5e257d569688ac6$var$SSRContext);\n let counter = $b5e257d569688ac6$var$useCounter(cur === $b5e257d569688ac6$var$defaultContext);\n let [isSSR, setIsSSR] = (0, $670gB$useState)(true);\n let value = (0, $670gB$useMemo)(()=>({\n // If this is the first SSRProvider, start with an empty string prefix, otherwise\n // append and increment the counter.\n prefix: cur === $b5e257d569688ac6$var$defaultContext ? '' : `${cur.prefix}-${counter}`,\n current: 0\n }), [\n cur,\n counter\n ]);\n // If on the client, and the component was initially server rendered,\n // then schedule a layout effect to update the component after hydration.\n if (typeof document !== 'undefined') // This if statement technically breaks the rules of hooks, but is safe\n // because the condition never changes after mounting.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0, $670gB$useLayoutEffect)(()=>{\n setIsSSR(false);\n }, []);\n return /*#__PURE__*/ (0, $670gB$react).createElement($b5e257d569688ac6$var$SSRContext.Provider, {\n value: value\n }, /*#__PURE__*/ (0, $670gB$react).createElement($b5e257d569688ac6$var$IsSSRContext.Provider, {\n value: isSSR\n }, props.children));\n}\nlet $b5e257d569688ac6$var$warnedAboutSSRProvider = false;\nfunction $b5e257d569688ac6$export$9f8ac96af4b1b2ae(props) {\n if (typeof (0, $670gB$react)['useId'] === 'function') {\n if (process.env.NODE_ENV !== 'test' && !$b5e257d569688ac6$var$warnedAboutSSRProvider) {\n console.warn('In React 18, SSRProvider is not necessary and is a noop. You can remove it from your app.');\n $b5e257d569688ac6$var$warnedAboutSSRProvider = true;\n }\n return /*#__PURE__*/ (0, $670gB$react).createElement((0, $670gB$react).Fragment, null, props.children);\n }\n return /*#__PURE__*/ (0, $670gB$react).createElement($b5e257d569688ac6$var$LegacySSRProvider, props);\n}\nlet $b5e257d569688ac6$var$canUseDOM = Boolean(typeof window !== 'undefined' && window.document && window.document.createElement);\nlet $b5e257d569688ac6$var$componentIds = new WeakMap();\nfunction $b5e257d569688ac6$var$useCounter(isDisabled = false) {\n let ctx = (0, $670gB$useContext)($b5e257d569688ac6$var$SSRContext);\n let ref = (0, $670gB$useRef)(null);\n // eslint-disable-next-line rulesdir/pure-render\n if (ref.current === null && !isDisabled) {\n var _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner, _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n // In strict mode, React renders components twice, and the ref will be reset to null on the second render.\n // This means our id counter will be incremented twice instead of once. This is a problem because on the\n // server, components are only rendered once and so ids generated on the server won't match the client.\n // In React 18, useId was introduced to solve this, but it is not available in older versions. So to solve this\n // we need to use some React internals to access the underlying Fiber instance, which is stable between renders.\n // This is exposed as ReactCurrentOwner in development, which is all we need since StrictMode only runs in development.\n // To ensure that we only increment the global counter once, we store the starting id for this component in\n // a weak map associated with the Fiber. On the second render, we reset the global counter to this value.\n // Since React runs the second render immediately after the first, this is safe.\n // @ts-ignore\n let currentOwner = (_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = (0, $670gB$react).__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === null || _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED === void 0 ? void 0 : (_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner = _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner) === null || _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner === void 0 ? void 0 : _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner.current;\n if (currentOwner) {\n let prevComponentValue = $b5e257d569688ac6$var$componentIds.get(currentOwner);\n if (prevComponentValue == null) // On the first render, and first call to useId, store the id and state in our weak map.\n $b5e257d569688ac6$var$componentIds.set(currentOwner, {\n id: ctx.current,\n state: currentOwner.memoizedState\n });\n else if (currentOwner.memoizedState !== prevComponentValue.state) {\n // On the second render, the memoizedState gets reset by React.\n // Reset the counter, and remove from the weak map so we don't\n // do this for subsequent useId calls.\n ctx.current = prevComponentValue.id;\n $b5e257d569688ac6$var$componentIds.delete(currentOwner);\n }\n }\n // eslint-disable-next-line rulesdir/pure-render\n ref.current = ++ctx.current;\n }\n // eslint-disable-next-line rulesdir/pure-render\n return ref.current;\n}\nfunction $b5e257d569688ac6$var$useLegacySSRSafeId(defaultId) {\n let ctx = (0, $670gB$useContext)($b5e257d569688ac6$var$SSRContext);\n // If we are rendering in a non-DOM environment, and there's no SSRProvider,\n // provide a warning to hint to the developer to add one.\n if (ctx === $b5e257d569688ac6$var$defaultContext && !$b5e257d569688ac6$var$canUseDOM) console.warn('When server rendering, you must wrap your application in an to ensure consistent ids are generated between the client and server.');\n let counter = $b5e257d569688ac6$var$useCounter(!!defaultId);\n let prefix = ctx === $b5e257d569688ac6$var$defaultContext && process.env.NODE_ENV === 'test' ? 'react-aria' : `react-aria${ctx.prefix}`;\n return defaultId || `${prefix}-${counter}`;\n}\nfunction $b5e257d569688ac6$var$useModernSSRSafeId(defaultId) {\n // @ts-ignore\n let id = (0, $670gB$react).useId();\n let [didSSR] = (0, $670gB$useState)($b5e257d569688ac6$export$535bd6ca7f90a273());\n let prefix = didSSR || process.env.NODE_ENV === 'test' ? 'react-aria' : `react-aria${$b5e257d569688ac6$var$defaultContext.prefix}`;\n return defaultId || `${prefix}-${id}`;\n}\nconst $b5e257d569688ac6$export$619500959fc48b26 = typeof (0, $670gB$react)['useId'] === 'function' ? $b5e257d569688ac6$var$useModernSSRSafeId : $b5e257d569688ac6$var$useLegacySSRSafeId;\nfunction $b5e257d569688ac6$var$getSnapshot() {\n return false;\n}\nfunction $b5e257d569688ac6$var$getServerSnapshot() {\n return true;\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction $b5e257d569688ac6$var$subscribe(onStoreChange) {\n // noop\n return ()=>{};\n}\nfunction $b5e257d569688ac6$export$535bd6ca7f90a273() {\n // In React 18, we can use useSyncExternalStore to detect if we're server rendering or hydrating.\n if (typeof (0, $670gB$react)['useSyncExternalStore'] === 'function') return (0, $670gB$react)['useSyncExternalStore']($b5e257d569688ac6$var$subscribe, $b5e257d569688ac6$var$getSnapshot, $b5e257d569688ac6$var$getServerSnapshot);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return (0, $670gB$useContext)($b5e257d569688ac6$var$IsSSRContext);\n}\n\n\nexport {$b5e257d569688ac6$export$9f8ac96af4b1b2ae as SSRProvider, $b5e257d569688ac6$export$535bd6ca7f90a273 as useIsSSR, $b5e257d569688ac6$export$619500959fc48b26 as useSSRSafeId};\n//# sourceMappingURL=SSRProvider.module.js.map\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /**\n * Calls all functions in the order they were chained with the same arguments.\n */ function $ff5963eb1fccf552$export$e08e3b67e392101e(...callbacks) {\n return (...args)=>{\n for (let callback of callbacks)if (typeof callback === 'function') callback(...args);\n };\n}\n\n\nexport {$ff5963eb1fccf552$export$e08e3b67e392101e as chain};\n//# sourceMappingURL=chain.module.js.map\n","const $431fbd86ca7dc216$export$b204af158042fbac = (el)=>{\n var _el_ownerDocument;\n return (_el_ownerDocument = el === null || el === void 0 ? void 0 : el.ownerDocument) !== null && _el_ownerDocument !== void 0 ? _el_ownerDocument : document;\n};\nconst $431fbd86ca7dc216$export$f21a1ffae260145a = (el)=>{\n if (el && 'window' in el && el.window === el) return el;\n const doc = $431fbd86ca7dc216$export$b204af158042fbac(el);\n return doc.defaultView || window;\n};\n\n\nexport {$431fbd86ca7dc216$export$b204af158042fbac as getOwnerDocument, $431fbd86ca7dc216$export$f21a1ffae260145a as getOwnerWindow};\n//# sourceMappingURL=domHelpers.module.js.map\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $7215afc6de606d6b$export$de79e2c695e052f3(element) {\n if ($7215afc6de606d6b$var$supportsPreventScroll()) element.focus({\n preventScroll: true\n });\n else {\n let scrollableElements = $7215afc6de606d6b$var$getScrollableElements(element);\n element.focus();\n $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements);\n }\n}\nlet $7215afc6de606d6b$var$supportsPreventScrollCached = null;\nfunction $7215afc6de606d6b$var$supportsPreventScroll() {\n if ($7215afc6de606d6b$var$supportsPreventScrollCached == null) {\n $7215afc6de606d6b$var$supportsPreventScrollCached = false;\n try {\n let focusElem = document.createElement('div');\n focusElem.focus({\n get preventScroll () {\n $7215afc6de606d6b$var$supportsPreventScrollCached = true;\n return true;\n }\n });\n } catch (e) {\n // Ignore\n }\n }\n return $7215afc6de606d6b$var$supportsPreventScrollCached;\n}\nfunction $7215afc6de606d6b$var$getScrollableElements(element) {\n let parent = element.parentNode;\n let scrollableElements = [];\n let rootScrollingElement = document.scrollingElement || document.documentElement;\n while(parent instanceof HTMLElement && parent !== rootScrollingElement){\n if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) scrollableElements.push({\n element: parent,\n scrollTop: parent.scrollTop,\n scrollLeft: parent.scrollLeft\n });\n parent = parent.parentNode;\n }\n if (rootScrollingElement instanceof HTMLElement) scrollableElements.push({\n element: rootScrollingElement,\n scrollTop: rootScrollingElement.scrollTop,\n scrollLeft: rootScrollingElement.scrollLeft\n });\n return scrollableElements;\n}\nfunction $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements) {\n for (let { element: element, scrollTop: scrollTop, scrollLeft: scrollLeft } of scrollableElements){\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }\n}\n\n\nexport {$7215afc6de606d6b$export$de79e2c695e052f3 as focusWithoutScrolling};\n//# sourceMappingURL=focusWithoutScrolling.module.js.map\n","import {isAndroid as $c87311424ea30a05$export$a11b0059900ceec8} from \"./platform.mjs\";\n\n/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $6a7db85432448f7f$export$60278871457622de(event) {\n // JAWS/NVDA with Firefox.\n if (event.mozInputSource === 0 && event.isTrusted) return true;\n // Android TalkBack's detail value varies depending on the event listener providing the event so we have specific logic here instead\n // If pointerType is defined, event is from a click listener. For events from mousedown listener, detail === 0 is a sufficient check\n // to detect TalkBack virtual clicks.\n if ((0, $c87311424ea30a05$export$a11b0059900ceec8)() && event.pointerType) return event.type === 'click' && event.buttons === 1;\n return event.detail === 0 && !event.pointerType;\n}\nfunction $6a7db85432448f7f$export$29bf1b5f2c56cf63(event) {\n // If the pointer size is zero, then we assume it's from a screen reader.\n // Android TalkBack double tap will sometimes return a event with width and height of 1\n // and pointerType === 'mouse' so we need to check for a specific combination of event attributes.\n // Cannot use \"event.pressure === 0\" as the sole check due to Safari pointer events always returning pressure === 0\n // instead of .5, see https://bugs.webkit.org/show_bug.cgi?id=206216. event.pointerType === 'mouse' is to distingush\n // Talkback double tap from Windows Firefox touch screen press\n return !(0, $c87311424ea30a05$export$a11b0059900ceec8)() && event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'mouse';\n}\n\n\nexport {$6a7db85432448f7f$export$60278871457622de as isVirtualClick, $6a7db85432448f7f$export$29bf1b5f2c56cf63 as isVirtualPointerEvent};\n//# sourceMappingURL=isVirtualEvent.module.js.map\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t= /* 'A' */ 65 && key.charCodeAt(2) <= /* 'Z' */ 90) result[key] = (0, $ff5963eb1fccf552$export$e08e3b67e392101e)(a, b);\n else if ((key === 'className' || key === 'UNSAFE_className') && typeof a === 'string' && typeof b === 'string') result[key] = (0, $7jXr9$clsx)(a, b);\n else if (key === 'id' && a && b) result.id = (0, $bdb11010cef70236$export$cd8c9cb68f842629)(a, b);\n else result[key] = b !== undefined ? b : a;\n }\n }\n return result;\n}\n\n\nexport {$3ef42575df84b30b$export$9d1611c77c2fe928 as mergeProps};\n//# sourceMappingURL=mergeProps.module.js.map\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $c87311424ea30a05$var$testUserAgent(re) {\n var _window_navigator_userAgentData;\n if (typeof window === 'undefined' || window.navigator == null) return false;\n return ((_window_navigator_userAgentData = window.navigator['userAgentData']) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.brands.some((brand)=>re.test(brand.brand))) || re.test(window.navigator.userAgent);\n}\nfunction $c87311424ea30a05$var$testPlatform(re) {\n var _window_navigator_userAgentData;\n return typeof window !== 'undefined' && window.navigator != null ? re.test(((_window_navigator_userAgentData = window.navigator['userAgentData']) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.platform) || window.navigator.platform) : false;\n}\nfunction $c87311424ea30a05$export$9ac100e40613ea10() {\n return $c87311424ea30a05$var$testPlatform(/^Mac/i);\n}\nfunction $c87311424ea30a05$export$186c6964ca17d99() {\n return $c87311424ea30a05$var$testPlatform(/^iPhone/i);\n}\nfunction $c87311424ea30a05$export$7bef049ce92e4224() {\n return $c87311424ea30a05$var$testPlatform(/^iPad/i) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n $c87311424ea30a05$export$9ac100e40613ea10() && navigator.maxTouchPoints > 1;\n}\nfunction $c87311424ea30a05$export$fedb369cb70207f1() {\n return $c87311424ea30a05$export$186c6964ca17d99() || $c87311424ea30a05$export$7bef049ce92e4224();\n}\nfunction $c87311424ea30a05$export$e1865c3bedcd822b() {\n return $c87311424ea30a05$export$9ac100e40613ea10() || $c87311424ea30a05$export$fedb369cb70207f1();\n}\nfunction $c87311424ea30a05$export$78551043582a6a98() {\n return $c87311424ea30a05$var$testUserAgent(/AppleWebKit/i) && !$c87311424ea30a05$export$6446a186d09e379e();\n}\nfunction $c87311424ea30a05$export$6446a186d09e379e() {\n return $c87311424ea30a05$var$testUserAgent(/Chrome/i);\n}\nfunction $c87311424ea30a05$export$a11b0059900ceec8() {\n return $c87311424ea30a05$var$testUserAgent(/Android/i);\n}\nfunction $c87311424ea30a05$export$b7d78993b74f766d() {\n return $c87311424ea30a05$var$testUserAgent(/Firefox/i);\n}\n\n\nexport {$c87311424ea30a05$export$9ac100e40613ea10 as isMac, $c87311424ea30a05$export$186c6964ca17d99 as isIPhone, $c87311424ea30a05$export$7bef049ce92e4224 as isIPad, $c87311424ea30a05$export$fedb369cb70207f1 as isIOS, $c87311424ea30a05$export$e1865c3bedcd822b as isAppleDevice, $c87311424ea30a05$export$78551043582a6a98 as isWebKit, $c87311424ea30a05$export$6446a186d09e379e as isChrome, $c87311424ea30a05$export$a11b0059900ceec8 as isAndroid, $c87311424ea30a05$export$b7d78993b74f766d as isFirefox};\n//# sourceMappingURL=platform.module.js.map\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // We store a global list of elements that are currently transitioning,\n// mapped to a set of CSS properties that are transitioning for that element.\n// This is necessary rather than a simple count of transitions because of browser\n// bugs, e.g. Chrome sometimes fires both transitionend and transitioncancel rather\n// than one or the other. So we need to track what's actually transitioning so that\n// we can ignore these duplicate events.\nlet $bbed8b41f857bcc0$var$transitionsByElement = new Map();\n// A list of callbacks to call once there are no transitioning elements.\nlet $bbed8b41f857bcc0$var$transitionCallbacks = new Set();\nfunction $bbed8b41f857bcc0$var$setupGlobalEvents() {\n if (typeof window === 'undefined') return;\n function isTransitionEvent(event) {\n return 'propertyName' in event;\n }\n let onTransitionStart = (e)=>{\n if (!isTransitionEvent(e) || !e.target) return;\n // Add the transitioning property to the list for this element.\n let transitions = $bbed8b41f857bcc0$var$transitionsByElement.get(e.target);\n if (!transitions) {\n transitions = new Set();\n $bbed8b41f857bcc0$var$transitionsByElement.set(e.target, transitions);\n // The transitioncancel event must be registered on the element itself, rather than as a global\n // event. This enables us to handle when the node is deleted from the document while it is transitioning.\n // In that case, the cancel event would have nowhere to bubble to so we need to handle it directly.\n e.target.addEventListener('transitioncancel', onTransitionEnd, {\n once: true\n });\n }\n transitions.add(e.propertyName);\n };\n let onTransitionEnd = (e)=>{\n if (!isTransitionEvent(e) || !e.target) return;\n // Remove property from list of transitioning properties.\n let properties = $bbed8b41f857bcc0$var$transitionsByElement.get(e.target);\n if (!properties) return;\n properties.delete(e.propertyName);\n // If empty, remove transitioncancel event, and remove the element from the list of transitioning elements.\n if (properties.size === 0) {\n e.target.removeEventListener('transitioncancel', onTransitionEnd);\n $bbed8b41f857bcc0$var$transitionsByElement.delete(e.target);\n }\n // If no transitioning elements, call all of the queued callbacks.\n if ($bbed8b41f857bcc0$var$transitionsByElement.size === 0) {\n for (let cb of $bbed8b41f857bcc0$var$transitionCallbacks)cb();\n $bbed8b41f857bcc0$var$transitionCallbacks.clear();\n }\n };\n document.body.addEventListener('transitionrun', onTransitionStart);\n document.body.addEventListener('transitionend', onTransitionEnd);\n}\nif (typeof document !== 'undefined') {\n if (document.readyState !== 'loading') $bbed8b41f857bcc0$var$setupGlobalEvents();\n else document.addEventListener('DOMContentLoaded', $bbed8b41f857bcc0$var$setupGlobalEvents);\n}\nfunction $bbed8b41f857bcc0$export$24490316f764c430(fn) {\n // Wait one frame to see if an animation starts, e.g. a transition on mount.\n requestAnimationFrame(()=>{\n // If no transitions are running, call the function immediately.\n // Otherwise, add it to a list of callbacks to run at the end of the animation.\n if ($bbed8b41f857bcc0$var$transitionsByElement.size === 0) fn();\n else $bbed8b41f857bcc0$var$transitionCallbacks.add(fn);\n });\n}\n\n\nexport {$bbed8b41f857bcc0$export$24490316f764c430 as runAfterTransition};\n//# sourceMappingURL=runAfterTransition.module.js.map\n","import {useLayoutEffect as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c} from \"./useLayoutEffect.mjs\";\nimport {useRef as $lmaYr$useRef, useCallback as $lmaYr$useCallback} from \"react\";\n\n/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $8ae05eaa5c114e9c$export$7f54fc3180508a52(fn) {\n const ref = (0, $lmaYr$useRef)(null);\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n ref.current = fn;\n }, [\n fn\n ]);\n // @ts-ignore\n return (0, $lmaYr$useCallback)((...args)=>{\n const f = ref.current;\n return f === null || f === void 0 ? void 0 : f(...args);\n }, []);\n}\n\n\nexport {$8ae05eaa5c114e9c$export$7f54fc3180508a52 as useEffectEvent};\n//# sourceMappingURL=useEffectEvent.module.js.map\n","import {useEffectEvent as $8ae05eaa5c114e9c$export$7f54fc3180508a52} from \"./useEffectEvent.mjs\";\nimport {useLayoutEffect as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c} from \"./useLayoutEffect.mjs\";\nimport {useState as $fCAlL$useState, useRef as $fCAlL$useRef} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $1dbecbe27a04f9af$export$14d238f342723f25(defaultValue) {\n let [value, setValue] = (0, $fCAlL$useState)(defaultValue);\n let effect = (0, $fCAlL$useRef)(null);\n // Store the function in a ref so we can always access the current version\n // which has the proper `value` in scope.\n let nextRef = (0, $8ae05eaa5c114e9c$export$7f54fc3180508a52)(()=>{\n if (!effect.current) return;\n // Run the generator to the next yield.\n let newValue = effect.current.next();\n // If the generator is done, reset the effect.\n if (newValue.done) {\n effect.current = null;\n return;\n }\n // If the value is the same as the current value,\n // then continue to the next yield. Otherwise,\n // set the value in state and wait for the next layout effect.\n if (value === newValue.value) nextRef();\n else setValue(newValue.value);\n });\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n // If there is an effect currently running, continue to the next yield.\n if (effect.current) nextRef();\n });\n let queue = (0, $8ae05eaa5c114e9c$export$7f54fc3180508a52)((fn)=>{\n effect.current = fn(value);\n nextRef();\n });\n return [\n value,\n queue\n ];\n}\n\n\nexport {$1dbecbe27a04f9af$export$14d238f342723f25 as useValueEffect};\n//# sourceMappingURL=useValueEffect.module.js.map\n","import {useLayoutEffect as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c} from \"./useLayoutEffect.mjs\";\nimport {useValueEffect as $1dbecbe27a04f9af$export$14d238f342723f25} from \"./useValueEffect.mjs\";\nimport {useState as $eKkEp$useState, useRef as $eKkEp$useRef, useCallback as $eKkEp$useCallback, useEffect as $eKkEp$useEffect} from \"react\";\nimport {useSSRSafeId as $eKkEp$useSSRSafeId} from \"@react-aria/ssr\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n// copied from SSRProvider.tsx to reduce exports, if needed again, consider sharing\nlet $bdb11010cef70236$var$canUseDOM = Boolean(typeof window !== 'undefined' && window.document && window.document.createElement);\nlet $bdb11010cef70236$var$idsUpdaterMap = new Map();\nfunction $bdb11010cef70236$export$f680877a34711e37(defaultId) {\n let [value, setValue] = (0, $eKkEp$useState)(defaultId);\n let nextId = (0, $eKkEp$useRef)(null);\n let res = (0, $eKkEp$useSSRSafeId)(value);\n let updateValue = (0, $eKkEp$useCallback)((val)=>{\n nextId.current = val;\n }, []);\n if ($bdb11010cef70236$var$canUseDOM) $bdb11010cef70236$var$idsUpdaterMap.set(res, updateValue);\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n let r = res;\n return ()=>{\n $bdb11010cef70236$var$idsUpdaterMap.delete(r);\n };\n }, [\n res\n ]);\n // This cannot cause an infinite loop because the ref is updated first.\n // eslint-disable-next-line\n (0, $eKkEp$useEffect)(()=>{\n let newId = nextId.current;\n if (newId) {\n nextId.current = null;\n setValue(newId);\n }\n });\n return res;\n}\nfunction $bdb11010cef70236$export$cd8c9cb68f842629(idA, idB) {\n if (idA === idB) return idA;\n let setIdA = $bdb11010cef70236$var$idsUpdaterMap.get(idA);\n if (setIdA) {\n setIdA(idB);\n return idB;\n }\n let setIdB = $bdb11010cef70236$var$idsUpdaterMap.get(idB);\n if (setIdB) {\n setIdB(idA);\n return idA;\n }\n return idB;\n}\nfunction $bdb11010cef70236$export$b4cc09c592e8fdb8(depArray = []) {\n let id = $bdb11010cef70236$export$f680877a34711e37();\n let [resolvedId, setResolvedId] = (0, $1dbecbe27a04f9af$export$14d238f342723f25)(id);\n let updateId = (0, $eKkEp$useCallback)(()=>{\n setResolvedId(function*() {\n yield id;\n yield document.getElementById(id) ? id : undefined;\n });\n }, [\n id,\n setResolvedId\n ]);\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(updateId, [\n id,\n updateId,\n ...depArray\n ]);\n return resolvedId;\n}\n\n\nexport {$bdb11010cef70236$export$f680877a34711e37 as useId, $bdb11010cef70236$export$cd8c9cb68f842629 as mergeIds, $bdb11010cef70236$export$b4cc09c592e8fdb8 as useSlotId};\n//# sourceMappingURL=useId.module.js.map\n","import $HgANd$react from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nconst $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c = typeof document !== 'undefined' ? (0, $HgANd$react).useLayoutEffect : ()=>{};\n\n\nexport {$f0a04ccd8dbdd83b$export$e5c5a5f917a5871c as useLayoutEffect};\n//# sourceMappingURL=useLayoutEffect.module.js.map\n","import { 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","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","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 { 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 { 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","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 { 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), // TODO: This should be passing * 1000\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","const isEasingArray = (ease) => {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\nexport { isEasingArray };\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 { 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","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","function convertOffsetToTimes(offset, duration) {\n return offset.map((o) => o * duration);\n}\n\nexport { convertOffsetToTimes };\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","/**\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","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 /**\n * This method is bound to the instance to fix a pattern where\n * animation.stop is returned as a reference from a useEffect.\n */\n this.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 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 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","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\" && easing in supportedWaapiEasing) ||\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 mapEasingToNativeEasingWithDefault(easing) {\n return (mapEasingToNativeEasing(easing) ||\n supportedWaapiEasing.easeOut);\n}\nfunction mapEasingToNativeEasing(easing) {\n if (!easing) {\n return undefined;\n }\n else if (isBezierDefinition(easing)) {\n return cubicBezierAsString(easing);\n }\n else if (Array.isArray(easing)) {\n return easing.map(mapEasingToNativeEasingWithDefault);\n }\n else {\n return supportedWaapiEasing[easing];\n }\n}\n\nexport { cubicBezierAsString, isWaapiSupportedEasing, mapEasingToNativeEasing, supportedWaapiEasing };\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 { 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","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 && !options.repeatDelay)) {\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 { camelToDash } from '../../render/dom/utils/camel-to-dash.mjs';\n\nconst optimizedAppearDataId = \"framerAppearId\";\nconst optimizedAppearDataAttribute = \"data-\" + camelToDash(optimizedAppearDataId);\n\nexport { optimizedAppearDataAttribute, optimizedAppearDataId };\n","function isAnimationControls(v) {\n return (v !== null &&\n typeof v === \"object\" &&\n typeof v.start === \"function\");\n}\n\nexport { isAnimationControls };\n","const isKeyframesTarget = (v) => {\n return Array.isArray(v);\n};\n\nexport { isKeyframesTarget };\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] ||\n transition[\"default\"] ||\n transition);\n}\n\nexport { getValueTransition, isTransitionDefined };\n","import { jsx } from 'react/jsx-runtime';\nimport * 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 (jsx(PopChildMeasure, { isPresent: isPresent, childRef: ref, sizeRef: size, children: React.cloneElement(children, { ref }) }));\n}\n\nexport { PopChild };\n","import { jsx } from 'react/jsx-runtime';\nimport * as React from 'react';\nimport { useId, useMemo } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { PopChild } from './PopChild.mjs';\n\nconst PresenceChild = ({ children, initial, isPresent, onExitComplete, custom, presenceAffectsLayout, mode, }) => {\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 ? [Math.random()] : [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 = jsx(PopChild, { isPresent: isPresent, children: children });\n }\n return (jsx(PresenceContext.Provider, { value: context, children: children }));\n};\nfunction newChildrenMap() {\n return new Map();\n}\n\nexport { PresenceChild };\n","import { useEffect } from 'react';\n\nfunction useUnmountEffect(callback) {\n return useEffect(() => () => callback(), []);\n}\n\nexport { useUnmountEffect };\n","import { jsx, Fragment } from 'react/jsx-runtime';\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 (jsx(Fragment, { children: childrenToRender.map((child) => (jsx(PresenceChild, { isPresent: true, initial: initial ? undefined : false, presenceAffectsLayout: presenceAffectsLayout, mode: mode, children: child }, getChildKey(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 = (jsx(PresenceChild, { isPresent: false, onExitComplete: onExit, custom: custom, presenceAffectsLayout: presenceAffectsLayout, mode: mode, children: child }, getChildKey(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) : (jsx(PresenceChild, { isPresent: true, presenceAffectsLayout: presenceAffectsLayout, mode: mode, children: child }, getChildKey(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 (jsx(Fragment, { children: exitingChildren.size\n ? childrenToRender\n : childrenToRender.map((child) => cloneElement(child)) }));\n};\n\nexport { AnimatePresence };\n","import { jsx } from 'react/jsx-runtime';\nimport { useState, useRef, useEffect } from 'react';\nimport { LazyContext } from '../../context/LazyContext.mjs';\nimport { loadFeatures } from '../../motion/features/load-features.mjs';\n\n/**\n * Used in conjunction with the `m` component to reduce bundle size.\n *\n * `m` is a version of the `motion` component that only loads functionality\n * critical for the initial render.\n *\n * `LazyMotion` can then be used to either synchronously or asynchronously\n * load animation and gesture support.\n *\n * ```jsx\n * // Synchronous loading\n * import { LazyMotion, m, domAnimation } from \"framer-motion\"\n *\n * function App() {\n * return (\n * \n * \n * \n * )\n * }\n *\n * // Asynchronous loading\n * import { LazyMotion, m } from \"framer-motion\"\n *\n * function App() {\n * return (\n * import('./path/to/domAnimation')}>\n * \n * \n * )\n * }\n * ```\n *\n * @public\n */\nfunction LazyMotion({ children, features, strict = false }) {\n const [, setIsLoaded] = useState(!isLazyBundle(features));\n const loadedRenderer = useRef(undefined);\n /**\n * If this is a synchronous load, load features immediately\n */\n if (!isLazyBundle(features)) {\n const { renderer, ...loadedFeatures } = features;\n loadedRenderer.current = renderer;\n loadFeatures(loadedFeatures);\n }\n useEffect(() => {\n if (isLazyBundle(features)) {\n features().then(({ renderer, ...loadedFeatures }) => {\n loadFeatures(loadedFeatures);\n loadedRenderer.current = renderer;\n setIsLoaded(true);\n });\n }\n }, []);\n return (jsx(LazyContext.Provider, { value: { renderer: loadedRenderer.current, strict }, children: children }));\n}\nfunction isLazyBundle(features) {\n return typeof features === \"function\";\n}\n\nexport { LazyMotion };\n","import { createContext } from 'react';\n\nconst LayoutGroupContext = createContext({});\n\nexport { LayoutGroupContext };\n","import { createContext } from 'react';\n\nconst LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\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\nconst MotionContext = createContext({});\n\nexport { MotionContext };\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nconst PresenceContext = createContext(null);\n\nexport { PresenceContext };\n","import { createContext } from 'react';\n\n/**\n * Internal, exported only for usage in Framer\n */\nconst SwitchLayoutGroupContext = createContext({});\n\nexport { SwitchLayoutGroupContext };\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","// 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","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","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","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","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","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\", // Read\n \"resolveKeyframes\", // Write/Read/Write/Read\n \"update\", // Compute\n \"preRender\", // Compute\n \"render\", // Write\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 { createRenderBatcher } from './batcher.mjs';\n\nconst { schedule: microtask, cancel: cancelMicrotask } = createRenderBatcher(queueMicrotask, false);\n\nexport { cancelMicrotask, microtask };\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","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","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","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 props = visualElement.getProps();\n const appearId = props[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 { 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 { 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\n ? props[type]\n : 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] &&\n prop !== props[type] &&\n 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 // @ts-expect-error - @mattgperry to figure if we should do something here\n fallbackAnimation[key] = fallbackTarget !== null && fallbackTarget !== void 0 ? fallbackTarget : null;\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 { 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","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","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 { 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';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction addHoverEvent(node, isActive) {\n const eventName = isActive ? \"pointerenter\" : \"pointerleave\";\n const callbackName = isActive ? \"onHoverStart\" : \"onHoverEnd\";\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 const callback = props[callbackName];\n if (callback) {\n frame.postRender(() => callback(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","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","/**\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';\nimport { frame } from '../frameloop/frame.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 const handler = !globalTapTarget &&\n !isNodeOrChild(this.node.current, endEvent.target)\n ? onTapCancel\n : onTap;\n if (handler) {\n frame.update(() => handler(endEvent, endInfo));\n }\n };\n const removePointerUpListener = addPointerEvent(window, \"pointerup\", endPointerPress, {\n passive: !(props.onTap || props[\"onPointerUp\"]),\n });\n const removePointerCancelListener = addPointerEvent(window, \"pointercancel\", (cancelEvent, cancelInfo) => this.cancelPress(cancelEvent, cancelInfo), {\n passive: !(props.onTapCancel ||\n props[\"onPointerCancel\"]),\n });\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 frame.postRender(() => onTap(event, info));\n }\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 frame.postRender(() => 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 frame.postRender(() => onTapCancel(event, info));\n }\n }\n mount() {\n const props = this.node.getProps();\n const removePointerListener = addPointerEvent(props.globalTapTarget ? window : this.node.current, \"pointerdown\", this.startPointerPress, {\n passive: !(props.onTapStart ||\n props[\"onPointerStart\"]),\n });\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 { 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 { 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","/**\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","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","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","const scaleCorrectors = {};\nfunction addScaleCorrector(correctors) {\n Object.assign(scaleCorrectors, correctors);\n}\n\nexport { addScaleCorrector, scaleCorrectors };\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 { 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","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 { 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 { 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 */\nconst invalidTemplates = new Set([\"auto\", \"none\", \"0\"]);\nfunction makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name) {\n let i = 0;\n let animatableTemplate = undefined;\n while (i < unresolvedKeyframes.length && !animatableTemplate) {\n const keyframe = unresolvedKeyframes[i];\n if (typeof keyframe === \"string\" && !invalidTemplates.has(keyframe)) {\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 { 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 if (i === unresolvedKeyframes.length - 1) {\n this.finalKeyframe = keyframe;\n }\n }\n }\n /**\n * Resolve \"none\" values. We do this potentially twice - once before and once after measuring keyframes.\n * This could be seen as inefficient but it's a trade-off to avoid measurements in more situations, which\n * have a far bigger performance impact.\n */\n this.resolveNoneKeyframes();\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;\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 && this.finalKeyframe === undefined) {\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","// Does this device prefer reduced motion? Returns `null` server-side.\nconst prefersReducedMotion = { current: null };\nconst hasReducedMotionListener = { current: false };\n\nexport { hasReducedMotionListener, prefersReducedMotion };\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.1.9\", `Attempting to mix Framer Motion versions ${nextValue.version} with 11.1.9 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","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 /**\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 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 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 var _a;\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 (_a = this.features[key]) === null || _a === void 0 ? void 0 : _a.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 listenerName = (\"on\" + key);\n const listener = props[listenerName];\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 const existingValue = this.values.get(key);\n if (value !== existingValue) {\n if (existingValue)\n this.removeValue(key);\n this.bindToMotionValue(key, value);\n this.values.set(key, value);\n this.latestValues[key] = value.get();\n }\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;\n const { initial } = this.props;\n let valueFromInitial;\n if (typeof initial === \"string\" || typeof initial === \"object\") {\n const variant = resolveVariantFromProps(this.props, initial, (_a = this.presenceContext) === null || _a === void 0 ? void 0 : _a.custom);\n if (variant) {\n valueFromInitial = variant[key];\n }\n }\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 { 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\n ? props.style[key]\n : 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, visualElement) {\n return scrapeMotionValuesFromProps(props, prevProps, visualElement);\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 { animations } from '../../motion/features/animations.mjs';\nimport { gestureAnimations } from '../../motion/features/gestures.mjs';\nimport { createDomVisualElement } from './create-visual-element.mjs';\n\n/**\n * @public\n */\nconst domAnimation = {\n renderer: createDomVisualElement,\n ...animations,\n ...gestureAnimations,\n};\n\nexport { domAnimation };\n","import { createMotionProxy } from './motion-proxy.mjs';\nimport { createDomMotionConfig } from './utils/create-config.mjs';\n\n/**\n * @public\n */\nconst m = createMotionProxy(createDomMotionConfig);\n\nexport { m };\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] &&\n !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 { 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","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","const motionComponentSymbol = Symbol.for(\"motionComponentSymbol\");\n\nexport { motionComponentSymbol };\n","import { jsxs, jsx } from 'react/jsx-runtime';\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 (jsxs(MotionContext.Provider, { value: context, children: [MeasureLayout && context.visualElement ? (jsx(MeasureLayout, { visualElement: context.visualElement, ...configAndProps })) : null, useRender(Component, props, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic, 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 { 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 * Convert camelCase to dash-case properties.\n */\nconst camelToDash = (str) => str.replace(/([a-z])([A-Z])/gu, \"$1-$2\").toLowerCase();\n\nexport { camelToDash };\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\"] &&\n key.startsWith(\"onDrag\"))) {\n filteredProps[key] =\n props[key];\n }\n }\n return filteredProps;\n}\n\nexport { filterProps, loadExternalIsValidProp };\n","import { createHtmlRenderState } from '../../html/utils/create-render-state.mjs';\n\nconst createSvgRenderState = () => ({\n ...createHtmlRenderState(),\n attrs: {},\n});\n\nexport { createSvgRenderState };\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","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","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 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 * 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","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","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 { 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","/**\n * ValueType for \"auto\"\n */\nconst auto = {\n test: (v) => v === \"auto\",\n parse: (v) => v,\n};\n\nexport { auto };\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","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","/**\n * Tests a provided value against a ValueType\n */\nconst testValueType = (v) => (type) => type.test(v);\n\nexport { testValueType };\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","/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nconst getValueAsType = (value, type) => {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\nexport { getValueAsType };\n","import { 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","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","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 &&\n 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","/**\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 { 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","/**\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","const isSVGTag = (tag) => typeof tag === \"string\" && tag.toLowerCase() === \"svg\";\n\nexport { isSVGTag };\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 { 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]) ||\n isMotionValue(prevProps[key])) {\n const targetKey = transformPropOrder.indexOf(key) !== -1\n ? \"attr\" + key.charAt(0).toUpperCase() + key.substring(1)\n : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","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, removedTransforms);\n element.render();\n });\n // Read\n resolversToMeasure.forEach((resolver) => resolver.measureInitialState());\n // Write\n elementsToMeasure.forEach((element) => {\n element.render();\n const restore = transformsToRestore.get(element);\n if (restore) {\n restore.forEach(([key, value]) => {\n var _a;\n (_a = element.getValue(key)) === null || _a === void 0 ? void 0 : _a.set(value);\n });\n }\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 { 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","/**\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 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 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","const MotionGlobalConfig = {\n skipAnimations: false,\n useManualTiming: false,\n};\n\nexport { MotionGlobalConfig };\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","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 { 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","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","const isBrowser = typeof document !== \"undefined\";\n\nexport { isBrowser };\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","function isRefObject(ref) {\n return (ref &&\n typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\nexport { isRefObject };\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","// 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","/*\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","const noop = (any) => any;\n\nexport { noop };\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 { 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","/**\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","/*\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","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 { 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","/**\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 { 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 { 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 { 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 { useLayoutEffect, useEffect } from 'react';\nimport { isBrowser } from './is-browser.mjs';\n\nconst useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n\nexport { useIsomorphicLayoutEffect };\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 { 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.1.9\";\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 { 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 { 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 { 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 { 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 '../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 { 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","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","/**\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 { isMotionValue } from '../utils/is-motion-value.mjs';\n\nfunction isWillChangeMotionValue(value) {\n return Boolean(isMotionValue(value) && value.add);\n}\n\nexport { isWillChangeMotionValue };\n","const isMotionValue = (value) => Boolean(value && value.getVelocity);\n\nexport { isMotionValue };\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"],"names":["ProviderContext","useProviderContext","createContext","options","strict","errorMessage","name","Context","React","displayName","Provider","useContext2","_a","context","error","Error","captureStackTrace","call","dataFocusVisibleClasses","groupDataFocusVisibleClasses","ringClasses","translateCenterClasses","collapseAdjacentVariantBorders","default","primary","secondary","success","warning","danger","$6a99195332edec8b$export$80f3e147d781571c","element","ownerDocument","_react_aria_utils__WEBPACK_IMPORTED_MODULE_0__","r","_react_aria_interactions__WEBPACK_IMPORTED_MODULE_1__","Jz","lastFocusedElement","activeElement","_react_aria_utils__WEBPACK_IMPORTED_MODULE_2__","Q","isConnected","_react_aria_utils__WEBPACK_IMPORTED_MODULE_3__","A","$507fabe10e71c6fb$var$currentModality","$507fabe10e71c6fb$var$changeHandlers","Set","$507fabe10e71c6fb$export$d90243b58daecda7","Map","$507fabe10e71c6fb$var$hasEventBeforeFocus","$507fabe10e71c6fb$var$hasBlurredWindowRecently","$507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS","Tab","Escape","$507fabe10e71c6fb$var$triggerChangeHandlers","modality","e","handler","$507fabe10e71c6fb$var$handleKeyboardEvent","metaKey","_react_aria_utils__WEBPACK_IMPORTED_MODULE_1__","V5","altKey","ctrlKey","key","$507fabe10e71c6fb$var$handlePointerEvent","type","$507fabe10e71c6fb$var$handleClickEvent","Z","$507fabe10e71c6fb$var$handleFocusEvent","target","window","document","$507fabe10e71c6fb$var$handleWindowBlur","$507fabe10e71c6fb$var$setupGlobalFocusEvents","get","k","windowObject","documentObject","focus","HTMLElement","prototype","apply","arguments","addEventListener","PointerEvent","$507fabe10e71c6fb$var$tearDownWindowFocusTracking","once","set","loadListener","removeEventListener","has","delete","$507fabe10e71c6fb$export$b9b3dfddab17db27","$507fabe10e71c6fb$export$630ff653c5ada6a9","$507fabe10e71c6fb$export$8397ddfc504fdb9a","$507fabe10e71c6fb$export$98e20ec92f614cfe","setModality","react__WEBPACK_IMPORTED_MODULE_0__","useState","useEffect","add","_react_aria_ssr__WEBPACK_IMPORTED_MODULE_4__","Av","$507fabe10e71c6fb$export$2f1888112f558a7d","readyState","$507fabe10e71c6fb$var$nonTextInputTypes","$507fabe10e71c6fb$export$ec71b4b83ac08ec3","fn","deps","opts","$507fabe10e71c6fb$var$isKeyboardFocusEvent","isTextInput","_e_target","IHTMLInputElement","HTMLInputElement","IHTMLTextAreaElement","HTMLTextAreaElement","IHTMLElement","IKeyboardEvent","KeyboardEvent","isContentEditable","$b5e257d569688ac6$var$defaultContext","prefix","String","Math","round","random","current","$b5e257d569688ac6$var$SSRContext","$b5e257d569688ac6$var$IsSSRContext","$b5e257d569688ac6$var$canUseDOM","Boolean","createElement","$b5e257d569688ac6$var$componentIds","WeakMap","$b5e257d569688ac6$export$619500959fc48b26","defaultId","id","useId","didSSR","$b5e257d569688ac6$export$535bd6ca7f90a273","ctx","useContext","console","warn","counter","$b5e257d569688ac6$var$useCounter","isDisabled","ref","useRef","_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner","_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","currentOwner","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","prevComponentValue","state","memoizedState","$b5e257d569688ac6$var$getSnapshot","$b5e257d569688ac6$var$getServerSnapshot","$b5e257d569688ac6$var$subscribe","onStoreChange","$ff5963eb1fccf552$export$e08e3b67e392101e","callbacks","args","callback","$431fbd86ca7dc216$export$b204af158042fbac","_el_ownerDocument","el","$431fbd86ca7dc216$export$f21a1ffae260145a","doc","defaultView","$7215afc6de606d6b$export$de79e2c695e052f3","$7215afc6de606d6b$var$supportsPreventScroll","$7215afc6de606d6b$var$supportsPreventScrollCached","focusElem","preventScroll","scrollableElements","$7215afc6de606d6b$var$getScrollableElements","parent","parentNode","rootScrollingElement","scrollingElement","documentElement","offsetHeight","scrollHeight","offsetWidth","scrollWidth","push","scrollTop","scrollLeft","$7215afc6de606d6b$var$restoreScrollPosition","$6a7db85432448f7f$export$60278871457622de","event","mozInputSource","isTrusted","_platform_mjs__WEBPACK_IMPORTED_MODULE_0__","Dt","pointerType","buttons","detail","$6a7db85432448f7f$export$29bf1b5f2c56cf63","width","height","pressure","dist_clsx","t","f","n","o","length","Array","isArray","$3ef42575df84b30b$export$9d1611c77c2fe928","result","i","props","a","b","charCodeAt","chain","ur","undefined","$c87311424ea30a05$var$testUserAgent","re","_window_navigator_userAgentData","navigator","brands","some","test","brand","userAgent","$c87311424ea30a05$var$testPlatform","platform","$c87311424ea30a05$export$9ac100e40613ea10","$c87311424ea30a05$export$7bef049ce92e4224","maxTouchPoints","$c87311424ea30a05$export$fedb369cb70207f1","$c87311424ea30a05$export$186c6964ca17d99","$c87311424ea30a05$export$e1865c3bedcd822b","$c87311424ea30a05$export$78551043582a6a98","$c87311424ea30a05$export$a11b0059900ceec8","$c87311424ea30a05$export$b7d78993b74f766d","$bbed8b41f857bcc0$var$transitionsByElement","$bbed8b41f857bcc0$var$transitionCallbacks","$bbed8b41f857bcc0$var$setupGlobalEvents","isTransitionEvent","onTransitionEnd","properties","propertyName","size","cb","clear","body","transitions","$bbed8b41f857bcc0$export$24490316f764c430","requestAnimationFrame","$8ae05eaa5c114e9c$export$7f54fc3180508a52","_useLayoutEffect_mjs__WEBPACK_IMPORTED_MODULE_1__","useCallback","$bdb11010cef70236$var$canUseDOM","$bdb11010cef70236$var$idsUpdaterMap","$bdb11010cef70236$export$f680877a34711e37","value","setValue","react","nextId","res","SSRProvider","gP","updateValue","val","useLayoutEffect","newId","$bdb11010cef70236$export$cd8c9cb68f842629","idA","idB","setIdA","setIdB","$bdb11010cef70236$export$b4cc09c592e8fdb8","depArray","resolvedId","setResolvedId","defaultValue","effect","nextRef","useEffectEvent","newValue","next","done","queue","updateId","getElementById","$f0a04ccd8dbdd83b$export$e5c5a5f917a5871c","underDampedSpring","stiffness","damping","restSpeed","criticallyDampedSpring","sqrt","keyframesTransition","duration","ease","getDefaultTransition","valueKey","keyframes","transform","G","startsWith","instantAnimationState","isNotNull","getFinalKeyframe","repeat","repeatType","finalKeyframe","resolvedKeyframes","filter","index","isAnimatable","complex","P","BaseAnimation","constructor","autoplay","delay","repeatDelay","isStopped","hasAttemptedResolve","updateFinishedPromise","resolved","_resolved","KeyframesResolver","m","onKeyframesResolved","velocity","onComplete","onUpdate","isGenerator","canAnimate","originKeyframe","targetKeyframe","isOriginAnimatable","isTargetAnimatable","errors","K","hasKeyframesChanged","resolveFinishedPromise","resolvedAnimation","initPlayback","onPostResolved","then","resolve","reject","currentFinishedPromise","Promise","calcGeneratorVelocity","resolveValue","prevT","max","velocity_per_second","R","calcAngularFreq","undampedFreq","dampingRatio","durationKeys","physicsKeys","isSpringType","keys","spring","restDelta","resolveSpring","origin","mass","isResolvedFromDuration","getSpringOptions","springOptions","derived","findSpring","bounce","envelope","derivative","time_conversion","w","clamp","u","X","exponentialDecay","delta","safeMin","exp","pow","g","d","approximateRoot","initialGuess","isNaN","initialVelocity","initialDelta","undampedAngularFreq","isGranularScale","abs","angularFreq","sin","cos","dampedAngularFreq","freqForT","min","sinh","cosh","calculatedDuration","currentVelocity","isBelowVelocityThreshold","isBelowDisplacementThreshold","inertia","power","timeConstant","bounceDamping","bounceStiffness","modifyTarget","timeReachedBoundary","spring$1","isOutOfBounds","v","nearestBoundary","amplitude","ideal","calcDelta","calcLatest","applyFriction","latest","checkCatchBoundary","hasUpdatedFrame","calcBezier","a1","a2","cubicBezier","mX1","mY1","mX2","mY2","noop","getTForX","binarySubdivide","x","lowerBound","upperBound","currentX","currentT","aX","easeIn","easeOut","easeInOut","isEasingArray","backOut","backIn","reverse","M","backInOut","mirror","easingLookup","linear","circIn","circ","Z7","circInOut","X7","circOut","Bn","anticipate","p","easingDefinitionToFunction","definition","x1","y1","x2","y2","keyframeValues","times","easingFunctions","map","absoluteTimes","offset","offsets_default","Y","mapTimeToKeyframe","interpolate","s","values","easing","splice","frameloopDriver","passTimestamp","timestamp","update","start","frameloop_frame","Wi","stop","Pn","now","frameData","isProcessing","sync_time","generators","decay","tween","percentToProgress","percent","MainThreadAnimation","KeyframeResolver","KeyframeResolver$1","holdTime","startTime","cancelTime","currentTime","playbackSpeed","pendingPlayState","resolver","cancel","teardown","onStop","motionValue","onResolved","owner","resolveKeyframes","scheduleResolve","keyframes$1","mapPercentToKeyframes","mirroredGenerator","generatorFactory","pipe","z","mix","C","generator","calcGeneratorDuration","Infinity","resolvedDuration","totalDuration","play","pause","tick","sample","speed","timeWithoutDelay","isInDelayPhase","elapsed","frameGenerator","progress","currentIteration","floor","iterationProgress","isAnimationFinished","finish","time","newTime","driver","newSpeed","hasChanged","isScheduled","resume","onPlay","complete","stopDriver","isBezierDefinition","cubicBezierAsString","c","supportedWaapiEasing","mapEasingToNativeEasingWithDefault","mapEasingToNativeEasing","supportsWaapi","Object","hasOwnProperty","Element","acceleratedValues","AcceleratedAnimation","DOMKeyframesResolver","isWaapiSupportedEasing","every","pregeneratedAnimation","pregenerateKeyframes","sampleAnimation","pregeneratedKeyframes","animation","animateStyle","valueName","keyframeOptions","animate","fill","iterations","direction","pendingTimeline","timeline","onfinish","playbackRate","playState","attachTimeline","sampleTime","setWithVelocity","supports","getProps","animateMotionValue","transition","isHandoff","valueTransition","getVelocity","from","shouldSkip","GlobalConfig","skipAnimations","optimizedAppearDataAttribute","_render_dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_0__","D","isAnimationControls","isKeyframesTarget","isTransitionDefined","when","_delay","delayChildren","staggerChildren","staggerDirection","getValueTransition","PopChildMeasure","Component","getSnapshotBeforeUpdate","prevProps","childRef","isPresent","sizeRef","top","offsetTop","left","offsetLeft","componentDidUpdate","render","children","PopChild","nonce","MotionConfigContext","_","useInsertionEffect","dataset","motionPopId","style","head","appendChild","sheet","insertRule","removeChild","jsx_runtime","jsx","cloneElement","PresenceChild","initial","onExitComplete","custom","presenceAffectsLayout","mode","presenceChildren","use_constant","h","newChildrenMap","useMemo","isComplete","childId","register","forEach","PresenceContext","O","getChildKey","child","AnimatePresence","exitBeforeEnter","forceRender","LayoutGroupContext","use_force_update","N","isMounted","use_is_mounted","filteredChildren","onlyElements","filtered","Children","isValidElement","childrenToRender","exitingChildren","presentChildren","allChildren","isInitialRender","use_isomorphic_effect","L","updateChildLookup","Fragment","presentKeys","targetKeys","numPresent","indexOf","component","insertionIndex","exitingComponent","leftOverKeys","includes","childKey","leftOverKey","presentChildKey","presentChild","LazyMotion","features","setIsLoaded","react__WEBPACK_IMPORTED_MODULE_1__","isLazyBundle","loadedRenderer","renderer","loadedFeatures","_motion_features_load_features_mjs__WEBPACK_IMPORTED_MODULE_2__","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","_context_LazyContext_mjs__WEBPACK_IMPORTED_MODULE_3__","LazyContext","transformPagePoint","isStatic","reducedMotion","MotionContext","SwitchLayoutGroupContext","acos","_modifiers_reverse_mjs__WEBPACK_IMPORTED_MODULE_0__","_modifiers_mirror_mjs__WEBPACK_IMPORTED_MODULE_1__","mirrorEasing","reverseEasing","addDomEvent","eventName","passive","addPointerEvent","_add_dom_event_mjs__WEBPACK_IMPORTED_MODULE_0__","E","_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__","extractEventInfo","pointType","point","y","addPointerInfo","_utils_is_primary_pointer_mjs__WEBPACK_IMPORTED_MODULE_0__","isPrimaryPointer","button","isPrimary","Queue","order","scheduled","process","remove","stepsOrder","createRenderBatcher","scheduleNextBatch","allowKeepAlive","runNextFrame","useDefaultElapsed","steps","reduce","acc","createRenderStep","thisFrame","nextFrame","numToRun","flushNextFrame","toKeepAlive","WeakSet","step","schedule","keepAlive","immediate","addToCurrentFrame","processStep","stepId","processBatch","useManualTiming","performance","wake","frame","cancelFrame","_batcher_mjs__WEBPACK_IMPORTED_MODULE_0__","_utils_noop_mjs__WEBPACK_IMPORTED_MODULE_1__","microtask","cancelMicrotask","queueMicrotask","clearTime","_frame_mjs__WEBPACK_IMPORTED_MODULE_0__","_utils_GlobalConfig_mjs__WEBPACK_IMPORTED_MODULE_1__","createLock","lock","globalHorizontalLock","globalVerticalLock","getGlobalLock","drag","openHorizontal","openVertical","isDragActive","openGestureLock","Feature","node","shallowCompare","prev","prevLength","resolveVariant","visualElement","resolve_variants","getCurrent","animateTarget","targetAndTransition","transitionOverride","transitionEnd","willChange","getValue","animations","animationTypeState","animationState","getState","latestValues","valueTarget","shouldBlockAnimation","protectedKeys","needsAnimating","shouldBlock","HandoffAppearAnimations","appearId","data_id","motion_value","shouldReduceMotion","is","all","setTarget","resolve_value","hasValue","addValue","es_value","BX","animateVariant","variant","presenceContext","getAnimation","getChildAnimations","variantChildren","forwardDelay","animateChildren","maxStaggerDuration","generateStaggerDuration","sort","sortByTreeOrder","notify","first","last","sortNodePosition","reversePriorityOrder","variant_props","numAnimationTypes","createTypeState","isActive","prevResolvedValues","AnimationFeature","createAnimationState","animateVisualElement","resolvedDefinition","postRender","whileInView","whileHover","whileTap","whileDrag","whileFocus","exit","buildResolvedTypeValues","animateChanges","changedActiveType","getVariantContext","removedKeys","encounteredKeys","removedVariantIndex","typeState","prop","propIsVariant","is_variant_label","$","activeDelta","isInherited","manuallyAnimateOnMount","prevProp","is_animation_controls","H","shouldAnimateType","variantDidChange","handledRemovedValues","definitionList","resolvedValues","allKeys","markToAnimate","liveStyle","is_keyframes_target","blockInitialAnimation","fallbackAnimation","fallbackTarget","getBaseTarget","shouldAnimate","setActive","setAnimateFunction","makeAnimator","updateAnimationControlsSubscription","unmount","subscribe","mount","prevAnimate","ExitAnimationFeature","prevIsPresent","prevPresenceContext","exitAnimation","featureProps","hover","tap","pan","inView","layout","featureDefinitions","isEnabled","addHoverEvent","callbackName","add_pointer_event","info","gD","HoverGesture","FocusGesture","onFocus","isFocusVisible","matches","onBlur","add_dom_event","isNodeOrChild","parentElement","fireSyntheticPointerEvent","syntheticPointerEvent","event_info","PressGesture","removeStartListeners","removeEndListeners","removeAccessibleListeners","startPointerPress","startEvent","startInfo","isPressing","removePointerUpListener","endEvent","endInfo","checkPressEnd","onTap","onTapCancel","globalTapTarget","removePointerCancelListener","cancelEvent","cancelInfo","cancelPress","startPress","startAccessiblePress","removeKeydownListener","keydownEvent","keyupEvent","removeBlurListener","onTapStart","removePointerListener","removeFocusListener","observerCallbacks","observers","fireObserverCallback","entry","fireAllObserverCallbacks","entries","thresholdNames","InViewFeature","hasEnteredView","isInView","startObserver","viewport","root","margin","rootMargin","amount","threshold","observeIntersection","rootInteresectionObserver","initIntersectionObserver","lookupRoot","rootObservers","JSON","stringify","IntersectionObserver","observe","unobserve","isIntersecting","onViewportEnter","onViewportLeave","hasViewportOptionChanged","prevViewport","gestureAnimations","loadFeatures","_definitions_mjs__WEBPACK_IMPORTED_MODULE_0__","isForcedMotionValue","layoutId","_render_html_utils_transform_mjs__WEBPACK_IMPORTED_MODULE_0__","_projection_styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_1__","convertBoundingBoxToBox","right","bottom","convertBoxToBoundingBox","transformBoxPoints","transformPoint","topLeft","bottomRight","scalePoint","scale","originPoint","applyPointDelta","translate","boxScale","applyAxisDelta","axis","applyBoxDelta","box","applyTreeDeltas","treeScale","treePath","isSharedTransition","treeLength","projectionDelta","instance","display","layoutScroll","scroll","transformBox","_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_0__","ud","snapToDefault","isInteger","translateAxis","distance","transformAxis","transforms","scaleKey","originKey","axisOrigin","_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__","xKeys","yKeys","createAxisDelta","createDelta","createAxis","createBox","scaleCorrectors","addScaleCorrector","correctors","assign","isIdentityScale","hasScale","scaleX","scaleY","hasTransform","has2DTranslate","rotate","rotateX","rotateY","skewX","skewY","is2DTranslate","measureViewportBox","_geometry_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__","i8","d7","getBoundingClientRect","measurePageBox","rootProjectionNode","viewportBox","_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_1__","am","splitCSSVariableRegex","invalidTemplates","unresolvedKeyframes","readKeyframes","keyframe","is_css_variable","getVariableValue","depth","token","fallback","parseCSSVariable","match","exec","token1","token2","getComputedStyle","getPropertyValue","trimmed","trim","is_numerical_string","parseFloat","resolveNoneKeyframes","unit_conversion","z2","originType","dimensions","targetType","mP","needsMeasurement","noneKeyframeIndexes","is_zero_value_string","W","makeNoneKeyframesAnimatable","animatableTemplate","noneIndex","animatable_none","T","measureInitialState","suspendedScrollY","pageYOffset","measuredOrigin","lw","measureKeyframe","jump","measureEndState","finalKeyframeIndex","removedTransforms","unsetTransformName","unsetTransformValue","prefersReducedMotion","hasReducedMotionListener","visualElementStore","valueTypes","color","findValueType","find","l","featureNames","definitions","numFeatures","propEventHandlers","numVariantProps","V","VisualElement","scrapeMotionValuesFromProps","_props","_prevProps","_visualElement","reducedMotionConfig","visualState","isVariantNode","isControllingVariants","valueSubscriptions","prevMotionValues","events","propEventSubscriptions","notifyUpdate","triggerBuild","renderInstance","renderState","projection","scheduleRender","baseTarget","initialValues","is_controlling_variants","initialMotionValues","is_motion_value","removeFromVariantTree","addVariantChild","bindToMotionValue","initPrefersReducedMotion","is_browser","j","matchMedia","motionMediaQuery","setReducedMotionPreferences","addListener","valueIsTransform","removeOnChange","on","latestValue","preRender","isTransformDirty","removeOnRenderRequest","other","sortInstanceNodePosition","renderedProps","isStrict","preloadedFeatures","initialLayoutGroupConfig","ProjectionNodeConstructor","MeasureLayout","FeatureConstructor","ProjectionNode","MeasureLayoutComponent","getClosestProjectingNode","allowProjection","dragConstraints","layoutRoot","setOptions","alwaysMeasureLayout","is_ref_object","I","animationType","initialPromotionConfig","updateFeatures","feature","build","measureInstanceViewportBox","models","dO","getStaticValue","setStaticValue","transformTemplate","listener","updateMotionValuesFromProps","nextValue","prevValue","existingValue","hasAnimated","removeValue","handleChildMotionValue","getVariant","variants","getTransformPagePoint","getClosestVariantNode","startAtParent","closestVariantNode","unsubscribe","removeValueFromRenderState","readValue","getBaseTargetFromProps","readValueFromInstance","setBaseTarget","valueFromInitial","subscription_manager","DOMVisualElement","compareDocumentPosition","vars","HTMLVisualElement","defaultType","defaults","computedStyle","measure","J","build_styles","scrape_motion_values","U","childSubscription","textContent","styleProp","SVGVisualElement","isSVGTag","camel_to_dash","getAttribute","utils_scrape_motion_values","build_attrs","utils_render","is_svg_tag","tagName","createDomVisualElement","is_svg_component","q","enableHardwareAcceleration","domAnimation","_create_visual_element_mjs__WEBPACK_IMPORTED_MODULE_0__","_motion_features_animations_mjs__WEBPACK_IMPORTED_MODULE_1__","_motion_features_gestures_mjs__WEBPACK_IMPORTED_MODULE_2__","_motion_proxy_mjs__WEBPACK_IMPORTED_MODULE_0__","_utils_create_config_mjs__WEBPACK_IMPORTED_MODULE_1__","variantLabelsAsDependency","join","motionComponentSymbol","Symbol","for","createMotionProxy","createConfig","customMotionComponentConfig","createMotionComponent","createVisualElement","useRender","useVisualState","load_features","ForwardRefComponent","forwardRef","externalRef","configAndProps","useLayoutId","layoutGroupId","useCreateMotionContext","getCurrentTreeVariants","inherit","useVisualElement","lazyContext","visualElementRef","wantsHandoff","HandoffComplete","jsxs","Proxy","componentCache","_target","camelToDash","str","replace","toLowerCase","isValidProp","createHtmlRenderState","transformOrigin","copyRawValuesOnly","source","is_forced_motion_value","validMotionProps","isValidMotionProp","shouldForward","require","createSvgRenderState","attrs","makeUseVisualState","make","makeState","createRenderState","onMount","makeLatestValues","scrapeMotionValues","motionValues","resolve_motion_value","isControllingVariants$1","isVariantNode$1","isInitialAnimationBlocked","variantToSet","list","config","svgMotionConfig","read","getBBox","htmlMotionConfig","createDomMotionConfig","forwardMotionProps","createUseRender","visualProps","useVisualProps","_isStatic","rawStyles","htmlProps","useStyle","useInitialMotionValues","dragListener","draggable","userSelect","WebkitUserSelect","WebkitTouchCallout","touchAction","tabIndex","filteredProps","filterProps","isDom","elementProps","renderedChildren","checkStringStartsWith","isCSSVariableName","startsAsVariableToken","isCSSVariableToken","singleCssVariableRegex","split","lowercaseSVGElements","isSVGComponent","positionalKeys","isNumOrPxType","_value_types_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__","Rx","_value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__","px","getPosFromMatrix","matrix","pos","getTranslateFromMatrix","pos2","pos3","_bbox","matrix3d","transformKeys","nonTranslationalTransformKeys","_html_utils_transform_mjs__WEBPACK_IMPORTED_MODULE_2__","removeNonTranslationalTransform","positionalValues","paddingLeft","paddingRight","paddingTop","paddingBottom","translateX","translateY","getAnimatableNone","defaultValueType","_defaults_mjs__WEBPACK_IMPORTED_MODULE_0__","_value_types_complex_filter_mjs__WEBPACK_IMPORTED_MODULE_1__","_value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_2__","defaultValueTypes","_number_mjs__WEBPACK_IMPORTED_MODULE_0__","_value_types_color_index_mjs__WEBPACK_IMPORTED_MODULE_1__","backgroundColor","outlineColor","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","_value_types_complex_filter_mjs__WEBPACK_IMPORTED_MODULE_2__","WebkitFilter","getDefaultValueType","dimensionValueTypes","numbers","units","aQ","RW","vw","vh","parse","findDimensionValueType","type_int_int","numberValueTypes","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderRadius","radius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","maxWidth","maxHeight","padding","marginTop","marginRight","marginBottom","marginLeft","rotateZ","bA","scaleZ","skew","translateZ","perspective","transformPerspective","opacity","Fq","originX","$C","originY","originZ","zIndex","backgroundPositionX","backgroundPositionY","fillOpacity","strokeOpacity","numOctaves","testValueType","translateAlias","numTransforms","utils_transform","getValueAsType","buildHTMLStyles","hasTransformOrigin","transformIsNone","valueType","number","valueAsType","buildTransform","allowTransformNone","transformIsDefault","transformString","transformName","renderHTML","getProjectionStyles","setProperty","newValues","_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__","_motion_utils_is_forced_motion_value_mjs__WEBPACK_IMPORTED_MODULE_1__","transformPropOrder","transformProps","calcOrigin","dashKeys","array","camelKeys","buildSVGAttrs","attrX","attrY","attrScale","pathLength","pathSpacing","pathOffset","viewBox","calcSVGTransformOrigin","pxOriginX","pxOriginY","buildSVGPath","spacing","useDashCase","camelCaseAttributes","tag","renderSVG","_styleProp","_html_utils_render_mjs__WEBPACK_IMPORTED_MODULE_0__","setAttribute","_dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_2__","_html_utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_0__","_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_1__","charAt","toUpperCase","substring","toResolve","anyNeedsMeasurement","measureAllKeyframes","resolversToMeasure","elementsToMeasure","transformsToRestore","_dom_utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__","Ei","restore","scrollTo","readAllKeyframes","flushKeyframeResolvers","isAsync","_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__","currentValue","valueAsRead","setFinalKeyframe","renderEndStyles","_animation_utils_is_animation_controls_mjs__WEBPACK_IMPORTED_MODULE_0__","_variant_props_mjs__WEBPACK_IMPORTED_MODULE_1__","_is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_2__","isVariantLabel","resolveVariantFromProps","currentValues","variantPriorityOrder","variantProps","MotionGlobalConfig","addUniqueItem","arr","item","removeItem","_noop_mjs__WEBPACK_IMPORTED_MODULE_0__","invariant","input","output","isClamp","mixer","inputLength","_errors_mjs__WEBPACK_IMPORTED_MODULE_3__","mixers","createMixers","customMixer","mixerFactory","_mix_index_mjs__WEBPACK_IMPORTED_MODULE_0__","numMixers","easingFunction","_noop_mjs__WEBPACK_IMPORTED_MODULE_1__","_pipe_mjs__WEBPACK_IMPORTED_MODULE_2__","interpolator","progressInRange","_progress_mjs__WEBPACK_IMPORTED_MODULE_4__","_clamp_mjs__WEBPACK_IMPORTED_MODULE_5__","isBrowser","isNumericalString","isRefObject","isZeroValueString","hueToRgb","mixLinearColor","to","fromExpo","expo","colorTypes","hex","rgba","hsla","getColorType","asRGBA","model","hslaToRgba","hue","saturation","lightness","alpha","red","green","blue","mixColor","fromRGBA","toRGBA","blended","mixImmediate","mixNumber","getMixer","mixComplex","mixArray","mixObject","numValues","blendValue","template","createTransformer","originStats","targetStats","indexes","var","matchOrder","orderedOrigin","pointers","types","originIndex","originValue","any","defaultOffset","fillOffset","remaining","offsetProgress","combineFunctions","transformers","toFromDifference","isCustomValue","toValue","resolveFinalValueInKeyframes","_animation_utils_is_keyframes_target_mjs__WEBPACK_IMPORTED_MODULE_0__","SubscriptionManager","subscriptions","_array_mjs__WEBPACK_IMPORTED_MODULE_0__","y4","cl","numSubscriptions","getSize","secondsToMilliseconds","seconds","millisecondsToSeconds","milliseconds","useConstant","init","useForceUpdate","_use_is_mounted_mjs__WEBPACK_IMPORTED_MODULE_1__","forcedRenderCount","setForcedRenderCount","_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_2__","useIsMounted","_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_1__","useIsomorphicLayoutEffect","_is_browser_mjs__WEBPACK_IMPORTED_MODULE_1__","velocityPerSecond","frameDuration","isFloat","collectMotionValues","MotionValue","version","canTrackVelocity","updateAndNotify","_frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__","updatedAt","setPrevFrameValue","setCurrent","change","renderRequest","prevFrameValue","prevUpdatedAt","onChange","subscription","_utils_subscription_manager_mjs__WEBPACK_IMPORTED_MODULE_1__","clearListeners","eventManagers","attach","passiveEffect","stopPassiveEffect","endAnimation","getPrevious","_utils_velocity_per_second_mjs__WEBPACK_IMPORTED_MODULE_3__","startAnimation","animationStart","animationComplete","clearAnimation","animationCancel","isAnimating","destroy","_utils_mjs__WEBPACK_IMPORTED_MODULE_0__","parseInt","_rgba_mjs__WEBPACK_IMPORTED_MODULE_1__","alpha$1","_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__","_utils_mjs__WEBPACK_IMPORTED_MODULE_2__","Nw","_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_3__","_rgba_mjs__WEBPACK_IMPORTED_MODULE_0__","_hex_mjs__WEBPACK_IMPORTED_MODULE_1__","_hsla_mjs__WEBPACK_IMPORTED_MODULE_2__","_utils_mjs__WEBPACK_IMPORTED_MODULE_3__","HD","clampRgbUnit","_utils_clamp_mjs__WEBPACK_IMPORTED_MODULE_0__","rgbUnit","_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__","isColorString","testProp","mj","splitColor","aName","bName","cName","KP","maxDefaults","applyDefaultFilter","slice","unit","functionRegex","_index_mjs__WEBPACK_IMPORTED_MODULE_1__","functions","NUMBER_TOKEN","COLOR_TOKEN","complexRegex","analyseComplexValue","originalValue","toString","tokenised","_color_index_mjs__WEBPACK_IMPORTED_MODULE_1__","parsedValue","parseComplexValue","numSections","convertNumbersToZero","_b","dA","parsed","transformer","createUnitType","endsWith","degrees","progressPercentage","sanitize","floatRegex","colorRegex","singleColorRegex","isString","isWillChangeMotionValue","_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__","isMotionValue","resolveMotionValue","unwrappedValue","_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__","_utils_resolve_value_mjs__WEBPACK_IMPORTED_MODULE_1__"],"sourceRoot":""}