{"version":3,"file":"vendor-D7WsSSRJ.js","sources":["../../node_modules/react/cjs/react.production.min.js","../../node_modules/react/index.js","../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../node_modules/react/jsx-runtime.js","../../node_modules/scheduler/cjs/scheduler.production.min.js","../../node_modules/scheduler/index.js","../../node_modules/react-dom/cjs/react-dom.production.min.js","../../node_modules/react-dom/index.js","../../node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","../../node_modules/framer-motion/dist/es/utils/use-constant.mjs","../../node_modules/framer-motion/dist/es/context/PresenceContext.mjs","../../node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","../../node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs","../../node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","../../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","../../node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs","../../node_modules/framer-motion/dist/es/utils/is-browser.mjs","../../node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","../../node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","../../node_modules/motion-utils/dist/es/noop.mjs","../../node_modules/motion-utils/dist/es/errors.mjs","../../node_modules/motion-utils/dist/es/memo.mjs","../../node_modules/motion-utils/dist/es/progress.mjs","../../node_modules/motion-utils/dist/es/time-conversion.mjs","../../node_modules/framer-motion/dist/es/utils/GlobalConfig.mjs","../../node_modules/framer-motion/dist/es/frameloop/batcher.mjs","../../node_modules/framer-motion/dist/es/frameloop/render-step.mjs","../../node_modules/framer-motion/dist/es/frameloop/frame.mjs","../../node_modules/framer-motion/dist/es/context/LazyContext.mjs","../../node_modules/framer-motion/dist/es/motion/features/definitions.mjs","../../node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","../../node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","../../node_modules/framer-motion/dist/es/render/components/create-proxy.mjs","../../node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","../../node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs","../../node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","../../node_modules/framer-motion/dist/es/render/utils/variant-props.mjs","../../node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs","../../node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","../../node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","../../node_modules/framer-motion/dist/es/motion/utils/symbol.mjs","../../node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","../../node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","../../node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","../../node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs","../../node_modules/framer-motion/dist/es/frameloop/microtask.mjs","../../node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","../../node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","../../node_modules/framer-motion/dist/es/motion/index.mjs","../../node_modules/framer-motion/dist/es/motion/features/load-features.mjs","../../node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","../../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","../../node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs","../../node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","../../node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","../../node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","../../node_modules/framer-motion/dist/es/utils/resolve-value.mjs","../../node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","../../node_modules/framer-motion/dist/es/render/html/utils/keys-transform.mjs","../../node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","../../node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","../../node_modules/framer-motion/dist/es/utils/clamp.mjs","../../node_modules/framer-motion/dist/es/value/types/numbers/index.mjs","../../node_modules/framer-motion/dist/es/value/types/numbers/units.mjs","../../node_modules/framer-motion/dist/es/render/dom/value-types/number-browser.mjs","../../node_modules/framer-motion/dist/es/render/dom/value-types/transform.mjs","../../node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","../../node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","../../node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","../../node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","../../node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","../../node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","../../node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","../../node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","../../node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","../../node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs","../../node_modules/framer-motion/dist/es/render/html/utils/render.mjs","../../node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","../../node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","../../node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","../../node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","../../node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","../../node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","../../node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","../../node_modules/framer-motion/dist/es/render/html/config-motion.mjs","../../node_modules/framer-motion/dist/es/render/html/use-props.mjs","../../node_modules/framer-motion/dist/es/render/svg/use-props.mjs","../../node_modules/framer-motion/dist/es/render/dom/use-render.mjs","../../node_modules/framer-motion/dist/es/render/components/create-factory.mjs","../../node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","../../node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs","../../node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs","../../node_modules/motion-dom/dist/es/animation/controls/BaseGroup.mjs","../../node_modules/motion-dom/dist/es/animation/controls/Group.mjs","../../node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs","../../node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs","../../node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs","../../node_modules/motion-dom/dist/es/animation/waapi/utils/attach-timeline.mjs","../../node_modules/motion-dom/dist/es/utils/is-bezier-definition.mjs","../../node_modules/motion-dom/dist/es/utils/supports/flags.mjs","../../node_modules/motion-dom/dist/es/utils/supports/memo.mjs","../../node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs","../../node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs","../../node_modules/motion-dom/dist/es/animation/waapi/utils/easing.mjs","../../node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs","../../node_modules/motion-dom/dist/es/gestures/utils/setup.mjs","../../node_modules/motion-dom/dist/es/utils/resolve-elements.mjs","../../node_modules/motion-dom/dist/es/gestures/hover.mjs","../../node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs","../../node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs","../../node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs","../../node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs","../../node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs","../../node_modules/motion-dom/dist/es/gestures/press/index.mjs","../../node_modules/framer-motion/dist/es/render/html/utils/keys-position.mjs","../../node_modules/framer-motion/dist/es/frameloop/sync-time.mjs","../../node_modules/framer-motion/dist/es/utils/array.mjs","../../node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","../../node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs","../../node_modules/framer-motion/dist/es/value/index.mjs","../../node_modules/framer-motion/dist/es/render/utils/setters.mjs","../../node_modules/framer-motion/dist/es/value/use-will-change/add-will-change.mjs","../../node_modules/framer-motion/dist/es/value/use-will-change/is.mjs","../../node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs","../../node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs","../../node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs","../../node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs","../../node_modules/framer-motion/dist/es/easing/back.mjs","../../node_modules/framer-motion/dist/es/easing/anticipate.mjs","../../node_modules/framer-motion/dist/es/easing/circ.mjs","../../node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","../../node_modules/framer-motion/dist/es/value/types/utils/sanitize.mjs","../../node_modules/framer-motion/dist/es/value/types/utils/float-regex.mjs","../../node_modules/framer-motion/dist/es/value/types/utils/single-color-regex.mjs","../../node_modules/framer-motion/dist/es/value/types/color/utils.mjs","../../node_modules/framer-motion/dist/es/value/types/utils/is-nullish.mjs","../../node_modules/framer-motion/dist/es/value/types/color/rgba.mjs","../../node_modules/framer-motion/dist/es/value/types/color/hex.mjs","../../node_modules/framer-motion/dist/es/value/types/color/hsla.mjs","../../node_modules/framer-motion/dist/es/value/types/color/index.mjs","../../node_modules/framer-motion/dist/es/value/types/utils/color-regex.mjs","../../node_modules/framer-motion/dist/es/value/types/complex/index.mjs","../../node_modules/framer-motion/dist/es/value/types/complex/filter.mjs","../../node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","../../node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","../../node_modules/framer-motion/dist/es/render/html/utils/make-none-animatable.mjs","../../node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","../../node_modules/framer-motion/dist/es/render/utils/KeyframesResolver.mjs","../../node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","../../node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","../../node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","../../node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","../../node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","../../node_modules/framer-motion/dist/es/render/dom/DOMKeyframesResolver.mjs","../../node_modules/framer-motion/dist/es/animation/utils/is-none.mjs","../../node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","../../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs","../../node_modules/framer-motion/dist/es/animation/animators/BaseAnimation.mjs","../../node_modules/framer-motion/dist/es/animation/animators/utils/can-animate.mjs","../../node_modules/framer-motion/dist/es/utils/mix/number.mjs","../../node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs","../../node_modules/framer-motion/dist/es/utils/mix/immediate.mjs","../../node_modules/framer-motion/dist/es/utils/mix/color.mjs","../../node_modules/framer-motion/dist/es/utils/pipe.mjs","../../node_modules/framer-motion/dist/es/utils/mix/visibility.mjs","../../node_modules/framer-motion/dist/es/utils/mix/complex.mjs","../../node_modules/framer-motion/dist/es/utils/mix/index.mjs","../../node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs","../../node_modules/framer-motion/dist/es/animation/generators/spring/defaults.mjs","../../node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs","../../node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs","../../node_modules/framer-motion/dist/es/animation/generators/inertia.mjs","../../node_modules/framer-motion/dist/es/easing/ease.mjs","../../node_modules/framer-motion/dist/es/easing/utils/map.mjs","../../node_modules/framer-motion/dist/es/utils/interpolate.mjs","../../node_modules/framer-motion/dist/es/utils/offsets/default.mjs","../../node_modules/framer-motion/dist/es/utils/offsets/fill.mjs","../../node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs","../../node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs","../../node_modules/framer-motion/dist/es/utils/offsets/time.mjs","../../node_modules/framer-motion/dist/es/animation/animators/drivers/driver-frameloop.mjs","../../node_modules/framer-motion/dist/es/animation/animators/MainThreadAnimation.mjs","../../node_modules/framer-motion/dist/es/animation/animators/utils/accelerated-values.mjs","../../node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs","../../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-waapi.mjs","../../node_modules/framer-motion/dist/es/animation/animators/AcceleratedAnimation.mjs","../../node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","../../node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs","../../node_modules/framer-motion/dist/es/animation/utils/is-transition-defined.mjs","../../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs","../../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs","../../node_modules/framer-motion/dist/es/render/utils/get-variant-context.mjs","../../node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","../../node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs","../../node_modules/framer-motion/dist/es/motion/features/Feature.mjs","../../node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs","../../node_modules/framer-motion/dist/es/motion/features/animations.mjs","../../node_modules/framer-motion/dist/es/motion/features/animation/index.mjs","../../node_modules/framer-motion/dist/es/events/add-dom-event.mjs","../../node_modules/framer-motion/dist/es/events/event-info.mjs","../../node_modules/framer-motion/dist/es/events/add-pointer-event.mjs","../../node_modules/framer-motion/dist/es/utils/distance.mjs","../../node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs","../../node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","../../node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","../../node_modules/framer-motion/dist/es/projection/geometry/models.mjs","../../node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","../../node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","../../node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","../../node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","../../node_modules/framer-motion/dist/es/projection/utils/measure.mjs","../../node_modules/framer-motion/dist/es/utils/get-context-window.mjs","../../node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","../../node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs","../../node_modules/framer-motion/dist/es/gestures/pan/index.mjs","../../node_modules/framer-motion/dist/es/projection/node/state.mjs","../../node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","../../node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","../../node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","../../node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","../../node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","../../node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","../../node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","../../node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","../../node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","../../node_modules/framer-motion/dist/es/projection/shared/stack.mjs","../../node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","../../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs","../../node_modules/framer-motion/dist/es/utils/delay.mjs","../../node_modules/framer-motion/dist/es/animation/animate/single-value.mjs","../../node_modules/framer-motion/dist/es/projection/styles/transform.mjs","../../node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","../../node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","../../node_modules/framer-motion/dist/es/motion/features/drag.mjs","../../node_modules/framer-motion/dist/es/gestures/drag/index.mjs","../../node_modules/framer-motion/dist/es/gestures/hover.mjs","../../node_modules/framer-motion/dist/es/gestures/press.mjs","../../node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","../../node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs","../../node_modules/framer-motion/dist/es/motion/features/gestures.mjs","../../node_modules/framer-motion/dist/es/gestures/focus.mjs","../../node_modules/framer-motion/dist/es/motion/features/layout.mjs","../../node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs","../../node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","../../node_modules/framer-motion/dist/es/render/store.mjs","../../node_modules/framer-motion/dist/es/render/VisualElement.mjs","../../node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs","../../node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","../../node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs","../../node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs","../../node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs","../../node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","../../node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs","../../node_modules/framer-motion/dist/es/render/components/motion/create.mjs"],"sourcesContent":["/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3 p,\n isStatic: false,\n reducedMotion: \"never\",\n});\n\nexport { MotionConfigContext };\n","\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport * as React from 'react';\nimport { useId, useRef, useContext, useInsertionEffect } from 'react';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\n\n/**\n * Measurement functionality has to be within a separate component\n * to leverage snapshot lifecycle.\n */\nclass PopChildMeasure extends React.Component {\n getSnapshotBeforeUpdate(prevProps) {\n const element = this.props.childRef.current;\n if (element && prevProps.isPresent && !this.props.isPresent) {\n const size = this.props.sizeRef.current;\n size.height = element.offsetHeight || 0;\n size.width = element.offsetWidth || 0;\n size.top = element.offsetTop;\n size.left = element.offsetLeft;\n }\n return null;\n }\n /**\n * Required with getSnapshotBeforeUpdate to stop React complaining.\n */\n componentDidUpdate() { }\n render() {\n return this.props.children;\n }\n}\nfunction PopChild({ children, isPresent }) {\n const id = useId();\n const ref = useRef(null);\n const size = useRef({\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n });\n const { nonce } = useContext(MotionConfigContext);\n /**\n * We create and inject a style block so we can apply this explicit\n * sizing in a non-destructive manner by just deleting the style block.\n *\n * We can't apply size via render as the measurement happens\n * in getSnapshotBeforeUpdate (post-render), likewise if we apply the\n * styles directly on the DOM node, we might be overwriting\n * styles set via the style prop.\n */\n useInsertionEffect(() => {\n const { width, height, top, left } = size.current;\n if (isPresent || !ref.current || !width || !height)\n return;\n ref.current.dataset.motionPopId = id;\n const style = document.createElement(\"style\");\n if (nonce)\n style.nonce = nonce;\n document.head.appendChild(style);\n if (style.sheet) {\n style.sheet.insertRule(`\n [data-motion-pop-id=\"${id}\"] {\n position: absolute !important;\n width: ${width}px !important;\n height: ${height}px !important;\n top: ${top}px !important;\n left: ${left}px !important;\n }\n `);\n }\n return () => {\n document.head.removeChild(style);\n };\n }, [isPresent]);\n return (jsx(PopChildMeasure, { isPresent: isPresent, childRef: ref, sizeRef: size, children: React.cloneElement(children, { ref }) }));\n}\n\nexport { PopChild };\n","\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport * as React from 'react';\nimport { useId, useCallback, useMemo } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { PopChild } from './PopChild.mjs';\n\nconst PresenceChild = ({ children, initial, isPresent, onExitComplete, custom, presenceAffectsLayout, mode, }) => {\n const presenceChildren = useConstant(newChildrenMap);\n const id = useId();\n const memoizedOnExitComplete = useCallback((childId) => {\n presenceChildren.set(childId, true);\n for (const isComplete of presenceChildren.values()) {\n if (!isComplete)\n return; // can stop searching when any is incomplete\n }\n onExitComplete && onExitComplete();\n }, [presenceChildren, onExitComplete]);\n const context = useMemo(() => ({\n id,\n initial,\n isPresent,\n custom,\n onExitComplete: memoizedOnExitComplete,\n register: (childId) => {\n presenceChildren.set(childId, false);\n return () => presenceChildren.delete(childId);\n },\n }), \n /**\n * If the presence of a child affects the layout of the components around it,\n * we want to make a new context value to ensure they get re-rendered\n * so they can detect that layout change.\n */\n presenceAffectsLayout\n ? [Math.random(), memoizedOnExitComplete]\n : [isPresent, memoizedOnExitComplete]);\n useMemo(() => {\n presenceChildren.forEach((_, key) => presenceChildren.set(key, false));\n }, [isPresent]);\n /**\n * If there's no `motion` components to fire exit animations, we want to remove this\n * component immediately.\n */\n React.useEffect(() => {\n !isPresent &&\n !presenceChildren.size &&\n onExitComplete &&\n onExitComplete();\n }, [isPresent]);\n if (mode === \"popLayout\") {\n children = jsx(PopChild, { isPresent: isPresent, children: children });\n }\n return (jsx(PresenceContext.Provider, { value: context, children: children }));\n};\nfunction newChildrenMap() {\n return new Map();\n}\n\nexport { PresenceChild };\n","import { useContext, useId, useEffect, useCallback } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n * const [isPresent, safeToRemove] = usePresence()\n *\n * useEffect(() => {\n * !isPresent && setTimeout(safeToRemove, 1000)\n * }, [isPresent])\n *\n * return
\n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed the tree, but\n * `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */\nfunction usePresence(subscribe = true) {\n const context = useContext(PresenceContext);\n if (context === null)\n return [true, null];\n const { isPresent, onExitComplete, register } = context;\n // It's safe to call the following hooks conditionally (after an early return) because the context will always\n // either be null or non-null for the lifespan of the component.\n const id = useId();\n useEffect(() => {\n if (subscribe)\n register(id);\n }, [subscribe]);\n const safeToRemove = useCallback(() => subscribe && onExitComplete && onExitComplete(id), [id, onExitComplete, subscribe]);\n return !isPresent && onExitComplete ? [false, safeToRemove] : [true];\n}\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n * const isPresent = useIsPresent()\n *\n * useEffect(() => {\n * !isPresent && console.log(\"I've been removed!\")\n * }, [isPresent])\n *\n * return
\n * }\n * ```\n *\n * @public\n */\nfunction useIsPresent() {\n return isPresent(useContext(PresenceContext));\n}\nfunction isPresent(context) {\n return context === null ? true : context.isPresent;\n}\n\nexport { isPresent, useIsPresent, usePresence };\n","import { Children, isValidElement } from 'react';\n\nconst getChildKey = (child) => child.key || \"\";\nfunction onlyElements(children) {\n const filtered = [];\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\n Children.forEach(children, (child) => {\n if (isValidElement(child))\n filtered.push(child);\n });\n return filtered;\n}\n\nexport { getChildKey, onlyElements };\n","const isBrowser = typeof window !== \"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","\"use client\";\nimport { jsx, Fragment } from 'react/jsx-runtime';\nimport { useMemo, useRef, useState, useContext } from 'react';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { PresenceChild } from './PresenceChild.mjs';\nimport { usePresence } from './use-presence.mjs';\nimport { onlyElements, getChildKey } from './utils.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\n\n/**\n * `AnimatePresence` enables the animation of components that have been removed from the tree.\n *\n * When adding/removing more than a single child, every child **must** be given a unique `key` prop.\n *\n * Any `motion` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { motion, AnimatePresence } from 'framer-motion'\n *\n * export const Items = ({ items }) => (\n * \n * {items.map(item => (\n * \n * ))}\n * \n * )\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\n * once all `motion` components have finished animating out. Likewise, any components using\n * `usePresence` all need to call `safeToRemove`.\n *\n * @public\n */\nconst AnimatePresence = ({ children, custom, initial = true, onExitComplete, presenceAffectsLayout = true, mode = \"sync\", propagate = false, }) => {\n const [isParentPresent, safeToRemove] = usePresence(propagate);\n /**\n * Filter any children that aren't ReactElements. We can only track components\n * between renders with a props.key.\n */\n const presentChildren = useMemo(() => onlyElements(children), [children]);\n /**\n * Track the keys of the currently rendered children. This is used to\n * determine which children are exiting.\n */\n const presentKeys = propagate && !isParentPresent ? [] : presentChildren.map(getChildKey);\n /**\n * If `initial={false}` we only want to pass this to components in the first render.\n */\n const isInitialRender = useRef(true);\n /**\n * A ref containing the currently present children. When all exit animations\n * are complete, we use this to re-render the component with the latest children\n * *committed* rather than the latest children *rendered*.\n */\n const pendingPresentChildren = useRef(presentChildren);\n /**\n * Track which exiting children have finished animating out.\n */\n const exitComplete = useConstant(() => new Map());\n /**\n * Save children to render as React state. To ensure this component is concurrent-safe,\n * we check for exiting children via an effect.\n */\n const [diffedChildren, setDiffedChildren] = useState(presentChildren);\n const [renderedChildren, setRenderedChildren] = useState(presentChildren);\n useIsomorphicLayoutEffect(() => {\n isInitialRender.current = false;\n pendingPresentChildren.current = presentChildren;\n /**\n * Update complete status of exiting children.\n */\n for (let i = 0; i < renderedChildren.length; i++) {\n const key = getChildKey(renderedChildren[i]);\n if (!presentKeys.includes(key)) {\n if (exitComplete.get(key) !== true) {\n exitComplete.set(key, false);\n }\n }\n else {\n exitComplete.delete(key);\n }\n }\n }, [renderedChildren, presentKeys.length, presentKeys.join(\"-\")]);\n const exitingChildren = [];\n if (presentChildren !== diffedChildren) {\n let nextChildren = [...presentChildren];\n /**\n * Loop through all the currently rendered components and decide which\n * are exiting.\n */\n for (let i = 0; i < renderedChildren.length; i++) {\n const child = renderedChildren[i];\n const key = getChildKey(child);\n if (!presentKeys.includes(key)) {\n nextChildren.splice(i, 0, child);\n exitingChildren.push(child);\n }\n }\n /**\n * If we're in \"wait\" mode, and we have exiting children, we want to\n * only render these until they've all exited.\n */\n if (mode === \"wait\" && exitingChildren.length) {\n nextChildren = exitingChildren;\n }\n setRenderedChildren(onlyElements(nextChildren));\n setDiffedChildren(presentChildren);\n /**\n * Early return to ensure once we've set state with the latest diffed\n * children, we can immediately re-render.\n */\n return;\n }\n if (process.env.NODE_ENV !== \"production\" &&\n mode === \"wait\" &&\n renderedChildren.length > 1) {\n console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to \"wait\". This will lead to odd visual behaviour.`);\n }\n /**\n * If we've been provided a forceRender function by the LayoutGroupContext,\n * we can use it to force a re-render amongst all surrounding components once\n * all components have finished animating out.\n */\n const { forceRender } = useContext(LayoutGroupContext);\n return (jsx(Fragment, { children: renderedChildren.map((child) => {\n const key = getChildKey(child);\n const isPresent = propagate && !isParentPresent\n ? false\n : presentChildren === renderedChildren ||\n presentKeys.includes(key);\n const onExit = () => {\n if (exitComplete.has(key)) {\n exitComplete.set(key, true);\n }\n else {\n return;\n }\n let isEveryExitComplete = true;\n exitComplete.forEach((isExitComplete) => {\n if (!isExitComplete)\n isEveryExitComplete = false;\n });\n if (isEveryExitComplete) {\n forceRender === null || forceRender === void 0 ? void 0 : forceRender();\n setRenderedChildren(pendingPresentChildren.current);\n propagate && (safeToRemove === null || safeToRemove === void 0 ? void 0 : safeToRemove());\n onExitComplete && onExitComplete();\n }\n };\n return (jsx(PresenceChild, { isPresent: isPresent, initial: !isInitialRender.current || initial\n ? undefined\n : false, custom: isPresent ? undefined : custom, presenceAffectsLayout: presenceAffectsLayout, mode: mode, onExitComplete: isPresent ? undefined : onExit, children: child }, key));\n }) }));\n};\n\nexport { AnimatePresence };\n","/*#__NO_SIDE_EFFECTS__*/\nconst noop = (any) => any;\n\nexport { noop };\n","import { noop } from './noop.mjs';\n\nlet warning = noop;\nlet invariant = noop;\nif (process.env.NODE_ENV !== \"production\") {\n warning = (check, message) => {\n if (!check && typeof console !== \"undefined\") {\n console.warn(message);\n }\n };\n invariant = (check, message) => {\n if (!check) {\n throw new Error(message);\n }\n };\n}\n\nexport { invariant, warning };\n","/*#__NO_SIDE_EFFECTS__*/\nfunction memo(callback) {\n let result;\n return () => {\n if (result === undefined)\n result = callback();\n return result;\n };\n}\n\nexport { memo };\n","/*\n Progress within given range\n\n Given a lower limit and an upper limit, we return the progress\n (expressed as a number 0-1) represented by the given value, and\n limit that progress to within 0-1.\n\n @param [number]: Lower limit\n @param [number]: Upper limit\n @param [number]: Value to find progress within given range\n @return [number]: Progress of value within range as expressed 0-1\n*/\n/*#__NO_SIDE_EFFECTS__*/\nconst progress = (from, to, value) => {\n const toFromDifference = to - from;\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\nexport { progress };\n","/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\n/*#__NO_SIDE_EFFECTS__*/\nconst secondsToMilliseconds = (seconds) => seconds * 1000;\n/*#__NO_SIDE_EFFECTS__*/\nconst millisecondsToSeconds = (milliseconds) => milliseconds / 1000;\n\nexport { millisecondsToSeconds, secondsToMilliseconds };\n","const MotionGlobalConfig = {\n skipAnimations: false,\n useManualTiming: false,\n};\n\nexport { MotionGlobalConfig };\n","import { MotionGlobalConfig } from '../utils/GlobalConfig.mjs';\nimport { createRenderStep } from './render-step.mjs';\n\nconst stepsOrder = [\n \"read\", // Read\n \"resolveKeyframes\", // Write/Read/Write/Read\n \"update\", // Compute\n \"preRender\", // Compute\n \"render\", // Write\n \"postRender\", // Compute\n];\nconst maxElapsed = 40;\nfunction createRenderBatcher(scheduleNextBatch, allowKeepAlive) {\n let runNextFrame = false;\n let useDefaultElapsed = true;\n const state = {\n delta: 0.0,\n timestamp: 0.0,\n isProcessing: false,\n };\n const flagRunNextFrame = () => (runNextFrame = true);\n const steps = stepsOrder.reduce((acc, key) => {\n acc[key] = createRenderStep(flagRunNextFrame);\n return acc;\n }, {});\n const { read, resolveKeyframes, update, preRender, render, postRender } = steps;\n const processBatch = () => {\n const timestamp = MotionGlobalConfig.useManualTiming\n ? state.timestamp\n : performance.now();\n runNextFrame = false;\n state.delta = useDefaultElapsed\n ? 1000 / 60\n : Math.max(Math.min(timestamp - state.timestamp, maxElapsed), 1);\n state.timestamp = timestamp;\n state.isProcessing = true;\n // Unrolled render loop for better per-frame performance\n read.process(state);\n resolveKeyframes.process(state);\n update.process(state);\n preRender.process(state);\n render.process(state);\n postRender.process(state);\n state.isProcessing = false;\n if (runNextFrame && allowKeepAlive) {\n useDefaultElapsed = false;\n scheduleNextBatch(processBatch);\n }\n };\n const wake = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!state.isProcessing) {\n scheduleNextBatch(processBatch);\n }\n };\n const schedule = stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n wake();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n }, {});\n const cancel = (process) => {\n for (let i = 0; i < stepsOrder.length; i++) {\n steps[stepsOrder[i]].cancel(process);\n }\n };\n return { schedule, cancel, state, steps };\n}\n\nexport { createRenderBatcher, stepsOrder };\n","function createRenderStep(runNextFrame) {\n /**\n * We create and reuse two queues, one to queue jobs for the current frame\n * and one for the next. We reuse to avoid triggering GC after x frames.\n */\n let thisFrame = new Set();\n let nextFrame = new Set();\n /**\n * Track whether we're currently processing jobs in this step. This way\n * we can decide whether to schedule new jobs for this frame or next.\n */\n let isProcessing = false;\n let flushNextFrame = false;\n /**\n * A set of processes which were marked keepAlive when scheduled.\n */\n const toKeepAlive = new WeakSet();\n let latestFrameData = {\n delta: 0.0,\n timestamp: 0.0,\n isProcessing: false,\n };\n function triggerCallback(callback) {\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n callback(latestFrameData);\n }\n const step = {\n /**\n * Schedule a process to run on the next frame.\n */\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const queue = addToCurrentFrame ? thisFrame : nextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n if (!queue.has(callback))\n queue.add(callback);\n return callback;\n },\n /**\n * Cancel the provided callback from running on the next frame.\n */\n cancel: (callback) => {\n nextFrame.delete(callback);\n toKeepAlive.delete(callback);\n },\n /**\n * Execute all schedule callbacks.\n */\n process: (frameData) => {\n latestFrameData = frameData;\n /**\n * If we're already processing we've probably been triggered by a flushSync\n * inside an existing process. Instead of executing, mark flushNextFrame\n * as true and ensure we flush the following frame at the end of this one.\n */\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n [thisFrame, nextFrame] = [nextFrame, thisFrame];\n // Execute this frame\n thisFrame.forEach(triggerCallback);\n // Clear the frame so no callbacks remain. This is to avoid\n // memory leaks should this render step not run for a while.\n thisFrame.clear();\n isProcessing = false;\n if (flushNextFrame) {\n flushNextFrame = false;\n step.process(frameData);\n }\n },\n };\n return step;\n}\n\nexport { createRenderStep };\n","import { noop } from 'motion-utils';\nimport { createRenderBatcher } from './batcher.mjs';\n\nconst { schedule: frame, cancel: cancelFrame, state: frameData, steps: frameSteps, } = createRenderBatcher(typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : noop, true);\n\nexport { cancelFrame, frame, frameData, frameSteps };\n","\"use client\";\nimport { createContext } from 'react';\n\nconst LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\n","const featureProps = {\n animation: [\n \"animate\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"exit\",\n \"whileInView\",\n \"whileFocus\",\n \"whileDrag\",\n ],\n exit: [\"exit\"],\n drag: [\"drag\", \"dragControls\"],\n focus: [\"whileFocus\"],\n hover: [\"whileHover\", \"onHoverStart\", \"onHoverEnd\"],\n tap: [\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"],\n pan: [\"onPan\", \"onPanStart\", \"onPanSessionStart\", \"onPanEnd\"],\n inView: [\"whileInView\", \"onViewportEnter\", \"onViewportLeave\"],\n layout: [\"layout\", \"layoutId\"],\n};\nconst featureDefinitions = {};\nfor (const key in featureProps) {\n featureDefinitions[key] = {\n isEnabled: (props) => featureProps[key].some((name) => !!props[name]),\n };\n}\n\nexport { featureDefinitions };\n","/**\n * A list of all valid MotionProps.\n *\n * @privateRemarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nconst validMotionProps = new Set([\n \"animate\",\n \"exit\",\n \"variants\",\n \"initial\",\n \"style\",\n \"values\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"custom\",\n \"inherit\",\n \"onBeforeLayoutMeasure\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"_dragX\",\n \"_dragY\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n \"globalTapTarget\",\n \"ignoreStrict\",\n \"viewport\",\n]);\n/**\n * Check whether a prop name is a valid `MotionProp` key.\n *\n * @param key - Name of the property to check\n * @returns `true` is key is a valid `MotionProp`.\n *\n * @public\n */\nfunction isValidMotionProp(key) {\n return (key.startsWith(\"while\") ||\n (key.startsWith(\"drag\") && key !== \"draggable\") ||\n key.startsWith(\"layout\") ||\n key.startsWith(\"onTap\") ||\n key.startsWith(\"onPan\") ||\n key.startsWith(\"onLayout\") ||\n validMotionProps.has(key));\n}\n\nexport { isValidMotionProp };\n","import { isValidMotionProp } from '../../../motion/utils/valid-prop.mjs';\n\nlet shouldForward = (key) => !isValidMotionProp(key);\nfunction loadExternalIsValidProp(isValidProp) {\n if (!isValidProp)\n return;\n // Explicitly filter our events\n shouldForward = (key) => key.startsWith(\"on\") ? !isValidMotionProp(key) : isValidProp(key);\n}\n/**\n * Emotion and Styled Components both allow users to pass through arbitrary props to their components\n * to dynamically generate CSS. They both use the `@emotion/is-prop-valid` package to determine which\n * of these should be passed to the underlying DOM node.\n *\n * However, when styling a Motion component `styled(motion.div)`, both packages pass through *all* props\n * as it's seen as an arbitrary component rather than a DOM node. Motion only allows arbitrary props\n * passed through the `custom` prop so it doesn't *need* the payload or computational overhead of\n * `@emotion/is-prop-valid`, however to fix this problem we need to use it.\n *\n * By making it an optionalDependency we can offer this functionality only in the situations where it's\n * actually required.\n */\ntry {\n /**\n * We attempt to import this package but require won't be defined in esm environments, in that case\n * isPropValid will have to be provided via `MotionContext`. In a 6.0.0 this should probably be removed\n * in favour of explicit injection.\n */\n loadExternalIsValidProp(require(\"@emotion/is-prop-valid\").default);\n}\ncatch (_a) {\n // We don't need to actually do anything here - the fallback is the existing `isPropValid`.\n}\nfunction filterProps(props, isDom, forwardMotionProps) {\n const filteredProps = {};\n for (const key in props) {\n /**\n * values is considered a valid prop by Emotion, so if it's present\n * this will be rendered out to the DOM unless explicitly filtered.\n *\n * We check the type as it could be used with the `feColorMatrix`\n * element, which we support.\n */\n if (key === \"values\" && typeof props.values === \"object\")\n continue;\n if (shouldForward(key) ||\n (forwardMotionProps === true && isValidMotionProp(key)) ||\n (!isDom && !isValidMotionProp(key)) ||\n // If trying to use native HTML drag events, forward drag listeners\n (props[\"draggable\"] &&\n key.startsWith(\"onDrag\"))) {\n filteredProps[key] =\n props[key];\n }\n }\n return filteredProps;\n}\n\nexport { filterProps, loadExternalIsValidProp };\n","import { warnOnce } from '../../utils/warn-once.mjs';\n\nfunction createDOMMotionComponentProxy(componentFactory) {\n if (typeof Proxy === \"undefined\") {\n return componentFactory;\n }\n /**\n * A cache of generated `motion` components, e.g `motion.div`, `motion.input` etc.\n * Rather than generating them anew every render.\n */\n const componentCache = new Map();\n const deprecatedFactoryFunction = (...args) => {\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(false, \"motion() is deprecated. Use motion.create() instead.\");\n }\n return componentFactory(...args);\n };\n return new Proxy(deprecatedFactoryFunction, {\n /**\n * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.\n * The prop name is passed through as `key` and we can use that to generate a `motion`\n * DOM component with that name.\n */\n get: (_target, key) => {\n if (key === \"create\")\n return componentFactory;\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, componentFactory(key));\n }\n return componentCache.get(key);\n },\n });\n}\n\nexport { createDOMMotionComponentProxy };\n","\"use client\";\nimport { createContext } from 'react';\n\nconst MotionContext = createContext({});\n\nexport { MotionContext };\n","/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || Array.isArray(v);\n}\n\nexport { isVariantLabel };\n","function isAnimationControls(v) {\n return (v !== null &&\n typeof v === \"object\" &&\n typeof v.start === \"function\");\n}\n\nexport { isAnimationControls };\n","const variantPriorityOrder = [\n \"animate\",\n \"whileInView\",\n \"whileFocus\",\n \"whileHover\",\n \"whileTap\",\n \"whileDrag\",\n \"exit\",\n];\nconst variantProps = [\"initial\", ...variantPriorityOrder];\n\nexport { variantPriorityOrder, variantProps };\n","import { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isVariantLabel } from './is-variant-label.mjs';\nimport { variantProps } from './variant-props.mjs';\n\nfunction isControllingVariants(props) {\n return (isAnimationControls(props.animate) ||\n variantProps.some((name) => isVariantLabel(props[name])));\n}\nfunction isVariantNode(props) {\n return Boolean(isControllingVariants(props) || props.variants);\n}\n\nexport { isControllingVariants, isVariantNode };\n","import { useContext, useMemo } from 'react';\nimport { MotionContext } from './index.mjs';\nimport { getCurrentTreeVariants } from './utils.mjs';\n\nfunction useCreateMotionContext(props) {\n const { initial, animate } = getCurrentTreeVariants(props, useContext(MotionContext));\n return useMemo(() => ({ initial, animate }), [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate)]);\n}\nfunction variantLabelsAsDependency(prop) {\n return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n\nexport { useCreateMotionContext };\n","import { isVariantLabel } from '../../render/utils/is-variant-label.mjs';\nimport { isControllingVariants } from '../../render/utils/is-controlling-variants.mjs';\n\nfunction getCurrentTreeVariants(props, context) {\n if (isControllingVariants(props)) {\n const { initial, animate } = props;\n return {\n initial: initial === false || isVariantLabel(initial)\n ? initial\n : undefined,\n animate: isVariantLabel(animate) ? animate : undefined,\n };\n }\n return props.inherit !== false ? context : {};\n}\n\nexport { getCurrentTreeVariants };\n","const motionComponentSymbol = Symbol.for(\"motionComponentSymbol\");\n\nexport { motionComponentSymbol };\n","function isRefObject(ref) {\n return (ref &&\n typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\nexport { isRefObject };\n","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 if (instance) {\n visualState.onMount && visualState.onMount(instance);\n }\n if (visualElement) {\n if (instance) {\n visualElement.mount(instance);\n }\n else {\n visualElement.unmount();\n }\n }\n if (externalRef) {\n if (typeof externalRef === \"function\") {\n externalRef(instance);\n }\n else if (isRefObject(externalRef)) {\n externalRef.current = instance;\n }\n }\n }, \n /**\n * 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 * Convert camelCase to dash-case properties.\n */\nconst camelToDash = (str) => str.replace(/([a-z])([A-Z])/gu, \"$1-$2\").toLowerCase();\n\nexport { camelToDash };\n","import { camelToDash } from '../../render/dom/utils/camel-to-dash.mjs';\n\nconst optimizedAppearDataId = \"framerAppearId\";\nconst optimizedAppearDataAttribute = \"data-\" + camelToDash(optimizedAppearDataId);\n\nexport { optimizedAppearDataAttribute, optimizedAppearDataId };\n","import { createRenderBatcher } from './batcher.mjs';\n\nconst { schedule: microtask, cancel: cancelMicrotask } = createRenderBatcher(queueMicrotask, false);\n\nexport { cancelMicrotask, microtask };\n","\"use client\";\nimport { createContext } from 'react';\n\n/**\n * Internal, exported only for usage in Framer\n */\nconst SwitchLayoutGroupContext = createContext({});\n\nexport { SwitchLayoutGroupContext };\n","import { useContext, useRef, useInsertionEffect, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { LazyContext } from '../../context/LazyContext.mjs';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\nimport { optimizedAppearDataAttribute } from '../../animation/optimized-appear/data-id.mjs';\nimport { microtask } from '../../frameloop/microtask.mjs';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\nimport { SwitchLayoutGroupContext } from '../../context/SwitchLayoutGroupContext.mjs';\n\nfunction useVisualElement(Component, visualState, props, createVisualElement, ProjectionNodeConstructor) {\n var _a, _b;\n const { visualElement: parent } = useContext(MotionContext);\n const lazyContext = useContext(LazyContext);\n const presenceContext = useContext(PresenceContext);\n const reducedMotionConfig = useContext(MotionConfigContext).reducedMotion;\n const visualElementRef = useRef(null);\n /**\n * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\n */\n createVisualElement = createVisualElement || lazyContext.renderer;\n if (!visualElementRef.current && createVisualElement) {\n visualElementRef.current = createVisualElement(Component, {\n visualState,\n parent,\n props,\n presenceContext,\n blockInitialAnimation: presenceContext\n ? presenceContext.initial === false\n : false,\n reducedMotionConfig,\n });\n }\n const visualElement = visualElementRef.current;\n /**\n * Load Motion gesture and animation features. These are rendered as renderless\n * components so each feature can optionally make use of React lifecycle methods.\n */\n const initialLayoutGroupConfig = useContext(SwitchLayoutGroupContext);\n if (visualElement &&\n !visualElement.projection &&\n ProjectionNodeConstructor &&\n (visualElement.type === \"html\" || visualElement.type === \"svg\")) {\n createProjectionNode(visualElementRef.current, props, ProjectionNodeConstructor, initialLayoutGroupConfig);\n }\n const isMounted = useRef(false);\n useInsertionEffect(() => {\n /**\n * Check the component has already mounted before calling\n * `update` unnecessarily. This ensures we skip the initial update.\n */\n if (visualElement && isMounted.current) {\n visualElement.update(props, presenceContext);\n }\n });\n /**\n * Cache this value as we want to know whether HandoffAppearAnimations\n * was present on initial render - it will be deleted after this.\n */\n const optimisedAppearId = props[optimizedAppearDataAttribute];\n const wantsHandoff = useRef(Boolean(optimisedAppearId) &&\n !((_a = window.MotionHandoffIsComplete) === null || _a === void 0 ? void 0 : _a.call(window, optimisedAppearId)) &&\n ((_b = window.MotionHasOptimisedAnimation) === null || _b === void 0 ? void 0 : _b.call(window, optimisedAppearId)));\n useIsomorphicLayoutEffect(() => {\n if (!visualElement)\n return;\n isMounted.current = true;\n window.MotionIsMounted = true;\n visualElement.updateFeatures();\n microtask.render(visualElement.render);\n /**\n * Ideally this function would always run in a useEffect.\n *\n * However, if we have optimised appear animations to handoff from,\n * it needs to happen synchronously to ensure there's no flash of\n * incorrect styles in the event of a hydration error.\n *\n * So if we detect a situtation where optimised appear animations\n * are running, we use useLayoutEffect to trigger animations.\n */\n if (wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n });\n useEffect(() => {\n if (!visualElement)\n return;\n if (!wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n if (wantsHandoff.current) {\n // This ensures all future calls to animateChanges() in this component will run in useEffect\n queueMicrotask(() => {\n var _a;\n (_a = window.MotionHandoffMarkAsComplete) === null || _a === void 0 ? void 0 : _a.call(window, optimisedAppearId);\n });\n wantsHandoff.current = false;\n }\n });\n return visualElement;\n}\nfunction createProjectionNode(visualElement, props, ProjectionNodeConstructor, initialPromotionConfig) {\n const { layoutId, layout, drag, dragConstraints, layoutScroll, layoutRoot, } = props;\n visualElement.projection = new ProjectionNodeConstructor(visualElement.latestValues, props[\"data-framer-portal-id\"]\n ? undefined\n : getClosestProjectingNode(visualElement.parent));\n visualElement.projection.setOptions({\n layoutId,\n layout,\n alwaysMeasureLayout: Boolean(drag) || (dragConstraints && isRefObject(dragConstraints)),\n visualElement,\n /**\n * TODO: Update options in an effect. This could be tricky as it'll be too late\n * to update by the time layout animations run.\n * We also need to fix this safeToRemove by linking it up to the one returned by usePresence,\n * ensuring it gets called if there's no potential layout animations.\n *\n */\n animationType: typeof layout === \"string\" ? layout : \"both\",\n initialPromotionConfig,\n layoutScroll,\n layoutRoot,\n });\n}\nfunction getClosestProjectingNode(visualElement) {\n if (!visualElement)\n return undefined;\n return visualElement.options.allowProjection !== false\n ? visualElement.projection\n : getClosestProjectingNode(visualElement.parent);\n}\n\nexport { useVisualElement };\n","\"use client\";\nimport { jsxs, jsx } from 'react/jsx-runtime';\nimport { warning, invariant } from 'motion-utils';\nimport { forwardRef, useContext } from 'react';\nimport { LayoutGroupContext } from '../context/LayoutGroupContext.mjs';\nimport { LazyContext } from '../context/LazyContext.mjs';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { MotionContext } from '../context/MotionContext/index.mjs';\nimport { useCreateMotionContext } from '../context/MotionContext/create.mjs';\nimport { isBrowser } from '../utils/is-browser.mjs';\nimport { featureDefinitions } from './features/definitions.mjs';\nimport { loadFeatures } from './features/load-features.mjs';\nimport { motionComponentSymbol } from './utils/symbol.mjs';\nimport { useMotionRef } from './utils/use-motion-ref.mjs';\nimport { useVisualElement } from './utils/use-visual-element.mjs';\n\n/**\n * Create a `motion` component.\n *\n * This function accepts a Component argument, which can be either a string (ie \"div\"\n * for `motion.div`), or an actual React component.\n *\n * Alongside this is a config option which provides a way of rendering the provided\n * component \"offline\", or outside the React render cycle.\n */\nfunction createRendererMotionComponent({ preloadedFeatures, createVisualElement, useRender, useVisualState, Component, }) {\n var _a, _b;\n preloadedFeatures && loadFeatures(preloadedFeatures);\n function MotionComponent(props, externalRef) {\n /**\n * If we need to measure the element we load this functionality in a\n * separate class component in order to gain access to getSnapshotBeforeUpdate.\n */\n let MeasureLayout;\n const configAndProps = {\n ...useContext(MotionConfigContext),\n ...props,\n layoutId: useLayoutId(props),\n };\n const { isStatic } = configAndProps;\n const context = useCreateMotionContext(props);\n const visualState = useVisualState(props, isStatic);\n if (!isStatic && isBrowser) {\n useStrictMode(configAndProps, preloadedFeatures);\n const layoutProjection = getProjectionFunctionality(configAndProps);\n MeasureLayout = layoutProjection.MeasureLayout;\n /**\n * Create a VisualElement for this component. A VisualElement provides a common\n * interface to renderer-specific APIs (ie DOM/Three.js etc) as well as\n * providing a way of rendering to these APIs outside of the React render loop\n * for more performant animations and interactions\n */\n context.visualElement = useVisualElement(Component, visualState, configAndProps, createVisualElement, layoutProjection.ProjectionNode);\n }\n /**\n * The mount order and hierarchy is specific to ensure our element ref\n * is hydrated by the time features fire their effects.\n */\n return (jsxs(MotionContext.Provider, { value: context, children: [MeasureLayout && context.visualElement ? (jsx(MeasureLayout, { visualElement: context.visualElement, ...configAndProps })) : null, useRender(Component, props, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic, context.visualElement)] }));\n }\n MotionComponent.displayName = `motion.${typeof Component === \"string\"\n ? Component\n : `create(${(_b = (_a = Component.displayName) !== null && _a !== void 0 ? _a : Component.name) !== null && _b !== void 0 ? _b : \"\"})`}`;\n const ForwardRefMotionComponent = forwardRef(MotionComponent);\n ForwardRefMotionComponent[motionComponentSymbol] = Component;\n return ForwardRefMotionComponent;\n}\nfunction useLayoutId({ layoutId }) {\n const layoutGroupId = useContext(LayoutGroupContext).id;\n return layoutGroupId && layoutId !== undefined\n ? layoutGroupId + \"-\" + layoutId\n : layoutId;\n}\nfunction useStrictMode(configAndProps, preloadedFeatures) {\n const isStrict = useContext(LazyContext).strict;\n /**\n * If we're in development mode, check to make sure we're not rendering a motion component\n * as a child of LazyMotion, as this will break the file-size benefits of using it.\n */\n if (process.env.NODE_ENV !== \"production\" &&\n preloadedFeatures &&\n isStrict) {\n const strictMessage = \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\";\n configAndProps.ignoreStrict\n ? warning(false, strictMessage)\n : invariant(false, strictMessage);\n }\n}\nfunction getProjectionFunctionality(props) {\n const { drag, layout } = featureDefinitions;\n if (!drag && !layout)\n return {};\n const combined = { ...drag, ...layout };\n return {\n MeasureLayout: (drag === null || drag === void 0 ? void 0 : drag.isEnabled(props)) || (layout === null || layout === void 0 ? void 0 : layout.isEnabled(props))\n ? combined.MeasureLayout\n : undefined,\n ProjectionNode: combined.ProjectionNode,\n };\n}\n\nexport { createRendererMotionComponent };\n","import { featureDefinitions } from './definitions.mjs';\n\nfunction loadFeatures(features) {\n for (const key in features) {\n featureDefinitions[key] = {\n ...featureDefinitions[key],\n ...features[key],\n };\n }\n}\n\nexport { loadFeatures };\n","/**\n * We keep these listed separately as we use the lowercase tag names as part\n * of the runtime bundle to detect SVG components\n */\nconst lowercaseSVGElements = [\n \"animate\",\n \"circle\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"g\",\n \"image\",\n \"line\",\n \"filter\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"rect\",\n \"stop\",\n \"switch\",\n \"symbol\",\n \"svg\",\n \"text\",\n \"tspan\",\n \"use\",\n \"view\",\n];\n\nexport { lowercaseSVGElements };\n","import { lowercaseSVGElements } from '../../svg/lowercase-elements.mjs';\n\nfunction isSVGComponent(Component) {\n if (\n /**\n * If it's not a string, it's a custom React component. Currently we only support\n * HTML custom React components.\n */\n typeof Component !== \"string\" ||\n /**\n * If it contains a dash, the element is a custom HTML webcomponent.\n */\n Component.includes(\"-\")) {\n return false;\n }\n else if (\n /**\n * If it's in our list of lowercase SVG tags, it's an SVG component\n */\n lowercaseSVGElements.indexOf(Component) > -1 ||\n /**\n * If it contains a capital letter, it's an SVG component\n */\n /[A-Z]/u.test(Component)) {\n return true;\n }\n return false;\n}\n\nexport { isSVGComponent };\n","function getValueState(visualElement) {\n const state = [{}, {}];\n visualElement === null || visualElement === void 0 ? void 0 : visualElement.values.forEach((value, key) => {\n state[0][key] = value.get();\n state[1][key] = value.getVelocity();\n });\n return state;\n}\nfunction resolveVariantFromProps(props, definition, custom, visualElement) {\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n /**\n * If the variant definition is a variant label, or\n * the function returned a variant label, resolve.\n */\n if (typeof definition === \"string\") {\n definition = props.variants && props.variants[definition];\n }\n /**\n * At this point we've resolved both functions and variant labels,\n * but the resolved variant label might itself have been a function.\n * If so, resolve. This can only have returned a valid target object.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n return definition;\n}\n\nexport { resolveVariantFromProps };\n","const isKeyframesTarget = (v) => {\n return Array.isArray(v);\n};\n\nexport { isKeyframesTarget };\n","const isMotionValue = (value) => Boolean(value && value.getVelocity);\n\nexport { isMotionValue };\n","import { isCustomValue } from '../../utils/resolve-value.mjs';\nimport { isMotionValue } from './is-motion-value.mjs';\n\n/**\n * If the provided value is a MotionValue, this returns the actual value, otherwise just the value itself\n *\n * TODO: Remove and move to library\n */\nfunction resolveMotionValue(value) {\n const unwrappedValue = isMotionValue(value) ? value.get() : value;\n return isCustomValue(unwrappedValue)\n ? unwrappedValue.toValue()\n : unwrappedValue;\n}\n\nexport { resolveMotionValue };\n","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 { useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { isControllingVariants, isVariantNode } from '../../render/utils/is-controlling-variants.mjs';\nimport { resolveVariantFromProps } from '../../render/utils/resolve-variants.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\n\nfunction makeState({ scrapeMotionValuesFromProps, createRenderState, onUpdate, }, props, context, presenceContext) {\n const state = {\n latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\n renderState: createRenderState(),\n };\n if (onUpdate) {\n /**\n * onMount works without the VisualElement because it could be\n * called before the VisualElement payload has been hydrated.\n * (e.g. if someone is using m components )\n */\n state.onMount = (instance) => onUpdate({ props, current: instance, ...state });\n state.onUpdate = (visualElement) => onUpdate(visualElement);\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 for (let i = 0; i < list.length; i++) {\n const resolved = resolveVariantFromProps(props, list[i]);\n if (resolved) {\n const { transitionEnd, transition, ...target } = resolved;\n for (const key in target) {\n let valueTarget = target[key];\n if (Array.isArray(valueTarget)) {\n /**\n * Take final keyframe if the initial animation is blocked because\n * we want to initialise at the end of that blocked animation.\n */\n const index = isInitialAnimationBlocked\n ? valueTarget.length - 1\n : 0;\n valueTarget = valueTarget[index];\n }\n if (valueTarget !== null) {\n values[key] = valueTarget;\n }\n }\n for (const key in transitionEnd) {\n values[key] = transitionEnd[key];\n }\n }\n }\n }\n return values;\n}\n\nexport { makeUseVisualState };\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","const checkStringStartsWith = (token) => (key) => typeof key === \"string\" && key.startsWith(token);\nconst isCSSVariableName = \n/*@__PURE__*/ checkStringStartsWith(\"--\");\nconst startsAsVariableToken = \n/*@__PURE__*/ checkStringStartsWith(\"var(--\");\nconst isCSSVariableToken = (value) => {\n const startsWithToken = startsAsVariableToken(value);\n if (!startsWithToken)\n return false;\n // Ensure any comments are stripped from the value as this can harm performance of the regex.\n return singleCssVariableRegex.test(value.split(\"/*\")[0].trim());\n};\nconst singleCssVariableRegex = /var\\(--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)$/iu;\n\nexport { isCSSVariableName, isCSSVariableToken };\n","/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nconst getValueAsType = (value, type) => {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\nexport { getValueAsType };\n","const clamp = (min, max, v) => {\n if (v > max)\n return max;\n if (v < min)\n return min;\n return v;\n};\n\nexport { clamp };\n","import { clamp } from '../../../utils/clamp.mjs';\n\nconst number = {\n test: (v) => typeof v === \"number\",\n parse: parseFloat,\n transform: (v) => v,\n};\nconst alpha = {\n ...number,\n transform: (v) => clamp(0, 1, v),\n};\nconst scale = {\n ...number,\n default: 1,\n};\n\nexport { alpha, number, scale };\n","const createUnitType = (unit) => ({\n test: (v) => typeof v === \"string\" && v.endsWith(unit) && v.split(\" \").length === 1,\n parse: parseFloat,\n transform: (v) => `${v}${unit}`,\n});\nconst degrees = /*@__PURE__*/ createUnitType(\"deg\");\nconst percent = /*@__PURE__*/ createUnitType(\"%\");\nconst px = /*@__PURE__*/ createUnitType(\"px\");\nconst vh = /*@__PURE__*/ createUnitType(\"vh\");\nconst vw = /*@__PURE__*/ createUnitType(\"vw\");\nconst progressPercentage = {\n ...percent,\n parse: (v) => percent.parse(v) / 100,\n transform: (v) => percent.transform(v * 100),\n};\n\nexport { degrees, percent, progressPercentage, px, vh, vw };\n","import { px } from '../../../value/types/numbers/units.mjs';\n\nconst browserNumberValueTypes = {\n // Border props\n borderWidth: px,\n borderTopWidth: px,\n borderRightWidth: px,\n borderBottomWidth: px,\n borderLeftWidth: px,\n borderRadius: px,\n radius: px,\n borderTopLeftRadius: px,\n borderTopRightRadius: px,\n borderBottomRightRadius: px,\n borderBottomLeftRadius: px,\n // Positioning props\n width: px,\n maxWidth: px,\n height: px,\n maxHeight: px,\n top: px,\n right: px,\n bottom: px,\n left: px,\n // Spacing props\n padding: px,\n paddingTop: px,\n paddingRight: px,\n paddingBottom: px,\n paddingLeft: px,\n margin: px,\n marginTop: px,\n marginRight: px,\n marginBottom: px,\n marginLeft: px,\n // Misc\n backgroundPositionX: px,\n backgroundPositionY: px,\n};\n\nexport { browserNumberValueTypes };\n","import { scale, alpha } from '../../../value/types/numbers/index.mjs';\nimport { degrees, px, progressPercentage } from '../../../value/types/numbers/units.mjs';\n\nconst transformValueTypes = {\n rotate: degrees,\n rotateX: degrees,\n rotateY: degrees,\n rotateZ: degrees,\n scale,\n scaleX: scale,\n scaleY: scale,\n scaleZ: scale,\n skew: degrees,\n skewX: degrees,\n skewY: degrees,\n distance: px,\n translateX: px,\n translateY: px,\n translateZ: px,\n x: px,\n y: px,\n z: px,\n perspective: px,\n transformPerspective: px,\n opacity: alpha,\n originX: progressPercentage,\n originY: progressPercentage,\n originZ: px,\n};\n\nexport { transformValueTypes };\n","import { number } from '../../../value/types/numbers/index.mjs';\n\nconst int = {\n ...number,\n transform: Math.round,\n};\n\nexport { int };\n","import { alpha } from '../../../value/types/numbers/index.mjs';\nimport { px } from '../../../value/types/numbers/units.mjs';\nimport { browserNumberValueTypes } from './number-browser.mjs';\nimport { transformValueTypes } from './transform.mjs';\nimport { int } from './type-int.mjs';\n\nconst numberValueTypes = {\n ...browserNumberValueTypes,\n ...transformValueTypes,\n zIndex: int,\n size: px,\n // SVG\n fillOpacity: alpha,\n strokeOpacity: alpha,\n numOctaves: int,\n};\n\nexport { numberValueTypes };\n","import { getValueAsType } from '../../dom/value-types/get-as-type.mjs';\nimport { numberValueTypes } from '../../dom/value-types/number.mjs';\nimport { transformPropOrder } from './keys-transform.mjs';\n\nconst translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\nconst numTransforms = transformPropOrder.length;\n/**\n * Build a CSS transform style from individual x/y/scale etc properties.\n *\n * This outputs with a default order of transforms/scales/rotations, this can be customised by\n * providing a transformTemplate function.\n */\nfunction buildTransform(latestValues, transform, transformTemplate) {\n // The transform string we're going to build into.\n let transformString = \"\";\n let transformIsDefault = true;\n /**\n * Loop over all possible transforms in order, adding the ones that\n * are present to the transform string.\n */\n for (let i = 0; i < numTransforms; i++) {\n const key = transformPropOrder[i];\n const value = latestValues[key];\n if (value === undefined)\n continue;\n let valueIsDefault = true;\n if (typeof value === \"number\") {\n valueIsDefault = value === (key.startsWith(\"scale\") ? 1 : 0);\n }\n else {\n valueIsDefault = parseFloat(value) === 0;\n }\n if (!valueIsDefault || transformTemplate) {\n const valueAsType = getValueAsType(value, numberValueTypes[key]);\n if (!valueIsDefault) {\n transformIsDefault = false;\n const transformName = translateAlias[key] || key;\n transformString += `${transformName}(${valueAsType}) `;\n }\n if (transformTemplate) {\n transform[key] = valueAsType;\n }\n }\n }\n transformString = transformString.trim();\n // If we have a custom `transform` template, pass our transform values and\n // generated transformString to that before returning\n if (transformTemplate) {\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n }\n else if (transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n\nexport { buildTransform };\n","import { isCSSVariableName } from '../../dom/utils/is-css-variable.mjs';\nimport { getValueAsType } from '../../dom/value-types/get-as-type.mjs';\nimport { numberValueTypes } from '../../dom/value-types/number.mjs';\nimport { buildTransform } from './build-transform.mjs';\nimport { transformProps } from './keys-transform.mjs';\n\nfunction buildHTMLStyles(state, latestValues, transformTemplate) {\n const { style, vars, transformOrigin } = state;\n // Track whether we encounter any transform or transformOrigin values.\n let hasTransform = false;\n let hasTransformOrigin = false;\n /**\n * Loop over all our latest animated values and decide whether to handle them\n * as a style or CSS variable.\n *\n * Transforms and transform origins are kept separately for further processing.\n */\n for (const key in latestValues) {\n const value = latestValues[key];\n if (transformProps.has(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n continue;\n }\n else if (isCSSVariableName(key)) {\n vars[key] = value;\n continue;\n }\n else {\n // Convert the value to its default value type, ie 0 -> \"0px\"\n const valueAsType = getValueAsType(value, numberValueTypes[key]);\n if (key.startsWith(\"origin\")) {\n // If this is a transform origin, flag and enable further transform-origin processing\n hasTransformOrigin = true;\n transformOrigin[key] =\n valueAsType;\n }\n else {\n style[key] = valueAsType;\n }\n }\n }\n if (!latestValues.transform) {\n if (hasTransform || transformTemplate) {\n style.transform = buildTransform(latestValues, state.transform, transformTemplate);\n }\n else if (style.transform) {\n /**\n * If we have previously created a transform but currently don't have any,\n * reset transform style to none.\n */\n style.transform = \"none\";\n }\n }\n /**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\n if (hasTransformOrigin) {\n const { originX = \"50%\", originY = \"50%\", originZ = 0, } = transformOrigin;\n style.transformOrigin = `${originX} ${originY} ${originZ}`;\n }\n}\n\nexport { buildHTMLStyles };\n","import { px } from '../../../value/types/numbers/units.mjs';\n\nconst dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nconst camelKeys = {\n offset: \"strokeDashoffset\",\n array: \"strokeDasharray\",\n};\n/**\n * Build SVG path properties. Uses the path's measured length to convert\n * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset\n * and stroke-dasharray attributes.\n *\n * This function is mutative to reduce per-frame GC.\n */\nfunction buildSVGPath(attrs, length, spacing = 1, offset = 0, useDashCase = true) {\n // Normalise path length by setting SVG attribute pathLength to 1\n attrs.pathLength = 1;\n // We use dash case when setting attributes directly to the DOM node and camel case\n // when defining props on a React component.\n const keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset\n attrs[keys.offset] = px.transform(-offset);\n // Build the dash array\n const pathLength = px.transform(length);\n const pathSpacing = px.transform(spacing);\n attrs[keys.array] = `${pathLength} ${pathSpacing}`;\n}\n\nexport { buildSVGPath };\n","import { px } from '../../../value/types/numbers/units.mjs';\n\nfunction calcOrigin(origin, offset, size) {\n return typeof origin === \"string\"\n ? origin\n : px.transform(offset + size * origin);\n}\n/**\n * The SVG transform origin defaults are different to CSS and is less intuitive,\n * so we use the measured dimensions of the SVG to reconcile these.\n */\nfunction calcSVGTransformOrigin(dimensions, originX, originY) {\n const pxOriginX = calcOrigin(originX, dimensions.x, dimensions.width);\n const pxOriginY = calcOrigin(originY, dimensions.y, dimensions.height);\n return `${pxOriginX} ${pxOriginY}`;\n}\n\nexport { calcSVGTransformOrigin };\n","import { buildHTMLStyles } from '../../html/utils/build-styles.mjs';\nimport { buildSVGPath } from './path.mjs';\nimport { calcSVGTransformOrigin } from './transform-origin.mjs';\n\n/**\n * Build SVG visual attrbutes, like cx and style.transform\n */\nfunction buildSVGAttrs(state, { attrX, attrY, attrScale, originX, originY, pathLength, pathSpacing = 1, pathOffset = 0, \n// This is object creation, which we try to avoid per-frame.\n...latest }, isSVGTag, transformTemplate) {\n buildHTMLStyles(state, latest, transformTemplate);\n /**\n * For svg tags we just want to make sure viewBox is animatable and treat all the styles\n * as normal HTML tags.\n */\n if (isSVGTag) {\n if (state.style.viewBox) {\n state.attrs.viewBox = state.style.viewBox;\n }\n return;\n }\n state.attrs = state.style;\n state.style = {};\n const { attrs, style, dimensions } = state;\n /**\n * However, we apply transforms as CSS transforms. So if we detect a transform we take it from attrs\n * and copy it into style.\n */\n if (attrs.transform) {\n if (dimensions)\n style.transform = attrs.transform;\n delete attrs.transform;\n }\n // Parse transformOrigin\n if (dimensions &&\n (originX !== undefined || originY !== undefined || style.transform)) {\n style.transformOrigin = calcSVGTransformOrigin(dimensions, originX !== undefined ? originX : 0.5, originY !== undefined ? originY : 0.5);\n }\n // Render attrX/attrY/attrScale as attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n if (attrScale !== undefined)\n attrs.scale = attrScale;\n // Build SVG path if one has been defined\n if (pathLength !== undefined) {\n buildSVGPath(attrs, pathLength, pathSpacing, pathOffset, false);\n }\n}\n\nexport { buildSVGAttrs };\n","const createHtmlRenderState = () => ({\n style: {},\n transform: {},\n transformOrigin: {},\n vars: {},\n});\n\nexport { createHtmlRenderState };\n","import { createHtmlRenderState } from '../../html/utils/create-render-state.mjs';\n\nconst createSvgRenderState = () => ({\n ...createHtmlRenderState(),\n attrs: {},\n});\n\nexport { createSvgRenderState };\n","const isSVGTag = (tag) => typeof tag === \"string\" && tag.toLowerCase() === \"svg\";\n\nexport { isSVGTag };\n","function renderHTML(element, { style, vars }, styleProp, projection) {\n Object.assign(element.style, style, projection && projection.getProjectionStyles(styleProp));\n // Loop over any CSS variables and assign those.\n for (const key in vars) {\n element.style.setProperty(key, vars[key]);\n }\n}\n\nexport { renderHTML };\n","/**\n * A set of attribute names that are always read/written as camel case.\n */\nconst camelCaseAttributes = new Set([\n \"baseFrequency\",\n \"diffuseConstant\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keySplines\",\n \"keyTimes\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerWidth\",\n \"numOctaves\",\n \"targetX\",\n \"targetY\",\n \"surfaceScale\",\n \"specularConstant\",\n \"specularExponent\",\n \"stdDeviation\",\n \"tableValues\",\n \"viewBox\",\n \"gradientTransform\",\n \"pathLength\",\n \"startOffset\",\n \"textLength\",\n \"lengthAdjust\",\n]);\n\nexport { camelCaseAttributes };\n","import { camelToDash } from '../../dom/utils/camel-to-dash.mjs';\nimport { renderHTML } from '../../html/utils/render.mjs';\nimport { camelCaseAttributes } from './camel-case-attrs.mjs';\n\nfunction renderSVG(element, renderState, _styleProp, projection) {\n renderHTML(element, renderState, undefined, projection);\n for (const key in renderState.attrs) {\n element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]);\n }\n}\n\nexport { renderSVG };\n","const scaleCorrectors = {};\nfunction addScaleCorrector(correctors) {\n Object.assign(scaleCorrectors, correctors);\n}\n\nexport { addScaleCorrector, scaleCorrectors };\n","import { scaleCorrectors } from '../../projection/styles/scale-correction.mjs';\nimport { transformProps } from '../../render/html/utils/keys-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","import { isForcedMotionValue } from '../../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\n\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n var _a;\n const { style } = props;\n const newValues = {};\n for (const key in style) {\n if (isMotionValue(style[key]) ||\n (prevProps.style &&\n isMotionValue(prevProps.style[key])) ||\n isForcedMotionValue(key, props) ||\n ((_a = visualElement === null || visualElement === void 0 ? void 0 : visualElement.getValue(key)) === null || _a === void 0 ? void 0 : _a.liveStyle) !== undefined) {\n newValues[key] = style[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","import { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\nimport { transformPropOrder } from '../../html/utils/keys-transform.mjs';\nimport { scrapeMotionValuesFromProps as scrapeMotionValuesFromProps$1 } from '../../html/utils/scrape-motion-values.mjs';\n\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n const newValues = scrapeMotionValuesFromProps$1(props, prevProps, visualElement);\n for (const key in props) {\n if (isMotionValue(props[key]) ||\n isMotionValue(prevProps[key])) {\n const targetKey = transformPropOrder.indexOf(key) !== -1\n ? \"attr\" + key.charAt(0).toUpperCase() + key.substring(1)\n : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","import { frame } from '../../frameloop/frame.mjs';\nimport { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { transformProps } from '../html/utils/keys-transform.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\nimport { renderSVG } from './utils/render.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\n\nfunction updateSVGDimensions(instance, renderState) {\n try {\n renderState.dimensions =\n typeof instance.getBBox === \"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}\nconst layoutProps = [\"x\", \"y\", \"width\", \"height\", \"cx\", \"cy\", \"r\"];\nconst svgMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createSvgRenderState,\n onUpdate: ({ props, prevProps, current, renderState, latestValues, }) => {\n if (!current)\n return;\n let hasTransform = !!props.drag;\n if (!hasTransform) {\n for (const key in latestValues) {\n if (transformProps.has(key)) {\n hasTransform = true;\n break;\n }\n }\n }\n if (!hasTransform)\n return;\n let needsMeasure = !prevProps;\n if (prevProps) {\n /**\n * Check the layout props for changes, if any are found we need to\n * measure the element again.\n */\n for (let i = 0; i < layoutProps.length; i++) {\n const key = layoutProps[i];\n if (props[key] !==\n prevProps[key]) {\n needsMeasure = true;\n }\n }\n }\n if (!needsMeasure)\n return;\n frame.read(() => {\n updateSVGDimensions(current, renderState);\n frame.render(() => {\n buildSVGAttrs(renderState, latestValues, isSVGTag(current.tagName), props.transformTemplate);\n renderSVG(current, renderState);\n });\n });\n },\n }),\n};\n\nexport { svgMotionConfig };\n","import { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nconst htmlMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps,\n createRenderState: createHtmlRenderState,\n }),\n};\n\nexport { htmlMotionConfig };\n","import { 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) {\n return useMemo(() => {\n const state = createHtmlRenderState();\n buildHTMLStyles(state, visualState, transformTemplate);\n return Object.assign({}, state.vars, state.style);\n }, [visualState]);\n}\nfunction useStyle(props, visualState) {\n const styleProp = props.style || {};\n const style = {};\n /**\n * Copy non-Motion Values straight into style\n */\n copyRawValuesOnly(style, styleProp, props);\n Object.assign(style, useInitialMotionValues(props, visualState));\n return style;\n}\nfunction useHTMLProps(props, visualState) {\n // The `any` isn't ideal but it is the type of createElement props argument\n const htmlProps = {};\n const style = useStyle(props, visualState);\n if (props.drag && props.dragListener !== false) {\n // Disable the ghost element when a user drags\n htmlProps.draggable = false;\n // Disable text selection\n style.userSelect =\n style.WebkitUserSelect =\n style.WebkitTouchCallout =\n \"none\";\n // Disable scrolling on the draggable direction\n style.touchAction =\n props.drag === true\n ? \"none\"\n : `pan-${props.drag === \"x\" ? \"y\" : \"x\"}`;\n }\n if (props.tabIndex === undefined &&\n (props.onTap || props.onTapStart || props.whileTap)) {\n htmlProps.tabIndex = 0;\n }\n htmlProps.style = style;\n return htmlProps;\n}\n\nexport { copyRawValuesOnly, useHTMLProps };\n","import { useMemo } from 'react';\nimport { copyRawValuesOnly } from '../html/use-props.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\n\nfunction useSVGProps(props, visualState, _isStatic, Component) {\n const visualProps = useMemo(() => {\n const state = createSvgRenderState();\n buildSVGAttrs(state, visualState, isSVGTag(Component), props.transformTemplate);\n return {\n ...state.attrs,\n style: { ...state.style },\n };\n }, [visualState]);\n if (props.style) {\n const rawStyles = {};\n copyRawValuesOnly(rawStyles, props.style, props);\n visualProps.style = { ...rawStyles, ...visualProps.style };\n }\n return visualProps;\n}\n\nexport { useSVGProps };\n","import { Fragment, useMemo, createElement } from 'react';\nimport { useHTMLProps } from '../html/use-props.mjs';\nimport { filterProps } from './utils/filter-props.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\nimport { useSVGProps } from '../svg/use-props.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction createUseRender(forwardMotionProps = false) {\n const useRender = (Component, props, ref, { latestValues }, isStatic) => {\n const useVisualProps = isSVGComponent(Component)\n ? useSVGProps\n : useHTMLProps;\n const visualProps = useVisualProps(props, latestValues, isStatic, Component);\n const filteredProps = filterProps(props, typeof Component === \"string\", forwardMotionProps);\n const elementProps = Component !== Fragment\n ? { ...filteredProps, ...visualProps, ref }\n : {};\n /**\n * If component has been handed a motion value as its child,\n * memoise its initial value and render that. Subsequent updates\n * will be handled by the onChange handler\n */\n const { children } = props;\n const renderedChildren = useMemo(() => (isMotionValue(children) ? children.get() : children), [children]);\n return createElement(Component, {\n ...elementProps,\n children: renderedChildren,\n });\n };\n return useRender;\n}\n\nexport { createUseRender };\n","import { createRendererMotionComponent } from '../../motion/index.mjs';\nimport { isSVGComponent } from '../dom/utils/is-svg-component.mjs';\nimport { svgMotionConfig } from '../svg/config-motion.mjs';\nimport { htmlMotionConfig } from '../html/config-motion.mjs';\nimport { createUseRender } from '../dom/use-render.mjs';\n\nfunction createMotionComponentFactory(preloadedFeatures, createVisualElement) {\n return function createMotionComponent(Component, { forwardMotionProps } = { forwardMotionProps: false }) {\n const baseConfig = isSVGComponent(Component)\n ? svgMotionConfig\n : htmlMotionConfig;\n const config = {\n ...baseConfig,\n preloadedFeatures,\n useRender: createUseRender(forwardMotionProps),\n createVisualElement,\n Component,\n };\n return createRendererMotionComponent(config);\n };\n}\n\nexport { createMotionComponentFactory };\n","function shallowCompare(next, prev) {\n if (!Array.isArray(prev))\n return false;\n const prevLength = prev.length;\n if (prevLength !== next.length)\n return false;\n for (let i = 0; i < prevLength; i++) {\n if (prev[i] !== next[i])\n return false;\n }\n return true;\n}\n\nexport { shallowCompare };\n","import { resolveVariantFromProps } from './resolve-variants.mjs';\n\nfunction resolveVariant(visualElement, definition, custom) {\n const props = visualElement.getProps();\n return resolveVariantFromProps(props, definition, custom !== undefined ? custom : props.custom, visualElement);\n}\n\nexport { resolveVariant };\n","import { memo } from 'motion-utils';\n\nconst supportsScrollTimeline = memo(() => window.ScrollTimeline !== undefined);\n\nexport { supportsScrollTimeline };\n","import { supportsScrollTimeline } from '../../utils/supports/scroll-timeline.mjs';\n\nclass BaseGroupPlaybackControls {\n constructor(animations) {\n // Bound to accomodate common `return animation.stop` pattern\n this.stop = () => this.runAll(\"stop\");\n this.animations = animations.filter(Boolean);\n }\n get finished() {\n // Support for new finished Promise and legacy thennable API\n return Promise.all(this.animations.map((animation) => \"finished\" in animation ? animation.finished : animation));\n }\n /**\n * TODO: Filter out cancelled or stopped animations before returning\n */\n getAll(propName) {\n return this.animations[0][propName];\n }\n setAll(propName, newValue) {\n for (let i = 0; i < this.animations.length; i++) {\n this.animations[i][propName] = newValue;\n }\n }\n attachTimeline(timeline, fallback) {\n const subscriptions = this.animations.map((animation) => {\n if (supportsScrollTimeline() && animation.attachTimeline) {\n return animation.attachTimeline(timeline);\n }\n else if (typeof fallback === \"function\") {\n return fallback(animation);\n }\n });\n return () => {\n subscriptions.forEach((cancel, i) => {\n cancel && cancel();\n this.animations[i].stop();\n });\n };\n }\n get time() {\n return this.getAll(\"time\");\n }\n set time(time) {\n this.setAll(\"time\", time);\n }\n get speed() {\n return this.getAll(\"speed\");\n }\n set speed(speed) {\n this.setAll(\"speed\", speed);\n }\n get startTime() {\n return this.getAll(\"startTime\");\n }\n get duration() {\n let max = 0;\n for (let i = 0; i < this.animations.length; i++) {\n max = Math.max(max, this.animations[i].duration);\n }\n return max;\n }\n runAll(methodName) {\n this.animations.forEach((controls) => controls[methodName]());\n }\n flatten() {\n this.runAll(\"flatten\");\n }\n play() {\n this.runAll(\"play\");\n }\n pause() {\n this.runAll(\"pause\");\n }\n cancel() {\n this.runAll(\"cancel\");\n }\n complete() {\n this.runAll(\"complete\");\n }\n}\n\nexport { BaseGroupPlaybackControls };\n","import { BaseGroupPlaybackControls } from './BaseGroup.mjs';\n\n/**\n * TODO: This is a temporary class to support the legacy\n * thennable API\n */\nclass GroupPlaybackControls extends BaseGroupPlaybackControls {\n then(onResolve, onReject) {\n return Promise.all(this.animations).then(onResolve).catch(onReject);\n }\n}\n\nexport { GroupPlaybackControls };\n","function getValueTransition(transition, key) {\n return transition\n ? transition[key] ||\n transition[\"default\"] ||\n transition\n : undefined;\n}\n\nexport { getValueTransition };\n","/**\n * Implement a practical max duration for keyframe generation\n * to prevent infinite loops\n */\nconst maxGeneratorDuration = 20000;\nfunction calcGeneratorDuration(generator) {\n let duration = 0;\n const timeStep = 50;\n let state = generator.next(duration);\n while (!state.done && duration < maxGeneratorDuration) {\n duration += timeStep;\n state = generator.next(duration);\n }\n return duration >= maxGeneratorDuration ? Infinity : duration;\n}\n\nexport { calcGeneratorDuration, maxGeneratorDuration };\n","function isGenerator(type) {\n return typeof type === \"function\";\n}\n\nexport { isGenerator };\n","function attachTimeline(animation, timeline) {\n animation.timeline = timeline;\n animation.onfinish = null;\n}\n\nexport { attachTimeline };\n","const isBezierDefinition = (easing) => Array.isArray(easing) && typeof easing[0] === \"number\";\n\nexport { isBezierDefinition };\n","/**\n * Add the ability for test suites to manually set support flags\n * to better test more environments.\n */\nconst supportsFlags = {\n linearEasing: undefined,\n};\n\nexport { supportsFlags };\n","import { memo } from 'motion-utils';\nimport { supportsFlags } from './flags.mjs';\n\nfunction memoSupports(callback, supportsFlag) {\n const memoized = memo(callback);\n return () => { var _a; return (_a = supportsFlags[supportsFlag]) !== null && _a !== void 0 ? _a : memoized(); };\n}\n\nexport { memoSupports };\n","import { memoSupports } from './memo.mjs';\n\nconst supportsLinearEasing = /*@__PURE__*/ memoSupports(() => {\n try {\n document\n .createElement(\"div\")\n .animate({ opacity: 0 }, { easing: \"linear(0, 1)\" });\n }\n catch (e) {\n return false;\n }\n return true;\n}, \"linearEasing\");\n\nexport { supportsLinearEasing };\n","import { progress } from 'motion-utils';\n\nconst generateLinearEasing = (easing, duration, // as milliseconds\nresolution = 10 // as milliseconds\n) => {\n let points = \"\";\n const numPoints = Math.max(Math.round(duration / resolution), 2);\n for (let i = 0; i < numPoints; i++) {\n points += easing(progress(0, numPoints - 1, i)) + \", \";\n }\n return `linear(${points.substring(0, points.length - 2)})`;\n};\n\nexport { generateLinearEasing };\n","import { isBezierDefinition } from '../../../utils/is-bezier-definition.mjs';\nimport { supportsLinearEasing } from '../../../utils/supports/linear-easing.mjs';\nimport { generateLinearEasing } from './linear.mjs';\n\nfunction isWaapiSupportedEasing(easing) {\n return Boolean((typeof easing === \"function\" && supportsLinearEasing()) ||\n !easing ||\n (typeof easing === \"string\" &&\n (easing in supportedWaapiEasing || supportsLinearEasing())) ||\n isBezierDefinition(easing) ||\n (Array.isArray(easing) && easing.every(isWaapiSupportedEasing)));\n}\nconst cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\nconst supportedWaapiEasing = {\n linear: \"linear\",\n ease: \"ease\",\n easeIn: \"ease-in\",\n easeOut: \"ease-out\",\n easeInOut: \"ease-in-out\",\n circIn: /*@__PURE__*/ cubicBezierAsString([0, 0.65, 0.55, 1]),\n circOut: /*@__PURE__*/ cubicBezierAsString([0.55, 0, 1, 0.45]),\n backIn: /*@__PURE__*/ cubicBezierAsString([0.31, 0.01, 0.66, -0.59]),\n backOut: /*@__PURE__*/ cubicBezierAsString([0.33, 1.53, 0.69, 0.99]),\n};\nfunction mapEasingToNativeEasing(easing, duration) {\n if (!easing) {\n return undefined;\n }\n else if (typeof easing === \"function\" && supportsLinearEasing()) {\n return generateLinearEasing(easing, duration);\n }\n else if (isBezierDefinition(easing)) {\n return cubicBezierAsString(easing);\n }\n else if (Array.isArray(easing)) {\n return easing.map((segmentEasing) => mapEasingToNativeEasing(segmentEasing, duration) ||\n supportedWaapiEasing.easeOut);\n }\n else {\n return supportedWaapiEasing[easing];\n }\n}\n\nexport { cubicBezierAsString, isWaapiSupportedEasing, mapEasingToNativeEasing, supportedWaapiEasing };\n","const isDragging = {\n x: false,\n y: false,\n};\nfunction isDragActive() {\n return isDragging.x || isDragging.y;\n}\n\nexport { isDragActive, isDragging };\n","import { resolveElements } from '../../utils/resolve-elements.mjs';\n\nfunction setupGesture(elementOrSelector, options) {\n const elements = resolveElements(elementOrSelector);\n const gestureAbortController = new AbortController();\n const eventOptions = {\n passive: true,\n ...options,\n signal: gestureAbortController.signal,\n };\n const cancel = () => gestureAbortController.abort();\n return [elements, eventOptions, cancel];\n}\n\nexport { setupGesture };\n","function resolveElements(elementOrSelector, scope, selectorCache) {\n var _a;\n if (elementOrSelector instanceof Element) {\n return [elementOrSelector];\n }\n else if (typeof elementOrSelector === \"string\") {\n let root = document;\n if (scope) {\n // TODO: Refactor to utils package\n // invariant(\n // Boolean(scope.current),\n // \"Scope provided, but no element detected.\"\n // )\n root = scope.current;\n }\n const elements = (_a = selectorCache === null || selectorCache === void 0 ? void 0 : selectorCache[elementOrSelector]) !== null && _a !== void 0 ? _a : root.querySelectorAll(elementOrSelector);\n return elements ? Array.from(elements) : [];\n }\n return Array.from(elementOrSelector);\n}\n\nexport { resolveElements };\n","import { isDragActive } from './drag/state/is-active.mjs';\nimport { setupGesture } from './utils/setup.mjs';\n\n/**\n * Filter out events that are not pointer events, or are triggering\n * while a Motion gesture is active.\n */\nfunction filterEvents(callback) {\n return (event) => {\n if (event.pointerType === \"touch\" || isDragActive())\n return;\n callback(event);\n };\n}\n/**\n * Create a hover gesture. hover() is different to .addEventListener(\"pointerenter\")\n * in that it has an easier syntax, filters out polyfilled touch events, interoperates\n * with drag gestures, and automatically removes the \"pointerennd\" event listener when the hover ends.\n *\n * @public\n */\nfunction hover(elementOrSelector, onHoverStart, options = {}) {\n const [elements, eventOptions, cancel] = setupGesture(elementOrSelector, options);\n const onPointerEnter = filterEvents((enterEvent) => {\n const { target } = enterEvent;\n const onHoverEnd = onHoverStart(enterEvent);\n if (typeof onHoverEnd !== \"function\" || !target)\n return;\n const onPointerLeave = filterEvents((leaveEvent) => {\n onHoverEnd(leaveEvent);\n target.removeEventListener(\"pointerleave\", onPointerLeave);\n });\n target.addEventListener(\"pointerleave\", onPointerLeave, eventOptions);\n });\n elements.forEach((element) => {\n element.addEventListener(\"pointerenter\", onPointerEnter, eventOptions);\n });\n return cancel;\n}\n\nexport { hover };\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","const isPrimaryPointer = (event) => {\n if (event.pointerType === \"mouse\") {\n return typeof event.button !== \"number\" || event.button <= 0;\n }\n else {\n /**\n * isPrimary is true for all mice buttons, whereas every touch point\n * is regarded as its own input. So subsequent concurrent touch points\n * will be false.\n *\n * Specifically match against false here as incomplete versions of\n * PointerEvents in very old browser might have it set as undefined.\n */\n return event.isPrimary !== false;\n }\n};\n\nexport { isPrimaryPointer };\n","const focusableElements = new Set([\n \"BUTTON\",\n \"INPUT\",\n \"SELECT\",\n \"TEXTAREA\",\n \"A\",\n]);\nfunction isElementKeyboardAccessible(element) {\n return (focusableElements.has(element.tagName) ||\n element.tabIndex !== -1);\n}\n\nexport { isElementKeyboardAccessible };\n","const isPressing = new WeakSet();\n\nexport { isPressing };\n","import { isPressing } from './state.mjs';\n\n/**\n * Filter out events that are not \"Enter\" keys.\n */\nfunction filterEvents(callback) {\n return (event) => {\n if (event.key !== \"Enter\")\n return;\n callback(event);\n };\n}\nfunction firePointerEvent(target, type) {\n target.dispatchEvent(new PointerEvent(\"pointer\" + type, { isPrimary: true, bubbles: true }));\n}\nconst enableKeyboardPress = (focusEvent, eventOptions) => {\n const element = focusEvent.currentTarget;\n if (!element)\n return;\n const handleKeydown = filterEvents(() => {\n if (isPressing.has(element))\n return;\n firePointerEvent(element, \"down\");\n const handleKeyup = filterEvents(() => {\n firePointerEvent(element, \"up\");\n });\n const handleBlur = () => firePointerEvent(element, \"cancel\");\n element.addEventListener(\"keyup\", handleKeyup, eventOptions);\n element.addEventListener(\"blur\", handleBlur, eventOptions);\n });\n element.addEventListener(\"keydown\", handleKeydown, eventOptions);\n /**\n * Add an event listener that fires on blur to remove the keydown events.\n */\n element.addEventListener(\"blur\", () => element.removeEventListener(\"keydown\", handleKeydown), eventOptions);\n};\n\nexport { enableKeyboardPress };\n","import { isDragActive } from '../drag/state/is-active.mjs';\nimport { isNodeOrChild } from '../utils/is-node-or-child.mjs';\nimport { isPrimaryPointer } from '../utils/is-primary-pointer.mjs';\nimport { setupGesture } from '../utils/setup.mjs';\nimport { isElementKeyboardAccessible } from './utils/is-keyboard-accessible.mjs';\nimport { enableKeyboardPress } from './utils/keyboard.mjs';\nimport { isPressing } from './utils/state.mjs';\n\n/**\n * Filter out events that are not primary pointer events, or are triggering\n * while a Motion gesture is active.\n */\nfunction isValidPressEvent(event) {\n return isPrimaryPointer(event) && !isDragActive();\n}\n/**\n * Create a press gesture.\n *\n * Press is different to `\"pointerdown\"`, `\"pointerup\"` in that it\n * automatically filters out secondary pointer events like right\n * click and multitouch.\n *\n * It also adds accessibility support for keyboards, where\n * an element with a press gesture will receive focus and\n * trigger on Enter `\"keydown\"` and `\"keyup\"` events.\n *\n * This is different to a browser's `\"click\"` event, which does\n * respond to keyboards but only for the `\"click\"` itself, rather\n * than the press start and end/cancel. The element also needs\n * to be focusable for this to work, whereas a press gesture will\n * make an element focusable by default.\n *\n * @public\n */\nfunction press(elementOrSelector, onPressStart, options = {}) {\n const [elements, eventOptions, cancelEvents] = setupGesture(elementOrSelector, options);\n const startPress = (startEvent) => {\n const element = startEvent.currentTarget;\n if (!isValidPressEvent(startEvent) || isPressing.has(element))\n return;\n isPressing.add(element);\n const onPressEnd = onPressStart(startEvent);\n const onPointerEnd = (endEvent, success) => {\n window.removeEventListener(\"pointerup\", onPointerUp);\n window.removeEventListener(\"pointercancel\", onPointerCancel);\n if (!isValidPressEvent(endEvent) || !isPressing.has(element)) {\n return;\n }\n isPressing.delete(element);\n if (typeof onPressEnd === \"function\") {\n onPressEnd(endEvent, { success });\n }\n };\n const onPointerUp = (upEvent) => {\n onPointerEnd(upEvent, options.useGlobalTarget ||\n isNodeOrChild(element, upEvent.target));\n };\n const onPointerCancel = (cancelEvent) => {\n onPointerEnd(cancelEvent, false);\n };\n window.addEventListener(\"pointerup\", onPointerUp, eventOptions);\n window.addEventListener(\"pointercancel\", onPointerCancel, eventOptions);\n };\n elements.forEach((element) => {\n if (!isElementKeyboardAccessible(element) &&\n element.getAttribute(\"tabindex\") === null) {\n element.tabIndex = 0;\n }\n const target = options.useGlobalTarget ? window : element;\n target.addEventListener(\"pointerdown\", startPress, eventOptions);\n element.addEventListener(\"focus\", (event) => enableKeyboardPress(event, eventOptions), eventOptions);\n });\n return cancelEvents;\n}\n\nexport { press };\n","import { transformPropOrder } from './keys-transform.mjs';\n\nconst positionalKeys = new Set([\n \"width\",\n \"height\",\n \"top\",\n \"left\",\n \"right\",\n \"bottom\",\n ...transformPropOrder,\n]);\n\nexport { positionalKeys };\n","import { MotionGlobalConfig } from '../utils/GlobalConfig.mjs';\nimport { frameData } from './frame.mjs';\n\nlet now;\nfunction clearTime() {\n now = undefined;\n}\n/**\n * An eventloop-synchronous alternative to performance.now().\n *\n * Ensures that time measurements remain consistent within a synchronous context.\n * Usually calling performance.now() twice within the same synchronous context\n * will return different values which isn't useful for animations when we're usually\n * trying to sync animations to the same frame.\n */\nconst time = {\n now: () => {\n if (now === undefined) {\n time.set(frameData.isProcessing || MotionGlobalConfig.useManualTiming\n ? frameData.timestamp\n : performance.now());\n }\n return now;\n },\n set: (newTime) => {\n now = newTime;\n queueMicrotask(clearTime);\n },\n};\n\nexport { time };\n","function 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","/*\n Convert velocity into velocity per second\n\n @param [number]: Unit per frame\n @param [number]: Frame duration in ms\n*/\nfunction velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\nexport { velocityPerSecond };\n","import { time } from '../frameloop/sync-time.mjs';\nimport { SubscriptionManager } from '../utils/subscription-manager.mjs';\nimport { velocityPerSecond } from '../utils/velocity-per-second.mjs';\nimport { warnOnce } from '../utils/warn-once.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\n/**\n * Maximum time between the value of two frames, beyond which we\n * assume the velocity has since been 0.\n */\nconst MAX_VELOCITY_DELTA = 30;\nconst isFloat = (value) => {\n return !isNaN(parseFloat(value));\n};\nconst collectMotionValues = {\n current: undefined,\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\nclass MotionValue {\n /**\n * @param init - The initiating value\n * @param config - Optional configuration options\n *\n * - `transformer`: A function to transform incoming values with.\n *\n * @internal\n */\n constructor(init, options = {}) {\n /**\n * This will be replaced by the build step with the latest version number.\n * When MotionValues are provided to motion components, warn if versions are mixed.\n */\n this.version = \"11.18.1\";\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 = null;\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n this.updateAndNotify = (v, render = true) => {\n const currentTime = time.now();\n /**\n * If we're updating the value during another frame or eventloop\n * than the previous frame, then the we set the previous frame value\n * to current.\n */\n if (this.updatedAt !== currentTime) {\n this.setPrevFrameValue();\n }\n this.prev = this.current;\n this.setCurrent(v);\n // Update update subscribers\n if (this.current !== this.prev && this.events.change) {\n this.events.change.notify(this.current);\n }\n // Update render subscribers\n if (render && this.events.renderRequest) {\n this.events.renderRequest.notify(this.current);\n }\n };\n this.hasAnimated = false;\n this.setCurrent(init);\n this.owner = options.owner;\n }\n setCurrent(current) {\n this.current = current;\n this.updatedAt = time.now();\n if (this.canTrackVelocity === null && current !== undefined) {\n this.canTrackVelocity = isFloat(this.current);\n }\n }\n setPrevFrameValue(prevFrameValue = this.current) {\n this.prevFrameValue = prevFrameValue;\n this.prevUpdatedAt = this.updatedAt;\n }\n /**\n * Adds a function that will be notified when the `MotionValue` is updated.\n *\n * It returns a function that, when called, will cancel the subscription.\n *\n * When calling `onChange` inside a React component, it should be wrapped with the\n * `useEffect` hook. As it returns an unsubscribe function, this should be returned\n * from the `useEffect` function to ensure you don't add duplicate subscribers..\n *\n * ```jsx\n * export const MyComponent = () => {\n * const x = useMotionValue(0)\n * const y = useMotionValue(0)\n * const opacity = useMotionValue(1)\n *\n * useEffect(() => {\n * function updateOpacity() {\n * const maxXY = Math.max(x.get(), y.get())\n * const newOpacity = transform(maxXY, [0, 100], [1, 0])\n * opacity.set(newOpacity)\n * }\n *\n * const unsubscribeX = x.on(\"change\", updateOpacity)\n * const unsubscribeY = y.on(\"change\", updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return \n * }\n * ```\n *\n * @param subscriber - A function that receives the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @deprecated\n */\n onChange(subscription) {\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(false, `value.onChange(callback) is deprecated. Switch to value.on(\"change\", callback).`);\n }\n return this.on(\"change\", subscription);\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new SubscriptionManager();\n }\n const unsubscribe = this.events[eventName].add(callback);\n if (eventName === \"change\") {\n return () => {\n unsubscribe();\n /**\n * If we have no more change listeners by the start\n * of the next frame, stop active animations.\n */\n frame.read(() => {\n if (!this.events.change.getSize()) {\n this.stop();\n }\n });\n };\n }\n return unsubscribe;\n }\n clearListeners() {\n for (const eventManagers in this.events) {\n this.events[eventManagers].clear();\n }\n }\n /**\n * Attaches a passive effect to the `MotionValue`.\n *\n * @internal\n */\n attach(passiveEffect, stopPassiveEffect) {\n this.passiveEffect = passiveEffect;\n this.stopPassiveEffect = stopPassiveEffect;\n }\n /**\n * Sets the state of the `MotionValue`.\n *\n * @remarks\n *\n * ```jsx\n * const x = useMotionValue(0)\n * x.set(10)\n * ```\n *\n * @param latest - Latest value to set.\n * @param render - Whether to notify render subscribers. Defaults to `true`\n *\n * @public\n */\n set(v, render = true) {\n if (!render || !this.passiveEffect) {\n this.updateAndNotify(v, render);\n }\n else {\n this.passiveEffect(v, this.updateAndNotify);\n }\n }\n setWithVelocity(prev, current, delta) {\n this.set(current);\n this.prev = undefined;\n this.prevFrameValue = prev;\n this.prevUpdatedAt = this.updatedAt - delta;\n }\n /**\n * Set the state of the `MotionValue`, stopping any active animations,\n * effects, and resets velocity to `0`.\n */\n jump(v, endAnimation = true) {\n this.updateAndNotify(v);\n this.prev = v;\n this.prevUpdatedAt = this.prevFrameValue = undefined;\n endAnimation && this.stop();\n if (this.stopPassiveEffect)\n this.stopPassiveEffect();\n }\n /**\n * Returns the latest state of `MotionValue`\n *\n * @returns - The latest state of `MotionValue`\n *\n * @public\n */\n get() {\n if (collectMotionValues.current) {\n collectMotionValues.current.push(this);\n }\n return this.current;\n }\n /**\n * @public\n */\n getPrevious() {\n return this.prev;\n }\n /**\n * Returns the latest velocity of `MotionValue`\n *\n * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\n *\n * @public\n */\n getVelocity() {\n const currentTime = time.now();\n if (!this.canTrackVelocity ||\n this.prevFrameValue === undefined ||\n currentTime - this.updatedAt > MAX_VELOCITY_DELTA) {\n return 0;\n }\n const delta = Math.min(this.updatedAt - this.prevUpdatedAt, MAX_VELOCITY_DELTA);\n // Casts because of parseFloat's poor typing\n return velocityPerSecond(parseFloat(this.current) -\n parseFloat(this.prevFrameValue), delta);\n }\n /**\n * Registers a new animation to control this `MotionValue`. Only one\n * animation can drive a `MotionValue` at one time.\n *\n * ```jsx\n * value.start()\n * ```\n *\n * @param animation - A function that starts the provided animation\n *\n * @internal\n */\n start(startAnimation) {\n this.stop();\n return new Promise((resolve) => {\n this.hasAnimated = true;\n this.animation = startAnimation(resolve);\n if (this.events.animationStart) {\n this.events.animationStart.notify();\n }\n }).then(() => {\n if (this.events.animationComplete) {\n this.events.animationComplete.notify();\n }\n this.clearAnimation();\n });\n }\n /**\n * Stop the currently active animation.\n *\n * @public\n */\n stop() {\n if (this.animation) {\n this.animation.stop();\n if (this.events.animationCancel) {\n this.events.animationCancel.notify();\n }\n }\n this.clearAnimation();\n }\n /**\n * Returns `true` if this value is currently animating.\n *\n * @public\n */\n isAnimating() {\n return !!this.animation;\n }\n clearAnimation() {\n delete this.animation;\n }\n /**\n * Destroy and clean up subscribers to this `MotionValue`.\n *\n * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\n * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\n * created a `MotionValue` via the `motionValue` function.\n *\n * @public\n */\n destroy() {\n this.clearListeners();\n this.stop();\n if (this.stopPassiveEffect) {\n this.stopPassiveEffect();\n }\n }\n}\nfunction motionValue(init, options) {\n return new MotionValue(init, options);\n}\n\nexport { MotionValue, collectMotionValues, motionValue };\n","import { resolveFinalValueInKeyframes } from '../../utils/resolve-value.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\n\n/**\n * Set VisualElement's MotionValue, creating a new MotionValue for it if\n * it doesn't exist.\n */\nfunction setMotionValue(visualElement, key, value) {\n if (visualElement.hasValue(key)) {\n visualElement.getValue(key).set(value);\n }\n else {\n visualElement.addValue(key, motionValue(value));\n }\n}\nfunction setTarget(visualElement, definition) {\n const resolved = resolveVariant(visualElement, definition);\n let { transitionEnd = {}, transition = {}, ...target } = resolved || {};\n target = { ...target, ...transitionEnd };\n for (const key in target) {\n const value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n }\n}\n\nexport { setTarget };\n","import { isWillChangeMotionValue } from './is.mjs';\n\nfunction addValueToWillChange(visualElement, key) {\n const willChange = visualElement.getValue(\"willChange\");\n /**\n * It could be that a user has set willChange to a regular MotionValue,\n * in which case we can't add the value to it.\n */\n if (isWillChangeMotionValue(willChange)) {\n return willChange.add(key);\n }\n}\n\nexport { addValueToWillChange };\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 { optimizedAppearDataAttribute } from './data-id.mjs';\n\nfunction getOptimisedAppearId(visualElement) {\n return visualElement.props[optimizedAppearDataAttribute];\n}\n\nexport { getOptimisedAppearId };\n","import { noop } from 'motion-utils';\n\n/*\n Bezier function generator\n This has been modified from Gaëtan Renaudeau's BezierEasing\n https://github.com/gre/bezier-easing/blob/master/src/index.js\n https://github.com/gre/bezier-easing/blob/master/LICENSE\n \n I've removed the newtonRaphsonIterate algo because in benchmarking it\n wasn't noticiably faster than binarySubdivision, indeed removing it\n usually improved times, depending on the curve.\n I also removed the lookup table, as for the added bundle size and loop we're\n only cutting ~4 or so subdivision iterations. I bumped the max iterations up\n to 12 to compensate and this still tended to be faster for no perceivable\n loss in accuracy.\n Usage\n const easeOut = cubicBezier(.17,.67,.83,.67);\n const x = easeOut(0.5); // returns 0.627...\n*/\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nconst calcBezier = (t, a1, a2) => (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) *\n t;\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 12;\nfunction binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = lowerBound + (upperBound - lowerBound) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - x;\n if (currentX > 0.0) {\n upperBound = currentT;\n }\n else {\n lowerBound = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n // If this is a linear gradient, return linear easing\n if (mX1 === mY1 && mX2 === mY2)\n return noop;\n const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);\n // If animation is at start/end, return t without easing\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\nexport { cubicBezier };\n","// Accepts an easing function and returns a new one that outputs mirrored values for\n// the second half of the animation. Turns easeIn into easeInOut.\nconst mirrorEasing = (easing) => (p) => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\n\nexport { mirrorEasing };\n","// Accepts an easing function and returns a new one that outputs reversed values.\n// Turns easeIn into easeOut.\nconst reverseEasing = (easing) => (p) => 1 - easing(1 - p);\n\nexport { reverseEasing };\n","import { cubicBezier } from './cubic-bezier.mjs';\nimport { mirrorEasing } from './modifiers/mirror.mjs';\nimport { reverseEasing } from './modifiers/reverse.mjs';\n\nconst backOut = /*@__PURE__*/ cubicBezier(0.33, 1.53, 0.69, 0.99);\nconst backIn = /*@__PURE__*/ reverseEasing(backOut);\nconst backInOut = /*@__PURE__*/ mirrorEasing(backIn);\n\nexport { backIn, backInOut, backOut };\n","import { backIn } from './back.mjs';\n\nconst anticipate = (p) => (p *= 2) < 1 ? 0.5 * backIn(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n\nexport { anticipate };\n","import { mirrorEasing } from './modifiers/mirror.mjs';\nimport { reverseEasing } from './modifiers/reverse.mjs';\n\nconst circIn = (p) => 1 - Math.sin(Math.acos(p));\nconst circOut = reverseEasing(circIn);\nconst circInOut = mirrorEasing(circIn);\n\nexport { circIn, circInOut, circOut };\n","/**\n * Check if the value is a zero value string like \"0px\" or \"0%\"\n */\nconst isZeroValueString = (v) => /^0[^.\\s]+$/u.test(v);\n\nexport { isZeroValueString };\n","// If this number is a decimal, make it just five decimal places\n// to avoid exponents\nconst sanitize = (v) => Math.round(v * 100000) / 100000;\n\nexport { sanitize };\n","const floatRegex = /-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/gu;\n\nexport { floatRegex };\n","const singleColorRegex = /^(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))$/iu;\n\nexport { singleColorRegex };\n","import { floatRegex } from '../utils/float-regex.mjs';\nimport { isNullish } from '../utils/is-nullish.mjs';\nimport { singleColorRegex } from '../utils/single-color-regex.mjs';\n\n/**\n * Returns true if the provided string is a color, ie rgba(0,0,0,0) or #000,\n * but false if a number or multiple colors\n */\nconst isColorString = (type, testProp) => (v) => {\n return Boolean((typeof v === \"string\" &&\n singleColorRegex.test(v) &&\n v.startsWith(type)) ||\n (testProp &&\n !isNullish(v) &&\n Object.prototype.hasOwnProperty.call(v, testProp)));\n};\nconst splitColor = (aName, bName, cName) => (v) => {\n if (typeof v !== \"string\")\n return v;\n const [a, b, c, alpha] = v.match(floatRegex);\n return {\n [aName]: parseFloat(a),\n [bName]: parseFloat(b),\n [cName]: parseFloat(c),\n alpha: alpha !== undefined ? parseFloat(alpha) : 1,\n };\n};\n\nexport { isColorString, splitColor };\n","function isNullish(v) {\n return v == null;\n}\n\nexport { isNullish };\n","import { clamp } from '../../../utils/clamp.mjs';\nimport { alpha, number } from '../numbers/index.mjs';\nimport { sanitize } from '../utils/sanitize.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst clampRgbUnit = (v) => clamp(0, 255, v);\nconst rgbUnit = {\n ...number,\n transform: (v) => Math.round(clampRgbUnit(v)),\n};\nconst rgba = {\n test: /*@__PURE__*/ isColorString(\"rgb\", \"red\"),\n parse: /*@__PURE__*/ splitColor(\"red\", \"green\", \"blue\"),\n transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => \"rgba(\" +\n rgbUnit.transform(red) +\n \", \" +\n rgbUnit.transform(green) +\n \", \" +\n rgbUnit.transform(blue) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\",\n};\n\nexport { rgbUnit, rgba };\n","import { rgba } from './rgba.mjs';\nimport { isColorString } from './utils.mjs';\n\nfunction parseHex(v) {\n let r = \"\";\n let g = \"\";\n let b = \"\";\n let a = \"\";\n // If we have 6 characters, ie #FF0000\n if (v.length > 5) {\n r = v.substring(1, 3);\n g = v.substring(3, 5);\n b = v.substring(5, 7);\n a = v.substring(7, 9);\n // Or we have 3 characters, ie #F00\n }\n else {\n r = v.substring(1, 2);\n g = v.substring(2, 3);\n b = v.substring(3, 4);\n a = v.substring(4, 5);\n r += r;\n g += g;\n b += b;\n a += a;\n }\n return {\n red: parseInt(r, 16),\n green: parseInt(g, 16),\n blue: parseInt(b, 16),\n alpha: a ? parseInt(a, 16) / 255 : 1,\n };\n}\nconst hex = {\n test: /*@__PURE__*/ isColorString(\"#\"),\n parse: parseHex,\n transform: rgba.transform,\n};\n\nexport { hex };\n","import { alpha } from '../numbers/index.mjs';\nimport { percent } from '../numbers/units.mjs';\nimport { sanitize } from '../utils/sanitize.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst hsla = {\n test: /*@__PURE__*/ isColorString(\"hsl\", \"hue\"),\n parse: /*@__PURE__*/ splitColor(\"hue\", \"saturation\", \"lightness\"),\n transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n return (\"hsla(\" +\n Math.round(hue) +\n \", \" +\n percent.transform(sanitize(saturation)) +\n \", \" +\n percent.transform(sanitize(lightness)) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\");\n },\n};\n\nexport { hsla };\n","import { hex } from './hex.mjs';\nimport { hsla } from './hsla.mjs';\nimport { rgba } from './rgba.mjs';\n\nconst color = {\n test: (v) => rgba.test(v) || hex.test(v) || hsla.test(v),\n parse: (v) => {\n if (rgba.test(v)) {\n return rgba.parse(v);\n }\n else if (hsla.test(v)) {\n return hsla.parse(v);\n }\n else {\n return hex.parse(v);\n }\n },\n transform: (v) => {\n return typeof v === \"string\"\n ? v\n : v.hasOwnProperty(\"red\")\n ? rgba.transform(v)\n : hsla.transform(v);\n },\n};\n\nexport { color };\n","const colorRegex = /(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))/giu;\n\nexport { colorRegex };\n","import { color } from '../color/index.mjs';\nimport { colorRegex } from '../utils/color-regex.mjs';\nimport { floatRegex } from '../utils/float-regex.mjs';\nimport { sanitize } from '../utils/sanitize.mjs';\n\nfunction test(v) {\n var _a, _b;\n return (isNaN(v) &&\n typeof v === \"string\" &&\n (((_a = v.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) || 0) +\n (((_b = v.match(colorRegex)) === null || _b === void 0 ? void 0 : _b.length) || 0) >\n 0);\n}\nconst NUMBER_TOKEN = \"number\";\nconst COLOR_TOKEN = \"color\";\nconst VAR_TOKEN = \"var\";\nconst VAR_FUNCTION_TOKEN = \"var(\";\nconst SPLIT_TOKEN = \"${}\";\n// this regex consists of the `singleCssVariableRegex|rgbHSLValueRegex|digitRegex`\nconst complexRegex = /var\\s*\\(\\s*--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)|#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\)|-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/giu;\nfunction analyseComplexValue(value) {\n const originalValue = value.toString();\n const values = [];\n const indexes = {\n color: [],\n number: [],\n var: [],\n };\n const types = [];\n let i = 0;\n const tokenised = originalValue.replace(complexRegex, (parsedValue) => {\n if (color.test(parsedValue)) {\n indexes.color.push(i);\n types.push(COLOR_TOKEN);\n values.push(color.parse(parsedValue));\n }\n else if (parsedValue.startsWith(VAR_FUNCTION_TOKEN)) {\n indexes.var.push(i);\n types.push(VAR_TOKEN);\n values.push(parsedValue);\n }\n else {\n indexes.number.push(i);\n types.push(NUMBER_TOKEN);\n values.push(parseFloat(parsedValue));\n }\n ++i;\n return SPLIT_TOKEN;\n });\n const split = tokenised.split(SPLIT_TOKEN);\n return { values, split, indexes, types };\n}\nfunction parseComplexValue(v) {\n return analyseComplexValue(v).values;\n}\nfunction createTransformer(source) {\n const { split, types } = analyseComplexValue(source);\n const numSections = split.length;\n return (v) => {\n let output = \"\";\n for (let i = 0; i < numSections; i++) {\n output += split[i];\n if (v[i] !== undefined) {\n const type = types[i];\n if (type === NUMBER_TOKEN) {\n output += sanitize(v[i]);\n }\n else if (type === COLOR_TOKEN) {\n output += color.transform(v[i]);\n }\n else {\n output += v[i];\n }\n }\n }\n return output;\n };\n}\nconst convertNumbersToZero = (v) => typeof v === \"number\" ? 0 : v;\nfunction getAnimatableNone(v) {\n const parsed = parseComplexValue(v);\n const transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\nconst complex = {\n test,\n parse: parseComplexValue,\n createTransformer,\n getAnimatableNone,\n};\n\nexport { analyseComplexValue, complex };\n","import { complex } from './index.mjs';\nimport { floatRegex } from '../utils/float-regex.mjs';\n\n/**\n * Properties that should default to 1 or 100%\n */\nconst maxDefaults = new Set([\"brightness\", \"contrast\", \"saturate\", \"opacity\"]);\nfunction applyDefaultFilter(v) {\n const [name, value] = v.slice(0, -1).split(\"(\");\n if (name === \"drop-shadow\")\n return v;\n const [number] = value.match(floatRegex) || [];\n if (!number)\n return v;\n const unit = value.replace(number, \"\");\n let defaultValue = maxDefaults.has(name) ? 1 : 0;\n if (number !== value)\n defaultValue *= 100;\n return name + \"(\" + defaultValue + unit + \")\";\n}\nconst functionRegex = /\\b([a-z-]*)\\(.*?\\)/gu;\nconst filter = {\n ...complex,\n getAnimatableNone: (v) => {\n const functions = v.match(functionRegex);\n return functions ? functions.map(applyDefaultFilter).join(\" \") : v;\n },\n};\n\nexport { filter };\n","import { color } from '../../../value/types/color/index.mjs';\nimport { filter } from '../../../value/types/complex/filter.mjs';\nimport { numberValueTypes } from './number.mjs';\n\n/**\n * A map of default value types for common values\n */\nconst defaultValueTypes = {\n ...numberValueTypes,\n // Color props\n color,\n backgroundColor: color,\n outlineColor: color,\n fill: color,\n stroke: color,\n // Border props\n borderColor: color,\n borderTopColor: color,\n borderRightColor: color,\n borderBottomColor: color,\n borderLeftColor: color,\n filter,\n WebkitFilter: filter,\n};\n/**\n * Gets the default ValueType for the provided value key\n */\nconst getDefaultValueType = (key) => defaultValueTypes[key];\n\nexport { defaultValueTypes, getDefaultValueType };\n","import { complex } from '../../../value/types/complex/index.mjs';\nimport { filter } from '../../../value/types/complex/filter.mjs';\nimport { getDefaultValueType } from './defaults.mjs';\n\nfunction getAnimatableNone(key, value) {\n let defaultValueType = getDefaultValueType(key);\n if (defaultValueType !== filter)\n defaultValueType = complex;\n // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\n return defaultValueType.getAnimatableNone\n ? defaultValueType.getAnimatableNone(value)\n : undefined;\n}\n\nexport { getAnimatableNone };\n","import { analyseComplexValue } from '../../../value/types/complex/index.mjs';\nimport { getAnimatableNone } from '../../dom/value-types/animatable-none.mjs';\n\n/**\n * If we encounter keyframes like \"none\" or \"0\" and we also have keyframes like\n * \"#fff\" or \"200px 200px\" we want to find a keyframe to serve as a template for\n * the \"none\" keyframes. In this case \"#fff\" or \"200px 200px\" - then these get turned into\n * zero equivalents, i.e. \"#fff0\" or \"0px 0px\".\n */\nconst invalidTemplates = new Set([\"auto\", \"none\", \"0\"]);\nfunction makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name) {\n let i = 0;\n let animatableTemplate = undefined;\n while (i < unresolvedKeyframes.length && !animatableTemplate) {\n const keyframe = unresolvedKeyframes[i];\n if (typeof keyframe === \"string\" &&\n !invalidTemplates.has(keyframe) &&\n analyseComplexValue(keyframe).values.length) {\n animatableTemplate = unresolvedKeyframes[i];\n }\n i++;\n }\n if (animatableTemplate && name) {\n for (const noneIndex of noneKeyframeIndexes) {\n unresolvedKeyframes[noneIndex] = getAnimatableNone(name, animatableTemplate);\n }\n }\n}\n\nexport { makeNoneKeyframesAnimatable };\n","import { number } from '../../../value/types/numbers/index.mjs';\nimport { px } from '../../../value/types/numbers/units.mjs';\nimport { transformPropOrder } from '../../html/utils/keys-transform.mjs';\n\nconst isNumOrPxType = (v) => v === number || v === px;\nconst getPosFromMatrix = (matrix, pos) => parseFloat(matrix.split(\", \")[pos]);\nconst getTranslateFromMatrix = (pos2, pos3) => (_bbox, { transform }) => {\n if (transform === \"none\" || !transform)\n return 0;\n const matrix3d = transform.match(/^matrix3d\\((.+)\\)$/u);\n if (matrix3d) {\n return getPosFromMatrix(matrix3d[1], pos3);\n }\n else {\n const matrix = transform.match(/^matrix\\((.+)\\)$/u);\n if (matrix) {\n return getPosFromMatrix(matrix[1], pos2);\n }\n else {\n return 0;\n }\n }\n};\nconst transformKeys = new Set([\"x\", \"y\", \"z\"]);\nconst nonTranslationalTransformKeys = transformPropOrder.filter((key) => !transformKeys.has(key));\nfunction removeNonTranslationalTransform(visualElement) {\n const removedTransforms = [];\n nonTranslationalTransformKeys.forEach((key) => {\n const value = visualElement.getValue(key);\n if (value !== undefined) {\n removedTransforms.push([key, value.get()]);\n value.set(key.startsWith(\"scale\") ? 1 : 0);\n }\n });\n return removedTransforms;\n}\nconst positionalValues = {\n // Dimensions\n width: ({ x }, { paddingLeft = \"0\", paddingRight = \"0\" }) => x.max - x.min - parseFloat(paddingLeft) - parseFloat(paddingRight),\n height: ({ y }, { paddingTop = \"0\", paddingBottom = \"0\" }) => y.max - y.min - parseFloat(paddingTop) - parseFloat(paddingBottom),\n top: (_bbox, { top }) => parseFloat(top),\n left: (_bbox, { left }) => parseFloat(left),\n bottom: ({ y }, { top }) => parseFloat(top) + (y.max - y.min),\n right: ({ x }, { left }) => parseFloat(left) + (x.max - x.min),\n // Transform\n x: getTranslateFromMatrix(4, 13),\n y: getTranslateFromMatrix(5, 14),\n};\n// Alias translate longform names\npositionalValues.translateX = positionalValues.x;\npositionalValues.translateY = positionalValues.y;\n\nexport { isNumOrPxType, positionalValues, removeNonTranslationalTransform };\n","import { removeNonTranslationalTransform } from '../dom/utils/unit-conversion.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst toResolve = new Set();\nlet isScheduled = false;\nlet anyNeedsMeasurement = false;\nfunction measureAllKeyframes() {\n if (anyNeedsMeasurement) {\n const resolversToMeasure = Array.from(toResolve).filter((resolver) => resolver.needsMeasurement);\n const elementsToMeasure = new Set(resolversToMeasure.map((resolver) => resolver.element));\n const transformsToRestore = new Map();\n /**\n * Write pass\n * If we're measuring elements we want to remove bounding box-changing transforms.\n */\n elementsToMeasure.forEach((element) => {\n const removedTransforms = removeNonTranslationalTransform(element);\n if (!removedTransforms.length)\n return;\n transformsToRestore.set(element, removedTransforms);\n element.render();\n });\n // Read\n resolversToMeasure.forEach((resolver) => resolver.measureInitialState());\n // Write\n elementsToMeasure.forEach((element) => {\n element.render();\n const restore = transformsToRestore.get(element);\n if (restore) {\n restore.forEach(([key, value]) => {\n var _a;\n (_a = element.getValue(key)) === null || _a === void 0 ? void 0 : _a.set(value);\n });\n }\n });\n // Read\n resolversToMeasure.forEach((resolver) => resolver.measureEndState());\n // Write\n resolversToMeasure.forEach((resolver) => {\n if (resolver.suspendedScrollY !== undefined) {\n window.scrollTo(0, resolver.suspendedScrollY);\n }\n });\n }\n anyNeedsMeasurement = false;\n isScheduled = false;\n toResolve.forEach((resolver) => resolver.complete());\n toResolve.clear();\n}\nfunction readAllKeyframes() {\n toResolve.forEach((resolver) => {\n resolver.readKeyframes();\n if (resolver.needsMeasurement) {\n anyNeedsMeasurement = true;\n }\n });\n}\nfunction flushKeyframeResolvers() {\n readAllKeyframes();\n measureAllKeyframes();\n}\nclass KeyframeResolver {\n constructor(unresolvedKeyframes, onComplete, name, motionValue, element, isAsync = false) {\n /**\n * Track whether this resolver has completed. Once complete, it never\n * needs to attempt keyframe resolution again.\n */\n this.isComplete = false;\n /**\n * Track whether this resolver is async. If it is, it'll be added to the\n * resolver queue and flushed in the next frame. Resolvers that aren't going\n * to trigger read/write thrashing don't need to be async.\n */\n this.isAsync = false;\n /**\n * Track whether this resolver needs to perform a measurement\n * to resolve its keyframes.\n */\n this.needsMeasurement = false;\n /**\n * Track whether this resolver is currently scheduled to resolve\n * to allow it to be cancelled and resumed externally.\n */\n this.isScheduled = false;\n this.unresolvedKeyframes = [...unresolvedKeyframes];\n this.onComplete = onComplete;\n this.name = name;\n this.motionValue = motionValue;\n this.element = element;\n this.isAsync = isAsync;\n }\n scheduleResolve() {\n this.isScheduled = true;\n if (this.isAsync) {\n toResolve.add(this);\n if (!isScheduled) {\n isScheduled = true;\n frame.read(readAllKeyframes);\n frame.resolveKeyframes(measureAllKeyframes);\n }\n }\n else {\n this.readKeyframes();\n this.complete();\n }\n }\n readKeyframes() {\n const { unresolvedKeyframes, name, element, motionValue } = this;\n /**\n * If a keyframe is null, we hydrate it either by reading it from\n * the instance, or propagating from previous keyframes.\n */\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n if (unresolvedKeyframes[i] === null) {\n /**\n * If the first keyframe is null, we need to find its value by sampling the element\n */\n if (i === 0) {\n const currentValue = motionValue === null || motionValue === void 0 ? void 0 : motionValue.get();\n const finalKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n if (currentValue !== undefined) {\n unresolvedKeyframes[0] = currentValue;\n }\n else if (element && name) {\n const valueAsRead = element.readValue(name, finalKeyframe);\n if (valueAsRead !== undefined && valueAsRead !== null) {\n unresolvedKeyframes[0] = valueAsRead;\n }\n }\n if (unresolvedKeyframes[0] === undefined) {\n unresolvedKeyframes[0] = finalKeyframe;\n }\n if (motionValue && currentValue === undefined) {\n motionValue.set(unresolvedKeyframes[0]);\n }\n }\n else {\n unresolvedKeyframes[i] = unresolvedKeyframes[i - 1];\n }\n }\n }\n }\n setFinalKeyframe() { }\n measureInitialState() { }\n renderEndStyles() { }\n measureEndState() { }\n complete() {\n this.isComplete = true;\n this.onComplete(this.unresolvedKeyframes, this.finalKeyframe);\n toResolve.delete(this);\n }\n cancel() {\n if (!this.isComplete) {\n this.isScheduled = false;\n toResolve.delete(this);\n }\n }\n resume() {\n if (!this.isComplete)\n this.scheduleResolve();\n }\n}\n\nexport { KeyframeResolver, flushKeyframeResolvers };\n","/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nconst isNumericalString = (v) => /^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)$/u.test(v);\n\nexport { isNumericalString };\n","import { invariant } from 'motion-utils';\nimport { isNumericalString } from '../../../utils/is-numerical-string.mjs';\nimport { isCSSVariableToken } from './is-css-variable.mjs';\n\n/**\n * Parse Framer's special CSS variable format into a CSS token and a fallback.\n *\n * ```\n * `var(--foo, #fff)` => [`--foo`, '#fff']\n * ```\n *\n * @param current\n */\nconst splitCSSVariableRegex = \n// eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive, as it can match a lot of words\n/^var\\(--(?:([\\w-]+)|([\\w-]+), ?([a-zA-Z\\d ()%#.,-]+))\\)/u;\nfunction parseCSSVariable(current) {\n const match = splitCSSVariableRegex.exec(current);\n if (!match)\n return [,];\n const [, token1, token2, fallback] = match;\n return [`--${token1 !== null && token1 !== void 0 ? token1 : token2}`, fallback];\n}\nconst maxDepth = 4;\nfunction getVariableValue(current, element, depth = 1) {\n invariant(depth <= maxDepth, `Max CSS variable fallback depth detected in property \"${current}\". This may indicate a circular fallback dependency.`);\n const [token, fallback] = parseCSSVariable(current);\n // No CSS variable detected\n if (!token)\n return;\n // Attempt to read this CSS variable off the element\n const resolved = window.getComputedStyle(element).getPropertyValue(token);\n if (resolved) {\n const trimmed = resolved.trim();\n return isNumericalString(trimmed) ? parseFloat(trimmed) : trimmed;\n }\n return isCSSVariableToken(fallback)\n ? getVariableValue(fallback, element, depth + 1)\n : fallback;\n}\n\nexport { getVariableValue, parseCSSVariable };\n","/**\n * Tests a provided value against a ValueType\n */\nconst testValueType = (v) => (type) => type.test(v);\n\nexport { testValueType };\n","import { number } from '../../../value/types/numbers/index.mjs';\nimport { px, percent, degrees, vw, vh } from '../../../value/types/numbers/units.mjs';\nimport { testValueType } from './test.mjs';\nimport { auto } from './type-auto.mjs';\n\n/**\n * A list of value types commonly used for dimensions\n */\nconst dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\nconst findDimensionValueType = (v) => dimensionValueTypes.find(testValueType(v));\n\nexport { dimensionValueTypes, findDimensionValueType };\n","/**\n * ValueType for \"auto\"\n */\nconst auto = {\n test: (v) => v === \"auto\",\n parse: (v) => v,\n};\n\nexport { auto };\n","import { isNone } from '../../animation/utils/is-none.mjs';\nimport { positionalKeys } from '../html/utils/keys-position.mjs';\nimport { makeNoneKeyframesAnimatable } from '../html/utils/make-none-animatable.mjs';\nimport { KeyframeResolver } from '../utils/KeyframesResolver.mjs';\nimport { getVariableValue } from './utils/css-variables-conversion.mjs';\nimport { isCSSVariableToken } from './utils/is-css-variable.mjs';\nimport { isNumOrPxType, positionalValues } from './utils/unit-conversion.mjs';\nimport { findDimensionValueType } from './value-types/dimensions.mjs';\n\nclass DOMKeyframesResolver extends KeyframeResolver {\n constructor(unresolvedKeyframes, onComplete, name, motionValue, element) {\n super(unresolvedKeyframes, onComplete, name, motionValue, element, true);\n }\n readKeyframes() {\n const { unresolvedKeyframes, element, name } = this;\n if (!element || !element.current)\n return;\n super.readKeyframes();\n /**\n * If any keyframe is a CSS variable, we need to find its value by sampling the element\n */\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n let keyframe = unresolvedKeyframes[i];\n if (typeof keyframe === \"string\") {\n keyframe = keyframe.trim();\n if (isCSSVariableToken(keyframe)) {\n const resolved = getVariableValue(keyframe, element.current);\n if (resolved !== undefined) {\n unresolvedKeyframes[i] = resolved;\n }\n if (i === unresolvedKeyframes.length - 1) {\n this.finalKeyframe = keyframe;\n }\n }\n }\n }\n /**\n * Resolve \"none\" values. We do this potentially twice - once before and once after measuring keyframes.\n * This could be seen as inefficient but it's a trade-off to avoid measurements in more situations, which\n * have a far bigger performance impact.\n */\n this.resolveNoneKeyframes();\n /**\n * Check to see if unit type has changed. If so schedule jobs that will\n * temporarily set styles to the destination keyframes.\n * Skip if we have more than two keyframes or this isn't a positional value.\n * TODO: We can throw if there are multiple keyframes and the value type changes.\n */\n if (!positionalKeys.has(name) || unresolvedKeyframes.length !== 2) {\n return;\n }\n const [origin, target] = unresolvedKeyframes;\n const originType = findDimensionValueType(origin);\n const targetType = findDimensionValueType(target);\n /**\n * Either we don't recognise these value types or we can animate between them.\n */\n if (originType === targetType)\n return;\n /**\n * If both values are numbers or pixels, we can animate between them by\n * converting them to numbers.\n */\n if (isNumOrPxType(originType) && isNumOrPxType(targetType)) {\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n const value = unresolvedKeyframes[i];\n if (typeof value === \"string\") {\n unresolvedKeyframes[i] = parseFloat(value);\n }\n }\n }\n else {\n /**\n * Else, the only way to resolve this is by measuring the element.\n */\n this.needsMeasurement = true;\n }\n }\n resolveNoneKeyframes() {\n const { unresolvedKeyframes, name } = this;\n const noneKeyframeIndexes = [];\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n if (isNone(unresolvedKeyframes[i])) {\n noneKeyframeIndexes.push(i);\n }\n }\n if (noneKeyframeIndexes.length) {\n makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name);\n }\n }\n measureInitialState() {\n const { element, unresolvedKeyframes, name } = this;\n if (!element || !element.current)\n return;\n if (name === \"height\") {\n this.suspendedScrollY = window.pageYOffset;\n }\n this.measuredOrigin = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n unresolvedKeyframes[0] = this.measuredOrigin;\n // Set final key frame to measure after next render\n const measureKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n if (measureKeyframe !== undefined) {\n element.getValue(name, measureKeyframe).jump(measureKeyframe, false);\n }\n }\n measureEndState() {\n var _a;\n const { element, name, unresolvedKeyframes } = this;\n if (!element || !element.current)\n return;\n const value = element.getValue(name);\n value && value.jump(this.measuredOrigin, false);\n const finalKeyframeIndex = unresolvedKeyframes.length - 1;\n const finalKeyframe = unresolvedKeyframes[finalKeyframeIndex];\n unresolvedKeyframes[finalKeyframeIndex] = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n if (finalKeyframe !== null && this.finalKeyframe === undefined) {\n this.finalKeyframe = finalKeyframe;\n }\n // If we removed transform values, reapply them before the next render\n if ((_a = this.removedTransforms) === null || _a === void 0 ? void 0 : _a.length) {\n this.removedTransforms.forEach(([unsetTransformName, unsetTransformValue]) => {\n element\n .getValue(unsetTransformName)\n .set(unsetTransformValue);\n });\n }\n this.resolveNoneKeyframes();\n }\n}\n\nexport { DOMKeyframesResolver };\n","import { isZeroValueString } from '../../utils/is-zero-value-string.mjs';\n\nfunction isNone(value) {\n if (typeof value === \"number\") {\n return value === 0;\n }\n else if (value !== null) {\n return value === \"none\" || value === \"0\" || isZeroValueString(value);\n }\n else {\n return true;\n }\n}\n\nexport { isNone };\n","import { complex } from '../../value/types/complex/index.mjs';\n\n/**\n * Check if a value is animatable. Examples:\n *\n * ✅: 100, \"100px\", \"#fff\"\n * ❌: \"block\", \"url(2.jpg)\"\n * @param value\n *\n * @internal\n */\nconst isAnimatable = (value, name) => {\n // If the list of keys tat might be non-animatable grows, replace with Set\n if (name === \"zIndex\")\n return false;\n // If it's a number or a keyframes array, we can animate it. We might at some point\n // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,\n // but for now lets leave it like this for performance reasons\n if (typeof value === \"number\" || Array.isArray(value))\n return true;\n if (typeof value === \"string\" && // It's animatable if we have a string\n (complex.test(value) || value === \"0\") && // And it contains numbers and/or colors\n !value.startsWith(\"url(\") // Unless it starts with \"url(\"\n ) {\n return true;\n }\n return false;\n};\n\nexport { isAnimatable };\n","const isNotNull = (value) => value !== null;\nfunction getFinalKeyframe(keyframes, { repeat, repeatType = \"loop\" }, finalKeyframe) {\n const resolvedKeyframes = keyframes.filter(isNotNull);\n const index = repeat && repeatType !== \"loop\" && repeat % 2 === 1\n ? 0\n : resolvedKeyframes.length - 1;\n return !index || finalKeyframe === undefined\n ? resolvedKeyframes[index]\n : finalKeyframe;\n}\n\nexport { getFinalKeyframe };\n","import { time } from '../../frameloop/sync-time.mjs';\nimport { flushKeyframeResolvers } from '../../render/utils/KeyframesResolver.mjs';\nimport { instantAnimationState } from '../../utils/use-instant-transition-state.mjs';\nimport { canAnimate } from './utils/can-animate.mjs';\nimport { getFinalKeyframe } from './waapi/utils/get-final-keyframe.mjs';\n\n/**\n * Maximum time allowed between an animation being created and it being\n * resolved for us to use the latter as the start time.\n *\n * This is to ensure that while we prefer to \"start\" an animation as soon\n * as it's triggered, we also want to avoid a visual jump if there's a big delay\n * between these two moments.\n */\nconst MAX_RESOLVE_DELAY = 40;\nclass BaseAnimation {\n constructor({ autoplay = true, delay = 0, type = \"keyframes\", repeat = 0, repeatDelay = 0, repeatType = \"loop\", ...options }) {\n // Track whether the animation has been stopped. Stopped animations won't restart.\n this.isStopped = false;\n this.hasAttemptedResolve = false;\n this.createdAt = time.now();\n this.options = {\n autoplay,\n delay,\n type,\n repeat,\n repeatDelay,\n repeatType,\n ...options,\n };\n this.updateFinishedPromise();\n }\n /**\n * This method uses the createdAt and resolvedAt to calculate the\n * animation startTime. *Ideally*, we would use the createdAt time as t=0\n * as the following frame would then be the first frame of the animation in\n * progress, which would feel snappier.\n *\n * However, if there's a delay (main thread work) between the creation of\n * the animation and the first commited frame, we prefer to use resolvedAt\n * to avoid a sudden jump into the animation.\n */\n calcStartTime() {\n if (!this.resolvedAt)\n return this.createdAt;\n return this.resolvedAt - this.createdAt > MAX_RESOLVE_DELAY\n ? this.resolvedAt\n : this.createdAt;\n }\n /**\n * A getter for resolved data. If keyframes are not yet resolved, accessing\n * this.resolved will synchronously flush all pending keyframe resolvers.\n * This is a deoptimisation, but at its worst still batches read/writes.\n */\n get resolved() {\n if (!this._resolved && !this.hasAttemptedResolve) {\n flushKeyframeResolvers();\n }\n return this._resolved;\n }\n /**\n * A method to be called when the keyframes resolver completes. This method\n * will check if its possible to run the animation and, if not, skip it.\n * Otherwise, it will call initPlayback on the implementing class.\n */\n onKeyframesResolved(keyframes, finalKeyframe) {\n this.resolvedAt = time.now();\n this.hasAttemptedResolve = true;\n const { name, type, velocity, delay, onComplete, onUpdate, isGenerator, } = this.options;\n /**\n * If we can't animate this value with the resolved keyframes\n * then we should complete it immediately.\n */\n if (!isGenerator && !canAnimate(keyframes, name, type, velocity)) {\n // Finish immediately\n if (instantAnimationState.current || !delay) {\n onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(getFinalKeyframe(keyframes, this.options, finalKeyframe));\n onComplete === null || onComplete === void 0 ? void 0 : onComplete();\n this.resolveFinishedPromise();\n return;\n }\n // Finish after a delay\n else {\n this.options.duration = 0;\n }\n }\n const resolvedAnimation = this.initPlayback(keyframes, finalKeyframe);\n if (resolvedAnimation === false)\n return;\n this._resolved = {\n keyframes,\n finalKeyframe,\n ...resolvedAnimation,\n };\n this.onPostResolved();\n }\n onPostResolved() { }\n /**\n * Allows the returned animation to be awaited or promise-chained. Currently\n * resolves when the animation finishes at all but in a future update could/should\n * reject if its cancels.\n */\n then(resolve, reject) {\n return this.currentFinishedPromise.then(resolve, reject);\n }\n flatten() {\n this.options.type = \"keyframes\";\n this.options.ease = \"linear\";\n }\n updateFinishedPromise() {\n this.currentFinishedPromise = new Promise((resolve) => {\n this.resolveFinishedPromise = resolve;\n });\n }\n}\n\nexport { BaseAnimation };\n","import { isGenerator } from 'motion-dom';\nimport { warning } from 'motion-utils';\nimport { isAnimatable } from '../../utils/is-animatable.mjs';\n\nfunction hasKeyframesChanged(keyframes) {\n const current = keyframes[0];\n if (keyframes.length === 1)\n return true;\n for (let i = 0; i < keyframes.length; i++) {\n if (keyframes[i] !== current)\n return true;\n }\n}\nfunction canAnimate(keyframes, name, type, velocity) {\n /**\n * Check if we're able to animate between the start and end keyframes,\n * and throw a warning if we're attempting to animate between one that's\n * animatable and another that isn't.\n */\n const originKeyframe = keyframes[0];\n if (originKeyframe === null)\n return false;\n /**\n * These aren't traditionally animatable but we do support them.\n * In future we could look into making this more generic or replacing\n * this function with mix() === mixImmediate\n */\n if (name === \"display\" || name === \"visibility\")\n return true;\n const targetKeyframe = keyframes[keyframes.length - 1];\n const isOriginAnimatable = isAnimatable(originKeyframe, name);\n const isTargetAnimatable = isAnimatable(targetKeyframe, name);\n warning(isOriginAnimatable === isTargetAnimatable, `You are trying to animate ${name} from \"${originKeyframe}\" to \"${targetKeyframe}\". ${originKeyframe} is not an animatable value - to enable this animation set ${originKeyframe} to a value animatable to ${targetKeyframe} via the \\`style\\` property.`);\n // Always skip if any of these are true\n if (!isOriginAnimatable || !isTargetAnimatable) {\n return false;\n }\n return (hasKeyframesChanged(keyframes) ||\n ((type === \"spring\" || isGenerator(type)) && velocity));\n}\n\nexport { canAnimate };\n","/*\n Value in range from progress\n\n Given a lower limit and an upper limit, we return the value within\n that range as expressed by progress (usually a number from 0 to 1)\n\n So progress = 0.5 would change\n\n from -------- to\n\n to\n\n from ---- to\n\n E.g. from = 10, to = 20, progress = 0.5 => 15\n\n @param [number]: Lower limit of range\n @param [number]: Upper limit of range\n @param [number]: The progress between lower and upper limits expressed 0-1\n @return [number]: Value as calculated from progress within range (not limited within range)\n*/\nconst mixNumber = (from, to, progress) => {\n return from + (to - from) * progress;\n};\n\nexport { mixNumber };\n","// Adapted from https://gist.github.com/mjackson/5311256\nfunction hueToRgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\nfunction hslaToRgba({ hue, saturation, lightness, alpha }) {\n hue /= 360;\n saturation /= 100;\n lightness /= 100;\n let red = 0;\n let green = 0;\n let blue = 0;\n if (!saturation) {\n red = green = blue = lightness;\n }\n else {\n const q = lightness < 0.5\n ? lightness * (1 + saturation)\n : lightness + saturation - lightness * saturation;\n const p = 2 * lightness - q;\n red = hueToRgb(p, q, hue + 1 / 3);\n green = hueToRgb(p, q, hue);\n blue = hueToRgb(p, q, hue - 1 / 3);\n }\n return {\n red: Math.round(red * 255),\n green: Math.round(green * 255),\n blue: Math.round(blue * 255),\n alpha,\n };\n}\n\nexport { hslaToRgba };\n","function mixImmediate(a, b) {\n return (p) => (p > 0 ? b : a);\n}\n\nexport { mixImmediate };\n","import { mixNumber } from './number.mjs';\nimport { warning } from 'motion-utils';\nimport { hslaToRgba } from '../hsla-to-rgba.mjs';\nimport { hex } from '../../value/types/color/hex.mjs';\nimport { rgba } from '../../value/types/color/rgba.mjs';\nimport { hsla } from '../../value/types/color/hsla.mjs';\nimport { mixImmediate } from './immediate.mjs';\n\n// Linear color space blending\n// Explained https://www.youtube.com/watch?v=LKnqECcg6Gw\n// Demonstrated http://codepen.io/osublake/pen/xGVVaN\nconst mixLinearColor = (from, to, v) => {\n const fromExpo = from * from;\n const expo = v * (to * to - fromExpo) + fromExpo;\n return expo < 0 ? 0 : Math.sqrt(expo);\n};\nconst colorTypes = [hex, rgba, hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nfunction asRGBA(color) {\n const type = getColorType(color);\n warning(Boolean(type), `'${color}' is not an animatable color. Use the equivalent color code instead.`);\n if (!Boolean(type))\n return false;\n let model = type.parse(color);\n if (type === hsla) {\n // TODO Remove this cast - needed since Motion's stricter typing\n model = hslaToRgba(model);\n }\n return model;\n}\nconst mixColor = (from, to) => {\n const fromRGBA = asRGBA(from);\n const toRGBA = asRGBA(to);\n if (!fromRGBA || !toRGBA) {\n return mixImmediate(from, to);\n }\n const blended = { ...fromRGBA };\n return (v) => {\n blended.red = mixLinearColor(fromRGBA.red, toRGBA.red, v);\n blended.green = mixLinearColor(fromRGBA.green, toRGBA.green, v);\n blended.blue = mixLinearColor(fromRGBA.blue, toRGBA.blue, v);\n blended.alpha = mixNumber(fromRGBA.alpha, toRGBA.alpha, v);\n return rgba.transform(blended);\n };\n};\n\nexport { mixColor, mixLinearColor };\n","/**\n * Pipe\n * Compose other transformers to run linearily\n * pipe(min(20), max(40))\n * @param {...functions} transformers\n * @return {function}\n */\nconst combineFunctions = (a, b) => (v) => b(a(v));\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\n\nexport { pipe };\n","const invisibleValues = new Set([\"none\", \"hidden\"]);\n/**\n * Returns a function that, when provided a progress value between 0 and 1,\n * will return the \"none\" or \"hidden\" string only when the progress is that of\n * the origin or target.\n */\nfunction mixVisibility(origin, target) {\n if (invisibleValues.has(origin)) {\n return (p) => (p <= 0 ? origin : target);\n }\n else {\n return (p) => (p >= 1 ? target : origin);\n }\n}\n\nexport { invisibleValues, mixVisibility };\n","import { mixNumber as mixNumber$1 } from './number.mjs';\nimport { mixColor } from './color.mjs';\nimport { pipe } from '../pipe.mjs';\nimport { warning } from 'motion-utils';\nimport { color } from '../../value/types/color/index.mjs';\nimport { complex, analyseComplexValue } from '../../value/types/complex/index.mjs';\nimport { isCSSVariableToken } from '../../render/dom/utils/is-css-variable.mjs';\nimport { invisibleValues, mixVisibility } from './visibility.mjs';\nimport { mixImmediate } from './immediate.mjs';\n\nfunction mixNumber(a, b) {\n return (p) => mixNumber$1(a, b, p);\n}\nfunction getMixer(a) {\n if (typeof a === \"number\") {\n return mixNumber;\n }\n else if (typeof a === \"string\") {\n return isCSSVariableToken(a)\n ? mixImmediate\n : color.test(a)\n ? mixColor\n : mixComplex;\n }\n else if (Array.isArray(a)) {\n return mixArray;\n }\n else if (typeof a === \"object\") {\n return color.test(a) ? mixColor : mixObject;\n }\n return mixImmediate;\n}\nfunction mixArray(a, b) {\n const output = [...a];\n const numValues = output.length;\n const blendValue = a.map((v, i) => getMixer(v)(v, b[i]));\n return (p) => {\n for (let i = 0; i < numValues; i++) {\n output[i] = blendValue[i](p);\n }\n return output;\n };\n}\nfunction mixObject(a, b) {\n const output = { ...a, ...b };\n const blendValue = {};\n for (const key in output) {\n if (a[key] !== undefined && b[key] !== undefined) {\n blendValue[key] = getMixer(a[key])(a[key], b[key]);\n }\n }\n return (v) => {\n for (const key in blendValue) {\n output[key] = blendValue[key](v);\n }\n return output;\n };\n}\nfunction matchOrder(origin, target) {\n var _a;\n const orderedOrigin = [];\n const pointers = { color: 0, var: 0, number: 0 };\n for (let i = 0; i < target.values.length; i++) {\n const type = target.types[i];\n const originIndex = origin.indexes[type][pointers[type]];\n const originValue = (_a = origin.values[originIndex]) !== null && _a !== void 0 ? _a : 0;\n orderedOrigin[i] = originValue;\n pointers[type]++;\n }\n return orderedOrigin;\n}\nconst mixComplex = (origin, target) => {\n const template = complex.createTransformer(target);\n const originStats = analyseComplexValue(origin);\n const targetStats = analyseComplexValue(target);\n const canInterpolate = originStats.indexes.var.length === targetStats.indexes.var.length &&\n originStats.indexes.color.length === targetStats.indexes.color.length &&\n originStats.indexes.number.length >= targetStats.indexes.number.length;\n if (canInterpolate) {\n if ((invisibleValues.has(origin) &&\n !targetStats.values.length) ||\n (invisibleValues.has(target) &&\n !originStats.values.length)) {\n return mixVisibility(origin, target);\n }\n return pipe(mixArray(matchOrder(originStats, targetStats), targetStats.values), template);\n }\n else {\n warning(true, `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`);\n return mixImmediate(origin, target);\n }\n};\n\nexport { getMixer, mixArray, mixComplex, mixObject };\n","import { getMixer } from './complex.mjs';\nimport { mixNumber } from './number.mjs';\n\nfunction mix(from, to, p) {\n if (typeof from === \"number\" &&\n typeof to === \"number\" &&\n typeof p === \"number\") {\n return mixNumber(from, to, p);\n }\n const mixer = getMixer(from);\n return mixer(from, to);\n}\n\nexport { mix };\n","import { velocityPerSecond } from '../../../utils/velocity-per-second.mjs';\n\nconst velocitySampleDuration = 5; // ms\nfunction calcGeneratorVelocity(resolveValue, t, current) {\n const prevT = Math.max(t - velocitySampleDuration, 0);\n return velocityPerSecond(current - resolveValue(prevT), t - prevT);\n}\n\nexport { calcGeneratorVelocity };\n","const springDefaults = {\n // Default spring physics\n stiffness: 100,\n damping: 10,\n mass: 1.0,\n velocity: 0.0,\n // Default duration/bounce-based options\n duration: 800, // in ms\n bounce: 0.3,\n visualDuration: 0.3, // in seconds\n // Rest thresholds\n restSpeed: {\n granular: 0.01,\n default: 2,\n },\n restDelta: {\n granular: 0.005,\n default: 0.5,\n },\n // Limits\n minDuration: 0.01, // in seconds\n maxDuration: 10.0, // in seconds\n minDamping: 0.05,\n maxDamping: 1,\n};\n\nexport { springDefaults };\n","import { warning, secondsToMilliseconds, millisecondsToSeconds } from 'motion-utils';\nimport { clamp } from '../../../utils/clamp.mjs';\nimport { springDefaults } from './defaults.mjs';\n\nconst safeMin = 0.001;\nfunction findSpring({ duration = springDefaults.duration, bounce = springDefaults.bounce, velocity = springDefaults.velocity, mass = springDefaults.mass, }) {\n let envelope;\n let derivative;\n warning(duration <= secondsToMilliseconds(springDefaults.maxDuration), \"Spring duration must be 10 seconds or less\");\n let dampingRatio = 1 - bounce;\n /**\n * Restrict dampingRatio and duration to within acceptable ranges.\n */\n dampingRatio = clamp(springDefaults.minDamping, springDefaults.maxDamping, dampingRatio);\n duration = clamp(springDefaults.minDuration, springDefaults.maxDuration, millisecondsToSeconds(duration));\n if (dampingRatio < 1) {\n /**\n * Underdamped spring\n */\n envelope = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const a = exponentialDecay - velocity;\n const b = calcAngularFreq(undampedFreq, dampingRatio);\n const c = Math.exp(-delta);\n return safeMin - (a / b) * c;\n };\n derivative = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const d = delta * velocity + velocity;\n const e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\n const f = Math.exp(-delta);\n const g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\n const factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\n return (factor * ((d - e) * f)) / g;\n };\n }\n else {\n /**\n * Critically-damped spring\n */\n envelope = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (undampedFreq - velocity) * duration + 1;\n return -safeMin + a * b;\n };\n derivative = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (velocity - undampedFreq) * (duration * duration);\n return a * b;\n };\n }\n const initialGuess = 5 / duration;\n const undampedFreq = approximateRoot(envelope, derivative, initialGuess);\n duration = secondsToMilliseconds(duration);\n if (isNaN(undampedFreq)) {\n return {\n stiffness: springDefaults.stiffness,\n damping: springDefaults.damping,\n duration,\n };\n }\n else {\n const stiffness = Math.pow(undampedFreq, 2) * mass;\n return {\n stiffness,\n damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),\n duration,\n };\n }\n}\nconst rootIterations = 12;\nfunction approximateRoot(envelope, derivative, initialGuess) {\n let result = initialGuess;\n for (let i = 1; i < rootIterations; i++) {\n result = result - envelope(result) / derivative(result);\n }\n return result;\n}\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\n return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\n}\n\nexport { calcAngularFreq, findSpring };\n","import { calcGeneratorDuration, maxGeneratorDuration, generateLinearEasing } from 'motion-dom';\nimport { millisecondsToSeconds, secondsToMilliseconds } from 'motion-utils';\nimport { clamp } from '../../../utils/clamp.mjs';\nimport { calcGeneratorVelocity } from '../utils/velocity.mjs';\nimport { springDefaults } from './defaults.mjs';\nimport { findSpring, calcAngularFreq } from './find.mjs';\n\nconst durationKeys = [\"duration\", \"bounce\"];\nconst physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n return keys.some((key) => options[key] !== undefined);\n}\nfunction getSpringOptions(options) {\n let springOptions = {\n velocity: springDefaults.velocity,\n stiffness: springDefaults.stiffness,\n damping: springDefaults.damping,\n mass: springDefaults.mass,\n isResolvedFromDuration: false,\n ...options,\n };\n // stiffness/damping/mass overrides duration/bounce\n if (!isSpringType(options, physicsKeys) &&\n isSpringType(options, durationKeys)) {\n if (options.visualDuration) {\n const visualDuration = options.visualDuration;\n const root = (2 * Math.PI) / (visualDuration * 1.2);\n const stiffness = root * root;\n const damping = 2 *\n clamp(0.05, 1, 1 - (options.bounce || 0)) *\n Math.sqrt(stiffness);\n springOptions = {\n ...springOptions,\n mass: springDefaults.mass,\n stiffness,\n damping,\n };\n }\n else {\n const derived = findSpring(options);\n springOptions = {\n ...springOptions,\n ...derived,\n mass: springDefaults.mass,\n };\n springOptions.isResolvedFromDuration = true;\n }\n }\n return springOptions;\n}\nfunction spring(optionsOrVisualDuration = springDefaults.visualDuration, bounce = springDefaults.bounce) {\n const options = typeof optionsOrVisualDuration !== \"object\"\n ? {\n visualDuration: optionsOrVisualDuration,\n keyframes: [0, 1],\n bounce,\n }\n : optionsOrVisualDuration;\n let { restSpeed, restDelta } = options;\n const origin = options.keyframes[0];\n const target = options.keyframes[options.keyframes.length - 1];\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = { done: false, value: origin };\n const { stiffness, damping, mass, duration, velocity, isResolvedFromDuration, } = getSpringOptions({\n ...options,\n velocity: -millisecondsToSeconds(options.velocity || 0),\n });\n const initialVelocity = velocity || 0.0;\n const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n const initialDelta = target - origin;\n const undampedAngularFreq = millisecondsToSeconds(Math.sqrt(stiffness / mass));\n /**\n * If we're working on a granular scale, use smaller defaults for determining\n * when the spring is finished.\n *\n * These defaults have been selected emprically based on what strikes a good\n * ratio between feeling good and finishing as soon as changes are imperceptible.\n */\n const isGranularScale = Math.abs(initialDelta) < 5;\n restSpeed || (restSpeed = isGranularScale\n ? springDefaults.restSpeed.granular\n : springDefaults.restSpeed.default);\n restDelta || (restDelta = isGranularScale\n ? springDefaults.restDelta.granular\n : springDefaults.restDelta.default);\n let resolveSpring;\n if (dampingRatio < 1) {\n const angularFreq = calcAngularFreq(undampedAngularFreq, dampingRatio);\n // Underdamped spring\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (target -\n envelope *\n (((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) /\n angularFreq) *\n Math.sin(angularFreq * t) +\n initialDelta * Math.cos(angularFreq * t)));\n };\n }\n else if (dampingRatio === 1) {\n // Critically damped spring\n resolveSpring = (t) => target -\n Math.exp(-undampedAngularFreq * t) *\n (initialDelta +\n (initialVelocity + undampedAngularFreq * initialDelta) * t);\n }\n else {\n // Overdamped spring\n const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n // When performing sinh or cosh values can hit Infinity so we cap them here\n const freqForT = Math.min(dampedAngularFreq * t, 300);\n return (target -\n (envelope *\n ((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) *\n Math.sinh(freqForT) +\n dampedAngularFreq *\n initialDelta *\n Math.cosh(freqForT))) /\n dampedAngularFreq);\n };\n }\n const generator = {\n calculatedDuration: isResolvedFromDuration ? duration || null : null,\n next: (t) => {\n const current = resolveSpring(t);\n if (!isResolvedFromDuration) {\n let currentVelocity = 0.0;\n /**\n * We only need to calculate velocity for under-damped springs\n * as over- and critically-damped springs can't overshoot, so\n * checking only for displacement is enough.\n */\n if (dampingRatio < 1) {\n currentVelocity =\n t === 0\n ? secondsToMilliseconds(initialVelocity)\n : calcGeneratorVelocity(resolveSpring, t, current);\n }\n const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n const isBelowDisplacementThreshold = Math.abs(target - current) <= restDelta;\n state.done =\n isBelowVelocityThreshold && isBelowDisplacementThreshold;\n }\n else {\n state.done = t >= duration;\n }\n state.value = state.done ? target : current;\n return state;\n },\n toString: () => {\n const calculatedDuration = Math.min(calcGeneratorDuration(generator), maxGeneratorDuration);\n const easing = generateLinearEasing((progress) => generator.next(calculatedDuration * progress).value, calculatedDuration, 30);\n return calculatedDuration + \"ms \" + easing;\n },\n };\n return generator;\n}\n\nexport { spring };\n","import { spring } from './spring/index.mjs';\nimport { calcGeneratorVelocity } from './utils/velocity.mjs';\n\nfunction inertia({ keyframes, velocity = 0.0, power = 0.8, timeConstant = 325, bounceDamping = 10, bounceStiffness = 500, modifyTarget, min, max, restDelta = 0.5, restSpeed, }) {\n const origin = keyframes[0];\n const state = {\n done: false,\n value: origin,\n };\n const isOutOfBounds = (v) => (min !== undefined && v < min) || (max !== undefined && v > max);\n const nearestBoundary = (v) => {\n if (min === undefined)\n return max;\n if (max === undefined)\n return min;\n return Math.abs(min - v) < Math.abs(max - v) ? min : max;\n };\n let amplitude = power * velocity;\n const ideal = origin + amplitude;\n const target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\n /**\n * If the target has changed we need to re-calculate the amplitude, otherwise\n * the animation will start from the wrong position.\n */\n if (target !== ideal)\n amplitude = target - origin;\n const calcDelta = (t) => -amplitude * Math.exp(-t / timeConstant);\n const calcLatest = (t) => target + calcDelta(t);\n const applyFriction = (t) => {\n const delta = calcDelta(t);\n const latest = calcLatest(t);\n state.done = Math.abs(delta) <= restDelta;\n state.value = state.done ? target : latest;\n };\n /**\n * Ideally this would resolve for t in a stateless way, we could\n * do that by always precalculating the animation but as we know\n * this will be done anyway we can assume that spring will\n * be discovered during that.\n */\n let timeReachedBoundary;\n let spring$1;\n const checkCatchBoundary = (t) => {\n if (!isOutOfBounds(state.value))\n return;\n timeReachedBoundary = t;\n spring$1 = spring({\n keyframes: [state.value, nearestBoundary(state.value)],\n velocity: calcGeneratorVelocity(calcLatest, t, state.value), // TODO: This should be passing * 1000\n damping: bounceDamping,\n stiffness: bounceStiffness,\n restDelta,\n restSpeed,\n });\n };\n checkCatchBoundary(0);\n return {\n calculatedDuration: null,\n next: (t) => {\n /**\n * We need to resolve the friction to figure out if we need a\n * spring but we don't want to do this twice per frame. So here\n * we flag if we updated for this frame and later if we did\n * we can skip doing it again.\n */\n let hasUpdatedFrame = false;\n if (!spring$1 && timeReachedBoundary === undefined) {\n hasUpdatedFrame = true;\n applyFriction(t);\n checkCatchBoundary(t);\n }\n /**\n * If we have a spring and the provided t is beyond the moment the friction\n * animation crossed the min/max boundary, use the spring.\n */\n if (timeReachedBoundary !== undefined && t >= timeReachedBoundary) {\n return spring$1.next(t - timeReachedBoundary);\n }\n else {\n !hasUpdatedFrame && applyFriction(t);\n return state;\n }\n },\n };\n}\n\nexport { inertia };\n","import { cubicBezier } from './cubic-bezier.mjs';\n\nconst easeIn = /*@__PURE__*/ cubicBezier(0.42, 0, 1, 1);\nconst easeOut = /*@__PURE__*/ cubicBezier(0, 0, 0.58, 1);\nconst easeInOut = /*@__PURE__*/ cubicBezier(0.42, 0, 0.58, 1);\n\nexport { easeIn, easeInOut, easeOut };\n","import { isBezierDefinition } from 'motion-dom';\nimport { invariant, noop } from 'motion-utils';\nimport { anticipate } from '../anticipate.mjs';\nimport { backIn, backInOut, backOut } from '../back.mjs';\nimport { circIn, circInOut, circOut } from '../circ.mjs';\nimport { cubicBezier } from '../cubic-bezier.mjs';\nimport { easeIn, easeInOut, easeOut } from '../ease.mjs';\n\nconst easingLookup = {\n linear: noop,\n easeIn,\n easeInOut,\n easeOut,\n circIn,\n circInOut,\n circOut,\n backIn,\n backInOut,\n backOut,\n anticipate,\n};\nconst easingDefinitionToFunction = (definition) => {\n if (isBezierDefinition(definition)) {\n // If cubic bezier definition, create bezier curve\n invariant(definition.length === 4, `Cubic bezier arrays must contain four numerical values.`);\n const [x1, y1, x2, y2] = definition;\n return cubicBezier(x1, y1, x2, y2);\n }\n else if (typeof definition === \"string\") {\n // Else lookup from table\n invariant(easingLookup[definition] !== undefined, `Invalid easing type '${definition}'`);\n return easingLookup[definition];\n }\n return definition;\n};\n\nexport { easingDefinitionToFunction };\n","import { invariant, noop, progress } from 'motion-utils';\nimport { clamp } from './clamp.mjs';\nimport { mix } from './mix/index.mjs';\nimport { pipe } from './pipe.mjs';\n\nfunction createMixers(output, ease, customMixer) {\n const mixers = [];\n const mixerFactory = customMixer || mix;\n const numMixers = output.length - 1;\n for (let i = 0; i < numMixers; i++) {\n let mixer = mixerFactory(output[i], output[i + 1]);\n if (ease) {\n const easingFunction = Array.isArray(ease) ? ease[i] || noop : ease;\n mixer = pipe(easingFunction, mixer);\n }\n mixers.push(mixer);\n }\n return mixers;\n}\n/**\n * Create a function that maps from a numerical input array to a generic output array.\n *\n * Accepts:\n * - Numbers\n * - Colors (hex, hsl, hsla, rgb, rgba)\n * - Complex (combinations of one or more numbers or strings)\n *\n * ```jsx\n * const mixColor = interpolate([0, 1], ['#fff', '#000'])\n *\n * mixColor(0.5) // 'rgba(128, 128, 128, 1)'\n * ```\n *\n * TODO Revist this approach once we've moved to data models for values,\n * probably not needed to pregenerate mixer functions.\n *\n * @public\n */\nfunction interpolate(input, output, { clamp: isClamp = true, ease, mixer } = {}) {\n const inputLength = input.length;\n invariant(inputLength === output.length, \"Both input and output ranges must be the same length\");\n /**\n * If we're only provided a single input, we can just make a function\n * that returns the output.\n */\n if (inputLength === 1)\n return () => output[0];\n if (inputLength === 2 && output[0] === output[1])\n return () => output[1];\n const isZeroDeltaRange = input[0] === input[1];\n // If input runs highest -> lowest, reverse both arrays\n if (input[0] > input[inputLength - 1]) {\n input = [...input].reverse();\n output = [...output].reverse();\n }\n const mixers = createMixers(output, ease, mixer);\n const numMixers = mixers.length;\n const interpolator = (v) => {\n if (isZeroDeltaRange && v < input[0])\n return output[0];\n let i = 0;\n if (numMixers > 1) {\n for (; i < input.length - 2; i++) {\n if (v < input[i + 1])\n break;\n }\n }\n const progressInRange = progress(input[i], input[i + 1], v);\n return mixers[i](progressInRange);\n };\n return isClamp\n ? (v) => interpolator(clamp(input[0], input[inputLength - 1], v))\n : interpolator;\n}\n\nexport { interpolate };\n","import { fillOffset } from './fill.mjs';\n\nfunction defaultOffset(arr) {\n const offset = [0];\n fillOffset(offset, arr.length - 1);\n return offset;\n}\n\nexport { defaultOffset };\n","import { progress } from 'motion-utils';\nimport { mixNumber } from '../mix/number.mjs';\n\nfunction fillOffset(offset, remaining) {\n const min = offset[offset.length - 1];\n for (let i = 1; i <= remaining; i++) {\n const offsetProgress = progress(0, remaining, i);\n offset.push(mixNumber(min, 1, offsetProgress));\n }\n}\n\nexport { fillOffset };\n","import { easeInOut } from '../../easing/ease.mjs';\nimport { isEasingArray } from '../../easing/utils/is-easing-array.mjs';\nimport { easingDefinitionToFunction } from '../../easing/utils/map.mjs';\nimport { interpolate } from '../../utils/interpolate.mjs';\nimport { defaultOffset } from '../../utils/offsets/default.mjs';\nimport { convertOffsetToTimes } from '../../utils/offsets/time.mjs';\n\nfunction defaultEasing(values, easing) {\n return values.map(() => easing || easeInOut).splice(0, values.length - 1);\n}\nfunction keyframes({ duration = 300, keyframes: keyframeValues, times, ease = \"easeInOut\", }) {\n /**\n * Easing functions can be externally defined as strings. Here we convert them\n * into actual functions.\n */\n const easingFunctions = isEasingArray(ease)\n ? ease.map(easingDefinitionToFunction)\n : easingDefinitionToFunction(ease);\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = {\n done: false,\n value: keyframeValues[0],\n };\n /**\n * Create a times array based on the provided 0-1 offsets\n */\n const absoluteTimes = convertOffsetToTimes(\n // Only use the provided offsets if they're the correct length\n // TODO Maybe we should warn here if there's a length mismatch\n times && times.length === keyframeValues.length\n ? times\n : defaultOffset(keyframeValues), duration);\n const mapTimeToKeyframe = interpolate(absoluteTimes, keyframeValues, {\n ease: Array.isArray(easingFunctions)\n ? easingFunctions\n : defaultEasing(keyframeValues, easingFunctions),\n });\n return {\n calculatedDuration: duration,\n next: (t) => {\n state.value = mapTimeToKeyframe(t);\n state.done = t >= duration;\n return state;\n },\n };\n}\n\nexport { defaultEasing, keyframes };\n","const isEasingArray = (ease) => {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\nexport { isEasingArray };\n","function convertOffsetToTimes(offset, duration) {\n return offset.map((o) => o * duration);\n}\n\nexport { convertOffsetToTimes };\n","import { time } from '../../../frameloop/sync-time.mjs';\nimport { frame, cancelFrame, frameData } from '../../../frameloop/frame.mjs';\n\nconst frameloopDriver = (update) => {\n const passTimestamp = ({ timestamp }) => update(timestamp);\n return {\n start: () => frame.update(passTimestamp, true),\n stop: () => cancelFrame(passTimestamp),\n /**\n * If we're processing this frame we can use the\n * framelocked timestamp to keep things in sync.\n */\n now: () => (frameData.isProcessing ? frameData.timestamp : time.now()),\n };\n};\n\nexport { frameloopDriver };\n","import { isGenerator, calcGeneratorDuration } from 'motion-dom';\nimport { invariant, millisecondsToSeconds, secondsToMilliseconds } from 'motion-utils';\nimport { KeyframeResolver } from '../../render/utils/KeyframesResolver.mjs';\nimport { clamp } from '../../utils/clamp.mjs';\nimport { mix } from '../../utils/mix/index.mjs';\nimport { pipe } from '../../utils/pipe.mjs';\nimport { inertia } from '../generators/inertia.mjs';\nimport { keyframes } from '../generators/keyframes.mjs';\nimport { spring } from '../generators/spring/index.mjs';\nimport { BaseAnimation } from './BaseAnimation.mjs';\nimport { frameloopDriver } from './drivers/driver-frameloop.mjs';\nimport { getFinalKeyframe } from './waapi/utils/get-final-keyframe.mjs';\n\nconst generators = {\n decay: inertia,\n inertia,\n tween: keyframes,\n keyframes: keyframes,\n spring,\n};\nconst percentToProgress = (percent) => percent / 100;\n/**\n * Animation that runs on the main thread. Designed to be WAAPI-spec in the subset of\n * features we expose publically. Mostly the compatibility is to ensure visual identity\n * between both WAAPI and main thread animations.\n */\nclass MainThreadAnimation extends BaseAnimation {\n constructor(options) {\n super(options);\n /**\n * The time at which the animation was paused.\n */\n this.holdTime = null;\n /**\n * The time at which the animation was cancelled.\n */\n this.cancelTime = null;\n /**\n * The current time of the animation.\n */\n this.currentTime = 0;\n /**\n * Playback speed as a factor. 0 would be stopped, -1 reverse and 2 double speed.\n */\n this.playbackSpeed = 1;\n /**\n * The state of the animation to apply when the animation is resolved. This\n * allows calls to the public API to control the animation before it is resolved,\n * without us having to resolve it first.\n */\n this.pendingPlayState = \"running\";\n /**\n * The time at which the animation was started.\n */\n this.startTime = null;\n this.state = \"idle\";\n /**\n * This method is bound to the instance to fix a pattern where\n * animation.stop is returned as a reference from a useEffect.\n */\n this.stop = () => {\n this.resolver.cancel();\n this.isStopped = true;\n if (this.state === \"idle\")\n return;\n this.teardown();\n const { onStop } = this.options;\n onStop && onStop();\n };\n const { name, motionValue, element, keyframes } = this.options;\n const KeyframeResolver$1 = (element === null || element === void 0 ? void 0 : element.KeyframeResolver) || KeyframeResolver;\n const onResolved = (resolvedKeyframes, finalKeyframe) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe);\n this.resolver = new KeyframeResolver$1(keyframes, onResolved, name, motionValue, element);\n this.resolver.scheduleResolve();\n }\n flatten() {\n super.flatten();\n // If we've already resolved the animation, re-initialise it\n if (this._resolved) {\n Object.assign(this._resolved, this.initPlayback(this._resolved.keyframes));\n }\n }\n initPlayback(keyframes$1) {\n const { type = \"keyframes\", repeat = 0, repeatDelay = 0, repeatType, velocity = 0, } = this.options;\n const generatorFactory = isGenerator(type)\n ? type\n : generators[type] || keyframes;\n /**\n * If our generator doesn't support mixing numbers, we need to replace keyframes with\n * [0, 100] and then make a function that maps that to the actual keyframes.\n *\n * 100 is chosen instead of 1 as it works nicer with spring animations.\n */\n let mapPercentToKeyframes;\n let mirroredGenerator;\n if (generatorFactory !== keyframes &&\n typeof keyframes$1[0] !== \"number\") {\n if (process.env.NODE_ENV !== \"production\") {\n invariant(keyframes$1.length === 2, `Only two keyframes currently supported with spring and inertia animations. Trying to animate ${keyframes$1}`);\n }\n mapPercentToKeyframes = pipe(percentToProgress, mix(keyframes$1[0], keyframes$1[1]));\n keyframes$1 = [0, 100];\n }\n const generator = generatorFactory({ ...this.options, keyframes: keyframes$1 });\n /**\n * If we have a mirror repeat type we need to create a second generator that outputs the\n * mirrored (not reversed) animation and later ping pong between the two generators.\n */\n if (repeatType === \"mirror\") {\n mirroredGenerator = generatorFactory({\n ...this.options,\n keyframes: [...keyframes$1].reverse(),\n velocity: -velocity,\n });\n }\n /**\n * If duration is undefined and we have repeat options,\n * we need to calculate a duration from the generator.\n *\n * We set it to the generator itself to cache the duration.\n * Any timeline resolver will need to have already precalculated\n * the duration by this step.\n */\n if (generator.calculatedDuration === null) {\n generator.calculatedDuration = calcGeneratorDuration(generator);\n }\n const { calculatedDuration } = generator;\n const resolvedDuration = calculatedDuration + repeatDelay;\n const totalDuration = resolvedDuration * (repeat + 1) - repeatDelay;\n return {\n generator,\n mirroredGenerator,\n mapPercentToKeyframes,\n calculatedDuration,\n resolvedDuration,\n totalDuration,\n };\n }\n onPostResolved() {\n const { autoplay = true } = this.options;\n this.play();\n if (this.pendingPlayState === \"paused\" || !autoplay) {\n this.pause();\n }\n else {\n this.state = this.pendingPlayState;\n }\n }\n tick(timestamp, sample = false) {\n const { resolved } = this;\n // If the animations has failed to resolve, return the final keyframe.\n if (!resolved) {\n const { keyframes } = this.options;\n return { done: true, value: keyframes[keyframes.length - 1] };\n }\n const { finalKeyframe, generator, mirroredGenerator, mapPercentToKeyframes, keyframes, calculatedDuration, totalDuration, resolvedDuration, } = resolved;\n if (this.startTime === null)\n return generator.next(0);\n const { delay, repeat, repeatType, repeatDelay, onUpdate } = this.options;\n /**\n * requestAnimationFrame timestamps can come through as lower than\n * the startTime as set by performance.now(). Here we prevent this,\n * though in the future it could be possible to make setting startTime\n * a pending operation that gets resolved here.\n */\n if (this.speed > 0) {\n this.startTime = Math.min(this.startTime, timestamp);\n }\n else if (this.speed < 0) {\n this.startTime = Math.min(timestamp - totalDuration / this.speed, this.startTime);\n }\n // Update currentTime\n if (sample) {\n this.currentTime = timestamp;\n }\n else if (this.holdTime !== null) {\n this.currentTime = this.holdTime;\n }\n else {\n // Rounding the time because floating point arithmetic is not always accurate, e.g. 3000.367 - 1000.367 =\n // 2000.0000000000002. This is a problem when we are comparing the currentTime with the duration, for\n // example.\n this.currentTime =\n Math.round(timestamp - this.startTime) * this.speed;\n }\n // Rebase on delay\n const timeWithoutDelay = this.currentTime - delay * (this.speed >= 0 ? 1 : -1);\n const isInDelayPhase = this.speed >= 0\n ? timeWithoutDelay < 0\n : timeWithoutDelay > totalDuration;\n this.currentTime = Math.max(timeWithoutDelay, 0);\n // If this animation has finished, set the current time to the total duration.\n if (this.state === \"finished\" && this.holdTime === null) {\n this.currentTime = totalDuration;\n }\n let elapsed = this.currentTime;\n let frameGenerator = generator;\n if (repeat) {\n /**\n * Get the current progress (0-1) of the animation. If t is >\n * than duration we'll get values like 2.5 (midway through the\n * third iteration)\n */\n const progress = Math.min(this.currentTime, totalDuration) / resolvedDuration;\n /**\n * Get the current iteration (0 indexed). For instance the floor of\n * 2.5 is 2.\n */\n let currentIteration = Math.floor(progress);\n /**\n * Get the current progress of the iteration by taking the remainder\n * so 2.5 is 0.5 through iteration 2\n */\n let iterationProgress = progress % 1.0;\n /**\n * If iteration progress is 1 we count that as the end\n * of the previous iteration.\n */\n if (!iterationProgress && progress >= 1) {\n iterationProgress = 1;\n }\n iterationProgress === 1 && currentIteration--;\n currentIteration = Math.min(currentIteration, repeat + 1);\n /**\n * Reverse progress if we're not running in \"normal\" direction\n */\n const isOddIteration = Boolean(currentIteration % 2);\n if (isOddIteration) {\n if (repeatType === \"reverse\") {\n iterationProgress = 1 - iterationProgress;\n if (repeatDelay) {\n iterationProgress -= repeatDelay / resolvedDuration;\n }\n }\n else if (repeatType === \"mirror\") {\n frameGenerator = mirroredGenerator;\n }\n }\n elapsed = clamp(0, 1, iterationProgress) * resolvedDuration;\n }\n /**\n * If we're in negative time, set state as the initial keyframe.\n * This prevents delay: x, duration: 0 animations from finishing\n * instantly.\n */\n const state = isInDelayPhase\n ? { done: false, value: keyframes[0] }\n : frameGenerator.next(elapsed);\n if (mapPercentToKeyframes) {\n state.value = mapPercentToKeyframes(state.value);\n }\n let { done } = state;\n if (!isInDelayPhase && calculatedDuration !== null) {\n done =\n this.speed >= 0\n ? this.currentTime >= totalDuration\n : this.currentTime <= 0;\n }\n const isAnimationFinished = this.holdTime === null &&\n (this.state === \"finished\" || (this.state === \"running\" && done));\n if (isAnimationFinished && finalKeyframe !== undefined) {\n state.value = getFinalKeyframe(keyframes, this.options, finalKeyframe);\n }\n if (onUpdate) {\n onUpdate(state.value);\n }\n if (isAnimationFinished) {\n this.finish();\n }\n return state;\n }\n get duration() {\n const { resolved } = this;\n return resolved ? millisecondsToSeconds(resolved.calculatedDuration) : 0;\n }\n get time() {\n return millisecondsToSeconds(this.currentTime);\n }\n set time(newTime) {\n newTime = secondsToMilliseconds(newTime);\n this.currentTime = newTime;\n if (this.holdTime !== null || this.speed === 0) {\n this.holdTime = newTime;\n }\n else if (this.driver) {\n this.startTime = this.driver.now() - newTime / this.speed;\n }\n }\n get speed() {\n return this.playbackSpeed;\n }\n set speed(newSpeed) {\n const hasChanged = this.playbackSpeed !== newSpeed;\n this.playbackSpeed = newSpeed;\n if (hasChanged) {\n this.time = millisecondsToSeconds(this.currentTime);\n }\n }\n play() {\n if (!this.resolver.isScheduled) {\n this.resolver.resume();\n }\n if (!this._resolved) {\n this.pendingPlayState = \"running\";\n return;\n }\n if (this.isStopped)\n return;\n const { driver = frameloopDriver, onPlay, startTime } = this.options;\n if (!this.driver) {\n this.driver = driver((timestamp) => this.tick(timestamp));\n }\n onPlay && onPlay();\n const now = this.driver.now();\n if (this.holdTime !== null) {\n this.startTime = now - this.holdTime;\n }\n else if (!this.startTime) {\n this.startTime = startTime !== null && startTime !== void 0 ? startTime : this.calcStartTime();\n }\n else if (this.state === \"finished\") {\n this.startTime = now;\n }\n if (this.state === \"finished\") {\n this.updateFinishedPromise();\n }\n this.cancelTime = this.startTime;\n this.holdTime = null;\n /**\n * Set playState to running only after we've used it in\n * the previous logic.\n */\n this.state = \"running\";\n this.driver.start();\n }\n pause() {\n var _a;\n if (!this._resolved) {\n this.pendingPlayState = \"paused\";\n return;\n }\n this.state = \"paused\";\n this.holdTime = (_a = this.currentTime) !== null && _a !== void 0 ? _a : 0;\n }\n complete() {\n if (this.state !== \"running\") {\n this.play();\n }\n this.pendingPlayState = this.state = \"finished\";\n this.holdTime = null;\n }\n finish() {\n this.teardown();\n this.state = \"finished\";\n const { onComplete } = this.options;\n onComplete && onComplete();\n }\n cancel() {\n if (this.cancelTime !== null) {\n this.tick(this.cancelTime);\n }\n this.teardown();\n this.updateFinishedPromise();\n }\n teardown() {\n this.state = \"idle\";\n this.stopDriver();\n this.resolveFinishedPromise();\n this.updateFinishedPromise();\n this.startTime = this.cancelTime = null;\n this.resolver.cancel();\n }\n stopDriver() {\n if (!this.driver)\n return;\n this.driver.stop();\n this.driver = undefined;\n }\n sample(time) {\n this.startTime = 0;\n return this.tick(time, true);\n }\n}\n// Legacy interface\nfunction animateValue(options) {\n return new MainThreadAnimation(options);\n}\n\nexport { MainThreadAnimation, animateValue };\n","/**\n * A list of values that can be hardware-accelerated.\n */\nconst acceleratedValues = new Set([\n \"opacity\",\n \"clipPath\",\n \"filter\",\n \"transform\",\n // TODO: Can be accelerated but currently disabled until https://issues.chromium.org/issues/41491098 is resolved\n // or until we implement support for linear() easing.\n // \"background-color\"\n]);\n\nexport { acceleratedValues };\n","import { mapEasingToNativeEasing } from 'motion-dom';\n\nfunction startWaapiAnimation(element, valueName, keyframes, { delay = 0, duration = 300, repeat = 0, repeatType = \"loop\", ease = \"easeInOut\", times, } = {}) {\n const keyframeOptions = { [valueName]: keyframes };\n if (times)\n keyframeOptions.offset = times;\n const easing = mapEasingToNativeEasing(ease, duration);\n /**\n * If this is an easing array, apply to keyframes, not animation as a whole\n */\n if (Array.isArray(easing))\n keyframeOptions.easing = easing;\n return element.animate(keyframeOptions, {\n delay,\n duration,\n easing: !Array.isArray(easing) ? easing : \"linear\",\n fill: \"both\",\n iterations: repeat + 1,\n direction: repeatType === \"reverse\" ? \"alternate\" : \"normal\",\n });\n}\n\nexport { startWaapiAnimation };\n","import { memo } from 'motion-utils';\n\nconst supportsWaapi = /*@__PURE__*/ memo(() => Object.hasOwnProperty.call(Element.prototype, \"animate\"));\n\nexport { supportsWaapi };\n","import { supportsLinearEasing, attachTimeline, isGenerator, isWaapiSupportedEasing } from 'motion-dom';\nimport { millisecondsToSeconds, secondsToMilliseconds, noop } from 'motion-utils';\nimport { anticipate } from '../../easing/anticipate.mjs';\nimport { backInOut } from '../../easing/back.mjs';\nimport { circInOut } from '../../easing/circ.mjs';\nimport { DOMKeyframesResolver } from '../../render/dom/DOMKeyframesResolver.mjs';\nimport { BaseAnimation } from './BaseAnimation.mjs';\nimport { MainThreadAnimation } from './MainThreadAnimation.mjs';\nimport { acceleratedValues } from './utils/accelerated-values.mjs';\nimport { startWaapiAnimation } from './waapi/index.mjs';\nimport { getFinalKeyframe } from './waapi/utils/get-final-keyframe.mjs';\nimport { supportsWaapi } from './waapi/utils/supports-waapi.mjs';\n\n/**\n * 10ms is chosen here as it strikes a balance between smooth\n * results (more than one keyframe per frame at 60fps) and\n * keyframe quantity.\n */\nconst sampleDelta = 10; //ms\n/**\n * Implement a practical max duration for keyframe generation\n * to prevent infinite loops\n */\nconst maxDuration = 20000;\n/**\n * Check if an animation can run natively via WAAPI or requires pregenerated keyframes.\n * WAAPI doesn't support spring or function easings so we run these as JS animation before\n * handing off.\n */\nfunction requiresPregeneratedKeyframes(options) {\n return (isGenerator(options.type) ||\n options.type === \"spring\" ||\n !isWaapiSupportedEasing(options.ease));\n}\nfunction pregenerateKeyframes(keyframes, options) {\n /**\n * Create a main-thread animation to pregenerate keyframes.\n * We sample this at regular intervals to generate keyframes that we then\n * linearly interpolate between.\n */\n const sampleAnimation = new MainThreadAnimation({\n ...options,\n keyframes,\n repeat: 0,\n delay: 0,\n isGenerator: true,\n });\n let state = { done: false, value: keyframes[0] };\n const pregeneratedKeyframes = [];\n /**\n * Bail after 20 seconds of pre-generated keyframes as it's likely\n * we're heading for an infinite loop.\n */\n let t = 0;\n while (!state.done && t < maxDuration) {\n state = sampleAnimation.sample(t);\n pregeneratedKeyframes.push(state.value);\n t += sampleDelta;\n }\n return {\n times: undefined,\n keyframes: pregeneratedKeyframes,\n duration: t - sampleDelta,\n ease: \"linear\",\n };\n}\nconst unsupportedEasingFunctions = {\n anticipate,\n backInOut,\n circInOut,\n};\nfunction isUnsupportedEase(key) {\n return key in unsupportedEasingFunctions;\n}\nclass AcceleratedAnimation extends BaseAnimation {\n constructor(options) {\n super(options);\n const { name, motionValue, element, keyframes } = this.options;\n this.resolver = new DOMKeyframesResolver(keyframes, (resolvedKeyframes, finalKeyframe) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe), name, motionValue, element);\n this.resolver.scheduleResolve();\n }\n initPlayback(keyframes, finalKeyframe) {\n var _a;\n let { duration = 300, times, ease, type, motionValue, name, startTime, } = this.options;\n /**\n * If element has since been unmounted, return false to indicate\n * the animation failed to initialised.\n */\n if (!((_a = motionValue.owner) === null || _a === void 0 ? void 0 : _a.current)) {\n return false;\n }\n /**\n * If the user has provided an easing function name that isn't supported\n * by WAAPI (like \"anticipate\"), we need to provide the corressponding\n * function. This will later get converted to a linear() easing function.\n */\n if (typeof ease === \"string\" &&\n supportsLinearEasing() &&\n isUnsupportedEase(ease)) {\n ease = unsupportedEasingFunctions[ease];\n }\n /**\n * If this animation needs pre-generated keyframes then generate.\n */\n if (requiresPregeneratedKeyframes(this.options)) {\n const { onComplete, onUpdate, motionValue, element, ...options } = this.options;\n const pregeneratedAnimation = pregenerateKeyframes(keyframes, options);\n keyframes = pregeneratedAnimation.keyframes;\n // If this is a very short animation, ensure we have\n // at least two keyframes to animate between as older browsers\n // can't animate between a single keyframe.\n if (keyframes.length === 1) {\n keyframes[1] = keyframes[0];\n }\n duration = pregeneratedAnimation.duration;\n times = pregeneratedAnimation.times;\n ease = pregeneratedAnimation.ease;\n type = \"keyframes\";\n }\n const animation = startWaapiAnimation(motionValue.owner.current, name, keyframes, { ...this.options, duration, times, ease });\n // Override the browser calculated startTime with one synchronised to other JS\n // and WAAPI animations starting this event loop.\n animation.startTime = startTime !== null && startTime !== void 0 ? startTime : this.calcStartTime();\n if (this.pendingTimeline) {\n attachTimeline(animation, this.pendingTimeline);\n this.pendingTimeline = undefined;\n }\n else {\n /**\n * Prefer the `onfinish` prop as it's more widely supported than\n * the `finished` promise.\n *\n * Here, we synchronously set the provided MotionValue to the end\n * keyframe. If we didn't, when the WAAPI animation is finished it would\n * be removed from the element which would then revert to its old styles.\n */\n animation.onfinish = () => {\n const { onComplete } = this.options;\n motionValue.set(getFinalKeyframe(keyframes, this.options, finalKeyframe));\n onComplete && onComplete();\n this.cancel();\n this.resolveFinishedPromise();\n };\n }\n return {\n animation,\n duration,\n times,\n type,\n ease,\n keyframes: keyframes,\n };\n }\n get duration() {\n const { resolved } = this;\n if (!resolved)\n return 0;\n const { duration } = resolved;\n return millisecondsToSeconds(duration);\n }\n get time() {\n const { resolved } = this;\n if (!resolved)\n return 0;\n const { animation } = resolved;\n return millisecondsToSeconds(animation.currentTime || 0);\n }\n set time(newTime) {\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n animation.currentTime = secondsToMilliseconds(newTime);\n }\n get speed() {\n const { resolved } = this;\n if (!resolved)\n return 1;\n const { animation } = resolved;\n return animation.playbackRate;\n }\n set speed(newSpeed) {\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n animation.playbackRate = newSpeed;\n }\n get state() {\n const { resolved } = this;\n if (!resolved)\n return \"idle\";\n const { animation } = resolved;\n return animation.playState;\n }\n get startTime() {\n const { resolved } = this;\n if (!resolved)\n return null;\n const { animation } = resolved;\n // Coerce to number as TypeScript incorrectly types this\n // as CSSNumberish\n return animation.startTime;\n }\n /**\n * Replace the default DocumentTimeline with another AnimationTimeline.\n * Currently used for scroll animations.\n */\n attachTimeline(timeline) {\n if (!this._resolved) {\n this.pendingTimeline = timeline;\n }\n else {\n const { resolved } = this;\n if (!resolved)\n return noop;\n const { animation } = resolved;\n attachTimeline(animation, timeline);\n }\n return noop;\n }\n play() {\n if (this.isStopped)\n return;\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n if (animation.playState === \"finished\") {\n this.updateFinishedPromise();\n }\n animation.play();\n }\n pause() {\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n animation.pause();\n }\n stop() {\n this.resolver.cancel();\n this.isStopped = true;\n if (this.state === \"idle\")\n return;\n this.resolveFinishedPromise();\n this.updateFinishedPromise();\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation, keyframes, duration, type, ease, times } = resolved;\n if (animation.playState === \"idle\" ||\n animation.playState === \"finished\") {\n return;\n }\n /**\n * WAAPI doesn't natively have any interruption capabilities.\n *\n * Rather than read commited styles back out of the DOM, we can\n * create a renderless JS animation and sample it twice to calculate\n * its current value, \"previous\" value, and therefore allow\n * Motion to calculate velocity for any subsequent animation.\n */\n if (this.time) {\n const { motionValue, onUpdate, onComplete, element, ...options } = this.options;\n const sampleAnimation = new MainThreadAnimation({\n ...options,\n keyframes,\n duration,\n type,\n ease,\n times,\n isGenerator: true,\n });\n const sampleTime = secondsToMilliseconds(this.time);\n motionValue.setWithVelocity(sampleAnimation.sample(sampleTime - sampleDelta).value, sampleAnimation.sample(sampleTime).value, sampleDelta);\n }\n const { onStop } = this.options;\n onStop && onStop();\n this.cancel();\n }\n complete() {\n const { resolved } = this;\n if (!resolved)\n return;\n resolved.animation.finish();\n }\n cancel() {\n const { resolved } = this;\n if (!resolved)\n return;\n resolved.animation.cancel();\n }\n static supports(options) {\n const { motionValue, name, repeatDelay, repeatType, damping, type } = options;\n return (supportsWaapi() &&\n name &&\n acceleratedValues.has(name) &&\n motionValue &&\n motionValue.owner &&\n motionValue.owner.current instanceof HTMLElement &&\n /**\n * If we're outputting values to onUpdate then we can't use WAAPI as there's\n * no way to read the value from WAAPI every frame.\n */\n !motionValue.owner.getProps().onUpdate &&\n !repeatDelay &&\n repeatType !== \"mirror\" &&\n damping !== 0 &&\n type !== \"inertia\");\n }\n}\n\nexport { AcceleratedAnimation };\n","import { transformProps } from '../../render/html/utils/keys-transform.mjs';\n\nconst underDampedSpring = {\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restSpeed: 10,\n};\nconst criticallyDampedSpring = (target) => ({\n type: \"spring\",\n stiffness: 550,\n damping: target === 0 ? 2 * Math.sqrt(550) : 30,\n restSpeed: 10,\n});\nconst keyframesTransition = {\n type: \"keyframes\",\n duration: 0.8,\n};\n/**\n * Default easing curve is a slightly shallower version of\n * the default browser easing curve.\n */\nconst ease = {\n type: \"keyframes\",\n ease: [0.25, 0.1, 0.35, 1],\n duration: 0.3,\n};\nconst getDefaultTransition = (valueKey, { keyframes }) => {\n if (keyframes.length > 2) {\n return keyframesTransition;\n }\n else if (transformProps.has(valueKey)) {\n return valueKey.startsWith(\"scale\")\n ? criticallyDampedSpring(keyframes[1])\n : underDampedSpring;\n }\n return ease;\n};\n\nexport { getDefaultTransition };\n","import { getValueTransition, GroupPlaybackControls } from 'motion-dom';\nimport { secondsToMilliseconds } from 'motion-utils';\nimport { frame } from '../../frameloop/frame.mjs';\nimport { MotionGlobalConfig } from '../../utils/GlobalConfig.mjs';\nimport { instantAnimationState } from '../../utils/use-instant-transition-state.mjs';\nimport { AcceleratedAnimation } from '../animators/AcceleratedAnimation.mjs';\nimport { MainThreadAnimation } from '../animators/MainThreadAnimation.mjs';\nimport { getFinalKeyframe } from '../animators/waapi/utils/get-final-keyframe.mjs';\nimport { getDefaultTransition } from '../utils/default-transitions.mjs';\nimport { isTransitionDefined } from '../utils/is-transition-defined.mjs';\n\nconst animateMotionValue = (name, value, target, transition = {}, element, isHandoff) => (onComplete) => {\n const valueTransition = getValueTransition(transition, name) || {};\n /**\n * Most transition values are currently completely overwritten by value-specific\n * transitions. In the future it'd be nicer to blend these transitions. But for now\n * delay actually does inherit from the root transition if not value-specific.\n */\n const delay = valueTransition.delay || transition.delay || 0;\n /**\n * Elapsed isn't a public transition option but can be passed through from\n * optimized appear effects in milliseconds.\n */\n let { elapsed = 0 } = transition;\n elapsed = elapsed - secondsToMilliseconds(delay);\n let options = {\n keyframes: Array.isArray(target) ? target : [null, target],\n ease: \"easeOut\",\n velocity: value.getVelocity(),\n ...valueTransition,\n delay: -elapsed,\n onUpdate: (v) => {\n value.set(v);\n valueTransition.onUpdate && valueTransition.onUpdate(v);\n },\n onComplete: () => {\n onComplete();\n valueTransition.onComplete && valueTransition.onComplete();\n },\n name,\n motionValue: value,\n element: isHandoff ? undefined : element,\n };\n /**\n * If there's no transition defined for this value, we can generate\n * unqiue transition settings for this value.\n */\n if (!isTransitionDefined(valueTransition)) {\n options = {\n ...options,\n ...getDefaultTransition(name, options),\n };\n }\n /**\n * Both WAAPI and our internal animation functions use durations\n * as defined by milliseconds, while our external API defines them\n * as seconds.\n */\n if (options.duration) {\n options.duration = secondsToMilliseconds(options.duration);\n }\n if (options.repeatDelay) {\n options.repeatDelay = secondsToMilliseconds(options.repeatDelay);\n }\n if (options.from !== undefined) {\n options.keyframes[0] = options.from;\n }\n let shouldSkip = false;\n if (options.type === false ||\n (options.duration === 0 && !options.repeatDelay)) {\n options.duration = 0;\n if (options.delay === 0) {\n shouldSkip = true;\n }\n }\n if (instantAnimationState.current ||\n MotionGlobalConfig.skipAnimations) {\n shouldSkip = true;\n options.duration = 0;\n options.delay = 0;\n }\n /**\n * If we can or must skip creating the animation, and apply only\n * the final keyframe, do so. We also check once keyframes are resolved but\n * this early check prevents the need to create an animation at all.\n */\n if (shouldSkip && !isHandoff && value.get() !== undefined) {\n const finalKeyframe = getFinalKeyframe(options.keyframes, valueTransition);\n if (finalKeyframe !== undefined) {\n frame.update(() => {\n options.onUpdate(finalKeyframe);\n options.onComplete();\n });\n // We still want to return some animation controls here rather\n // than returning undefined\n return new GroupPlaybackControls([]);\n }\n }\n /**\n * Animate via WAAPI if possible. If this is a handoff animation, the optimised animation will be running via\n * WAAPI. Therefore, this animation must be JS to ensure it runs \"under\" the\n * optimised animation.\n */\n if (!isHandoff && AcceleratedAnimation.supports(options)) {\n return new AcceleratedAnimation(options);\n }\n else {\n return new MainThreadAnimation(options);\n }\n};\n\nexport { animateMotionValue };\n","/**\n * Decide whether a transition is defined on a given Transition.\n * This filters out orchestration options and returns true\n * if any options are left.\n */\nfunction isTransitionDefined({ when, delay: _delay, delayChildren, staggerChildren, staggerDirection, repeat, repeatType, repeatDelay, from, elapsed, ...transition }) {\n return !!Object.keys(transition).length;\n}\n\nexport { isTransitionDefined };\n","import { getValueTransition } from 'motion-dom';\nimport { positionalKeys } from '../../render/html/utils/keys-position.mjs';\nimport { setTarget } from '../../render/utils/setters.mjs';\nimport { addValueToWillChange } from '../../value/use-will-change/add-will-change.mjs';\nimport { getOptimisedAppearId } from '../optimized-appear/get-appear-id.mjs';\nimport { animateMotionValue } from './motion-value.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\n/**\n * Decide whether we should block this animation. Previously, we achieved this\n * just by checking whether the key was listed in protectedKeys, but this\n * posed problems if an animation was triggered by afterChildren and protectedKeys\n * had been set to true in the meantime.\n */\nfunction shouldBlockAnimation({ protectedKeys, needsAnimating }, key) {\n const shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\n needsAnimating[key] = false;\n return shouldBlock;\n}\nfunction animateTarget(visualElement, targetAndTransition, { delay = 0, transitionOverride, type } = {}) {\n var _a;\n let { transition = visualElement.getDefaultTransition(), transitionEnd, ...target } = targetAndTransition;\n if (transitionOverride)\n transition = transitionOverride;\n const animations = [];\n const animationTypeState = type &&\n visualElement.animationState &&\n visualElement.animationState.getState()[type];\n for (const key in target) {\n const value = visualElement.getValue(key, (_a = visualElement.latestValues[key]) !== null && _a !== void 0 ? _a : null);\n const valueTarget = target[key];\n if (valueTarget === undefined ||\n (animationTypeState &&\n shouldBlockAnimation(animationTypeState, key))) {\n continue;\n }\n const valueTransition = {\n delay,\n ...getValueTransition(transition || {}, key),\n };\n /**\n * If this is the first time a value is being animated, check\n * to see if we're handling off from an existing animation.\n */\n let isHandoff = false;\n if (window.MotionHandoffAnimation) {\n const appearId = getOptimisedAppearId(visualElement);\n if (appearId) {\n const startTime = window.MotionHandoffAnimation(appearId, key, frame);\n if (startTime !== null) {\n valueTransition.startTime = startTime;\n isHandoff = true;\n }\n }\n }\n addValueToWillChange(visualElement, key);\n value.start(animateMotionValue(key, value, valueTarget, visualElement.shouldReduceMotion && positionalKeys.has(key)\n ? { type: false }\n : valueTransition, visualElement, isHandoff));\n const animation = value.animation;\n if (animation) {\n animations.push(animation);\n }\n }\n if (transitionEnd) {\n Promise.all(animations).then(() => {\n frame.update(() => {\n transitionEnd && setTarget(visualElement, transitionEnd);\n });\n });\n }\n return animations;\n}\n\nexport { animateTarget };\n","import { resolveVariant } from '../../render/utils/resolve-dynamic-variants.mjs';\nimport { animateTarget } from './visual-element-target.mjs';\n\nfunction animateVariant(visualElement, variant, options = {}) {\n var _a;\n const resolved = resolveVariant(visualElement, variant, options.type === \"exit\"\n ? (_a = visualElement.presenceContext) === null || _a === void 0 ? void 0 : _a.custom\n : undefined);\n let { transition = visualElement.getDefaultTransition() || {} } = resolved || {};\n if (options.transitionOverride) {\n transition = options.transitionOverride;\n }\n /**\n * If we have a variant, create a callback that runs it as an animation.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getAnimation = resolved\n ? () => Promise.all(animateTarget(visualElement, resolved, options))\n : () => Promise.resolve();\n /**\n * If we have children, create a callback that runs all their animations.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getChildAnimations = visualElement.variantChildren && visualElement.variantChildren.size\n ? (forwardDelay = 0) => {\n const { delayChildren = 0, staggerChildren, staggerDirection, } = transition;\n return animateChildren(visualElement, variant, delayChildren + forwardDelay, staggerChildren, staggerDirection, options);\n }\n : () => Promise.resolve();\n /**\n * If the transition explicitly defines a \"when\" option, we need to resolve either\n * this animation or all children animations before playing the other.\n */\n const { when } = transition;\n if (when) {\n const [first, last] = when === \"beforeChildren\"\n ? [getAnimation, getChildAnimations]\n : [getChildAnimations, getAnimation];\n return first().then(() => last());\n }\n else {\n return Promise.all([getAnimation(), getChildAnimations(options.delay)]);\n }\n}\nfunction animateChildren(visualElement, variant, delayChildren = 0, staggerChildren = 0, staggerDirection = 1, options) {\n const animations = [];\n const maxStaggerDuration = (visualElement.variantChildren.size - 1) * staggerChildren;\n const generateStaggerDuration = staggerDirection === 1\n ? (i = 0) => i * staggerChildren\n : (i = 0) => maxStaggerDuration - i * staggerChildren;\n Array.from(visualElement.variantChildren)\n .sort(sortByTreeOrder)\n .forEach((child, i) => {\n child.notify(\"AnimationStart\", variant);\n animations.push(animateVariant(child, variant, {\n ...options,\n delay: delayChildren + generateStaggerDuration(i),\n }).then(() => child.notify(\"AnimationComplete\", variant)));\n });\n return Promise.all(animations);\n}\nfunction sortByTreeOrder(a, b) {\n return a.sortNodePosition(b);\n}\n\nexport { animateVariant, sortByTreeOrder };\n","import { isVariantLabel } from './is-variant-label.mjs';\nimport { variantProps } from './variant-props.mjs';\n\nconst numVariantProps = variantProps.length;\nfunction getVariantContext(visualElement) {\n if (!visualElement)\n return undefined;\n if (!visualElement.isControllingVariants) {\n const context = visualElement.parent\n ? getVariantContext(visualElement.parent) || {}\n : {};\n if (visualElement.props.initial !== undefined) {\n context.initial = visualElement.props.initial;\n }\n return context;\n }\n const context = {};\n for (let i = 0; i < numVariantProps; i++) {\n const name = variantProps[i];\n const prop = visualElement.props[name];\n if (isVariantLabel(prop) || prop === false) {\n context[name] = prop;\n }\n }\n return context;\n}\n\nexport { getVariantContext };\n","import { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isKeyframesTarget } from '../../animation/utils/is-keyframes-target.mjs';\nimport { shallowCompare } from '../../utils/shallow-compare.mjs';\nimport { isVariantLabel } from './is-variant-label.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\nimport { variantPriorityOrder } from './variant-props.mjs';\nimport { animateVisualElement } from '../../animation/interfaces/visual-element.mjs';\nimport { getVariantContext } from './get-variant-context.mjs';\n\nconst reversePriorityOrder = [...variantPriorityOrder].reverse();\nconst numAnimationTypes = variantPriorityOrder.length;\nfunction animateList(visualElement) {\n return (animations) => Promise.all(animations.map(({ animation, options }) => animateVisualElement(visualElement, animation, options)));\n}\nfunction createAnimationState(visualElement) {\n let animate = animateList(visualElement);\n let state = createState();\n let isInitialRender = true;\n /**\n * This function will be used to reduce the animation definitions for\n * each active animation type into an object of resolved values for it.\n */\n const buildResolvedTypeValues = (type) => (acc, definition) => {\n var _a;\n const resolved = resolveVariant(visualElement, definition, type === \"exit\"\n ? (_a = visualElement.presenceContext) === null || _a === void 0 ? void 0 : _a.custom\n : undefined);\n if (resolved) {\n const { transition, transitionEnd, ...target } = resolved;\n acc = { ...acc, ...target, ...transitionEnd };\n }\n return acc;\n };\n /**\n * This just allows us to inject mocked animation functions\n * @internal\n */\n function setAnimateFunction(makeAnimator) {\n animate = makeAnimator(visualElement);\n }\n /**\n * When we receive new props, we need to:\n * 1. Create a list of protected keys for each type. This is a directory of\n * value keys that are currently being \"handled\" by types of a higher priority\n * so that whenever an animation is played of a given type, these values are\n * protected from being animated.\n * 2. Determine if an animation type needs animating.\n * 3. Determine if any values have been removed from a type and figure out\n * what to animate those to.\n */\n function animateChanges(changedActiveType) {\n const { props } = visualElement;\n const context = getVariantContext(visualElement.parent) || {};\n /**\n * A list of animations that we'll build into as we iterate through the animation\n * types. This will get executed at the end of the function.\n */\n const animations = [];\n /**\n * Keep track of which values have been removed. Then, as we hit lower priority\n * animation types, we can check if they contain removed values and animate to that.\n */\n const removedKeys = new Set();\n /**\n * A dictionary of all encountered keys. This is an object to let us build into and\n * copy it without iteration. Each time we hit an animation type we set its protected\n * keys - the keys its not allowed to animate - to the latest version of this object.\n */\n let encounteredKeys = {};\n /**\n * If a variant has been removed at a given index, and this component is controlling\n * variant animations, we want to ensure lower-priority variants are forced to animate.\n */\n let removedVariantIndex = Infinity;\n /**\n * Iterate through all animation types in reverse priority order. For each, we want to\n * detect which values it's handling and whether or not they've changed (and therefore\n * need to be animated). If any values have been removed, we want to detect those in\n * lower priority props and flag for animation.\n */\n for (let i = 0; i < numAnimationTypes; i++) {\n const type = reversePriorityOrder[i];\n const typeState = state[type];\n const prop = props[type] !== undefined\n ? props[type]\n : context[type];\n const propIsVariant = isVariantLabel(prop);\n /**\n * If this type has *just* changed isActive status, set activeDelta\n * to that status. Otherwise set to null.\n */\n const activeDelta = type === changedActiveType ? typeState.isActive : null;\n if (activeDelta === false)\n removedVariantIndex = i;\n /**\n * If this prop is an inherited variant, rather than been set directly on the\n * component itself, we want to make sure we allow the parent to trigger animations.\n *\n * TODO: Can probably change this to a !isControllingVariants check\n */\n let isInherited = prop === context[type] &&\n prop !== props[type] &&\n propIsVariant;\n /**\n *\n */\n if (isInherited &&\n isInitialRender &&\n visualElement.manuallyAnimateOnMount) {\n isInherited = false;\n }\n /**\n * Set all encountered keys so far as the protected keys for this type. This will\n * be any key that has been animated or otherwise handled by active, higher-priortiy types.\n */\n typeState.protectedKeys = { ...encounteredKeys };\n // Check if we can skip analysing this prop early\n if (\n // If it isn't active and hasn't *just* been set as inactive\n (!typeState.isActive && activeDelta === null) ||\n // If we didn't and don't have any defined prop for this animation type\n (!prop && !typeState.prevProp) ||\n // Or if the prop doesn't define an animation\n isAnimationControls(prop) ||\n typeof prop === \"boolean\") {\n continue;\n }\n /**\n * As we go look through the values defined on this type, if we detect\n * a changed value or a value that was removed in a higher priority, we set\n * this to true and add this prop to the animation list.\n */\n const variantDidChange = checkVariantsDidChange(typeState.prevProp, prop);\n let shouldAnimateType = variantDidChange ||\n // If we're making this variant active, we want to always make it active\n (type === changedActiveType &&\n typeState.isActive &&\n !isInherited &&\n propIsVariant) ||\n // If we removed a higher-priority variant (i is in reverse order)\n (i > removedVariantIndex && propIsVariant);\n let handledRemovedValues = false;\n /**\n * As animations can be set as variant lists, variants or target objects, we\n * coerce everything to an array if it isn't one already\n */\n const definitionList = Array.isArray(prop) ? prop : [prop];\n /**\n * Build an object of all the resolved values. We'll use this in the subsequent\n * animateChanges calls to determine whether a value has changed.\n */\n let resolvedValues = definitionList.reduce(buildResolvedTypeValues(type), {});\n if (activeDelta === false)\n resolvedValues = {};\n /**\n * Now we need to loop through all the keys in the prev prop and this prop,\n * and decide:\n * 1. If the value has changed, and needs animating\n * 2. If it has been removed, and needs adding to the removedKeys set\n * 3. If it has been removed in a higher priority type and needs animating\n * 4. If it hasn't been removed in a higher priority but hasn't changed, and\n * needs adding to the type's protectedKeys list.\n */\n const { prevResolvedValues = {} } = typeState;\n const allKeys = {\n ...prevResolvedValues,\n ...resolvedValues,\n };\n const markToAnimate = (key) => {\n shouldAnimateType = true;\n if (removedKeys.has(key)) {\n handledRemovedValues = true;\n removedKeys.delete(key);\n }\n typeState.needsAnimating[key] = true;\n const motionValue = visualElement.getValue(key);\n if (motionValue)\n motionValue.liveStyle = false;\n };\n for (const key in allKeys) {\n const next = resolvedValues[key];\n const prev = prevResolvedValues[key];\n // If we've already handled this we can just skip ahead\n if (encounteredKeys.hasOwnProperty(key))\n continue;\n /**\n * If the value has changed, we probably want to animate it.\n */\n let valueHasChanged = false;\n if (isKeyframesTarget(next) && isKeyframesTarget(prev)) {\n valueHasChanged = !shallowCompare(next, prev);\n }\n else {\n valueHasChanged = next !== prev;\n }\n if (valueHasChanged) {\n if (next !== undefined && next !== null) {\n // If next is defined and doesn't equal prev, it needs animating\n markToAnimate(key);\n }\n else {\n // If it's undefined, it's been removed.\n removedKeys.add(key);\n }\n }\n else if (next !== undefined && removedKeys.has(key)) {\n /**\n * If next hasn't changed and it isn't undefined, we want to check if it's\n * been removed by a higher priority\n */\n markToAnimate(key);\n }\n else {\n /**\n * If it hasn't changed, we add it to the list of protected values\n * to ensure it doesn't get animated.\n */\n typeState.protectedKeys[key] = true;\n }\n }\n /**\n * Update the typeState so next time animateChanges is called we can compare the\n * latest prop and resolvedValues to these.\n */\n typeState.prevProp = prop;\n typeState.prevResolvedValues = resolvedValues;\n /**\n *\n */\n if (typeState.isActive) {\n encounteredKeys = { ...encounteredKeys, ...resolvedValues };\n }\n if (isInitialRender && visualElement.blockInitialAnimation) {\n shouldAnimateType = false;\n }\n /**\n * If this is an inherited prop we want to skip this animation\n * unless the inherited variants haven't changed on this render.\n */\n const willAnimateViaParent = isInherited && variantDidChange;\n const needsAnimating = !willAnimateViaParent || handledRemovedValues;\n if (shouldAnimateType && needsAnimating) {\n animations.push(...definitionList.map((animation) => ({\n animation: animation,\n options: { type },\n })));\n }\n }\n /**\n * If there are some removed value that haven't been dealt with,\n * we need to create a new animation that falls back either to the value\n * defined in the style prop, or the last read value.\n */\n if (removedKeys.size) {\n const fallbackAnimation = {};\n removedKeys.forEach((key) => {\n const fallbackTarget = visualElement.getBaseTarget(key);\n const motionValue = visualElement.getValue(key);\n if (motionValue)\n motionValue.liveStyle = true;\n // @ts-expect-error - @mattgperry to figure if we should do something here\n fallbackAnimation[key] = fallbackTarget !== null && fallbackTarget !== void 0 ? fallbackTarget : null;\n });\n animations.push({ animation: fallbackAnimation });\n }\n let shouldAnimate = Boolean(animations.length);\n if (isInitialRender &&\n (props.initial === false || props.initial === props.animate) &&\n !visualElement.manuallyAnimateOnMount) {\n shouldAnimate = false;\n }\n isInitialRender = false;\n return shouldAnimate ? animate(animations) : Promise.resolve();\n }\n /**\n * Change whether a certain animation type is active.\n */\n function setActive(type, isActive) {\n var _a;\n // If the active state hasn't changed, we can safely do nothing here\n if (state[type].isActive === isActive)\n return Promise.resolve();\n // Propagate active change to children\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach((child) => { var _a; return (_a = child.animationState) === null || _a === void 0 ? void 0 : _a.setActive(type, isActive); });\n state[type].isActive = isActive;\n const animations = animateChanges(type);\n for (const key in state) {\n state[key].protectedKeys = {};\n }\n return animations;\n }\n return {\n animateChanges,\n setActive,\n setAnimateFunction,\n getState: () => state,\n reset: () => {\n state = createState();\n isInitialRender = true;\n },\n };\n}\nfunction checkVariantsDidChange(prev, next) {\n if (typeof next === \"string\") {\n return next !== prev;\n }\n else if (Array.isArray(next)) {\n return !shallowCompare(next, prev);\n }\n return false;\n}\nfunction createTypeState(isActive = false) {\n return {\n isActive,\n protectedKeys: {},\n needsAnimating: {},\n prevResolvedValues: {},\n };\n}\nfunction createState() {\n return {\n animate: createTypeState(true),\n whileInView: createTypeState(),\n whileHover: createTypeState(),\n whileTap: createTypeState(),\n whileDrag: createTypeState(),\n whileFocus: createTypeState(),\n exit: createTypeState(),\n };\n}\n\nexport { checkVariantsDidChange, createAnimationState };\n","import { resolveVariant } from '../../render/utils/resolve-dynamic-variants.mjs';\nimport { animateTarget } from './visual-element-target.mjs';\nimport { animateVariant } from './visual-element-variant.mjs';\n\nfunction animateVisualElement(visualElement, definition, options = {}) {\n visualElement.notify(\"AnimationStart\", definition);\n let animation;\n if (Array.isArray(definition)) {\n const animations = definition.map((variant) => animateVariant(visualElement, variant, options));\n animation = Promise.all(animations);\n }\n else if (typeof definition === \"string\") {\n animation = animateVariant(visualElement, definition, options);\n }\n else {\n const resolvedDefinition = typeof definition === \"function\"\n ? resolveVariant(visualElement, definition, options.custom)\n : definition;\n animation = Promise.all(animateTarget(visualElement, resolvedDefinition, options));\n }\n return animation.then(() => {\n visualElement.notify(\"AnimationComplete\", definition);\n });\n}\n\nexport { animateVisualElement };\n","class Feature {\n constructor(node) {\n this.isMounted = false;\n this.node = node;\n }\n update() { }\n}\n\nexport { Feature };\n","import { Feature } from '../Feature.mjs';\n\nlet id = 0;\nclass ExitAnimationFeature extends Feature {\n constructor() {\n super(...arguments);\n this.id = id++;\n }\n update() {\n if (!this.node.presenceContext)\n return;\n const { isPresent, onExitComplete } = this.node.presenceContext;\n const { isPresent: prevIsPresent } = this.node.prevPresenceContext || {};\n if (!this.node.animationState || isPresent === prevIsPresent) {\n return;\n }\n const exitAnimation = this.node.animationState.setActive(\"exit\", !isPresent);\n if (onExitComplete && !isPresent) {\n exitAnimation.then(() => onExitComplete(this.id));\n }\n }\n mount() {\n const { register } = this.node.presenceContext || {};\n if (register) {\n this.unmount = register(this.id);\n }\n }\n unmount() { }\n}\n\nexport { ExitAnimationFeature };\n","import { AnimationFeature } from './animation/index.mjs';\nimport { ExitAnimationFeature } from './animation/exit.mjs';\n\nconst animations = {\n animation: {\n Feature: AnimationFeature,\n },\n exit: {\n Feature: ExitAnimationFeature,\n },\n};\n\nexport { animations };\n","import { isAnimationControls } from '../../../animation/utils/is-animation-controls.mjs';\nimport { createAnimationState } from '../../../render/utils/animation-state.mjs';\nimport { Feature } from '../Feature.mjs';\n\nclass AnimationFeature extends Feature {\n /**\n * We dynamically generate the AnimationState manager as it contains a reference\n * to the underlying animation library. We only want to load that if we load this,\n * so people can optionally code split it out using the `m` component.\n */\n constructor(node) {\n super(node);\n node.animationState || (node.animationState = createAnimationState(node));\n }\n updateAnimationControlsSubscription() {\n const { animate } = this.node.getProps();\n if (isAnimationControls(animate)) {\n this.unmountControls = animate.subscribe(this.node);\n }\n }\n /**\n * Subscribe any provided AnimationControls to the component's VisualElement\n */\n mount() {\n this.updateAnimationControlsSubscription();\n }\n update() {\n const { animate } = this.node.getProps();\n const { animate: prevAnimate } = this.node.prevProps || {};\n if (animate !== prevAnimate) {\n this.updateAnimationControlsSubscription();\n }\n }\n unmount() {\n var _a;\n this.node.animationState.reset();\n (_a = this.unmountControls) === null || _a === void 0 ? void 0 : _a.call(this);\n }\n}\n\nexport { AnimationFeature };\n","function addDomEvent(target, eventName, handler, options = { passive: true }) {\n target.addEventListener(eventName, handler, options);\n return () => target.removeEventListener(eventName, handler);\n}\n\nexport { addDomEvent };\n","import { isPrimaryPointer } from 'motion-dom';\n\nfunction extractEventInfo(event) {\n return {\n point: {\n x: event.pageX,\n y: event.pageY,\n },\n };\n}\nconst addPointerInfo = (handler) => {\n return (event) => isPrimaryPointer(event) && handler(event, extractEventInfo(event));\n};\n\nexport { addPointerInfo, extractEventInfo };\n","import { addDomEvent } from './add-dom-event.mjs';\nimport { addPointerInfo } from './event-info.mjs';\n\nfunction addPointerEvent(target, eventName, handler, options) {\n return addDomEvent(target, eventName, addPointerInfo(handler), options);\n}\n\nexport { addPointerEvent };\n","const distance = (a, b) => Math.abs(a - b);\nfunction distance2D(a, b) {\n // Multi-dimensional\n const xDelta = distance(a.x, b.x);\n const yDelta = distance(a.y, b.y);\n return Math.sqrt(xDelta ** 2 + yDelta ** 2);\n}\n\nexport { distance, distance2D };\n","import { isPrimaryPointer } from 'motion-dom';\nimport { secondsToMilliseconds, millisecondsToSeconds } from 'motion-utils';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { extractEventInfo } from '../../events/event-info.mjs';\nimport { distance2D } from '../../utils/distance.mjs';\nimport { pipe } from '../../utils/pipe.mjs';\nimport { frame, cancelFrame, frameData } from '../../frameloop/frame.mjs';\n\n/**\n * @internal\n */\nclass PanSession {\n constructor(event, handlers, { transformPagePoint, contextWindow, dragSnapToOrigin = false, } = {}) {\n /**\n * @internal\n */\n this.startEvent = null;\n /**\n * @internal\n */\n this.lastMoveEvent = null;\n /**\n * @internal\n */\n this.lastMoveEventInfo = null;\n /**\n * @internal\n */\n this.handlers = {};\n /**\n * @internal\n */\n this.contextWindow = window;\n this.updatePoint = () => {\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const info = getPanInfo(this.lastMoveEventInfo, this.history);\n const isPanStarted = this.startEvent !== null;\n // Only start panning if the offset is larger than 3 pixels. If we make it\n // any larger than this we'll want to reset the pointer history\n // on the first update to avoid visual snapping to the cursoe.\n const isDistancePastThreshold = distance2D(info.offset, { x: 0, y: 0 }) >= 3;\n if (!isPanStarted && !isDistancePastThreshold)\n return;\n const { point } = info;\n const { timestamp } = frameData;\n this.history.push({ ...point, timestamp });\n const { onStart, onMove } = this.handlers;\n if (!isPanStarted) {\n onStart && onStart(this.lastMoveEvent, info);\n this.startEvent = this.lastMoveEvent;\n }\n onMove && onMove(this.lastMoveEvent, info);\n };\n this.handlePointerMove = (event, info) => {\n this.lastMoveEvent = event;\n this.lastMoveEventInfo = transformPoint(info, this.transformPagePoint);\n // Throttle mouse move event to once per frame\n frame.update(this.updatePoint, true);\n };\n this.handlePointerUp = (event, info) => {\n this.end();\n const { onEnd, onSessionEnd, resumeAnimation } = this.handlers;\n if (this.dragSnapToOrigin)\n resumeAnimation && resumeAnimation();\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const panInfo = getPanInfo(event.type === \"pointercancel\"\n ? this.lastMoveEventInfo\n : transformPoint(info, this.transformPagePoint), this.history);\n if (this.startEvent && onEnd) {\n onEnd(event, panInfo);\n }\n onSessionEnd && onSessionEnd(event, panInfo);\n };\n // If we have more than one touch, don't start detecting this gesture\n if (!isPrimaryPointer(event))\n return;\n this.dragSnapToOrigin = dragSnapToOrigin;\n this.handlers = handlers;\n this.transformPagePoint = transformPagePoint;\n this.contextWindow = contextWindow || window;\n const info = extractEventInfo(event);\n const initialInfo = transformPoint(info, this.transformPagePoint);\n const { point } = initialInfo;\n const { timestamp } = frameData;\n this.history = [{ ...point, timestamp }];\n const { onSessionStart } = handlers;\n onSessionStart &&\n onSessionStart(event, getPanInfo(initialInfo, this.history));\n this.removeListeners = pipe(addPointerEvent(this.contextWindow, \"pointermove\", this.handlePointerMove), addPointerEvent(this.contextWindow, \"pointerup\", this.handlePointerUp), addPointerEvent(this.contextWindow, \"pointercancel\", this.handlePointerUp));\n }\n updateHandlers(handlers) {\n this.handlers = handlers;\n }\n end() {\n this.removeListeners && this.removeListeners();\n cancelFrame(this.updatePoint);\n }\n}\nfunction transformPoint(info, transformPagePoint) {\n return transformPagePoint ? { point: transformPagePoint(info.point) } : info;\n}\nfunction subtractPoint(a, b) {\n return { x: a.x - b.x, y: a.y - b.y };\n}\nfunction getPanInfo({ point }, history) {\n return {\n point,\n delta: subtractPoint(point, lastDevicePoint(history)),\n offset: subtractPoint(point, startDevicePoint(history)),\n velocity: getVelocity(history, 0.1),\n };\n}\nfunction startDevicePoint(history) {\n return history[0];\n}\nfunction lastDevicePoint(history) {\n return history[history.length - 1];\n}\nfunction getVelocity(history, timeDelta) {\n if (history.length < 2) {\n return { x: 0, y: 0 };\n }\n let i = history.length - 1;\n let timestampedPoint = null;\n const lastPoint = lastDevicePoint(history);\n while (i >= 0) {\n timestampedPoint = history[i];\n if (lastPoint.timestamp - timestampedPoint.timestamp >\n secondsToMilliseconds(timeDelta)) {\n break;\n }\n i--;\n }\n if (!timestampedPoint) {\n return { x: 0, y: 0 };\n }\n const time = millisecondsToSeconds(lastPoint.timestamp - timestampedPoint.timestamp);\n if (time === 0) {\n return { x: 0, y: 0 };\n }\n const currentVelocity = {\n x: (lastPoint.x - timestampedPoint.x) / time,\n y: (lastPoint.y - timestampedPoint.y) / time,\n };\n if (currentVelocity.x === Infinity) {\n currentVelocity.x = 0;\n }\n if (currentVelocity.y === Infinity) {\n currentVelocity.y = 0;\n }\n return currentVelocity;\n}\n\nexport { PanSession };\n","import { mixNumber } from '../../utils/mix/number.mjs';\n\nconst SCALE_PRECISION = 0.0001;\nconst SCALE_MIN = 1 - SCALE_PRECISION;\nconst SCALE_MAX = 1 + SCALE_PRECISION;\nconst TRANSLATE_PRECISION = 0.01;\nconst TRANSLATE_MIN = 0 - TRANSLATE_PRECISION;\nconst TRANSLATE_MAX = 0 + TRANSLATE_PRECISION;\nfunction calcLength(axis) {\n return axis.max - axis.min;\n}\nfunction isNear(value, target, maxDistance) {\n return Math.abs(value - target) <= maxDistance;\n}\nfunction calcAxisDelta(delta, source, target, origin = 0.5) {\n delta.origin = origin;\n delta.originPoint = mixNumber(source.min, source.max, delta.origin);\n delta.scale = calcLength(target) / calcLength(source);\n delta.translate =\n mixNumber(target.min, target.max, delta.origin) - delta.originPoint;\n if ((delta.scale >= SCALE_MIN && delta.scale <= SCALE_MAX) ||\n isNaN(delta.scale)) {\n delta.scale = 1.0;\n }\n if ((delta.translate >= TRANSLATE_MIN &&\n delta.translate <= TRANSLATE_MAX) ||\n isNaN(delta.translate)) {\n delta.translate = 0.0;\n }\n}\nfunction calcBoxDelta(delta, source, target, origin) {\n calcAxisDelta(delta.x, source.x, target.x, origin ? origin.originX : undefined);\n calcAxisDelta(delta.y, source.y, target.y, origin ? origin.originY : undefined);\n}\nfunction calcRelativeAxis(target, relative, parent) {\n target.min = parent.min + relative.min;\n target.max = target.min + calcLength(relative);\n}\nfunction calcRelativeBox(target, relative, parent) {\n calcRelativeAxis(target.x, relative.x, parent.x);\n calcRelativeAxis(target.y, relative.y, parent.y);\n}\nfunction calcRelativeAxisPosition(target, layout, parent) {\n target.min = layout.min - parent.min;\n target.max = target.min + calcLength(layout);\n}\nfunction calcRelativePosition(target, layout, parent) {\n calcRelativeAxisPosition(target.x, layout.x, parent.x);\n calcRelativeAxisPosition(target.y, layout.y, parent.y);\n}\n\nexport { calcAxisDelta, calcBoxDelta, calcLength, calcRelativeAxis, calcRelativeAxisPosition, calcRelativeBox, calcRelativePosition, isNear };\n","import { progress } from 'motion-utils';\nimport { calcLength } from '../../../projection/geometry/delta-calc.mjs';\nimport { clamp } from '../../../utils/clamp.mjs';\nimport { mixNumber } from '../../../utils/mix/number.mjs';\n\n/**\n * Apply constraints to a point. These constraints are both physical along an\n * axis, and an elastic factor that determines how much to constrain the point\n * by if it does lie outside the defined parameters.\n */\nfunction applyConstraints(point, { min, max }, elastic) {\n if (min !== undefined && point < min) {\n // If we have a min point defined, and this is outside of that, constrain\n point = elastic\n ? mixNumber(min, point, elastic.min)\n : Math.max(point, min);\n }\n else if (max !== undefined && point > max) {\n // If we have a max point defined, and this is outside of that, constrain\n point = elastic\n ? mixNumber(max, point, elastic.max)\n : Math.min(point, max);\n }\n return point;\n}\n/**\n * Calculate constraints in terms of the viewport when defined relatively to the\n * measured axis. This is measured from the nearest edge, so a max constraint of 200\n * on an axis with a max value of 300 would return a constraint of 500 - axis length\n */\nfunction calcRelativeAxisConstraints(axis, min, max) {\n return {\n min: min !== undefined ? axis.min + min : undefined,\n max: max !== undefined\n ? axis.max + max - (axis.max - axis.min)\n : undefined,\n };\n}\n/**\n * Calculate constraints in terms of the viewport when\n * defined relatively to the measured bounding box.\n */\nfunction calcRelativeConstraints(layoutBox, { top, left, bottom, right }) {\n return {\n x: calcRelativeAxisConstraints(layoutBox.x, left, right),\n y: calcRelativeAxisConstraints(layoutBox.y, top, bottom),\n };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative axis\n */\nfunction calcViewportAxisConstraints(layoutAxis, constraintsAxis) {\n let min = constraintsAxis.min - layoutAxis.min;\n let max = constraintsAxis.max - layoutAxis.max;\n // If the constraints axis is actually smaller than the layout axis then we can\n // flip the constraints\n if (constraintsAxis.max - constraintsAxis.min <\n layoutAxis.max - layoutAxis.min) {\n [min, max] = [max, min];\n }\n return { min, max };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative box\n */\nfunction calcViewportConstraints(layoutBox, constraintsBox) {\n return {\n x: calcViewportAxisConstraints(layoutBox.x, constraintsBox.x),\n y: calcViewportAxisConstraints(layoutBox.y, constraintsBox.y),\n };\n}\n/**\n * Calculate a transform origin relative to the source axis, between 0-1, that results\n * in an asthetically pleasing scale/transform needed to project from source to target.\n */\nfunction calcOrigin(source, target) {\n let origin = 0.5;\n const sourceLength = calcLength(source);\n const targetLength = calcLength(target);\n if (targetLength > sourceLength) {\n origin = progress(target.min, target.max - sourceLength, source.min);\n }\n else if (sourceLength > targetLength) {\n origin = progress(source.min, source.max - targetLength, target.min);\n }\n return clamp(0, 1, origin);\n}\n/**\n * Rebase the calculated viewport constraints relative to the layout.min point.\n */\nfunction rebaseAxisConstraints(layout, constraints) {\n const relativeConstraints = {};\n if (constraints.min !== undefined) {\n relativeConstraints.min = constraints.min - layout.min;\n }\n if (constraints.max !== undefined) {\n relativeConstraints.max = constraints.max - layout.min;\n }\n return relativeConstraints;\n}\nconst defaultElastic = 0.35;\n/**\n * Accepts a dragElastic prop and returns resolved elastic values for each axis.\n */\nfunction resolveDragElastic(dragElastic = defaultElastic) {\n if (dragElastic === false) {\n dragElastic = 0;\n }\n else if (dragElastic === true) {\n dragElastic = defaultElastic;\n }\n return {\n x: resolveAxisElastic(dragElastic, \"left\", \"right\"),\n y: resolveAxisElastic(dragElastic, \"top\", \"bottom\"),\n };\n}\nfunction resolveAxisElastic(dragElastic, minLabel, maxLabel) {\n return {\n min: resolvePointElastic(dragElastic, minLabel),\n max: resolvePointElastic(dragElastic, maxLabel),\n };\n}\nfunction resolvePointElastic(dragElastic, label) {\n return typeof dragElastic === \"number\"\n ? dragElastic\n : dragElastic[label] || 0;\n}\n\nexport { applyConstraints, calcOrigin, calcRelativeAxisConstraints, calcRelativeConstraints, calcViewportAxisConstraints, calcViewportConstraints, defaultElastic, rebaseAxisConstraints, resolveAxisElastic, resolveDragElastic, resolvePointElastic };\n","const createAxisDelta = () => ({\n translate: 0,\n scale: 1,\n origin: 0,\n originPoint: 0,\n});\nconst createDelta = () => ({\n x: createAxisDelta(),\n y: createAxisDelta(),\n});\nconst createAxis = () => ({ min: 0, max: 0 });\nconst createBox = () => ({\n x: createAxis(),\n y: createAxis(),\n});\n\nexport { createAxis, createAxisDelta, createBox, createDelta };\n","function eachAxis(callback) {\n return [callback(\"x\"), callback(\"y\")];\n}\n\nexport { eachAxis };\n","/**\n * Bounding boxes tend to be defined as top, left, right, bottom. For various operations\n * it's easier to consider each axis individually. This function returns a bounding box\n * as a map of single-axis min/max values.\n */\nfunction convertBoundingBoxToBox({ top, left, right, bottom, }) {\n return {\n x: { min: left, max: right },\n y: { min: top, max: bottom },\n };\n}\nfunction convertBoxToBoundingBox({ x, y }) {\n return { top: y.min, right: x.max, bottom: y.max, left: x.min };\n}\n/**\n * Applies a TransformPoint function to a bounding box. TransformPoint is usually a function\n * provided by Framer to allow measured points to be corrected for device scaling. This is used\n * when measuring DOM elements and DOM event points.\n */\nfunction transformBoxPoints(point, transformPoint) {\n if (!transformPoint)\n return point;\n const topLeft = transformPoint({ x: point.left, y: point.top });\n const bottomRight = transformPoint({ x: point.right, y: point.bottom });\n return {\n top: topLeft.y,\n left: topLeft.x,\n bottom: bottomRight.y,\n right: bottomRight.x,\n };\n}\n\nexport { convertBoundingBoxToBox, convertBoxToBoundingBox, transformBoxPoints };\n","function isIdentityScale(scale) {\n return scale === undefined || scale === 1;\n}\nfunction hasScale({ scale, scaleX, scaleY }) {\n return (!isIdentityScale(scale) ||\n !isIdentityScale(scaleX) ||\n !isIdentityScale(scaleY));\n}\nfunction hasTransform(values) {\n return (hasScale(values) ||\n has2DTranslate(values) ||\n values.z ||\n values.rotate ||\n values.rotateX ||\n values.rotateY ||\n values.skewX ||\n values.skewY);\n}\nfunction has2DTranslate(values) {\n return is2DTranslate(values.x) || is2DTranslate(values.y);\n}\nfunction is2DTranslate(value) {\n return value && value !== \"0%\";\n}\n\nexport { has2DTranslate, hasScale, hasTransform };\n","import { mixNumber } from '../../utils/mix/number.mjs';\nimport { hasTransform } from '../utils/has-transform.mjs';\n\n/**\n * Scales a point based on a factor and an originPoint\n */\nfunction scalePoint(point, scale, originPoint) {\n const distanceFromOrigin = point - originPoint;\n const scaled = scale * distanceFromOrigin;\n return originPoint + scaled;\n}\n/**\n * Applies a translate/scale delta to a point\n */\nfunction applyPointDelta(point, translate, scale, originPoint, boxScale) {\n if (boxScale !== undefined) {\n point = scalePoint(point, boxScale, originPoint);\n }\n return scalePoint(point, scale, originPoint) + translate;\n}\n/**\n * Applies a translate/scale delta to an axis\n */\nfunction applyAxisDelta(axis, translate = 0, scale = 1, originPoint, boxScale) {\n axis.min = applyPointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = applyPointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Applies a translate/scale delta to a box\n */\nfunction applyBoxDelta(box, { x, y }) {\n applyAxisDelta(box.x, x.translate, x.scale, x.originPoint);\n applyAxisDelta(box.y, y.translate, y.scale, y.originPoint);\n}\nconst TREE_SCALE_SNAP_MIN = 0.999999999999;\nconst TREE_SCALE_SNAP_MAX = 1.0000000000001;\n/**\n * Apply a tree of deltas to a box. We do this to calculate the effect of all the transforms\n * in a tree upon our box before then calculating how to project it into our desired viewport-relative box\n *\n * This is the final nested loop within updateLayoutDelta for future refactoring\n */\nfunction applyTreeDeltas(box, treeScale, treePath, isSharedTransition = false) {\n const treeLength = treePath.length;\n if (!treeLength)\n return;\n // Reset the treeScale\n treeScale.x = treeScale.y = 1;\n let node;\n let delta;\n for (let i = 0; i < treeLength; i++) {\n node = treePath[i];\n delta = node.projectionDelta;\n /**\n * TODO: Prefer to remove this, but currently we have motion components with\n * display: contents in Framer.\n */\n const { visualElement } = node.options;\n if (visualElement &&\n visualElement.props.style &&\n visualElement.props.style.display === \"contents\") {\n continue;\n }\n if (isSharedTransition &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(box, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (delta) {\n // Incoporate each ancestor's scale into a culmulative treeScale for this component\n treeScale.x *= delta.x.scale;\n treeScale.y *= delta.y.scale;\n // Apply each ancestor's calculated delta into this component's recorded layout box\n applyBoxDelta(box, delta);\n }\n if (isSharedTransition && hasTransform(node.latestValues)) {\n transformBox(box, node.latestValues);\n }\n }\n /**\n * Snap tree scale back to 1 if it's within a non-perceivable threshold.\n * This will help reduce useless scales getting rendered.\n */\n if (treeScale.x < TREE_SCALE_SNAP_MAX &&\n treeScale.x > TREE_SCALE_SNAP_MIN) {\n treeScale.x = 1.0;\n }\n if (treeScale.y < TREE_SCALE_SNAP_MAX &&\n treeScale.y > TREE_SCALE_SNAP_MIN) {\n treeScale.y = 1.0;\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, axisTranslate, axisScale, boxScale, axisOrigin = 0.5) {\n const originPoint = mixNumber(axis.min, axis.max, axisOrigin);\n // Apply the axis delta to the final axis\n applyAxisDelta(axis, axisTranslate, axisScale, originPoint, boxScale);\n}\n/**\n * Apply a transform to a box from the latest resolved motion values.\n */\nfunction transformBox(box, transform) {\n transformAxis(box.x, transform.x, transform.scaleX, transform.scale, transform.originX);\n transformAxis(box.y, transform.y, transform.scaleY, transform.scale, transform.originY);\n}\n\nexport { applyAxisDelta, applyBoxDelta, applyPointDelta, applyTreeDeltas, scalePoint, transformAxis, transformBox, translateAxis };\n","import { convertBoundingBoxToBox, transformBoxPoints } from '../geometry/conversion.mjs';\nimport { translateAxis } from '../geometry/delta-apply.mjs';\n\nfunction measureViewportBox(instance, transformPoint) {\n return convertBoundingBoxToBox(transformBoxPoints(instance.getBoundingClientRect(), transformPoint));\n}\nfunction measurePageBox(element, rootProjectionNode, transformPagePoint) {\n const viewportBox = measureViewportBox(element, transformPagePoint);\n const { scroll } = rootProjectionNode;\n if (scroll) {\n translateAxis(viewportBox.x, scroll.offset.x);\n translateAxis(viewportBox.y, scroll.offset.y);\n }\n return viewportBox;\n}\n\nexport { measurePageBox, measureViewportBox };\n","// Fixes https://github.com/motiondivision/motion/issues/2270\nconst getContextWindow = ({ current }) => {\n return current ? current.ownerDocument.defaultView : null;\n};\n\nexport { getContextWindow };\n","import { invariant } from 'motion-utils';\nimport { setDragLock } from 'motion-dom';\nimport { PanSession } from '../pan/PanSession.mjs';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { applyConstraints, calcRelativeConstraints, resolveDragElastic, rebaseAxisConstraints, calcViewportConstraints, calcOrigin, defaultElastic } from './utils/constraints.mjs';\nimport { createBox } from '../../projection/geometry/models.mjs';\nimport { eachAxis } from '../../projection/utils/each-axis.mjs';\nimport { measurePageBox } from '../../projection/utils/measure.mjs';\nimport { extractEventInfo } from '../../events/event-info.mjs';\nimport { convertBoxToBoundingBox, convertBoundingBoxToBox } from '../../projection/geometry/conversion.mjs';\nimport { addDomEvent } from '../../events/add-dom-event.mjs';\nimport { calcLength } from '../../projection/geometry/delta-calc.mjs';\nimport { mixNumber } from '../../utils/mix/number.mjs';\nimport { percent } from '../../value/types/numbers/units.mjs';\nimport { animateMotionValue } from '../../animation/interfaces/motion-value.mjs';\nimport { getContextWindow } from '../../utils/get-context-window.mjs';\nimport { addValueToWillChange } from '../../value/use-will-change/add-will-change.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst elementDragControls = new WeakMap();\n/**\n *\n */\n// let latestPointerEvent: PointerEvent\nclass VisualElementDragControls {\n constructor(visualElement) {\n this.openDragLock = null;\n this.isDragging = false;\n this.currentDirection = null;\n this.originPoint = { x: 0, y: 0 };\n /**\n * The permitted boundaries of travel, in pixels.\n */\n this.constraints = false;\n this.hasMutatedConstraints = false;\n /**\n * The per-axis resolved elastic values.\n */\n this.elastic = createBox();\n this.visualElement = visualElement;\n }\n start(originEvent, { snapToCursor = false } = {}) {\n /**\n * Don't start dragging if this component is exiting\n */\n const { presenceContext } = this.visualElement;\n if (presenceContext && presenceContext.isPresent === false)\n return;\n const onSessionStart = (event) => {\n const { dragSnapToOrigin } = this.getProps();\n // Stop or pause any animations on both axis values immediately. This allows the user to throw and catch\n // the component.\n dragSnapToOrigin ? this.pauseAnimation() : this.stopAnimation();\n if (snapToCursor) {\n this.snapToCursor(extractEventInfo(event).point);\n }\n };\n const onStart = (event, info) => {\n // Attempt to grab the global drag gesture lock - maybe make this part of PanSession\n const { drag, dragPropagation, onDragStart } = this.getProps();\n if (drag && !dragPropagation) {\n if (this.openDragLock)\n this.openDragLock();\n this.openDragLock = setDragLock(drag);\n // If we don 't have the lock, don't start dragging\n if (!this.openDragLock)\n return;\n }\n this.isDragging = true;\n this.currentDirection = null;\n this.resolveConstraints();\n if (this.visualElement.projection) {\n this.visualElement.projection.isAnimationBlocked = true;\n this.visualElement.projection.target = undefined;\n }\n /**\n * Record gesture origin\n */\n eachAxis((axis) => {\n let current = this.getAxisMotionValue(axis).get() || 0;\n /**\n * If the MotionValue is a percentage value convert to px\n */\n if (percent.test(current)) {\n const { projection } = this.visualElement;\n if (projection && projection.layout) {\n const measuredAxis = projection.layout.layoutBox[axis];\n if (measuredAxis) {\n const length = calcLength(measuredAxis);\n current = length * (parseFloat(current) / 100);\n }\n }\n }\n this.originPoint[axis] = current;\n });\n // Fire onDragStart event\n if (onDragStart) {\n frame.postRender(() => onDragStart(event, info));\n }\n addValueToWillChange(this.visualElement, \"transform\");\n const { animationState } = this.visualElement;\n animationState && animationState.setActive(\"whileDrag\", true);\n };\n const onMove = (event, info) => {\n // latestPointerEvent = event\n const { dragPropagation, dragDirectionLock, onDirectionLock, onDrag, } = this.getProps();\n // If we didn't successfully receive the gesture lock, early return.\n if (!dragPropagation && !this.openDragLock)\n return;\n const { offset } = info;\n // Attempt to detect drag direction if directionLock is true\n if (dragDirectionLock && this.currentDirection === null) {\n this.currentDirection = getCurrentDirection(offset);\n // If we've successfully set a direction, notify listener\n if (this.currentDirection !== null) {\n onDirectionLock && onDirectionLock(this.currentDirection);\n }\n return;\n }\n // Update each point with the latest position\n this.updateAxis(\"x\", info.point, offset);\n this.updateAxis(\"y\", info.point, offset);\n /**\n * Ideally we would leave the renderer to fire naturally at the end of\n * this frame but if the element is about to change layout as the result\n * of a re-render we want to ensure the browser can read the latest\n * bounding box to ensure the pointer and element don't fall out of sync.\n */\n this.visualElement.render();\n /**\n * This must fire after the render call as it might trigger a state\n * change which itself might trigger a layout update.\n */\n onDrag && onDrag(event, info);\n };\n const onSessionEnd = (event, info) => this.stop(event, info);\n const resumeAnimation = () => eachAxis((axis) => {\n var _a;\n return this.getAnimationState(axis) === \"paused\" &&\n ((_a = this.getAxisMotionValue(axis).animation) === null || _a === void 0 ? void 0 : _a.play());\n });\n const { dragSnapToOrigin } = this.getProps();\n this.panSession = new PanSession(originEvent, {\n onSessionStart,\n onStart,\n onMove,\n onSessionEnd,\n resumeAnimation,\n }, {\n transformPagePoint: this.visualElement.getTransformPagePoint(),\n dragSnapToOrigin,\n contextWindow: getContextWindow(this.visualElement),\n });\n }\n stop(event, info) {\n const isDragging = this.isDragging;\n this.cancel();\n if (!isDragging)\n return;\n const { velocity } = info;\n this.startAnimation(velocity);\n const { onDragEnd } = this.getProps();\n if (onDragEnd) {\n frame.postRender(() => onDragEnd(event, info));\n }\n }\n cancel() {\n this.isDragging = false;\n const { projection, animationState } = this.visualElement;\n if (projection) {\n projection.isAnimationBlocked = false;\n }\n this.panSession && this.panSession.end();\n this.panSession = undefined;\n const { dragPropagation } = this.getProps();\n if (!dragPropagation && this.openDragLock) {\n this.openDragLock();\n this.openDragLock = null;\n }\n animationState && animationState.setActive(\"whileDrag\", false);\n }\n updateAxis(axis, _point, offset) {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!offset || !shouldDrag(axis, drag, this.currentDirection))\n return;\n const axisValue = this.getAxisMotionValue(axis);\n let next = this.originPoint[axis] + offset[axis];\n // Apply constraints\n if (this.constraints && this.constraints[axis]) {\n next = applyConstraints(next, this.constraints[axis], this.elastic[axis]);\n }\n axisValue.set(next);\n }\n resolveConstraints() {\n var _a;\n const { dragConstraints, dragElastic } = this.getProps();\n const layout = this.visualElement.projection &&\n !this.visualElement.projection.layout\n ? this.visualElement.projection.measure(false)\n : (_a = this.visualElement.projection) === null || _a === void 0 ? void 0 : _a.layout;\n const prevConstraints = this.constraints;\n if (dragConstraints && isRefObject(dragConstraints)) {\n if (!this.constraints) {\n this.constraints = this.resolveRefConstraints();\n }\n }\n else {\n if (dragConstraints && layout) {\n this.constraints = calcRelativeConstraints(layout.layoutBox, dragConstraints);\n }\n else {\n this.constraints = false;\n }\n }\n this.elastic = resolveDragElastic(dragElastic);\n /**\n * If we're outputting to external MotionValues, we want to rebase the measured constraints\n * from viewport-relative to component-relative.\n */\n if (prevConstraints !== this.constraints &&\n layout &&\n this.constraints &&\n !this.hasMutatedConstraints) {\n eachAxis((axis) => {\n if (this.constraints !== false &&\n this.getAxisMotionValue(axis)) {\n this.constraints[axis] = rebaseAxisConstraints(layout.layoutBox[axis], this.constraints[axis]);\n }\n });\n }\n }\n resolveRefConstraints() {\n const { dragConstraints: constraints, onMeasureDragConstraints } = this.getProps();\n if (!constraints || !isRefObject(constraints))\n return false;\n const constraintsElement = constraints.current;\n invariant(constraintsElement !== null, \"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.\");\n const { projection } = this.visualElement;\n // TODO\n if (!projection || !projection.layout)\n return false;\n const constraintsBox = measurePageBox(constraintsElement, projection.root, this.visualElement.getTransformPagePoint());\n let measuredConstraints = calcViewportConstraints(projection.layout.layoutBox, constraintsBox);\n /**\n * If there's an onMeasureDragConstraints listener we call it and\n * if different constraints are returned, set constraints to that\n */\n if (onMeasureDragConstraints) {\n const userConstraints = onMeasureDragConstraints(convertBoxToBoundingBox(measuredConstraints));\n this.hasMutatedConstraints = !!userConstraints;\n if (userConstraints) {\n measuredConstraints = convertBoundingBoxToBox(userConstraints);\n }\n }\n return measuredConstraints;\n }\n startAnimation(velocity) {\n const { drag, dragMomentum, dragElastic, dragTransition, dragSnapToOrigin, onDragTransitionEnd, } = this.getProps();\n const constraints = this.constraints || {};\n const momentumAnimations = eachAxis((axis) => {\n if (!shouldDrag(axis, drag, this.currentDirection)) {\n return;\n }\n let transition = (constraints && constraints[axis]) || {};\n if (dragSnapToOrigin)\n transition = { min: 0, max: 0 };\n /**\n * Overdamp the boundary spring if `dragElastic` is disabled. There's still a frame\n * of spring animations so we should look into adding a disable spring option to `inertia`.\n * We could do something here where we affect the `bounceStiffness` and `bounceDamping`\n * using the value of `dragElastic`.\n */\n const bounceStiffness = dragElastic ? 200 : 1000000;\n const bounceDamping = dragElastic ? 40 : 10000000;\n const inertia = {\n type: \"inertia\",\n velocity: dragMomentum ? velocity[axis] : 0,\n bounceStiffness,\n bounceDamping,\n timeConstant: 750,\n restDelta: 1,\n restSpeed: 10,\n ...dragTransition,\n ...transition,\n };\n // If we're not animating on an externally-provided `MotionValue` we can use the\n // component's animation controls which will handle interactions with whileHover (etc),\n // otherwise we just have to animate the `MotionValue` itself.\n return this.startAxisValueAnimation(axis, inertia);\n });\n // Run all animations and then resolve the new drag constraints.\n return Promise.all(momentumAnimations).then(onDragTransitionEnd);\n }\n startAxisValueAnimation(axis, transition) {\n const axisValue = this.getAxisMotionValue(axis);\n addValueToWillChange(this.visualElement, axis);\n return axisValue.start(animateMotionValue(axis, axisValue, 0, transition, this.visualElement, false));\n }\n stopAnimation() {\n eachAxis((axis) => this.getAxisMotionValue(axis).stop());\n }\n pauseAnimation() {\n eachAxis((axis) => { var _a; return (_a = this.getAxisMotionValue(axis).animation) === null || _a === void 0 ? void 0 : _a.pause(); });\n }\n getAnimationState(axis) {\n var _a;\n return (_a = this.getAxisMotionValue(axis).animation) === null || _a === void 0 ? void 0 : _a.state;\n }\n /**\n * Drag works differently depending on which props are provided.\n *\n * - If _dragX and _dragY are provided, we output the gesture delta directly to those motion values.\n * - Otherwise, we apply the delta to the x/y motion values.\n */\n getAxisMotionValue(axis) {\n const dragKey = `_drag${axis.toUpperCase()}`;\n const props = this.visualElement.getProps();\n const externalMotionValue = props[dragKey];\n return externalMotionValue\n ? externalMotionValue\n : this.visualElement.getValue(axis, (props.initial\n ? props.initial[axis]\n : undefined) || 0);\n }\n snapToCursor(point) {\n eachAxis((axis) => {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!shouldDrag(axis, drag, this.currentDirection))\n return;\n const { projection } = this.visualElement;\n const axisValue = this.getAxisMotionValue(axis);\n if (projection && projection.layout) {\n const { min, max } = projection.layout.layoutBox[axis];\n axisValue.set(point[axis] - mixNumber(min, max, 0.5));\n }\n });\n }\n /**\n * When the viewport resizes we want to check if the measured constraints\n * have changed and, if so, reposition the element within those new constraints\n * relative to where it was before the resize.\n */\n scalePositionWithinConstraints() {\n if (!this.visualElement.current)\n return;\n const { drag, dragConstraints } = this.getProps();\n const { projection } = this.visualElement;\n if (!isRefObject(dragConstraints) || !projection || !this.constraints)\n return;\n /**\n * Stop current animations as there can be visual glitching if we try to do\n * this mid-animation\n */\n this.stopAnimation();\n /**\n * Record the relative position of the dragged element relative to the\n * constraints box and save as a progress value.\n */\n const boxProgress = { x: 0, y: 0 };\n eachAxis((axis) => {\n const axisValue = this.getAxisMotionValue(axis);\n if (axisValue && this.constraints !== false) {\n const latest = axisValue.get();\n boxProgress[axis] = calcOrigin({ min: latest, max: latest }, this.constraints[axis]);\n }\n });\n /**\n * Update the layout of this element and resolve the latest drag constraints\n */\n const { transformTemplate } = this.visualElement.getProps();\n this.visualElement.current.style.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n this.resolveConstraints();\n /**\n * For each axis, calculate the current progress of the layout axis\n * within the new constraints.\n */\n eachAxis((axis) => {\n if (!shouldDrag(axis, drag, null))\n return;\n /**\n * Calculate a new transform based on the previous box progress\n */\n const axisValue = this.getAxisMotionValue(axis);\n const { min, max } = this.constraints[axis];\n axisValue.set(mixNumber(min, max, boxProgress[axis]));\n });\n }\n addListeners() {\n if (!this.visualElement.current)\n return;\n elementDragControls.set(this.visualElement, this);\n const element = this.visualElement.current;\n /**\n * Attach a pointerdown event listener on this DOM element to initiate drag tracking.\n */\n const stopPointerListener = addPointerEvent(element, \"pointerdown\", (event) => {\n const { drag, dragListener = true } = this.getProps();\n drag && dragListener && this.start(event);\n });\n const measureDragConstraints = () => {\n const { dragConstraints } = this.getProps();\n if (isRefObject(dragConstraints) && dragConstraints.current) {\n this.constraints = this.resolveRefConstraints();\n }\n };\n const { projection } = this.visualElement;\n const stopMeasureLayoutListener = projection.addEventListener(\"measure\", measureDragConstraints);\n if (projection && !projection.layout) {\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n }\n frame.read(measureDragConstraints);\n /**\n * Attach a window resize listener to scale the draggable target within its defined\n * constraints as the window resizes.\n */\n const stopResizeListener = addDomEvent(window, \"resize\", () => this.scalePositionWithinConstraints());\n /**\n * If the element's layout changes, calculate the delta and apply that to\n * the drag gesture's origin point.\n */\n const stopLayoutUpdateListener = projection.addEventListener(\"didUpdate\", (({ delta, hasLayoutChanged }) => {\n if (this.isDragging && hasLayoutChanged) {\n eachAxis((axis) => {\n const motionValue = this.getAxisMotionValue(axis);\n if (!motionValue)\n return;\n this.originPoint[axis] += delta[axis].translate;\n motionValue.set(motionValue.get() + delta[axis].translate);\n });\n this.visualElement.render();\n }\n }));\n return () => {\n stopResizeListener();\n stopPointerListener();\n stopMeasureLayoutListener();\n stopLayoutUpdateListener && stopLayoutUpdateListener();\n };\n }\n getProps() {\n const props = this.visualElement.getProps();\n const { drag = false, dragDirectionLock = false, dragPropagation = false, dragConstraints = false, dragElastic = defaultElastic, dragMomentum = true, } = props;\n return {\n ...props,\n drag,\n dragDirectionLock,\n dragPropagation,\n dragConstraints,\n dragElastic,\n dragMomentum,\n };\n }\n}\nfunction shouldDrag(direction, drag, currentDirection) {\n return ((drag === true || drag === direction) &&\n (currentDirection === null || currentDirection === direction));\n}\n/**\n * Based on an x/y offset determine the current drag direction. If both axis' offsets are lower\n * than the provided threshold, return `null`.\n *\n * @param offset - The x/y offset from origin.\n * @param lockThreshold - (Optional) - the minimum absolute offset before we can determine a drag direction.\n */\nfunction getCurrentDirection(offset, lockThreshold = 10) {\n let direction = null;\n if (Math.abs(offset.y) > lockThreshold) {\n direction = \"y\";\n }\n else if (Math.abs(offset.x) > lockThreshold) {\n direction = \"x\";\n }\n return direction;\n}\n\nexport { VisualElementDragControls, elementDragControls };\n","import { isDragging } from './is-active.mjs';\n\nfunction setDragLock(axis) {\n if (axis === \"x\" || axis === \"y\") {\n if (isDragging[axis]) {\n return null;\n }\n else {\n isDragging[axis] = true;\n return () => {\n isDragging[axis] = false;\n };\n }\n }\n else {\n if (isDragging.x || isDragging.y) {\n return null;\n }\n else {\n isDragging.x = isDragging.y = true;\n return () => {\n isDragging.x = isDragging.y = false;\n };\n }\n }\n}\n\nexport { setDragLock };\n","import { PanSession } from './PanSession.mjs';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { Feature } from '../../motion/features/Feature.mjs';\nimport { noop } from 'motion-utils';\nimport { getContextWindow } from '../../utils/get-context-window.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst asyncHandler = (handler) => (event, info) => {\n if (handler) {\n frame.postRender(() => handler(event, info));\n }\n};\nclass PanGesture extends Feature {\n constructor() {\n super(...arguments);\n this.removePointerDownListener = noop;\n }\n onPointerDown(pointerDownEvent) {\n this.session = new PanSession(pointerDownEvent, this.createPanHandlers(), {\n transformPagePoint: this.node.getTransformPagePoint(),\n contextWindow: getContextWindow(this.node),\n });\n }\n createPanHandlers() {\n const { onPanSessionStart, onPanStart, onPan, onPanEnd } = this.node.getProps();\n return {\n onSessionStart: asyncHandler(onPanSessionStart),\n onStart: asyncHandler(onPanStart),\n onMove: onPan,\n onEnd: (event, info) => {\n delete this.session;\n if (onPanEnd) {\n frame.postRender(() => onPanEnd(event, info));\n }\n },\n };\n }\n mount() {\n this.removePointerDownListener = addPointerEvent(this.node.current, \"pointerdown\", (event) => this.onPointerDown(event));\n }\n update() {\n this.session && this.session.updateHandlers(this.createPanHandlers());\n }\n unmount() {\n this.removePointerDownListener();\n this.session && this.session.end();\n }\n}\n\nexport { PanGesture };\n","/**\n * This should only ever be modified on the client otherwise it'll\n * persist through server requests. If we need instanced states we\n * could lazy-init via root.\n */\nconst globalProjectionState = {\n /**\n * Global flag as to whether the tree has animated since the last time\n * we resized the window\n */\n hasAnimatedSinceResize: true,\n /**\n * We set this to true once, on the first update. Any nodes added to the tree beyond that\n * update will be given a `data-projection-id` attribute.\n */\n hasEverUpdated: false,\n};\n\nexport { globalProjectionState };\n","import { px } from '../../value/types/numbers/units.mjs';\n\nfunction pixelsToPercent(pixels, axis) {\n if (axis.max === axis.min)\n return 0;\n return (pixels / (axis.max - axis.min)) * 100;\n}\n/**\n * We always correct borderRadius as a percentage rather than pixels to reduce paints.\n * For example, if you are projecting a box that is 100px wide with a 10px borderRadius\n * into a box that is 200px wide with a 20px borderRadius, that is actually a 10%\n * borderRadius in both states. If we animate between the two in pixels that will trigger\n * a paint each time. If we animate between the two in percentage we'll avoid a paint.\n */\nconst correctBorderRadius = {\n correct: (latest, node) => {\n if (!node.target)\n return latest;\n /**\n * If latest is a string, if it's a percentage we can return immediately as it's\n * going to be stretched appropriately. Otherwise, if it's a pixel, convert it to a number.\n */\n if (typeof latest === \"string\") {\n if (px.test(latest)) {\n latest = parseFloat(latest);\n }\n else {\n return latest;\n }\n }\n /**\n * If latest is a number, it's a pixel value. We use the current viewportBox to calculate that\n * pixel value as a percentage of each axis\n */\n const x = pixelsToPercent(latest, node.target.x);\n const y = pixelsToPercent(latest, node.target.y);\n return `${x}% ${y}%`;\n },\n};\n\nexport { correctBorderRadius, pixelsToPercent };\n","import { mixNumber } from '../../utils/mix/number.mjs';\nimport { complex } from '../../value/types/complex/index.mjs';\n\nconst correctBoxShadow = {\n correct: (latest, { treeScale, projectionDelta }) => {\n const original = latest;\n const shadow = complex.parse(latest);\n // TODO: Doesn't support multiple shadows\n if (shadow.length > 5)\n return original;\n const template = complex.createTransformer(latest);\n const offset = typeof shadow[0] !== \"number\" ? 1 : 0;\n // Calculate the overall context scale\n const xScale = projectionDelta.x.scale * treeScale.x;\n const yScale = projectionDelta.y.scale * treeScale.y;\n shadow[0 + offset] /= xScale;\n shadow[1 + offset] /= yScale;\n /**\n * Ideally we'd correct x and y scales individually, but because blur and\n * spread apply to both we have to take a scale average and apply that instead.\n * We could potentially improve the outcome of this by incorporating the ratio between\n * the two scales.\n */\n const averageScale = mixNumber(xScale, yScale, 0.5);\n // Blur\n if (typeof shadow[2 + offset] === \"number\")\n shadow[2 + offset] /= averageScale;\n // Spread\n if (typeof shadow[3 + offset] === \"number\")\n shadow[3 + offset] /= averageScale;\n return template(shadow);\n },\n};\n\nexport { correctBoxShadow };\n","\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport { useContext, Component } from 'react';\nimport { usePresence } from '../../../components/AnimatePresence/use-presence.mjs';\nimport { LayoutGroupContext } from '../../../context/LayoutGroupContext.mjs';\nimport { SwitchLayoutGroupContext } from '../../../context/SwitchLayoutGroupContext.mjs';\nimport { globalProjectionState } from '../../../projection/node/state.mjs';\nimport { correctBorderRadius } from '../../../projection/styles/scale-border-radius.mjs';\nimport { correctBoxShadow } from '../../../projection/styles/scale-box-shadow.mjs';\nimport { addScaleCorrector } from '../../../projection/styles/scale-correction.mjs';\nimport { microtask } from '../../../frameloop/microtask.mjs';\nimport { frame } from '../../../frameloop/frame.mjs';\n\nclass MeasureLayoutWithContext extends Component {\n /**\n * This only mounts projection nodes for components that\n * need measuring, we might want to do it for all components\n * in order to incorporate transforms\n */\n componentDidMount() {\n const { visualElement, layoutGroup, switchLayoutGroup, layoutId } = this.props;\n const { projection } = visualElement;\n addScaleCorrector(defaultScaleCorrectors);\n if (projection) {\n if (layoutGroup.group)\n layoutGroup.group.add(projection);\n if (switchLayoutGroup && switchLayoutGroup.register && layoutId) {\n switchLayoutGroup.register(projection);\n }\n projection.root.didUpdate();\n projection.addEventListener(\"animationComplete\", () => {\n this.safeToRemove();\n });\n projection.setOptions({\n ...projection.options,\n onExitComplete: () => this.safeToRemove(),\n });\n }\n globalProjectionState.hasEverUpdated = true;\n }\n getSnapshotBeforeUpdate(prevProps) {\n const { layoutDependency, visualElement, drag, isPresent } = this.props;\n const projection = visualElement.projection;\n if (!projection)\n return null;\n /**\n * TODO: We use this data in relegate to determine whether to\n * promote a previous element. There's no guarantee its presence data\n * will have updated by this point - if a bug like this arises it will\n * have to be that we markForRelegation and then find a new lead some other way,\n * perhaps in didUpdate\n */\n projection.isPresent = isPresent;\n if (drag ||\n prevProps.layoutDependency !== layoutDependency ||\n layoutDependency === undefined) {\n projection.willUpdate();\n }\n else {\n this.safeToRemove();\n }\n if (prevProps.isPresent !== isPresent) {\n if (isPresent) {\n projection.promote();\n }\n else if (!projection.relegate()) {\n /**\n * If there's another stack member taking over from this one,\n * it's in charge of the exit animation and therefore should\n * be in charge of the safe to remove. Otherwise we call it here.\n */\n frame.postRender(() => {\n const stack = projection.getStack();\n if (!stack || !stack.members.length) {\n this.safeToRemove();\n }\n });\n }\n }\n return null;\n }\n componentDidUpdate() {\n const { projection } = this.props.visualElement;\n if (projection) {\n projection.root.didUpdate();\n microtask.postRender(() => {\n if (!projection.currentAnimation && projection.isLead()) {\n this.safeToRemove();\n }\n });\n }\n }\n componentWillUnmount() {\n const { visualElement, layoutGroup, switchLayoutGroup: promoteContext, } = this.props;\n const { projection } = visualElement;\n if (projection) {\n projection.scheduleCheckAfterUnmount();\n if (layoutGroup && layoutGroup.group)\n layoutGroup.group.remove(projection);\n if (promoteContext && promoteContext.deregister)\n promoteContext.deregister(projection);\n }\n }\n safeToRemove() {\n const { safeToRemove } = this.props;\n safeToRemove && safeToRemove();\n }\n render() {\n return null;\n }\n}\nfunction MeasureLayout(props) {\n const [isPresent, safeToRemove] = usePresence();\n const layoutGroup = useContext(LayoutGroupContext);\n return (jsx(MeasureLayoutWithContext, { ...props, layoutGroup: layoutGroup, switchLayoutGroup: useContext(SwitchLayoutGroupContext), isPresent: isPresent, safeToRemove: safeToRemove }));\n}\nconst defaultScaleCorrectors = {\n borderRadius: {\n ...correctBorderRadius,\n applyTo: [\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n ],\n },\n borderTopLeftRadius: correctBorderRadius,\n borderTopRightRadius: correctBorderRadius,\n borderBottomLeftRadius: correctBorderRadius,\n borderBottomRightRadius: correctBorderRadius,\n boxShadow: correctBoxShadow,\n};\n\nexport { MeasureLayout };\n","const compareByDepth = (a, b) => a.depth - b.depth;\n\nexport { compareByDepth };\n","import { addUniqueItem, removeItem } from '../../utils/array.mjs';\nimport { compareByDepth } from './compare-by-depth.mjs';\n\nclass FlatTree {\n constructor() {\n this.children = [];\n this.isDirty = false;\n }\n add(child) {\n addUniqueItem(this.children, child);\n this.isDirty = true;\n }\n remove(child) {\n removeItem(this.children, child);\n this.isDirty = true;\n }\n forEach(callback) {\n this.isDirty && this.children.sort(compareByDepth);\n this.isDirty = false;\n this.children.forEach(callback);\n }\n}\n\nexport { FlatTree };\n","import { progress, noop } from 'motion-utils';\nimport { circOut } from '../../easing/circ.mjs';\nimport { mixNumber } from '../../utils/mix/number.mjs';\nimport { percent, px } from '../../value/types/numbers/units.mjs';\n\nconst borders = [\"TopLeft\", \"TopRight\", \"BottomLeft\", \"BottomRight\"];\nconst numBorders = borders.length;\nconst asNumber = (value) => typeof value === \"string\" ? parseFloat(value) : value;\nconst isPx = (value) => typeof value === \"number\" || px.test(value);\nfunction mixValues(target, follow, lead, progress, shouldCrossfadeOpacity, isOnlyMember) {\n if (shouldCrossfadeOpacity) {\n target.opacity = mixNumber(0, \n // TODO Reinstate this if only child\n lead.opacity !== undefined ? lead.opacity : 1, easeCrossfadeIn(progress));\n target.opacityExit = mixNumber(follow.opacity !== undefined ? follow.opacity : 1, 0, easeCrossfadeOut(progress));\n }\n else if (isOnlyMember) {\n target.opacity = mixNumber(follow.opacity !== undefined ? follow.opacity : 1, lead.opacity !== undefined ? lead.opacity : 1, progress);\n }\n /**\n * Mix border radius\n */\n for (let i = 0; i < numBorders; i++) {\n const borderLabel = `border${borders[i]}Radius`;\n let followRadius = getRadius(follow, borderLabel);\n let leadRadius = getRadius(lead, borderLabel);\n if (followRadius === undefined && leadRadius === undefined)\n continue;\n followRadius || (followRadius = 0);\n leadRadius || (leadRadius = 0);\n const canMix = followRadius === 0 ||\n leadRadius === 0 ||\n isPx(followRadius) === isPx(leadRadius);\n if (canMix) {\n target[borderLabel] = Math.max(mixNumber(asNumber(followRadius), asNumber(leadRadius), progress), 0);\n if (percent.test(leadRadius) || percent.test(followRadius)) {\n target[borderLabel] += \"%\";\n }\n }\n else {\n target[borderLabel] = leadRadius;\n }\n }\n /**\n * Mix rotation\n */\n if (follow.rotate || lead.rotate) {\n target.rotate = mixNumber(follow.rotate || 0, lead.rotate || 0, progress);\n }\n}\nfunction getRadius(values, radiusName) {\n return values[radiusName] !== undefined\n ? values[radiusName]\n : values.borderRadius;\n}\n// /**\n// * We only want to mix the background color if there's a follow element\n// * that we're not crossfading opacity between. For instance with switch\n// * AnimateSharedLayout animations, this helps the illusion of a continuous\n// * element being animated but also cuts down on the number of paints triggered\n// * for elements where opacity is doing that work for us.\n// */\n// if (\n// !hasFollowElement &&\n// latestLeadValues.backgroundColor &&\n// latestFollowValues.backgroundColor\n// ) {\n// /**\n// * This isn't ideal performance-wise as mixColor is creating a new function every frame.\n// * We could probably create a mixer that runs at the start of the animation but\n// * the idea behind the crossfader is that it runs dynamically between two potentially\n// * changing targets (ie opacity or borderRadius may be animating independently via variants)\n// */\n// leadState.backgroundColor = followState.backgroundColor = mixColor(\n// latestFollowValues.backgroundColor as string,\n// latestLeadValues.backgroundColor as string\n// )(p)\n// }\nconst easeCrossfadeIn = /*@__PURE__*/ compress(0, 0.5, circOut);\nconst easeCrossfadeOut = /*@__PURE__*/ compress(0.5, 0.95, noop);\nfunction compress(min, max, easing) {\n return (p) => {\n // Could replace ifs with clamp\n if (p < min)\n return 0;\n if (p > max)\n return 1;\n return easing(progress(min, max, p));\n };\n}\n\nexport { mixValues };\n","/**\n * Reset an axis to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyAxisInto(axis, originAxis) {\n axis.min = originAxis.min;\n axis.max = originAxis.max;\n}\n/**\n * Reset a box to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyBoxInto(box, originBox) {\n copyAxisInto(box.x, originBox.x);\n copyAxisInto(box.y, originBox.y);\n}\n/**\n * Reset a delta to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyAxisDeltaInto(delta, originDelta) {\n delta.translate = originDelta.translate;\n delta.scale = originDelta.scale;\n delta.originPoint = originDelta.originPoint;\n delta.origin = originDelta.origin;\n}\n\nexport { copyAxisDeltaInto, copyAxisInto, copyBoxInto };\n","import { mixNumber } from '../../utils/mix/number.mjs';\nimport { percent } from '../../value/types/numbers/units.mjs';\nimport { scalePoint } from './delta-apply.mjs';\n\n/**\n * Remove a delta from a point. This is essentially the steps of applyPointDelta in reverse\n */\nfunction removePointDelta(point, translate, scale, originPoint, boxScale) {\n point -= translate;\n point = scalePoint(point, 1 / scale, originPoint);\n if (boxScale !== undefined) {\n point = scalePoint(point, 1 / boxScale, originPoint);\n }\n return point;\n}\n/**\n * Remove a delta from an axis. This is essentially the steps of applyAxisDelta in reverse\n */\nfunction removeAxisDelta(axis, translate = 0, scale = 1, origin = 0.5, boxScale, originAxis = axis, sourceAxis = axis) {\n if (percent.test(translate)) {\n translate = parseFloat(translate);\n const relativeProgress = mixNumber(sourceAxis.min, sourceAxis.max, translate / 100);\n translate = relativeProgress - sourceAxis.min;\n }\n if (typeof translate !== \"number\")\n return;\n let originPoint = mixNumber(originAxis.min, originAxis.max, origin);\n if (axis === originAxis)\n originPoint -= translate;\n axis.min = removePointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = removePointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Remove a transforms from an axis. This is essentially the steps of applyAxisTransforms in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeAxisTransforms(axis, transforms, [key, scaleKey, originKey], origin, sourceAxis) {\n removeAxisDelta(axis, transforms[key], transforms[scaleKey], transforms[originKey], transforms.scale, origin, sourceAxis);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nconst xKeys = [\"x\", \"scaleX\", \"originX\"];\nconst yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Remove a transforms from an box. This is essentially the steps of applyAxisBox in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeBoxTransforms(box, transforms, originBox, sourceBox) {\n removeAxisTransforms(box.x, transforms, xKeys, originBox ? originBox.x : undefined, sourceBox ? sourceBox.x : undefined);\n removeAxisTransforms(box.y, transforms, yKeys, originBox ? originBox.y : undefined, sourceBox ? sourceBox.y : undefined);\n}\n\nexport { removeAxisDelta, removeAxisTransforms, removeBoxTransforms, removePointDelta };\n","import { calcLength } from './delta-calc.mjs';\n\nfunction isAxisDeltaZero(delta) {\n return delta.translate === 0 && delta.scale === 1;\n}\nfunction isDeltaZero(delta) {\n return isAxisDeltaZero(delta.x) && isAxisDeltaZero(delta.y);\n}\nfunction axisEquals(a, b) {\n return a.min === b.min && a.max === b.max;\n}\nfunction boxEquals(a, b) {\n return axisEquals(a.x, b.x) && axisEquals(a.y, b.y);\n}\nfunction axisEqualsRounded(a, b) {\n return (Math.round(a.min) === Math.round(b.min) &&\n Math.round(a.max) === Math.round(b.max));\n}\nfunction boxEqualsRounded(a, b) {\n return axisEqualsRounded(a.x, b.x) && axisEqualsRounded(a.y, b.y);\n}\nfunction aspectRatio(box) {\n return calcLength(box.x) / calcLength(box.y);\n}\nfunction axisDeltaEquals(a, b) {\n return (a.translate === b.translate &&\n a.scale === b.scale &&\n a.originPoint === b.originPoint);\n}\n\nexport { aspectRatio, axisDeltaEquals, axisEquals, axisEqualsRounded, boxEquals, boxEqualsRounded, isDeltaZero };\n","import { addUniqueItem, removeItem } from '../../utils/array.mjs';\n\nclass NodeStack {\n constructor() {\n this.members = [];\n }\n add(node) {\n addUniqueItem(this.members, node);\n node.scheduleRender();\n }\n remove(node) {\n removeItem(this.members, node);\n if (node === this.prevLead) {\n this.prevLead = undefined;\n }\n if (node === this.lead) {\n const prevLead = this.members[this.members.length - 1];\n if (prevLead) {\n this.promote(prevLead);\n }\n }\n }\n relegate(node) {\n const indexOfNode = this.members.findIndex((member) => node === member);\n if (indexOfNode === 0)\n return false;\n /**\n * Find the next projection node that is present\n */\n let prevLead;\n for (let i = indexOfNode; i >= 0; i--) {\n const member = this.members[i];\n if (member.isPresent !== false) {\n prevLead = member;\n break;\n }\n }\n if (prevLead) {\n this.promote(prevLead);\n return true;\n }\n else {\n return false;\n }\n }\n promote(node, preserveFollowOpacity) {\n const prevLead = this.lead;\n if (node === prevLead)\n return;\n this.prevLead = prevLead;\n this.lead = node;\n node.show();\n if (prevLead) {\n prevLead.instance && prevLead.scheduleRender();\n node.scheduleRender();\n node.resumeFrom = prevLead;\n if (preserveFollowOpacity) {\n node.resumeFrom.preserveOpacity = true;\n }\n if (prevLead.snapshot) {\n node.snapshot = prevLead.snapshot;\n node.snapshot.latestValues =\n prevLead.animationValues || prevLead.latestValues;\n }\n if (node.root && node.root.isUpdating) {\n node.isLayoutDirty = true;\n }\n const { crossfade } = node.options;\n if (crossfade === false) {\n prevLead.hide();\n }\n /**\n * TODO:\n * - Test border radius when previous node was deleted\n * - boxShadow mixing\n * - Shared between element A in scrolled container and element B (scroll stays the same or changes)\n * - Shared between element A in transformed container and element B (transform stays the same or changes)\n * - Shared between element A in scrolled page and element B (scroll stays the same or changes)\n * ---\n * - Crossfade opacity of root nodes\n * - layoutId changes after animation\n * - layoutId changes mid animation\n */\n }\n }\n exitAnimationComplete() {\n this.members.forEach((node) => {\n const { options, resumingFrom } = node;\n options.onExitComplete && options.onExitComplete();\n if (resumingFrom) {\n resumingFrom.options.onExitComplete &&\n resumingFrom.options.onExitComplete();\n }\n });\n }\n scheduleRender() {\n this.members.forEach((node) => {\n node.instance && node.scheduleRender(false);\n });\n }\n /**\n * Clear any leads that have been removed this render to prevent them from being\n * used in future animations and to prevent memory leaks\n */\n removeLeadSnapshot() {\n if (this.lead && this.lead.snapshot) {\n this.lead.snapshot = undefined;\n }\n }\n}\n\nexport { NodeStack };\n","import { getValueTransition } from 'motion-dom';\nimport { noop } from 'motion-utils';\nimport { animateSingleValue } from '../../animation/animate/single-value.mjs';\nimport { getOptimisedAppearId } from '../../animation/optimized-appear/get-appear-id.mjs';\nimport { cancelFrame, frameData, frameSteps, frame } from '../../frameloop/frame.mjs';\nimport { microtask } from '../../frameloop/microtask.mjs';\nimport { time } from '../../frameloop/sync-time.mjs';\nimport { isSVGElement } from '../../render/dom/utils/is-svg-element.mjs';\nimport { FlatTree } from '../../render/utils/flat-tree.mjs';\nimport { clamp } from '../../utils/clamp.mjs';\nimport { delay } from '../../utils/delay.mjs';\nimport { mixNumber } from '../../utils/mix/number.mjs';\nimport { SubscriptionManager } from '../../utils/subscription-manager.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\nimport { mixValues } from '../animation/mix-values.mjs';\nimport { copyBoxInto, copyAxisDeltaInto } from '../geometry/copy.mjs';\nimport { translateAxis, transformBox, applyBoxDelta, applyTreeDeltas } from '../geometry/delta-apply.mjs';\nimport { calcRelativePosition, calcRelativeBox, calcBoxDelta, calcLength, isNear } from '../geometry/delta-calc.mjs';\nimport { removeBoxTransforms } from '../geometry/delta-remove.mjs';\nimport { createBox, createDelta } from '../geometry/models.mjs';\nimport { boxEqualsRounded, isDeltaZero, axisDeltaEquals, aspectRatio, boxEquals } from '../geometry/utils.mjs';\nimport { NodeStack } from '../shared/stack.mjs';\nimport { scaleCorrectors } from '../styles/scale-correction.mjs';\nimport { buildProjectionTransform } from '../styles/transform.mjs';\nimport { eachAxis } from '../utils/each-axis.mjs';\nimport { hasTransform, hasScale, has2DTranslate } from '../utils/has-transform.mjs';\nimport { globalProjectionState } from './state.mjs';\n\nconst metrics = {\n type: \"projectionFrame\",\n totalNodes: 0,\n resolvedTargetDeltas: 0,\n recalculatedProjection: 0,\n};\nconst isDebug = typeof window !== \"undefined\" && window.MotionDebug !== undefined;\nconst transformAxes = [\"\", \"X\", \"Y\", \"Z\"];\nconst hiddenVisibility = { visibility: \"hidden\" };\n/**\n * We use 1000 as the animation target as 0-1000 maps better to pixels than 0-1\n * which has a noticeable difference in spring animations\n */\nconst animationTarget = 1000;\nlet id = 0;\nfunction resetDistortingTransform(key, visualElement, values, sharedAnimationValues) {\n const { latestValues } = visualElement;\n // Record the distorting transform and then temporarily set it to 0\n if (latestValues[key]) {\n values[key] = latestValues[key];\n visualElement.setStaticValue(key, 0);\n if (sharedAnimationValues) {\n sharedAnimationValues[key] = 0;\n }\n }\n}\nfunction cancelTreeOptimisedTransformAnimations(projectionNode) {\n projectionNode.hasCheckedOptimisedAppear = true;\n if (projectionNode.root === projectionNode)\n return;\n const { visualElement } = projectionNode.options;\n if (!visualElement)\n return;\n const appearId = getOptimisedAppearId(visualElement);\n if (window.MotionHasOptimisedAnimation(appearId, \"transform\")) {\n const { layout, layoutId } = projectionNode.options;\n window.MotionCancelOptimisedAnimation(appearId, \"transform\", frame, !(layout || layoutId));\n }\n const { parent } = projectionNode;\n if (parent && !parent.hasCheckedOptimisedAppear) {\n cancelTreeOptimisedTransformAnimations(parent);\n }\n}\nfunction createProjectionNode({ attachResizeListener, defaultParent, measureScroll, checkIsScrollRoot, resetTransform, }) {\n return class ProjectionNode {\n constructor(latestValues = {}, parent = defaultParent === null || defaultParent === void 0 ? void 0 : defaultParent()) {\n /**\n * A unique ID generated for every projection node.\n */\n this.id = id++;\n /**\n * An id that represents a unique session instigated by startUpdate.\n */\n this.animationId = 0;\n /**\n * A Set containing all this component's children. This is used to iterate\n * through the children.\n *\n * TODO: This could be faster to iterate as a flat array stored on the root node.\n */\n this.children = new Set();\n /**\n * Options for the node. We use this to configure what kind of layout animations\n * we should perform (if any).\n */\n this.options = {};\n /**\n * We use this to detect when its safe to shut down part of a projection tree.\n * We have to keep projecting children for scale correction and relative projection\n * until all their parents stop performing layout animations.\n */\n this.isTreeAnimating = false;\n this.isAnimationBlocked = false;\n /**\n * Flag to true if we think this layout has been changed. We can't always know this,\n * currently we set it to true every time a component renders, or if it has a layoutDependency\n * if that has changed between renders. Additionally, components can be grouped by LayoutGroup\n * and if one node is dirtied, they all are.\n */\n this.isLayoutDirty = false;\n /**\n * Flag to true if we think the projection calculations for this node needs\n * recalculating as a result of an updated transform or layout animation.\n */\n this.isProjectionDirty = false;\n /**\n * Flag to true if the layout *or* transform has changed. This then gets propagated\n * throughout the projection tree, forcing any element below to recalculate on the next frame.\n */\n this.isSharedProjectionDirty = false;\n /**\n * Flag transform dirty. This gets propagated throughout the whole tree but is only\n * respected by shared nodes.\n */\n this.isTransformDirty = false;\n /**\n * Block layout updates for instant layout transitions throughout the tree.\n */\n this.updateManuallyBlocked = false;\n this.updateBlockedByResize = false;\n /**\n * Set to true between the start of the first `willUpdate` call and the end of the `didUpdate`\n * call.\n */\n this.isUpdating = false;\n /**\n * If this is an SVG element we currently disable projection transforms\n */\n this.isSVG = false;\n /**\n * Flag to true (during promotion) if a node doing an instant layout transition needs to reset\n * its projection styles.\n */\n this.needsReset = false;\n /**\n * Flags whether this node should have its transform reset prior to measuring.\n */\n this.shouldResetTransform = false;\n /**\n * Store whether this node has been checked for optimised appear animations. As\n * effects fire bottom-up, and we want to look up the tree for appear animations,\n * this makes sure we only check each path once, stopping at nodes that\n * have already been checked.\n */\n this.hasCheckedOptimisedAppear = false;\n /**\n * An object representing the calculated contextual/accumulated/tree scale.\n * This will be used to scale calculcated projection transforms, as these are\n * calculated in screen-space but need to be scaled for elements to layoutly\n * make it to their calculated destinations.\n *\n * TODO: Lazy-init\n */\n this.treeScale = { x: 1, y: 1 };\n /**\n *\n */\n this.eventHandlers = new Map();\n this.hasTreeAnimated = false;\n // Note: Currently only running on root node\n this.updateScheduled = false;\n this.scheduleUpdate = () => this.update();\n this.projectionUpdateScheduled = false;\n this.checkUpdateFailed = () => {\n if (this.isUpdating) {\n this.isUpdating = false;\n this.clearAllSnapshots();\n }\n };\n /**\n * This is a multi-step process as shared nodes might be of different depths. Nodes\n * are sorted by depth order, so we need to resolve the entire tree before moving to\n * the next step.\n */\n this.updateProjection = () => {\n this.projectionUpdateScheduled = false;\n /**\n * Reset debug counts. Manually resetting rather than creating a new\n * object each frame.\n */\n if (isDebug) {\n metrics.totalNodes =\n metrics.resolvedTargetDeltas =\n metrics.recalculatedProjection =\n 0;\n }\n this.nodes.forEach(propagateDirtyNodes);\n this.nodes.forEach(resolveTargetDelta);\n this.nodes.forEach(calcProjection);\n this.nodes.forEach(cleanDirtyNodes);\n if (isDebug) {\n window.MotionDebug.record(metrics);\n }\n };\n /**\n * Frame calculations\n */\n this.resolvedRelativeTargetAt = 0.0;\n this.hasProjected = false;\n this.isVisible = true;\n this.animationProgress = 0;\n /**\n * Shared layout\n */\n // TODO Only running on root node\n this.sharedNodes = new Map();\n this.latestValues = latestValues;\n this.root = parent ? parent.root || parent : this;\n this.path = parent ? [...parent.path, parent] : [];\n this.parent = parent;\n this.depth = parent ? parent.depth + 1 : 0;\n for (let i = 0; i < this.path.length; i++) {\n this.path[i].shouldResetTransform = true;\n }\n if (this.root === this)\n this.nodes = new FlatTree();\n }\n addEventListener(name, handler) {\n if (!this.eventHandlers.has(name)) {\n this.eventHandlers.set(name, new SubscriptionManager());\n }\n return this.eventHandlers.get(name).add(handler);\n }\n notifyListeners(name, ...args) {\n const subscriptionManager = this.eventHandlers.get(name);\n subscriptionManager && subscriptionManager.notify(...args);\n }\n hasListeners(name) {\n return this.eventHandlers.has(name);\n }\n /**\n * Lifecycles\n */\n mount(instance, isLayoutDirty = this.root.hasTreeAnimated) {\n if (this.instance)\n return;\n this.isSVG = isSVGElement(instance);\n this.instance = instance;\n const { layoutId, layout, visualElement } = this.options;\n if (visualElement && !visualElement.current) {\n visualElement.mount(instance);\n }\n this.root.nodes.add(this);\n this.parent && this.parent.children.add(this);\n if (isLayoutDirty && (layout || layoutId)) {\n this.isLayoutDirty = true;\n }\n if (attachResizeListener) {\n let cancelDelay;\n const resizeUnblockUpdate = () => (this.root.updateBlockedByResize = false);\n attachResizeListener(instance, () => {\n this.root.updateBlockedByResize = true;\n cancelDelay && cancelDelay();\n cancelDelay = delay(resizeUnblockUpdate, 250);\n if (globalProjectionState.hasAnimatedSinceResize) {\n globalProjectionState.hasAnimatedSinceResize = false;\n this.nodes.forEach(finishAnimation);\n }\n });\n }\n if (layoutId) {\n this.root.registerSharedNode(layoutId, this);\n }\n // Only register the handler if it requires layout animation\n if (this.options.animate !== false &&\n visualElement &&\n (layoutId || layout)) {\n this.addEventListener(\"didUpdate\", ({ delta, hasLayoutChanged, hasRelativeTargetChanged, layout: newLayout, }) => {\n if (this.isTreeAnimationBlocked()) {\n this.target = undefined;\n this.relativeTarget = undefined;\n return;\n }\n // TODO: Check here if an animation exists\n const layoutTransition = this.options.transition ||\n visualElement.getDefaultTransition() ||\n defaultLayoutTransition;\n const { onLayoutAnimationStart, onLayoutAnimationComplete, } = visualElement.getProps();\n /**\n * The target layout of the element might stay the same,\n * but its position relative to its parent has changed.\n */\n const targetChanged = !this.targetLayout ||\n !boxEqualsRounded(this.targetLayout, newLayout) ||\n hasRelativeTargetChanged;\n /**\n * If the layout hasn't seemed to have changed, it might be that the\n * element is visually in the same place in the document but its position\n * relative to its parent has indeed changed. So here we check for that.\n */\n const hasOnlyRelativeTargetChanged = !hasLayoutChanged && hasRelativeTargetChanged;\n if (this.options.layoutRoot ||\n (this.resumeFrom && this.resumeFrom.instance) ||\n hasOnlyRelativeTargetChanged ||\n (hasLayoutChanged &&\n (targetChanged || !this.currentAnimation))) {\n if (this.resumeFrom) {\n this.resumingFrom = this.resumeFrom;\n this.resumingFrom.resumingFrom = undefined;\n }\n this.setAnimationOrigin(delta, hasOnlyRelativeTargetChanged);\n const animationOptions = {\n ...getValueTransition(layoutTransition, \"layout\"),\n onPlay: onLayoutAnimationStart,\n onComplete: onLayoutAnimationComplete,\n };\n if (visualElement.shouldReduceMotion ||\n this.options.layoutRoot) {\n animationOptions.delay = 0;\n animationOptions.type = false;\n }\n this.startAnimation(animationOptions);\n }\n else {\n /**\n * If the layout hasn't changed and we have an animation that hasn't started yet,\n * finish it immediately. Otherwise it will be animating from a location\n * that was probably never commited to screen and look like a jumpy box.\n */\n if (!hasLayoutChanged) {\n finishAnimation(this);\n }\n if (this.isLead() && this.options.onExitComplete) {\n this.options.onExitComplete();\n }\n }\n this.targetLayout = newLayout;\n });\n }\n }\n unmount() {\n this.options.layoutId && this.willUpdate();\n this.root.nodes.remove(this);\n const stack = this.getStack();\n stack && stack.remove(this);\n this.parent && this.parent.children.delete(this);\n this.instance = undefined;\n cancelFrame(this.updateProjection);\n }\n // only on the root\n blockUpdate() {\n this.updateManuallyBlocked = true;\n }\n unblockUpdate() {\n this.updateManuallyBlocked = false;\n }\n isUpdateBlocked() {\n return this.updateManuallyBlocked || this.updateBlockedByResize;\n }\n isTreeAnimationBlocked() {\n return (this.isAnimationBlocked ||\n (this.parent && this.parent.isTreeAnimationBlocked()) ||\n false);\n }\n // Note: currently only running on root node\n startUpdate() {\n if (this.isUpdateBlocked())\n return;\n this.isUpdating = true;\n this.nodes && this.nodes.forEach(resetSkewAndRotation);\n this.animationId++;\n }\n getTransformTemplate() {\n const { visualElement } = this.options;\n return visualElement && visualElement.getProps().transformTemplate;\n }\n willUpdate(shouldNotifyListeners = true) {\n this.root.hasTreeAnimated = true;\n if (this.root.isUpdateBlocked()) {\n this.options.onExitComplete && this.options.onExitComplete();\n return;\n }\n /**\n * If we're running optimised appear animations then these must be\n * cancelled before measuring the DOM. This is so we can measure\n * the true layout of the element rather than the WAAPI animation\n * which will be unaffected by the resetSkewAndRotate step.\n *\n * Note: This is a DOM write. Worst case scenario is this is sandwiched\n * between other snapshot reads which will cause unnecessary style recalculations.\n * This has to happen here though, as we don't yet know which nodes will need\n * snapshots in startUpdate(), but we only want to cancel optimised animations\n * if a layout animation measurement is actually going to be affected by them.\n */\n if (window.MotionCancelOptimisedAnimation &&\n !this.hasCheckedOptimisedAppear) {\n cancelTreeOptimisedTransformAnimations(this);\n }\n !this.root.isUpdating && this.root.startUpdate();\n if (this.isLayoutDirty)\n return;\n this.isLayoutDirty = true;\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.shouldResetTransform = true;\n node.updateScroll(\"snapshot\");\n if (node.options.layoutRoot) {\n node.willUpdate(false);\n }\n }\n const { layoutId, layout } = this.options;\n if (layoutId === undefined && !layout)\n return;\n const transformTemplate = this.getTransformTemplate();\n this.prevTransformTemplateValue = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : undefined;\n this.updateSnapshot();\n shouldNotifyListeners && this.notifyListeners(\"willUpdate\");\n }\n update() {\n this.updateScheduled = false;\n const updateWasBlocked = this.isUpdateBlocked();\n // When doing an instant transition, we skip the layout update,\n // but should still clean up the measurements so that the next\n // snapshot could be taken correctly.\n if (updateWasBlocked) {\n this.unblockUpdate();\n this.clearAllSnapshots();\n this.nodes.forEach(clearMeasurements);\n return;\n }\n if (!this.isUpdating) {\n this.nodes.forEach(clearIsLayoutDirty);\n }\n this.isUpdating = false;\n /**\n * Write\n */\n this.nodes.forEach(resetTransformStyle);\n /**\n * Read ==================\n */\n // Update layout measurements of updated children\n this.nodes.forEach(updateLayout);\n /**\n * Write\n */\n // Notify listeners that the layout is updated\n this.nodes.forEach(notifyLayoutUpdate);\n this.clearAllSnapshots();\n /**\n * Manually flush any pending updates. Ideally\n * we could leave this to the following requestAnimationFrame but this seems\n * to leave a flash of incorrectly styled content.\n */\n const now = time.now();\n frameData.delta = clamp(0, 1000 / 60, now - frameData.timestamp);\n frameData.timestamp = now;\n frameData.isProcessing = true;\n frameSteps.update.process(frameData);\n frameSteps.preRender.process(frameData);\n frameSteps.render.process(frameData);\n frameData.isProcessing = false;\n }\n didUpdate() {\n if (!this.updateScheduled) {\n this.updateScheduled = true;\n microtask.read(this.scheduleUpdate);\n }\n }\n clearAllSnapshots() {\n this.nodes.forEach(clearSnapshot);\n this.sharedNodes.forEach(removeLeadSnapshots);\n }\n scheduleUpdateProjection() {\n if (!this.projectionUpdateScheduled) {\n this.projectionUpdateScheduled = true;\n frame.preRender(this.updateProjection, false, true);\n }\n }\n scheduleCheckAfterUnmount() {\n /**\n * If the unmounting node is in a layoutGroup and did trigger a willUpdate,\n * we manually call didUpdate to give a chance to the siblings to animate.\n * Otherwise, cleanup all snapshots to prevents future nodes from reusing them.\n */\n frame.postRender(() => {\n if (this.isLayoutDirty) {\n this.root.didUpdate();\n }\n else {\n this.root.checkUpdateFailed();\n }\n });\n }\n /**\n * Update measurements\n */\n updateSnapshot() {\n if (this.snapshot || !this.instance)\n return;\n this.snapshot = this.measure();\n }\n updateLayout() {\n if (!this.instance)\n return;\n // TODO: Incorporate into a forwarded scroll offset\n this.updateScroll();\n if (!(this.options.alwaysMeasureLayout && this.isLead()) &&\n !this.isLayoutDirty) {\n return;\n }\n /**\n * When a node is mounted, it simply resumes from the prevLead's\n * snapshot instead of taking a new one, but the ancestors scroll\n * might have updated while the prevLead is unmounted. We need to\n * update the scroll again to make sure the layout we measure is\n * up to date.\n */\n if (this.resumeFrom && !this.resumeFrom.instance) {\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.updateScroll();\n }\n }\n const prevLayout = this.layout;\n this.layout = this.measure(false);\n this.layoutCorrected = createBox();\n this.isLayoutDirty = false;\n this.projectionDelta = undefined;\n this.notifyListeners(\"measure\", this.layout.layoutBox);\n const { visualElement } = this.options;\n visualElement &&\n visualElement.notify(\"LayoutMeasure\", this.layout.layoutBox, prevLayout ? prevLayout.layoutBox : undefined);\n }\n updateScroll(phase = \"measure\") {\n let needsMeasurement = Boolean(this.options.layoutScroll && this.instance);\n if (this.scroll &&\n this.scroll.animationId === this.root.animationId &&\n this.scroll.phase === phase) {\n needsMeasurement = false;\n }\n if (needsMeasurement) {\n const isRoot = checkIsScrollRoot(this.instance);\n this.scroll = {\n animationId: this.root.animationId,\n phase,\n isRoot,\n offset: measureScroll(this.instance),\n wasRoot: this.scroll ? this.scroll.isRoot : isRoot,\n };\n }\n }\n resetTransform() {\n if (!resetTransform)\n return;\n const isResetRequested = this.isLayoutDirty ||\n this.shouldResetTransform ||\n this.options.alwaysMeasureLayout;\n const hasProjection = this.projectionDelta && !isDeltaZero(this.projectionDelta);\n const transformTemplate = this.getTransformTemplate();\n const transformTemplateValue = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : undefined;\n const transformTemplateHasChanged = transformTemplateValue !== this.prevTransformTemplateValue;\n if (isResetRequested &&\n (hasProjection ||\n hasTransform(this.latestValues) ||\n transformTemplateHasChanged)) {\n resetTransform(this.instance, transformTemplateValue);\n this.shouldResetTransform = false;\n this.scheduleRender();\n }\n }\n measure(removeTransform = true) {\n const pageBox = this.measurePageBox();\n let layoutBox = this.removeElementScroll(pageBox);\n /**\n * Measurements taken during the pre-render stage\n * still have transforms applied so we remove them\n * via calculation.\n */\n if (removeTransform) {\n layoutBox = this.removeTransform(layoutBox);\n }\n roundBox(layoutBox);\n return {\n animationId: this.root.animationId,\n measuredBox: pageBox,\n layoutBox,\n latestValues: {},\n source: this.id,\n };\n }\n measurePageBox() {\n var _a;\n const { visualElement } = this.options;\n if (!visualElement)\n return createBox();\n const box = visualElement.measureViewportBox();\n const wasInScrollRoot = ((_a = this.scroll) === null || _a === void 0 ? void 0 : _a.wasRoot) || this.path.some(checkNodeWasScrollRoot);\n if (!wasInScrollRoot) {\n // Remove viewport scroll to give page-relative coordinates\n const { scroll } = this.root;\n if (scroll) {\n translateAxis(box.x, scroll.offset.x);\n translateAxis(box.y, scroll.offset.y);\n }\n }\n return box;\n }\n removeElementScroll(box) {\n var _a;\n const boxWithoutScroll = createBox();\n copyBoxInto(boxWithoutScroll, box);\n if ((_a = this.scroll) === null || _a === void 0 ? void 0 : _a.wasRoot) {\n return boxWithoutScroll;\n }\n /**\n * Performance TODO: Keep a cumulative scroll offset down the tree\n * rather than loop back up the path.\n */\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n const { scroll, options } = node;\n if (node !== this.root && scroll && options.layoutScroll) {\n /**\n * If this is a new scroll root, we want to remove all previous scrolls\n * from the viewport box.\n */\n if (scroll.wasRoot) {\n copyBoxInto(boxWithoutScroll, box);\n }\n translateAxis(boxWithoutScroll.x, scroll.offset.x);\n translateAxis(boxWithoutScroll.y, scroll.offset.y);\n }\n }\n return boxWithoutScroll;\n }\n applyTransform(box, transformOnly = false) {\n const withTransforms = createBox();\n copyBoxInto(withTransforms, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!transformOnly &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(withTransforms, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (!hasTransform(node.latestValues))\n continue;\n transformBox(withTransforms, node.latestValues);\n }\n if (hasTransform(this.latestValues)) {\n transformBox(withTransforms, this.latestValues);\n }\n return withTransforms;\n }\n removeTransform(box) {\n const boxWithoutTransform = createBox();\n copyBoxInto(boxWithoutTransform, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!node.instance)\n continue;\n if (!hasTransform(node.latestValues))\n continue;\n hasScale(node.latestValues) && node.updateSnapshot();\n const sourceBox = createBox();\n const nodeBox = node.measurePageBox();\n copyBoxInto(sourceBox, nodeBox);\n removeBoxTransforms(boxWithoutTransform, node.latestValues, node.snapshot ? node.snapshot.layoutBox : undefined, sourceBox);\n }\n if (hasTransform(this.latestValues)) {\n removeBoxTransforms(boxWithoutTransform, this.latestValues);\n }\n return boxWithoutTransform;\n }\n setTargetDelta(delta) {\n this.targetDelta = delta;\n this.root.scheduleUpdateProjection();\n this.isProjectionDirty = true;\n }\n setOptions(options) {\n this.options = {\n ...this.options,\n ...options,\n crossfade: options.crossfade !== undefined ? options.crossfade : true,\n };\n }\n clearMeasurements() {\n this.scroll = undefined;\n this.layout = undefined;\n this.snapshot = undefined;\n this.prevTransformTemplateValue = undefined;\n this.targetDelta = undefined;\n this.target = undefined;\n this.isLayoutDirty = false;\n }\n forceRelativeParentToResolveTarget() {\n if (!this.relativeParent)\n return;\n /**\n * If the parent target isn't up-to-date, force it to update.\n * This is an unfortunate de-optimisation as it means any updating relative\n * projection will cause all the relative parents to recalculate back\n * up the tree.\n */\n if (this.relativeParent.resolvedRelativeTargetAt !==\n frameData.timestamp) {\n this.relativeParent.resolveTargetDelta(true);\n }\n }\n resolveTargetDelta(forceRecalculation = false) {\n var _a;\n /**\n * Once the dirty status of nodes has been spread through the tree, we also\n * need to check if we have a shared node of a different depth that has itself\n * been dirtied.\n */\n const lead = this.getLead();\n this.isProjectionDirty || (this.isProjectionDirty = lead.isProjectionDirty);\n this.isTransformDirty || (this.isTransformDirty = lead.isTransformDirty);\n this.isSharedProjectionDirty || (this.isSharedProjectionDirty = lead.isSharedProjectionDirty);\n const isShared = Boolean(this.resumingFrom) || this !== lead;\n /**\n * We don't use transform for this step of processing so we don't\n * need to check whether any nodes have changed transform.\n */\n const canSkip = !(forceRecalculation ||\n (isShared && this.isSharedProjectionDirty) ||\n this.isProjectionDirty ||\n ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isProjectionDirty) ||\n this.attemptToResolveRelativeTarget ||\n this.root.updateBlockedByResize);\n if (canSkip)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If we have no layout, we can't perform projection, so early return\n */\n if (!this.layout || !(layout || layoutId))\n return;\n this.resolvedRelativeTargetAt = frameData.timestamp;\n /**\n * If we don't have a targetDelta but do have a layout, we can attempt to resolve\n * a relativeParent. This will allow a component to perform scale correction\n * even if no animation has started.\n */\n if (!this.targetDelta && !this.relativeTarget) {\n const relativeParent = this.getClosestProjectingParent();\n if (relativeParent &&\n relativeParent.layout &&\n this.animationProgress !== 1) {\n this.relativeParent = relativeParent;\n this.forceRelativeParentToResolveTarget();\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.layout.layoutBox, relativeParent.layout.layoutBox);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n }\n else {\n this.relativeParent = this.relativeTarget = undefined;\n }\n }\n /**\n * If we have no relative target or no target delta our target isn't valid\n * for this frame.\n */\n if (!this.relativeTarget && !this.targetDelta)\n return;\n /**\n * Lazy-init target data structure\n */\n if (!this.target) {\n this.target = createBox();\n this.targetWithTransforms = createBox();\n }\n /**\n * If we've got a relative box for this component, resolve it into a target relative to the parent.\n */\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n this.relativeParent &&\n this.relativeParent.target) {\n this.forceRelativeParentToResolveTarget();\n calcRelativeBox(this.target, this.relativeTarget, this.relativeParent.target);\n /**\n * If we've only got a targetDelta, resolve it into a target\n */\n }\n else if (this.targetDelta) {\n if (Boolean(this.resumingFrom)) {\n // TODO: This is creating a new object every frame\n this.target = this.applyTransform(this.layout.layoutBox);\n }\n else {\n copyBoxInto(this.target, this.layout.layoutBox);\n }\n applyBoxDelta(this.target, this.targetDelta);\n }\n else {\n /**\n * If no target, use own layout as target\n */\n copyBoxInto(this.target, this.layout.layoutBox);\n }\n /**\n * If we've been told to attempt to resolve a relative target, do so.\n */\n if (this.attemptToResolveRelativeTarget) {\n this.attemptToResolveRelativeTarget = false;\n const relativeParent = this.getClosestProjectingParent();\n if (relativeParent &&\n Boolean(relativeParent.resumingFrom) ===\n Boolean(this.resumingFrom) &&\n !relativeParent.options.layoutScroll &&\n relativeParent.target &&\n this.animationProgress !== 1) {\n this.relativeParent = relativeParent;\n this.forceRelativeParentToResolveTarget();\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.target, relativeParent.target);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n }\n else {\n this.relativeParent = this.relativeTarget = undefined;\n }\n }\n /**\n * Increase debug counter for resolved target deltas\n */\n if (isDebug) {\n metrics.resolvedTargetDeltas++;\n }\n }\n getClosestProjectingParent() {\n if (!this.parent ||\n hasScale(this.parent.latestValues) ||\n has2DTranslate(this.parent.latestValues)) {\n return undefined;\n }\n if (this.parent.isProjecting()) {\n return this.parent;\n }\n else {\n return this.parent.getClosestProjectingParent();\n }\n }\n isProjecting() {\n return Boolean((this.relativeTarget ||\n this.targetDelta ||\n this.options.layoutRoot) &&\n this.layout);\n }\n calcProjection() {\n var _a;\n const lead = this.getLead();\n const isShared = Boolean(this.resumingFrom) || this !== lead;\n let canSkip = true;\n /**\n * If this is a normal layout animation and neither this node nor its nearest projecting\n * is dirty then we can't skip.\n */\n if (this.isProjectionDirty || ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isProjectionDirty)) {\n canSkip = false;\n }\n /**\n * If this is a shared layout animation and this node's shared projection is dirty then\n * we can't skip.\n */\n if (isShared &&\n (this.isSharedProjectionDirty || this.isTransformDirty)) {\n canSkip = false;\n }\n /**\n * If we have resolved the target this frame we must recalculate the\n * projection to ensure it visually represents the internal calculations.\n */\n if (this.resolvedRelativeTargetAt === frameData.timestamp) {\n canSkip = false;\n }\n if (canSkip)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If this section of the tree isn't animating we can\n * delete our target sources for the following frame.\n */\n this.isTreeAnimating = Boolean((this.parent && this.parent.isTreeAnimating) ||\n this.currentAnimation ||\n this.pendingAnimation);\n if (!this.isTreeAnimating) {\n this.targetDelta = this.relativeTarget = undefined;\n }\n if (!this.layout || !(layout || layoutId))\n return;\n /**\n * Reset the corrected box with the latest values from box, as we're then going\n * to perform mutative operations on it.\n */\n copyBoxInto(this.layoutCorrected, this.layout.layoutBox);\n /**\n * Record previous tree scales before updating.\n */\n const prevTreeScaleX = this.treeScale.x;\n const prevTreeScaleY = this.treeScale.y;\n /**\n * Apply all the parent deltas to this box to produce the corrected box. This\n * is the layout box, as it will appear on screen as a result of the transforms of its parents.\n */\n applyTreeDeltas(this.layoutCorrected, this.treeScale, this.path, isShared);\n /**\n * If this layer needs to perform scale correction but doesn't have a target,\n * use the layout as the target.\n */\n if (lead.layout &&\n !lead.target &&\n (this.treeScale.x !== 1 || this.treeScale.y !== 1)) {\n lead.target = lead.layout.layoutBox;\n lead.targetWithTransforms = createBox();\n }\n const { target } = lead;\n if (!target) {\n /**\n * If we don't have a target to project into, but we were previously\n * projecting, we want to remove the stored transform and schedule\n * a render to ensure the elements reflect the removed transform.\n */\n if (this.prevProjectionDelta) {\n this.createProjectionDeltas();\n this.scheduleRender();\n }\n return;\n }\n if (!this.projectionDelta || !this.prevProjectionDelta) {\n this.createProjectionDeltas();\n }\n else {\n copyAxisDeltaInto(this.prevProjectionDelta.x, this.projectionDelta.x);\n copyAxisDeltaInto(this.prevProjectionDelta.y, this.projectionDelta.y);\n }\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 if (this.treeScale.x !== prevTreeScaleX ||\n this.treeScale.y !== prevTreeScaleY ||\n !axisDeltaEquals(this.projectionDelta.x, this.prevProjectionDelta.x) ||\n !axisDeltaEquals(this.projectionDelta.y, this.prevProjectionDelta.y)) {\n this.hasProjected = true;\n this.scheduleRender();\n this.notifyListeners(\"projectionUpdate\", target);\n }\n /**\n * Increase debug counter for recalculated projections\n */\n if (isDebug) {\n metrics.recalculatedProjection++;\n }\n }\n hide() {\n this.isVisible = false;\n // TODO: Schedule render\n }\n show() {\n this.isVisible = true;\n // TODO: Schedule render\n }\n scheduleRender(notifyAll = true) {\n var _a;\n (_a = this.options.visualElement) === null || _a === void 0 ? void 0 : _a.scheduleRender();\n if (notifyAll) {\n const stack = this.getStack();\n stack && stack.scheduleRender();\n }\n if (this.resumingFrom && !this.resumingFrom.instance) {\n this.resumingFrom = undefined;\n }\n }\n createProjectionDeltas() {\n this.prevProjectionDelta = createDelta();\n this.projectionDelta = createDelta();\n this.projectionDeltaWithTransform = createDelta();\n }\n setAnimationOrigin(delta, hasOnlyRelativeTargetChanged = false) {\n const snapshot = this.snapshot;\n const snapshotLatestValues = snapshot\n ? snapshot.latestValues\n : {};\n const mixedValues = { ...this.latestValues };\n const targetDelta = createDelta();\n if (!this.relativeParent ||\n !this.relativeParent.options.layoutRoot) {\n this.relativeTarget = this.relativeTargetOrigin = undefined;\n }\n this.attemptToResolveRelativeTarget = !hasOnlyRelativeTargetChanged;\n const relativeLayout = createBox();\n const snapshotSource = snapshot ? snapshot.source : undefined;\n const layoutSource = this.layout ? this.layout.source : undefined;\n const isSharedLayoutAnimation = snapshotSource !== layoutSource;\n const stack = this.getStack();\n const isOnlyMember = !stack || stack.members.length <= 1;\n const shouldCrossfadeOpacity = Boolean(isSharedLayoutAnimation &&\n !isOnlyMember &&\n this.options.crossfade === true &&\n !this.path.some(hasOpacityCrossfade));\n this.animationProgress = 0;\n let prevRelativeTarget;\n this.mixTargetDelta = (latest) => {\n const progress = latest / 1000;\n mixAxisDelta(targetDelta.x, delta.x, progress);\n mixAxisDelta(targetDelta.y, delta.y, progress);\n this.setTargetDelta(targetDelta);\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n this.layout &&\n this.relativeParent &&\n this.relativeParent.layout) {\n calcRelativePosition(relativeLayout, this.layout.layoutBox, this.relativeParent.layout.layoutBox);\n mixBox(this.relativeTarget, this.relativeTargetOrigin, relativeLayout, progress);\n /**\n * If this is an unchanged relative target we can consider the\n * projection not dirty.\n */\n if (prevRelativeTarget &&\n boxEquals(this.relativeTarget, prevRelativeTarget)) {\n this.isProjectionDirty = false;\n }\n if (!prevRelativeTarget)\n prevRelativeTarget = createBox();\n copyBoxInto(prevRelativeTarget, this.relativeTarget);\n }\n if (isSharedLayoutAnimation) {\n this.animationValues = mixedValues;\n mixValues(mixedValues, snapshotLatestValues, this.latestValues, progress, shouldCrossfadeOpacity, isOnlyMember);\n }\n this.root.scheduleUpdateProjection();\n this.scheduleRender();\n this.animationProgress = progress;\n };\n this.mixTargetDelta(this.options.layoutRoot ? 1000 : 0);\n }\n startAnimation(options) {\n this.notifyListeners(\"animationStart\");\n this.currentAnimation && this.currentAnimation.stop();\n if (this.resumingFrom && this.resumingFrom.currentAnimation) {\n this.resumingFrom.currentAnimation.stop();\n }\n if (this.pendingAnimation) {\n cancelFrame(this.pendingAnimation);\n this.pendingAnimation = undefined;\n }\n /**\n * Start the animation in the next frame to have a frame with progress 0,\n * where the target is the same as when the animation started, so we can\n * calculate the relative positions correctly for instant transitions.\n */\n this.pendingAnimation = frame.update(() => {\n globalProjectionState.hasAnimatedSinceResize = true;\n this.currentAnimation = animateSingleValue(0, animationTarget, {\n ...options,\n onUpdate: (latest) => {\n this.mixTargetDelta(latest);\n options.onUpdate && options.onUpdate(latest);\n },\n onComplete: () => {\n options.onComplete && options.onComplete();\n this.completeAnimation();\n },\n });\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = this.currentAnimation;\n }\n this.pendingAnimation = undefined;\n });\n }\n completeAnimation() {\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = undefined;\n this.resumingFrom.preserveOpacity = undefined;\n }\n const stack = this.getStack();\n stack && stack.exitAnimationComplete();\n this.resumingFrom =\n this.currentAnimation =\n this.animationValues =\n undefined;\n this.notifyListeners(\"animationComplete\");\n }\n finishAnimation() {\n if (this.currentAnimation) {\n this.mixTargetDelta && this.mixTargetDelta(animationTarget);\n this.currentAnimation.stop();\n }\n this.completeAnimation();\n }\n applyTransformsToTarget() {\n const lead = this.getLead();\n let { targetWithTransforms, target, layout, latestValues } = lead;\n if (!targetWithTransforms || !target || !layout)\n return;\n /**\n * If we're only animating position, and this element isn't the lead element,\n * then instead of projecting into the lead box we instead want to calculate\n * a new target that aligns the two boxes but maintains the layout shape.\n */\n if (this !== lead &&\n this.layout &&\n layout &&\n shouldAnimatePositionOnly(this.options.animationType, this.layout.layoutBox, layout.layoutBox)) {\n target = this.target || createBox();\n const xLength = calcLength(this.layout.layoutBox.x);\n target.x.min = lead.target.x.min;\n target.x.max = target.x.min + xLength;\n const yLength = calcLength(this.layout.layoutBox.y);\n target.y.min = lead.target.y.min;\n target.y.max = target.y.min + yLength;\n }\n copyBoxInto(targetWithTransforms, target);\n /**\n * Apply the latest user-set transforms to the targetBox to produce the targetBoxFinal.\n * This is the final box that we will then project into by calculating a transform delta and\n * applying it to the corrected box.\n */\n transformBox(targetWithTransforms, latestValues);\n /**\n * Update the delta between the corrected box and the final target box, after\n * user-set transforms are applied to it. This will be used by the renderer to\n * create a transform style that will reproject the element from its layout layout\n * into the desired bounding box.\n */\n calcBoxDelta(this.projectionDeltaWithTransform, this.layoutCorrected, targetWithTransforms, latestValues);\n }\n registerSharedNode(layoutId, node) {\n if (!this.sharedNodes.has(layoutId)) {\n this.sharedNodes.set(layoutId, new NodeStack());\n }\n const stack = this.sharedNodes.get(layoutId);\n stack.add(node);\n const config = node.options.initialPromotionConfig;\n node.promote({\n transition: config ? config.transition : undefined,\n preserveFollowOpacity: config && config.shouldPreserveFollowOpacity\n ? config.shouldPreserveFollowOpacity(node)\n : undefined,\n });\n }\n isLead() {\n const stack = this.getStack();\n return stack ? stack.lead === this : true;\n }\n getLead() {\n var _a;\n const { layoutId } = this.options;\n return layoutId ? ((_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.lead) || this : this;\n }\n getPrevLead() {\n var _a;\n const { layoutId } = this.options;\n return layoutId ? (_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.prevLead : undefined;\n }\n getStack() {\n const { layoutId } = this.options;\n if (layoutId)\n return this.root.sharedNodes.get(layoutId);\n }\n promote({ needsReset, transition, preserveFollowOpacity, } = {}) {\n const stack = this.getStack();\n if (stack)\n stack.promote(this, preserveFollowOpacity);\n if (needsReset) {\n this.projectionDelta = undefined;\n this.needsReset = true;\n }\n if (transition)\n this.setOptions({ transition });\n }\n relegate() {\n const stack = this.getStack();\n if (stack) {\n return stack.relegate(this);\n }\n else {\n return false;\n }\n }\n resetSkewAndRotation() {\n const { visualElement } = this.options;\n if (!visualElement)\n return;\n // If there's no detected skew or rotation values, we can early return without a forced render.\n let hasDistortingTransform = false;\n /**\n * An unrolled check for rotation values. Most elements don't have any rotation and\n * skipping the nested loop and new object creation is 50% faster.\n */\n const { latestValues } = visualElement;\n if (latestValues.z ||\n latestValues.rotate ||\n latestValues.rotateX ||\n latestValues.rotateY ||\n latestValues.rotateZ ||\n latestValues.skewX ||\n latestValues.skewY) {\n hasDistortingTransform = true;\n }\n // If there's no distorting values, we don't need to do any more.\n if (!hasDistortingTransform)\n return;\n const resetValues = {};\n if (latestValues.z) {\n resetDistortingTransform(\"z\", visualElement, resetValues, this.animationValues);\n }\n // Check the skew and rotate value of all axes and reset to 0\n for (let i = 0; i < transformAxes.length; i++) {\n resetDistortingTransform(`rotate${transformAxes[i]}`, visualElement, resetValues, this.animationValues);\n resetDistortingTransform(`skew${transformAxes[i]}`, visualElement, resetValues, this.animationValues);\n }\n // Force a render of this element to apply the transform with all skews and rotations\n // set to 0.\n visualElement.render();\n // Put back all the values we reset\n for (const key in resetValues) {\n visualElement.setStaticValue(key, resetValues[key]);\n if (this.animationValues) {\n this.animationValues[key] = resetValues[key];\n }\n }\n // Schedule a render for the next frame. This ensures we won't visually\n // see the element with the reset rotate value applied.\n visualElement.scheduleRender();\n }\n getProjectionStyles(styleProp) {\n var _a, _b;\n if (!this.instance || this.isSVG)\n return undefined;\n if (!this.isVisible) {\n return hiddenVisibility;\n }\n const styles = {\n visibility: \"\",\n };\n const transformTemplate = this.getTransformTemplate();\n if (this.needsReset) {\n this.needsReset = false;\n styles.opacity = \"\";\n styles.pointerEvents =\n resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || \"\";\n styles.transform = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : \"none\";\n return styles;\n }\n const lead = this.getLead();\n if (!this.projectionDelta || !this.layout || !lead.target) {\n const emptyStyles = {};\n if (this.options.layoutId) {\n emptyStyles.opacity =\n this.latestValues.opacity !== undefined\n ? this.latestValues.opacity\n : 1;\n emptyStyles.pointerEvents =\n resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || \"\";\n }\n if (this.hasProjected && !hasTransform(this.latestValues)) {\n emptyStyles.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n this.hasProjected = false;\n }\n return emptyStyles;\n }\n const valuesToRender = lead.animationValues || lead.latestValues;\n this.applyTransformsToTarget();\n styles.transform = buildProjectionTransform(this.projectionDeltaWithTransform, this.treeScale, valuesToRender);\n if (transformTemplate) {\n styles.transform = transformTemplate(valuesToRender, styles.transform);\n }\n const { x, y } = this.projectionDelta;\n styles.transformOrigin = `${x.origin * 100}% ${y.origin * 100}% 0`;\n if (lead.animationValues) {\n /**\n * If the lead component is animating, assign this either the entering/leaving\n * opacity\n */\n styles.opacity =\n lead === this\n ? (_b = (_a = valuesToRender.opacity) !== null && _a !== void 0 ? _a : this.latestValues.opacity) !== null && _b !== void 0 ? _b : 1\n : this.preserveOpacity\n ? this.latestValues.opacity\n : valuesToRender.opacityExit;\n }\n else {\n /**\n * Or we're not animating at all, set the lead component to its layout\n * opacity and other components to hidden.\n */\n styles.opacity =\n lead === this\n ? valuesToRender.opacity !== undefined\n ? valuesToRender.opacity\n : \"\"\n : valuesToRender.opacityExit !== undefined\n ? valuesToRender.opacityExit\n : 0;\n }\n /**\n * Apply scale correction\n */\n for (const key in scaleCorrectors) {\n if (valuesToRender[key] === undefined)\n continue;\n const { correct, applyTo } = scaleCorrectors[key];\n /**\n * Only apply scale correction to the value if we have an\n * active projection transform. Otherwise these values become\n * vulnerable to distortion if the element changes size without\n * a corresponding layout animation.\n */\n const corrected = styles.transform === \"none\"\n ? valuesToRender[key]\n : correct(valuesToRender[key], lead);\n if (applyTo) {\n const num = applyTo.length;\n for (let i = 0; i < num; i++) {\n styles[applyTo[i]] = corrected;\n }\n }\n else {\n styles[key] = corrected;\n }\n }\n /**\n * Disable pointer events on follow components. This is to ensure\n * that if a follow component covers a lead component it doesn't block\n * pointer events on the lead.\n */\n if (this.options.layoutId) {\n styles.pointerEvents =\n lead === this\n ? resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || \"\"\n : \"none\";\n }\n return styles;\n }\n clearSnapshot() {\n this.resumeFrom = this.snapshot = undefined;\n }\n // Only run on root\n resetTree() {\n this.root.nodes.forEach((node) => { var _a; return (_a = node.currentAnimation) === null || _a === void 0 ? void 0 : _a.stop(); });\n this.root.nodes.forEach(clearMeasurements);\n this.root.sharedNodes.clear();\n }\n };\n}\nfunction updateLayout(node) {\n node.updateLayout();\n}\nfunction notifyLayoutUpdate(node) {\n var _a;\n const snapshot = ((_a = node.resumeFrom) === null || _a === void 0 ? void 0 : _a.snapshot) || node.snapshot;\n if (node.isLead() &&\n node.layout &&\n snapshot &&\n node.hasListeners(\"didUpdate\")) {\n const { layoutBox: layout, measuredBox: measuredLayout } = node.layout;\n const { animationType } = node.options;\n const isShared = snapshot.source !== node.layout.source;\n // TODO Maybe we want to also resize the layout snapshot so we don't trigger\n // animations for instance if layout=\"size\" and an element has only changed position\n if (animationType === \"size\") {\n eachAxis((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = calcLength(axisSnapshot);\n axisSnapshot.min = layout[axis].min;\n axisSnapshot.max = axisSnapshot.min + length;\n });\n }\n else if (shouldAnimatePositionOnly(animationType, snapshot.layoutBox, layout)) {\n eachAxis((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = calcLength(layout[axis]);\n axisSnapshot.max = axisSnapshot.min + length;\n /**\n * Ensure relative target gets resized and rerendererd\n */\n if (node.relativeTarget && !node.currentAnimation) {\n node.isProjectionDirty = true;\n node.relativeTarget[axis].max =\n node.relativeTarget[axis].min + length;\n }\n });\n }\n const layoutDelta = createDelta();\n calcBoxDelta(layoutDelta, layout, snapshot.layoutBox);\n const visualDelta = createDelta();\n if (isShared) {\n calcBoxDelta(visualDelta, node.applyTransform(measuredLayout, true), snapshot.measuredBox);\n }\n else {\n calcBoxDelta(visualDelta, layout, snapshot.layoutBox);\n }\n const hasLayoutChanged = !isDeltaZero(layoutDelta);\n let hasRelativeTargetChanged = false;\n if (!node.resumeFrom) {\n const relativeParent = node.getClosestProjectingParent();\n /**\n * If the relativeParent is itself resuming from a different element then\n * the relative snapshot is not relavent\n */\n if (relativeParent && !relativeParent.resumeFrom) {\n const { snapshot: parentSnapshot, layout: parentLayout } = relativeParent;\n if (parentSnapshot && parentLayout) {\n const relativeSnapshot = createBox();\n calcRelativePosition(relativeSnapshot, snapshot.layoutBox, parentSnapshot.layoutBox);\n const relativeLayout = createBox();\n calcRelativePosition(relativeLayout, layout, parentLayout.layoutBox);\n if (!boxEqualsRounded(relativeSnapshot, relativeLayout)) {\n hasRelativeTargetChanged = true;\n }\n if (relativeParent.options.layoutRoot) {\n node.relativeTarget = relativeLayout;\n node.relativeTargetOrigin = relativeSnapshot;\n node.relativeParent = relativeParent;\n }\n }\n }\n }\n node.notifyListeners(\"didUpdate\", {\n layout,\n snapshot,\n delta: visualDelta,\n layoutDelta,\n hasLayoutChanged,\n hasRelativeTargetChanged,\n });\n }\n else if (node.isLead()) {\n const { onExitComplete } = node.options;\n onExitComplete && onExitComplete();\n }\n /**\n * Clearing transition\n * TODO: Investigate why this transition is being passed in as {type: false } from Framer\n * and why we need it at all\n */\n node.options.transition = undefined;\n}\nfunction propagateDirtyNodes(node) {\n /**\n * Increase debug counter for nodes encountered this frame\n */\n if (isDebug) {\n metrics.totalNodes++;\n }\n if (!node.parent)\n return;\n /**\n * If this node isn't projecting, propagate isProjectionDirty. It will have\n * no performance impact but it will allow the next child that *is* projecting\n * but *isn't* dirty to just check its parent to see if *any* ancestor needs\n * correcting.\n */\n if (!node.isProjecting()) {\n node.isProjectionDirty = node.parent.isProjectionDirty;\n }\n /**\n * Propagate isSharedProjectionDirty and isTransformDirty\n * throughout the whole tree. A future revision can take another look at\n * this but for safety we still recalcualte shared nodes.\n */\n node.isSharedProjectionDirty || (node.isSharedProjectionDirty = Boolean(node.isProjectionDirty ||\n node.parent.isProjectionDirty ||\n node.parent.isSharedProjectionDirty));\n node.isTransformDirty || (node.isTransformDirty = node.parent.isTransformDirty);\n}\nfunction cleanDirtyNodes(node) {\n node.isProjectionDirty =\n node.isSharedProjectionDirty =\n node.isTransformDirty =\n false;\n}\nfunction clearSnapshot(node) {\n node.clearSnapshot();\n}\nfunction clearMeasurements(node) {\n node.clearMeasurements();\n}\nfunction clearIsLayoutDirty(node) {\n node.isLayoutDirty = false;\n}\nfunction resetTransformStyle(node) {\n const { visualElement } = node.options;\n if (visualElement && visualElement.getProps().onBeforeLayoutMeasure) {\n visualElement.notify(\"BeforeLayoutMeasure\");\n }\n node.resetTransform();\n}\nfunction finishAnimation(node) {\n node.finishAnimation();\n node.targetDelta = node.relativeTarget = node.target = undefined;\n node.isProjectionDirty = true;\n}\nfunction resolveTargetDelta(node) {\n node.resolveTargetDelta();\n}\nfunction calcProjection(node) {\n node.calcProjection();\n}\nfunction resetSkewAndRotation(node) {\n node.resetSkewAndRotation();\n}\nfunction removeLeadSnapshots(stack) {\n stack.removeLeadSnapshot();\n}\nfunction mixAxisDelta(output, delta, p) {\n output.translate = mixNumber(delta.translate, 0, p);\n output.scale = mixNumber(delta.scale, 1, p);\n output.origin = delta.origin;\n output.originPoint = delta.originPoint;\n}\nfunction mixAxis(output, from, to, p) {\n output.min = mixNumber(from.min, to.min, p);\n output.max = mixNumber(from.max, to.max, p);\n}\nfunction mixBox(output, from, to, p) {\n mixAxis(output.x, from.x, to.x, p);\n mixAxis(output.y, from.y, to.y, p);\n}\nfunction hasOpacityCrossfade(node) {\n return (node.animationValues && node.animationValues.opacityExit !== undefined);\n}\nconst defaultLayoutTransition = {\n duration: 0.45,\n ease: [0.4, 0, 0.1, 1],\n};\nconst userAgentContains = (string) => typeof navigator !== \"undefined\" &&\n navigator.userAgent &&\n navigator.userAgent.toLowerCase().includes(string);\n/**\n * Measured bounding boxes must be rounded in Safari and\n * left untouched in Chrome, otherwise non-integer layouts within scaled-up elements\n * can appear to jump.\n */\nconst roundPoint = userAgentContains(\"applewebkit/\") && !userAgentContains(\"chrome/\")\n ? Math.round\n : noop;\nfunction roundAxis(axis) {\n // Round to the nearest .5 pixels to support subpixel layouts\n axis.min = roundPoint(axis.min);\n axis.max = roundPoint(axis.max);\n}\nfunction roundBox(box) {\n roundAxis(box.x);\n roundAxis(box.y);\n}\nfunction shouldAnimatePositionOnly(animationType, snapshot, layout) {\n return (animationType === \"position\" ||\n (animationType === \"preserve-aspect\" &&\n !isNear(aspectRatio(snapshot), aspectRatio(layout), 0.2)));\n}\nfunction checkNodeWasScrollRoot(node) {\n var _a;\n return node !== node.root && ((_a = node.scroll) === null || _a === void 0 ? void 0 : _a.wasRoot);\n}\n\nexport { cleanDirtyNodes, createProjectionNode, mixAxis, mixAxisDelta, mixBox, propagateDirtyNodes };\n","function isSVGElement(element) {\n return element instanceof SVGElement && element.tagName !== \"svg\";\n}\n\nexport { isSVGElement };\n","import { secondsToMilliseconds } from 'motion-utils';\nimport { time } from '../frameloop/sync-time.mjs';\nimport { frame, cancelFrame } from '../frameloop/frame.mjs';\n\n/**\n * Timeout defined in ms\n */\nfunction delay(callback, timeout) {\n const start = time.now();\n const checkElapsed = ({ timestamp }) => {\n const elapsed = timestamp - start;\n if (elapsed >= timeout) {\n cancelFrame(checkElapsed);\n callback(elapsed - timeout);\n }\n };\n frame.read(checkElapsed, true);\n return () => cancelFrame(checkElapsed);\n}\nfunction delayInSeconds(callback, timeout) {\n return delay(callback, secondsToMilliseconds(timeout));\n}\n\nexport { delay, delayInSeconds };\n","import { motionValue } from '../../value/index.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\nimport { animateMotionValue } from '../interfaces/motion-value.mjs';\n\nfunction animateSingleValue(value, keyframes, options) {\n const motionValue$1 = isMotionValue(value) ? value : motionValue(value);\n motionValue$1.start(animateMotionValue(\"\", motionValue$1, keyframes, options));\n return motionValue$1.animation;\n}\n\nexport { animateSingleValue };\n","function buildProjectionTransform(delta, treeScale, latestTransform) {\n let transform = \"\";\n /**\n * The translations we use to calculate are always relative to the viewport coordinate space.\n * But when we apply scales, we also scale the coordinate space of an element and its children.\n * For instance if we have a treeScale (the culmination of all parent scales) of 0.5 and we need\n * to move an element 100 pixels, we actually need to move it 200 in within that scaled space.\n */\n const xTranslate = delta.x.translate / treeScale.x;\n const yTranslate = delta.y.translate / treeScale.y;\n const zTranslate = (latestTransform === null || latestTransform === void 0 ? void 0 : latestTransform.z) || 0;\n if (xTranslate || yTranslate || zTranslate) {\n transform = `translate3d(${xTranslate}px, ${yTranslate}px, ${zTranslate}px) `;\n }\n /**\n * Apply scale correction for the tree transform.\n * This will apply scale to the screen-orientated axes.\n */\n if (treeScale.x !== 1 || treeScale.y !== 1) {\n transform += `scale(${1 / treeScale.x}, ${1 / treeScale.y}) `;\n }\n if (latestTransform) {\n const { transformPerspective, rotate, rotateX, rotateY, skewX, skewY } = latestTransform;\n if (transformPerspective)\n transform = `perspective(${transformPerspective}px) ${transform}`;\n if (rotate)\n transform += `rotate(${rotate}deg) `;\n if (rotateX)\n transform += `rotateX(${rotateX}deg) `;\n if (rotateY)\n transform += `rotateY(${rotateY}deg) `;\n if (skewX)\n transform += `skewX(${skewX}deg) `;\n if (skewY)\n transform += `skewY(${skewY}deg) `;\n }\n /**\n * Apply scale to match the size of the element to the size we want it.\n * This will apply scale to the element-orientated axes.\n */\n const elementScaleX = delta.x.scale * treeScale.x;\n const elementScaleY = delta.y.scale * treeScale.y;\n if (elementScaleX !== 1 || elementScaleY !== 1) {\n transform += `scale(${elementScaleX}, ${elementScaleY})`;\n }\n return transform || \"none\";\n}\n\nexport { buildProjectionTransform };\n","import { createProjectionNode } from './create-projection-node.mjs';\nimport { addDomEvent } from '../../events/add-dom-event.mjs';\n\nconst DocumentProjectionNode = createProjectionNode({\n attachResizeListener: (ref, notify) => addDomEvent(ref, \"resize\", notify),\n measureScroll: () => ({\n x: document.documentElement.scrollLeft || document.body.scrollLeft,\n y: document.documentElement.scrollTop || document.body.scrollTop,\n }),\n checkIsScrollRoot: () => true,\n});\n\nexport { DocumentProjectionNode };\n","import { createProjectionNode } from './create-projection-node.mjs';\nimport { DocumentProjectionNode } from './DocumentProjectionNode.mjs';\n\nconst rootProjectionNode = {\n current: undefined,\n};\nconst HTMLProjectionNode = createProjectionNode({\n measureScroll: (instance) => ({\n x: instance.scrollLeft,\n y: instance.scrollTop,\n }),\n defaultParent: () => {\n if (!rootProjectionNode.current) {\n const documentNode = new DocumentProjectionNode({});\n documentNode.mount(window);\n documentNode.setOptions({ layoutScroll: true });\n rootProjectionNode.current = documentNode;\n }\n return rootProjectionNode.current;\n },\n resetTransform: (instance, value) => {\n instance.style.transform = value !== undefined ? value : \"none\";\n },\n checkIsScrollRoot: (instance) => Boolean(window.getComputedStyle(instance).position === \"fixed\"),\n});\n\nexport { HTMLProjectionNode, rootProjectionNode };\n","import { DragGesture } from '../../gestures/drag/index.mjs';\nimport { PanGesture } from '../../gestures/pan/index.mjs';\nimport { MeasureLayout } from './layout/MeasureLayout.mjs';\nimport { HTMLProjectionNode } from '../../projection/node/HTMLProjectionNode.mjs';\n\nconst drag = {\n pan: {\n Feature: PanGesture,\n },\n drag: {\n Feature: DragGesture,\n ProjectionNode: HTMLProjectionNode,\n MeasureLayout,\n },\n};\n\nexport { drag };\n","import { Feature } from '../../motion/features/Feature.mjs';\nimport { noop } from 'motion-utils';\nimport { VisualElementDragControls } from './VisualElementDragControls.mjs';\n\nclass DragGesture extends Feature {\n constructor(node) {\n super(node);\n this.removeGroupControls = noop;\n this.removeListeners = noop;\n this.controls = new VisualElementDragControls(node);\n }\n mount() {\n // If we've been provided a DragControls for manual control over the drag gesture,\n // subscribe this component to it on mount.\n const { dragControls } = this.node.getProps();\n if (dragControls) {\n this.removeGroupControls = dragControls.subscribe(this.controls);\n }\n this.removeListeners = this.controls.addListeners() || noop;\n }\n unmount() {\n this.removeGroupControls();\n this.removeListeners();\n }\n}\n\nexport { DragGesture };\n","import { Feature } from '../motion/features/Feature.mjs';\nimport { hover } from 'motion-dom';\nimport { extractEventInfo } from '../events/event-info.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction handleHoverEvent(node, event, lifecycle) {\n const { props } = node;\n if (node.animationState && props.whileHover) {\n node.animationState.setActive(\"whileHover\", lifecycle === \"Start\");\n }\n const eventName = (\"onHover\" + lifecycle);\n const callback = props[eventName];\n if (callback) {\n frame.postRender(() => callback(event, extractEventInfo(event)));\n }\n}\nclass HoverGesture extends Feature {\n mount() {\n const { current } = this.node;\n if (!current)\n return;\n this.unmount = hover(current, (startEvent) => {\n handleHoverEvent(this.node, startEvent, \"Start\");\n return (endEvent) => handleHoverEvent(this.node, endEvent, \"End\");\n });\n }\n unmount() { }\n}\n\nexport { HoverGesture };\n","import { Feature } from '../motion/features/Feature.mjs';\nimport { press } from 'motion-dom';\nimport { extractEventInfo } from '../events/event-info.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction handlePressEvent(node, event, lifecycle) {\n const { props } = node;\n if (node.animationState && props.whileTap) {\n node.animationState.setActive(\"whileTap\", lifecycle === \"Start\");\n }\n const eventName = (\"onTap\" + (lifecycle === \"End\" ? \"\" : lifecycle));\n const callback = props[eventName];\n if (callback) {\n frame.postRender(() => callback(event, extractEventInfo(event)));\n }\n}\nclass PressGesture extends Feature {\n mount() {\n const { current } = this.node;\n if (!current)\n return;\n this.unmount = press(current, (startEvent) => {\n handlePressEvent(this.node, startEvent, \"Start\");\n return (endEvent, { success }) => handlePressEvent(this.node, endEvent, success ? \"End\" : \"Cancel\");\n }, { useGlobalTarget: this.node.props.globalTapTarget });\n }\n unmount() { }\n}\n\nexport { PressGesture };\n","/**\n * Map an IntersectionHandler callback to an element. We only ever make one handler for one\n * element, so even though these handlers might all be triggered by different\n * observers, we can keep them in the same map.\n */\nconst observerCallbacks = new WeakMap();\n/**\n * Multiple observers can be created for multiple element/document roots. Each with\n * different settings. So here we store dictionaries of observers to each root,\n * using serialised settings (threshold/margin) as lookup keys.\n */\nconst observers = new WeakMap();\nconst fireObserverCallback = (entry) => {\n const callback = observerCallbacks.get(entry.target);\n callback && callback(entry);\n};\nconst fireAllObserverCallbacks = (entries) => {\n entries.forEach(fireObserverCallback);\n};\nfunction initIntersectionObserver({ root, ...options }) {\n const lookupRoot = root || document;\n /**\n * If we don't have an observer lookup map for this root, create one.\n */\n if (!observers.has(lookupRoot)) {\n observers.set(lookupRoot, {});\n }\n const rootObservers = observers.get(lookupRoot);\n const key = JSON.stringify(options);\n /**\n * If we don't have an observer for this combination of root and settings,\n * create one.\n */\n if (!rootObservers[key]) {\n rootObservers[key] = new IntersectionObserver(fireAllObserverCallbacks, { root, ...options });\n }\n return rootObservers[key];\n}\nfunction observeIntersection(element, options, callback) {\n const rootInteresectionObserver = initIntersectionObserver(options);\n observerCallbacks.set(element, callback);\n rootInteresectionObserver.observe(element);\n return () => {\n observerCallbacks.delete(element);\n rootInteresectionObserver.unobserve(element);\n };\n}\n\nexport { observeIntersection };\n","import { Feature } from '../Feature.mjs';\nimport { observeIntersection } from './observers.mjs';\n\nconst thresholdNames = {\n some: 0,\n all: 1,\n};\nclass InViewFeature extends Feature {\n constructor() {\n super(...arguments);\n this.hasEnteredView = false;\n this.isInView = false;\n }\n startObserver() {\n this.unmount();\n const { viewport = {} } = this.node.getProps();\n const { root, margin: rootMargin, amount = \"some\", once } = viewport;\n const options = {\n root: root ? root.current : undefined,\n rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholdNames[amount],\n };\n const onIntersectionUpdate = (entry) => {\n const { isIntersecting } = entry;\n /**\n * If there's been no change in the viewport state, early return.\n */\n if (this.isInView === isIntersecting)\n return;\n this.isInView = isIntersecting;\n /**\n * Handle hasEnteredView. If this is only meant to run once, and\n * element isn't visible, early return. Otherwise set hasEnteredView to true.\n */\n if (once && !isIntersecting && this.hasEnteredView) {\n return;\n }\n else if (isIntersecting) {\n this.hasEnteredView = true;\n }\n if (this.node.animationState) {\n this.node.animationState.setActive(\"whileInView\", isIntersecting);\n }\n /**\n * Use the latest committed props rather than the ones in scope\n * when this observer is created\n */\n const { onViewportEnter, onViewportLeave } = this.node.getProps();\n const callback = isIntersecting ? onViewportEnter : onViewportLeave;\n callback && callback(entry);\n };\n return observeIntersection(this.node.current, options, onIntersectionUpdate);\n }\n mount() {\n this.startObserver();\n }\n update() {\n if (typeof IntersectionObserver === \"undefined\")\n return;\n const { props, prevProps } = this.node;\n const hasOptionsChanged = [\"amount\", \"margin\", \"root\"].some(hasViewportOptionChanged(props, prevProps));\n if (hasOptionsChanged) {\n this.startObserver();\n }\n }\n unmount() { }\n}\nfunction hasViewportOptionChanged({ viewport = {} }, { viewport: prevViewport = {} } = {}) {\n return (name) => viewport[name] !== prevViewport[name];\n}\n\nexport { InViewFeature };\n","import { HoverGesture } from '../../gestures/hover.mjs';\nimport { FocusGesture } from '../../gestures/focus.mjs';\nimport { PressGesture } from '../../gestures/press.mjs';\nimport { InViewFeature } from './viewport/index.mjs';\n\nconst gestureAnimations = {\n inView: {\n Feature: InViewFeature,\n },\n tap: {\n Feature: PressGesture,\n },\n focus: {\n Feature: FocusGesture,\n },\n hover: {\n Feature: HoverGesture,\n },\n};\n\nexport { gestureAnimations };\n","import { addDomEvent } from '../events/add-dom-event.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\nimport { pipe } from '../utils/pipe.mjs';\n\nclass FocusGesture extends Feature {\n constructor() {\n super(...arguments);\n this.isActive = false;\n }\n onFocus() {\n let isFocusVisible = false;\n /**\n * If this element doesn't match focus-visible then don't\n * apply whileHover. But, if matches throws that focus-visible\n * is not a valid selector then in that browser outline styles will be applied\n * to the element by default and we want to match that behaviour with whileFocus.\n */\n try {\n isFocusVisible = this.node.current.matches(\":focus-visible\");\n }\n catch (e) {\n isFocusVisible = true;\n }\n if (!isFocusVisible || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", true);\n this.isActive = true;\n }\n onBlur() {\n if (!this.isActive || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", false);\n this.isActive = false;\n }\n mount() {\n this.unmount = pipe(addDomEvent(this.node.current, \"focus\", () => this.onFocus()), addDomEvent(this.node.current, \"blur\", () => this.onBlur()));\n }\n unmount() { }\n}\n\nexport { FocusGesture };\n","import { HTMLProjectionNode } from '../../projection/node/HTMLProjectionNode.mjs';\nimport { MeasureLayout } from './layout/MeasureLayout.mjs';\n\nconst layout = {\n layout: {\n ProjectionNode: HTMLProjectionNode,\n MeasureLayout,\n },\n};\n\nexport { layout };\n","// Does this device prefer reduced motion? Returns `null` server-side.\nconst prefersReducedMotion = { current: null };\nconst hasReducedMotionListener = { current: false };\n\nexport { hasReducedMotionListener, prefersReducedMotion };\n","import { color } from '../../../value/types/color/index.mjs';\nimport { complex } from '../../../value/types/complex/index.mjs';\nimport { dimensionValueTypes } from './dimensions.mjs';\nimport { testValueType } from './test.mjs';\n\n/**\n * A list of all ValueTypes\n */\nconst valueTypes = [...dimensionValueTypes, color, complex];\n/**\n * Tests a value against the list of ValueTypes\n */\nconst findValueType = (v) => valueTypes.find(testValueType(v));\n\nexport { findValueType };\n","const visualElementStore = new WeakMap();\n\nexport { visualElementStore };\n","import { time } from '../frameloop/sync-time.mjs';\nimport { featureDefinitions } from '../motion/features/definitions.mjs';\nimport { createBox } from '../projection/geometry/models.mjs';\nimport { isNumericalString } from '../utils/is-numerical-string.mjs';\nimport { isZeroValueString } from '../utils/is-zero-value-string.mjs';\nimport { initPrefersReducedMotion } from '../utils/reduced-motion/index.mjs';\nimport { hasReducedMotionListener, prefersReducedMotion } from '../utils/reduced-motion/state.mjs';\nimport { SubscriptionManager } from '../utils/subscription-manager.mjs';\nimport { warnOnce } from '../utils/warn-once.mjs';\nimport { motionValue } from '../value/index.mjs';\nimport { complex } from '../value/types/complex/index.mjs';\nimport { isMotionValue } from '../value/utils/is-motion-value.mjs';\nimport { getAnimatableNone } from './dom/value-types/animatable-none.mjs';\nimport { findValueType } from './dom/value-types/find.mjs';\nimport { transformProps } from './html/utils/keys-transform.mjs';\nimport { visualElementStore } from './store.mjs';\nimport { isControllingVariants, isVariantNode } from './utils/is-controlling-variants.mjs';\nimport { KeyframeResolver } from './utils/KeyframesResolver.mjs';\nimport { updateMotionValuesFromProps } from './utils/motion-values.mjs';\nimport { resolveVariantFromProps } from './utils/resolve-variants.mjs';\nimport { frame, cancelFrame } from '../frameloop/frame.mjs';\n\nconst propEventHandlers = [\n \"AnimationStart\",\n \"AnimationComplete\",\n \"Update\",\n \"BeforeLayoutMeasure\",\n \"LayoutMeasure\",\n \"LayoutAnimationStart\",\n \"LayoutAnimationComplete\",\n];\n/**\n * A VisualElement is an imperative abstraction around UI elements such as\n * HTMLElement, SVGElement, Three.Object3D etc.\n */\nclass VisualElement {\n /**\n * This method takes React props and returns found MotionValues. For example, HTML\n * MotionValues will be found within the style prop, whereas for Three.js within attribute arrays.\n *\n * This isn't an abstract method as it needs calling in the constructor, but it is\n * intended to be one.\n */\n scrapeMotionValuesFromProps(_props, _prevProps, _visualElement) {\n return {};\n }\n constructor({ parent, props, presenceContext, reducedMotionConfig, blockInitialAnimation, visualState, }, options = {}) {\n /**\n * A reference to the current underlying Instance, e.g. a HTMLElement\n * or Three.Mesh etc.\n */\n this.current = null;\n /**\n * A set containing references to this VisualElement's children.\n */\n this.children = new Set();\n /**\n * Determine what role this visual element should take in the variant tree.\n */\n this.isVariantNode = false;\n this.isControllingVariants = false;\n /**\n * Decides whether this VisualElement should animate in reduced motion\n * mode.\n *\n * TODO: This is currently set on every individual VisualElement but feels\n * like it could be set globally.\n */\n this.shouldReduceMotion = null;\n /**\n * A map of all motion values attached to this visual element. Motion\n * values are source of truth for any given animated value. A motion\n * value might be provided externally by the component via props.\n */\n this.values = new Map();\n this.KeyframeResolver = KeyframeResolver;\n /**\n * Cleanup functions for active features (hover/tap/exit etc)\n */\n this.features = {};\n /**\n * A map of every subscription that binds the provided or generated\n * motion values onChange listeners to this visual element.\n */\n this.valueSubscriptions = new Map();\n /**\n * A reference to the previously-provided motion values as returned\n * from scrapeMotionValuesFromProps. We use the keys in here to determine\n * if any motion values need to be removed after props are updated.\n */\n this.prevMotionValues = {};\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n /**\n * An object containing an unsubscribe function for each prop event subscription.\n * For example, every \"Update\" event can have multiple subscribers via\n * VisualElement.on(), but only one of those can be defined via the onUpdate prop.\n */\n this.propEventSubscriptions = {};\n this.notifyUpdate = () => this.notify(\"Update\", this.latestValues);\n this.render = () => {\n if (!this.current)\n return;\n this.triggerBuild();\n this.renderInstance(this.current, this.renderState, this.props.style, this.projection);\n };\n this.renderScheduledAt = 0.0;\n this.scheduleRender = () => {\n const now = time.now();\n if (this.renderScheduledAt < now) {\n this.renderScheduledAt = now;\n frame.render(this.render, false, true);\n }\n };\n const { latestValues, renderState, onUpdate } = visualState;\n this.onUpdate = onUpdate;\n this.latestValues = latestValues;\n this.baseTarget = { ...latestValues };\n this.initialValues = props.initial ? { ...latestValues } : {};\n this.renderState = renderState;\n this.parent = parent;\n this.props = props;\n this.presenceContext = presenceContext;\n this.depth = parent ? parent.depth + 1 : 0;\n this.reducedMotionConfig = reducedMotionConfig;\n this.options = options;\n this.blockInitialAnimation = Boolean(blockInitialAnimation);\n this.isControllingVariants = isControllingVariants(props);\n this.isVariantNode = isVariantNode(props);\n if (this.isVariantNode) {\n this.variantChildren = new Set();\n }\n this.manuallyAnimateOnMount = Boolean(parent && parent.current);\n /**\n * Any motion values that are provided to the element when created\n * aren't yet bound to the element, as this would technically be impure.\n * However, we iterate through the motion values and set them to the\n * initial values for this component.\n *\n * TODO: This is impure and we should look at changing this to run on mount.\n * Doing so will break some tests but this isn't necessarily a breaking change,\n * more a reflection of the test.\n */\n const { willChange, ...initialMotionValues } = this.scrapeMotionValuesFromProps(props, {}, this);\n for (const key in initialMotionValues) {\n const value = initialMotionValues[key];\n if (latestValues[key] !== undefined && isMotionValue(value)) {\n value.set(latestValues[key], false);\n }\n }\n }\n mount(instance) {\n this.current = instance;\n visualElementStore.set(instance, this);\n if (this.projection && !this.projection.instance) {\n this.projection.mount(instance);\n }\n if (this.parent && this.isVariantNode && !this.isControllingVariants) {\n this.removeFromVariantTree = this.parent.addVariantChild(this);\n }\n this.values.forEach((value, key) => this.bindToMotionValue(key, value));\n if (!hasReducedMotionListener.current) {\n initPrefersReducedMotion();\n }\n this.shouldReduceMotion =\n this.reducedMotionConfig === \"never\"\n ? false\n : this.reducedMotionConfig === \"always\"\n ? true\n : prefersReducedMotion.current;\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(this.shouldReduceMotion !== true, \"You have Reduced Motion enabled on your device. Animations may not appear as expected.\");\n }\n if (this.parent)\n this.parent.children.add(this);\n this.update(this.props, this.presenceContext);\n }\n unmount() {\n visualElementStore.delete(this.current);\n this.projection && this.projection.unmount();\n cancelFrame(this.notifyUpdate);\n cancelFrame(this.render);\n this.valueSubscriptions.forEach((remove) => remove());\n this.valueSubscriptions.clear();\n this.removeFromVariantTree && this.removeFromVariantTree();\n this.parent && this.parent.children.delete(this);\n for (const key in this.events) {\n this.events[key].clear();\n }\n for (const key in this.features) {\n const feature = this.features[key];\n if (feature) {\n feature.unmount();\n feature.isMounted = false;\n }\n }\n this.current = null;\n }\n bindToMotionValue(key, value) {\n if (this.valueSubscriptions.has(key)) {\n this.valueSubscriptions.get(key)();\n }\n const valueIsTransform = transformProps.has(key);\n const removeOnChange = value.on(\"change\", (latestValue) => {\n this.latestValues[key] = latestValue;\n this.props.onUpdate && frame.preRender(this.notifyUpdate);\n if (valueIsTransform && this.projection) {\n this.projection.isTransformDirty = true;\n }\n });\n const removeOnRenderRequest = value.on(\"renderRequest\", this.scheduleRender);\n let removeSyncCheck;\n if (window.MotionCheckAppearSync) {\n removeSyncCheck = window.MotionCheckAppearSync(this, key, value);\n }\n this.valueSubscriptions.set(key, () => {\n removeOnChange();\n removeOnRenderRequest();\n if (removeSyncCheck)\n removeSyncCheck();\n if (value.owner)\n value.stop();\n });\n }\n sortNodePosition(other) {\n /**\n * If these nodes aren't even of the same type we can't compare their depth.\n */\n if (!this.current ||\n !this.sortInstanceNodePosition ||\n this.type !== other.type) {\n return 0;\n }\n return this.sortInstanceNodePosition(this.current, other.current);\n }\n updateFeatures() {\n let key = \"animation\";\n for (key in featureDefinitions) {\n const featureDefinition = featureDefinitions[key];\n if (!featureDefinition)\n continue;\n const { isEnabled, Feature: FeatureConstructor } = featureDefinition;\n /**\n * If this feature is enabled but not active, make a new instance.\n */\n if (!this.features[key] &&\n FeatureConstructor &&\n isEnabled(this.props)) {\n this.features[key] = new FeatureConstructor(this);\n }\n /**\n * If we have a feature, mount or update it.\n */\n if (this.features[key]) {\n const feature = this.features[key];\n if (feature.isMounted) {\n feature.update();\n }\n else {\n feature.mount();\n feature.isMounted = true;\n }\n }\n }\n }\n triggerBuild() {\n this.build(this.renderState, this.latestValues, this.props);\n }\n /**\n * Measure the current viewport box with or without transforms.\n * Only measures axis-aligned boxes, rotate and skew must be manually\n * removed with a re-render to work.\n */\n measureViewportBox() {\n return this.current\n ? this.measureInstanceViewportBox(this.current, this.props)\n : createBox();\n }\n getStaticValue(key) {\n return this.latestValues[key];\n }\n setStaticValue(key, value) {\n this.latestValues[key] = value;\n }\n /**\n * Update the provided props. Ensure any newly-added motion values are\n * added to our map, old ones removed, and listeners updated.\n */\n update(props, presenceContext) {\n if (props.transformTemplate || this.props.transformTemplate) {\n this.scheduleRender();\n }\n this.prevProps = this.props;\n this.props = props;\n this.prevPresenceContext = this.presenceContext;\n this.presenceContext = presenceContext;\n /**\n * Update prop event handlers ie onAnimationStart, onAnimationComplete\n */\n for (let i = 0; i < propEventHandlers.length; i++) {\n const key = propEventHandlers[i];\n if (this.propEventSubscriptions[key]) {\n this.propEventSubscriptions[key]();\n delete this.propEventSubscriptions[key];\n }\n const listenerName = (\"on\" + key);\n const listener = props[listenerName];\n if (listener) {\n this.propEventSubscriptions[key] = this.on(key, listener);\n }\n }\n this.prevMotionValues = updateMotionValuesFromProps(this, this.scrapeMotionValuesFromProps(props, this.prevProps, this), this.prevMotionValues);\n if (this.handleChildMotionValue) {\n this.handleChildMotionValue();\n }\n this.onUpdate && this.onUpdate(this);\n }\n getProps() {\n return this.props;\n }\n /**\n * Returns the variant definition with a given name.\n */\n getVariant(name) {\n return this.props.variants ? this.props.variants[name] : undefined;\n }\n /**\n * Returns the defined default transition on this component.\n */\n getDefaultTransition() {\n return this.props.transition;\n }\n getTransformPagePoint() {\n return this.props.transformPagePoint;\n }\n getClosestVariantNode() {\n return this.isVariantNode\n ? this\n : this.parent\n ? this.parent.getClosestVariantNode()\n : undefined;\n }\n /**\n * Add a child visual element to our set of children.\n */\n addVariantChild(child) {\n const closestVariantNode = this.getClosestVariantNode();\n if (closestVariantNode) {\n closestVariantNode.variantChildren &&\n closestVariantNode.variantChildren.add(child);\n return () => closestVariantNode.variantChildren.delete(child);\n }\n }\n /**\n * Add a motion value and bind it to this visual element.\n */\n addValue(key, value) {\n // Remove existing value if it exists\n const existingValue = this.values.get(key);\n if (value !== existingValue) {\n if (existingValue)\n this.removeValue(key);\n this.bindToMotionValue(key, value);\n this.values.set(key, value);\n this.latestValues[key] = value.get();\n }\n }\n /**\n * Remove a motion value and unbind any active subscriptions.\n */\n removeValue(key) {\n this.values.delete(key);\n const unsubscribe = this.valueSubscriptions.get(key);\n if (unsubscribe) {\n unsubscribe();\n this.valueSubscriptions.delete(key);\n }\n delete this.latestValues[key];\n this.removeValueFromRenderState(key, this.renderState);\n }\n /**\n * Check whether we have a motion value for this key\n */\n hasValue(key) {\n return this.values.has(key);\n }\n getValue(key, defaultValue) {\n if (this.props.values && this.props.values[key]) {\n return this.props.values[key];\n }\n let value = this.values.get(key);\n if (value === undefined && defaultValue !== undefined) {\n value = motionValue(defaultValue === null ? undefined : defaultValue, { owner: this });\n this.addValue(key, value);\n }\n return value;\n }\n /**\n * If we're trying to animate to a previously unencountered value,\n * we need to check for it in our state and as a last resort read it\n * directly from the instance (which might have performance implications).\n */\n readValue(key, target) {\n var _a;\n let value = this.latestValues[key] !== undefined || !this.current\n ? this.latestValues[key]\n : (_a = this.getBaseTargetFromProps(this.props, key)) !== null && _a !== void 0 ? _a : this.readValueFromInstance(this.current, key, this.options);\n if (value !== undefined && value !== null) {\n if (typeof value === \"string\" &&\n (isNumericalString(value) || isZeroValueString(value))) {\n // If this is a number read as a string, ie \"0\" or \"200\", convert it to a number\n value = parseFloat(value);\n }\n else if (!findValueType(value) && complex.test(target)) {\n value = getAnimatableNone(key, target);\n }\n this.setBaseTarget(key, isMotionValue(value) ? value.get() : value);\n }\n return isMotionValue(value) ? value.get() : value;\n }\n /**\n * Set the base target to later animate back to. This is currently\n * only hydrated on creation and when we first read a value.\n */\n setBaseTarget(key, value) {\n this.baseTarget[key] = value;\n }\n /**\n * Find the base target for a value thats been removed from all animation\n * props.\n */\n getBaseTarget(key) {\n var _a;\n const { initial } = this.props;\n let valueFromInitial;\n if (typeof initial === \"string\" || typeof initial === \"object\") {\n const variant = resolveVariantFromProps(this.props, initial, (_a = this.presenceContext) === null || _a === void 0 ? void 0 : _a.custom);\n if (variant) {\n valueFromInitial = variant[key];\n }\n }\n /**\n * If this value still exists in the current initial variant, read that.\n */\n if (initial && valueFromInitial !== undefined) {\n return valueFromInitial;\n }\n /**\n * Alternatively, if this VisualElement config has defined a getBaseTarget\n * so we can read the value from an alternative source, try that.\n */\n const target = this.getBaseTargetFromProps(this.props, key);\n if (target !== undefined && !isMotionValue(target))\n return target;\n /**\n * If the value was initially defined on initial, but it doesn't any more,\n * return undefined. Otherwise return the value as initially read from the DOM.\n */\n return this.initialValues[key] !== undefined &&\n valueFromInitial === undefined\n ? undefined\n : this.baseTarget[key];\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new SubscriptionManager();\n }\n return this.events[eventName].add(callback);\n }\n notify(eventName, ...args) {\n if (this.events[eventName]) {\n this.events[eventName].notify(...args);\n }\n }\n}\n\nexport { VisualElement };\n","import { isBrowser } from '../is-browser.mjs';\nimport { hasReducedMotionListener, prefersReducedMotion } from './state.mjs';\n\nfunction initPrefersReducedMotion() {\n hasReducedMotionListener.current = true;\n if (!isBrowser)\n return;\n if (window.matchMedia) {\n const motionMediaQuery = window.matchMedia(\"(prefers-reduced-motion)\");\n const setReducedMotionPreferences = () => (prefersReducedMotion.current = motionMediaQuery.matches);\n motionMediaQuery.addListener(setReducedMotionPreferences);\n setReducedMotionPreferences();\n }\n else {\n prefersReducedMotion.current = false;\n }\n}\n\nexport { initPrefersReducedMotion };\n","import { warnOnce } from '../../utils/warn-once.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction updateMotionValuesFromProps(element, next, prev) {\n for (const key in next) {\n const nextValue = next[key];\n const prevValue = prev[key];\n if (isMotionValue(nextValue)) {\n /**\n * If this is a motion value found in props or style, we want to add it\n * to our visual element's motion value map.\n */\n element.addValue(key, nextValue);\n /**\n * Check the version of the incoming motion value with this version\n * and warn against mismatches.\n */\n if (process.env.NODE_ENV === \"development\") {\n warnOnce(nextValue.version === \"11.18.1\", `Attempting to mix Motion versions ${nextValue.version} with 11.18.1 may not work as expected.`);\n }\n }\n else if (isMotionValue(prevValue)) {\n /**\n * If we're swapping from a motion value to a static value,\n * create a new motion value from that\n */\n element.addValue(key, motionValue(nextValue, { owner: element }));\n }\n else if (prevValue !== nextValue) {\n /**\n * If this is a flat value that has changed, update the motion value\n * or create one if it doesn't exist. We only want to do this if we're\n * not handling the value with our animation state.\n */\n if (element.hasValue(key)) {\n const existingValue = element.getValue(key);\n if (existingValue.liveStyle === true) {\n existingValue.jump(nextValue);\n }\n else if (!existingValue.hasAnimated) {\n existingValue.set(nextValue);\n }\n }\n else {\n const latestValue = element.getStaticValue(key);\n element.addValue(key, motionValue(latestValue !== undefined ? latestValue : nextValue, { owner: element }));\n }\n }\n }\n // Handle removed values\n for (const key in prev) {\n if (next[key] === undefined)\n element.removeValue(key);\n }\n return next;\n}\n\nexport { updateMotionValuesFromProps };\n","import { VisualElement } from '../VisualElement.mjs';\nimport { DOMKeyframesResolver } from './DOMKeyframesResolver.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nclass DOMVisualElement extends VisualElement {\n constructor() {\n super(...arguments);\n this.KeyframeResolver = DOMKeyframesResolver;\n }\n sortInstanceNodePosition(a, b) {\n /**\n * compareDocumentPosition returns a bitmask, by using the bitwise &\n * we're returning true if 2 in that bitmask is set to true. 2 is set\n * to true if b preceeds a.\n */\n return a.compareDocumentPosition(b) & 2 ? 1 : -1;\n }\n getBaseTargetFromProps(props, key) {\n return props.style\n ? props.style[key]\n : undefined;\n }\n removeValueFromRenderState(key, { vars, style }) {\n delete vars[key];\n delete style[key];\n }\n handleChildMotionValue() {\n if (this.childSubscription) {\n this.childSubscription();\n delete this.childSubscription;\n }\n const { children } = this.props;\n if (isMotionValue(children)) {\n this.childSubscription = children.on(\"change\", (latest) => {\n if (this.current) {\n this.current.textContent = `${latest}`;\n }\n });\n }\n }\n}\n\nexport { DOMVisualElement };\n","import { measureViewportBox } from '../../projection/utils/measure.mjs';\nimport { DOMVisualElement } from '../dom/DOMVisualElement.mjs';\nimport { isCSSVariableName } from '../dom/utils/is-css-variable.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\nimport { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { transformProps } from './utils/keys-transform.mjs';\nimport { renderHTML } from './utils/render.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\n\nfunction getComputedStyle(element) {\n return window.getComputedStyle(element);\n}\nclass HTMLVisualElement extends DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"html\";\n this.renderInstance = renderHTML;\n }\n readValueFromInstance(instance, key) {\n if (transformProps.has(key)) {\n const defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n else {\n const computedStyle = getComputedStyle(instance);\n const value = (isCSSVariableName(key)\n ? computedStyle.getPropertyValue(key)\n : computedStyle[key]) || 0;\n return typeof value === \"string\" ? value.trim() : value;\n }\n }\n measureInstanceViewportBox(instance, { transformPagePoint }) {\n return measureViewportBox(instance, transformPagePoint);\n }\n build(renderState, latestValues, props) {\n buildHTMLStyles(renderState, latestValues, props.transformTemplate);\n }\n scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n return scrapeMotionValuesFromProps(props, prevProps, visualElement);\n }\n}\n\nexport { HTMLVisualElement, getComputedStyle };\n","import { createBox } from '../../projection/geometry/models.mjs';\nimport { DOMVisualElement } from '../dom/DOMVisualElement.mjs';\nimport { camelToDash } from '../dom/utils/camel-to-dash.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\nimport { transformProps } from '../html/utils/keys-transform.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { camelCaseAttributes } from './utils/camel-case-attrs.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\nimport { renderSVG } from './utils/render.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\n\nclass SVGVisualElement extends DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"svg\";\n this.isSVGTag = false;\n this.measureInstanceViewportBox = createBox;\n }\n getBaseTargetFromProps(props, key) {\n return props[key];\n }\n readValueFromInstance(instance, key) {\n if (transformProps.has(key)) {\n const defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;\n return instance.getAttribute(key);\n }\n scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n return scrapeMotionValuesFromProps(props, prevProps, visualElement);\n }\n build(renderState, latestValues, props) {\n buildSVGAttrs(renderState, latestValues, this.isSVGTag, props.transformTemplate);\n }\n renderInstance(instance, renderState, styleProp, projection) {\n renderSVG(instance, renderState, styleProp, projection);\n }\n mount(instance) {\n this.isSVGTag = isSVGTag(instance.tagName);\n super.mount(instance);\n }\n}\n\nexport { SVGVisualElement };\n","import { Fragment } from 'react';\nimport { HTMLVisualElement } from '../html/HTMLVisualElement.mjs';\nimport { SVGVisualElement } from '../svg/SVGVisualElement.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\n\nconst createDomVisualElement = (Component, options) => {\n return isSVGComponent(Component)\n ? new SVGVisualElement(options)\n : new HTMLVisualElement(options, {\n allowProjection: Component !== Fragment,\n });\n};\n\nexport { createDomVisualElement };\n","import { createDOMMotionComponentProxy } from '../create-proxy.mjs';\nimport { createMotionComponent } from './create.mjs';\n\nconst motion = /*@__PURE__*/ createDOMMotionComponentProxy(createMotionComponent);\n\nexport { motion };\n","import { animations } from '../../../motion/features/animations.mjs';\nimport { drag } from '../../../motion/features/drag.mjs';\nimport { gestureAnimations } from '../../../motion/features/gestures.mjs';\nimport { layout } from '../../../motion/features/layout.mjs';\nimport { createMotionComponentFactory } from '../create-factory.mjs';\nimport { createDomVisualElement } from '../../dom/create-visual-element.mjs';\n\nconst createMotionComponent = /*@__PURE__*/ createMotionComponentFactory({\n ...animations,\n ...gestureAnimations,\n ...drag,\n ...layout,\n}, createDomVisualElement);\n\nexport { createMotionComponent };\n"],"names":["l","Symbol","for","n","p","q","r","t","u","v","w","x","y","z","iterator","B","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","C","Object","assign","D","E","a","b","e","this","props","context","refs","updater","F","G","prototype","isReactComponent","setState","Error","forceUpdate","H","constructor","isPureReactComponent","I","Array","isArray","J","hasOwnProperty","K","current","L","key","ref","__self","__source","M","d","c","k","h","call","g","arguments","length","children","f","m","defaultProps","$$typeof","type","_owner","O","P","Q","replace","escape","toString","R","N","push","A","next","done","value","String","keys","join","S","T","_status","_result","then","default","U","V","transition","W","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","X","react_production_min","Children","map","forEach","apply","count","toArray","only","Component","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","act","cloneElement","createContext","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","_context","createElement","bind","createRef","forwardRef","render","isValidElement","lazy","_payload","_init","memo","compare","startTransition","unstable_act","useCallback","useContext","useDebugValue","useDeferredValue","useEffect","useId","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useSyncExternalStore","useTransition","version","reactModule","exports","require$$0","reactJsxRuntime_production_min","jsx","jsxs","jsxRuntimeModule","pop","sortIndex","id","performance","now","unstable_now","Date","setTimeout","clearTimeout","setImmediate","callback","startTime","expirationTime","priorityLevel","navigator","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_IdlePriority","unstable_ImmediatePriority","unstable_LowPriority","unstable_NormalPriority","unstable_Profiling","unstable_UserBlockingPriority","unstable_cancelCallback","unstable_forceFrameRate","console","error","Math","floor","unstable_getCurrentPriorityLevel","unstable_getFirstCallbackNode","unstable_pauseExecution","unstable_requestPaint","unstable_runWithPriority","unstable_scheduleCallback","delay","unstable_shouldYield","unstable_wrapCallback","schedulerModule","aa","ca","require$$1","encodeURIComponent","da","Set","ea","fa","ha","add","ia","window","document","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","split","toLowerCase","ra","sa","toUpperCase","ta","slice","pa","isNaN","qa","test","oa","removeAttribute","setAttribute","setAttributeNS","xlinkHref","ua","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","stack","trim","match","Na","Oa","prepareStackTrace","defineProperty","set","Reflect","construct","displayName","includes","name","Pa","tag","Qa","Ra","Sa","Ta","nodeName","Va","_valueTracker","getOwnPropertyDescriptor","get","configurable","enumerable","getValue","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","body","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","cb","db","ownerDocument","eb","fb","options","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","textContent","kb","lb","mb","nb","namespaceURI","innerHTML","valueOf","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","style","indexOf","setProperty","charAt","substring","tb","menuitem","area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr","ub","vb","is","wb","xb","target","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","addEventListener","removeEventListener","Nb","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","child","sibling","Yb","$b","ac","bc","cc","dc","ec","fc","gc","hc","ic","jc","kc","lc","oc","clz32","pc","qc","log","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Map","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","shift","Zc","$c","ad","bd","cd","dd","ed","fd","gd","hd","Uc","stopPropagation","id$2","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","data","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","fromCharCode","code","location","repeat","locale","which","Rd","Td","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","date","datetime","email","month","number","password","range","search","tel","text","time","url","week","me","ne","oe","event","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","node","offset","nextSibling","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","href","Ne","contentEditable","Oe","focusedElem","selectionRange","documentElement","start","end","selectionStart","selectionEnd","min","defaultView","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","element","left","scrollLeft","top","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","concat","nf","Ub","instance","listener","of","has","pf","qf","rf","random","sf","capture","passive","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","unshift","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","Hf","Promise","Jf","queueMicrotask","resolve","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","elementType","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","mode","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","_stringRef","Mg","Ng","Og","index","Pg","Qg","Rg","implementation","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","childLanes","ch","dependencies","firstContext","lanes","dh","eh","memoizedValue","fh","gh","hh","interleaved","ih","jh","kh","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","lh","mh","eventTime","lane","payload","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","tagName","zh","Ah","Bh","Ch","revealOrder","Dh","Eh","_workInProgressVersionPrimary","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","baseQueue","queue","Uh","Vh","Wh","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","Xh","Yh","Zh","$h","ai","getSnapshot","bi","ci","di","lastEffect","stores","ei","fi","gi","hi","ii","create","destroy","deps","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","readContext","useMutableSource","unstable_isNewReconciler","identifierPrefix","Ci","Di","Ei","_reactInternals","Fi","shouldComponentUpdate","Gi","contextType","state","Hi","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ii","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Ji","message","digest","Ki","Li","Mi","WeakMap","Ni","Oi","Pi","Qi","getDerivedStateFromError","componentDidCatch","Ri","componentStack","Si","pingCache","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","cj","dj","baseLanes","cachePool","transitions","ej","fj","gj","hj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","jj","kj","pendingContext","lj","zj","Aj","Bj","Cj","mj","nj","oj","fallback","pj","qj","sj","dataset","dgst","tj","uj","_reactRetry","rj","subtreeFlags","vj","wj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","xj","ij","Dj","Ej","Fj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","size","createElementNS","autoFocus","createTextNode","Gj","Hj","Ij","Jj","Kj","WeakSet","Lj","Mj","Nj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","insertBefore","_reactRootContainer","Wj","Xj","Yj","Zj","onCommitFiberUnmount","componentWillUnmount","ak","bk","ck","dk","ek","isHidden","fk","gk","display","hk","ik","jk","kk","__reactInternalSnapshotBeforeUpdate","src","Vk","lk","ceil","mk","nk","ok","Y","Z","pk","qk","rk","sk","tk","Infinity","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","finishedWork","finishedLanes","Pk","timeoutHandle","Qk","Rk","Sk","Tk","Uk","mutableReadLanes","Bc","Oj","onCommitFiberRoot","mc","onRecoverableError","Wk","onPostCommitFiberRoot","Xk","Yk","$k","pendingChildren","al","mutableSourceEagerHydrationData","bl","cache","pendingSuspenseBoundaries","dl","el","fl","gl","hl","il","yj","Zk","kl","reportError","ll","_internalRoot","ml","nl","ol","pl","rl","ql","unmount","unstable_scheduleHydration","splice","querySelectorAll","JSON","stringify","form","sl","usingClientEntryPoint","Events","tl","findFiberByHostInstance","bundleType","rendererPackageName","ul","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","vl","isDisabled","supportsFiber","inject","reactDom_production_min","createPortal","cl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","err","reactDomModule","LayoutGroupContext","useConstant","init","PresenceContext","MotionConfigContext","transformPagePoint","isStatic","reducedMotion","PopChildMeasure","React.Component","prevProps","childRef","isPresent","sizeRef","offsetHeight","offsetWidth","offsetTop","offsetLeft","PopChild","nonce","motionPopId","head","sheet","insertRule","React.cloneElement","PresenceChild","initial","onExitComplete","custom","presenceAffectsLayout","presenceChildren","newChildrenMap","memoizedOnExitComplete","childId","isComplete","values","register","_","React.useEffect","usePresence","subscribe","safeToRemove","getChildKey","onlyElements","filtered","isBrowser","useIsomorphicLayoutEffect","AnimatePresence","propagate","isParentPresent","presentChildren","presentKeys","isInitialRender","pendingPresentChildren","exitComplete","diffedChildren","setDiffedChildren","renderedChildren","setRenderedChildren","i","exitingChildren","nextChildren","forceRender","isEveryExitComplete","isExitComplete","noop","any","invariant","result","progress","from","to","toFromDifference","secondsToMilliseconds","seconds","millisecondsToSeconds","milliseconds","MotionGlobalConfig","stepsOrder","createRenderBatcher","scheduleNextBatch","allowKeepAlive","runNextFrame","useDefaultElapsed","delta","timestamp","isProcessing","flagRunNextFrame","steps","reduce","acc","thisFrame","nextFrame","flushNextFrame","toKeepAlive","latestFrameData","triggerCallback","step","schedule","keepAlive","immediate","cancel","process","frameData","clear","createRenderStep","read","resolveKeyframes","update","preRender","postRender","processBatch","max","frame","cancelFrame","frameSteps","requestAnimationFrame","LazyContext","strict","featureProps","exit","drag","hover","tap","pan","inView","layout","featureDefinitions","isEnabled","some","validMotionProps","isValidMotionProp","startsWith","shouldForward","isValidProp","require","_a","createDOMMotionComponentProxy","componentFactory","Proxy","componentCache","args","_target","MotionContext","isVariantLabel","isAnimationControls","variantPriorityOrder","variantProps","isControllingVariants","animate","isVariantNode","Boolean","variants","useCreateMotionContext","inherit","getCurrentTreeVariants","variantLabelsAsDependency","prop","motionComponentSymbol","isRefObject","useMotionRef","visualState","visualElement","externalRef","onMount","mount","camelToDash","str","optimizedAppearDataAttribute","microtask","cancelMicrotask","SwitchLayoutGroupContext","useVisualElement","createVisualElement","ProjectionNodeConstructor","_b","parent","lazyContext","presenceContext","reducedMotionConfig","visualElementRef","renderer","blockInitialAnimation","initialLayoutGroupConfig","projection","initialPromotionConfig","layoutId","dragConstraints","layoutScroll","layoutRoot","latestValues","getClosestProjectingNode","setOptions","alwaysMeasureLayout","animationType","createProjectionNode","optimisedAppearId","wantsHandoff","MotionHandoffIsComplete","MotionHasOptimisedAnimation","MotionIsMounted","updateFeatures","animationState","animateChanges","MotionHandoffMarkAsComplete","allowProjection","createRendererMotionComponent","preloadedFeatures","useRender","useVisualState","MotionComponent","MeasureLayout","configAndProps","useLayoutId","reactExports","layoutProjection","combined","ProjectionNode","getProjectionFunctionality","features","loadFeatures","ForwardRefMotionComponent","layoutGroupId","lowercaseSVGElements","isSVGComponent","getValueState","getVelocity","resolveVariantFromProps","definition","velocity","isKeyframesTarget","isMotionValue","resolveMotionValue","unwrappedValue","mix","toValue","makeUseVisualState","config","make","scrapeMotionValuesFromProps","createRenderState","onUpdate","makeLatestValues","renderState","makeState","scrapeMotionValues","motionValues","isControllingVariants$1","isVariantNode$1","isInitialAnimationBlocked","variantToSet","list","resolved","transitionEnd","valueTarget","transformPropOrder","transformProps","checkStringStartsWith","token","isCSSVariableName","startsAsVariableToken","isCSSVariableToken","singleCssVariableRegex","getValueAsType","transform","clamp","parse","parseFloat","alpha","scale","createUnitType","unit","endsWith","degrees","percent","px","vw","progressPercentage","browserNumberValueTypes","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderRadius","radius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","maxWidth","maxHeight","right","bottom","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","margin","marginTop","marginRight","marginBottom","marginLeft","backgroundPositionX","backgroundPositionY","transformValueTypes","rotate","rotateX","rotateY","rotateZ","scaleX","scaleY","scaleZ","skew","skewX","skewY","distance","translateX","translateY","translateZ","perspective","transformPerspective","originX","originY","originZ","int","round","numberValueTypes","numOctaves","translateAlias","numTransforms","buildHTMLStyles","transformTemplate","vars","transformOrigin","hasTransform","hasTransformOrigin","valueAsType","transformString","transformIsDefault","valueIsDefault","buildTransform","dashKeys","array","camelKeys","calcOrigin","origin","buildSVGAttrs","attrX","attrY","attrScale","pathLength","pathSpacing","pathOffset","latest","isSVGTag","viewBox","attrs","dimensions","calcSVGTransformOrigin","spacing","useDashCase","buildSVGPath","createHtmlRenderState","createSvgRenderState","renderHTML","styleProp","getProjectionStyles","camelCaseAttributes","renderSVG","_styleProp","scaleCorrectors","isForcedMotionValue","newValues","liveStyle","scrapeMotionValuesFromProps$1","layoutProps","svgMotionConfig","needsMeasure","getBBox","getBoundingClientRect","updateSVGDimensions","htmlMotionConfig","copyRawValuesOnly","useStyle","useInitialMotionValues","useHTMLProps","htmlProps","dragListener","draggable","userSelect","WebkitUserSelect","WebkitTouchCallout","touchAction","tabIndex","onTap","onTapStart","whileTap","useSVGProps","_isStatic","visualProps","rawStyles","createUseRender","forwardMotionProps","filteredProps","isDom","filterProps","elementProps","createMotionComponentFactory","shallowCompare","prev","prevLength","resolveVariant","getProps","supportsScrollTimeline","ScrollTimeline","BaseGroupPlaybackControls","animations","stop","runAll","filter","finished","all","getAll","propName","setAll","newValue","attachTimeline","timeline","subscriptions","speed","duration","methodName","controls","flatten","play","pause","complete","GroupPlaybackControls","onResolve","onReject","getValueTransition","maxGeneratorDuration","calcGeneratorDuration","generator","isGenerator","onfinish","isBezierDefinition","easing","supportsFlags","linearEasing","memoSupports","supportsFlag","memoized","supportsLinearEasing","generateLinearEasing","resolution","points","numPoints","isWaapiSupportedEasing","supportedWaapiEasing","every","cubicBezierAsString","linear","ease","easeIn","easeOut","easeInOut","circIn","circOut","backIn","backOut","mapEasingToNativeEasing","segmentEasing","isDragging","isDragActive","setupGesture","elementOrSelector","elements","Element","resolveElements","gestureAbortController","AbortController","signal","abort","filterEvents","isNodeOrChild","parentElement","isPrimaryPointer","focusableElements","isPressing","firePointerEvent","PointerEvent","isValidPressEvent","press","onPressStart","eventOptions","cancelEvents","startPress","startEvent","onPressEnd","onPointerEnd","endEvent","success","onPointerUp","onPointerCancel","upEvent","useGlobalTarget","cancelEvent","isElementKeyboardAccessible","getAttribute","focusEvent","handleKeydown","handleKeyup","enableKeyboardPress","positionalKeys","clearTime","newTime","addUniqueItem","arr","item","removeItem","SubscriptionManager","handler","notify","numSubscriptions","getSize","velocityPerSecond","frameDuration","MotionValue","canTrackVelocity","events","updateAndNotify","currentTime","updatedAt","setPrevFrameValue","setCurrent","change","renderRequest","hasAnimated","owner","prevFrameValue","prevUpdatedAt","onChange","subscription","on","eventName","unsubscribe","clearListeners","eventManagers","attach","passiveEffect","stopPassiveEffect","setWithVelocity","jump","endAnimation","getPrevious","startAnimation","animationStart","animationComplete","clearAnimation","animationCancel","isAnimating","motionValue","setMotionValue","hasValue","addValue","addValueToWillChange","willChange","getOptimisedAppearId","calcBezier","a1","a2","cubicBezier","mX1","mY1","mX2","mY2","getTForX","aX","lowerBound","upperBound","currentX","currentT","abs","binarySubdivide","mirrorEasing","reverseEasing","backInOut","anticipate","pow","sin","acos","circInOut","isZeroValueString","sanitize","floatRegex","singleColorRegex","isColorString","testProp","isNullish","splitColor","aName","bName","cName","rgbUnit","clampRgbUnit","rgba","red","green","blue","alpha$1","hex","parseInt","hsla","hue","saturation","lightness","colorRegex","NUMBER_TOKEN","COLOR_TOKEN","complexRegex","analyseComplexValue","originalValue","indexes","var","types","parsedValue","parseComplexValue","createTransformer","numSections","output","convertNumbersToZero","complex","getAnimatableNone","parsed","transformer","maxDefaults","applyDefaultFilter","functionRegex","functions","defaultValueTypes","backgroundColor","outlineColor","fill","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","WebkitFilter","getDefaultValueType","defaultValueType","invalidTemplates","isNumOrPxType","getPosFromMatrix","matrix","pos","getTranslateFromMatrix","pos2","pos3","_bbox","matrix3d","transformKeys","nonTranslationalTransformKeys","positionalValues","toResolve","isScheduled","anyNeedsMeasurement","measureAllKeyframes","resolversToMeasure","resolver","needsMeasurement","elementsToMeasure","transformsToRestore","removedTransforms","removeNonTranslationalTransform","measureInitialState","restore","measureEndState","suspendedScrollY","scrollTo","readAllKeyframes","readKeyframes","KeyframeResolver","unresolvedKeyframes","onComplete","isAsync","scheduleResolve","currentValue","finalKeyframe","valueAsRead","readValue","setFinalKeyframe","renderEndStyles","resume","isNumericalString","splitCSSVariableRegex","getVariableValue","depth","exec","token1","token2","parseCSSVariable","getComputedStyle","getPropertyValue","trimmed","testValueType","dimensionValueTypes","findDimensionValueType","find","DOMKeyframesResolver","super","keyframe","resolveNoneKeyframes","originType","targetType","noneKeyframeIndexes","animatableTemplate","noneIndex","makeNoneKeyframesAnimatable","pageYOffset","measuredOrigin","measureViewportBox","measureKeyframe","finalKeyframeIndex","unsetTransformName","unsetTransformValue","isAnimatable","isNotNull","getFinalKeyframe","keyframes","repeatType","resolvedKeyframes","BaseAnimation","autoplay","repeatDelay","isStopped","hasAttemptedResolve","createdAt","updateFinishedPromise","calcStartTime","resolvedAt","_resolved","onKeyframesResolved","originKeyframe","targetKeyframe","isOriginAnimatable","isTargetAnimatable","hasKeyframesChanged","canAnimate","resolveFinishedPromise","resolvedAnimation","initPlayback","onPostResolved","reject","currentFinishedPromise","mixNumber","hueToRgb","mixImmediate","mixLinearColor","fromExpo","expo","sqrt","colorTypes","asRGBA","model","hslaToRgba","mixColor","fromRGBA","toRGBA","blended","combineFunctions","pipe","transformers","invisibleValues","mixNumber$1","getMixer","mixComplex","mixArray","mixObject","numValues","blendValue","template","originStats","targetStats","mixVisibility","orderedOrigin","pointers","originIndex","originValue","matchOrder","mixer","calcGeneratorVelocity","resolveValue","prevT","springDefaults","granular","safeMin","findSpring","bounce","mass","envelope","derivative","dampingRatio","undampedFreq","exponentialDecay","calcAngularFreq","exp","initialGuess","rootIterations","approximateRoot","stiffness","damping","durationKeys","physicsKeys","isSpringType","spring","optionsOrVisualDuration","visualDuration","restSpeed","restDelta","isResolvedFromDuration","springOptions","root","PI","derived","getSpringOptions","initialVelocity","initialDelta","undampedAngularFreq","isGranularScale","resolveSpring","angularFreq","cos","dampedAngularFreq","freqForT","sinh","cosh","calculatedDuration","currentVelocity","isBelowVelocityThreshold","isBelowDisplacementThreshold","inertia","power","timeConstant","bounceDamping","bounceStiffness","modifyTarget","nearestBoundary","amplitude","ideal","calcDelta","calcLatest","applyFriction","timeReachedBoundary","spring$1","checkCatchBoundary","hasUpdatedFrame","easingLookup","easingDefinitionToFunction","x1","y1","x2","y2","interpolate","isClamp","inputLength","isZeroDeltaRange","reverse","mixers","customMixer","mixerFactory","numMixers","easingFunction","createMixers","interpolator","progressInRange","defaultOffset","remaining","offsetProgress","fillOffset","keyframeValues","times","easingFunctions","isEasingArray","absoluteTimes","o","convertOffsetToTimes","mapTimeToKeyframe","frameloopDriver","passTimestamp","generators","decay","tween","percentToProgress","MainThreadAnimation","holdTime","cancelTime","playbackSpeed","pendingPlayState","teardown","onStop","KeyframeResolver$1","keyframes$1","generatorFactory","mapPercentToKeyframes","mirroredGenerator","resolvedDuration","totalDuration","tick","sample","timeWithoutDelay","isInDelayPhase","elapsed","frameGenerator","currentIteration","iterationProgress","isAnimationFinished","finish","driver","newSpeed","hasChanged","onPlay","stopDriver","acceleratedValues","startWaapiAnimation","valueName","keyframeOptions","iterations","direction","supportsWaapi","unsupportedEasingFunctions","AcceleratedAnimation","pregeneratedAnimation","sampleAnimation","pregeneratedKeyframes","pregenerateKeyframes","pendingTimeline","playbackRate","playState","sampleTime","supports","HTMLElement","underDampedSpring","keyframesTransition","getDefaultTransition","valueKey","animateMotionValue","isHandoff","valueTransition","when","_delay","delayChildren","staggerChildren","staggerDirection","isTransitionDefined","shouldSkip","shouldBlockAnimation","protectedKeys","needsAnimating","shouldBlock","animateTarget","targetAndTransition","transitionOverride","animationTypeState","getState","MotionHandoffAnimation","appearId","shouldReduceMotion","setTarget","animateVariant","variant","getAnimation","getChildAnimations","variantChildren","forwardDelay","maxStaggerDuration","generateStaggerDuration","sort","sortByTreeOrder","animateChildren","first","sortNodePosition","numVariantProps","getVariantContext","reversePriorityOrder","numAnimationTypes","animateList","resolvedDefinition","animateVisualElement","createAnimationState","createState","buildResolvedTypeValues","changedActiveType","removedKeys","encounteredKeys","removedVariantIndex","typeState","propIsVariant","activeDelta","isActive","isInherited","manuallyAnimateOnMount","prevProp","variantDidChange","checkVariantsDidChange","shouldAnimateType","handledRemovedValues","definitionList","resolvedValues","prevResolvedValues","allKeys","markToAnimate","valueHasChanged","fallbackAnimation","fallbackTarget","getBaseTarget","shouldAnimate","setActive","setAnimateFunction","makeAnimator","reset","createTypeState","whileInView","whileHover","whileDrag","whileFocus","Feature","updateAnimationControlsSubscription","unmountControls","prevAnimate","prevIsPresent","prevPresenceContext","exitAnimation","addDomEvent","extractEventInfo","point","addPointerEvent","addPointerInfo","PanSession","handlers","contextWindow","dragSnapToOrigin","lastMoveEvent","lastMoveEventInfo","updatePoint","info","getPanInfo","history","isPanStarted","isDistancePastThreshold","xDelta","yDelta","distance2D","onStart","onMove","handlePointerMove","transformPoint","handlePointerUp","onEnd","onSessionEnd","resumeAnimation","panInfo","initialInfo","onSessionStart","removeListeners","updateHandlers","subtractPoint","lastDevicePoint","startDevicePoint","timeDelta","timestampedPoint","lastPoint","calcLength","axis","calcAxisDelta","originPoint","translate","calcBoxDelta","calcRelativeAxis","relative","calcRelativeAxisPosition","calcRelativePosition","calcRelativeAxisConstraints","calcViewportAxisConstraints","layoutAxis","constraintsAxis","defaultElastic","resolveAxisElastic","dragElastic","minLabel","maxLabel","resolvePointElastic","label","createBox","eachAxis","convertBoundingBoxToBox","isIdentityScale","hasScale","has2DTranslate","is2DTranslate","scalePoint","applyPointDelta","boxScale","applyAxisDelta","applyBoxDelta","box","TREE_SCALE_SNAP_MIN","TREE_SCALE_SNAP_MAX","translateAxis","transformAxis","axisTranslate","axisScale","axisOrigin","transformBox","topLeft","bottomRight","transformBoxPoints","getContextWindow","elementDragControls","VisualElementDragControls","openDragLock","currentDirection","constraints","hasMutatedConstraints","elastic","originEvent","snapToCursor","panSession","pauseAnimation","stopAnimation","dragPropagation","onDragStart","resolveConstraints","isAnimationBlocked","getAxisMotionValue","measuredAxis","layoutBox","dragDirectionLock","onDirectionLock","onDrag","lockThreshold","getCurrentDirection","updateAxis","getAnimationState","getTransformPagePoint","onDragEnd","_point","shouldDrag","axisValue","applyConstraints","measure","prevConstraints","resolveRefConstraints","calcRelativeConstraints","resolveDragElastic","relativeConstraints","rebaseAxisConstraints","onMeasureDragConstraints","constraintsElement","constraintsBox","rootProjectionNode","viewportBox","scroll","measurePageBox","measuredConstraints","calcViewportConstraints","userConstraints","convertBoxToBoundingBox","dragMomentum","dragTransition","onDragTransitionEnd","momentumAnimations","startAxisValueAnimation","dragKey","externalMotionValue","scalePositionWithinConstraints","boxProgress","sourceLength","targetLength","updateScroll","updateLayout","addListeners","stopPointerListener","measureDragConstraints","stopMeasureLayoutListener","stopResizeListener","stopLayoutUpdateListener","hasLayoutChanged","asyncHandler","globalProjectionState","hasAnimatedSinceResize","hasEverUpdated","pixelsToPercent","pixels","correctBorderRadius","correct","correctBoxShadow","treeScale","projectionDelta","original","shadow","xScale","yScale","averageScale","MeasureLayoutWithContext","layoutGroup","switchLayoutGroup","correctors","defaultScaleCorrectors","group","didUpdate","layoutDependency","willUpdate","promote","relegate","getStack","members","currentAnimation","isLead","promoteContext","scheduleCheckAfterUnmount","remove","deregister","applyTo","boxShadow","compareByDepth","FlatTree","isDirty","borders","numBorders","asNumber","isPx","getRadius","radiusName","easeCrossfadeIn","compress","easeCrossfadeOut","copyAxisInto","originAxis","copyBoxInto","originBox","copyAxisDeltaInto","originDelta","removePointDelta","removeAxisTransforms","transforms","scaleKey","originKey","sourceAxis","removeAxisDelta","xKeys","yKeys","removeBoxTransforms","sourceBox","isAxisDeltaZero","isDeltaZero","axisEquals","axisEqualsRounded","boxEqualsRounded","axisDeltaEquals","NodeStack","scheduleRender","prevLead","lead","indexOfNode","findIndex","member","preserveFollowOpacity","show","resumeFrom","preserveOpacity","snapshot","animationValues","isUpdating","isLayoutDirty","crossfade","hide","exitAnimationComplete","resumingFrom","removeLeadSnapshot","metrics","totalNodes","resolvedTargetDeltas","recalculatedProjection","isDebug","MotionDebug","transformAxes","hiddenVisibility","visibility","resetDistortingTransform","sharedAnimationValues","setStaticValue","cancelTreeOptimisedTransformAnimations","projectionNode","hasCheckedOptimisedAppear","MotionCancelOptimisedAnimation","attachResizeListener","defaultParent","measureScroll","checkIsScrollRoot","resetTransform","animationId","isTreeAnimating","isProjectionDirty","isSharedProjectionDirty","isTransformDirty","updateManuallyBlocked","updateBlockedByResize","isSVG","needsReset","shouldResetTransform","eventHandlers","hasTreeAnimated","updateScheduled","projectionUpdateScheduled","checkUpdateFailed","clearAllSnapshots","updateProjection","nodes","propagateDirtyNodes","resolveTargetDelta","calcProjection","cleanDirtyNodes","record","resolvedRelativeTargetAt","hasProjected","isVisible","animationProgress","sharedNodes","path","notifyListeners","subscriptionManager","hasListeners","SVGElement","cancelDelay","resizeUnblockUpdate","timeout","checkElapsed","finishAnimation","registerSharedNode","hasRelativeTargetChanged","newLayout","isTreeAnimationBlocked","relativeTarget","layoutTransition","defaultLayoutTransition","onLayoutAnimationStart","onLayoutAnimationComplete","targetChanged","targetLayout","hasOnlyRelativeTargetChanged","setAnimationOrigin","animationOptions","blockUpdate","unblockUpdate","isUpdateBlocked","startUpdate","resetSkewAndRotation","getTransformTemplate","shouldNotifyListeners","prevTransformTemplateValue","updateSnapshot","clearMeasurements","clearIsLayoutDirty","resetTransformStyle","notifyLayoutUpdate","clearSnapshot","removeLeadSnapshots","scheduleUpdateProjection","prevLayout","layoutCorrected","phase","isRoot","wasRoot","isResetRequested","hasProjection","transformTemplateValue","transformTemplateHasChanged","removeTransform","pageBox","removeElementScroll","roundAxis","measuredBox","checkNodeWasScrollRoot","boxWithoutScroll","applyTransform","transformOnly","withTransforms","boxWithoutTransform","setTargetDelta","targetDelta","forceRelativeParentToResolveTarget","relativeParent","forceRecalculation","getLead","isShared","attemptToResolveRelativeTarget","getClosestProjectingParent","relativeTargetOrigin","targetWithTransforms","isProjecting","canSkip","pendingAnimation","prevTreeScaleX","prevTreeScaleY","treePath","isSharedTransition","treeLength","applyTreeDeltas","prevProjectionDelta","createProjectionDeltas","notifyAll","projectionDeltaWithTransform","snapshotLatestValues","mixedValues","relativeLayout","isSharedLayoutAnimation","isOnlyMember","shouldCrossfadeOpacity","hasOpacityCrossfade","prevRelativeTarget","mixTargetDelta","mixAxisDelta","mixAxis","boxEquals","follow","opacityExit","borderLabel","followRadius","leadRadius","mixValues","motionValue$1","animateSingleValue","completeAnimation","applyTransformsToTarget","shouldAnimatePositionOnly","xLength","yLength","shouldPreserveFollowOpacity","getPrevLead","hasDistortingTransform","resetValues","styles","pointerEvents","emptyStyles","valuesToRender","latestTransform","xTranslate","yTranslate","zTranslate","elementScaleX","elementScaleY","buildProjectionTransform","corrected","num","resetTree","measuredLayout","axisSnapshot","layoutDelta","visualDelta","parentSnapshot","parentLayout","relativeSnapshot","onBeforeLayoutMeasure","userAgentContains","string","userAgent","roundPoint","maxDistance","DocumentProjectionNode","HTMLProjectionNode","documentNode","position","removePointerDownListener","onPointerDown","pointerDownEvent","session","createPanHandlers","onPanSessionStart","onPanStart","onPan","onPanEnd","removeGroupControls","dragControls","handleHoverEvent","lifecycle","handlePressEvent","observerCallbacks","observers","fireObserverCallback","entry","fireAllObserverCallbacks","entries","observeIntersection","rootInteresectionObserver","lookupRoot","rootObservers","IntersectionObserver","initIntersectionObserver","observe","unobserve","thresholdNames","gestureAnimations","hasEnteredView","isInView","startObserver","viewport","rootMargin","amount","once","threshold","isIntersecting","onViewportEnter","onViewportLeave","prevViewport","hasViewportOptionChanged","globalTapTarget","onFocus","isFocusVisible","matches","onBlur","onHoverStart","onPointerEnter","enterEvent","onHoverEnd","onPointerLeave","leaveEvent","prefersReducedMotion","hasReducedMotionListener","valueTypes","visualElementStore","propEventHandlers","VisualElement","_props","_prevProps","_visualElement","valueSubscriptions","prevMotionValues","propEventSubscriptions","notifyUpdate","triggerBuild","renderInstance","renderScheduledAt","baseTarget","initialValues","initialMotionValues","removeFromVariantTree","addVariantChild","bindToMotionValue","matchMedia","motionMediaQuery","setReducedMotionPreferences","addListener","feature","valueIsTransform","removeOnChange","latestValue","removeOnRenderRequest","removeSyncCheck","MotionCheckAppearSync","other","sortInstanceNodePosition","featureDefinition","FeatureConstructor","build","measureInstanceViewportBox","getStaticValue","nextValue","prevValue","existingValue","removeValue","updateMotionValuesFromProps","handleChildMotionValue","getVariant","getClosestVariantNode","closestVariantNode","removeValueFromRenderState","getBaseTargetFromProps","readValueFromInstance","setBaseTarget","valueFromInitial","DOMVisualElement","childSubscription","HTMLVisualElement","defaultType","computedStyle","SVGVisualElement","motion"],"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,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253]}