{"version":3,"file":"framer-motion.js","sources":["../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/context/PresenceContext.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/utils/is-browser.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/context/LazyContext.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/motion/features/definitions.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/motion/features/load-features.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/utils/use-constant.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/projection/node/state.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/projection/node/id.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/motion/utils/VisualElementHandler.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/motion/utils/symbol.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/motion/index.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/html/use-props.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/svg/use-props.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/dom/use-render.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/html/utils/render.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/utils/resolve-value.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/html/config-motion.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/utils/types.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/events/use-dom-event.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/gestures/use-focus-gesture.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/gestures/utils/event-type.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/events/event-info.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/events/utils.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/events/use-pointer-event.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/gestures/use-hover-gesture.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/gestures/use-tap-gesture.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/utils/process.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/utils/warn-once.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/motion/features/viewport/use-viewport.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/motion/utils/make-renderless-component.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/motion/features/gestures.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/utils/time-conversion.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/animation/utils/easing.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/animation/utils/transitions.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/utils/array.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/value/index.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/utils/setters.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/value/use-will-change/is.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/utils/animation.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/motion/features/animations.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/gestures/PanSession.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/projection/geometry/models.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/projection/utils/measure.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/gestures/drag/use-drag.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/gestures/use-pan-gesture.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/motion/features/drag.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/utils/lifecycles.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/index.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/dom/utils/parse-dom-variant.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/html/visual-element.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/svg/visual-element.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/motion/features/layout/index.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/animation/animate.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/projection/shared/stack.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/projection/styles/transform.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/render/dom/motion.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/utils/use-force-update.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/value/use-motion-value.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/value/use-on-change.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/value/use-spring.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/animation/animation-controls.mjs","../../../node_modules/.pnpm/framer-motion@7.3.5_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/es/animation/use-animation.mjs","../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@18.2.0_react@18.2.0/node_modules/framer-motion/dist/cjs/index.js"],"sourcesContent":["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, useContext } from 'react';\n\nconst MotionContext = createContext({});\nfunction useVisualElementContext() {\n return useContext(MotionContext).visualElement;\n}\n\nexport { MotionContext, useVisualElementContext };\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nconst PresenceContext = createContext(null);\n\nexport { PresenceContext };\n","const isBrowser = typeof document !== \"undefined\";\n\nexport { isBrowser };\n","import { useLayoutEffect, useEffect } from 'react';\nimport { isBrowser } from './is-browser.mjs';\n\nconst useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n\nexport { useIsomorphicLayoutEffect };\n","import { createContext } from 'react';\n\nconst LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\n","import { useContext, useRef, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useVisualElementContext } 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';\n\nfunction useVisualElement(Component, visualState, props, createVisualElement) {\n const parent = useVisualElementContext();\n const lazyContext = useContext(LazyContext);\n const presenceContext = useContext(PresenceContext);\n const reducedMotionConfig = useContext(MotionConfigContext).reducedMotion;\n const visualElementRef = useRef(undefined);\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 presenceId: presenceContext ? presenceContext.id : undefined,\n blockInitialAnimation: presenceContext\n ? presenceContext.initial === false\n : false,\n reducedMotionConfig,\n });\n }\n const visualElement = visualElementRef.current;\n useIsomorphicLayoutEffect(() => {\n visualElement && visualElement.syncRender();\n });\n useEffect(() => {\n if (visualElement && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n });\n useIsomorphicLayoutEffect(() => () => visualElement && visualElement.notifyUnmount(), []);\n return visualElement;\n}\n\nexport { useVisualElement };\n","function isRefObject(ref) {\n return (typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\nexport { isRefObject };\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","/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || Array.isArray(v);\n}\n\nexport { isVariantLabel };\n","function isAnimationControls(v) {\n return typeof v === \"object\" && typeof v.start === \"function\";\n}\n\nexport { isAnimationControls };\n","import { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isVariantLabel } from './is-variant-label.mjs';\n\nconst variantProps = [\n \"initial\",\n \"animate\",\n \"exit\",\n \"whileHover\",\n \"whileDrag\",\n \"whileTap\",\n \"whileFocus\",\n \"whileInView\",\n];\nfunction isControllingVariants(props) {\n return (isAnimationControls(props.animate) ||\n variantProps.some((name) => isVariantLabel(props[name])));\n}\nfunction isVariantNode(props) {\n return Boolean(isControllingVariants(props) || props.variants);\n}\n\nexport { isControllingVariants, isVariantNode };\n","import { 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 createDefinition = (propNames) => ({\n isEnabled: (props) => propNames.some((name) => !!props[name]),\n});\nconst featureDefinitions = {\n measureLayout: createDefinition([\"layout\", \"layoutId\", \"drag\"]),\n animation: createDefinition([\n \"animate\",\n \"exit\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"whileFocus\",\n \"whileDrag\",\n \"whileInView\",\n ]),\n exit: createDefinition([\"exit\"]),\n drag: createDefinition([\"drag\", \"dragControls\"]),\n focus: createDefinition([\"whileFocus\"]),\n hover: createDefinition([\"whileHover\", \"onHoverStart\", \"onHoverEnd\"]),\n tap: createDefinition([\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"]),\n pan: createDefinition([\n \"onPan\",\n \"onPanStart\",\n \"onPanSessionStart\",\n \"onPanEnd\",\n ]),\n inView: createDefinition([\n \"whileInView\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n ]),\n};\n\nexport { featureDefinitions };\n","import { featureDefinitions } from './definitions.mjs';\n\nfunction loadFeatures(features) {\n for (const key in features) {\n if (key === \"projectionNodeConstructor\") {\n featureDefinitions.projectionNodeConstructor = features[key];\n }\n else {\n featureDefinitions[key].Component = features[key];\n }\n }\n}\n\nexport { loadFeatures };\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","/**\n * This should only ever be modified on the client otherwise it'll\n * persist through server requests. If we need instanced states we\n * could lazy-init via root.\n */\nconst globalProjectionState = {\n /**\n * Global flag as to whether the tree has animated since the last time\n * we resized the window\n */\n hasAnimatedSinceResize: true,\n /**\n * We set this to true once, on the first update. Any nodes added to the tree beyond that\n * update will be given a `data-projection-id` attribute.\n */\n hasEverUpdated: false,\n};\n\nexport { globalProjectionState };\n","import { useConstant } from '../../utils/use-constant.mjs';\nimport { globalProjectionState } from './state.mjs';\n\nlet id = 1;\nfunction useProjectionId() {\n return useConstant(() => {\n if (globalProjectionState.hasEverUpdated) {\n return id++;\n }\n });\n}\n\nexport { useProjectionId };\n","import { createContext } from 'react';\n\nconst LayoutGroupContext = createContext({});\n\nexport { LayoutGroupContext };\n","import React__default from 'react';\n\nclass VisualElementHandler extends React__default.Component {\n /**\n * Update visual element props as soon as we know this update is going to be commited.\n */\n getSnapshotBeforeUpdate() {\n const { visualElement, props } = this.props;\n if (visualElement)\n visualElement.setProps(props);\n return null;\n }\n componentDidUpdate() { }\n render() {\n return this.props.children;\n }\n}\n\nexport { VisualElementHandler };\n","import { createContext } from 'react';\n\n/**\n * Internal, exported only for usage in Framer\n */\nconst SwitchLayoutGroupContext = createContext({});\n\nexport { SwitchLayoutGroupContext };\n","const motionComponentSymbol = Symbol.for(\"motionComponentSymbol\");\n\nexport { motionComponentSymbol };\n","import * as React from 'react';\nimport { forwardRef, useContext } from 'react';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { MotionContext } from '../context/MotionContext/index.mjs';\nimport { useVisualElement } from './utils/use-visual-element.mjs';\nimport { useMotionRef } from './utils/use-motion-ref.mjs';\nimport { useCreateMotionContext } from '../context/MotionContext/create.mjs';\nimport { featureDefinitions } from './features/definitions.mjs';\nimport { loadFeatures } from './features/load-features.mjs';\nimport { isBrowser } from '../utils/is-browser.mjs';\nimport { useProjectionId } from '../projection/node/id.mjs';\nimport { LayoutGroupContext } from '../context/LayoutGroupContext.mjs';\nimport { VisualElementHandler } from './utils/VisualElementHandler.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, projectionNodeConstructor, useRender, useVisualState, Component, }) {\n preloadedFeatures && loadFeatures(preloadedFeatures);\n function MotionComponent(props, externalRef) {\n const configAndProps = {\n ...useContext(MotionConfigContext),\n ...props,\n layoutId: useLayoutId(props),\n };\n const { isStatic } = configAndProps;\n let features = null;\n const context = useCreateMotionContext(props);\n /**\n * Create a unique projection ID for this component. If a new component is added\n * during a layout animation we'll use this to query the DOM and hydrate its ref early, allowing\n * us to measure it as soon as any layout effect flushes pending layout animations.\n *\n * Performance note: It'd be better not to have to search the DOM for these elements.\n * For newly-entering components it could be enough to only correct treeScale, in which\n * case we could mount in a scale-correction mode. This wouldn't be enough for\n * shared element transitions however. Perhaps for those we could revert to a root node\n * that gets forceRendered and layout animations are triggered on its layout effect.\n */\n const projectionId = isStatic ? undefined : useProjectionId();\n /**\n *\n */\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 lazyStrictMode = useContext(LazyContext).strict;\n const initialLayoutGroupConfig = useContext(SwitchLayoutGroupContext);\n if (context.visualElement) {\n features = context.visualElement.loadFeatures(\n // Note: Pass the full new combined props to correctly re-render dynamic feature components.\n configAndProps, lazyStrictMode, preloadedFeatures, projectionId, projectionNodeConstructor ||\n featureDefinitions.projectionNodeConstructor, initialLayoutGroupConfig);\n }\n }\n /**\n * The mount order and hierarchy is specific to ensure our element ref\n * is hydrated by the time features fire their effects.\n */\n return (React.createElement(VisualElementHandler, { visualElement: context.visualElement, props: configAndProps },\n features,\n React.createElement(MotionContext.Provider, { value: context }, useRender(Component, props, projectionId, 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 * 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 \"svg\",\n \"switch\",\n \"symbol\",\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]/.test(Component)) {\n return true;\n }\n return false;\n}\n\nexport { isSVGComponent };\n","const scaleCorrectors = {};\nfunction addScaleCorrector(correctors) {\n Object.assign(scaleCorrectors, correctors);\n}\n\nexport { addScaleCorrector, scaleCorrectors };\n","/**\n * Generate a list of every possible transform key.\n */\nconst transformPropOrder = [\n \"transformPerspective\",\n \"x\",\n \"y\",\n \"z\",\n \"translateX\",\n \"translateY\",\n \"translateZ\",\n \"scale\",\n \"scaleX\",\n \"scaleY\",\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"skew\",\n \"skewX\",\n \"skewY\",\n];\n/**\n * A quick lookup for transform props.\n */\nconst transformProps = new Set(transformPropOrder);\n\nexport { transformPropOrder, transformProps };\n","import { scaleCorrectors } from '../../projection/styles/scale-correction.mjs';\nimport { transformProps } from '../../render/html/utils/transform.mjs';\n\nfunction isForcedMotionValue(key, { layout, layoutId }) {\n return (transformProps.has(key) ||\n key.startsWith(\"origin\") ||\n ((layout || layoutId !== undefined) &&\n (!!scaleCorrectors[key] || key === \"opacity\")));\n}\n\nexport { isForcedMotionValue };\n","const isMotionValue = (value) => !!(value === null || value === void 0 ? void 0 : value.getVelocity);\n\nexport { isMotionValue };\n","import { transformPropOrder } from './transform.mjs';\n\nconst translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\n/**\n * A function to use with Array.sort to sort transform keys by their default order.\n */\nconst sortTransformProps = (a, b) => transformPropOrder.indexOf(a) - transformPropOrder.indexOf(b);\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, transformKeys }, { enableHardwareAcceleration = true, allowTransformNone = true, }, transformIsDefault, transformTemplate) {\n // The transform string we're going to build into.\n let transformString = \"\";\n // Transform keys into their default order - this will determine the output order.\n transformKeys.sort(sortTransformProps);\n // Loop over each transform and build them into transformString\n for (const key of transformKeys) {\n transformString += `${translateAlias[key] || key}(${transform[key]}) `;\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 * Returns true if the provided key is a CSS variable\n */\nfunction isCSSVariable(key) {\n return key.startsWith(\"--\");\n}\n\nexport { isCSSVariable };\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 { number } from 'style-value-types';\n\nconst int = {\n ...number,\n transform: Math.round,\n};\n\nexport { int };\n","import { px, degrees, scale, alpha, progressPercentage } from 'style-value-types';\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 // SVG\n fillOpacity: alpha,\n strokeOpacity: alpha,\n numOctaves: int,\n};\n\nexport { numberValueTypes };\n","import { buildTransform } from './build-transform.mjs';\nimport { isCSSVariable } 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, transformKeys, transformOrigin } = state;\n transformKeys.length = 0;\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 (isCSSVariable(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 transformKeys.push(key);\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 (hasTransform || transformTemplate) {\n style.transform = buildTransform(state, options, transformIsNone, transformTemplate);\n }\n else if (!latestValues.transform && 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 * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\n if (hasTransformOrigin) {\n const { originX = \"50%\", originY = \"50%\", originZ = 0, } = transformOrigin;\n style.transformOrigin = `${originX} ${originY} ${originZ}`;\n }\n}\n\nexport { buildHTMLStyles };\n","const createHtmlRenderState = () => ({\n style: {},\n transform: {},\n transformKeys: [],\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 props.transformValues ? props.transformValues(style) : 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 htmlProps.style = style;\n return htmlProps;\n}\n\nexport { copyRawValuesOnly, useHTMLProps };\n","const animationProps = [\n \"animate\",\n \"exit\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"whileFocus\",\n \"whileDrag\",\n \"whileInView\",\n];\nconst tapProps = [\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"];\nconst panProps = [\"onPan\", \"onPanStart\", \"onPanSessionStart\", \"onPanEnd\"];\nconst inViewProps = [\n \"whileInView\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n \"viewport\",\n];\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 \"initial\",\n \"style\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"transformValues\",\n \"custom\",\n \"inherit\",\n \"layout\",\n \"layoutId\",\n \"layoutDependency\",\n \"onLayoutAnimationStart\",\n \"onLayoutAnimationComplete\",\n \"onLayoutMeasure\",\n \"onBeforeLayoutMeasure\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"drag\",\n \"dragControls\",\n \"dragListener\",\n \"dragConstraints\",\n \"dragDirectionLock\",\n \"dragSnapToOrigin\",\n \"_dragX\",\n \"_dragY\",\n \"dragElastic\",\n \"dragMomentum\",\n \"dragPropagation\",\n \"dragTransition\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"layoutScroll\",\n ...inViewProps,\n ...tapProps,\n ...animationProps,\n ...panProps,\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 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 if (shouldForward(key) ||\n (forwardMotionProps === true && isValidMotionProp(key)) ||\n (!isDom && !isValidMotionProp(key)) ||\n // If trying to use native HTML drag events, forward drag listeners\n (props[\"draggable\"] && key.startsWith(\"onDrag\"))) {\n filteredProps[key] = props[key];\n }\n }\n return filteredProps;\n}\n\nexport { filterProps, loadExternalIsValidProp };\n","import { px } from 'style-value-types';\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 'style-value-types';\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, originX, originY, pathLength, pathSpacing = 1, pathOffset = 0, \n// This is object creation, which we try to avoid per-frame.\n...latest }, options, transformTemplate) {\n buildHTMLStyles(state, latest, options, transformTemplate);\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 // Treat x/y not as shortcuts but as actual attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n // Build SVG path if one has been defined\n if (pathLength !== undefined) {\n buildSVGPath(attrs, pathLength, pathSpacing, pathOffset, false);\n }\n}\n\nexport { buildSVGAttrs };\n","import { createHtmlRenderState } from '../../html/utils/create-render-state.mjs';\n\nconst createSvgRenderState = () => ({\n ...createHtmlRenderState(),\n attrs: {},\n});\n\nexport { createSvgRenderState };\n","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';\n\nfunction useSVGProps(props, visualState) {\n const visualProps = useMemo(() => {\n const state = createSvgRenderState();\n buildSVGAttrs(state, visualState, { enableHardwareAcceleration: false }, 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 { 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';\n\nfunction createUseRender(forwardMotionProps = false) {\n const useRender = (Component, props, projectionId, ref, { latestValues }, isStatic) => {\n const useVisualProps = isSVGComponent(Component)\n ? useSVGProps\n : useHTMLProps;\n const visualProps = useVisualProps(props, latestValues, isStatic);\n const filteredProps = filterProps(props, typeof Component === \"string\", forwardMotionProps);\n const elementProps = {\n ...filteredProps,\n ...visualProps,\n ref,\n };\n if (projectionId) {\n elementProps[\"data-projection-id\"] = projectionId;\n }\n return createElement(Component, elementProps);\n };\n return useRender;\n}\n\nexport { createUseRender };\n","/**\n * Convert camelCase to dash-case properties.\n */\nconst camelToDash = (str) => str.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n\nexport { camelToDash };\n","function renderHTML(element, { style, vars }, styleProp, projection) {\n Object.assign(element.style, style, projection && projection.getProjectionStyles(styleProp));\n // Loop over any CSS variables and assign those.\n for (const key in vars) {\n element.style.setProperty(key, vars[key]);\n }\n}\n\nexport { renderHTML };\n","/**\n * A set of attribute names that are always read/written as camel case.\n */\nconst camelCaseAttributes = new Set([\n \"baseFrequency\",\n \"diffuseConstant\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keySplines\",\n \"keyTimes\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerWidth\",\n \"numOctaves\",\n \"targetX\",\n \"targetY\",\n \"surfaceScale\",\n \"specularConstant\",\n \"specularExponent\",\n \"stdDeviation\",\n \"tableValues\",\n \"viewBox\",\n \"gradientTransform\",\n \"pathLength\",\n]);\n\nexport { camelCaseAttributes };\n","import { camelToDash } from '../../dom/utils/camel-to-dash.mjs';\nimport { renderHTML } from '../../html/utils/render.mjs';\nimport { camelCaseAttributes } from './camel-case-attrs.mjs';\n\nfunction renderSVG(element, renderState, _styleProp, projection) {\n renderHTML(element, renderState, undefined, projection);\n for (const key in renderState.attrs) {\n element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]);\n }\n}\n\nexport { renderSVG };\n","import { isForcedMotionValue } from '../../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\n\nfunction scrapeMotionValuesFromProps(props) {\n const { style } = props;\n const newValues = {};\n for (const key in style) {\n if (isMotionValue(style[key]) || isForcedMotionValue(key, props)) {\n newValues[key] = style[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","import { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\nimport { scrapeMotionValuesFromProps as scrapeMotionValuesFromProps$1 } from '../../html/utils/scrape-motion-values.mjs';\n\nfunction scrapeMotionValuesFromProps(props) {\n const newValues = scrapeMotionValuesFromProps$1(props);\n for (const key in props) {\n if (isMotionValue(props[key])) {\n const targetKey = key === \"x\" || key === \"y\" ? \"attr\" + key.toUpperCase() : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","function resolveVariantFromProps(props, definition, custom, currentValues = {}, currentVelocity = {}) {\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n definition = definition(custom !== undefined ? custom : props.custom, currentValues, currentVelocity);\n }\n /**\n * If the variant definition is a variant label, or\n * the function returned a variant label, resolve.\n */\n if (typeof definition === \"string\") {\n definition = props.variants && props.variants[definition];\n }\n /**\n * At this point we've resolved both functions and variant labels,\n * but the resolved variant label might itself have been a function.\n * If so, resolve. This can only have returned a valid target object.\n */\n if (typeof definition === \"function\") {\n definition = definition(custom !== undefined ? custom : props.custom, currentValues, currentVelocity);\n }\n return definition;\n}\n\nexport { resolveVariantFromProps };\n","const isKeyframesTarget = (v) => {\n return Array.isArray(v);\n};\n\nexport { isKeyframesTarget };\n","import { isKeyframesTarget } from '../animation/utils/is-keyframes-target.mjs';\n\nconst isCustomValue = (v) => {\n return Boolean(v && typeof v === \"object\" && v.mix && v.toValue);\n};\nconst resolveFinalValueInKeyframes = (v) => {\n // TODO maybe throw if v.length - 1 is placeholder token?\n return isKeyframesTarget(v) ? v[v.length - 1] || 0 : v;\n};\n\nexport { isCustomValue, resolveFinalValueInKeyframes };\n","import { isCustomValue } from '../../utils/resolve-value.mjs';\nimport { isMotionValue } from './is-motion-value.mjs';\n\n/**\n * If the provided value is a MotionValue, this returns the actual value, otherwise just the value itself\n *\n * TODO: Remove and move to library\n */\nfunction resolveMotionValue(value) {\n const unwrappedValue = isMotionValue(value) ? value.get() : value;\n return isCustomValue(unwrappedValue)\n ? unwrappedValue.toValue()\n : unwrappedValue;\n}\n\nexport { resolveMotionValue };\n","import { useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { resolveVariantFromProps } from '../../render/utils/resolve-variants.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\nimport { isControllingVariants, isVariantNode } from '../../render/utils/is-controlling-variants.mjs';\n\nfunction makeState({ scrapeMotionValuesFromProps, createRenderState, onMount, }, props, context, presenceContext) {\n const state = {\n latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\n renderState: createRenderState(),\n };\n if (onMount) {\n state.mount = (instance) => onMount(props, instance, state);\n }\n return state;\n}\nconst makeUseVisualState = (config) => (props, isStatic) => {\n const context = useContext(MotionContext);\n const presenceContext = useContext(PresenceContext);\n const make = () => makeState(config, props, context, presenceContext);\n return isStatic ? make() : useConstant(make);\n};\nfunction makeLatestValues(props, context, presenceContext, scrapeMotionValues) {\n const values = {};\n const motionValues = scrapeMotionValues(props);\n for (const key in motionValues) {\n values[key] = resolveMotionValue(motionValues[key]);\n }\n let { initial, animate } = props;\n const isControllingVariants$1 = isControllingVariants(props);\n const isVariantNode$1 = isVariantNode(props);\n if (context &&\n isVariantNode$1 &&\n !isControllingVariants$1 &&\n props.inherit !== false) {\n if (initial === undefined)\n initial = context.initial;\n if (animate === undefined)\n animate = context.animate;\n }\n let isInitialAnimationBlocked = presenceContext\n ? presenceContext.initial === false\n : false;\n isInitialAnimationBlocked = isInitialAnimationBlocked || initial === false;\n const variantToSet = isInitialAnimationBlocked ? animate : initial;\n if (variantToSet &&\n typeof variantToSet !== \"boolean\" &&\n !isAnimationControls(variantToSet)) {\n const list = Array.isArray(variantToSet) ? variantToSet : [variantToSet];\n list.forEach((definition) => {\n const resolved = resolveVariantFromProps(props, definition);\n if (!resolved)\n return;\n const { transitionEnd, transition, ...target } = resolved;\n for (const key in target) {\n let valueTarget = target[key];\n if (Array.isArray(valueTarget)) {\n /**\n * Take final keyframe if the initial animation is blocked because\n * we want to initialise at the end of that blocked animation.\n */\n const index = isInitialAnimationBlocked\n ? valueTarget.length - 1\n : 0;\n valueTarget = valueTarget[index];\n }\n if (valueTarget !== null) {\n values[key] = valueTarget;\n }\n }\n for (const key in transitionEnd)\n values[key] = transitionEnd[key];\n });\n }\n return values;\n}\n\nexport { makeUseVisualState };\n","import { renderSVG } from './utils/render.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\n\nconst svgMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createSvgRenderState,\n onMount: (props, instance, { renderState, latestValues }) => {\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 buildSVGAttrs(renderState, latestValues, { enableHardwareAcceleration: false }, props.transformTemplate);\n renderSVG(instance, renderState);\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, projectionNodeConstructor) {\n const baseConfig = isSVGComponent(Component)\n ? svgMotionConfig\n : htmlMotionConfig;\n return {\n ...baseConfig,\n preloadedFeatures,\n useRender: createUseRender(forwardMotionProps),\n createVisualElement,\n projectionNodeConstructor,\n Component,\n };\n}\n\nexport { createDomMotionConfig };\n","var AnimationType;\n(function (AnimationType) {\n AnimationType[\"Animate\"] = \"animate\";\n AnimationType[\"Hover\"] = \"whileHover\";\n AnimationType[\"Tap\"] = \"whileTap\";\n AnimationType[\"Drag\"] = \"whileDrag\";\n AnimationType[\"Focus\"] = \"whileFocus\";\n AnimationType[\"InView\"] = \"whileInView\";\n AnimationType[\"Exit\"] = \"exit\";\n})(AnimationType || (AnimationType = {}));\n\nexport { AnimationType };\n","import { useEffect } from 'react';\n\nfunction addDomEvent(target, eventName, handler, options = { passive: true }) {\n target.addEventListener(eventName, handler, options);\n return () => target.removeEventListener(eventName, handler);\n}\n/**\n * Attaches an event listener directly to the provided DOM element.\n *\n * Bypassing React's event system can be desirable, for instance when attaching non-passive\n * event handlers.\n *\n * ```jsx\n * const ref = useRef(null)\n *\n * useDomEvent(ref, 'wheel', onWheel, { passive: false })\n *\n * return
\n * ```\n *\n * @param ref - React.RefObject that's been provided to the element you want to bind the listener to.\n * @param eventName - Name of the event you want listen for.\n * @param handler - Function to fire when receiving the event.\n * @param options - Options to pass to `Event.addEventListener`.\n *\n * @public\n */\nfunction useDomEvent(ref, eventName, handler, options) {\n useEffect(() => {\n const element = ref.current;\n if (handler && element) {\n return addDomEvent(element, eventName, handler, options);\n }\n }, [ref, eventName, handler, options]);\n}\n\nexport { addDomEvent, useDomEvent };\n","import { AnimationType } from '../render/utils/types.mjs';\nimport { useDomEvent } from '../events/use-dom-event.mjs';\n\n/**\n *\n * @param props\n * @param ref\n * @internal\n */\nfunction useFocusGesture({ whileFocus, visualElement }) {\n const { animationState } = visualElement;\n const onFocus = () => {\n animationState && animationState.setActive(AnimationType.Focus, true);\n };\n const onBlur = () => {\n animationState && animationState.setActive(AnimationType.Focus, false);\n };\n useDomEvent(visualElement, \"focus\", whileFocus ? onFocus : undefined);\n useDomEvent(visualElement, \"blur\", whileFocus ? onBlur : undefined);\n}\n\nexport { useFocusGesture };\n","function isMouseEvent(event) {\n // PointerEvent inherits from MouseEvent so we can't use a straight instanceof check.\n if (typeof PointerEvent !== \"undefined\" && event instanceof PointerEvent) {\n return !!(event.pointerType === \"mouse\");\n }\n return event instanceof MouseEvent;\n}\nfunction isTouchEvent(event) {\n const hasTouches = !!event.touches;\n return hasTouches;\n}\n\nexport { isMouseEvent, isTouchEvent };\n","import { isTouchEvent } from '../gestures/utils/event-type.mjs';\n\n/**\n * Filters out events not attached to the primary pointer (currently left mouse button)\n * @param eventHandler\n */\nfunction filterPrimaryPointer(eventHandler) {\n return (event) => {\n const isMouseEvent = event instanceof MouseEvent;\n const isPrimaryPointer = !isMouseEvent ||\n (isMouseEvent && event.button === 0);\n if (isPrimaryPointer) {\n eventHandler(event);\n }\n };\n}\nconst defaultPagePoint = { pageX: 0, pageY: 0 };\nfunction pointFromTouch(e, pointType = \"page\") {\n const primaryTouch = e.touches[0] || e.changedTouches[0];\n const point = primaryTouch || defaultPagePoint;\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"],\n };\n}\nfunction pointFromMouse(point, pointType = \"page\") {\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"],\n };\n}\nfunction extractEventInfo(event, pointType = \"page\") {\n return {\n point: isTouchEvent(event)\n ? pointFromTouch(event, pointType)\n : pointFromMouse(event, pointType),\n };\n}\nconst wrapHandler = (handler, shouldFilterPrimaryPointer = false) => {\n const listener = (event) => handler(event, extractEventInfo(event));\n return shouldFilterPrimaryPointer\n ? filterPrimaryPointer(listener)\n : listener;\n};\n\nexport { extractEventInfo, wrapHandler };\n","import { isBrowser } from '../utils/is-browser.mjs';\n\n// We check for event support via functions in case they've been mocked by a testing suite.\nconst supportsPointerEvents = () => isBrowser && window.onpointerdown === null;\nconst supportsTouchEvents = () => isBrowser && window.ontouchstart === null;\nconst supportsMouseEvents = () => isBrowser && window.onmousedown === null;\n\nexport { supportsMouseEvents, supportsPointerEvents, supportsTouchEvents };\n","import { addDomEvent, useDomEvent } from './use-dom-event.mjs';\nimport { wrapHandler } from './event-info.mjs';\nimport { supportsPointerEvents, supportsTouchEvents, supportsMouseEvents } from './utils.mjs';\n\nconst mouseEventNames = {\n pointerdown: \"mousedown\",\n pointermove: \"mousemove\",\n pointerup: \"mouseup\",\n pointercancel: \"mousecancel\",\n pointerover: \"mouseover\",\n pointerout: \"mouseout\",\n pointerenter: \"mouseenter\",\n pointerleave: \"mouseleave\",\n};\nconst touchEventNames = {\n pointerdown: \"touchstart\",\n pointermove: \"touchmove\",\n pointerup: \"touchend\",\n pointercancel: \"touchcancel\",\n};\nfunction getPointerEventName(name) {\n if (supportsPointerEvents()) {\n return name;\n }\n else if (supportsTouchEvents()) {\n return touchEventNames[name];\n }\n else if (supportsMouseEvents()) {\n return mouseEventNames[name];\n }\n return name;\n}\nfunction addPointerEvent(target, eventName, handler, options) {\n return addDomEvent(target, getPointerEventName(eventName), wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\nfunction usePointerEvent(ref, eventName, handler, options) {\n return useDomEvent(ref, getPointerEventName(eventName), handler && wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\n\nexport { addPointerEvent, usePointerEvent };\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","import { isMouseEvent } from './utils/event-type.mjs';\nimport { AnimationType } from '../render/utils/types.mjs';\nimport { usePointerEvent } from '../events/use-pointer-event.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\n\nfunction createHoverEvent(visualElement, isActive, callback) {\n return (event, info) => {\n if (!isMouseEvent(event) || isDragActive())\n return;\n /**\n * Ensure we trigger animations before firing event callback\n */\n if (visualElement.animationState) {\n visualElement.animationState.setActive(AnimationType.Hover, isActive);\n }\n callback && callback(event, info);\n };\n}\nfunction useHoverGesture({ onHoverStart, onHoverEnd, whileHover, visualElement, }) {\n usePointerEvent(visualElement, \"pointerenter\", onHoverStart || whileHover\n ? createHoverEvent(visualElement, true, onHoverStart)\n : undefined, { passive: !onHoverStart });\n usePointerEvent(visualElement, \"pointerleave\", onHoverEnd || whileHover\n ? createHoverEvent(visualElement, false, onHoverEnd)\n : undefined, { passive: !onHoverEnd });\n}\n\nexport { useHoverGesture };\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 { useEffect } from 'react';\n\nfunction useUnmountEffect(callback) {\n return useEffect(() => () => callback(), []);\n}\n\nexport { useUnmountEffect };\n","import { useRef } from 'react';\nimport { isNodeOrChild } from './utils/is-node-or-child.mjs';\nimport { usePointerEvent, addPointerEvent } from '../events/use-pointer-event.mjs';\nimport { useUnmountEffect } from '../utils/use-unmount-effect.mjs';\nimport { pipe } from 'popmotion';\nimport { AnimationType } from '../render/utils/types.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\n\n/**\n * @param handlers -\n * @internal\n */\nfunction useTapGesture({ onTap, onTapStart, onTapCancel, whileTap, visualElement, }) {\n const hasPressListeners = onTap || onTapStart || onTapCancel || whileTap;\n const isPressing = useRef(false);\n const cancelPointerEndListeners = useRef(null);\n /**\n * Only set listener to passive if there are no external listeners.\n */\n const eventOptions = {\n passive: !(onTapStart || onTap || onTapCancel || onPointerDown),\n };\n function removePointerEndListener() {\n cancelPointerEndListeners.current && cancelPointerEndListeners.current();\n cancelPointerEndListeners.current = null;\n }\n function checkPointerEnd() {\n removePointerEndListener();\n isPressing.current = false;\n visualElement.animationState &&\n visualElement.animationState.setActive(AnimationType.Tap, false);\n return !isDragActive();\n }\n function onPointerUp(event, info) {\n if (!checkPointerEnd())\n return;\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 !isNodeOrChild(visualElement.getInstance(), event.target)\n ? onTapCancel && onTapCancel(event, info)\n : onTap && onTap(event, info);\n }\n function onPointerCancel(event, info) {\n if (!checkPointerEnd())\n return;\n onTapCancel && onTapCancel(event, info);\n }\n function onPointerDown(event, info) {\n removePointerEndListener();\n if (isPressing.current)\n return;\n isPressing.current = true;\n cancelPointerEndListeners.current = pipe(addPointerEvent(window, \"pointerup\", onPointerUp, eventOptions), addPointerEvent(window, \"pointercancel\", onPointerCancel, eventOptions));\n /**\n * Ensure we trigger animations before firing event callback\n */\n visualElement.animationState &&\n visualElement.animationState.setActive(AnimationType.Tap, true);\n onTapStart && onTapStart(event, info);\n }\n usePointerEvent(visualElement, \"pointerdown\", hasPressListeners ? onPointerDown : undefined, eventOptions);\n useUnmountEffect(removePointerEndListener);\n}\n\nexport { useTapGesture };\n","/**\n * Browser-safe usage of process\n */\nconst defaultEnvironment = \"production\";\nconst env = typeof process === \"undefined\" || process.env === undefined\n ? defaultEnvironment\n : process.env.NODE_ENV || defaultEnvironment;\n\nexport { env };\n","const warned = new Set();\nfunction warnOnce(condition, message, element) {\n if (condition || warned.has(message))\n return;\n console.warn(message);\n if (element)\n console.warn(element);\n warned.add(message);\n}\n\nexport { warnOnce };\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 { env } from '../../../utils/process.mjs';\nimport { useRef, useEffect } from 'react';\nimport { AnimationType } from '../../../render/utils/types.mjs';\nimport { warnOnce } from '../../../utils/warn-once.mjs';\nimport { observeIntersection } from './observers.mjs';\n\nfunction useViewport({ visualElement, whileInView, onViewportEnter, onViewportLeave, viewport = {}, }) {\n const state = useRef({\n hasEnteredView: false,\n isInView: false,\n });\n let shouldObserve = Boolean(whileInView || onViewportEnter || onViewportLeave);\n if (viewport.once && state.current.hasEnteredView)\n shouldObserve = false;\n const useObserver = typeof IntersectionObserver === \"undefined\"\n ? useMissingIntersectionObserver\n : useIntersectionObserver;\n useObserver(shouldObserve, state.current, visualElement, viewport);\n}\nconst thresholdNames = {\n some: 0,\n all: 1,\n};\nfunction useIntersectionObserver(shouldObserve, state, visualElement, { root, margin: rootMargin, amount = \"some\", once }) {\n useEffect(() => {\n if (!shouldObserve)\n return;\n const options = {\n root: root === null || root === void 0 ? void 0 : root.current,\n rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholdNames[amount],\n };\n const intersectionCallback = (entry) => {\n const { isIntersecting } = entry;\n /**\n * If there's been no change in the viewport state, early return.\n */\n if (state.isInView === isIntersecting)\n return;\n state.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 && state.hasEnteredView) {\n return;\n }\n else if (isIntersecting) {\n state.hasEnteredView = true;\n }\n if (visualElement.animationState) {\n visualElement.animationState.setActive(AnimationType.InView, isIntersecting);\n }\n /**\n * Use the latest committed props rather than the ones in scope\n * when this observer is created\n */\n const props = visualElement.getProps();\n const callback = isIntersecting\n ? props.onViewportEnter\n : props.onViewportLeave;\n callback && callback(entry);\n };\n return observeIntersection(visualElement.getInstance(), options, intersectionCallback);\n }, [shouldObserve, root, rootMargin, amount]);\n}\n/**\n * If IntersectionObserver is missing, we activate inView and fire onViewportEnter\n * on mount. This way, the page will be in the state the author expects users\n * to see it in for everyone.\n */\nfunction useMissingIntersectionObserver(shouldObserve, state, visualElement, { fallback = true }) {\n useEffect(() => {\n if (!shouldObserve || !fallback)\n return;\n if (env !== \"production\") {\n warnOnce(false, \"IntersectionObserver not available on this device. whileInView animations will trigger on mount.\");\n }\n /**\n * Fire this in an rAF because, at this point, the animation state\n * won't have flushed for the first time and there's certain logic in\n * there that behaves differently on the initial animation.\n *\n * This hook should be quite rarely called so setting this in an rAF\n * is preferred to changing the behaviour of the animation state.\n */\n requestAnimationFrame(() => {\n state.hasEnteredView = true;\n const { onViewportEnter } = visualElement.getProps();\n onViewportEnter && onViewportEnter(null);\n if (visualElement.animationState) {\n visualElement.animationState.setActive(AnimationType.InView, true);\n }\n });\n }, [shouldObserve]);\n}\n\nexport { useViewport };\n","const makeRenderlessComponent = (hook) => (props) => {\n hook(props);\n return null;\n};\n\nexport { makeRenderlessComponent };\n","import { useFocusGesture } from '../../gestures/use-focus-gesture.mjs';\nimport { useHoverGesture } from '../../gestures/use-hover-gesture.mjs';\nimport { useTapGesture } from '../../gestures/use-tap-gesture.mjs';\nimport { useViewport } from './viewport/use-viewport.mjs';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.mjs';\n\nconst gestureAnimations = {\n inView: makeRenderlessComponent(useViewport),\n tap: makeRenderlessComponent(useTapGesture),\n focus: makeRenderlessComponent(useFocusGesture),\n hover: makeRenderlessComponent(useHoverGesture),\n};\n\nexport { gestureAnimations };\n","import { useContext, useId, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n * const [isPresent, safeToRemove] = usePresence()\n *\n * useEffect(() => {\n * !isPresent && setTimeout(safeToRemove, 1000)\n * }, [isPresent])\n *\n * return
\n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed the tree, but\n * `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */\nfunction usePresence() {\n const context = useContext(PresenceContext);\n if (context === null)\n return [true, null];\n const { isPresent, onExitComplete, register } = context;\n // It's safe to call the following hooks conditionally (after an early return) because the context will always\n // either be null or non-null for the lifespan of the component.\n // Replace with useId when released in React\n const id = useId();\n useEffect(() => register(id), []);\n const safeToRemove = () => onExitComplete && onExitComplete(id);\n return !isPresent && onExitComplete ? [false, safeToRemove] : [true];\n}\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n * const isPresent = useIsPresent()\n *\n * useEffect(() => {\n * !isPresent && console.log(\"I've been removed!\")\n * }, [isPresent])\n *\n * return
\n * }\n * ```\n *\n * @public\n */\nfunction useIsPresent() {\n return isPresent(useContext(PresenceContext));\n}\nfunction isPresent(context) {\n return context === null ? true : context.isPresent;\n}\n\nexport { isPresent, useIsPresent, usePresence };\n","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","/**\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;\n\nexport { secondsToMilliseconds };\n","import { invariant } from 'hey-listen';\nimport { cubicBezier, linear, easeIn, easeInOut, easeOut, circIn, circInOut, circOut, backIn, backInOut, backOut, anticipate, bounceIn, bounceInOut, bounceOut } from 'popmotion';\n\nconst easingLookup = {\n linear,\n easeIn,\n easeInOut,\n easeOut,\n circIn,\n circInOut,\n circOut,\n backIn,\n backInOut,\n backOut,\n anticipate,\n bounceIn,\n bounceInOut,\n bounceOut,\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};\nconst isEasingArray = (ease) => {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\nexport { easingDefinitionToFunction, isEasingArray };\n","import { complex } from 'style-value-types';\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 = (key, value) => {\n // If the list of keys tat might be non-animatable grows, replace with Set\n if (key === \"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) && // 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 { isKeyframesTarget } from './is-keyframes-target.mjs';\n\nconst underDampedSpring = () => ({\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restSpeed: 10,\n});\nconst criticallyDampedSpring = (to) => ({\n type: \"spring\",\n stiffness: 550,\n damping: to === 0 ? 2 * Math.sqrt(550) : 30,\n restSpeed: 10,\n});\nconst linearTween = () => ({\n type: \"keyframes\",\n ease: \"linear\",\n duration: 0.3,\n});\nconst keyframes = (values) => ({\n type: \"keyframes\",\n duration: 0.8,\n values,\n});\nconst defaultTransitions = {\n x: underDampedSpring,\n y: underDampedSpring,\n z: underDampedSpring,\n rotate: underDampedSpring,\n rotateX: underDampedSpring,\n rotateY: underDampedSpring,\n rotateZ: underDampedSpring,\n scaleX: criticallyDampedSpring,\n scaleY: criticallyDampedSpring,\n scale: criticallyDampedSpring,\n opacity: linearTween,\n backgroundColor: linearTween,\n color: linearTween,\n default: criticallyDampedSpring,\n};\nconst getDefaultTransition = (valueKey, to) => {\n let transitionFactory;\n if (isKeyframesTarget(to)) {\n transitionFactory = keyframes;\n }\n else {\n transitionFactory =\n defaultTransitions[valueKey] || defaultTransitions.default;\n }\n return { to, ...transitionFactory(to) };\n};\n\nexport { criticallyDampedSpring, getDefaultTransition, linearTween, underDampedSpring };\n","import { color, filter } from 'style-value-types';\nimport { numberValueTypes } from './number.mjs';\n\n/**\n * A map of default value types for common values\n */\nconst defaultValueTypes = {\n ...numberValueTypes,\n // Color props\n color,\n backgroundColor: color,\n outlineColor: color,\n fill: color,\n stroke: color,\n // Border props\n borderColor: color,\n borderTopColor: color,\n borderRightColor: color,\n borderBottomColor: color,\n borderLeftColor: color,\n filter,\n WebkitFilter: filter,\n};\n/**\n * Gets the default ValueType for the provided value key\n */\nconst getDefaultValueType = (key) => defaultValueTypes[key];\n\nexport { defaultValueTypes, getDefaultValueType };\n","import { filter, complex } from 'style-value-types';\nimport { getDefaultValueType } from './defaults.mjs';\n\nfunction getAnimatableNone(key, value) {\n var _a;\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 (_a = defaultValueType.getAnimatableNone) === null || _a === void 0 ? void 0 : _a.call(defaultValueType, value);\n}\n\nexport { getAnimatableNone };\n","import { inertia, animate } from 'popmotion';\nimport { secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { isEasingArray, easingDefinitionToFunction } from './easing.mjs';\nimport { isAnimatable } from './is-animatable.mjs';\nimport { getDefaultTransition } from './default-transitions.mjs';\nimport { warning } from 'hey-listen';\nimport { getAnimatableNone } from '../../render/dom/value-types/animatable-none.mjs';\nimport { instantAnimationState } from '../../utils/use-instant-transition-state.mjs';\nimport { resolveFinalValueInKeyframes } from '../../utils/resolve-value.mjs';\n\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, delayChildren, staggerChildren, staggerDirection, repeat, repeatType, repeatDelay, from, ...transition }) {\n return !!Object.keys(transition).length;\n}\nlet legacyRepeatWarning = false;\n/**\n * Convert Framer Motion's Transition type into Popmotion-compatible options.\n */\nfunction convertTransitionToAnimationOptions({ ease, times, yoyo, flip, loop, ...transition }) {\n const options = { ...transition };\n if (times)\n options[\"offset\"] = times;\n /**\n * Convert any existing durations from seconds to milliseconds\n */\n if (transition.duration)\n options[\"duration\"] = secondsToMilliseconds(transition.duration);\n if (transition.repeatDelay)\n options.repeatDelay = secondsToMilliseconds(transition.repeatDelay);\n /**\n * Map easing names to Popmotion's easing functions\n */\n if (ease) {\n options[\"ease\"] = isEasingArray(ease)\n ? ease.map(easingDefinitionToFunction)\n : easingDefinitionToFunction(ease);\n }\n /**\n * Support legacy transition API\n */\n if (transition.type === \"tween\")\n options.type = \"keyframes\";\n /**\n * TODO: These options are officially removed from the API.\n */\n if (yoyo || loop || flip) {\n warning(!legacyRepeatWarning, \"yoyo, loop and flip have been removed from the API. Replace with repeat and repeatType options.\");\n legacyRepeatWarning = true;\n if (yoyo) {\n options.repeatType = \"reverse\";\n }\n else if (loop) {\n options.repeatType = \"loop\";\n }\n else if (flip) {\n options.repeatType = \"mirror\";\n }\n options.repeat = loop || yoyo || flip || transition.repeat;\n }\n /**\n * TODO: Popmotion 9 has the ability to automatically detect whether to use\n * a keyframes or spring animation, but does so by detecting velocity and other spring options.\n * It'd be good to introduce a similar thing here.\n */\n if (transition.type !== \"spring\")\n options.type = \"keyframes\";\n return options;\n}\n/**\n * Get the delay for a value by checking Transition with decreasing specificity.\n */\nfunction getDelayFromTransition(transition, key) {\n var _a, _b;\n const valueTransition = getValueTransition(transition, key) || {};\n return (_b = (_a = valueTransition.delay) !== null && _a !== void 0 ? _a : transition.delay) !== null && _b !== void 0 ? _b : 0;\n}\nfunction hydrateKeyframes(options) {\n if (Array.isArray(options.to) && options.to[0] === null) {\n options.to = [...options.to];\n options.to[0] = options.from;\n }\n return options;\n}\nfunction getPopmotionAnimationOptions(transition, options, key) {\n if (Array.isArray(options.to) && transition.duration === undefined) {\n transition.duration = 0.8;\n }\n hydrateKeyframes(options);\n /**\n * Get a default transition if none is determined to be defined.\n */\n if (!isTransitionDefined(transition)) {\n transition = {\n ...transition,\n ...getDefaultTransition(key, options.to),\n };\n }\n return {\n ...options,\n ...convertTransitionToAnimationOptions(transition),\n };\n}\n/**\n *\n */\nfunction getAnimation(key, value, target, transition, onComplete) {\n const valueTransition = getValueTransition(transition, key) || {};\n let origin = valueTransition.from !== undefined ? valueTransition.from : value.get();\n const isTargetAnimatable = isAnimatable(key, target);\n if (origin === \"none\" && isTargetAnimatable && typeof target === \"string\") {\n /**\n * If we're trying to animate from \"none\", try and get an animatable version\n * of the target. This could be improved to work both ways.\n */\n origin = getAnimatableNone(key, target);\n }\n else if (isZero(origin) && typeof target === \"string\") {\n origin = getZeroUnit(target);\n }\n else if (!Array.isArray(target) &&\n isZero(target) &&\n typeof origin === \"string\") {\n target = getZeroUnit(origin);\n }\n const isOriginAnimatable = isAnimatable(key, origin);\n warning(isOriginAnimatable === isTargetAnimatable, `You are trying to animate ${key} from \"${origin}\" to \"${target}\". ${origin} is not an animatable value - to enable this animation set ${origin} to a value animatable to ${target} via the \\`style\\` property.`);\n function start() {\n const options = {\n from: origin,\n to: target,\n velocity: value.getVelocity(),\n onComplete,\n onUpdate: (v) => value.set(v),\n };\n return valueTransition.type === \"inertia\" ||\n valueTransition.type === \"decay\"\n ? inertia({ ...options, ...valueTransition })\n : animate({\n ...getPopmotionAnimationOptions(valueTransition, options, key),\n onUpdate: (v) => {\n options.onUpdate(v);\n valueTransition.onUpdate && valueTransition.onUpdate(v);\n },\n onComplete: () => {\n options.onComplete();\n valueTransition.onComplete && valueTransition.onComplete();\n },\n });\n }\n function set() {\n const finalTarget = resolveFinalValueInKeyframes(target);\n value.set(finalTarget);\n onComplete();\n valueTransition.onUpdate && valueTransition.onUpdate(finalTarget);\n valueTransition.onComplete && valueTransition.onComplete();\n return { stop: () => { } };\n }\n return !isOriginAnimatable ||\n !isTargetAnimatable ||\n valueTransition.type === false\n ? set\n : start;\n}\nfunction isZero(value) {\n return (value === 0 ||\n (typeof value === \"string\" &&\n parseFloat(value) === 0 &&\n value.indexOf(\" \") === -1));\n}\nfunction getZeroUnit(potentialUnitType) {\n return typeof potentialUnitType === \"number\"\n ? 0\n : getAnimatableNone(\"\", potentialUnitType);\n}\nfunction getValueTransition(transition, key) {\n return transition[key] || transition[\"default\"] || transition;\n}\n/**\n * Start animation on a MotionValue. This function is an interface between\n * Framer Motion and Popmotion\n */\nfunction startAnimation(key, value, target, transition = {}) {\n if (instantAnimationState.current) {\n transition = { type: false };\n }\n return value.start((onComplete) => {\n let delayTimer;\n let controls;\n const animation = getAnimation(key, value, target, transition, onComplete);\n const delay = getDelayFromTransition(transition, key);\n const start = () => (controls = animation());\n if (delay) {\n delayTimer = window.setTimeout(start, secondsToMilliseconds(delay));\n }\n else {\n start();\n }\n return () => {\n clearTimeout(delayTimer);\n controls && controls.stop();\n };\n });\n}\n\nexport { convertTransitionToAnimationOptions, getDelayFromTransition, getPopmotionAnimationOptions, getValueTransition, getZeroUnit, hydrateKeyframes, isTransitionDefined, isZero, startAnimation };\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+$/.test(v);\n\nexport { isNumericalString };\n","/**\n * Check if the value is a zero value string like \"0px\" or \"0%\"\n */\nconst isZeroValueString = (v) => /^0[^.\\s]+$/.test(v);\n\nexport { isZeroValueString };\n","function addUniqueItem(arr, item) {\n if (arr.indexOf(item) === -1)\n arr.push(item);\n}\nfunction removeItem(arr, item) {\n const index = arr.indexOf(item);\n if (index > -1)\n arr.splice(index, 1);\n}\n// Adapted from array-move\nfunction moveItem([...arr], fromIndex, toIndex) {\n const startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex;\n if (startIndex >= 0 && startIndex < arr.length) {\n const endIndex = toIndex < 0 ? arr.length + toIndex : toIndex;\n const [item] = arr.splice(fromIndex, 1);\n arr.splice(endIndex, 0, item);\n }\n return arr;\n}\n\nexport { addUniqueItem, moveItem, removeItem };\n","import { addUniqueItem, removeItem } from './array.mjs';\n\nclass SubscriptionManager {\n constructor() {\n this.subscriptions = [];\n }\n add(handler) {\n addUniqueItem(this.subscriptions, handler);\n return () => removeItem(this.subscriptions, handler);\n }\n notify(a, b, c) {\n const numSubscriptions = this.subscriptions.length;\n if (!numSubscriptions)\n return;\n if (numSubscriptions === 1) {\n /**\n * If there's only a single handler we can just call it without invoking a loop.\n */\n this.subscriptions[0](a, b, c);\n }\n else {\n for (let i = 0; i < numSubscriptions; i++) {\n /**\n * Check whether the handler exists before firing as it's possible\n * the subscriptions were modified during this loop running.\n */\n const handler = this.subscriptions[i];\n handler && handler(a, b, c);\n }\n }\n }\n getSize() {\n return this.subscriptions.length;\n }\n clear() {\n this.subscriptions.length = 0;\n }\n}\n\nexport { SubscriptionManager };\n","import sync, { getFrameData } from 'framesync';\nimport { velocityPerSecond } from 'popmotion';\nimport { SubscriptionManager } from '../utils/subscription-manager.mjs';\n\nconst isFloat = (value) => {\n return !isNaN(parseFloat(value));\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) {\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 = \"7.3.5\";\n /**\n * Duration, in milliseconds, since last updating frame.\n *\n * @internal\n */\n this.timeDelta = 0;\n /**\n * Timestamp of the last time this `MotionValue` was updated.\n *\n * @internal\n */\n this.lastUpdated = 0;\n /**\n * Functions to notify when the `MotionValue` updates.\n *\n * @internal\n */\n this.updateSubscribers = new SubscriptionManager();\n /**\n * Functions to notify when the velocity updates.\n *\n * @internal\n */\n this.velocityUpdateSubscribers = new SubscriptionManager();\n /**\n * Functions to notify when the `MotionValue` updates and `render` is set to `true`.\n *\n * @internal\n */\n this.renderSubscribers = new SubscriptionManager();\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 this.updateAndNotify = (v, render = true) => {\n this.prev = this.current;\n this.current = v;\n // Update timestamp\n const { delta, timestamp } = getFrameData();\n if (this.lastUpdated !== timestamp) {\n this.timeDelta = delta;\n this.lastUpdated = timestamp;\n sync.postRender(this.scheduleVelocityCheck);\n }\n // Update update subscribers\n if (this.prev !== this.current) {\n this.updateSubscribers.notify(this.current);\n }\n // Update velocity subscribers\n if (this.velocityUpdateSubscribers.getSize()) {\n this.velocityUpdateSubscribers.notify(this.getVelocity());\n }\n // Update render subscribers\n if (render) {\n this.renderSubscribers.notify(this.current);\n }\n };\n /**\n * Schedule a velocity check for the next frame.\n *\n * This is an instanced and bound function to prevent generating a new\n * function once per frame.\n *\n * @internal\n */\n this.scheduleVelocityCheck = () => sync.postRender(this.velocityCheck);\n /**\n * Updates `prev` with `current` if the value hasn't been updated this frame.\n * This ensures velocity calculations return `0`.\n *\n * This is an instanced and bound function to prevent generating a new\n * function once per frame.\n *\n * @internal\n */\n this.velocityCheck = ({ timestamp }) => {\n if (timestamp !== this.lastUpdated) {\n this.prev = this.current;\n this.velocityUpdateSubscribers.notify(this.getVelocity());\n }\n };\n this.hasAnimated = false;\n this.prev = this.current = init;\n this.canTrackVelocity = isFloat(this.current);\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.onChange(updateOpacity)\n * const unsubscribeY = y.onChange(updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return \n * }\n * ```\n *\n * @privateRemarks\n *\n * We could look into a `useOnChange` hook if the above lifecycle management proves confusing.\n *\n * ```jsx\n * useOnChange(x, () => {})\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 * @public\n */\n onChange(subscription) {\n return this.updateSubscribers.add(subscription);\n }\n clearListeners() {\n this.updateSubscribers.clear();\n }\n /**\n * Adds a function that will be notified when the `MotionValue` requests a render.\n *\n * @param subscriber - A function that's provided the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @internal\n */\n onRenderRequest(subscription) {\n // Render immediately\n subscription(this.get());\n return this.renderSubscribers.add(subscription);\n }\n /**\n * Attaches a passive effect to the `MotionValue`.\n *\n * @internal\n */\n attach(passiveEffect) {\n this.passiveEffect = passiveEffect;\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 /**\n * Returns the latest state of `MotionValue`\n *\n * @returns - The latest state of `MotionValue`\n *\n * @public\n */\n get() {\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 // This could be isFloat(this.prev) && isFloat(this.current), but that would be wasteful\n return this.canTrackVelocity\n ? // These casts could be avoided if parseFloat would be typed better\n velocityPerSecond(parseFloat(this.current) -\n parseFloat(this.prev), this.timeDelta)\n : 0;\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(animation) {\n this.stop();\n return new Promise((resolve) => {\n this.hasAnimated = true;\n this.stopAnimation = animation(resolve);\n }).then(() => this.clearAnimation());\n }\n /**\n * Stop the currently active animation.\n *\n * @public\n */\n stop() {\n if (this.stopAnimation)\n this.stopAnimation();\n this.clearAnimation();\n }\n /**\n * Returns `true` if this value is currently animating.\n *\n * @public\n */\n isAnimating() {\n return !!this.stopAnimation;\n }\n clearAnimation() {\n this.stopAnimation = null;\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.updateSubscribers.clear();\n this.renderSubscribers.clear();\n this.stop();\n }\n}\nfunction motionValue(init) {\n return new MotionValue(init);\n}\n\nexport { MotionValue, motionValue };\n","/**\n * Tests a provided value against a ValueType\n */\nconst testValueType = (v) => (type) => type.test(v);\n\nexport { testValueType };\n","/**\n * ValueType for \"auto\"\n */\nconst auto = {\n test: (v) => v === \"auto\",\n parse: (v) => v,\n};\n\nexport { auto };\n","import { number, px, percent, degrees, vw, vh } from 'style-value-types';\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 { color, complex } from 'style-value-types';\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 { 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.forEachValue((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.forEachValue((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 { complex } from 'style-value-types';\nimport { isNumericalString } from '../../utils/is-numerical-string.mjs';\nimport { isZeroValueString } from '../../utils/is-zero-value-string.mjs';\nimport { resolveFinalValueInKeyframes } from '../../utils/resolve-value.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { getAnimatableNone } from '../dom/value-types/animatable-none.mjs';\nimport { findValueType } from '../dom/value-types/find.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 ? visualElement.makeTargetAnimatable(resolved, false) : {};\n target = { ...target, ...transitionEnd };\n for (const key in target) {\n const value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n }\n}\nfunction setVariants(visualElement, variantLabels) {\n const reversedLabels = [...variantLabels].reverse();\n reversedLabels.forEach((key) => {\n var _a;\n const variant = visualElement.getVariant(key);\n variant && setTarget(visualElement, variant);\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach((child) => {\n setVariants(child, variantLabels);\n });\n });\n}\nfunction setValues(visualElement, definition) {\n if (Array.isArray(definition)) {\n return setVariants(visualElement, definition);\n }\n else if (typeof definition === \"string\") {\n return setVariants(visualElement, [definition]);\n }\n else {\n setTarget(visualElement, definition);\n }\n}\nfunction checkTargetForNewValues(visualElement, target, origin) {\n var _a, _b;\n const newValueKeys = Object.keys(target).filter((key) => !visualElement.hasValue(key));\n const numNewValues = newValueKeys.length;\n if (!numNewValues)\n return;\n for (let i = 0; i < numNewValues; i++) {\n const key = newValueKeys[i];\n const targetValue = target[key];\n let value = null;\n /**\n * If the target is a series of keyframes, we can use the first value\n * in the array. If this first value is null, we'll still need to read from the DOM.\n */\n if (Array.isArray(targetValue)) {\n value = targetValue[0];\n }\n /**\n * If the target isn't keyframes, or the first keyframe was null, we need to\n * first check if an origin value was explicitly defined in the transition as \"from\",\n * if not read the value from the DOM. As an absolute fallback, take the defined target value.\n */\n if (value === null) {\n value = (_b = (_a = origin[key]) !== null && _a !== void 0 ? _a : visualElement.readValue(key)) !== null && _b !== void 0 ? _b : target[key];\n }\n /**\n * If value is still undefined or null, ignore it. Preferably this would throw,\n * but this was causing issues in Framer.\n */\n if (value === undefined || value === null)\n continue;\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(targetValue)) {\n value = getAnimatableNone(key, targetValue);\n }\n visualElement.addValue(key, motionValue(value));\n if (origin[key] === undefined) {\n origin[key] = value;\n }\n visualElement.setBaseTarget(key, value);\n }\n}\nfunction getOriginFromTransition(key, transition) {\n if (!transition)\n return;\n const valueTransition = transition[key] || transition[\"default\"] || transition;\n return valueTransition.from;\n}\nfunction getOrigin(target, transition, visualElement) {\n var _a;\n const origin = {};\n for (const key in target) {\n const transitionOrigin = getOriginFromTransition(key, transition);\n origin[key] =\n transitionOrigin !== undefined\n ? transitionOrigin\n : (_a = visualElement.getValue(key)) === null || _a === void 0 ? void 0 : _a.get();\n }\n return origin;\n}\n\nexport { checkTargetForNewValues, getOrigin, getOriginFromTransition, setTarget, setValues };\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","import { startAnimation } from '../../animation/utils/transitions.mjs';\nimport { setTarget } from './setters.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\nimport { transformProps } from '../html/utils/transform.mjs';\nimport { isWillChangeMotionValue } from '../../value/use-will-change/is.mjs';\n\nfunction animateVisualElement(visualElement, definition, options = {}) {\n visualElement.notifyAnimationStart(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 = animateTarget(visualElement, resolvedDefinition, options);\n }\n return animation.then(() => visualElement.notifyAnimationComplete(definition));\n}\nfunction animateVariant(visualElement, variant, options = {}) {\n var _a;\n const resolved = resolveVariant(visualElement, variant, options.custom);\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 ? () => 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 = ((_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.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}\n/**\n * @internal\n */\nfunction animateTarget(visualElement, definition, { delay = 0, transitionOverride, type } = {}) {\n var _a;\n let { transition = visualElement.getDefaultTransition(), transitionEnd, ...target } = visualElement.makeTargetAnimatable(definition);\n const willChange = visualElement.getValue(\"willChange\");\n if (transitionOverride)\n transition = transitionOverride;\n const animations = [];\n const animationTypeState = type && ((_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.getState()[type]);\n for (const key in target) {\n const value = visualElement.getValue(key);\n const valueTarget = target[key];\n if (!value ||\n valueTarget === undefined ||\n (animationTypeState &&\n shouldBlockAnimation(animationTypeState, key))) {\n continue;\n }\n let valueTransition = { delay, ...transition };\n /**\n * Make animation instant if this is a transform prop and we should reduce motion.\n */\n if (visualElement.shouldReduceMotion && transformProps.has(key)) {\n valueTransition = {\n ...valueTransition,\n type: false,\n delay: 0,\n };\n }\n let animation = startAnimation(key, value, valueTarget, valueTransition);\n if (isWillChangeMotionValue(willChange)) {\n willChange.add(key);\n animation = animation.then(() => willChange.remove(key));\n }\n animations.push(animation);\n }\n return Promise.all(animations).then(() => {\n transitionEnd && setTarget(visualElement, transitionEnd);\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 animations.push(animateVariant(child, variant, {\n ...options,\n delay: delayChildren + generateStaggerDuration(i),\n }).then(() => child.notifyAnimationComplete(variant)));\n });\n return Promise.all(animations);\n}\nfunction stopAnimation(visualElement) {\n visualElement.forEachValue((value) => value.stop());\n}\nfunction sortByTreeOrder(a, b) {\n return a.sortNodePosition(b);\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}\n\nexport { animateVisualElement, sortByTreeOrder, stopAnimation };\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 { animateVisualElement } from './animation.mjs';\nimport { isVariantLabel } from './is-variant-label.mjs';\nimport { AnimationType } from './types.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\n\nconst variantPriorityOrder = [\n AnimationType.Animate,\n AnimationType.InView,\n AnimationType.Focus,\n AnimationType.Hover,\n AnimationType.Tap,\n AnimationType.Drag,\n AnimationType.Exit,\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 = (acc, definition) => {\n const resolved = resolveVariant(visualElement, definition);\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(options, changedActiveType) {\n var _a;\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 = (_a = props[type]) !== null && _a !== void 0 ? _a : context[type];\n const propIsVariant = isVariantLabel(prop);\n /**\n * If this type has *just* changed isActive status, set activeDelta\n * to that status. Otherwise set to null.\n */\n const activeDelta = type === changedActiveType ? typeState.isActive : null;\n if (activeDelta === false)\n removedVariantIndex = i;\n /**\n * If this prop is an inherited variant, rather than been set directly on the\n * component itself, we want to make sure we allow the parent to trigger animations.\n *\n * TODO: Can probably change this to a !isControllingVariants check\n */\n let isInherited = prop === context[type] && prop !== props[type] && propIsVariant;\n /**\n *\n */\n if (isInherited &&\n isInitialRender &&\n visualElement.manuallyAnimateOnMount) {\n isInherited = false;\n }\n /**\n * Set all encountered keys so far as the protected keys for this type. This will\n * be any key that has been animated or otherwise handled by active, higher-priortiy types.\n */\n typeState.protectedKeys = { ...encounteredKeys };\n // Check if we can skip analysing this prop early\n if (\n // If it isn't active and hasn't *just* been set as inactive\n (!typeState.isActive && activeDelta === null) ||\n // If we didn't and don't have any defined prop for this animation type\n (!prop && !typeState.prevProp) ||\n // Or if the prop doesn't define an animation\n isAnimationControls(prop) ||\n typeof prop === \"boolean\") {\n continue;\n }\n /**\n * As we go look through the values defined on this type, if we detect\n * a changed value or a value that was removed in a higher priority, we set\n * this to true and add this prop to the animation list.\n */\n const variantDidChange = checkVariantsDidChange(typeState.prevProp, prop);\n let shouldAnimateType = variantDidChange ||\n // If we're making this variant active, we want to always make it active\n (type === changedActiveType &&\n typeState.isActive &&\n !isInherited &&\n propIsVariant) ||\n // If we removed a higher-priority variant (i is in reverse order)\n (i > removedVariantIndex && propIsVariant);\n /**\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, {});\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 removedKeys.delete(key);\n typeState.needsAnimating[key] = true;\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 if (next !== prev) {\n /**\n * If both values are keyframes, we need to shallow compare them to\n * detect whether any value has changed. If it has, we animate it.\n */\n if (isKeyframesTarget(next) && isKeyframesTarget(prev)) {\n if (!shallowCompare(next, prev) || variantDidChange) {\n markToAnimate(key);\n }\n else {\n /**\n * If it hasn't changed, we want to ensure it doesn't animate by\n * adding it to the list of protected keys.\n */\n typeState.protectedKeys[key] = true;\n }\n }\n else if (next !== undefined) {\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 * TODO: Test as this should probably still handle animations triggered\n * by removed values?\n */\n if (shouldAnimateType && !isInherited) {\n animations.push(...definitionList.map((animation) => ({\n animation: animation,\n options: { type, ...options },\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 if (fallbackTarget !== undefined) {\n fallbackAnimation[key] = fallbackTarget;\n }\n });\n animations.push({ animation: fallbackAnimation });\n }\n let shouldAnimate = Boolean(animations.length);\n if (isInitialRender &&\n props.initial === false &&\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, options) {\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(options, 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 [AnimationType.Animate]: createTypeState(true),\n [AnimationType.InView]: createTypeState(),\n [AnimationType.Hover]: createTypeState(),\n [AnimationType.Tap]: createTypeState(),\n [AnimationType.Drag]: createTypeState(),\n [AnimationType.Focus]: createTypeState(),\n [AnimationType.Exit]: createTypeState(),\n };\n}\n\nexport { checkVariantsDidChange, createAnimationState, variantPriorityOrder };\n","import { useEffect, useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { usePresence } from '../../components/AnimatePresence/use-presence.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { createAnimationState } from '../../render/utils/animation-state.mjs';\nimport { AnimationType } from '../../render/utils/types.mjs';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.mjs';\n\nconst animations = {\n animation: makeRenderlessComponent(({ visualElement, animate }) => {\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 visualElement.animationState || (visualElement.animationState = createAnimationState(visualElement));\n /**\n * Subscribe any provided AnimationControls to the component's VisualElement\n */\n if (isAnimationControls(animate)) {\n useEffect(() => animate.subscribe(visualElement), [animate]);\n }\n }),\n exit: makeRenderlessComponent((props) => {\n const { custom, visualElement } = props;\n const [isPresent, safeToRemove] = usePresence();\n const presenceContext = useContext(PresenceContext);\n useEffect(() => {\n visualElement.isPresent = isPresent;\n const animation = visualElement.animationState &&\n visualElement.animationState.setActive(AnimationType.Exit, !isPresent, {\n custom: (presenceContext && presenceContext.custom) ||\n custom,\n });\n if (animation && !isPresent) {\n animation.then(safeToRemove);\n }\n }, [isPresent]);\n }),\n};\n\nexport { animations };\n","import { isMouseEvent, isTouchEvent } from './utils/event-type.mjs';\nimport { extractEventInfo } from '../events/event-info.mjs';\nimport sync, { getFrameData, cancelSync } from 'framesync';\nimport { secondsToMilliseconds } from '../utils/time-conversion.mjs';\nimport { addPointerEvent } from '../events/use-pointer-event.mjs';\nimport { distance, pipe } from 'popmotion';\n\n/**\n * @internal\n */\nclass PanSession {\n constructor(event, handlers, { transformPagePoint } = {}) {\n /**\n * @internal\n */\n this.startEvent = null;\n /**\n * @internal\n */\n this.lastMoveEvent = null;\n /**\n * @internal\n */\n this.lastMoveEventInfo = null;\n /**\n * @internal\n */\n this.handlers = {};\n this.updatePoint = () => {\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const info = getPanInfo(this.lastMoveEventInfo, this.history);\n const isPanStarted = this.startEvent !== null;\n // Only start panning if the offset is larger than 3 pixels. If we make it\n // any larger than this we'll want to reset the pointer history\n // on the first update to avoid visual snapping to the cursoe.\n const isDistancePastThreshold = distance(info.offset, { x: 0, y: 0 }) >= 3;\n if (!isPanStarted && !isDistancePastThreshold)\n return;\n const { point } = info;\n const { timestamp } = getFrameData();\n this.history.push({ ...point, timestamp });\n const { onStart, onMove } = this.handlers;\n if (!isPanStarted) {\n onStart && onStart(this.lastMoveEvent, info);\n this.startEvent = this.lastMoveEvent;\n }\n onMove && onMove(this.lastMoveEvent, info);\n };\n this.handlePointerMove = (event, info) => {\n this.lastMoveEvent = event;\n this.lastMoveEventInfo = transformPoint(info, this.transformPagePoint);\n // Because Safari doesn't trigger mouseup events when it's above a ``\n if (isMouseEvent(event) && event.buttons === 0) {\n _this.handlePointerUp(event, info);\n return;\n }\n // Throttle mouse move event to once per frame\n sync__default[\"default\"].update(_this.updatePoint, true);\n };\n this.handlePointerUp = function (event, info) {\n _this.end();\n var _a = _this.handlers, onEnd = _a.onEnd, onSessionEnd = _a.onSessionEnd;\n var panInfo = getPanInfo(transformPoint(info, _this.transformPagePoint), _this.history);\n if (_this.startEvent && onEnd) {\n onEnd(event, panInfo);\n }\n onSessionEnd && onSessionEnd(event, panInfo);\n };\n // If we have more than one touch, don't start detecting this gesture\n if (isTouchEvent(event) && event.touches.length > 1)\n return;\n this.handlers = handlers;\n this.transformPagePoint = transformPagePoint;\n var info = extractEventInfo(event);\n var initialInfo = transformPoint(info, this.transformPagePoint);\n var point = initialInfo.point;\n var timestamp = sync.getFrameData().timestamp;\n this.history = [tslib.__assign(tslib.__assign({}, point), { timestamp: timestamp })];\n var onSessionStart = handlers.onSessionStart;\n onSessionStart &&\n onSessionStart(event, getPanInfo(initialInfo, this.history));\n this.removeListeners = popmotion.pipe(addPointerEvent(window, \"pointermove\", this.handlePointerMove), addPointerEvent(window, \"pointerup\", this.handlePointerUp), addPointerEvent(window, \"pointercancel\", this.handlePointerUp));\n }\n PanSession.prototype.updateHandlers = function (handlers) {\n this.handlers = handlers;\n };\n PanSession.prototype.end = function () {\n this.removeListeners && this.removeListeners();\n sync.cancelSync.update(this.updatePoint);\n };\n return PanSession;\n}());\nfunction transformPoint(info, transformPagePoint) {\n return transformPagePoint ? { point: transformPagePoint(info.point) } : info;\n}\nfunction subtractPoint(a, b) {\n return { x: a.x - b.x, y: a.y - b.y };\n}\nfunction getPanInfo(_a, history) {\n var point = _a.point;\n return {\n point: point,\n delta: subtractPoint(point, lastDevicePoint(history)),\n offset: subtractPoint(point, startDevicePoint(history)),\n velocity: getVelocity(history, 0.1),\n };\n}\nfunction startDevicePoint(history) {\n return history[0];\n}\nfunction lastDevicePoint(history) {\n return history[history.length - 1];\n}\nfunction getVelocity(history, timeDelta) {\n if (history.length < 2) {\n return { x: 0, y: 0 };\n }\n var i = history.length - 1;\n var timestampedPoint = null;\n var lastPoint = lastDevicePoint(history);\n while (i >= 0) {\n timestampedPoint = history[i];\n if (lastPoint.timestamp - timestampedPoint.timestamp >\n secondsToMilliseconds(timeDelta)) {\n break;\n }\n i--;\n }\n if (!timestampedPoint) {\n return { x: 0, y: 0 };\n }\n var time = (lastPoint.timestamp - timestampedPoint.timestamp) / 1000;\n if (time === 0) {\n return { x: 0, y: 0 };\n }\n var currentVelocity = {\n x: (lastPoint.x - timestampedPoint.x) / time,\n y: (lastPoint.y - timestampedPoint.y) / time,\n };\n if (currentVelocity.x === Infinity) {\n currentVelocity.x = 0;\n }\n if (currentVelocity.y === Infinity) {\n currentVelocity.y = 0;\n }\n return currentVelocity;\n}\n\nfunction calcLength(axis) {\n return axis.max - axis.min;\n}\nfunction isNear(value, target, maxDistance) {\n if (target === void 0) { target = 0; }\n if (maxDistance === void 0) { maxDistance = 0.01; }\n return popmotion.distance(value, target) < maxDistance;\n}\nfunction calcAxisDelta(delta, source, target, origin) {\n if (origin === void 0) { origin = 0.5; }\n delta.origin = origin;\n delta.originPoint = popmotion.mix(source.min, source.max, delta.origin);\n delta.scale = calcLength(target) / calcLength(source);\n if (isNear(delta.scale, 1, 0.0001) || isNaN(delta.scale))\n delta.scale = 1;\n delta.translate =\n popmotion.mix(target.min, target.max, delta.origin) - delta.originPoint;\n if (isNear(delta.translate) || isNaN(delta.translate))\n delta.translate = 0;\n}\nfunction calcBoxDelta(delta, source, target, origin) {\n calcAxisDelta(delta.x, source.x, target.x, origin === null || origin === void 0 ? void 0 : origin.originX);\n calcAxisDelta(delta.y, source.y, target.y, origin === null || origin === void 0 ? void 0 : origin.originY);\n}\nfunction calcRelativeAxis(target, relative, parent) {\n target.min = parent.min + relative.min;\n target.max = target.min + calcLength(relative);\n}\nfunction calcRelativeBox(target, relative, parent) {\n calcRelativeAxis(target.x, relative.x, parent.x);\n calcRelativeAxis(target.y, relative.y, parent.y);\n}\nfunction calcRelativeAxisPosition(target, layout, parent) {\n target.min = layout.min - parent.min;\n target.max = target.min + calcLength(layout);\n}\nfunction calcRelativePosition(target, layout, parent) {\n calcRelativeAxisPosition(target.x, layout.x, parent.x);\n calcRelativeAxisPosition(target.y, layout.y, parent.y);\n}\n\n/**\n * Apply constraints to a point. These constraints are both physical along an\n * axis, and an elastic factor that determines how much to constrain the point\n * by if it does lie outside the defined parameters.\n */\nfunction applyConstraints(point, _a, elastic) {\n var min = _a.min, max = _a.max;\n if (min !== undefined && point < min) {\n // If we have a min point defined, and this is outside of that, constrain\n point = elastic ? popmotion.mix(min, point, elastic.min) : Math.max(point, min);\n }\n else if (max !== undefined && point > max) {\n // If we have a max point defined, and this is outside of that, constrain\n point = elastic ? popmotion.mix(max, point, elastic.max) : Math.min(point, max);\n }\n return point;\n}\n/**\n * Calculate constraints in terms of the viewport when defined relatively to the\n * measured axis. This is measured from the nearest edge, so a max constraint of 200\n * on an axis with a max value of 300 would return a constraint of 500 - axis length\n */\nfunction calcRelativeAxisConstraints(axis, min, max) {\n return {\n min: min !== undefined ? axis.min + min : undefined,\n max: max !== undefined\n ? axis.max + max - (axis.max - axis.min)\n : undefined,\n };\n}\n/**\n * Calculate constraints in terms of the viewport when\n * defined relatively to the measured bounding box.\n */\nfunction calcRelativeConstraints(layoutBox, _a) {\n var top = _a.top, left = _a.left, bottom = _a.bottom, right = _a.right;\n return {\n x: calcRelativeAxisConstraints(layoutBox.x, left, right),\n y: calcRelativeAxisConstraints(layoutBox.y, top, bottom),\n };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative axis\n */\nfunction calcViewportAxisConstraints(layoutAxis, constraintsAxis) {\n var _a;\n var min = constraintsAxis.min - layoutAxis.min;\n var max = constraintsAxis.max - layoutAxis.max;\n // If the constraints axis is actually smaller than the layout axis then we can\n // flip the constraints\n if (constraintsAxis.max - constraintsAxis.min <\n layoutAxis.max - layoutAxis.min) {\n _a = tslib.__read([max, min], 2), min = _a[0], max = _a[1];\n }\n return { min: min, max: max };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative box\n */\nfunction calcViewportConstraints(layoutBox, constraintsBox) {\n return {\n x: calcViewportAxisConstraints(layoutBox.x, constraintsBox.x),\n y: calcViewportAxisConstraints(layoutBox.y, constraintsBox.y),\n };\n}\n/**\n * Calculate a transform origin relative to the source axis, between 0-1, that results\n * in an asthetically pleasing scale/transform needed to project from source to target.\n */\nfunction calcOrigin(source, target) {\n var origin = 0.5;\n var sourceLength = calcLength(source);\n var targetLength = calcLength(target);\n if (targetLength > sourceLength) {\n origin = popmotion.progress(target.min, target.max - sourceLength, source.min);\n }\n else if (sourceLength > targetLength) {\n origin = popmotion.progress(source.min, source.max - targetLength, target.min);\n }\n return popmotion.clamp(0, 1, origin);\n}\n/**\n * Rebase the calculated viewport constraints relative to the layout.min point.\n */\nfunction rebaseAxisConstraints(layout, constraints) {\n var relativeConstraints = {};\n if (constraints.min !== undefined) {\n relativeConstraints.min = constraints.min - layout.min;\n }\n if (constraints.max !== undefined) {\n relativeConstraints.max = constraints.max - layout.min;\n }\n return relativeConstraints;\n}\nvar defaultElastic = 0.35;\n/**\n * Accepts a dragElastic prop and returns resolved elastic values for each axis.\n */\nfunction resolveDragElastic(dragElastic) {\n if (dragElastic === void 0) { dragElastic = defaultElastic; }\n if (dragElastic === false) {\n dragElastic = 0;\n }\n else if (dragElastic === true) {\n dragElastic = defaultElastic;\n }\n return {\n x: resolveAxisElastic(dragElastic, \"left\", \"right\"),\n y: resolveAxisElastic(dragElastic, \"top\", \"bottom\"),\n };\n}\nfunction resolveAxisElastic(dragElastic, minLabel, maxLabel) {\n return {\n min: resolvePointElastic(dragElastic, minLabel),\n max: resolvePointElastic(dragElastic, maxLabel),\n };\n}\nfunction resolvePointElastic(dragElastic, label) {\n var _a;\n return typeof dragElastic === \"number\"\n ? dragElastic\n : (_a = dragElastic[label]) !== null && _a !== void 0 ? _a : 0;\n}\n\nvar createAxisDelta = function () { return ({\n translate: 0,\n scale: 1,\n origin: 0,\n originPoint: 0,\n}); };\nvar createDelta = function () { return ({\n x: createAxisDelta(),\n y: createAxisDelta(),\n}); };\nvar createAxis = function () { return ({ min: 0, max: 0 }); };\nvar createBox = function () { return ({\n x: createAxis(),\n y: createAxis(),\n}); };\n\nfunction eachAxis(callback) {\n return [callback(\"x\"), callback(\"y\")];\n}\n\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(_a) {\n var top = _a.top, left = _a.left, right = _a.right, bottom = _a.bottom;\n return {\n x: { min: left, max: right },\n y: { min: top, max: bottom },\n };\n}\nfunction convertBoxToBoundingBox(_a) {\n var x = _a.x, y = _a.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 var topLeft = transformPoint({ x: point.left, y: point.top });\n var 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\nfunction isIdentityScale(scale) {\n return scale === undefined || scale === 1;\n}\nfunction hasScale(_a) {\n var scale = _a.scale, scaleX = _a.scaleX, scaleY = _a.scaleY;\n return (!isIdentityScale(scale) ||\n !isIdentityScale(scaleX) ||\n !isIdentityScale(scaleY));\n}\nfunction hasTransform(values) {\n return (hasScale(values) ||\n hasTranslate(values.x) ||\n hasTranslate(values.y) ||\n values.z ||\n values.rotate ||\n values.rotateX ||\n values.rotateY);\n}\nfunction hasTranslate(value) {\n return value && value !== \"0%\";\n}\n\n/**\n * Scales a point based on a factor and an originPoint\n */\nfunction scalePoint(point, scale, originPoint) {\n var distanceFromOrigin = point - originPoint;\n var 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, scale, originPoint, boxScale) {\n if (translate === void 0) { translate = 0; }\n if (scale === void 0) { scale = 1; }\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, _a) {\n var x = _a.x, y = _a.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) {\n var _a, _b;\n if (isSharedTransition === void 0) { isSharedTransition = false; }\n var treeLength = treePath.length;\n if (!treeLength)\n return;\n // Reset the treeScale\n treeScale.x = treeScale.y = 1;\n var node;\n var delta;\n for (var i = 0; i < treeLength; i++) {\n node = treePath[i];\n delta = node.projectionDelta;\n if (((_b = (_a = node.instance) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.display) === \"contents\")\n continue;\n if (isSharedTransition &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(box, { x: -node.scroll.x, y: -node.scroll.y });\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}\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, _a) {\n var _b = tslib.__read(_a, 3), key = _b[0], scaleKey = _b[1], originKey = _b[2];\n var axisOrigin = transforms[originKey] !== undefined ? transforms[originKey] : 0.5;\n var originPoint = popmotion.mix(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 */\nvar xKeys$1 = [\"x\", \"scaleX\", \"originX\"];\nvar yKeys$1 = [\"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$1);\n transformAxis(box.y, transform, yKeys$1);\n}\n\nfunction measureViewportBox(instance, transformPoint) {\n return convertBoundingBoxToBox(transformBoxPoints(instance.getBoundingClientRect(), transformPoint));\n}\nfunction measurePageBox(element, rootProjectionNode, transformPagePoint) {\n var viewportBox = measureViewportBox(element, transformPagePoint);\n var scroll = rootProjectionNode.scroll;\n if (scroll) {\n translateAxis(viewportBox.x, scroll.x);\n translateAxis(viewportBox.y, scroll.y);\n }\n return viewportBox;\n}\n\nvar elementDragControls = new WeakMap();\n/**\n *\n */\n// let latestPointerEvent: AnyPointerEvent\nvar VisualElementDragControls = /** @class */ (function () {\n function VisualElementDragControls(visualElement) {\n // This is a reference to the global drag gesture lock, ensuring only one component\n // can \"capture\" the drag of one or both axes.\n // TODO: Look into moving this into pansession?\n this.openGlobalLock = null;\n this.isDragging = false;\n this.currentDirection = null;\n this.originPoint = { x: 0, y: 0 };\n /**\n * The permitted boundaries of travel, in pixels.\n */\n this.constraints = false;\n this.hasMutatedConstraints = false;\n /**\n * The per-axis resolved elastic values.\n */\n this.elastic = createBox();\n this.visualElement = visualElement;\n }\n VisualElementDragControls.prototype.start = function (originEvent, _a) {\n var _this = this;\n var _b = _a === void 0 ? {} : _a, _c = _b.snapToCursor, snapToCursor = _c === void 0 ? false : _c;\n /**\n * Don't start dragging if this component is exiting\n */\n if (this.visualElement.isPresent === false)\n return;\n var onSessionStart = function (event) {\n // Stop any animations on both axis values immediately. This allows the user to throw and catch\n // the component.\n _this.stopAnimation();\n if (snapToCursor) {\n _this.snapToCursor(extractEventInfo(event, \"page\").point);\n }\n };\n var onStart = function (event, info) {\n var _a;\n // Attempt to grab the global drag gesture lock - maybe make this part of PanSession\n var _b = _this.getProps(), drag = _b.drag, dragPropagation = _b.dragPropagation, onDragStart = _b.onDragStart;\n if (drag && !dragPropagation) {\n if (_this.openGlobalLock)\n _this.openGlobalLock();\n _this.openGlobalLock = getGlobalLock(drag);\n // If we don 't have the lock, don't start dragging\n if (!_this.openGlobalLock)\n return;\n }\n _this.isDragging = true;\n _this.currentDirection = null;\n _this.resolveConstraints();\n if (_this.visualElement.projection) {\n _this.visualElement.projection.isAnimationBlocked = true;\n _this.visualElement.projection.target = undefined;\n }\n /**\n * Record gesture origin\n */\n eachAxis(function (axis) {\n var _a, _b;\n var current = _this.getAxisMotionValue(axis).get() || 0;\n /**\n * If the MotionValue is a percentage value convert to px\n */\n if (styleValueTypes.percent.test(current)) {\n var measuredAxis = (_b = (_a = _this.visualElement.projection) === null || _a === void 0 ? void 0 : _a.layout) === null || _b === void 0 ? void 0 : _b.actual[axis];\n if (measuredAxis) {\n var length_1 = calcLength(measuredAxis);\n current = length_1 * (parseFloat(current) / 100);\n }\n }\n _this.originPoint[axis] = current;\n });\n // Fire onDragStart event\n onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(event, info);\n (_a = _this.visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(exports.AnimationType.Drag, true);\n };\n var onMove = function (event, info) {\n // latestPointerEvent = event\n var _a = _this.getProps(), dragPropagation = _a.dragPropagation, dragDirectionLock = _a.dragDirectionLock, onDirectionLock = _a.onDirectionLock, onDrag = _a.onDrag;\n // If we didn't successfully receive the gesture lock, early return.\n if (!dragPropagation && !_this.openGlobalLock)\n return;\n var offset = info.offset;\n // Attempt to detect drag direction if directionLock is true\n if (dragDirectionLock && _this.currentDirection === null) {\n _this.currentDirection = getCurrentDirection(offset);\n // If we've successfully set a direction, notify listener\n if (_this.currentDirection !== null) {\n onDirectionLock === null || onDirectionLock === void 0 ? void 0 : onDirectionLock(_this.currentDirection);\n }\n return;\n }\n // Update each point with the latest position\n _this.updateAxis(\"x\", info.point, offset);\n _this.updateAxis(\"y\", info.point, offset);\n /**\n * Ideally we would leave the renderer to fire naturally at the end of\n * this frame but if the element is about to change layout as the result\n * of a re-render we want to ensure the browser can read the latest\n * bounding box to ensure the pointer and element don't fall out of sync.\n */\n _this.visualElement.syncRender();\n /**\n * This must fire after the syncRender call as it might trigger a state\n * change which itself might trigger a layout update.\n */\n onDrag === null || onDrag === void 0 ? void 0 : onDrag(event, info);\n };\n var onSessionEnd = function (event, info) {\n return _this.stop(event, info);\n };\n this.panSession = new PanSession(originEvent, {\n onSessionStart: onSessionStart,\n onStart: onStart,\n onMove: onMove,\n onSessionEnd: onSessionEnd,\n }, { transformPagePoint: this.visualElement.getTransformPagePoint() });\n };\n VisualElementDragControls.prototype.stop = function (event, info) {\n var isDragging = this.isDragging;\n this.cancel();\n if (!isDragging)\n return;\n var velocity = info.velocity;\n this.startAnimation(velocity);\n var onDragEnd = this.getProps().onDragEnd;\n onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(event, info);\n };\n VisualElementDragControls.prototype.cancel = function () {\n var _a, _b;\n this.isDragging = false;\n if (this.visualElement.projection) {\n this.visualElement.projection.isAnimationBlocked = false;\n }\n (_a = this.panSession) === null || _a === void 0 ? void 0 : _a.end();\n this.panSession = undefined;\n var dragPropagation = this.getProps().dragPropagation;\n if (!dragPropagation && this.openGlobalLock) {\n this.openGlobalLock();\n this.openGlobalLock = null;\n }\n (_b = this.visualElement.animationState) === null || _b === void 0 ? void 0 : _b.setActive(exports.AnimationType.Drag, false);\n };\n VisualElementDragControls.prototype.updateAxis = function (axis, _point, offset) {\n var drag = this.getProps().drag;\n // If we're not dragging this axis, do an early return.\n if (!offset || !shouldDrag(axis, drag, this.currentDirection))\n return;\n var axisValue = this.getAxisMotionValue(axis);\n var next = this.originPoint[axis] + offset[axis];\n // Apply constraints\n if (this.constraints && this.constraints[axis]) {\n next = applyConstraints(next, this.constraints[axis], this.elastic[axis]);\n }\n axisValue.set(next);\n };\n VisualElementDragControls.prototype.resolveConstraints = function () {\n var _this = this;\n var _a = this.getProps(), dragConstraints = _a.dragConstraints, dragElastic = _a.dragElastic;\n var layout = (this.visualElement.projection || {}).layout;\n var prevConstraints = this.constraints;\n if (dragConstraints && isRefObject(dragConstraints)) {\n if (!this.constraints) {\n this.constraints = this.resolveRefConstraints();\n }\n }\n else {\n if (dragConstraints && layout) {\n this.constraints = calcRelativeConstraints(layout.actual, dragConstraints);\n }\n else {\n this.constraints = false;\n }\n }\n this.elastic = resolveDragElastic(dragElastic);\n /**\n * If we're outputting to external MotionValues, we want to rebase the measured constraints\n * from viewport-relative to component-relative.\n */\n if (prevConstraints !== this.constraints &&\n layout &&\n this.constraints &&\n !this.hasMutatedConstraints) {\n eachAxis(function (axis) {\n if (_this.getAxisMotionValue(axis)) {\n _this.constraints[axis] = rebaseAxisConstraints(layout.actual[axis], _this.constraints[axis]);\n }\n });\n }\n };\n VisualElementDragControls.prototype.resolveRefConstraints = function () {\n var _a = this.getProps(), constraints = _a.dragConstraints, onMeasureDragConstraints = _a.onMeasureDragConstraints;\n if (!constraints || !isRefObject(constraints))\n return false;\n var constraintsElement = constraints.current;\n heyListen.invariant(constraintsElement !== null, \"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.\");\n var projection = this.visualElement.projection;\n // TODO\n if (!projection || !projection.layout)\n return false;\n var constraintsBox = measurePageBox(constraintsElement, projection.root, this.visualElement.getTransformPagePoint());\n var measuredConstraints = calcViewportConstraints(projection.layout.actual, constraintsBox);\n /**\n * If there's an onMeasureDragConstraints listener we call it and\n * if different constraints are returned, set constraints to that\n */\n if (onMeasureDragConstraints) {\n var userConstraints = onMeasureDragConstraints(convertBoxToBoundingBox(measuredConstraints));\n this.hasMutatedConstraints = !!userConstraints;\n if (userConstraints) {\n measuredConstraints = convertBoundingBoxToBox(userConstraints);\n }\n }\n return measuredConstraints;\n };\n VisualElementDragControls.prototype.startAnimation = function (velocity) {\n var _this = this;\n var _a = this.getProps(), drag = _a.drag, dragMomentum = _a.dragMomentum, dragElastic = _a.dragElastic, dragTransition = _a.dragTransition, dragSnapToOrigin = _a.dragSnapToOrigin, onDragTransitionEnd = _a.onDragTransitionEnd;\n var constraints = this.constraints || {};\n var momentumAnimations = eachAxis(function (axis) {\n var _a;\n if (!shouldDrag(axis, drag, _this.currentDirection)) {\n return;\n }\n var transition = (_a = constraints === null || constraints === void 0 ? void 0 : constraints[axis]) !== null && _a !== void 0 ? _a : {};\n if (dragSnapToOrigin)\n transition = { min: 0, max: 0 };\n /**\n * Overdamp the boundary spring if `dragElastic` is disabled. There's still a frame\n * of spring animations so we should look into adding a disable spring option to `inertia`.\n * We could do something here where we affect the `bounceStiffness` and `bounceDamping`\n * using the value of `dragElastic`.\n */\n var bounceStiffness = dragElastic ? 200 : 1000000;\n var bounceDamping = dragElastic ? 40 : 10000000;\n var inertia = tslib.__assign(tslib.__assign({ type: \"inertia\", velocity: dragMomentum ? velocity[axis] : 0, bounceStiffness: bounceStiffness, bounceDamping: bounceDamping, timeConstant: 750, restDelta: 1, restSpeed: 10 }, dragTransition), transition);\n // If we're not animating on an externally-provided `MotionValue` we can use the\n // component's animation controls which will handle interactions with whileHover (etc),\n // otherwise we just have to animate the `MotionValue` itself.\n return _this.startAxisValueAnimation(axis, inertia);\n });\n // Run all animations and then resolve the new drag constraints.\n return Promise.all(momentumAnimations).then(onDragTransitionEnd);\n };\n VisualElementDragControls.prototype.startAxisValueAnimation = function (axis, transition) {\n var axisValue = this.getAxisMotionValue(axis);\n return startAnimation(axis, axisValue, 0, transition);\n };\n VisualElementDragControls.prototype.stopAnimation = function () {\n var _this = this;\n eachAxis(function (axis) { return _this.getAxisMotionValue(axis).stop(); });\n };\n /**\n * Drag works differently depending on which props are provided.\n *\n * - If _dragX and _dragY are provided, we output the gesture delta directly to those motion values.\n * - Otherwise, we apply the delta to the x/y motion values.\n */\n VisualElementDragControls.prototype.getAxisMotionValue = function (axis) {\n var _a, _b;\n var dragKey = \"_drag\" + axis.toUpperCase();\n var externalMotionValue = this.visualElement.getProps()[dragKey];\n return externalMotionValue\n ? externalMotionValue\n : this.visualElement.getValue(axis, (_b = (_a = this.visualElement.getProps().initial) === null || _a === void 0 ? void 0 : _a[axis]) !== null && _b !== void 0 ? _b : 0);\n };\n VisualElementDragControls.prototype.snapToCursor = function (point) {\n var _this = this;\n eachAxis(function (axis) {\n var drag = _this.getProps().drag;\n // If we're not dragging this axis, do an early return.\n if (!shouldDrag(axis, drag, _this.currentDirection))\n return;\n var projection = _this.visualElement.projection;\n var axisValue = _this.getAxisMotionValue(axis);\n if (projection && projection.layout) {\n var _a = projection.layout.actual[axis], min = _a.min, max = _a.max;\n axisValue.set(point[axis] - popmotion.mix(min, max, 0.5));\n }\n });\n };\n /**\n * When the viewport resizes we want to check if the measured constraints\n * have changed and, if so, reposition the element within those new constraints\n * relative to where it was before the resize.\n */\n VisualElementDragControls.prototype.scalePositionWithinConstraints = function () {\n var _this = this;\n var _a;\n var _b = this.getProps(), drag = _b.drag, dragConstraints = _b.dragConstraints;\n var projection = this.visualElement.projection;\n if (!isRefObject(dragConstraints) || !projection || !this.constraints)\n return;\n /**\n * Stop current animations as there can be visual glitching if we try to do\n * this mid-animation\n */\n this.stopAnimation();\n /**\n * Record the relative position of the dragged element relative to the\n * constraints box and save as a progress value.\n */\n var boxProgress = { x: 0, y: 0 };\n eachAxis(function (axis) {\n var axisValue = _this.getAxisMotionValue(axis);\n if (axisValue) {\n var latest = axisValue.get();\n boxProgress[axis] = calcOrigin({ min: latest, max: latest }, _this.constraints[axis]);\n }\n });\n /**\n * Update the layout of this element and resolve the latest drag constraints\n */\n var transformTemplate = this.visualElement.getProps().transformTemplate;\n this.visualElement.getInstance().style.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n (_a = projection.root) === null || _a === void 0 ? void 0 : _a.updateScroll();\n projection.updateLayout();\n this.resolveConstraints();\n /**\n * For each axis, calculate the current progress of the layout axis\n * within the new constraints.\n */\n eachAxis(function (axis) {\n if (!shouldDrag(axis, drag, null))\n return;\n /**\n * Calculate a new transform based on the previous box progress\n */\n var axisValue = _this.getAxisMotionValue(axis);\n var _a = _this.constraints[axis], min = _a.min, max = _a.max;\n axisValue.set(popmotion.mix(min, max, boxProgress[axis]));\n });\n };\n VisualElementDragControls.prototype.addListeners = function () {\n var _this = this;\n var _a;\n elementDragControls.set(this.visualElement, this);\n var element = this.visualElement.getInstance();\n /**\n * Attach a pointerdown event listener on this DOM element to initiate drag tracking.\n */\n var stopPointerListener = addPointerEvent(element, \"pointerdown\", function (event) {\n var _a = _this.getProps(), drag = _a.drag, _b = _a.dragListener, dragListener = _b === void 0 ? true : _b;\n drag && dragListener && _this.start(event);\n });\n var measureDragConstraints = function () {\n var dragConstraints = _this.getProps().dragConstraints;\n if (isRefObject(dragConstraints)) {\n _this.constraints = _this.resolveRefConstraints();\n }\n };\n var projection = this.visualElement.projection;\n var stopMeasureLayoutListener = projection.addEventListener(\"measure\", measureDragConstraints);\n if (projection && !projection.layout) {\n (_a = projection.root) === null || _a === void 0 ? void 0 : _a.updateScroll();\n projection.updateLayout();\n }\n measureDragConstraints();\n /**\n * Attach a window resize listener to scale the draggable target within its defined\n * constraints as the window resizes.\n */\n var stopResizeListener = addDomEvent(window, \"resize\", function () {\n return _this.scalePositionWithinConstraints();\n });\n /**\n * If the element's layout changes, calculate the delta and apply that to\n * the drag gesture's origin point.\n */\n projection.addEventListener(\"didUpdate\", (function (_a) {\n var delta = _a.delta, hasLayoutChanged = _a.hasLayoutChanged;\n if (_this.isDragging && hasLayoutChanged) {\n eachAxis(function (axis) {\n var motionValue = _this.getAxisMotionValue(axis);\n if (!motionValue)\n return;\n _this.originPoint[axis] += delta[axis].translate;\n motionValue.set(motionValue.get() + delta[axis].translate);\n });\n _this.visualElement.syncRender();\n }\n }));\n return function () {\n stopResizeListener();\n stopPointerListener();\n stopMeasureLayoutListener();\n };\n };\n VisualElementDragControls.prototype.getProps = function () {\n var props = this.visualElement.getProps();\n var _a = props.drag, drag = _a === void 0 ? false : _a, _b = props.dragDirectionLock, dragDirectionLock = _b === void 0 ? false : _b, _c = props.dragPropagation, dragPropagation = _c === void 0 ? false : _c, _d = props.dragConstraints, dragConstraints = _d === void 0 ? false : _d, _e = props.dragElastic, dragElastic = _e === void 0 ? defaultElastic : _e, _f = props.dragMomentum, dragMomentum = _f === void 0 ? true : _f;\n return tslib.__assign(tslib.__assign({}, props), { drag: drag, dragDirectionLock: dragDirectionLock, dragPropagation: dragPropagation, dragConstraints: dragConstraints, dragElastic: dragElastic, dragMomentum: dragMomentum });\n };\n return VisualElementDragControls;\n}());\nfunction shouldDrag(direction, drag, currentDirection) {\n return ((drag === true || drag === direction) &&\n (currentDirection === null || currentDirection === direction));\n}\n/**\n * Based on an x/y offset determine the current drag direction. If both axis' offsets are lower\n * than the provided threshold, return `null`.\n *\n * @param offset - The x/y offset from origin.\n * @param lockThreshold - (Optional) - the minimum absolute offset before we can determine a drag direction.\n */\nfunction getCurrentDirection(offset, lockThreshold) {\n if (lockThreshold === void 0) { lockThreshold = 10; }\n var direction = null;\n if (Math.abs(offset.y) > lockThreshold) {\n direction = \"y\";\n }\n else if (Math.abs(offset.x) > lockThreshold) {\n direction = \"x\";\n }\n return direction;\n}\n\n/**\n * A hook that allows an element to be dragged.\n *\n * @internal\n */\nfunction useDrag(props) {\n var groupDragControls = props.dragControls, visualElement = props.visualElement;\n var dragControls = useConstant(function () { return new VisualElementDragControls(visualElement); });\n // If we've been provided a DragControls for manual control over the drag gesture,\n // subscribe this component to it on mount.\n React.useEffect(function () { return groupDragControls && groupDragControls.subscribe(dragControls); }, [dragControls, groupDragControls]);\n // Apply the event listeners to the element\n React.useEffect(function () { return dragControls.addListeners(); }, [dragControls]);\n}\n\n/**\n *\n * @param handlers -\n * @param ref -\n *\n * @privateRemarks\n * Currently this sets new pan gesture functions every render. The memo route has been explored\n * in the past but ultimately we're still creating new functions every render. An optimisation\n * to explore is creating the pan gestures and loading them into a `ref`.\n *\n * @internal\n */\nfunction usePanGesture(_a) {\n var onPan = _a.onPan, onPanStart = _a.onPanStart, onPanEnd = _a.onPanEnd, onPanSessionStart = _a.onPanSessionStart, visualElement = _a.visualElement;\n var hasPanEvents = onPan || onPanStart || onPanEnd || onPanSessionStart;\n var panSession = React.useRef(null);\n var transformPagePoint = React.useContext(MotionConfigContext).transformPagePoint;\n var handlers = {\n onSessionStart: onPanSessionStart,\n onStart: onPanStart,\n onMove: onPan,\n onEnd: function (event, info) {\n panSession.current = null;\n onPanEnd && onPanEnd(event, info);\n },\n };\n React.useEffect(function () {\n if (panSession.current !== null) {\n panSession.current.updateHandlers(handlers);\n }\n });\n function onPointerDown(event) {\n panSession.current = new PanSession(event, handlers, {\n transformPagePoint: transformPagePoint,\n });\n }\n usePointerEvent(visualElement, \"pointerdown\", hasPanEvents && onPointerDown);\n useUnmountEffect(function () { return panSession.current && panSession.current.end(); });\n}\n\nvar drag = {\n pan: makeRenderlessComponent(usePanGesture),\n drag: makeRenderlessComponent(useDrag),\n};\n\nvar names = [\n \"LayoutMeasure\",\n \"BeforeLayoutMeasure\",\n \"LayoutUpdate\",\n \"ViewportBoxUpdate\",\n \"Update\",\n \"Render\",\n \"AnimationComplete\",\n \"LayoutAnimationComplete\",\n \"AnimationStart\",\n \"LayoutAnimationStart\",\n \"SetAxisTarget\",\n \"Unmount\",\n];\nfunction createLifecycles() {\n var managers = names.map(function () { return new SubscriptionManager(); });\n var propSubscriptions = {};\n var lifecycles = {\n clearAllListeners: function () { return managers.forEach(function (manager) { return manager.clear(); }); },\n updatePropListeners: function (props) {\n names.forEach(function (name) {\n var _a;\n var on = \"on\" + name;\n var propListener = props[on];\n // Unsubscribe existing subscription\n (_a = propSubscriptions[name]) === null || _a === void 0 ? void 0 : _a.call(propSubscriptions);\n // Add new subscription\n if (propListener) {\n propSubscriptions[name] = lifecycles[on](propListener);\n }\n });\n },\n };\n managers.forEach(function (manager, i) {\n lifecycles[\"on\" + names[i]] = function (handler) { return manager.add(handler); };\n lifecycles[\"notify\" + names[i]] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return manager.notify.apply(manager, tslib.__spreadArray([], tslib.__read(args), false));\n };\n });\n return lifecycles;\n}\n\nfunction updateMotionValuesFromProps(element, next, prev) {\n var _a;\n for (var key in next) {\n var nextValue = next[key];\n var 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 /**\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 === \"6.5.1\", \"Attempting to mix Framer Motion versions \".concat(nextValue.version, \" with 6.5.1 may not work as expected.\"));\n }\n }\n else if (isMotionValue(prevValue)) {\n /**\n * If we're swapping to a new motion value, create a new motion value\n * from that\n */\n element.addValue(key, motionValue(nextValue));\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 var existingValue = element.getValue(key);\n // TODO: Only update values that aren't being animated or even looked at\n !existingValue.hasAnimated && existingValue.set(nextValue);\n }\n else {\n element.addValue(key, motionValue((_a = element.getStaticValue(key)) !== null && _a !== void 0 ? _a : nextValue));\n }\n }\n }\n // Handle removed values\n for (var key in prev) {\n if (next[key] === undefined)\n element.removeValue(key);\n }\n return next;\n}\n\nvar visualElement = function (_a) {\n var _b = _a.treeType, treeType = _b === void 0 ? \"\" : _b, build = _a.build, getBaseTarget = _a.getBaseTarget, makeTargetAnimatable = _a.makeTargetAnimatable, measureViewportBox = _a.measureViewportBox, renderInstance = _a.render, readValueFromInstance = _a.readValueFromInstance, removeValueFromRenderState = _a.removeValueFromRenderState, sortNodePosition = _a.sortNodePosition, scrapeMotionValuesFromProps = _a.scrapeMotionValuesFromProps;\n return function (_a, options) {\n var parent = _a.parent, props = _a.props, presenceId = _a.presenceId, blockInitialAnimation = _a.blockInitialAnimation, visualState = _a.visualState, shouldReduceMotion = _a.shouldReduceMotion;\n if (options === void 0) { options = {}; }\n var isMounted = false;\n var latestValues = visualState.latestValues, renderState = visualState.renderState;\n /**\n * The instance of the render-specific node that will be hydrated by the\n * exposed React ref. So for example, this visual element can host a\n * HTMLElement, plain object, or Three.js object. The functions provided\n * in VisualElementConfig allow us to interface with this instance.\n */\n var instance;\n /**\n * Manages the subscriptions for a visual element's lifecycle, for instance\n * onRender\n */\n var lifecycles = createLifecycles();\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 var values = new Map();\n /**\n * A map of every subscription that binds the provided or generated\n * motion values onChange listeners to this visual element.\n */\n var 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 var prevMotionValues = {};\n /**\n * When values are removed from all animation props we need to search\n * for a fallback value to animate to. These values are tracked in baseTarget.\n */\n var baseTarget = tslib.__assign({}, latestValues);\n // Internal methods ========================\n /**\n * On mount, this will be hydrated with a callback to disconnect\n * this visual element from its parent on unmount.\n */\n var removeFromVariantTree;\n /**\n * Render the element with the latest styles outside of the React\n * render lifecycle\n */\n function render() {\n if (!instance || !isMounted)\n return;\n triggerBuild();\n renderInstance(instance, renderState, props.style, element.projection);\n }\n function triggerBuild() {\n build(element, renderState, latestValues, options, props);\n }\n function update() {\n lifecycles.notifyUpdate(latestValues);\n }\n /**\n *\n */\n function bindToMotionValue(key, value) {\n var removeOnChange = value.onChange(function (latestValue) {\n latestValues[key] = latestValue;\n props.onUpdate && sync__default[\"default\"].update(update, false, true);\n });\n var removeOnRenderRequest = value.onRenderRequest(element.scheduleRender);\n valueSubscriptions.set(key, function () {\n removeOnChange();\n removeOnRenderRequest();\n });\n }\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 var initialMotionValues = scrapeMotionValuesFromProps(props);\n for (var key in initialMotionValues) {\n var value = initialMotionValues[key];\n if (latestValues[key] !== undefined && isMotionValue(value)) {\n value.set(latestValues[key], false);\n }\n }\n /**\n * Determine what role this visual element should take in the variant tree.\n */\n var isControllingVariants = checkIfControllingVariants(props);\n var isVariantNode = checkIfVariantNode(props);\n var element = tslib.__assign(tslib.__assign({ treeType: treeType, \n /**\n * This is a mirror of the internal instance prop, which keeps\n * VisualElement type-compatible with React's RefObject.\n */\n current: null, \n /**\n * The depth of this visual element within the visual element tree.\n */\n depth: parent ? parent.depth + 1 : 0, parent: parent, children: new Set(), \n /**\n *\n */\n presenceId: presenceId, shouldReduceMotion: shouldReduceMotion, \n /**\n * If this component is part of the variant tree, it should track\n * any children that are also part of the tree. This is essentially\n * a shadow tree to simplify logic around how to stagger over children.\n */\n variantChildren: isVariantNode ? new Set() : undefined, \n /**\n * Whether this instance is visible. This can be changed imperatively\n * by the projection tree, is analogous to CSS's visibility in that\n * hidden elements should take up layout, and needs enacting by the configured\n * render function.\n */\n isVisible: undefined, \n /**\n * Normally, if a component is controlled by a parent's variants, it can\n * rely on that ancestor to trigger animations further down the tree.\n * However, if a component is created after its parent is mounted, the parent\n * won't trigger that mount animation so the child needs to.\n *\n * TODO: This might be better replaced with a method isParentMounted\n */\n manuallyAnimateOnMount: Boolean(parent === null || parent === void 0 ? void 0 : parent.isMounted()), \n /**\n * This can be set by AnimatePresence to force components that mount\n * at the same time as it to mount as if they have initial={false} set.\n */\n blockInitialAnimation: blockInitialAnimation, \n /**\n * Determine whether this component has mounted yet. This is mostly used\n * by variant children to determine whether they need to trigger their\n * own animations on mount.\n */\n isMounted: function () { return Boolean(instance); }, mount: function (newInstance) {\n isMounted = true;\n instance = element.current = newInstance;\n if (element.projection) {\n element.projection.mount(newInstance);\n }\n if (isVariantNode && parent && !isControllingVariants) {\n removeFromVariantTree = parent === null || parent === void 0 ? void 0 : parent.addVariantChild(element);\n }\n values.forEach(function (value, key) { return bindToMotionValue(key, value); });\n parent === null || parent === void 0 ? void 0 : parent.children.add(element);\n element.setProps(props);\n }, \n /**\n *\n */\n unmount: function () {\n var _a;\n (_a = element.projection) === null || _a === void 0 ? void 0 : _a.unmount();\n sync.cancelSync.update(update);\n sync.cancelSync.render(render);\n valueSubscriptions.forEach(function (remove) { return remove(); });\n removeFromVariantTree === null || removeFromVariantTree === void 0 ? void 0 : removeFromVariantTree();\n parent === null || parent === void 0 ? void 0 : parent.children.delete(element);\n lifecycles.clearAllListeners();\n instance = undefined;\n isMounted = false;\n }, \n /**\n * Add a child visual element to our set of children.\n */\n addVariantChild: function (child) {\n var _a;\n var closestVariantNode = element.getClosestVariantNode();\n if (closestVariantNode) {\n (_a = closestVariantNode.variantChildren) === null || _a === void 0 ? void 0 : _a.add(child);\n return function () {\n return closestVariantNode.variantChildren.delete(child);\n };\n }\n }, sortNodePosition: function (other) {\n /**\n * If these nodes aren't even of the same type we can't compare their depth.\n */\n if (!sortNodePosition || treeType !== other.treeType)\n return 0;\n return sortNodePosition(element.getInstance(), other.getInstance());\n }, \n /**\n * Returns the closest variant node in the tree starting from\n * this visual element.\n */\n getClosestVariantNode: function () {\n return isVariantNode ? element : parent === null || parent === void 0 ? void 0 : parent.getClosestVariantNode();\n }, \n /**\n * Expose the latest layoutId prop.\n */\n getLayoutId: function () { return props.layoutId; }, \n /**\n * Returns the current instance.\n */\n getInstance: function () { return instance; }, \n /**\n * Get/set the latest static values.\n */\n getStaticValue: function (key) { return latestValues[key]; }, setStaticValue: function (key, value) { return (latestValues[key] = value); }, \n /**\n * Returns the latest motion value state. Currently only used to take\n * a snapshot of the visual element - perhaps this can return the whole\n * visual state\n */\n getLatestValues: function () { return latestValues; }, \n /**\n * Set the visiblity of the visual element. If it's changed, schedule\n * a render to reflect these changes.\n */\n setVisibility: function (visibility) {\n if (element.isVisible === visibility)\n return;\n element.isVisible = visibility;\n element.scheduleRender();\n }, \n /**\n * Make a target animatable by Popmotion. For instance, if we're\n * trying to animate width from 100px to 100vw we need to measure 100vw\n * in pixels to determine what we really need to animate to. This is also\n * pluggable to support Framer's custom value types like Color,\n * and CSS variables.\n */\n makeTargetAnimatable: function (target, canMutate) {\n if (canMutate === void 0) { canMutate = true; }\n return makeTargetAnimatable(element, target, props, canMutate);\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: function () {\n return measureViewportBox(instance, props);\n }, \n // Motion values ========================\n /**\n * Add a motion value and bind it to this visual element.\n */\n addValue: function (key, value) {\n // Remove existing value if it exists\n if (element.hasValue(key))\n element.removeValue(key);\n values.set(key, value);\n latestValues[key] = value.get();\n bindToMotionValue(key, value);\n }, \n /**\n * Remove a motion value and unbind any active subscriptions.\n */\n removeValue: function (key) {\n var _a;\n values.delete(key);\n (_a = valueSubscriptions.get(key)) === null || _a === void 0 ? void 0 : _a();\n valueSubscriptions.delete(key);\n delete latestValues[key];\n removeValueFromRenderState(key, renderState);\n }, \n /**\n * Check whether we have a motion value for this key\n */\n hasValue: function (key) { return values.has(key); }, \n /**\n * Get a motion value for this key. If called with a default\n * value, we'll create one if none exists.\n */\n getValue: function (key, defaultValue) {\n var value = values.get(key);\n if (value === undefined && defaultValue !== undefined) {\n value = motionValue(defaultValue);\n element.addValue(key, value);\n }\n return value;\n }, \n /**\n * Iterate over our motion values.\n */\n forEachValue: function (callback) { return values.forEach(callback); }, \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: function (key) {\n var _a;\n return (_a = latestValues[key]) !== null && _a !== void 0 ? _a : readValueFromInstance(instance, key, options);\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: function (key, value) {\n baseTarget[key] = value;\n }, \n /**\n * Find the base target for a value thats been removed from all animation\n * props.\n */\n getBaseTarget: function (key) {\n if (getBaseTarget) {\n var target = getBaseTarget(props, key);\n if (target !== undefined && !isMotionValue(target))\n return target;\n }\n return baseTarget[key];\n } }, lifecycles), { \n /**\n * Build the renderer state based on the latest visual state.\n */\n build: function () {\n triggerBuild();\n return renderState;\n }, \n /**\n * Schedule a render on the next animation frame.\n */\n scheduleRender: function () {\n sync__default[\"default\"].render(render, false, true);\n }, \n /**\n * Synchronously fire render. It's prefered that we batch renders but\n * in many circumstances, like layout measurement, we need to run this\n * synchronously. However in those instances other measures should be taken\n * to batch reads/writes.\n */\n syncRender: render, \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 setProps: function (newProps) {\n if (newProps.transformTemplate || props.transformTemplate) {\n element.scheduleRender();\n }\n props = newProps;\n lifecycles.updatePropListeners(newProps);\n prevMotionValues = updateMotionValuesFromProps(element, scrapeMotionValuesFromProps(props), prevMotionValues);\n }, getProps: function () { return props; }, \n // Variants ==============================\n /**\n * Returns the variant definition with a given name.\n */\n getVariant: function (name) { var _a; return (_a = props.variants) === null || _a === void 0 ? void 0 : _a[name]; }, \n /**\n * Returns the defined default transition on this component.\n */\n getDefaultTransition: function () { return props.transition; }, getTransformPagePoint: function () {\n return props.transformPagePoint;\n }, \n /**\n * Used by child variant nodes to get the closest ancestor variant props.\n */\n getVariantContext: function (startAtParent) {\n if (startAtParent === void 0) { startAtParent = false; }\n if (startAtParent)\n return parent === null || parent === void 0 ? void 0 : parent.getVariantContext();\n if (!isControllingVariants) {\n var context_1 = (parent === null || parent === void 0 ? void 0 : parent.getVariantContext()) || {};\n if (props.initial !== undefined) {\n context_1.initial = props.initial;\n }\n return context_1;\n }\n var context = {};\n for (var i = 0; i < numVariantProps; i++) {\n var name_1 = variantProps[i];\n var prop = props[name_1];\n if (isVariantLabel(prop) || prop === false) {\n context[name_1] = prop;\n }\n }\n return context;\n } });\n return element;\n };\n};\nvar variantProps = tslib.__spreadArray([\"initial\"], tslib.__read(variantPriorityOrder), false);\nvar numVariantProps = variantProps.length;\n\nfunction isCSSVariable(value) {\n return typeof value === \"string\" && value.startsWith(\"var(--\");\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 */\nvar cssVariableRegex = /var\\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\\)/;\nfunction parseCSSVariable(current) {\n var match = cssVariableRegex.exec(current);\n if (!match)\n return [,];\n var _a = tslib.__read(match, 3), token = _a[1], fallback = _a[2];\n return [token, fallback];\n}\nvar maxDepth = 4;\nfunction getVariableValue(current, element, depth) {\n if (depth === void 0) { depth = 1; }\n heyListen.invariant(depth <= maxDepth, \"Max CSS variable fallback depth detected in property \\\"\".concat(current, \"\\\". This may indicate a circular fallback dependency.\"));\n var _a = tslib.__read(parseCSSVariable(current), 2), token = _a[0], fallback = _a[1];\n // No CSS variable detected\n if (!token)\n return;\n // Attempt to read this CSS variable off the element\n var resolved = window.getComputedStyle(element).getPropertyValue(token);\n if (resolved) {\n return resolved.trim();\n }\n else if (isCSSVariable(fallback)) {\n // The fallback might itself be a CSS variable, in which case we attempt to resolve it too.\n return getVariableValue(fallback, element, depth + 1);\n }\n else {\n return fallback;\n }\n}\n/**\n * Resolve CSS variables from\n *\n * @internal\n */\nfunction resolveCSSVariables(visualElement, _a, transitionEnd) {\n var _b;\n var target = tslib.__rest(_a, []);\n var element = visualElement.getInstance();\n if (!(element instanceof Element))\n return { target: target, transitionEnd: transitionEnd };\n // If `transitionEnd` isn't `undefined`, clone it. We could clone `target` and `transitionEnd`\n // only if they change but I think this reads clearer and this isn't a performance-critical path.\n if (transitionEnd) {\n transitionEnd = tslib.__assign({}, transitionEnd);\n }\n // Go through existing `MotionValue`s and ensure any existing CSS variables are resolved\n visualElement.forEachValue(function (value) {\n var current = value.get();\n if (!isCSSVariable(current))\n return;\n var resolved = getVariableValue(current, element);\n if (resolved)\n value.set(resolved);\n });\n // Cycle through every target property and resolve CSS variables. Currently\n // we only read single-var properties like `var(--foo)`, not `calc(var(--foo) + 20px)`\n for (var key in target) {\n var current = target[key];\n if (!isCSSVariable(current))\n continue;\n var resolved = getVariableValue(current, element);\n if (!resolved)\n continue;\n // Clone target if it hasn't already been\n target[key] = resolved;\n // If the user hasn't already set this key on `transitionEnd`, set it to the unresolved\n // CSS variable. This will ensure that after the animation the component will reflect\n // changes in the value of the CSS variable.\n if (transitionEnd)\n (_b = transitionEnd[key]) !== null && _b !== void 0 ? _b : (transitionEnd[key] = current);\n }\n return { target: target, transitionEnd: transitionEnd };\n}\n\nvar positionalKeys = new Set([\n \"width\",\n \"height\",\n \"top\",\n \"left\",\n \"right\",\n \"bottom\",\n \"x\",\n \"y\",\n]);\nvar isPositionalKey = function (key) { return positionalKeys.has(key); };\nvar hasPositionalKey = function (target) {\n return Object.keys(target).some(isPositionalKey);\n};\nvar setAndResetVelocity = function (value, to) {\n // Looks odd but setting it twice doesn't render, it'll just\n // set both prev and current to the latest value\n value.set(to, false);\n value.set(to);\n};\nvar isNumOrPxType = function (v) {\n return v === styleValueTypes.number || v === styleValueTypes.px;\n};\nvar BoundingBoxDimension;\n(function (BoundingBoxDimension) {\n BoundingBoxDimension[\"width\"] = \"width\";\n BoundingBoxDimension[\"height\"] = \"height\";\n BoundingBoxDimension[\"left\"] = \"left\";\n BoundingBoxDimension[\"right\"] = \"right\";\n BoundingBoxDimension[\"top\"] = \"top\";\n BoundingBoxDimension[\"bottom\"] = \"bottom\";\n})(BoundingBoxDimension || (BoundingBoxDimension = {}));\nvar getPosFromMatrix = function (matrix, pos) {\n return parseFloat(matrix.split(\", \")[pos]);\n};\nvar getTranslateFromMatrix = function (pos2, pos3) {\n return function (_bbox, _a) {\n var transform = _a.transform;\n if (transform === \"none\" || !transform)\n return 0;\n var matrix3d = transform.match(/^matrix3d\\((.+)\\)$/);\n if (matrix3d) {\n return getPosFromMatrix(matrix3d[1], pos3);\n }\n else {\n var matrix = transform.match(/^matrix\\((.+)\\)$/);\n if (matrix) {\n return getPosFromMatrix(matrix[1], pos2);\n }\n else {\n return 0;\n }\n }\n };\n};\nvar transformKeys = new Set([\"x\", \"y\", \"z\"]);\nvar nonTranslationalTransformKeys = transformProps.filter(function (key) { return !transformKeys.has(key); });\nfunction removeNonTranslationalTransform(visualElement) {\n var removedTransforms = [];\n nonTranslationalTransformKeys.forEach(function (key) {\n var 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 // Apply changes to element before measurement\n if (removedTransforms.length)\n visualElement.syncRender();\n return removedTransforms;\n}\nvar positionalValues = {\n // Dimensions\n width: function (_a, _b) {\n var x = _a.x;\n var _c = _b.paddingLeft, paddingLeft = _c === void 0 ? \"0\" : _c, _d = _b.paddingRight, paddingRight = _d === void 0 ? \"0\" : _d;\n return x.max - x.min - parseFloat(paddingLeft) - parseFloat(paddingRight);\n },\n height: function (_a, _b) {\n var y = _a.y;\n var _c = _b.paddingTop, paddingTop = _c === void 0 ? \"0\" : _c, _d = _b.paddingBottom, paddingBottom = _d === void 0 ? \"0\" : _d;\n return y.max - y.min - parseFloat(paddingTop) - parseFloat(paddingBottom);\n },\n top: function (_bbox, _a) {\n var top = _a.top;\n return parseFloat(top);\n },\n left: function (_bbox, _a) {\n var left = _a.left;\n return parseFloat(left);\n },\n bottom: function (_a, _b) {\n var y = _a.y;\n var top = _b.top;\n return parseFloat(top) + (y.max - y.min);\n },\n right: function (_a, _b) {\n var x = _a.x;\n var left = _b.left;\n return parseFloat(left) + (x.max - x.min);\n },\n // Transform\n x: getTranslateFromMatrix(4, 13),\n y: getTranslateFromMatrix(5, 14),\n};\nvar convertChangedValueTypes = function (target, visualElement, changedKeys) {\n var originBbox = visualElement.measureViewportBox();\n var element = visualElement.getInstance();\n var elementComputedStyle = getComputedStyle(element);\n var display = elementComputedStyle.display;\n var origin = {};\n // If the element is currently set to display: \"none\", make it visible before\n // measuring the target bounding box\n if (display === \"none\") {\n visualElement.setStaticValue(\"display\", target.display || \"block\");\n }\n /**\n * Record origins before we render and update styles\n */\n changedKeys.forEach(function (key) {\n origin[key] = positionalValues[key](originBbox, elementComputedStyle);\n });\n // Apply the latest values (as set in checkAndConvertChangedValueTypes)\n visualElement.syncRender();\n var targetBbox = visualElement.measureViewportBox();\n changedKeys.forEach(function (key) {\n // Restore styles to their **calculated computed style**, not their actual\n // originally set style. This allows us to animate between equivalent pixel units.\n var value = visualElement.getValue(key);\n setAndResetVelocity(value, origin[key]);\n target[key] = positionalValues[key](targetBbox, elementComputedStyle);\n });\n return target;\n};\nvar checkAndConvertChangedValueTypes = function (visualElement, target, origin, transitionEnd) {\n if (origin === void 0) { origin = {}; }\n if (transitionEnd === void 0) { transitionEnd = {}; }\n target = tslib.__assign({}, target);\n transitionEnd = tslib.__assign({}, transitionEnd);\n var targetPositionalKeys = Object.keys(target).filter(isPositionalKey);\n // We want to remove any transform values that could affect the element's bounding box before\n // it's measured. We'll reapply these later.\n var removedTransformValues = [];\n var hasAttemptedToRemoveTransformValues = false;\n var changedValueTypeKeys = [];\n targetPositionalKeys.forEach(function (key) {\n var value = visualElement.getValue(key);\n if (!visualElement.hasValue(key))\n return;\n var from = origin[key];\n var fromType = findDimensionValueType(from);\n var to = target[key];\n var toType;\n // TODO: The current implementation of this basically throws an error\n // if you try and do value conversion via keyframes. There's probably\n // a way of doing this but the performance implications would need greater scrutiny,\n // as it'd be doing multiple resize-remeasure operations.\n if (isKeyframesTarget(to)) {\n var numKeyframes = to.length;\n var fromIndex = to[0] === null ? 1 : 0;\n from = to[fromIndex];\n fromType = findDimensionValueType(from);\n for (var i = fromIndex; i < numKeyframes; i++) {\n if (!toType) {\n toType = findDimensionValueType(to[i]);\n heyListen.invariant(toType === fromType ||\n (isNumOrPxType(fromType) && isNumOrPxType(toType)), \"Keyframes must be of the same dimension as the current value\");\n }\n else {\n heyListen.invariant(findDimensionValueType(to[i]) === toType, \"All keyframes must be of the same type\");\n }\n }\n }\n else {\n toType = findDimensionValueType(to);\n }\n if (fromType !== toType) {\n // If they're both just number or px, convert them both to numbers rather than\n // relying on resize/remeasure to convert (which is wasteful in this situation)\n if (isNumOrPxType(fromType) && isNumOrPxType(toType)) {\n var current = value.get();\n if (typeof current === \"string\") {\n value.set(parseFloat(current));\n }\n if (typeof to === \"string\") {\n target[key] = parseFloat(to);\n }\n else if (Array.isArray(to) && toType === styleValueTypes.px) {\n target[key] = to.map(parseFloat);\n }\n }\n else if ((fromType === null || fromType === void 0 ? void 0 : fromType.transform) &&\n (toType === null || toType === void 0 ? void 0 : toType.transform) &&\n (from === 0 || to === 0)) {\n // If one or the other value is 0, it's safe to coerce it to the\n // type of the other without measurement\n if (from === 0) {\n value.set(toType.transform(from));\n }\n else {\n target[key] = fromType.transform(to);\n }\n }\n else {\n // If we're going to do value conversion via DOM measurements, we first\n // need to remove non-positional transform values that could affect the bbox measurements.\n if (!hasAttemptedToRemoveTransformValues) {\n removedTransformValues =\n removeNonTranslationalTransform(visualElement);\n hasAttemptedToRemoveTransformValues = true;\n }\n changedValueTypeKeys.push(key);\n transitionEnd[key] =\n transitionEnd[key] !== undefined\n ? transitionEnd[key]\n : target[key];\n setAndResetVelocity(value, to);\n }\n }\n });\n if (changedValueTypeKeys.length) {\n var scrollY_1 = changedValueTypeKeys.indexOf(\"height\") >= 0\n ? window.pageYOffset\n : null;\n var convertedTarget = convertChangedValueTypes(target, visualElement, changedValueTypeKeys);\n // If we removed transform values, reapply them before the next render\n if (removedTransformValues.length) {\n removedTransformValues.forEach(function (_a) {\n var _b = tslib.__read(_a, 2), key = _b[0], value = _b[1];\n visualElement.getValue(key).set(value);\n });\n }\n // Reapply original values\n visualElement.syncRender();\n // Restore scroll position\n if (scrollY_1 !== null)\n window.scrollTo({ top: scrollY_1 });\n return { target: convertedTarget, transitionEnd: transitionEnd };\n }\n else {\n return { target: target, transitionEnd: transitionEnd };\n }\n};\n/**\n * Convert value types for x/y/width/height/top/left/bottom/right\n *\n * Allows animation between `'auto'` -> `'100%'` or `0` -> `'calc(50% - 10vw)'`\n *\n * @internal\n */\nfunction unitConversion(visualElement, target, origin, transitionEnd) {\n return hasPositionalKey(target)\n ? checkAndConvertChangedValueTypes(visualElement, target, origin, transitionEnd)\n : { target: target, transitionEnd: transitionEnd };\n}\n\n/**\n * Parse a DOM variant to make it animatable. This involves resolving CSS variables\n * and ensuring animations like \"20%\" => \"calc(50vw)\" are performed in pixels.\n */\nvar parseDomVariant = function (visualElement, target, origin, transitionEnd) {\n var resolved = resolveCSSVariables(visualElement, target, transitionEnd);\n target = resolved.target;\n transitionEnd = resolved.transitionEnd;\n return unitConversion(visualElement, target, origin, transitionEnd);\n};\n\nfunction getComputedStyle$1(element) {\n return window.getComputedStyle(element);\n}\nvar htmlConfig = {\n treeType: \"dom\",\n readValueFromInstance: function (domElement, key) {\n if (isTransformProp(key)) {\n var defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n else {\n var computedStyle = getComputedStyle$1(domElement);\n return ((isCSSVariable$1(key)\n ? computedStyle.getPropertyValue(key)\n : computedStyle[key]) || 0);\n }\n },\n sortNodePosition: function (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 getBaseTarget: function (props, key) {\n var _a;\n return (_a = props.style) === null || _a === void 0 ? void 0 : _a[key];\n },\n measureViewportBox: function (element, _a) {\n var transformPagePoint = _a.transformPagePoint;\n return measureViewportBox(element, transformPagePoint);\n },\n /**\n * Reset the transform on the current Element. This is called as part\n * of a batched process across the entire layout tree. To remove this write\n * cycle it'd be interesting to see if it's possible to \"undo\" all the current\n * layout transforms up the tree in the same way this.getBoundingBoxWithoutTransforms\n * works\n */\n resetTransform: function (element, domElement, props) {\n var transformTemplate = props.transformTemplate;\n domElement.style.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n // Ensure that whatever happens next, we restore our transform on the next frame\n element.scheduleRender();\n },\n restoreTransform: function (instance, mutableState) {\n instance.style.transform = mutableState.style.transform;\n },\n removeValueFromRenderState: function (key, _a) {\n var vars = _a.vars, style = _a.style;\n delete vars[key];\n delete style[key];\n },\n /**\n * Ensure that HTML and Framer-specific value types like `px`->`%` and `Color`\n * can be animated by Motion.\n */\n makeTargetAnimatable: function (element, _a, _b, isMounted) {\n var transformValues = _b.transformValues;\n if (isMounted === void 0) { isMounted = true; }\n var transition = _a.transition, transitionEnd = _a.transitionEnd, target = tslib.__rest(_a, [\"transition\", \"transitionEnd\"]);\n var origin = getOrigin(target, transition || {}, element);\n /**\n * If Framer has provided a function to convert `Color` etc value types, convert them\n */\n if (transformValues) {\n if (transitionEnd)\n transitionEnd = transformValues(transitionEnd);\n if (target)\n target = transformValues(target);\n if (origin)\n origin = transformValues(origin);\n }\n if (isMounted) {\n checkTargetForNewValues(element, target, origin);\n var parsed = parseDomVariant(element, target, origin, transitionEnd);\n transitionEnd = parsed.transitionEnd;\n target = parsed.target;\n }\n return tslib.__assign({ transition: transition, transitionEnd: transitionEnd }, target);\n },\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps$1,\n build: function (element, renderState, latestValues, options, props) {\n if (element.isVisible !== undefined) {\n renderState.style.visibility = element.isVisible\n ? \"visible\"\n : \"hidden\";\n }\n buildHTMLStyles(renderState, latestValues, options, props.transformTemplate);\n },\n render: renderHTML,\n};\nvar htmlVisualElement = visualElement(htmlConfig);\n\nvar svgVisualElement = visualElement(tslib.__assign(tslib.__assign({}, htmlConfig), { getBaseTarget: function (props, key) {\n return props[key];\n }, readValueFromInstance: function (domElement, key) {\n var _a;\n if (isTransformProp(key)) {\n return ((_a = getDefaultValueType(key)) === null || _a === void 0 ? void 0 : _a.default) || 0;\n }\n key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;\n return domElement.getAttribute(key);\n }, scrapeMotionValuesFromProps: scrapeMotionValuesFromProps, build: function (_element, renderState, latestValues, options, props) {\n buildSVGAttrs(renderState, latestValues, options, props.transformTemplate);\n }, render: renderSVG }));\n\nvar createDomVisualElement = function (Component, options) {\n return isSVGComponent(Component)\n ? svgVisualElement(options, { enableHardwareAcceleration: false })\n : htmlVisualElement(options, { enableHardwareAcceleration: true });\n};\n\nfunction pixelsToPercent(pixels, axis) {\n if (axis.max === axis.min)\n return 0;\n return (pixels / (axis.max - axis.min)) * 100;\n}\n/**\n * We always correct borderRadius as a percentage rather than pixels to reduce paints.\n * For example, if you are projecting a box that is 100px wide with a 10px borderRadius\n * into a box that is 200px wide with a 20px borderRadius, that is actually a 10%\n * borderRadius in both states. If we animate between the two in pixels that will trigger\n * a paint each time. If we animate between the two in percentage we'll avoid a paint.\n */\nvar correctBorderRadius = {\n correct: function (latest, node) {\n if (!node.target)\n return latest;\n /**\n * If latest is a string, if it's a percentage we can return immediately as it's\n * going to be stretched appropriately. Otherwise, if it's a pixel, convert it to a number.\n */\n if (typeof latest === \"string\") {\n if (styleValueTypes.px.test(latest)) {\n latest = parseFloat(latest);\n }\n else {\n return latest;\n }\n }\n /**\n * If latest is a number, it's a pixel value. We use the current viewportBox to calculate that\n * pixel value as a percentage of each axis\n */\n var x = pixelsToPercent(latest, node.target.x);\n var y = pixelsToPercent(latest, node.target.y);\n return \"\".concat(x, \"% \").concat(y, \"%\");\n },\n};\n\nvar varToken = \"_$css\";\nvar correctBoxShadow = {\n correct: function (latest, _a) {\n var treeScale = _a.treeScale, projectionDelta = _a.projectionDelta;\n var original = latest;\n /**\n * We need to first strip and store CSS variables from the string.\n */\n var containsCSSVariables = latest.includes(\"var(\");\n var cssVariables = [];\n if (containsCSSVariables) {\n latest = latest.replace(cssVariableRegex, function (match) {\n cssVariables.push(match);\n return varToken;\n });\n }\n var shadow = styleValueTypes.complex.parse(latest);\n // TODO: Doesn't support multiple shadows\n if (shadow.length > 5)\n return original;\n var template = styleValueTypes.complex.createTransformer(latest);\n var offset = typeof shadow[0] !== \"number\" ? 1 : 0;\n // Calculate the overall context scale\n var xScale = projectionDelta.x.scale * treeScale.x;\n var yScale = projectionDelta.y.scale * treeScale.y;\n shadow[0 + offset] /= xScale;\n shadow[1 + offset] /= yScale;\n /**\n * Ideally we'd correct x and y scales individually, but because blur and\n * spread apply to both we have to take a scale average and apply that instead.\n * We could potentially improve the outcome of this by incorporating the ratio between\n * the two scales.\n */\n var averageScale = popmotion.mix(xScale, yScale, 0.5);\n // Blur\n if (typeof shadow[2 + offset] === \"number\")\n shadow[2 + offset] /= averageScale;\n // Spread\n if (typeof shadow[3 + offset] === \"number\")\n shadow[3 + offset] /= averageScale;\n var output = template(shadow);\n if (containsCSSVariables) {\n var i_1 = 0;\n output = output.replace(varToken, function () {\n var cssVariable = cssVariables[i_1];\n i_1++;\n return cssVariable;\n });\n }\n return output;\n },\n};\n\nvar MeasureLayoutWithContext = /** @class */ (function (_super) {\n tslib.__extends(MeasureLayoutWithContext, _super);\n function MeasureLayoutWithContext() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * This only mounts projection nodes for components that\n * need measuring, we might want to do it for all components\n * in order to incorporate transforms\n */\n MeasureLayoutWithContext.prototype.componentDidMount = function () {\n var _this = this;\n var _a = this.props, visualElement = _a.visualElement, layoutGroup = _a.layoutGroup, switchLayoutGroup = _a.switchLayoutGroup, layoutId = _a.layoutId;\n var projection = visualElement.projection;\n addScaleCorrector(defaultScaleCorrectors);\n if (projection) {\n if (layoutGroup === null || layoutGroup === void 0 ? void 0 : layoutGroup.group)\n layoutGroup.group.add(projection);\n if ((switchLayoutGroup === null || switchLayoutGroup === void 0 ? void 0 : switchLayoutGroup.register) && layoutId) {\n switchLayoutGroup.register(projection);\n }\n projection.root.didUpdate();\n projection.addEventListener(\"animationComplete\", function () {\n _this.safeToRemove();\n });\n projection.setOptions(tslib.__assign(tslib.__assign({}, projection.options), { onExitComplete: function () { return _this.safeToRemove(); } }));\n }\n globalProjectionState.hasEverUpdated = true;\n };\n MeasureLayoutWithContext.prototype.getSnapshotBeforeUpdate = function (prevProps) {\n var _this = this;\n var _a = this.props, layoutDependency = _a.layoutDependency, visualElement = _a.visualElement, drag = _a.drag, isPresent = _a.isPresent;\n var projection = visualElement.projection;\n if (!projection)\n return null;\n /**\n * TODO: We use this data in relegate to determine whether to\n * promote a previous element. There's no guarantee its presence data\n * will have updated by this point - if a bug like this arises it will\n * have to be that we markForRelegation and then find a new lead some other way,\n * perhaps in didUpdate\n */\n projection.isPresent = isPresent;\n if (drag ||\n prevProps.layoutDependency !== layoutDependency ||\n layoutDependency === undefined) {\n projection.willUpdate();\n }\n else {\n this.safeToRemove();\n }\n if (prevProps.isPresent !== isPresent) {\n if (isPresent) {\n projection.promote();\n }\n else if (!projection.relegate()) {\n /**\n * If there's another stack member taking over from this one,\n * it's in charge of the exit animation and therefore should\n * be in charge of the safe to remove. Otherwise we call it here.\n */\n sync__default[\"default\"].postRender(function () {\n var _a;\n if (!((_a = projection.getStack()) === null || _a === void 0 ? void 0 : _a.members.length)) {\n _this.safeToRemove();\n }\n });\n }\n }\n return null;\n };\n MeasureLayoutWithContext.prototype.componentDidUpdate = function () {\n var projection = this.props.visualElement.projection;\n if (projection) {\n projection.root.didUpdate();\n if (!projection.currentAnimation && projection.isLead()) {\n this.safeToRemove();\n }\n }\n };\n MeasureLayoutWithContext.prototype.componentWillUnmount = function () {\n var _a = this.props, visualElement = _a.visualElement, layoutGroup = _a.layoutGroup, promoteContext = _a.switchLayoutGroup;\n var projection = visualElement.projection;\n if (projection) {\n projection.scheduleCheckAfterUnmount();\n if (layoutGroup === null || layoutGroup === void 0 ? void 0 : layoutGroup.group)\n layoutGroup.group.remove(projection);\n if (promoteContext === null || promoteContext === void 0 ? void 0 : promoteContext.deregister)\n promoteContext.deregister(projection);\n }\n };\n MeasureLayoutWithContext.prototype.safeToRemove = function () {\n var safeToRemove = this.props.safeToRemove;\n safeToRemove === null || safeToRemove === void 0 ? void 0 : safeToRemove();\n };\n MeasureLayoutWithContext.prototype.render = function () {\n return null;\n };\n return MeasureLayoutWithContext;\n}(React__default[\"default\"].Component));\nfunction MeasureLayout(props) {\n var _a = tslib.__read(usePresence(), 2), isPresent = _a[0], safeToRemove = _a[1];\n var layoutGroup = React.useContext(LayoutGroupContext);\n return (React__default[\"default\"].createElement(MeasureLayoutWithContext, tslib.__assign({}, props, { layoutGroup: layoutGroup, switchLayoutGroup: React.useContext(SwitchLayoutGroupContext), isPresent: isPresent, safeToRemove: safeToRemove })));\n}\nvar defaultScaleCorrectors = {\n borderRadius: tslib.__assign(tslib.__assign({}, correctBorderRadius), { applyTo: [\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n ] }),\n borderTopLeftRadius: correctBorderRadius,\n borderTopRightRadius: correctBorderRadius,\n borderBottomLeftRadius: correctBorderRadius,\n borderBottomRightRadius: correctBorderRadius,\n boxShadow: correctBoxShadow,\n};\n\nvar layoutFeatures = {\n measureLayout: MeasureLayout,\n};\n\n/**\n * Animate a single value or a `MotionValue`.\n *\n * The first argument is either a `MotionValue` to animate, or an initial animation value.\n *\n * The second is either a value to animate to, or an array of keyframes to animate through.\n *\n * The third argument can be either tween or spring options, and optional lifecycle methods: `onUpdate`, `onPlay`, `onComplete`, `onRepeat` and `onStop`.\n *\n * Returns `AnimationPlaybackControls`, currently just a `stop` method.\n *\n * ```javascript\n * const x = useMotionValue(0)\n *\n * useEffect(() => {\n * const controls = animate(x, 100, {\n * type: \"spring\",\n * stiffness: 2000,\n * onComplete: v => {}\n * })\n *\n * return controls.stop\n * })\n * ```\n *\n * @public\n */\nfunction animate(from, to, transition) {\n if (transition === void 0) { transition = {}; }\n var value = isMotionValue(from) ? from : motionValue(from);\n startAnimation(\"\", value, to, transition);\n return {\n stop: function () { return value.stop(); },\n isAnimating: function () { return value.isAnimating(); },\n };\n}\n\nvar borders = [\"TopLeft\", \"TopRight\", \"BottomLeft\", \"BottomRight\"];\nvar numBorders = borders.length;\nvar asNumber = function (value) {\n return typeof value === \"string\" ? parseFloat(value) : value;\n};\nvar isPx = function (value) {\n return typeof value === \"number\" || styleValueTypes.px.test(value);\n};\nfunction mixValues(target, follow, lead, progress, shouldCrossfadeOpacity, isOnlyMember) {\n var _a, _b, _c, _d;\n if (shouldCrossfadeOpacity) {\n target.opacity = popmotion.mix(0, \n // (follow?.opacity as number) ?? 0,\n // TODO Reinstate this if only child\n (_a = lead.opacity) !== null && _a !== void 0 ? _a : 1, easeCrossfadeIn(progress));\n target.opacityExit = popmotion.mix((_b = follow.opacity) !== null && _b !== void 0 ? _b : 1, 0, easeCrossfadeOut(progress));\n }\n else if (isOnlyMember) {\n target.opacity = popmotion.mix((_c = follow.opacity) !== null && _c !== void 0 ? _c : 1, (_d = lead.opacity) !== null && _d !== void 0 ? _d : 1, progress);\n }\n /**\n * Mix border radius\n */\n for (var i = 0; i < numBorders; i++) {\n var borderLabel = \"border\".concat(borders[i], \"Radius\");\n var followRadius = getRadius(follow, borderLabel);\n var leadRadius = getRadius(lead, borderLabel);\n if (followRadius === undefined && leadRadius === undefined)\n continue;\n followRadius || (followRadius = 0);\n leadRadius || (leadRadius = 0);\n var canMix = followRadius === 0 ||\n leadRadius === 0 ||\n isPx(followRadius) === isPx(leadRadius);\n if (canMix) {\n target[borderLabel] = Math.max(popmotion.mix(asNumber(followRadius), asNumber(leadRadius), progress), 0);\n if (styleValueTypes.percent.test(leadRadius) || styleValueTypes.percent.test(followRadius)) {\n target[borderLabel] += \"%\";\n }\n }\n else {\n target[borderLabel] = leadRadius;\n }\n }\n /**\n * Mix rotation\n */\n if (follow.rotate || lead.rotate) {\n target.rotate = popmotion.mix(follow.rotate || 0, lead.rotate || 0, progress);\n }\n}\nfunction getRadius(values, radiusName) {\n var _a;\n return (_a = values[radiusName]) !== null && _a !== void 0 ? _a : values.borderRadius;\n}\n// /**\n// * We only want to mix the background color if there's a follow element\n// * that we're not crossfading opacity between. For instance with switch\n// * AnimateSharedLayout animations, this helps the illusion of a continuous\n// * element being animated but also cuts down on the number of paints triggered\n// * for elements where opacity is doing that work for us.\n// */\n// if (\n// !hasFollowElement &&\n// latestLeadValues.backgroundColor &&\n// latestFollowValues.backgroundColor\n// ) {\n// /**\n// * This isn't ideal performance-wise as mixColor is creating a new function every frame.\n// * We could probably create a mixer that runs at the start of the animation but\n// * the idea behind the crossfader is that it runs dynamically between two potentially\n// * changing targets (ie opacity or borderRadius may be animating independently via variants)\n// */\n// leadState.backgroundColor = followState.backgroundColor = mixColor(\n// latestFollowValues.backgroundColor as string,\n// latestLeadValues.backgroundColor as string\n// )(p)\n// }\nvar easeCrossfadeIn = compress(0, 0.5, popmotion.circOut);\nvar easeCrossfadeOut = compress(0.5, 0.95, popmotion.linear);\nfunction compress(min, max, easing) {\n return function (p) {\n // Could replace ifs with clamp\n if (p < min)\n return 0;\n if (p > max)\n return 1;\n return easing(popmotion.progress(min, max, p));\n };\n}\n\n/**\n * Reset an axis to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyAxisInto(axis, originAxis) {\n axis.min = originAxis.min;\n axis.max = originAxis.max;\n}\n/**\n * Reset a box to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyBoxInto(box, originBox) {\n copyAxisInto(box.x, originBox.x);\n copyAxisInto(box.y, originBox.y);\n}\n\n/**\n * Remove a delta from a point. This is essentially the steps of applyPointDelta in reverse\n */\nfunction removePointDelta(point, translate, scale, originPoint, boxScale) {\n point -= translate;\n point = scalePoint(point, 1 / scale, originPoint);\n if (boxScale !== undefined) {\n point = scalePoint(point, 1 / boxScale, originPoint);\n }\n return point;\n}\n/**\n * Remove a delta from an axis. This is essentially the steps of applyAxisDelta in reverse\n */\nfunction removeAxisDelta(axis, translate, scale, origin, boxScale, originAxis, sourceAxis) {\n if (translate === void 0) { translate = 0; }\n if (scale === void 0) { scale = 1; }\n if (origin === void 0) { origin = 0.5; }\n if (originAxis === void 0) { originAxis = axis; }\n if (sourceAxis === void 0) { sourceAxis = axis; }\n if (styleValueTypes.percent.test(translate)) {\n translate = parseFloat(translate);\n var relativeProgress = popmotion.mix(sourceAxis.min, sourceAxis.max, translate / 100);\n translate = relativeProgress - sourceAxis.min;\n }\n if (typeof translate !== \"number\")\n return;\n var originPoint = popmotion.mix(originAxis.min, originAxis.max, origin);\n if (axis === originAxis)\n originPoint -= translate;\n axis.min = removePointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = removePointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Remove a transforms from an axis. This is essentially the steps of applyAxisTransforms in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeAxisTransforms(axis, transforms, _a, origin, sourceAxis) {\n var _b = tslib.__read(_a, 3), key = _b[0], scaleKey = _b[1], originKey = _b[2];\n removeAxisDelta(axis, transforms[key], transforms[scaleKey], transforms[originKey], transforms.scale, origin, sourceAxis);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nvar xKeys = [\"x\", \"scaleX\", \"originX\"];\nvar yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Remove a transforms from an box. This is essentially the steps of applyAxisBox in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeBoxTransforms(box, transforms, originBox, sourceBox) {\n removeAxisTransforms(box.x, transforms, xKeys, originBox === null || originBox === void 0 ? void 0 : originBox.x, sourceBox === null || sourceBox === void 0 ? void 0 : sourceBox.x);\n removeAxisTransforms(box.y, transforms, yKeys, originBox === null || originBox === void 0 ? void 0 : originBox.y, sourceBox === null || sourceBox === void 0 ? void 0 : sourceBox.y);\n}\n\nfunction isAxisDeltaZero(delta) {\n return delta.translate === 0 && delta.scale === 1;\n}\nfunction isDeltaZero(delta) {\n return isAxisDeltaZero(delta.x) && isAxisDeltaZero(delta.y);\n}\nfunction boxEquals(a, b) {\n return (a.x.min === b.x.min &&\n a.x.max === b.x.max &&\n a.y.min === b.y.min &&\n a.y.max === b.y.max);\n}\n\nvar NodeStack = /** @class */ (function () {\n function NodeStack() {\n this.members = [];\n }\n NodeStack.prototype.add = function (node) {\n addUniqueItem(this.members, node);\n node.scheduleRender();\n };\n NodeStack.prototype.remove = function (node) {\n removeItem(this.members, node);\n if (node === this.prevLead) {\n this.prevLead = undefined;\n }\n if (node === this.lead) {\n var prevLead = this.members[this.members.length - 1];\n if (prevLead) {\n this.promote(prevLead);\n }\n }\n };\n NodeStack.prototype.relegate = function (node) {\n var indexOfNode = this.members.findIndex(function (member) { return node === member; });\n if (indexOfNode === 0)\n return false;\n /**\n * Find the next projection node that is present\n */\n var prevLead;\n for (var i = indexOfNode; i >= 0; i--) {\n var member = this.members[i];\n if (member.isPresent !== false) {\n prevLead = member;\n break;\n }\n }\n if (prevLead) {\n this.promote(prevLead);\n return true;\n }\n else {\n return false;\n }\n };\n NodeStack.prototype.promote = function (node, preserveFollowOpacity) {\n var _a;\n var prevLead = this.lead;\n if (node === prevLead)\n return;\n this.prevLead = prevLead;\n this.lead = node;\n node.show();\n if (prevLead) {\n prevLead.instance && prevLead.scheduleRender();\n node.scheduleRender();\n node.resumeFrom = prevLead;\n if (preserveFollowOpacity) {\n node.resumeFrom.preserveOpacity = true;\n }\n if (prevLead.snapshot) {\n node.snapshot = prevLead.snapshot;\n node.snapshot.latestValues =\n prevLead.animationValues || prevLead.latestValues;\n node.snapshot.isShared = true;\n }\n if ((_a = node.root) === null || _a === void 0 ? void 0 : _a.isUpdating) {\n node.isLayoutDirty = true;\n }\n var crossfade = node.options.crossfade;\n if (crossfade === false) {\n prevLead.hide();\n }\n /**\n * TODO:\n * - Test border radius when previous node was deleted\n * - boxShadow mixing\n * - Shared between element A in scrolled container and element B (scroll stays the same or changes)\n * - Shared between element A in transformed container and element B (transform stays the same or changes)\n * - Shared between element A in scrolled page and element B (scroll stays the same or changes)\n * ---\n * - Crossfade opacity of root nodes\n * - layoutId changes after animation\n * - layoutId changes mid animation\n */\n }\n };\n NodeStack.prototype.exitAnimationComplete = function () {\n this.members.forEach(function (node) {\n var _a, _b, _c, _d, _e;\n (_b = (_a = node.options).onExitComplete) === null || _b === void 0 ? void 0 : _b.call(_a);\n (_e = (_c = node.resumingFrom) === null || _c === void 0 ? void 0 : (_d = _c.options).onExitComplete) === null || _e === void 0 ? void 0 : _e.call(_d);\n });\n };\n NodeStack.prototype.scheduleRender = function () {\n this.members.forEach(function (node) {\n node.instance && node.scheduleRender(false);\n });\n };\n /**\n * Clear any leads that have been removed this render to prevent them from being\n * used in future animations and to prevent memory leaks\n */\n NodeStack.prototype.removeLeadSnapshot = function () {\n if (this.lead && this.lead.snapshot) {\n this.lead.snapshot = undefined;\n }\n };\n return NodeStack;\n}());\n\nvar identityProjection = \"translate3d(0px, 0px, 0) scale(1, 1) scale(1, 1)\";\nfunction buildProjectionTransform(delta, treeScale, latestTransform) {\n /**\n * The translations we use to calculate are always relative to the viewport coordinate space.\n * But when we apply scales, we also scale the coordinate space of an element and its children.\n * For instance if we have a treeScale (the culmination of all parent scales) of 0.5 and we need\n * to move an element 100 pixels, we actually need to move it 200 in within that scaled space.\n */\n var xTranslate = delta.x.translate / treeScale.x;\n var yTranslate = delta.y.translate / treeScale.y;\n var transform = \"translate3d(\".concat(xTranslate, \"px, \").concat(yTranslate, \"px, 0) \");\n /**\n * Apply scale correction for the tree transform.\n * This will apply scale to the screen-orientated axes.\n */\n transform += \"scale(\".concat(1 / treeScale.x, \", \").concat(1 / treeScale.y, \") \");\n if (latestTransform) {\n var rotate = latestTransform.rotate, rotateX = latestTransform.rotateX, rotateY = latestTransform.rotateY;\n if (rotate)\n transform += \"rotate(\".concat(rotate, \"deg) \");\n if (rotateX)\n transform += \"rotateX(\".concat(rotateX, \"deg) \");\n if (rotateY)\n transform += \"rotateY(\".concat(rotateY, \"deg) \");\n }\n /**\n * Apply scale to match the size of the element to the size we want it.\n * This will apply scale to the element-orientated axes.\n */\n var elementScaleX = delta.x.scale * treeScale.x;\n var elementScaleY = delta.y.scale * treeScale.y;\n transform += \"scale(\".concat(elementScaleX, \", \").concat(elementScaleY, \")\");\n return transform === identityProjection ? \"none\" : transform;\n}\n\nvar compareByDepth = function (a, b) {\n return a.depth - b.depth;\n};\n\nvar FlatTree = /** @class */ (function () {\n function FlatTree() {\n this.children = [];\n this.isDirty = false;\n }\n FlatTree.prototype.add = function (child) {\n addUniqueItem(this.children, child);\n this.isDirty = true;\n };\n FlatTree.prototype.remove = function (child) {\n removeItem(this.children, child);\n this.isDirty = true;\n };\n FlatTree.prototype.forEach = function (callback) {\n this.isDirty && this.children.sort(compareByDepth);\n this.isDirty = false;\n this.children.forEach(callback);\n };\n return FlatTree;\n}());\n\n/**\n * We use 1000 as the animation target as 0-1000 maps better to pixels than 0-1\n * which has a noticeable difference in spring animations\n */\nvar animationTarget = 1000;\nfunction createProjectionNode(_a) {\n var attachResizeListener = _a.attachResizeListener, defaultParent = _a.defaultParent, measureScroll = _a.measureScroll, checkIsScrollRoot = _a.checkIsScrollRoot, resetTransform = _a.resetTransform;\n return /** @class */ (function () {\n function ProjectionNode(id, latestValues, parent) {\n var _this = this;\n if (latestValues === void 0) { latestValues = {}; }\n if (parent === void 0) { parent = defaultParent === null || defaultParent === void 0 ? void 0 : defaultParent(); }\n /**\n * A Set containing all this component's children. This is used to iterate\n * through the children.\n *\n * TODO: This could be faster to iterate as a flat array stored on the root node.\n */\n this.children = new Set();\n /**\n * Options for the node. We use this to configure what kind of layout animations\n * we should perform (if any).\n */\n this.options = {};\n /**\n * We use this to detect when its safe to shut down part of a projection tree.\n * We have to keep projecting children for scale correction and relative projection\n * until all their parents stop performing layout animations.\n */\n this.isTreeAnimating = false;\n this.isAnimationBlocked = false;\n /**\n * Flag to true if we think this layout has been changed. We can't always know this,\n * currently we set it to true every time a component renders, or if it has a layoutDependency\n * if that has changed between renders. Additionally, components can be grouped by LayoutGroup\n * and if one node is dirtied, they all are.\n */\n this.isLayoutDirty = false;\n /**\n * Block layout updates for instant layout transitions throughout the tree.\n */\n this.updateManuallyBlocked = false;\n this.updateBlockedByResize = false;\n /**\n * Set to true between the start of the first `willUpdate` call and the end of the `didUpdate`\n * call.\n */\n this.isUpdating = false;\n /**\n * If this is an SVG element we currently disable projection transforms\n */\n this.isSVG = false;\n /**\n * Flag to true (during promotion) if a node doing an instant layout transition needs to reset\n * its projection styles.\n */\n this.needsReset = false;\n /**\n * Flags whether this node should have its transform reset prior to measuring.\n */\n this.shouldResetTransform = false;\n /**\n * An object representing the calculated contextual/accumulated/tree scale.\n * This will be used to scale calculcated projection transforms, as these are\n * calculated in screen-space but need to be scaled for elements to actually\n * make it to their calculated destinations.\n *\n * TODO: Lazy-init\n */\n this.treeScale = { x: 1, y: 1 };\n /**\n *\n */\n this.eventHandlers = new Map();\n // Note: Currently only running on root node\n this.potentialNodes = new Map();\n this.checkUpdateFailed = function () {\n if (_this.isUpdating) {\n _this.isUpdating = false;\n _this.clearAllSnapshots();\n }\n };\n this.updateProjection = function () {\n _this.nodes.forEach(resolveTargetDelta);\n _this.nodes.forEach(calcProjection);\n };\n this.hasProjected = false;\n this.isVisible = true;\n this.animationProgress = 0;\n /**\n * Shared layout\n */\n // TODO Only running on root node\n this.sharedNodes = new Map();\n this.id = id;\n this.latestValues = latestValues;\n this.root = parent ? parent.root || parent : this;\n this.path = parent ? tslib.__spreadArray(tslib.__spreadArray([], tslib.__read(parent.path), false), [parent], false) : [];\n this.parent = parent;\n this.depth = parent ? parent.depth + 1 : 0;\n id && this.root.registerPotentialNode(id, this);\n for (var i = 0; i < this.path.length; i++) {\n this.path[i].shouldResetTransform = true;\n }\n if (this.root === this)\n this.nodes = new FlatTree();\n }\n ProjectionNode.prototype.addEventListener = function (name, handler) {\n if (!this.eventHandlers.has(name)) {\n this.eventHandlers.set(name, new SubscriptionManager());\n }\n return this.eventHandlers.get(name).add(handler);\n };\n ProjectionNode.prototype.notifyListeners = function (name) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var subscriptionManager = this.eventHandlers.get(name);\n subscriptionManager === null || subscriptionManager === void 0 ? void 0 : subscriptionManager.notify.apply(subscriptionManager, tslib.__spreadArray([], tslib.__read(args), false));\n };\n ProjectionNode.prototype.hasListeners = function (name) {\n return this.eventHandlers.has(name);\n };\n ProjectionNode.prototype.registerPotentialNode = function (id, node) {\n this.potentialNodes.set(id, node);\n };\n /**\n * Lifecycles\n */\n ProjectionNode.prototype.mount = function (instance, isLayoutDirty) {\n var _this = this;\n var _a;\n if (isLayoutDirty === void 0) { isLayoutDirty = false; }\n if (this.instance)\n return;\n this.isSVG =\n instance instanceof SVGElement && instance.tagName !== \"svg\";\n this.instance = instance;\n var _b = this.options, layoutId = _b.layoutId, layout = _b.layout, visualElement = _b.visualElement;\n if (visualElement && !visualElement.getInstance()) {\n visualElement.mount(instance);\n }\n this.root.nodes.add(this);\n (_a = this.parent) === null || _a === void 0 ? void 0 : _a.children.add(this);\n this.id && this.root.potentialNodes.delete(this.id);\n if (isLayoutDirty && (layout || layoutId)) {\n this.isLayoutDirty = true;\n }\n if (attachResizeListener) {\n var unblockTimeout_1;\n var resizeUnblockUpdate_1 = function () {\n return (_this.root.updateBlockedByResize = false);\n };\n attachResizeListener(instance, function () {\n _this.root.updateBlockedByResize = true;\n clearTimeout(unblockTimeout_1);\n unblockTimeout_1 = window.setTimeout(resizeUnblockUpdate_1, 250);\n if (globalProjectionState.hasAnimatedSinceResize) {\n globalProjectionState.hasAnimatedSinceResize = false;\n _this.nodes.forEach(finishAnimation);\n }\n });\n }\n if (layoutId) {\n this.root.registerSharedNode(layoutId, this);\n }\n // Only register the handler if it requires layout animation\n if (this.options.animate !== false &&\n visualElement &&\n (layoutId || layout)) {\n this.addEventListener(\"didUpdate\", function (_a) {\n var _b, _c, _d, _e, _f;\n var delta = _a.delta, hasLayoutChanged = _a.hasLayoutChanged, hasRelativeTargetChanged = _a.hasRelativeTargetChanged, newLayout = _a.layout;\n if (_this.isTreeAnimationBlocked()) {\n _this.target = undefined;\n _this.relativeTarget = undefined;\n return;\n }\n // TODO: Check here if an animation exists\n var layoutTransition = (_c = (_b = _this.options.transition) !== null && _b !== void 0 ? _b : visualElement.getDefaultTransition()) !== null && _c !== void 0 ? _c : defaultLayoutTransition;\n var _g = visualElement.getProps(), onLayoutAnimationStart = _g.onLayoutAnimationStart, onLayoutAnimationComplete = _g.onLayoutAnimationComplete;\n /**\n * The target layout of the element might stay the same,\n * but its position relative to its parent has changed.\n */\n var targetChanged = !_this.targetLayout ||\n !boxEquals(_this.targetLayout, newLayout) ||\n hasRelativeTargetChanged;\n /**\n * If the layout hasn't seemed to have changed, it might be that the\n * element is visually in the same place in the document but its position\n * relative to its parent has indeed changed. So here we check for that.\n */\n var hasOnlyRelativeTargetChanged = !hasLayoutChanged && hasRelativeTargetChanged;\n if (((_d = _this.resumeFrom) === null || _d === void 0 ? void 0 : _d.instance) ||\n hasOnlyRelativeTargetChanged ||\n (hasLayoutChanged &&\n (targetChanged || !_this.currentAnimation))) {\n if (_this.resumeFrom) {\n _this.resumingFrom = _this.resumeFrom;\n _this.resumingFrom.resumingFrom = undefined;\n }\n _this.setAnimationOrigin(delta, hasOnlyRelativeTargetChanged);\n var animationOptions = tslib.__assign(tslib.__assign({}, getValueTransition(layoutTransition, \"layout\")), { onPlay: onLayoutAnimationStart, onComplete: onLayoutAnimationComplete });\n if (visualElement.shouldReduceMotion) {\n animationOptions.delay = 0;\n animationOptions.type = false;\n }\n _this.startAnimation(animationOptions);\n }\n else {\n /**\n * If the layout hasn't changed and we have an animation that hasn't started yet,\n * finish it immediately. Otherwise it will be animating from a location\n * that was probably never commited to screen and look like a jumpy box.\n */\n if (!hasLayoutChanged &&\n _this.animationProgress === 0) {\n _this.finishAnimation();\n }\n _this.isLead() && ((_f = (_e = _this.options).onExitComplete) === null || _f === void 0 ? void 0 : _f.call(_e));\n }\n _this.targetLayout = newLayout;\n });\n }\n };\n ProjectionNode.prototype.unmount = function () {\n var _a, _b;\n this.options.layoutId && this.willUpdate();\n this.root.nodes.remove(this);\n (_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.remove(this);\n (_b = this.parent) === null || _b === void 0 ? void 0 : _b.children.delete(this);\n this.instance = undefined;\n sync.cancelSync.preRender(this.updateProjection);\n };\n // only on the root\n ProjectionNode.prototype.blockUpdate = function () {\n this.updateManuallyBlocked = true;\n };\n ProjectionNode.prototype.unblockUpdate = function () {\n this.updateManuallyBlocked = false;\n };\n ProjectionNode.prototype.isUpdateBlocked = function () {\n return this.updateManuallyBlocked || this.updateBlockedByResize;\n };\n ProjectionNode.prototype.isTreeAnimationBlocked = function () {\n var _a;\n return (this.isAnimationBlocked ||\n ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isTreeAnimationBlocked()) ||\n false);\n };\n // Note: currently only running on root node\n ProjectionNode.prototype.startUpdate = function () {\n var _a;\n if (this.isUpdateBlocked())\n return;\n this.isUpdating = true;\n (_a = this.nodes) === null || _a === void 0 ? void 0 : _a.forEach(resetRotation);\n };\n ProjectionNode.prototype.willUpdate = function (shouldNotifyListeners) {\n var _a, _b, _c;\n if (shouldNotifyListeners === void 0) { shouldNotifyListeners = true; }\n if (this.root.isUpdateBlocked()) {\n (_b = (_a = this.options).onExitComplete) === null || _b === void 0 ? void 0 : _b.call(_a);\n return;\n }\n !this.root.isUpdating && this.root.startUpdate();\n if (this.isLayoutDirty)\n return;\n this.isLayoutDirty = true;\n for (var i = 0; i < this.path.length; i++) {\n var node = this.path[i];\n node.shouldResetTransform = true;\n /**\n * TODO: Check we haven't updated the scroll\n * since the last didUpdate\n */\n node.updateScroll();\n }\n var _d = this.options, layoutId = _d.layoutId, layout = _d.layout;\n if (layoutId === undefined && !layout)\n return;\n var transformTemplate = (_c = this.options.visualElement) === null || _c === void 0 ? void 0 : _c.getProps().transformTemplate;\n this.prevTransformTemplateValue = transformTemplate === null || transformTemplate === void 0 ? void 0 : transformTemplate(this.latestValues, \"\");\n this.updateSnapshot();\n shouldNotifyListeners && this.notifyListeners(\"willUpdate\");\n };\n // Note: Currently only running on root node\n ProjectionNode.prototype.didUpdate = function () {\n var updateWasBlocked = this.isUpdateBlocked();\n // When doing an instant transition, we skip the layout update,\n // but should still clean up the measurements so that the next\n // snapshot could be taken correctly.\n if (updateWasBlocked) {\n this.unblockUpdate();\n this.clearAllSnapshots();\n this.nodes.forEach(clearMeasurements);\n return;\n }\n if (!this.isUpdating)\n return;\n this.isUpdating = false;\n /**\n * Search for and mount newly-added projection elements.\n *\n * TODO: Every time a new component is rendered we could search up the tree for\n * the closest mounted node and query from there rather than document.\n */\n if (this.potentialNodes.size) {\n this.potentialNodes.forEach(mountNodeEarly);\n this.potentialNodes.clear();\n }\n /**\n * Write\n */\n this.nodes.forEach(resetTransformStyle);\n /**\n * Read ==================\n */\n // Update layout measurements of updated children\n this.nodes.forEach(updateLayout);\n /**\n * Write\n */\n // Notify listeners that the layout is updated\n this.nodes.forEach(notifyLayoutUpdate);\n this.clearAllSnapshots();\n // Flush any scheduled updates\n sync.flushSync.update();\n sync.flushSync.preRender();\n sync.flushSync.render();\n };\n ProjectionNode.prototype.clearAllSnapshots = function () {\n this.nodes.forEach(clearSnapshot);\n this.sharedNodes.forEach(removeLeadSnapshots);\n };\n ProjectionNode.prototype.scheduleUpdateProjection = function () {\n sync__default[\"default\"].preRender(this.updateProjection, false, true);\n };\n ProjectionNode.prototype.scheduleCheckAfterUnmount = function () {\n var _this = this;\n /**\n * If the unmounting node is in a layoutGroup and did trigger a willUpdate,\n * we manually call didUpdate to give a chance to the siblings to animate.\n * Otherwise, cleanup all snapshots to prevents future nodes from reusing them.\n */\n sync__default[\"default\"].postRender(function () {\n if (_this.isLayoutDirty) {\n _this.root.didUpdate();\n }\n else {\n _this.root.checkUpdateFailed();\n }\n });\n };\n /**\n * Update measurements\n */\n ProjectionNode.prototype.updateSnapshot = function () {\n if (this.snapshot || !this.instance)\n return;\n var measured = this.measure();\n var layout = this.removeTransform(this.removeElementScroll(measured));\n roundBox(layout);\n this.snapshot = {\n measured: measured,\n layout: layout,\n latestValues: {},\n };\n };\n ProjectionNode.prototype.updateLayout = function () {\n var _a;\n if (!this.instance)\n return;\n // TODO: Incorporate into a forwarded scroll offset\n this.updateScroll();\n if (!(this.options.alwaysMeasureLayout && this.isLead()) &&\n !this.isLayoutDirty) {\n return;\n }\n /**\n * When a node is mounted, it simply resumes from the prevLead's\n * snapshot instead of taking a new one, but the ancestors scroll\n * might have updated while the prevLead is unmounted. We need to\n * update the scroll again to make sure the layout we measure is\n * up to date.\n */\n if (this.resumeFrom && !this.resumeFrom.instance) {\n for (var i = 0; i < this.path.length; i++) {\n var node = this.path[i];\n node.updateScroll();\n }\n }\n var measured = this.measure();\n roundBox(measured);\n var prevLayout = this.layout;\n this.layout = {\n measured: measured,\n actual: this.removeElementScroll(measured),\n };\n this.layoutCorrected = createBox();\n this.isLayoutDirty = false;\n this.projectionDelta = undefined;\n this.notifyListeners(\"measure\", this.layout.actual);\n (_a = this.options.visualElement) === null || _a === void 0 ? void 0 : _a.notifyLayoutMeasure(this.layout.actual, prevLayout === null || prevLayout === void 0 ? void 0 : prevLayout.actual);\n };\n ProjectionNode.prototype.updateScroll = function () {\n if (this.options.layoutScroll && this.instance) {\n this.isScrollRoot = checkIsScrollRoot(this.instance);\n this.scroll = measureScroll(this.instance);\n }\n };\n ProjectionNode.prototype.resetTransform = function () {\n var _a;\n if (!resetTransform)\n return;\n var isResetRequested = this.isLayoutDirty || this.shouldResetTransform;\n var hasProjection = this.projectionDelta && !isDeltaZero(this.projectionDelta);\n var transformTemplate = (_a = this.options.visualElement) === null || _a === void 0 ? void 0 : _a.getProps().transformTemplate;\n var transformTemplateValue = transformTemplate === null || transformTemplate === void 0 ? void 0 : transformTemplate(this.latestValues, \"\");\n var transformTemplateHasChanged = transformTemplateValue !== this.prevTransformTemplateValue;\n if (isResetRequested &&\n (hasProjection ||\n hasTransform(this.latestValues) ||\n transformTemplateHasChanged)) {\n resetTransform(this.instance, transformTemplateValue);\n this.shouldResetTransform = false;\n this.scheduleRender();\n }\n };\n ProjectionNode.prototype.measure = function () {\n var visualElement = this.options.visualElement;\n if (!visualElement)\n return createBox();\n var box = visualElement.measureViewportBox();\n // Remove viewport scroll to give page-relative coordinates\n var scroll = this.root.scroll;\n if (scroll) {\n translateAxis(box.x, scroll.x);\n translateAxis(box.y, scroll.y);\n }\n return box;\n };\n ProjectionNode.prototype.removeElementScroll = function (box) {\n var boxWithoutScroll = createBox();\n copyBoxInto(boxWithoutScroll, box);\n /**\n * Performance TODO: Keep a cumulative scroll offset down the tree\n * rather than loop back up the path.\n */\n for (var i = 0; i < this.path.length; i++) {\n var node = this.path[i];\n var scroll_1 = node.scroll, options = node.options, isScrollRoot = node.isScrollRoot;\n if (node !== this.root && scroll_1 && options.layoutScroll) {\n /**\n * If this is a new scroll root, we want to remove all previous scrolls\n * from the viewport box.\n */\n if (isScrollRoot) {\n copyBoxInto(boxWithoutScroll, box);\n var rootScroll = this.root.scroll;\n /**\n * Undo the application of page scroll that was originally added\n * to the measured bounding box.\n */\n if (rootScroll) {\n translateAxis(boxWithoutScroll.x, -rootScroll.x);\n translateAxis(boxWithoutScroll.y, -rootScroll.y);\n }\n }\n translateAxis(boxWithoutScroll.x, scroll_1.x);\n translateAxis(boxWithoutScroll.y, scroll_1.y);\n }\n }\n return boxWithoutScroll;\n };\n ProjectionNode.prototype.applyTransform = function (box, transformOnly) {\n if (transformOnly === void 0) { transformOnly = false; }\n var withTransforms = createBox();\n copyBoxInto(withTransforms, box);\n for (var i = 0; i < this.path.length; i++) {\n var node = this.path[i];\n if (!transformOnly &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(withTransforms, {\n x: -node.scroll.x,\n y: -node.scroll.y,\n });\n }\n if (!hasTransform(node.latestValues))\n continue;\n transformBox(withTransforms, node.latestValues);\n }\n if (hasTransform(this.latestValues)) {\n transformBox(withTransforms, this.latestValues);\n }\n return withTransforms;\n };\n ProjectionNode.prototype.removeTransform = function (box) {\n var _a;\n var boxWithoutTransform = createBox();\n copyBoxInto(boxWithoutTransform, box);\n for (var i = 0; i < this.path.length; i++) {\n var node = this.path[i];\n if (!node.instance)\n continue;\n if (!hasTransform(node.latestValues))\n continue;\n hasScale(node.latestValues) && node.updateSnapshot();\n var sourceBox = createBox();\n var nodeBox = node.measure();\n copyBoxInto(sourceBox, nodeBox);\n removeBoxTransforms(boxWithoutTransform, node.latestValues, (_a = node.snapshot) === null || _a === void 0 ? void 0 : _a.layout, sourceBox);\n }\n if (hasTransform(this.latestValues)) {\n removeBoxTransforms(boxWithoutTransform, this.latestValues);\n }\n return boxWithoutTransform;\n };\n /**\n *\n */\n ProjectionNode.prototype.setTargetDelta = function (delta) {\n this.targetDelta = delta;\n this.root.scheduleUpdateProjection();\n };\n ProjectionNode.prototype.setOptions = function (options) {\n var _a;\n this.options = tslib.__assign(tslib.__assign(tslib.__assign({}, this.options), options), { crossfade: (_a = options.crossfade) !== null && _a !== void 0 ? _a : true });\n };\n ProjectionNode.prototype.clearMeasurements = function () {\n this.scroll = undefined;\n this.layout = undefined;\n this.snapshot = undefined;\n this.prevTransformTemplateValue = undefined;\n this.targetDelta = undefined;\n this.target = undefined;\n this.isLayoutDirty = false;\n };\n /**\n * Frame calculations\n */\n ProjectionNode.prototype.resolveTargetDelta = function () {\n var _a;\n var _b = this.options, layout = _b.layout, layoutId = _b.layoutId;\n /**\n * If we have no layout, we can't perform projection, so early return\n */\n if (!this.layout || !(layout || layoutId))\n return;\n /**\n * If we don't have a targetDelta but do have a layout, we can attempt to resolve\n * a relativeParent. This will allow a component to perform scale correction\n * even if no animation has started.\n */\n // TODO If this is unsuccessful this currently happens every frame\n if (!this.targetDelta && !this.relativeTarget) {\n // TODO: This is a semi-repetition of further down this function, make DRY\n this.relativeParent = this.getClosestProjectingParent();\n if (this.relativeParent && this.relativeParent.layout) {\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.layout.actual, this.relativeParent.layout.actual);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n }\n }\n /**\n * If we have no relative target or no target delta our target isn't valid\n * for this frame.\n */\n if (!this.relativeTarget && !this.targetDelta)\n return;\n /**\n * Lazy-init target data structure\n */\n if (!this.target) {\n this.target = createBox();\n this.targetWithTransforms = createBox();\n }\n /**\n * If we've got a relative box for this component, resolve it into a target relative to the parent.\n */\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n ((_a = this.relativeParent) === null || _a === void 0 ? void 0 : _a.target)) {\n calcRelativeBox(this.target, this.relativeTarget, this.relativeParent.target);\n /**\n * If we've only got a targetDelta, resolve it into a target\n */\n }\n else if (this.targetDelta) {\n if (Boolean(this.resumingFrom)) {\n // TODO: This is creating a new object every frame\n this.target = this.applyTransform(this.layout.actual);\n }\n else {\n copyBoxInto(this.target, this.layout.actual);\n }\n applyBoxDelta(this.target, this.targetDelta);\n }\n else {\n /**\n * If no target, use own layout as target\n */\n copyBoxInto(this.target, this.layout.actual);\n }\n /**\n * If we've been told to attempt to resolve a relative target, do so.\n */\n if (this.attemptToResolveRelativeTarget) {\n this.attemptToResolveRelativeTarget = false;\n this.relativeParent = this.getClosestProjectingParent();\n if (this.relativeParent &&\n Boolean(this.relativeParent.resumingFrom) ===\n Boolean(this.resumingFrom) &&\n !this.relativeParent.options.layoutScroll &&\n this.relativeParent.target) {\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.target, this.relativeParent.target);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n }\n }\n };\n ProjectionNode.prototype.getClosestProjectingParent = function () {\n if (!this.parent || hasTransform(this.parent.latestValues))\n return undefined;\n if ((this.parent.relativeTarget || this.parent.targetDelta) &&\n this.parent.layout) {\n return this.parent;\n }\n else {\n return this.parent.getClosestProjectingParent();\n }\n };\n ProjectionNode.prototype.calcProjection = function () {\n var _a;\n var _b = this.options, layout = _b.layout, layoutId = _b.layoutId;\n /**\n * If this section of the tree isn't animating we can\n * delete our target sources for the following frame.\n */\n this.isTreeAnimating = Boolean(((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isTreeAnimating) ||\n this.currentAnimation ||\n this.pendingAnimation);\n if (!this.isTreeAnimating) {\n this.targetDelta = this.relativeTarget = undefined;\n }\n if (!this.layout || !(layout || layoutId))\n return;\n var lead = this.getLead();\n /**\n * Reset the corrected box with the latest values from box, as we're then going\n * to perform mutative operations on it.\n */\n copyBoxInto(this.layoutCorrected, this.layout.actual);\n /**\n * Apply all the parent deltas to this box to produce the corrected box. This\n * is the layout box, as it will appear on screen as a result of the transforms of its parents.\n */\n applyTreeDeltas(this.layoutCorrected, this.treeScale, this.path, Boolean(this.resumingFrom) || this !== lead);\n var target = lead.target;\n if (!target)\n return;\n if (!this.projectionDelta) {\n this.projectionDelta = createDelta();\n this.projectionDeltaWithTransform = createDelta();\n }\n var prevTreeScaleX = this.treeScale.x;\n var prevTreeScaleY = this.treeScale.y;\n var prevProjectionTransform = this.projectionTransform;\n /**\n * Update the delta between the corrected box and the target box before user-set transforms were applied.\n * This will allow us to calculate the corrected borderRadius and boxShadow to compensate\n * for our layout reprojection, but still allow them to be scaled correctly by the user.\n * It might be that to simplify this we may want to accept that user-set scale is also corrected\n * and we wouldn't have to keep and calc both deltas, OR we could support a user setting\n * to allow people to choose whether these styles are corrected based on just the\n * layout reprojection or the final bounding box.\n */\n calcBoxDelta(this.projectionDelta, this.layoutCorrected, target, this.latestValues);\n this.projectionTransform = buildProjectionTransform(this.projectionDelta, this.treeScale);\n if (this.projectionTransform !== prevProjectionTransform ||\n this.treeScale.x !== prevTreeScaleX ||\n this.treeScale.y !== prevTreeScaleY) {\n this.hasProjected = true;\n this.scheduleRender();\n this.notifyListeners(\"projectionUpdate\", target);\n }\n };\n ProjectionNode.prototype.hide = function () {\n this.isVisible = false;\n // TODO: Schedule render\n };\n ProjectionNode.prototype.show = function () {\n this.isVisible = true;\n // TODO: Schedule render\n };\n ProjectionNode.prototype.scheduleRender = function (notifyAll) {\n var _a, _b, _c;\n if (notifyAll === void 0) { notifyAll = true; }\n (_b = (_a = this.options).scheduleRender) === null || _b === void 0 ? void 0 : _b.call(_a);\n notifyAll && ((_c = this.getStack()) === null || _c === void 0 ? void 0 : _c.scheduleRender());\n if (this.resumingFrom && !this.resumingFrom.instance) {\n this.resumingFrom = undefined;\n }\n };\n ProjectionNode.prototype.setAnimationOrigin = function (delta, hasOnlyRelativeTargetChanged) {\n var _this = this;\n var _a;\n if (hasOnlyRelativeTargetChanged === void 0) { hasOnlyRelativeTargetChanged = false; }\n var snapshot = this.snapshot;\n var snapshotLatestValues = (snapshot === null || snapshot === void 0 ? void 0 : snapshot.latestValues) || {};\n var mixedValues = tslib.__assign({}, this.latestValues);\n var targetDelta = createDelta();\n this.relativeTarget = this.relativeTargetOrigin = undefined;\n this.attemptToResolveRelativeTarget = !hasOnlyRelativeTargetChanged;\n var relativeLayout = createBox();\n var isSharedLayoutAnimation = snapshot === null || snapshot === void 0 ? void 0 : snapshot.isShared;\n var isOnlyMember = (((_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.members.length) || 0) <= 1;\n var shouldCrossfadeOpacity = Boolean(isSharedLayoutAnimation &&\n !isOnlyMember &&\n this.options.crossfade === true &&\n !this.path.some(hasOpacityCrossfade));\n this.animationProgress = 0;\n this.mixTargetDelta = function (latest) {\n var _a;\n var progress = latest / 1000;\n mixAxisDelta(targetDelta.x, delta.x, progress);\n mixAxisDelta(targetDelta.y, delta.y, progress);\n _this.setTargetDelta(targetDelta);\n if (_this.relativeTarget &&\n _this.relativeTargetOrigin &&\n _this.layout &&\n ((_a = _this.relativeParent) === null || _a === void 0 ? void 0 : _a.layout)) {\n calcRelativePosition(relativeLayout, _this.layout.actual, _this.relativeParent.layout.actual);\n mixBox(_this.relativeTarget, _this.relativeTargetOrigin, relativeLayout, progress);\n }\n if (isSharedLayoutAnimation) {\n _this.animationValues = mixedValues;\n mixValues(mixedValues, snapshotLatestValues, _this.latestValues, progress, shouldCrossfadeOpacity, isOnlyMember);\n }\n _this.root.scheduleUpdateProjection();\n _this.scheduleRender();\n _this.animationProgress = progress;\n };\n this.mixTargetDelta(0);\n };\n ProjectionNode.prototype.startAnimation = function (options) {\n var _this = this;\n var _a, _b;\n this.notifyListeners(\"animationStart\");\n (_a = this.currentAnimation) === null || _a === void 0 ? void 0 : _a.stop();\n if (this.resumingFrom) {\n (_b = this.resumingFrom.currentAnimation) === null || _b === void 0 ? void 0 : _b.stop();\n }\n if (this.pendingAnimation) {\n sync.cancelSync.update(this.pendingAnimation);\n this.pendingAnimation = undefined;\n }\n /**\n * Start the animation in the next frame to have a frame with progress 0,\n * where the target is the same as when the animation started, so we can\n * calculate the relative positions correctly for instant transitions.\n */\n this.pendingAnimation = sync__default[\"default\"].update(function () {\n globalProjectionState.hasAnimatedSinceResize = true;\n _this.currentAnimation = animate(0, animationTarget, tslib.__assign(tslib.__assign({}, options), { onUpdate: function (latest) {\n var _a;\n _this.mixTargetDelta(latest);\n (_a = options.onUpdate) === null || _a === void 0 ? void 0 : _a.call(options, latest);\n }, onComplete: function () {\n var _a;\n (_a = options.onComplete) === null || _a === void 0 ? void 0 : _a.call(options);\n _this.completeAnimation();\n } }));\n if (_this.resumingFrom) {\n _this.resumingFrom.currentAnimation = _this.currentAnimation;\n }\n _this.pendingAnimation = undefined;\n });\n };\n ProjectionNode.prototype.completeAnimation = function () {\n var _a;\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = undefined;\n this.resumingFrom.preserveOpacity = undefined;\n }\n (_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.exitAnimationComplete();\n this.resumingFrom =\n this.currentAnimation =\n this.animationValues =\n undefined;\n this.notifyListeners(\"animationComplete\");\n };\n ProjectionNode.prototype.finishAnimation = function () {\n var _a;\n if (this.currentAnimation) {\n (_a = this.mixTargetDelta) === null || _a === void 0 ? void 0 : _a.call(this, animationTarget);\n this.currentAnimation.stop();\n }\n this.completeAnimation();\n };\n ProjectionNode.prototype.applyTransformsToTarget = function () {\n var _a = this.getLead(), targetWithTransforms = _a.targetWithTransforms, target = _a.target, layout = _a.layout, latestValues = _a.latestValues;\n if (!targetWithTransforms || !target || !layout)\n return;\n copyBoxInto(targetWithTransforms, target);\n /**\n * Apply the latest user-set transforms to the targetBox to produce the targetBoxFinal.\n * This is the final box that we will then project into by calculating a transform delta and\n * applying it to the corrected box.\n */\n transformBox(targetWithTransforms, latestValues);\n /**\n * Update the delta between the corrected box and the final target box, after\n * user-set transforms are applied to it. This will be used by the renderer to\n * create a transform style that will reproject the element from its actual layout\n * into the desired bounding box.\n */\n calcBoxDelta(this.projectionDeltaWithTransform, this.layoutCorrected, targetWithTransforms, latestValues);\n };\n ProjectionNode.prototype.registerSharedNode = function (layoutId, node) {\n var _a, _b, _c;\n if (!this.sharedNodes.has(layoutId)) {\n this.sharedNodes.set(layoutId, new NodeStack());\n }\n var stack = this.sharedNodes.get(layoutId);\n stack.add(node);\n node.promote({\n transition: (_a = node.options.initialPromotionConfig) === null || _a === void 0 ? void 0 : _a.transition,\n preserveFollowOpacity: (_c = (_b = node.options.initialPromotionConfig) === null || _b === void 0 ? void 0 : _b.shouldPreserveFollowOpacity) === null || _c === void 0 ? void 0 : _c.call(_b, node),\n });\n };\n ProjectionNode.prototype.isLead = function () {\n var stack = this.getStack();\n return stack ? stack.lead === this : true;\n };\n ProjectionNode.prototype.getLead = function () {\n var _a;\n var layoutId = this.options.layoutId;\n return layoutId ? ((_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.lead) || this : this;\n };\n ProjectionNode.prototype.getPrevLead = function () {\n var _a;\n var layoutId = this.options.layoutId;\n return layoutId ? (_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.prevLead : undefined;\n };\n ProjectionNode.prototype.getStack = function () {\n var layoutId = this.options.layoutId;\n if (layoutId)\n return this.root.sharedNodes.get(layoutId);\n };\n ProjectionNode.prototype.promote = function (_a) {\n var _b = _a === void 0 ? {} : _a, needsReset = _b.needsReset, transition = _b.transition, preserveFollowOpacity = _b.preserveFollowOpacity;\n var stack = this.getStack();\n if (stack)\n stack.promote(this, preserveFollowOpacity);\n if (needsReset) {\n this.projectionDelta = undefined;\n this.needsReset = true;\n }\n if (transition)\n this.setOptions({ transition: transition });\n };\n ProjectionNode.prototype.relegate = function () {\n var stack = this.getStack();\n if (stack) {\n return stack.relegate(this);\n }\n else {\n return false;\n }\n };\n ProjectionNode.prototype.resetRotation = function () {\n var visualElement = this.options.visualElement;\n if (!visualElement)\n return;\n // If there's no detected rotation values, we can early return without a forced render.\n var hasRotate = false;\n // Keep a record of all the values we've reset\n var resetValues = {};\n // Check the rotate value of all axes and reset to 0\n for (var i = 0; i < transformAxes.length; i++) {\n var axis = transformAxes[i];\n var key = \"rotate\" + axis;\n // If this rotation doesn't exist as a motion value, then we don't\n // need to reset it\n if (!visualElement.getStaticValue(key)) {\n continue;\n }\n hasRotate = true;\n // Record the rotation and then temporarily set it to 0\n resetValues[key] = visualElement.getStaticValue(key);\n visualElement.setStaticValue(key, 0);\n }\n // If there's no rotation values, we don't need to do any more.\n if (!hasRotate)\n return;\n // Force a render of this element to apply the transform with all rotations\n // set to 0.\n visualElement === null || visualElement === void 0 ? void 0 : visualElement.syncRender();\n // Put back all the values we reset\n for (var key in resetValues) {\n visualElement.setStaticValue(key, resetValues[key]);\n }\n // Schedule a render for the next frame. This ensures we won't visually\n // see the element with the reset rotate value applied.\n visualElement.scheduleRender();\n };\n ProjectionNode.prototype.getProjectionStyles = function (styleProp) {\n var _a, _b, _c, _d, _e, _f;\n if (styleProp === void 0) { styleProp = {}; }\n // TODO: Return lifecycle-persistent object\n var styles = {};\n if (!this.instance || this.isSVG)\n return styles;\n if (!this.isVisible) {\n return { visibility: \"hidden\" };\n }\n else {\n styles.visibility = \"\";\n }\n var transformTemplate = (_a = this.options.visualElement) === null || _a === void 0 ? void 0 : _a.getProps().transformTemplate;\n if (this.needsReset) {\n this.needsReset = false;\n styles.opacity = \"\";\n styles.pointerEvents =\n resolveMotionValue(styleProp.pointerEvents) || \"\";\n styles.transform = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : \"none\";\n return styles;\n }\n var lead = this.getLead();\n if (!this.projectionDelta || !this.layout || !lead.target) {\n var emptyStyles = {};\n if (this.options.layoutId) {\n emptyStyles.opacity = (_b = this.latestValues.opacity) !== null && _b !== void 0 ? _b : 1;\n emptyStyles.pointerEvents =\n resolveMotionValue(styleProp.pointerEvents) || \"\";\n }\n if (this.hasProjected && !hasTransform(this.latestValues)) {\n emptyStyles.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n this.hasProjected = false;\n }\n return emptyStyles;\n }\n var valuesToRender = lead.animationValues || lead.latestValues;\n this.applyTransformsToTarget();\n styles.transform = buildProjectionTransform(this.projectionDeltaWithTransform, this.treeScale, valuesToRender);\n if (transformTemplate) {\n styles.transform = transformTemplate(valuesToRender, styles.transform);\n }\n var _g = this.projectionDelta, x = _g.x, y = _g.y;\n styles.transformOrigin = \"\".concat(x.origin * 100, \"% \").concat(y.origin * 100, \"% 0\");\n if (lead.animationValues) {\n /**\n * If the lead component is animating, assign this either the entering/leaving\n * opacity\n */\n styles.opacity =\n lead === this\n ? (_d = (_c = valuesToRender.opacity) !== null && _c !== void 0 ? _c : this.latestValues.opacity) !== null && _d !== void 0 ? _d : 1\n : this.preserveOpacity\n ? this.latestValues.opacity\n : valuesToRender.opacityExit;\n }\n else {\n /**\n * Or we're not animating at all, set the lead component to its actual\n * opacity and other components to hidden.\n */\n styles.opacity =\n lead === this\n ? (_e = valuesToRender.opacity) !== null && _e !== void 0 ? _e : \"\"\n : (_f = valuesToRender.opacityExit) !== null && _f !== void 0 ? _f : 0;\n }\n /**\n * Apply scale correction\n */\n for (var key in scaleCorrectors) {\n if (valuesToRender[key] === undefined)\n continue;\n var _h = scaleCorrectors[key], correct = _h.correct, applyTo = _h.applyTo;\n var corrected = correct(valuesToRender[key], lead);\n if (applyTo) {\n var num = applyTo.length;\n for (var i = 0; i < num; i++) {\n styles[applyTo[i]] = corrected;\n }\n }\n else {\n styles[key] = corrected;\n }\n }\n /**\n * Disable pointer events on follow components. This is to ensure\n * that if a follow component covers a lead component it doesn't block\n * pointer events on the lead.\n */\n if (this.options.layoutId) {\n styles.pointerEvents =\n lead === this\n ? resolveMotionValue(styleProp.pointerEvents) || \"\"\n : \"none\";\n }\n return styles;\n };\n ProjectionNode.prototype.clearSnapshot = function () {\n this.resumeFrom = this.snapshot = undefined;\n };\n // Only run on root\n ProjectionNode.prototype.resetTree = function () {\n this.root.nodes.forEach(function (node) { var _a; return (_a = node.currentAnimation) === null || _a === void 0 ? void 0 : _a.stop(); });\n this.root.nodes.forEach(clearMeasurements);\n this.root.sharedNodes.clear();\n };\n return ProjectionNode;\n }());\n}\nfunction updateLayout(node) {\n node.updateLayout();\n}\nfunction notifyLayoutUpdate(node) {\n var _a, _b, _c, _d;\n var snapshot = (_b = (_a = node.resumeFrom) === null || _a === void 0 ? void 0 : _a.snapshot) !== null && _b !== void 0 ? _b : node.snapshot;\n if (node.isLead() &&\n node.layout &&\n snapshot &&\n node.hasListeners(\"didUpdate\")) {\n var _e = node.layout, layout_1 = _e.actual, measuredLayout = _e.measured;\n // TODO Maybe we want to also resize the layout snapshot so we don't trigger\n // animations for instance if layout=\"size\" and an element has only changed position\n if (node.options.animationType === \"size\") {\n eachAxis(function (axis) {\n var axisSnapshot = snapshot.isShared\n ? snapshot.measured[axis]\n : snapshot.layout[axis];\n var length = calcLength(axisSnapshot);\n axisSnapshot.min = layout_1[axis].min;\n axisSnapshot.max = axisSnapshot.min + length;\n });\n }\n else if (node.options.animationType === \"position\") {\n eachAxis(function (axis) {\n var axisSnapshot = snapshot.isShared\n ? snapshot.measured[axis]\n : snapshot.layout[axis];\n var length = calcLength(layout_1[axis]);\n axisSnapshot.max = axisSnapshot.min + length;\n });\n }\n var layoutDelta = createDelta();\n calcBoxDelta(layoutDelta, layout_1, snapshot.layout);\n var visualDelta = createDelta();\n if (snapshot.isShared) {\n calcBoxDelta(visualDelta, node.applyTransform(measuredLayout, true), snapshot.measured);\n }\n else {\n calcBoxDelta(visualDelta, layout_1, snapshot.layout);\n }\n var hasLayoutChanged = !isDeltaZero(layoutDelta);\n var hasRelativeTargetChanged = false;\n if (!node.resumeFrom) {\n node.relativeParent = node.getClosestProjectingParent();\n /**\n * If the relativeParent is itself resuming from a different element then\n * the relative snapshot is not relavent\n */\n if (node.relativeParent && !node.relativeParent.resumeFrom) {\n var _f = node.relativeParent, parentSnapshot = _f.snapshot, parentLayout = _f.layout;\n if (parentSnapshot && parentLayout) {\n var relativeSnapshot = createBox();\n calcRelativePosition(relativeSnapshot, snapshot.layout, parentSnapshot.layout);\n var relativeLayout = createBox();\n calcRelativePosition(relativeLayout, layout_1, parentLayout.actual);\n if (!boxEquals(relativeSnapshot, relativeLayout)) {\n hasRelativeTargetChanged = true;\n }\n }\n }\n }\n node.notifyListeners(\"didUpdate\", {\n layout: layout_1,\n snapshot: snapshot,\n delta: visualDelta,\n layoutDelta: layoutDelta,\n hasLayoutChanged: hasLayoutChanged,\n hasRelativeTargetChanged: hasRelativeTargetChanged,\n });\n }\n else if (node.isLead()) {\n (_d = (_c = node.options).onExitComplete) === null || _d === void 0 ? void 0 : _d.call(_c);\n }\n /**\n * Clearing transition\n * TODO: Investigate why this transition is being passed in as {type: false } from Framer\n * and why we need it at all\n */\n node.options.transition = undefined;\n}\nfunction clearSnapshot(node) {\n node.clearSnapshot();\n}\nfunction clearMeasurements(node) {\n node.clearMeasurements();\n}\nfunction resetTransformStyle(node) {\n var visualElement = node.options.visualElement;\n if (visualElement === null || visualElement === void 0 ? void 0 : visualElement.getProps().onBeforeLayoutMeasure) {\n visualElement.notifyBeforeLayoutMeasure();\n }\n node.resetTransform();\n}\nfunction finishAnimation(node) {\n node.finishAnimation();\n node.targetDelta = node.relativeTarget = node.target = undefined;\n}\nfunction resolveTargetDelta(node) {\n node.resolveTargetDelta();\n}\nfunction calcProjection(node) {\n node.calcProjection();\n}\nfunction resetRotation(node) {\n node.resetRotation();\n}\nfunction removeLeadSnapshots(stack) {\n stack.removeLeadSnapshot();\n}\nfunction mixAxisDelta(output, delta, p) {\n output.translate = popmotion.mix(delta.translate, 0, p);\n output.scale = popmotion.mix(delta.scale, 1, p);\n output.origin = delta.origin;\n output.originPoint = delta.originPoint;\n}\nfunction mixAxis(output, from, to, p) {\n output.min = popmotion.mix(from.min, to.min, p);\n output.max = popmotion.mix(from.max, to.max, p);\n}\nfunction mixBox(output, from, to, p) {\n mixAxis(output.x, from.x, to.x, p);\n mixAxis(output.y, from.y, to.y, p);\n}\nfunction hasOpacityCrossfade(node) {\n return (node.animationValues && node.animationValues.opacityExit !== undefined);\n}\nvar defaultLayoutTransition = {\n duration: 0.45,\n ease: [0.4, 0, 0.1, 1],\n};\nfunction mountNodeEarly(node, id) {\n /**\n * Rather than searching the DOM from document we can search the\n * path for the deepest mounted ancestor and search from there\n */\n var searchNode = node.root;\n for (var i = node.path.length - 1; i >= 0; i--) {\n if (Boolean(node.path[i].instance)) {\n searchNode = node.path[i];\n break;\n }\n }\n var searchElement = searchNode && searchNode !== node.root ? searchNode.instance : document;\n var element = searchElement.querySelector(\"[data-projection-id=\\\"\".concat(id, \"\\\"]\"));\n if (element)\n node.mount(element, true);\n}\nfunction roundAxis(axis) {\n axis.min = Math.round(axis.min);\n axis.max = Math.round(axis.max);\n}\nfunction roundBox(box) {\n roundAxis(box.x);\n roundAxis(box.y);\n}\n\nvar DocumentProjectionNode = createProjectionNode({\n attachResizeListener: function (ref, notify) { return addDomEvent(ref, \"resize\", notify); },\n measureScroll: function () { return ({\n x: document.documentElement.scrollLeft || document.body.scrollLeft,\n y: document.documentElement.scrollTop || document.body.scrollTop,\n }); },\n checkIsScrollRoot: function () { return true; },\n});\n\nvar rootProjectionNode = {\n current: undefined,\n};\nvar HTMLProjectionNode = createProjectionNode({\n measureScroll: function (instance) { return ({\n x: instance.scrollLeft,\n y: instance.scrollTop,\n }); },\n defaultParent: function () {\n if (!rootProjectionNode.current) {\n var documentNode = new DocumentProjectionNode(0, {});\n documentNode.mount(window);\n documentNode.setOptions({ layoutScroll: true });\n rootProjectionNode.current = documentNode;\n }\n return rootProjectionNode.current;\n },\n resetTransform: function (instance, value) {\n instance.style.transform = value !== null && value !== void 0 ? value : \"none\";\n },\n checkIsScrollRoot: function (instance) {\n return Boolean(window.getComputedStyle(instance).position === \"fixed\");\n },\n});\n\nvar featureBundle = tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign({}, animations), gestureAnimations), drag), layoutFeatures);\n/**\n * HTML & SVG components, optimised for use with gestures and animation. These can be used as\n * drop-in replacements for any HTML & SVG component, all CSS & SVG properties are supported.\n *\n * @public\n */\nvar motion = /*@__PURE__*/ createMotionProxy(function (Component, config) {\n return createDomMotionConfig(Component, config, featureBundle, createDomVisualElement, HTMLProjectionNode);\n});\n/**\n * Create a DOM `motion` component with the provided string. This is primarily intended\n * as a full alternative to `motion` for consumers who have to support environments that don't\n * support `Proxy`.\n *\n * ```javascript\n * import { createDomMotionComponent } from \"framer-motion\"\n *\n * const motion = {\n * div: createDomMotionComponent('div')\n * }\n * ```\n *\n * @public\n */\nfunction createDomMotionComponent(key) {\n return createMotionComponent(createDomMotionConfig(key, { forwardMotionProps: false }, featureBundle, createDomVisualElement, HTMLProjectionNode));\n}\n\n/**\n * @public\n */\nvar m = createMotionProxy(createDomMotionConfig);\n\nfunction useIsMounted() {\n var isMounted = React.useRef(false);\n useIsomorphicLayoutEffect(function () {\n isMounted.current = true;\n return function () {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n}\n\nfunction useForceUpdate() {\n var isMounted = useIsMounted();\n var _a = tslib.__read(React.useState(0), 2), forcedRenderCount = _a[0], setForcedRenderCount = _a[1];\n var forceRender = React.useCallback(function () {\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 var deferredForceRender = React.useCallback(function () { return sync__default[\"default\"].postRender(forceRender); }, [forceRender]);\n return [deferredForceRender, forcedRenderCount];\n}\n\nvar PresenceChild = function (_a) {\n var children = _a.children, initial = _a.initial, isPresent = _a.isPresent, onExitComplete = _a.onExitComplete, custom = _a.custom, presenceAffectsLayout = _a.presenceAffectsLayout;\n var presenceChildren = useConstant(newChildrenMap);\n var id = useId();\n var context = React.useMemo(function () { return ({\n id: id,\n initial: initial,\n isPresent: isPresent,\n custom: custom,\n onExitComplete: function (childId) {\n var e_1, _a;\n presenceChildren.set(childId, true);\n try {\n for (var _b = tslib.__values(presenceChildren.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var isComplete = _c.value;\n if (!isComplete)\n return; // can stop searching when any is incomplete\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete();\n },\n register: function (childId) {\n presenceChildren.set(childId, false);\n return function () { return presenceChildren.delete(childId); };\n },\n }); }, \n /**\n * If the presence of a child affects the layout of the components around it,\n * we want to make a new context value to ensure they get re-rendered\n * so they can detect that layout change.\n */\n presenceAffectsLayout ? undefined : [isPresent]);\n React.useMemo(function () {\n presenceChildren.forEach(function (_, key) { return 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__namespace.useEffect(function () {\n !isPresent && !presenceChildren.size && (onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete());\n }, [isPresent]);\n return (React__namespace.createElement(PresenceContext.Provider, { value: context }, children));\n};\nfunction newChildrenMap() {\n return new Map();\n}\n\nvar getChildKey = function (child) { return child.key || \"\"; };\nfunction updateChildLookup(children, allChildren) {\n children.forEach(function (child) {\n var key = getChildKey(child);\n allChildren.set(key, child);\n });\n}\nfunction onlyElements(children) {\n var filtered = [];\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\n React.Children.forEach(children, function (child) {\n if (React.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 */\nvar AnimatePresence = function (_a) {\n var children = _a.children, custom = _a.custom, _b = _a.initial, initial = _b === void 0 ? true : _b, onExitComplete = _a.onExitComplete, exitBeforeEnter = _a.exitBeforeEnter, _c = _a.presenceAffectsLayout, presenceAffectsLayout = _c === void 0 ? true : _c;\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 var _d = tslib.__read(useForceUpdate(), 1), forceRender = _d[0];\n var forceRenderLayoutGroup = React.useContext(LayoutGroupContext).forceRender;\n if (forceRenderLayoutGroup)\n forceRender = forceRenderLayoutGroup;\n var isMounted = useIsMounted();\n // Filter out any children that aren't ReactElements. We can only track ReactElements with a props.key\n var filteredChildren = onlyElements(children);\n var childrenToRender = filteredChildren;\n var exiting = new Set();\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 var presentChildren = React.useRef(childrenToRender);\n // A lookup table to quickly reference components by key\n var allChildren = React.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 var isInitialRender = React.useRef(true);\n useIsomorphicLayoutEffect(function () {\n isInitialRender.current = false;\n updateChildLookup(filteredChildren, allChildren);\n presentChildren.current = childrenToRender;\n });\n useUnmountEffect(function () {\n isInitialRender.current = true;\n allChildren.clear();\n exiting.clear();\n });\n if (isInitialRender.current) {\n return (React__namespace.createElement(React__namespace.Fragment, null, childrenToRender.map(function (child) { return (React__namespace.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, initial: initial ? undefined : false, presenceAffectsLayout: presenceAffectsLayout }, child)); })));\n }\n // If this is a subsequent render, deal with entering and exiting children\n childrenToRender = tslib.__spreadArray([], tslib.__read(childrenToRender), false);\n // Diff the keys of the currently-present and target children to update our\n // exiting list.\n var presentKeys = presentChildren.current.map(getChildKey);\n var targetKeys = filteredChildren.map(getChildKey);\n // Diff the present children with our target children and mark those that are exiting\n var numPresent = presentKeys.length;\n for (var i = 0; i < numPresent; i++) {\n var key = presentKeys[i];\n if (targetKeys.indexOf(key) === -1) {\n exiting.add(key);\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 (exitBeforeEnter && exiting.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 exiting.forEach(function (key) {\n // If this component is actually entering again, early return\n if (targetKeys.indexOf(key) !== -1)\n return;\n var child = allChildren.get(key);\n if (!child)\n return;\n var insertionIndex = presentKeys.indexOf(key);\n var onExit = function () {\n allChildren.delete(key);\n exiting.delete(key);\n // Remove this child from the present children\n var removeIndex = presentChildren.current.findIndex(function (presentChild) { return presentChild.key === key; });\n presentChildren.current.splice(removeIndex, 1);\n // Defer re-rendering until all exiting children have indeed left\n if (!exiting.size) {\n presentChildren.current = filteredChildren;\n if (isMounted.current === false)\n return;\n forceRender();\n onExitComplete && onExitComplete();\n }\n };\n childrenToRender.splice(insertionIndex, 0, React__namespace.createElement(PresenceChild, { key: getChildKey(child), isPresent: false, onExitComplete: onExit, custom: custom, presenceAffectsLayout: presenceAffectsLayout }, child));\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(function (child) {\n var key = child.key;\n return exiting.has(key) ? (child) : (React__namespace.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, presenceAffectsLayout: presenceAffectsLayout }, child));\n });\n if (env !== \"production\" &&\n exitBeforeEnter &&\n childrenToRender.length > 1) {\n console.warn(\"You're attempting to animate multiple children within AnimatePresence, but its exitBeforeEnter prop is set to true. This will lead to odd visual behaviour.\");\n }\n return (React__namespace.createElement(React__namespace.Fragment, null, exiting.size\n ? childrenToRender\n : childrenToRender.map(function (child) { return React.cloneElement(child); })));\n};\n\n/**\n * @deprecated\n */\nvar DeprecatedLayoutGroupContext = React.createContext(null);\n\nvar notify = function (node) {\n return !node.isLayoutDirty && node.willUpdate(false);\n};\nfunction nodeGroup() {\n var nodes = new Set();\n var subscriptions = new WeakMap();\n var dirtyAll = function () { return nodes.forEach(notify); };\n return {\n add: function (node) {\n nodes.add(node);\n subscriptions.set(node, node.addEventListener(\"willUpdate\", dirtyAll));\n },\n remove: function (node) {\n var _a;\n nodes.delete(node);\n (_a = subscriptions.get(node)) === null || _a === void 0 ? void 0 : _a();\n subscriptions.delete(node);\n dirtyAll();\n },\n dirty: dirtyAll,\n };\n}\n\nvar shouldInheritGroup = function (inherit) { return inherit === true; };\nvar shouldInheritId = function (inherit) {\n return shouldInheritGroup(inherit === true) || inherit === \"id\";\n};\nvar LayoutGroup = function (_a) {\n var _b, _c;\n var children = _a.children, id = _a.id, inheritId = _a.inheritId, _d = _a.inherit, inherit = _d === void 0 ? true : _d;\n // Maintain backwards-compatibility with inheritId until 7.0\n if (inheritId !== undefined)\n inherit = inheritId;\n var layoutGroupContext = React.useContext(LayoutGroupContext);\n var deprecatedLayoutGroupContext = React.useContext(DeprecatedLayoutGroupContext);\n var _e = tslib.__read(useForceUpdate(), 2), forceRender = _e[0], key = _e[1];\n var context = React.useRef(null);\n var upstreamId = (_b = layoutGroupContext.id) !== null && _b !== void 0 ? _b : deprecatedLayoutGroupContext;\n if (context.current === null) {\n if (shouldInheritId(inherit) && upstreamId) {\n id = id ? upstreamId + \"-\" + id : upstreamId;\n }\n context.current = {\n id: id,\n group: shouldInheritGroup(inherit)\n ? (_c = layoutGroupContext === null || layoutGroupContext === void 0 ? void 0 : layoutGroupContext.group) !== null && _c !== void 0 ? _c : nodeGroup()\n : nodeGroup(),\n };\n }\n var memoizedContext = React.useMemo(function () { return (tslib.__assign(tslib.__assign({}, context.current), { forceRender: forceRender })); }, [key]);\n return (React__namespace.createElement(LayoutGroupContext.Provider, { value: memoizedContext }, children));\n};\n\nvar id = 0;\nvar AnimateSharedLayout = function (_a) {\n var children = _a.children;\n React__namespace.useEffect(function () {\n heyListen.warning(false, \"AnimateSharedLayout is deprecated: https://www.framer.com/docs/guide-upgrade/##shared-layout-animations\");\n }, []);\n return (React__namespace.createElement(LayoutGroup, { id: useConstant(function () { return \"asl-\".concat(id++); }) }, children));\n};\n\n/**\n * `MotionConfig` is used to set configuration options for all children `motion` components.\n *\n * ```jsx\n * import { motion, MotionConfig } from \"framer-motion\"\n *\n * export function App() {\n * return (\n * \n * \n * \n * )\n * }\n * ```\n *\n * @public\n */\nfunction MotionConfig(_a) {\n var children = _a.children, isValidProp = _a.isValidProp, config = tslib.__rest(_a, [\"children\", \"isValidProp\"]);\n isValidProp && loadExternalIsValidProp(isValidProp);\n /**\n * Inherit props from any parent MotionConfig components\n */\n config = tslib.__assign(tslib.__assign({}, React.useContext(MotionConfigContext)), config);\n /**\n * Don't allow isStatic to change between renders as it affects how many hooks\n * motion components fire.\n */\n config.isStatic = useConstant(function () { return config.isStatic; });\n /**\n * Creating a new config context object will re-render every `motion` component\n * every time it renders. So we only want to create a new one sparingly.\n */\n var context = React.useMemo(function () { return config; }, [JSON.stringify(config.transition), config.transformPagePoint, config.reducedMotion]);\n return (React__namespace.createElement(MotionConfigContext.Provider, { value: context }, children));\n}\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, domAnimations } 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/domAnimations')}>\n * \n * \n * )\n * }\n * ```\n *\n * @public\n */\nfunction LazyMotion(_a) {\n var children = _a.children, features = _a.features, _b = _a.strict, strict = _b === void 0 ? false : _b;\n var _c = tslib.__read(React.useState(!isLazyBundle(features)), 2), setIsLoaded = _c[1];\n var loadedRenderer = React.useRef(undefined);\n /**\n * If this is a synchronous load, load features immediately\n */\n if (!isLazyBundle(features)) {\n var renderer = features.renderer, loadedFeatures = tslib.__rest(features, [\"renderer\"]);\n loadedRenderer.current = renderer;\n loadFeatures(loadedFeatures);\n }\n React.useEffect(function () {\n if (isLazyBundle(features)) {\n features().then(function (_a) {\n var renderer = _a.renderer, loadedFeatures = tslib.__rest(_a, [\"renderer\"]);\n loadFeatures(loadedFeatures);\n loadedRenderer.current = renderer;\n setIsLoaded(true);\n });\n }\n }, []);\n return (React__namespace.createElement(LazyContext.Provider, { value: { renderer: loadedRenderer.current, strict: strict } }, children));\n}\nfunction isLazyBundle(features) {\n return typeof features === \"function\";\n}\n\nvar ReorderContext = React.createContext(null);\n\nfunction checkReorder(order, value, offset, velocity) {\n if (!velocity)\n return order;\n var index = order.findIndex(function (item) { return item.value === value; });\n if (index === -1)\n return order;\n var nextOffset = velocity > 0 ? 1 : -1;\n var nextItem = order[index + nextOffset];\n if (!nextItem)\n return order;\n var item = order[index];\n var nextLayout = nextItem.layout;\n var nextItemCenter = popmotion.mix(nextLayout.min, nextLayout.max, 0.5);\n if ((nextOffset === 1 && item.layout.max + offset > nextItemCenter) ||\n (nextOffset === -1 && item.layout.min + offset < nextItemCenter)) {\n return moveItem(order, index, index + nextOffset);\n }\n return order;\n}\n\nfunction ReorderGroup(_a, externalRef) {\n var children = _a.children, _b = _a.as, as = _b === void 0 ? \"ul\" : _b, _c = _a.axis, axis = _c === void 0 ? \"y\" : _c, onReorder = _a.onReorder, values = _a.values, props = tslib.__rest(_a, [\"children\", \"as\", \"axis\", \"onReorder\", \"values\"]);\n var Component = useConstant(function () { return motion(as); });\n var order = [];\n var isReordering = React.useRef(false);\n heyListen.invariant(Boolean(values), \"Reorder.Group must be provided a values prop\");\n var context = {\n axis: axis,\n registerItem: function (value, layout) {\n /**\n * Ensure entries can't add themselves more than once\n */\n if (layout &&\n order.findIndex(function (entry) { return value === entry.value; }) === -1) {\n order.push({ value: value, layout: layout[axis] });\n order.sort(compareMin);\n }\n },\n updateOrder: function (id, offset, velocity) {\n if (isReordering.current)\n return;\n var newOrder = checkReorder(order, id, offset, velocity);\n if (order !== newOrder) {\n isReordering.current = true;\n onReorder(newOrder\n .map(getValue)\n .filter(function (value) { return values.indexOf(value) !== -1; }));\n }\n },\n };\n React.useEffect(function () {\n isReordering.current = false;\n });\n return (React__namespace.createElement(Component, tslib.__assign({}, props, { ref: externalRef }),\n React__namespace.createElement(ReorderContext.Provider, { value: context }, children)));\n}\nvar Group = React.forwardRef(ReorderGroup);\nfunction getValue(item) {\n return item.value;\n}\nfunction compareMin(a, b) {\n return a.layout.min - b.layout.min;\n}\n\n/**\n * Creates a `MotionValue` to track the state and velocity of a value.\n *\n * Usually, these are created automatically. For advanced use-cases, like use with `useTransform`, you can create `MotionValue`s externally and pass them into the animated component via the `style` prop.\n *\n * ```jsx\n * export const MyComponent = () => {\n * const scale = useMotionValue(1)\n *\n * return \n * }\n * ```\n *\n * @param initial - The initial state.\n *\n * @public\n */\nfunction useMotionValue(initial) {\n var value = useConstant(function () { return motionValue(initial); });\n /**\n * If this motion value is being used in static mode, like on\n * the Framer canvas, force components to rerender when the motion\n * value is updated.\n */\n var isStatic = React.useContext(MotionConfigContext).isStatic;\n if (isStatic) {\n var _a = tslib.__read(React.useState(initial), 2), setLatest_1 = _a[1];\n React.useEffect(function () { return value.onChange(setLatest_1); }, []);\n }\n return value;\n}\n\nvar isCustomValueType = function (v) {\n return typeof v === \"object\" && v.mix;\n};\nvar getMixer = function (v) { return (isCustomValueType(v) ? v.mix : undefined); };\nfunction transform() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var useImmediate = !Array.isArray(args[0]);\n var argOffset = useImmediate ? 0 : -1;\n var inputValue = args[0 + argOffset];\n var inputRange = args[1 + argOffset];\n var outputRange = args[2 + argOffset];\n var options = args[3 + argOffset];\n var interpolator = popmotion.interpolate(inputRange, outputRange, tslib.__assign({ mixer: getMixer(outputRange[0]) }, options));\n return useImmediate ? interpolator(inputValue) : interpolator;\n}\n\nfunction useOnChange(value, callback) {\n useIsomorphicLayoutEffect(function () {\n if (isMotionValue(value))\n return value.onChange(callback);\n }, [callback]);\n}\nfunction useMultiOnChange(values, handler) {\n useIsomorphicLayoutEffect(function () {\n var subscriptions = values.map(function (value) { return value.onChange(handler); });\n return function () { return subscriptions.forEach(function (unsubscribe) { return unsubscribe(); }); };\n });\n}\n\nfunction useCombineMotionValues(values, combineValues) {\n /**\n * Initialise the returned motion value. This remains the same between renders.\n */\n var value = useMotionValue(combineValues());\n /**\n * Create a function that will update the template motion value with the latest values.\n * This is pre-bound so whenever a motion value updates it can schedule its\n * execution in Framesync. If it's already been scheduled it won't be fired twice\n * in a single frame.\n */\n var updateValue = function () { return value.set(combineValues()); };\n /**\n * Synchronously update the motion value with the latest values during the render.\n * This ensures that within a React render, the styles applied to the DOM are up-to-date.\n */\n updateValue();\n /**\n * Subscribe to all motion values found within the template. Whenever any of them change,\n * schedule an update.\n */\n useMultiOnChange(values, function () { return sync__default[\"default\"].update(updateValue, false, true); });\n return value;\n}\n\nfunction useTransform(input, inputRangeOrTransformer, outputRange, options) {\n var transformer = typeof inputRangeOrTransformer === \"function\"\n ? inputRangeOrTransformer\n : transform(inputRangeOrTransformer, outputRange, options);\n return Array.isArray(input)\n ? useListTransform(input, transformer)\n : useListTransform([input], function (_a) {\n var _b = tslib.__read(_a, 1), latest = _b[0];\n return transformer(latest);\n });\n}\nfunction useListTransform(values, transformer) {\n var latest = useConstant(function () { return []; });\n return useCombineMotionValues(values, function () {\n latest.length = 0;\n var numValues = values.length;\n for (var i = 0; i < numValues; i++) {\n latest[i] = values[i].get();\n }\n return transformer(latest);\n });\n}\n\nfunction useDefaultMotionValue(value, defaultValue) {\n if (defaultValue === void 0) { defaultValue = 0; }\n return isMotionValue(value) ? value : useMotionValue(defaultValue);\n}\nfunction ReorderItem(_a, externalRef) {\n var children = _a.children, style = _a.style, value = _a.value, _b = _a.as, as = _b === void 0 ? \"li\" : _b, onDrag = _a.onDrag, _c = _a.layout, layout = _c === void 0 ? true : _c, props = tslib.__rest(_a, [\"children\", \"style\", \"value\", \"as\", \"onDrag\", \"layout\"]);\n var Component = useConstant(function () { return motion(as); });\n var context = React.useContext(ReorderContext);\n var point = {\n x: useDefaultMotionValue(style === null || style === void 0 ? void 0 : style.x),\n y: useDefaultMotionValue(style === null || style === void 0 ? void 0 : style.y),\n };\n var zIndex = useTransform([point.x, point.y], function (_a) {\n var _b = tslib.__read(_a, 2), latestX = _b[0], latestY = _b[1];\n return latestX || latestY ? 1 : \"unset\";\n });\n var measuredLayout = React.useRef(null);\n heyListen.invariant(Boolean(context), \"Reorder.Item must be a child of Reorder.Group\");\n var _d = context, axis = _d.axis, registerItem = _d.registerItem, updateOrder = _d.updateOrder;\n React.useEffect(function () {\n registerItem(value, measuredLayout.current);\n }, [context]);\n return (React__namespace.createElement(Component, tslib.__assign({ drag: axis }, props, { dragSnapToOrigin: true, style: tslib.__assign(tslib.__assign({}, style), { x: point.x, y: point.y, zIndex: zIndex }), layout: layout, onDrag: function (event, gesturePoint) {\n var velocity = gesturePoint.velocity;\n velocity[axis] &&\n updateOrder(value, point[axis].get(), velocity[axis]);\n onDrag === null || onDrag === void 0 ? void 0 : onDrag(event, gesturePoint);\n }, onLayoutMeasure: function (measured) {\n measuredLayout.current = measured;\n }, ref: externalRef }), children));\n}\nvar Item = React.forwardRef(ReorderItem);\n\nvar Reorder = {\n Group: Group,\n Item: Item,\n};\n\n/**\n * @public\n */\nvar domAnimation = tslib.__assign(tslib.__assign({ renderer: createDomVisualElement }, animations), gestureAnimations);\n\n/**\n * @public\n */\nvar domMax = tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign({}, domAnimation), drag), layoutFeatures), { projectionNodeConstructor: HTMLProjectionNode });\n\n/**\n * Combine multiple motion values into a new one using a string template literal.\n *\n * ```jsx\n * import {\n * motion,\n * useSpring,\n * useMotionValue,\n * useMotionTemplate\n * } from \"framer-motion\"\n *\n * function Component() {\n * const shadowX = useSpring(0)\n * const shadowY = useMotionValue(0)\n * const shadow = useMotionTemplate`drop-shadow(${shadowX}px ${shadowY}px 20px rgba(0,0,0,0.3))`\n *\n * return \n * }\n * ```\n *\n * @public\n */\nfunction useMotionTemplate(fragments) {\n var values = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n values[_i - 1] = arguments[_i];\n }\n /**\n * Create a function that will build a string from the latest motion values.\n */\n var numFragments = fragments.length;\n function buildValue() {\n var output = \"\";\n for (var i = 0; i < numFragments; i++) {\n output += fragments[i];\n var value = values[i];\n if (value)\n output += values[i].get();\n }\n return output;\n }\n return useCombineMotionValues(values, buildValue);\n}\n\n/**\n * Creates a `MotionValue` that, when `set`, will use a spring animation to animate to its new state.\n *\n * It can either work as a stand-alone `MotionValue` by initialising it with a value, or as a subscriber\n * to another `MotionValue`.\n *\n * @remarks\n *\n * ```jsx\n * const x = useSpring(0, { stiffness: 300 })\n * const y = useSpring(x, { damping: 10 })\n * ```\n *\n * @param inputValue - `MotionValue` or number. If provided a `MotionValue`, when the input `MotionValue` changes, the created `MotionValue` will spring towards that value.\n * @param springConfig - Configuration options for the spring.\n * @returns `MotionValue`\n *\n * @public\n */\nfunction useSpring(source, config) {\n if (config === void 0) { config = {}; }\n var isStatic = React.useContext(MotionConfigContext).isStatic;\n var activeSpringAnimation = React.useRef(null);\n var value = useMotionValue(isMotionValue(source) ? source.get() : source);\n React.useMemo(function () {\n return value.attach(function (v, set) {\n /**\n * A more hollistic approach to this might be to use isStatic to fix VisualElement animations\n * at that level, but this will work for now\n */\n if (isStatic)\n return set(v);\n if (activeSpringAnimation.current) {\n activeSpringAnimation.current.stop();\n }\n activeSpringAnimation.current = popmotion.animate(tslib.__assign(tslib.__assign({ from: value.get(), to: v, velocity: value.getVelocity() }, config), { onUpdate: set }));\n return value.get();\n });\n }, [JSON.stringify(config)]);\n useOnChange(source, function (v) { return value.set(parseFloat(v)); });\n return value;\n}\n\n/**\n * Creates a `MotionValue` that updates when the velocity of the provided `MotionValue` changes.\n *\n * ```javascript\n * const x = useMotionValue(0)\n * const xVelocity = useVelocity(x)\n * const xAcceleration = useVelocity(xVelocity)\n * ```\n *\n * @public\n */\nfunction useVelocity(value) {\n var velocity = useMotionValue(value.getVelocity());\n React.useEffect(function () {\n return value.velocityUpdateSubscribers.add(function (newVelocity) {\n velocity.set(newVelocity);\n });\n }, [value]);\n return velocity;\n}\n\nvar createScrollMotionValues = function () { return ({\n scrollX: motionValue(0),\n scrollY: motionValue(0),\n scrollXProgress: motionValue(0),\n scrollYProgress: motionValue(0),\n}); };\nfunction useScroll(_a) {\n if (_a === void 0) { _a = {}; }\n var container = _a.container, target = _a.target, options = tslib.__rest(_a, [\"container\", \"target\"]);\n var values = useConstant(createScrollMotionValues);\n useIsomorphicLayoutEffect(function () {\n return dom.scroll(function (_a) {\n var x = _a.x, y = _a.y;\n values.scrollX.set(x.current);\n values.scrollXProgress.set(x.progress);\n values.scrollY.set(y.current);\n values.scrollYProgress.set(y.progress);\n }, tslib.__assign(tslib.__assign({}, options), { container: (container === null || container === void 0 ? void 0 : container.current) || undefined, target: (target === null || target === void 0 ? void 0 : target.current) || undefined }));\n }, []);\n return values;\n}\n\nfunction useElementScroll(ref) {\n warnOnce(false, \"useElementScroll is deprecated. Convert to useScroll({ container: ref }).\");\n return useScroll({ container: ref });\n}\n\nfunction useViewportScroll() {\n warnOnce(false, \"useViewportScroll is deprecated. Convert to useScroll().\");\n return useScroll();\n}\n\nvar getCurrentTime = typeof performance !== \"undefined\"\n ? function () { return performance.now(); }\n : function () { return Date.now(); };\nfunction useAnimationFrame(callback) {\n var initialTimestamp = useConstant(getCurrentTime);\n var isStatic = React.useContext(MotionConfigContext).isStatic;\n React.useEffect(function () {\n if (isStatic)\n return;\n var provideTimeSinceStart = function (_a) {\n var timestamp = _a.timestamp;\n callback(timestamp - initialTimestamp);\n };\n sync__default[\"default\"].update(provideTimeSinceStart, true);\n return function () { return sync.cancelSync.update(provideTimeSinceStart); };\n }, [callback]);\n}\n\nfunction useTime() {\n var time = useMotionValue(0);\n useAnimationFrame(function (t) { return time.set(t); });\n return time;\n}\n\n/**\n * @public\n */\nfunction animationControls() {\n /**\n * Track whether the host component has mounted.\n */\n var hasMounted = false;\n /**\n * Pending animations that are started before a component is mounted.\n * TODO: Remove this as animations should only run in effects\n */\n var pendingAnimations = [];\n /**\n * A collection of linked component animation controls.\n */\n var subscribers = new Set();\n var controls = {\n subscribe: function (visualElement) {\n subscribers.add(visualElement);\n return function () { return void subscribers.delete(visualElement); };\n },\n start: function (definition, transitionOverride) {\n /**\n * TODO: We only perform this hasMounted check because in Framer we used to\n * encourage the ability to start an animation within the render phase. This\n * isn't behaviour concurrent-safe so when we make Framer concurrent-safe\n * we can ditch this.\n */\n if (hasMounted) {\n var animations_1 = [];\n subscribers.forEach(function (visualElement) {\n animations_1.push(animateVisualElement(visualElement, definition, {\n transitionOverride: transitionOverride,\n }));\n });\n return Promise.all(animations_1);\n }\n else {\n return new Promise(function (resolve) {\n pendingAnimations.push({\n animation: [definition, transitionOverride],\n resolve: resolve,\n });\n });\n }\n },\n set: function (definition) {\n heyListen.invariant(hasMounted, \"controls.set() should only be called after a component has mounted. Consider calling within a useEffect hook.\");\n return subscribers.forEach(function (visualElement) {\n setValues(visualElement, definition);\n });\n },\n stop: function () {\n subscribers.forEach(function (visualElement) {\n stopAnimation(visualElement);\n });\n },\n mount: function () {\n hasMounted = true;\n pendingAnimations.forEach(function (_a) {\n var animation = _a.animation, resolve = _a.resolve;\n controls.start.apply(controls, tslib.__spreadArray([], tslib.__read(animation), false)).then(resolve);\n });\n return function () {\n hasMounted = false;\n controls.stop();\n };\n },\n };\n return controls;\n}\n\n/**\n * Creates `AnimationControls`, which can be used to manually start, stop\n * and sequence animations on one or more components.\n *\n * The returned `AnimationControls` should be passed to the `animate` property\n * of the components you want to animate.\n *\n * These components can then be animated with the `start` method.\n *\n * ```jsx\n * import * as React from 'react'\n * import { motion, useAnimation } from 'framer-motion'\n *\n * export function MyComponent(props) {\n * const controls = useAnimation()\n *\n * controls.start({\n * x: 100,\n * transition: { duration: 0.5 },\n * })\n *\n * return \n * }\n * ```\n *\n * @returns Animation controller with `start` and `stop` methods\n *\n * @public\n */\nfunction useAnimationControls() {\n var controls = useConstant(animationControls);\n React.useEffect(controls.mount, []);\n return controls;\n}\nvar useAnimation = useAnimationControls;\n\n/**\n * Cycles through a series of visual properties. Can be used to toggle between or cycle through animations. It works similar to `useState` in React. It is provided an initial array of possible states, and returns an array of two arguments.\n *\n * An index value can be passed to the returned `cycle` function to cycle to a specific index.\n *\n * ```jsx\n * import * as React from \"react\"\n * import { motion, useCycle } from \"framer-motion\"\n *\n * export const MyComponent = () => {\n * const [x, cycleX] = useCycle(0, 50, 100)\n *\n * return (\n * cycleX()}\n * />\n * )\n * }\n * ```\n *\n * @param items - items to cycle through\n * @returns [currentState, cycleState]\n *\n * @public\n */\nfunction useCycle() {\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i] = arguments[_i];\n }\n var index = React.useRef(0);\n var _a = tslib.__read(React.useState(items[index.current]), 2), item = _a[0], setItem = _a[1];\n var runCycle = React.useCallback(function (next) {\n index.current =\n typeof next !== \"number\"\n ? popmotion.wrap(0, items.length, index.current + 1)\n : next;\n setItem(items[index.current]);\n }, tslib.__spreadArray([items.length], tslib.__read(items), false));\n return [item, runCycle];\n}\n\nfunction useInView(ref, _a) {\n var _b = _a === void 0 ? {} : _a, root = _b.root, margin = _b.margin, amount = _b.amount, _c = _b.once, once = _c === void 0 ? false : _c;\n var _d = tslib.__read(React.useState(false), 2), isInView = _d[0], setInView = _d[1];\n React.useEffect(function () {\n var _a;\n if (!ref.current || (once && isInView))\n return;\n var onEnter = function () {\n setInView(true);\n return once ? undefined : function () { return setInView(false); };\n };\n var options = {\n root: (_a = root === null || root === void 0 ? void 0 : root.current) !== null && _a !== void 0 ? _a : undefined,\n margin: margin,\n amount: amount === \"some\" ? \"any\" : amount,\n };\n return dom.inView(ref.current, onEnter, options);\n }, [root, ref, margin, once]);\n return isInView;\n}\n\n/**\n * Can manually trigger a drag gesture on one or more `drag`-enabled `motion` components.\n *\n * ```jsx\n * const dragControls = useDragControls()\n *\n * function startDrag(event) {\n * dragControls.start(event, { snapToCursor: true })\n * }\n *\n * return (\n * <>\n *
\n * \n * \n * )\n * ```\n *\n * @public\n */\nvar DragControls = /** @class */ (function () {\n function DragControls() {\n this.componentControls = new Set();\n }\n /**\n * Subscribe a component's internal `VisualElementDragControls` to the user-facing API.\n *\n * @internal\n */\n DragControls.prototype.subscribe = function (controls) {\n var _this = this;\n this.componentControls.add(controls);\n return function () { return _this.componentControls.delete(controls); };\n };\n /**\n * Start a drag gesture on every `motion` component that has this set of drag controls\n * passed into it via the `dragControls` prop.\n *\n * ```jsx\n * dragControls.start(e, {\n * snapToCursor: true\n * })\n * ```\n *\n * @param event - PointerEvent\n * @param options - Options\n *\n * @public\n */\n DragControls.prototype.start = function (event, options) {\n this.componentControls.forEach(function (controls) {\n controls.start(event.nativeEvent || event, options);\n });\n };\n return DragControls;\n}());\nvar createDragControls = function () { return new DragControls(); };\n/**\n * Usually, dragging is initiated by pressing down on a `motion` component with a `drag` prop\n * and moving it. For some use-cases, for instance clicking at an arbitrary point on a video scrubber, we\n * might want to initiate that dragging from a different component than the draggable one.\n *\n * By creating a `dragControls` using the `useDragControls` hook, we can pass this into\n * the draggable component's `dragControls` prop. It exposes a `start` method\n * that can start dragging from pointer events on other components.\n *\n * ```jsx\n * const dragControls = useDragControls()\n *\n * function startDrag(event) {\n * dragControls.start(event, { snapToCursor: true })\n * }\n *\n * return (\n * <>\n *
\n * \n * \n * )\n * ```\n *\n * @public\n */\nfunction useDragControls() {\n return useConstant(createDragControls);\n}\n\nfunction useInstantLayoutTransition() {\n return startTransition;\n}\nfunction startTransition(cb) {\n if (!rootProjectionNode.current)\n return;\n rootProjectionNode.current.isUpdating = false;\n rootProjectionNode.current.blockUpdate();\n cb === null || cb === void 0 ? void 0 : cb();\n}\n\nfunction useInstantTransition() {\n var _a = tslib.__read(useForceUpdate(), 2), forceUpdate = _a[0], forcedRenderCount = _a[1];\n var startInstantLayoutTransition = useInstantLayoutTransition();\n React.useEffect(function () {\n /**\n * Unblock after two animation frames, otherwise this will unblock too soon.\n */\n sync__default[\"default\"].postRender(function () {\n return sync__default[\"default\"].postRender(function () { return (instantAnimationState.current = false); });\n });\n }, [forcedRenderCount]);\n return function (callback) {\n startInstantLayoutTransition(function () {\n instantAnimationState.current = true;\n forceUpdate();\n callback();\n });\n };\n}\n\nfunction useResetProjection() {\n var reset = React__namespace.useCallback(function () {\n var root = rootProjectionNode.current;\n if (!root)\n return;\n root.resetTree();\n }, []);\n return reset;\n}\n\nvar createObject = function () { return ({}); };\nvar stateVisualElement = visualElement({\n build: function () { },\n measureViewportBox: createBox,\n resetTransform: function () { },\n restoreTransform: function () { },\n removeValueFromRenderState: function () { },\n render: function () { },\n scrapeMotionValuesFromProps: createObject,\n readValueFromInstance: function (_state, key, options) {\n return options.initialState[key] || 0;\n },\n makeTargetAnimatable: function (element, _a) {\n var transition = _a.transition, transitionEnd = _a.transitionEnd, target = tslib.__rest(_a, [\"transition\", \"transitionEnd\"]);\n var origin = getOrigin(target, transition || {}, element);\n checkTargetForNewValues(element, target, origin);\n return tslib.__assign({ transition: transition, transitionEnd: transitionEnd }, target);\n },\n});\nvar useVisualState = makeUseVisualState({\n scrapeMotionValuesFromProps: createObject,\n createRenderState: createObject,\n});\n/**\n * This is not an officially supported API and may be removed\n * on any version.\n */\nfunction useAnimatedState(initialState) {\n var _a = tslib.__read(React.useState(initialState), 2), animationState = _a[0], setAnimationState = _a[1];\n var visualState = useVisualState({}, false);\n var element = useConstant(function () {\n return stateVisualElement({ props: {}, visualState: visualState }, { initialState: initialState });\n });\n React.useEffect(function () {\n element.mount({});\n return element.unmount;\n }, [element]);\n React.useEffect(function () {\n element.setProps({\n onUpdate: function (v) {\n setAnimationState(tslib.__assign({}, v));\n },\n });\n }, [setAnimationState, element]);\n var startAnimation = useConstant(function () { return function (animationDefinition) {\n return animateVisualElement(element, animationDefinition);\n }; });\n return [animationState, startAnimation];\n}\n\n// Keep things reasonable and avoid scale: Infinity. In practise we might need\n// to add another value, opacity, that could interpolate scaleX/Y [0,0.01] => [0,1]\n// to simply hide content at unreasonable scales.\nvar maxScale = 100000;\nvar invertScale = function (scale) {\n return scale > 0.001 ? 1 / scale : maxScale;\n};\nvar hasWarned = false;\n/**\n * Returns a `MotionValue` each for `scaleX` and `scaleY` that update with the inverse\n * of their respective parent scales.\n *\n * This is useful for undoing the distortion of content when scaling a parent component.\n *\n * By default, `useInvertedScale` will automatically fetch `scaleX` and `scaleY` from the nearest parent.\n * By passing other `MotionValue`s in as `useInvertedScale({ scaleX, scaleY })`, it will invert the output\n * of those instead.\n *\n * ```jsx\n * const MyComponent = () => {\n * const { scaleX, scaleY } = useInvertedScale()\n * return \n * }\n * ```\n *\n * @deprecated\n */\nfunction useInvertedScale(scale) {\n var parentScaleX = useMotionValue(1);\n var parentScaleY = useMotionValue(1);\n var visualElement = useVisualElementContext();\n heyListen.invariant(!!(scale || visualElement), \"If no scale values are provided, useInvertedScale must be used within a child of another motion component.\");\n heyListen.warning(hasWarned, \"useInvertedScale is deprecated and will be removed in 3.0. Use the layout prop instead.\");\n hasWarned = true;\n if (scale) {\n parentScaleX = scale.scaleX || parentScaleX;\n parentScaleY = scale.scaleY || parentScaleY;\n }\n else if (visualElement) {\n parentScaleX = visualElement.getValue(\"scaleX\", 1);\n parentScaleY = visualElement.getValue(\"scaleY\", 1);\n }\n var scaleX = useTransform(parentScaleX, invertScale);\n var scaleY = useTransform(parentScaleY, invertScale);\n return { scaleX: scaleX, scaleY: scaleY };\n}\n\nexports.AnimatePresence = AnimatePresence;\nexports.AnimateSharedLayout = AnimateSharedLayout;\nexports.DeprecatedLayoutGroupContext = DeprecatedLayoutGroupContext;\nexports.DragControls = DragControls;\nexports.FlatTree = FlatTree;\nexports.LayoutGroup = LayoutGroup;\nexports.LayoutGroupContext = LayoutGroupContext;\nexports.LazyMotion = LazyMotion;\nexports.MotionConfig = MotionConfig;\nexports.MotionConfigContext = MotionConfigContext;\nexports.MotionContext = MotionContext;\nexports.MotionValue = MotionValue;\nexports.PresenceContext = PresenceContext;\nexports.Reorder = Reorder;\nexports.SwitchLayoutGroupContext = SwitchLayoutGroupContext;\nexports.addPointerEvent = addPointerEvent;\nexports.addScaleCorrector = addScaleCorrector;\nexports.animate = animate;\nexports.animateVisualElement = animateVisualElement;\nexports.animationControls = animationControls;\nexports.animations = animations;\nexports.calcLength = calcLength;\nexports.checkTargetForNewValues = checkTargetForNewValues;\nexports.createBox = createBox;\nexports.createDomMotionComponent = createDomMotionComponent;\nexports.createMotionComponent = createMotionComponent;\nexports.domAnimation = domAnimation;\nexports.domMax = domMax;\nexports.filterProps = filterProps;\nexports.isBrowser = isBrowser;\nexports.isDragActive = isDragActive;\nexports.isMotionValue = isMotionValue;\nexports.isValidMotionProp = isValidMotionProp;\nexports.m = m;\nexports.makeUseVisualState = makeUseVisualState;\nexports.motion = motion;\nexports.motionValue = motionValue;\nexports.resolveMotionValue = resolveMotionValue;\nexports.transform = transform;\nexports.useAnimation = useAnimation;\nexports.useAnimationControls = useAnimationControls;\nexports.useAnimationFrame = useAnimationFrame;\nexports.useCycle = useCycle;\nexports.useDeprecatedAnimatedState = useAnimatedState;\nexports.useDeprecatedInvertedScale = useInvertedScale;\nexports.useDomEvent = useDomEvent;\nexports.useDragControls = useDragControls;\nexports.useElementScroll = useElementScroll;\nexports.useForceUpdate = useForceUpdate;\nexports.useInView = useInView;\nexports.useInstantLayoutTransition = useInstantLayoutTransition;\nexports.useInstantTransition = useInstantTransition;\nexports.useIsPresent = useIsPresent;\nexports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect;\nexports.useMotionTemplate = useMotionTemplate;\nexports.useMotionValue = useMotionValue;\nexports.usePresence = usePresence;\nexports.useReducedMotion = useReducedMotion;\nexports.useReducedMotionConfig = useReducedMotionConfig;\nexports.useResetProjection = useResetProjection;\nexports.useScroll = useScroll;\nexports.useSpring = useSpring;\nexports.useTime = useTime;\nexports.useTransform = useTransform;\nexports.useUnmountEffect = useUnmountEffect;\nexports.useVelocity = useVelocity;\nexports.useViewportScroll = useViewportScroll;\nexports.useVisualElementContext = useVisualElementContext;\nexports.visualElement = visualElement;\nexports.wrapHandler = wrapHandler;\n"],"names":["MotionConfigContext","createContext","p","MotionContext","useVisualElementContext","useContext","PresenceContext","isBrowser","useIsomorphicLayoutEffect","useLayoutEffect","useEffect","LazyContext","useVisualElement","Component","visualState","props","createVisualElement","parent","lazyContext","presenceContext","reducedMotionConfig","visualElementRef","useRef","visualElement","isRefObject","ref","useMotionRef","externalRef","useCallback","instance","isVariantLabel","v","isAnimationControls","variantProps","isControllingVariants","name","isVariantNode","getCurrentTreeVariants","context","initial","animate","useCreateMotionContext","useMemo","variantLabelsAsDependency","prop","createDefinition","propNames","featureDefinitions","loadFeatures","features","key","useConstant","init","globalProjectionState","id","useProjectionId","LayoutGroupContext","VisualElementHandler","React__default","SwitchLayoutGroupContext","motionComponentSymbol","createMotionComponent","preloadedFeatures","projectionNodeConstructor","useRender","useVisualState","MotionComponent","configAndProps","useLayoutId","isStatic","projectionId","lazyStrictMode","initialLayoutGroupConfig","React.createElement","ForwardRefComponent","forwardRef","layoutId","layoutGroupId","createMotionProxy","createConfig","custom","customMotionComponentConfig","componentCache","_target","lowercaseSVGElements","isSVGComponent","scaleCorrectors","addScaleCorrector","correctors","transformPropOrder","transformProps","isForcedMotionValue","layout","isMotionValue","value","translateAlias","sortTransformProps","a","b","buildTransform","transform","transformKeys","enableHardwareAcceleration","allowTransformNone","transformIsDefault","transformTemplate","transformString","isCSSVariable","getValueAsType","type","int","number","numberValueTypes","px","degrees","scale","alpha","progressPercentage","buildHTMLStyles","state","latestValues","options","style","vars","transformOrigin","hasTransform","hasTransformOrigin","transformIsNone","valueType","valueAsType","originX","originY","originZ","createHtmlRenderState","copyRawValuesOnly","target","source","useInitialMotionValues","useStyle","styleProp","useHTMLProps","htmlProps","animationProps","tapProps","panProps","inViewProps","validMotionProps","isValidMotionProp","shouldForward","loadExternalIsValidProp","isValidProp","filterProps","isDom","forwardMotionProps","filteredProps","calcOrigin","origin","offset","size","calcSVGTransformOrigin","dimensions","pxOriginX","pxOriginY","dashKeys","camelKeys","buildSVGPath","attrs","length","spacing","useDashCase","keys","pathLength","pathSpacing","buildSVGAttrs","attrX","attrY","pathOffset","latest","createSvgRenderState","useSVGProps","visualProps","rawStyles","createUseRender","elementProps","createElement","camelToDash","str","renderHTML","element","projection","camelCaseAttributes","renderSVG","renderState","_styleProp","scrapeMotionValuesFromProps","newValues","scrapeMotionValuesFromProps$1","targetKey","resolveVariantFromProps","definition","currentValues","currentVelocity","isKeyframesTarget","isCustomValue","resolveFinalValueInKeyframes","resolveMotionValue","unwrappedValue","makeState","createRenderState","onMount","makeLatestValues","makeUseVisualState","config","make","scrapeMotionValues","values","motionValues","isControllingVariants$1","isVariantNode$1","isInitialAnimationBlocked","variantToSet","resolved","transitionEnd","transition","valueTarget","index","svgMotionConfig","htmlMotionConfig","createDomMotionConfig","AnimationType","addDomEvent","eventName","handler","useDomEvent","useFocusGesture","whileFocus","animationState","onFocus","onBlur","isMouseEvent","event","isTouchEvent","filterPrimaryPointer","eventHandler","defaultPagePoint","pointFromTouch","e","pointType","point","pointFromMouse","extractEventInfo","wrapHandler","shouldFilterPrimaryPointer","listener","supportsPointerEvents","supportsTouchEvents","supportsMouseEvents","mouseEventNames","touchEventNames","getPointerEventName","addPointerEvent","usePointerEvent","createLock","lock","openLock","globalHorizontalLock","globalVerticalLock","getGlobalLock","drag","openHorizontal","openVertical","isDragActive","openGestureLock","createHoverEvent","isActive","callback","info","useHoverGesture","onHoverStart","onHoverEnd","whileHover","isNodeOrChild","child","useUnmountEffect","useTapGesture","onTap","onTapStart","onTapCancel","whileTap","hasPressListeners","isPressing","cancelPointerEndListeners","eventOptions","onPointerDown","removePointerEndListener","checkPointerEnd","onPointerUp","onPointerCancel","pipe","defaultEnvironment","env","define_process_env_default","warned","warnOnce","condition","message","observerCallbacks","observers","fireObserverCallback","entry","fireAllObserverCallbacks","entries","initIntersectionObserver","root","lookupRoot","rootObservers","observeIntersection","rootInteresectionObserver","useViewport","whileInView","onViewportEnter","onViewportLeave","viewport","shouldObserve","useMissingIntersectionObserver","useIntersectionObserver","thresholdNames","rootMargin","amount","once","intersectionCallback","isIntersecting","fallback","makeRenderlessComponent","hook","gestureAnimations","usePresence","isPresent","onExitComplete","register","useId","shallowCompare","next","prev","prevLength","i","secondsToMilliseconds","seconds","easingLookup","linear","easeIn","easeInOut","easeOut","circIn","circInOut","circOut","backIn","backInOut","backOut","anticipate","bounceIn","bounceInOut","bounceOut","easingDefinitionToFunction","invariant","x1","y1","x2","y2","cubicBezier","isEasingArray","ease","isAnimatable","complex","underDampedSpring","criticallyDampedSpring","to","linearTween","keyframes","defaultTransitions","getDefaultTransition","valueKey","transitionFactory","defaultValueTypes","color","filter","getDefaultValueType","getAnimatableNone","_a","defaultValueType","isTransitionDefined","when","delay","delayChildren","staggerChildren","staggerDirection","repeat","repeatType","repeatDelay","from","convertTransitionToAnimationOptions","times","yoyo","flip","loop","getDelayFromTransition","_b","getValueTransition","hydrateKeyframes","getPopmotionAnimationOptions","getAnimation","onComplete","valueTransition","isTargetAnimatable","isZero","getZeroUnit","isOriginAnimatable","start","inertia","set","finalTarget","potentialUnitType","startAnimation","delayTimer","controls","animation","isNumericalString","isZeroValueString","addUniqueItem","arr","item","removeItem","SubscriptionManager","c","numSubscriptions","isFloat","MotionValue","render","delta","timestamp","getFrameData","sync","subscription","passiveEffect","velocityPerSecond","resolve","motionValue","testValueType","auto","dimensionValueTypes","percent","vw","vh","findDimensionValueType","valueTypes","findValueType","getCurrent","current","getVelocity","velocity","resolveVariant","setMotionValue","setTarget","setVariants","variantLabels","variant","setValues","checkTargetForNewValues","newValueKeys","numNewValues","targetValue","getOriginFromTransition","getOrigin","transitionOrigin","isWillChangeMotionValue","animateVisualElement","animations","animateVariant","resolvedDefinition","animateTarget","getChildAnimations","forwardDelay","animateChildren","first","last","transitionOverride","willChange","animationTypeState","shouldBlockAnimation","maxStaggerDuration","generateStaggerDuration","sortByTreeOrder","stopAnimation","protectedKeys","needsAnimating","shouldBlock","variantPriorityOrder","reversePriorityOrder","numAnimationTypes","animateList","createAnimationState","createState","isInitialRender","buildResolvedTypeValues","acc","setAnimateFunction","makeAnimator","animateChanges","changedActiveType","removedKeys","encounteredKeys","removedVariantIndex","typeState","propIsVariant","activeDelta","isInherited","variantDidChange","checkVariantsDidChange","shouldAnimateType","definitionList","resolvedValues","prevResolvedValues","allKeys","markToAnimate","fallbackAnimation","fallbackTarget","shouldAnimate","setActive","createTypeState","safeToRemove","PanSession","handlers","transformPagePoint","getPanInfo","isPanStarted","isDistancePastThreshold","distance","onStart","onMove","transformPoint","onEnd","onSessionEnd","panInfo","initialInfo","onSessionStart","cancelSync","subtractPoint","history","lastDevicePoint","startDevicePoint","timeDelta","timestampedPoint","lastPoint","time","calcLength","axis","isNear","maxDistance","calcAxisDelta","mix","calcBoxDelta","calcRelativeAxis","relative","calcRelativeBox","calcRelativeAxisPosition","calcRelativePosition","applyConstraints","min","max","elastic","calcRelativeAxisConstraints","calcRelativeConstraints","layoutBox","top","left","bottom","right","calcViewportAxisConstraints","layoutAxis","constraintsAxis","calcViewportConstraints","constraintsBox","sourceLength","targetLength","progress","clamp","rebaseAxisConstraints","constraints","relativeConstraints","defaultElastic","resolveDragElastic","dragElastic","resolveAxisElastic","minLabel","maxLabel","resolvePointElastic","label","createAxisDelta","createDelta","createAxis","createBox","eachAxis","convertBoundingBoxToBox","convertBoxToBoundingBox","x","y","transformBoxPoints","topLeft","bottomRight","isIdentityScale","hasScale","scaleX","scaleY","hasTranslate","scalePoint","originPoint","distanceFromOrigin","scaled","applyPointDelta","translate","boxScale","applyAxisDelta","applyBoxDelta","box","applyTreeDeltas","treeScale","treePath","isSharedTransition","treeLength","node","transformBox","translateAxis","transformAxis","transforms","scaleKey","originKey","axisOrigin","xKeys","yKeys","measureViewportBox","measurePageBox","rootProjectionNode","viewportBox","scroll","elementDragControls","VisualElementDragControls","originEvent","snapToCursor","dragPropagation","onDragStart","measuredAxis","dragDirectionLock","onDirectionLock","onDrag","getCurrentDirection","isDragging","onDragEnd","_point","shouldDrag","axisValue","dragConstraints","prevConstraints","onMeasureDragConstraints","constraintsElement","measuredConstraints","userConstraints","dragMomentum","dragTransition","dragSnapToOrigin","onDragTransitionEnd","momentumAnimations","bounceStiffness","bounceDamping","dragKey","externalMotionValue","boxProgress","stopPointerListener","dragListener","measureDragConstraints","stopMeasureLayoutListener","stopResizeListener","stopLayoutUpdateListener","hasLayoutChanged","direction","currentDirection","lockThreshold","useDrag","groupDragControls","dragControls","usePanGesture","onPan","onPanStart","onPanEnd","onPanSessionStart","hasPanEvents","panSession","prefersReducedMotion","hasReducedMotionListener","initPrefersReducedMotion","motionMediaQuery","setReducedMotionPreferences","names","createLifecycles","managers","propSubscriptions","lifecycles","manager","on","propListener","args","updateMotionValuesFromProps","nextValue","prevValue","existingValue","latestValue","featureNames","numFeatures","treeType","build","getBaseTarget","makeTargetAnimatable","renderInstance","readValueFromInstance","removeValueFromRenderState","sortNodePosition","presenceId","blockInitialAnimation","isMounted","valueSubscriptions","prevMotionValues","baseTarget","removeFromVariantTree","triggerBuild","update","bindToMotionValue","removeOnChange","removeOnRenderRequest","initialMotionValues","newInstance","remove","renderedProps","isStrict","ProjectionNodeConstructor","isEnabled","layoutScroll","closestVariantNode","other","visibility","canMutate","defaultValue","newProps","startAtParent","numVariantProps","cssVariableRegex","parseCSSVariable","match","token","getVariableValue","depth","resolveCSSVariables","positionalKeys","isPositionalKey","hasPositionalKey","setAndResetVelocity","isNumOrPxType","BoundingBoxDimension","getPosFromMatrix","matrix","pos","getTranslateFromMatrix","pos2","pos3","_bbox","matrix3d","nonTranslationalTransformKeys","removeNonTranslationalTransform","removedTransforms","positionalValues","paddingLeft","paddingRight","paddingTop","paddingBottom","convertChangedValueTypes","changedKeys","originBbox","elementComputedStyle","display","targetBbox","checkAndConvertChangedValueTypes","targetPositionalKeys","removedTransformValues","hasAttemptedToRemoveTransformValues","changedValueTypeKeys","fromType","toType","numKeyframes","fromIndex","scrollY","convertedTarget","unitConversion","parseDomVariant","getComputedStyle","htmlConfig","domElement","defaultType","computedStyle","mutableState","transformValues","parsed","htmlVisualElement","svgVisualElement","_element","createDomVisualElement","pixelsToPercent","pixels","correctBorderRadius","varToken","correctBoxShadow","projectionDelta","original","containsCSSVariables","cssVariables","shadow","template","xScale","yScale","averageScale","output","cssVariable","MeasureLayoutWithContext","layoutGroup","switchLayoutGroup","defaultScaleCorrectors","prevProps","layoutDependency","promoteContext","MeasureLayout","layoutFeatures","borders","numBorders","asNumber","isPx","mixValues","follow","lead","shouldCrossfadeOpacity","isOnlyMember","_c","_d","easeCrossfadeIn","easeCrossfadeOut","borderLabel","followRadius","getRadius","leadRadius","radiusName","compress","easing","copyAxisInto","originAxis","copyBoxInto","originBox","removePointDelta","removeAxisDelta","sourceAxis","removeAxisTransforms","removeBoxTransforms","sourceBox","isAxisDeltaZero","isDeltaZero","boxEquals","aspectRatio","isCloseTo","NodeStack","prevLead","indexOfNode","member","preserveFollowOpacity","crossfade","_e","identityProjection","buildProjectionTransform","latestTransform","xTranslate","yTranslate","rotate","rotateX","rotateY","elementScaleX","elementScaleY","compareByDepth","FlatTree","transformAxes","animationTarget","createProjectionNode","attachResizeListener","defaultParent","measureScroll","checkIsScrollRoot","resetTransform","resolveTargetDelta","calcProjection","subscriptionManager","isLayoutDirty","unblockTimeout","resizeUnblockUpdate","finishAnimation","hasRelativeTargetChanged","newLayout","layoutTransition","defaultLayoutTransition","onLayoutAnimationStart","onLayoutAnimationComplete","targetChanged","hasOnlyRelativeTargetChanged","animationOptions","resetRotation","shouldNotifyListeners","clearMeasurements","mountNodeEarly","resetTransformStyle","updateLayout","notifyLayoutUpdate","flushSync","clearSnapshot","removeLeadSnapshots","measured","roundBox","prevLayout","isResetRequested","hasProjection","transformTemplateValue","transformTemplateHasChanged","boxWithoutScroll","isScrollRoot","rootScroll","transformOnly","withTransforms","boxWithoutTransform","nodeBox","prevTreeScaleX","prevTreeScaleY","prevProjectionTransform","notifyAll","snapshot","snapshotLatestValues","mixedValues","targetDelta","relativeLayout","isSharedLayoutAnimation","hasOpacityCrossfade","mixAxisDelta","mixBox","targetWithTransforms","shouldAnimatePositionOnly","xLength","yLength","stack","needsReset","hasRotate","resetValues","styles","emptyStyles","valuesToRender","correct","applyTo","corrected","num","measuredLayout","animationType","axisSnapshot","layoutDelta","visualDelta","parentSnapshot","parentLayout","relativeSnapshot","mixAxis","searchNode","roundAxis","DocumentProjectionNode","notify","HTMLProjectionNode","documentNode","featureBundle","motion","useIsMounted","useForceUpdate","forcedRenderCount","setForcedRenderCount","useState","forceRender","PopChildMeasure","React.Component","PopChild","children","useInsertionEffect","width","height","React.cloneElement","PresenceChild","presenceAffectsLayout","mode","presenceChildren","newChildrenMap","childId","isComplete","_","React.useEffect","getChildKey","updateChildLookup","allChildren","onlyElements","filtered","Children","isValidElement","AnimatePresence","exitBeforeEnter","forceRenderLayoutGroup","filteredChildren","childrenToRender","exiting","presentChildren","React.Fragment","presentKeys","targetKeys","numPresent","insertionIndex","onExit","removeIndex","presentChild","cloneElement","useMotionValue","setLatest","useOnChange","useSpring","activeSpringAnimation","animationControls","hasMounted","pendingAnimations","subscribers","useAnimationControls","useAnimation","tslib","require$$0","React","require$$1","heyListen","require$$2","styleValueTypes","require$$3","popmotion","require$$4","require$$5","dom","require$$6","_interopDefaultLegacy","_interopNamespace","k","d","React__namespace","sync__default","useFeatures","name_1","hasDetected","motionMediaQuery_1","useReducedMotion","shouldReduceMotion","useReducedMotionConfig","reducedMotionPreference","reducedMotion","isVariantLabels","getVelocity$1","checkIfControllingVariants","checkIfVariantNode","id$1","useProjection","initialPromotionConfig","_super","order","operationKey","axesKey","transformPropSet","isTransformProp","transformOriginProps","isTransformOriginProp","transformHasZ","numTransformKeys","buildTransformOrigin","isCSSVariable$1","require$$7","calcOrigin$1","useVisualProps","CAMEL_CASE_PATTERN","REPLACE_TEMPLATE","initialAnimationIsBlocked","list","baseConfig","exports","hasTouches","isPrimaryPointer","primaryTouch","openHorizontal_1","openVertical_1","useObserver","counter","incrementId","useIsPresent","instantAnimationState","legacyRepeatWarning","moveItem","toIndex","startIndex","endIndex","_this","reversedLabels","_f","allAnimatedKeys","isAnimated","_loop_1","fallbackAnimation_1","xKeys$1","yKeys$1","length_1","_i","context_1","maxDepth","scrollY_1","getComputedStyle$1","i_1","canMix","relativeProgress","ProjectionNode","unblockTimeout_1","resizeUnblockUpdate_1","_g","updateWasBlocked","scroll_1","_h","layout_1","searchElement","createDomMotionComponent","m","deferredForceRender","e_1","e_1_1","DeprecatedLayoutGroupContext","nodeGroup","nodes","subscriptions","dirtyAll","shouldInheritGroup","inherit","shouldInheritId","LayoutGroup","inheritId","layoutGroupContext","deprecatedLayoutGroupContext","upstreamId","memoizedContext","AnimateSharedLayout","MotionConfig","LazyMotion","strict","isLazyBundle","setIsLoaded","loadedRenderer","renderer","loadedFeatures","ReorderContext","checkReorder","nextOffset","nextItem","nextLayout","nextItemCenter","ReorderGroup","as","onReorder","isReordering","compareMin","newOrder","getValue","Group","setLatest_1","isCustomValueType","getMixer","useImmediate","argOffset","inputValue","inputRange","outputRange","interpolator","useMultiOnChange","unsubscribe","useCombineMotionValues","combineValues","updateValue","useTransform","input","inputRangeOrTransformer","transformer","useListTransform","numValues","useDefaultMotionValue","ReorderItem","zIndex","latestX","latestY","registerItem","updateOrder","gesturePoint","Item","Reorder","domAnimation","domMax","useMotionTemplate","fragments","numFragments","buildValue","useVelocity","newVelocity","createScrollMotionValues","useScroll","container","useElementScroll","useViewportScroll","getCurrentTime","useAnimationFrame","initialTimestamp","provideTimeSinceStart","useTime","t","animations_1","useCycle","items","setItem","runCycle","useInView","margin","isInView","setInView","onEnter","DragControls","createDragControls","useDragControls","useInstantLayoutTransition","startTransition","cb","useInstantTransition","forceUpdate","startInstantLayoutTransition","useResetProjection","reset","createObject","stateVisualElement","_state","useAnimatedState","initialState","setAnimationState","animationDefinition","maxScale","invertScale","hasWarned","useInvertedScale","parentScaleX","parentScaleY"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154]}