{"version":3,"sources":["webpack:///./node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","webpack:///./node_modules/framer-motion/dist/es/utils/array.mjs","webpack:///./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","webpack:///./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","webpack:///./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","webpack:///./node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","webpack:///./node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","webpack:///./node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","webpack:///./node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","webpack:///./node_modules/framer-motion/dist/es/projection/shared/stack.mjs","webpack:///./node_modules/framer-motion/dist/es/projection/styles/transform.mjs","webpack:///./node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","webpack:///./node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","webpack:///./node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","webpack:///./node_modules/framer-motion/dist/es/animation/animate.mjs","webpack:///./node_modules/framer-motion/dist/es/animation/utils/easing.mjs","webpack:///./node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","webpack:///./node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","webpack:///./node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs","webpack:///./node_modules/framer-motion/dist/es/animation/utils/transitions.mjs","webpack:///./node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","webpack:///./node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","webpack:///./node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","webpack:///./node_modules/framer-motion/dist/es/utils/process.mjs","webpack:///./node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","webpack:///./node_modules/framer-motion/dist/es/events/event-info.mjs","webpack:///./node_modules/framer-motion/dist/es/gestures/utils/event-type.mjs","webpack:///./node_modules/framer-motion/dist/es/context/LazyContext.mjs","webpack:///./node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","webpack:///./node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","webpack:///./node_modules/framer-motion/dist/es/utils/resolve-value.mjs","webpack:///./node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","webpack:///./node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","webpack:///./node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","webpack:///./node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","webpack:///./node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","webpack:///./node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","webpack:///./node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","webpack:///./node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","webpack:///./node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","webpack:///./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","webpack:///./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","webpack:///./node_modules/framer-motion/dist/es/utils/time-conversion.mjs","webpack:///./node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","webpack:///./node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","webpack:///./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","webpack:///./node_modules/framer-motion/dist/es/render/html/use-props.mjs","webpack:///./node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","webpack:///./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","webpack:///./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","webpack:///./node_modules/framer-motion/dist/es/render/svg/use-props.mjs","webpack:///./node_modules/framer-motion/dist/es/render/dom/use-render.mjs","webpack:///./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","webpack:///./node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","webpack:///./node_modules/framer-motion/dist/es/render/html/config-motion.mjs","webpack:///./node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs","webpack:///./node_modules/framer-motion/dist/es/render/utils/lifecycles.mjs","webpack:///./node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","webpack:///./node_modules/framer-motion/dist/es/render/index.mjs","webpack:///./node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","webpack:///./node_modules/framer-motion/dist/es/render/dom/utils/parse-dom-variant.mjs","webpack:///./node_modules/framer-motion/dist/es/render/html/visual-element.mjs","webpack:///./node_modules/framer-motion/dist/es/render/svg/visual-element.mjs","webpack:///./node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","webpack:///./node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","webpack:///./node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","webpack:///./node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","webpack:///./node_modules/framer-motion/dist/es/render/utils/setters.mjs","webpack:///./node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","webpack:///./node_modules/framer-motion/dist/es/motion/features/animations.mjs","webpack:///./node_modules/framer-motion/dist/es/utils/use-id.mjs","webpack:///./node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs","webpack:///./node_modules/framer-motion/dist/es/gestures/use-hover-gesture.mjs","webpack:///./node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","webpack:///./node_modules/framer-motion/dist/es/utils/warn-once.mjs","webpack:///./node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","webpack:///./node_modules/framer-motion/dist/es/motion/features/viewport/use-viewport.mjs","webpack:///./node_modules/framer-motion/dist/es/motion/features/gestures.mjs","webpack:///./node_modules/framer-motion/dist/es/gestures/use-tap-gesture.mjs","webpack:///./node_modules/framer-motion/dist/es/gestures/use-focus-gesture.mjs","webpack:///./node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","webpack:///./node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","webpack:///./node_modules/framer-motion/dist/es/projection/utils/measure.mjs","webpack:///./node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","webpack:///./node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","webpack:///./node_modules/framer-motion/dist/es/render/html/utils/render.mjs","webpack:///./node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","webpack:///./node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","webpack:///./node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","webpack:///./node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","webpack:///./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","webpack:///./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","webpack:///./node_modules/framer-motion/dist/es/motion/features/use-features.mjs","webpack:///./node_modules/framer-motion/dist/es/utils/use-reduced-motion.mjs","webpack:///./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","webpack:///./node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","webpack:///./node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","webpack:///./node_modules/framer-motion/dist/es/projection/node/id.mjs","webpack:///./node_modules/framer-motion/dist/es/motion/utils/VisualElementHandler.mjs","webpack:///./node_modules/framer-motion/dist/es/motion/index.mjs","webpack:///./node_modules/framer-motion/dist/es/motion/features/use-projection.mjs","webpack:///./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","webpack:///./node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","webpack:///./node_modules/framer-motion/dist/es/render/utils/animation.mjs","webpack:///./node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","webpack:///./node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","webpack:///./node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","webpack:///./node_modules/framer-motion/dist/es/render/utils/types.mjs","webpack:///./node_modules/framesync/dist/framesync.cjs.js","webpack:///./node_modules/framer-motion/dist/es/projection/geometry/models.mjs","webpack:///./node_modules/framer-motion/dist/es/render/utils/variants.mjs","webpack:///./node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","webpack:///./node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","webpack:///./node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","webpack:///./node_modules/framer-motion/node_modules/tslib/tslib.js","webpack:///./node_modules/hey-listen/dist/index.js","webpack:///./node_modules/framer-motion/dist/es/value/index.mjs","webpack:///./node_modules/popmotion/node_modules/tslib/tslib.es6.js","webpack:///./node_modules/hey-listen/dist/hey-listen.es.js","webpack:///./node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.cjs.js","webpack:///./node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","webpack:///./node_modules/style-value-types/dist/es/utils.mjs","webpack:///./node_modules/style-value-types/dist/es/numbers/index.mjs","webpack:///./node_modules/style-value-types/dist/es/numbers/units.mjs","webpack:///./node_modules/style-value-types/dist/es/color/utils.mjs","webpack:///./node_modules/style-value-types/dist/es/color/hsla.mjs","webpack:///./node_modules/style-value-types/dist/es/color/rgba.mjs","webpack:///./node_modules/style-value-types/dist/es/color/hex.mjs","webpack:///./node_modules/style-value-types/dist/es/color/index.mjs","webpack:///./node_modules/style-value-types/dist/es/complex/index.mjs","webpack:///./node_modules/style-value-types/dist/es/complex/filter.mjs","webpack:///./node_modules/framesync/dist/es/on-next-frame.mjs","webpack:///./node_modules/framesync/dist/es/index.mjs","webpack:///./node_modules/framesync/dist/es/create-render-step.mjs","webpack:///./node_modules/framer-motion/dist/es/utils/use-constant.mjs","webpack:///./node_modules/framer-motion/dist/es/events/use-pointer-event.mjs","webpack:///./node_modules/framer-motion/dist/es/events/utils.mjs","webpack:///./node_modules/style-value-types/dist/valueTypes.cjs.js","webpack:///./node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","webpack:///./node_modules/framer-motion/dist/es/context/PresenceContext.mjs","webpack:///./node_modules/framer-motion/dist/es/events/use-dom-event.mjs","webpack:///./node_modules/popmotion/dist/popmotion.cjs.js","webpack:///./node_modules/framer-motion/dist/es/motion/utils/make-renderless-component.mjs","webpack:///./node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","webpack:///./node_modules/framer-motion/dist/es/utils/is-browser.mjs","webpack:///./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","webpack:///./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","webpack:///./node_modules/framer-motion/dist/es/motion/features/definitions.mjs"],"names":["isKeyframesTarget","v","Array","isArray","addUniqueItem","arr","item","indexOf","push","removeItem","index","splice","isRefObject","ref","Object","prototype","hasOwnProperty","call","MotionConfigContext","createContext","transformPagePoint","p","isStatic","reducedMotion","MotionContext","useVisualElementContext","useContext","visualElement","borders","numBorders","length","asNumber","value","parseFloat","isPx","px","test","getRadius","values","radiusName","_a","borderRadius","easeCrossfadeIn","compress","circOut","easeCrossfadeOut","linear","min","max","easing","progress","copyAxisInto","axis","originAxis","copyBoxInto","box","originBox","x","y","removePointDelta","point","translate","scale","originPoint","boxScale","scalePoint","undefined","removeAxisTransforms","transforms","origin","sourceAxis","_b","__read","key","scaleKey","originKey","percent","mix","removeAxisDelta","xKeys","yKeys","removeBoxTransforms","sourceBox","isAxisDeltaZero","delta","isDeltaZero","boxEquals","a","b","NodeStack","this","members","add","node","scheduleRender","remove","prevLead","lead","promote","relegate","indexOfNode","findIndex","member","i","isPresent","preserveFollowOpacity","show","instance","resumeFrom","preserveOpacity","snapshot","latestValues","animationValues","isShared","root","isUpdating","isLayoutDirty","options","crossfade","hide","exitAnimationComplete","forEach","_c","_d","_e","onExitComplete","resumingFrom","removeLeadSnapshot","buildProjectionTransform","treeScale","latestTransform","xTranslate","yTranslate","transform","concat","rotate","rotateX","rotateY","compareByDepth","depth","FlatTree","children","isDirty","child","callback","sort","globalProjectionState","hasAnimatedSinceResize","hasEverUpdated","createProjectionNode","attachResizeListener","defaultParent","measureScroll","resetTransform","ProjectionNode","id","parent","_this","Set","isTreeAnimating","isAnimationBlocked","updateManuallyBlocked","updateBlockedByResize","isSVG","needsReset","shouldResetTransform","eventHandlers","Map","potentialNodes","checkUpdateFailed","clearAllSnapshots","updateProjection","nodes","resolveTargetDelta","calcProjection","hasProjected","isVisible","animationProgress","sharedNodes","path","__spreadArray","registerPotentialNode","addEventListener","name","handler","has","set","SubscriptionManager","get","notifyListeners","args","_i","arguments","subscriptionManager","notify","apply","hasListeners","mount","SVGElement","tagName","layoutId","layout","getInstance","delete","unblockTimeout_1","resizeUnblockUpdate_1","clearTimeout","window","setTimeout","finishAnimation","registerSharedNode","animate","_f","hasLayoutChanged","hasRelativeTargetChanged","newLayout","isTreeAnimationBlocked","target","relativeTarget","layoutTransition","transition","getDefaultTransition","defaultLayoutTransition","_g","getProps","onLayoutAnimationStart","onLayoutAnimationComplete","targetChanged","targetLayout","hasOnlyRelativeTargetChanged","currentAnimation","setAnimationOrigin","animationOptions","__assign","getValueTransition","onPlay","onComplete","shouldReduceMotion","delay","type","startAnimation","isLead","unmount","willUpdate","getStack","cancelSync","preRender","blockUpdate","unblockUpdate","isUpdateBlocked","startUpdate","resetRotation","shouldNotifyListeners","updateScroll","transformTemplate","prevTransformTemplateValue","updateSnapshot","didUpdate","clearMeasurements","size","mountNodeEarly","clear","resetTransformStyle","updateLayout","notifyLayoutUpdate","flushSync","update","render","clearSnapshot","removeLeadSnapshots","scheduleUpdateProjection","sync","scheduleCheckAfterUnmount","postRender","measured","measure","removeTransform","removeElementScroll","roundBox","alwaysMeasureLayout","prevLayout","actual","layoutCorrected","createBox","projectionDelta","notifyLayoutMeasure","layoutScroll","scroll","isResetRequested","hasProjection","transformTemplateValue","transformTemplateHasChanged","hasTransform","measureViewportBox","translateAxis","boxWithoutScroll","scroll_1","applyTransform","transformOnly","withTransforms","transformBox","boxWithoutTransform","hasScale","setTargetDelta","targetDelta","setOptions","relativeParent","getClosestProjectingParent","relativeTargetOrigin","calcRelativePosition","targetWithTransforms","calcRelativeBox","Boolean","applyBoxDelta","attemptToResolveRelativeTarget","pendingAnimation","getLead","applyTreeDeltas","createDelta","projectionDeltaWithTransform","prevTreeScaleX","prevTreeScaleY","prevProjectionTransform","projectionTransform","calcBoxDelta","notifyAll","snapshotLatestValues","mixedValues","relativeLayout","isSharedLayoutAnimation","isOnlyMember","shouldCrossfadeOpacity","some","hasOpacityCrossfade","mixTargetDelta","latest","output","from","to","mixAxisDelta","mixAxis","follow","opacity","opacityExit","borderLabel","followRadius","leadRadius","Math","mixValues","stop","isMotionValue","motionValue","isAnimating","onUpdate","completeAnimation","applyTransformsToTarget","initialPromotionConfig","shouldPreserveFollowOpacity","stack","getPrevLead","hasRotate","resetValues","transformAxes","getStaticValue","setStaticValue","syncRender","getProjectionStyles","styleProp","styles","visibility","pointerEvents","resolveMotionValue","emptyStyles","valuesToRender","transformOrigin","scaleCorrectors","_h","correct","applyTo","corrected","num","resetTree","layout_1","measuredLayout","animationType","eachAxis","axisSnapshot","calcLength","layoutDelta","visualDelta","parentSnapshot","parentLayout","relativeSnapshot","onBeforeLayoutMeasure","notifyBeforeLayoutMeasure","duration","ease","searchNode","element","document","querySelector","roundAxis","round","easingLookup","easeIn","easeInOut","easeOut","circIn","circInOut","backIn","backInOut","backOut","anticipate","bounceIn","bounceInOut","bounceOut","easingDefinitionToFunction","definition","invariant","x1","y1","x2","y2","cubicBezier","isAnimatable","complex","startsWith","underDampedSpring","stiffness","damping","restSpeed","criticallyDampedSpring","sqrt","linearTween","keyframes","defaultTransitions","z","rotateZ","scaleX","scaleY","backgroundColor","color","default","instantAnimationState","legacyRepeatWarning","convertTransitionToAnimationOptions","times","yoyo","flip","loop","__rest","secondsToMilliseconds","repeatDelay","isEasingArray","map","warning","repeatType","repeat","getPopmotionAnimationOptions","valueKey","transitionFactory","hydrateKeyframes","when","delayChildren","staggerChildren","staggerDirection","keys","isTransitionDefined","isZero","getZeroUnit","potentialUnitType","getAnimatableNone","start","delayTimer","controls","animation","valueTransition","isTargetAnimatable","isOriginAnimatable","velocity","getVelocity","inertia","finalTarget","resolveFinalValueInKeyframes","getAnimation","getDelayFromTransition","subscriptions","c","numSubscriptions","getSize","dimensionValueTypes","number","degrees","vw","vh","parse","findDimensionValueType","find","testValueType","process$1","process","env","NODE_ENV","addScaleCorrector","correctors","assign","defaultPagePoint","pageX","pageY","pointFromTouch","e","pointType","touches","changedTouches","pointFromMouse","extractEventInfo","event","isTouchEvent","wrapHandler","shouldFilterPrimaryPointer","eventHandler","listener","isMouseEvent","MouseEvent","button","PointerEvent","pointerType","LazyContext","strict","useUnmountEffect","useEffect","defaultValueTypes","numberValueTypes","outlineColor","fill","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","filter","WebkitFilter","getDefaultValueType","isCustomValue","toValue","isAnimationControls","scrapeMotionValuesFromProps","props","style","newValues","isForcedMotionValue","createLock","lock","globalHorizontalLock","globalVerticalLock","getGlobalLock","drag","openHorizontal_1","openVertical_1","isDragActive","openGestureLock","translateAlias","transformPerspective","getValueAsType","buildHTMLStyles","state","vars","transformKeys","hasTransformOrigin","transformIsNone","isCSSVariable","valueType","valueAsType","isTransformProp","isTransformOriginProp","transformIsDefault","enableHardwareAcceleration","allowTransformNone","transformString","sortTransformProps","transformHasZ","numTransformKeys","trim","buildTransform","originX","originY","originZ","buildTransformOrigin","calcOrigin","offset","dashKeys","array","camelKeys","buildSVGAttrs","attrX","attrY","pathLength","pathSpacing","pathOffset","attrs","dimensions","pxOriginX","width","pxOriginY","height","calcSVGTransformOrigin","spacing","useDashCase","buildSVGPath","lowercaseSVGElements","isSVGComponent","Component","includes","seconds","convertBoundingBoxToBox","top","left","right","bottom","convertBoxToBoundingBox","transformBoxPoints","transformPoint","topLeft","bottomRight","unwrappedValue","createHtmlRenderState","copyRawValuesOnly","source","useStyle","visualState","useMemo","useInitialMotionValues","transformValues","useHTMLProps","htmlProps","dragListener","draggable","userSelect","WebkitUserSelect","WebkitTouchCallout","touchAction","validMotionProps","isValidMotionProp","isValidProp","shouldForward","require","createSvgRenderState","useSVGProps","visualProps","rawStyles","createUseRender","forwardMotionProps","projectionId","filteredProps","isDom","filterProps","elementProps","createElement","makeState","context","presenceContext","createRenderState","onMount","makeLatestValues","renderState","makeUseVisualState","config","PresenceContext","useConstant","scrapeMotionValues","blockInitialAnimation","initial","motionValues","isControllingVariants","checkIfControllingVariants","isVariantNode","checkIfVariantNode","inherit","initialAnimationIsBlocked","variantToSet","resolved","resolveVariantFromProps","transitionEnd","valueTarget","svgMotionConfig","useVisualState","getBBox","getBoundingClientRect","renderSVG","htmlMotionConfig","createDomMotionConfig","preloadedFeatures","createVisualElement","projectionNodeConstructor","baseConfig","useRender","names","BoundingBoxDimension","treeType","build","getBaseTarget","makeTargetAnimatable","renderInstance","readValueFromInstance","removeValueFromRenderState","sortNodePosition","presenceId","removeFromVariantTree","isMounted","lifecycles","managers","propSubscriptions","clearAllListeners","manager","updatePropListeners","on","propListener","createLifecycles","valueSubscriptions","prevMotionValues","baseTarget","triggerBuild","projection","notifyUpdate","bindToMotionValue","removeOnChange","onChange","latestValue","removeOnRenderRequest","onRenderRequest","initialMotionValues","current","variantChildren","manuallyAnimateOnMount","newInstance","addVariantChild","setProps","closestVariantNode","getClosestVariantNode","other","getLayoutId","getLatestValues","setVisibility","canMutate","addValue","hasValue","removeValue","getValue","defaultValue","forEachValue","readValue","setBaseTarget","newProps","next","prev","nextValue","prevValue","existingValue","hasAnimated","updateMotionValuesFromProps","getVariant","variants","getTransformPagePoint","getVariantContext","startAtParent","context_1","numVariantProps","name_1","variantProps","prop","isVariantLabel","variantPriorityOrder","positionalKeys","isPositionalKey","setAndResetVelocity","isNumOrPxType","getPosFromMatrix","matrix","pos","split","getTranslateFromMatrix","pos2","pos3","_bbox","matrix3d","match","nonTranslationalTransformKeys","transformProps","positionalValues","paddingLeft","paddingRight","paddingTop","paddingBottom","checkAndConvertChangedValueTypes","targetPositionalKeys","removedTransformValues","hasAttemptedToRemoveTransformValues","changedValueTypeKeys","toType","fromType","numKeyframes","fromIndex","removedTransforms","removeNonTranslationalTransform","convertedTarget","changedKeys","originBbox","elementComputedStyle","getComputedStyle","display","targetBbox","convertChangedValueTypes","unitConversion","hasPositionalKey","htmlConfig","domElement","defaultType","computedStyle","getPropertyValue","compareDocumentPosition","restoreTransform","mutableState","getOrigin","checkTargetForNewValues","parsed","resolveCSSVariables","parseDomVariant","renderHTML","htmlVisualElement","svgVisualElement","camelCaseAttributes","camelToDash","getAttribute","_element","createDomVisualElement","defaultValueType","isZeroValueString","valueTypes","findValueType","setMotionValue","setTarget","resolveVariant","newValueKeys","numNewValues","targetValue","getOriginFromTransition","animations","makeRenderlessComponent","animationState","createAnimationState","subscribe","exit","custom","usePresence","safeToRemove","setActive","AnimationType","Exit","then","counter","incrementId","useId","createMotionProxy","createConfig","customMotionComponentConfig","createMotionComponent","Proxy","componentCache","_target","createHoverEvent","isActive","info","Hover","isNodeOrChild","parentElement","warned","observerCallbacks","WeakMap","observers","fireObserverCallback","entry","fireAllObserverCallbacks","entries","observeIntersection","rootInteresectionObserver","lookupRoot","rootObservers","JSON","stringify","IntersectionObserver","initIntersectionObserver","observe","unobserve","thresholdNames","all","useIntersectionObserver","shouldObserve","rootMargin","margin","amount","once","threshold","isIntersecting","isInView","hasEnteredView","InView","onViewportEnter","onViewportLeave","useMissingIntersectionObserver","fallback","message","console","warn","requestAnimationFrame","gestureAnimations","inView","whileInView","viewport","useRef","tap","onTap","onTapStart","onTapCancel","whileTap","hasPressListeners","isPressing","cancelPointerEndListeners","removePointerEndListener","checkPointerEnd","Tap","onPointerUp","onPointerCancel","usePointerEvent","pipe","addPointerEvent","focus","whileFocus","useDomEvent","Focus","hover","onHoverStart","onHoverEnd","whileHover","measurePageBox","rootProjectionNode","viewportBox","cssVariableRegex","getVariableValue","exec","parseCSSVariable","token","Element","setProperty","CAMEL_CASE_PATTERN","str","replace","toLowerCase","scrapeMotionValuesFromProps$1","toUpperCase","_styleProp","setAttribute","register","SwitchLayoutGroupContext","featureNames","featureDefinitions","numFeatures","prefersReducedMotion","hasDetected","useReducedMotion","isBrowser","matchMedia","motionMediaQuery_1","setReducedMotionPreferences","matches","addListener","initPrefersReducedMotion","useState","useVisualElement","reducedMotionPreference","lazyContext","visualElementRef","renderer","useIsomorphicLayoutEffect","animateChanges","notifyUnmount","useCreateMotionContext","getCurrentTreeVariants","variantLabelsAsDependency","join","VisualElementHandler","_super","__extends","getSnapshotBeforeUpdate","updateProps","componentDidUpdate","React__default","loadFeatures","forwardRef","externalRef","layoutGroupId","LayoutGroupContext","useLayoutId","features","ProjectionNodeConstructor","dragConstraints","useProjection","isEnabled","React","useFeatures","Provider","useCallback","useMotionRef","shallowCompare","prevLength","animateVariant","variant","transitionOverride","animateTarget","Promise","resolve","getChildAnimations","forwardDelay","maxStaggerDuration","generateStaggerDuration","sortByTreeOrder","notifyAnimationComplete","animateChildren","first","last","animationTypeState","getState","shouldBlockAnimation","protectedKeys","needsAnimating","shouldBlock","Animate","Drag","reversePriorityOrder","reverse","numAnimationTypes","animateList","notifyAnimationStart","resolvedDefinition","animateVisualElement","createTypeState","allAnimatedKeys","isInitialRender","buildResolvedTypeValues","acc","changedActiveType","removedKeys","encounteredKeys","removedVariantIndex","Infinity","_loop_1","typeState","propIsVariant","activeDelta","isInherited","prevProp","variantDidChange","isVariantLabels","checkVariantsDidChange","shouldAnimateType","definitionList","resolvedValues","reduce","prevResolvedValues","allKeys","markToAnimate","fallbackAnimation_1","fallbackTarget","shouldAnimate","isAnimated","setAnimateFunction","makeAnimator","int","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","radius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","maxWidth","maxHeight","padding","marginTop","marginRight","marginBottom","marginLeft","scaleZ","skew","skewX","skewY","distance","translateX","translateY","translateZ","perspective","alpha","progressPercentage","zIndex","fillOpacity","strokeOpacity","numOctaves","defineProperty","exports","getCurrentTime","performance","now","Date","onNextFrame","useDefaultElapsed","runNextFrame","isProcessing","frame","timestamp","stepsOrder","steps","toRun","toRunNextFrame","numToRun","flushNextFrame","toKeepAlive","WeakSet","step","schedule","keepAlive","immediate","addToCurrentFrame","buffer","cancel","frameData","createRenderStep","startLoop","processStep","stepId","processFrame","getFrameData","currentValues","currentVelocity","getCurrent","whileDrag","operationKey","axesKey","transformPropSet","transformOriginProps","isNear","maxDistance","calcAxisDelta","isNaN","calcRelativeAxis","relative","calcRelativeAxisPosition","__decorate","__param","__esDecorate","__runInitializers","__propKey","__setFunctionName","__metadata","__awaiter","__generator","__exportStar","__values","__spread","__spreadArrays","__await","__asyncGenerator","__asyncDelegator","__asyncValues","__makeTemplateObject","__importStar","__importDefault","__classPrivateFieldGet","__classPrivateFieldSet","__classPrivateFieldIn","__createBinding","__addDisposableResource","__disposeResources","factory","global","self","createExporter","previous","create","__esModule","exporter","extendStatics","setPrototypeOf","__proto__","d","TypeError","String","__","constructor","t","s","n","getOwnPropertySymbols","propertyIsEnumerable","decorators","desc","r","getOwnPropertyDescriptor","Reflect","decorate","paramIndex","decorator","ctor","descriptorIn","contextIn","initializers","extraInitializers","accept","f","_","kind","descriptor","done","access","addInitializer","result","init","unshift","thisArg","useValue","prefix","description","configurable","metadataKey","metadataValue","metadata","_arguments","P","generator","reject","fulfilled","rejected","body","g","label","sent","trys","ops","verb","Symbol","iterator","op","pop","m","o","k","k2","writable","enumerable","ar","error","il","j","jl","pack","l","slice","asyncIterator","q","resume","fulfill","settle","shift","cooked","raw","__setModuleDefault","mod","receiver","async","dispose","asyncDispose","_SuppressedError","SuppressedError","suppressed","Error","fail","hasError","rec","MotionValue","timeDelta","lastUpdated","updateSubscribers","velocityUpdateSubscribers","renderSubscribers","canTrackVelocity","updateAndNotify","scheduleVelocityCheck","velocityCheck","subscription","clearListeners","attach","passiveEffect","getPrevious","velocityPerSecond","stopAnimation","clearAnimation","destroy","ex","memoize","reactPropsRegex","charCodeAt","applyPointDelta","applyAxisDelta","treePath","isSharedTransition","treeLength","transformAxis","axisOrigin","clamp","sanitize","Number","toFixed","floatRegex","colorRegex","singleColorRegex","isString","createUnitType","unit","endsWith","isColorString","testProp","splitColor","aName","bName","cName","hsla","hue","saturation","lightness","alpha$1","clampRgbUnit","rgbUnit","rgba","red","green","blue","hex","substr","parseInt","analyse","numColors","colors","numbers","tokenised","createTransformer","numValues","convertNumbersToZero","transformer","maxDefaults","applyDefaultFilter","functionRegex","functions","mouseEventNames","pointerdown","pointermove","pointerup","pointercancel","pointerover","pointerout","pointerenter","pointerleave","touchEventNames","getPointerEventName","onpointerdown","ontouchstart","onmousedown","eventName","addDomEvent","removeEventListener","tslib","heyListen","styleValueTypes","_interopDefaultLegacy","sync__default","findSpring","bounce","mass","envelope","derivative","maxDuration","dampingRatio","undampedFreq","exponentialDecay","calcAngularFreq","exp","pow","initialGuess","approximateRoot","durationKeys","physicsKeys","isSpringType","spring","restDelta","isResolvedFromDuration","springOptions","derived","getSpringOptions","resolveSpring","zero","resolveVelocity","createSpring","initialVelocity","initialDelta","undampedAngularFreq","abs","angularFreq","sin","cos","dampedAngularFreq","freqForT","sinh","cosh","isBelowVelocityThreshold","isBelowDisplacementThreshold","flipTarget","needsInterpolation","_t","toFromDifference","hueToRgb","hslaToRgba","mixLinearColor","fromExpo","toExpo","colorTypes","getColorType","notAnimatable","mixColor","fromColorType","toColorType","fromColor","toColor","blended","zeroPoint","isNum","combineFunctions","transformers","getMixer","mixComplex","mixArray","blendValue","fromThis","mixObject","numNumbers","numRGB","numHSL","template","originStats","targetStats","mixNumber","createMixers","customMixer","mixers","mixerFactory","numMixers","mixer","easingFunction","interpolate","input","isClamp","inputLength","interpolator","fastInterpolate","lastInputIndex","mixerIndex","foundMixerIndex","progressInRange","slowInterpolate","reverseEasing","mirrorEasing","createExpoIn","power","createBackIn","createAnticipate","backEasing","acos","p2","defaultEasing","convertOffsetToTimes","_value","defaultOffset","createInterpolator","decay","timeConstant","modifyTarget","amplitude","ideal","types","loopElapsed","elapsed","framesync","passTimestamp","autoplay","driver","repeatMax","onStop","onRepeat","driverControls","interpolateFromNumber","repeatCount","computedDuration","isComplete","isForwardPlayback","animator","detectAnimationFromOptions","reverseElapsed","hasRepeatDelayElapsed","frameDuration","radiansToDegrees","radians","PI","identity","createAttractor","alterDisplacement","constant","displacement","springModifiedDisplacement","attract","attractExpo","degreesToRadians","isPoint","isPoint3D","distance1D","toDecimal","precision","smoothFrame","smoothing","a1","a2","calcBezier","getSlope","angle","atan2","applyOffset","hasReceivedFrom","mX1","mY1","mX2","mY2","sampleValues","Float32Array","getTForX","aX","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","xDelta","yDelta","zDelta","bounceStiffness","bounceDamping","isOutOfBounds","boundaryNearest","startSpring","boundary","heading","checkBoundary","pointFromVector","smooth","strength","previousValue","currentFramestamp","newValue","snap","points","numPoints","lastDistance","direction","expanded","rounded","floor","ceil","velocityPerFrame","xps","wrap","rangeSize","hook","isIdentityScale","hasTranslate","useLayoutEffect","createDefinition","propNames","measureLayout","pan"],"mappings":"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","file":"3-d151089189d5170e154b.js","sourcesContent":["var isKeyframesTarget = function (v) {\n return Array.isArray(v);\n};\n\nexport { isKeyframesTarget };\n","import { __read } from 'tslib';\n\nfunction addUniqueItem(arr, item) {\n arr.indexOf(item) === -1 && arr.push(item);\n}\nfunction removeItem(arr, item) {\n var index = arr.indexOf(item);\n index > -1 && arr.splice(index, 1);\n}\n// Adapted from array-move\nfunction moveItem(_a, fromIndex, toIndex) {\n var _b = __read(_a), arr = _b.slice(0);\n var startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex;\n if (startIndex >= 0 && startIndex < arr.length) {\n var endIndex = toIndex < 0 ? arr.length + toIndex : toIndex;\n var _c = __read(arr.splice(fromIndex, 1), 1), item = _c[0];\n arr.splice(endIndex, 0, item);\n }\n return arr;\n}\n\nexport { addUniqueItem, moveItem, removeItem };\n","function isRefObject(ref) {\n return (typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\nexport { isRefObject };\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nvar MotionConfigContext = createContext({\n transformPagePoint: function (p) { return p; },\n isStatic: false,\n reducedMotion: \"never\",\n});\n\nexport { MotionConfigContext };\n","import { createContext, useContext } from 'react';\n\nvar MotionContext = createContext({});\nfunction useVisualElementContext() {\n return useContext(MotionContext).visualElement;\n}\n\nexport { MotionContext, useVisualElementContext };\n","import { mix, progress, linear, circOut } from 'popmotion';\nimport { px, percent } from 'style-value-types';\n\nvar borders = [\"TopLeft\", \"TopRight\", \"BottomLeft\", \"BottomRight\"];\nvar numBorders = borders.length;\nvar asNumber = function (value) {\n return typeof value === \"string\" ? parseFloat(value) : value;\n};\nvar isPx = function (value) {\n return typeof value === \"number\" || px.test(value);\n};\nfunction mixValues(target, follow, lead, progress, shouldCrossfadeOpacity, isOnlyMember) {\n var _a, _b, _c, _d;\n if (shouldCrossfadeOpacity) {\n target.opacity = mix(0, \n // (follow?.opacity as number) ?? 0,\n // TODO Reinstate this if only child\n (_a = lead.opacity) !== null && _a !== void 0 ? _a : 1, easeCrossfadeIn(progress));\n target.opacityExit = mix((_b = follow.opacity) !== null && _b !== void 0 ? _b : 1, 0, easeCrossfadeOut(progress));\n }\n else if (isOnlyMember) {\n target.opacity = mix((_c = follow.opacity) !== null && _c !== void 0 ? _c : 1, (_d = lead.opacity) !== null && _d !== void 0 ? _d : 1, progress);\n }\n /**\n * Mix border radius\n */\n for (var i = 0; i < numBorders; i++) {\n var borderLabel = \"border\".concat(borders[i], \"Radius\");\n var followRadius = getRadius(follow, borderLabel);\n var leadRadius = getRadius(lead, borderLabel);\n if (followRadius === undefined && leadRadius === undefined)\n continue;\n followRadius || (followRadius = 0);\n leadRadius || (leadRadius = 0);\n var canMix = followRadius === 0 ||\n leadRadius === 0 ||\n isPx(followRadius) === isPx(leadRadius);\n if (canMix) {\n target[borderLabel] = Math.max(mix(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 = mix(follow.rotate || 0, lead.rotate || 0, progress);\n }\n}\nfunction getRadius(values, radiusName) {\n var _a;\n return (_a = values[radiusName]) !== null && _a !== void 0 ? _a : values.borderRadius;\n}\n// /**\n// * We only want to mix the background color if there's a follow element\n// * that we're not crossfading opacity between. For instance with switch\n// * AnimateSharedLayout animations, this helps the illusion of a continuous\n// * element being animated but also cuts down on the number of paints triggered\n// * for elements where opacity is doing that work for us.\n// */\n// if (\n// !hasFollowElement &&\n// latestLeadValues.backgroundColor &&\n// latestFollowValues.backgroundColor\n// ) {\n// /**\n// * This isn't ideal performance-wise as mixColor is creating a new function every frame.\n// * We could probably create a mixer that runs at the start of the animation but\n// * the idea behind the crossfader is that it runs dynamically between two potentially\n// * changing targets (ie opacity or borderRadius may be animating independently via variants)\n// */\n// leadState.backgroundColor = followState.backgroundColor = mixColor(\n// latestFollowValues.backgroundColor as string,\n// latestLeadValues.backgroundColor as string\n// )(p)\n// }\nvar easeCrossfadeIn = compress(0, 0.5, circOut);\nvar easeCrossfadeOut = compress(0.5, 0.95, linear);\nfunction compress(min, max, easing) {\n return function (p) {\n // Could replace ifs with clamp\n if (p < min)\n return 0;\n if (p > max)\n return 1;\n return easing(progress(min, max, p));\n };\n}\n\nexport { mixValues };\n","/**\n * Reset an axis to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyAxisInto(axis, originAxis) {\n axis.min = originAxis.min;\n axis.max = originAxis.max;\n}\n/**\n * Reset a box to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyBoxInto(box, originBox) {\n copyAxisInto(box.x, originBox.x);\n copyAxisInto(box.y, originBox.y);\n}\n\nexport { copyAxisInto, copyBoxInto };\n","import { __read } from 'tslib';\nimport { mix } from 'popmotion';\nimport { percent } from 'style-value-types';\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, scale, origin, boxScale, originAxis, sourceAxis) {\n if (translate === void 0) { translate = 0; }\n if (scale === void 0) { scale = 1; }\n if (origin === void 0) { origin = 0.5; }\n if (originAxis === void 0) { originAxis = axis; }\n if (sourceAxis === void 0) { sourceAxis = axis; }\n if (percent.test(translate)) {\n translate = parseFloat(translate);\n var relativeProgress = mix(sourceAxis.min, sourceAxis.max, translate / 100);\n translate = relativeProgress - sourceAxis.min;\n }\n if (typeof translate !== \"number\")\n return;\n var originPoint = mix(originAxis.min, originAxis.max, origin);\n if (axis === originAxis)\n originPoint -= translate;\n axis.min = removePointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = removePointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Remove a transforms from an axis. This is essentially the steps of applyAxisTransforms in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeAxisTransforms(axis, transforms, _a, origin, sourceAxis) {\n var _b = __read(_a, 3), key = _b[0], scaleKey = _b[1], originKey = _b[2];\n removeAxisDelta(axis, transforms[key], transforms[scaleKey], transforms[originKey], transforms.scale, origin, sourceAxis);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nvar xKeys = [\"x\", \"scaleX\", \"originX\"];\nvar yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Remove a transforms from an box. This is essentially the steps of applyAxisBox in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeBoxTransforms(box, transforms, originBox, sourceBox) {\n removeAxisTransforms(box.x, transforms, xKeys, originBox === null || originBox === void 0 ? void 0 : originBox.x, sourceBox === null || sourceBox === void 0 ? void 0 : sourceBox.x);\n removeAxisTransforms(box.y, transforms, yKeys, originBox === null || originBox === void 0 ? void 0 : originBox.y, sourceBox === null || sourceBox === void 0 ? void 0 : sourceBox.y);\n}\n\nexport { removeAxisDelta, removeAxisTransforms, removeBoxTransforms, removePointDelta };\n","function isAxisDeltaZero(delta) {\n return delta.translate === 0 && delta.scale === 1;\n}\nfunction isDeltaZero(delta) {\n return isAxisDeltaZero(delta.x) && isAxisDeltaZero(delta.y);\n}\nfunction boxEquals(a, b) {\n return (a.x.min === b.x.min &&\n a.x.max === b.x.max &&\n a.y.min === b.y.min &&\n a.y.max === b.y.max);\n}\n\nexport { boxEquals, isDeltaZero };\n","import { addUniqueItem, removeItem } from '../../utils/array.mjs';\n\nvar NodeStack = /** @class */ (function () {\n function NodeStack() {\n this.members = [];\n }\n NodeStack.prototype.add = function (node) {\n addUniqueItem(this.members, node);\n node.scheduleRender();\n };\n NodeStack.prototype.remove = function (node) {\n removeItem(this.members, node);\n if (node === this.prevLead) {\n this.prevLead = undefined;\n }\n if (node === this.lead) {\n var prevLead = this.members[this.members.length - 1];\n if (prevLead) {\n this.promote(prevLead);\n }\n }\n };\n NodeStack.prototype.relegate = function (node) {\n var indexOfNode = this.members.findIndex(function (member) { return node === member; });\n if (indexOfNode === 0)\n return false;\n /**\n * Find the next projection node that is present\n */\n var prevLead;\n for (var i = indexOfNode; i >= 0; i--) {\n var member = this.members[i];\n if (member.isPresent !== false) {\n prevLead = member;\n break;\n }\n }\n if (prevLead) {\n this.promote(prevLead);\n return true;\n }\n else {\n return false;\n }\n };\n NodeStack.prototype.promote = function (node, preserveFollowOpacity) {\n var _a;\n var prevLead = this.lead;\n if (node === prevLead)\n return;\n this.prevLead = prevLead;\n this.lead = node;\n node.show();\n if (prevLead) {\n prevLead.instance && prevLead.scheduleRender();\n node.scheduleRender();\n node.resumeFrom = prevLead;\n if (preserveFollowOpacity) {\n node.resumeFrom.preserveOpacity = true;\n }\n if (prevLead.snapshot) {\n node.snapshot = prevLead.snapshot;\n node.snapshot.latestValues =\n prevLead.animationValues || prevLead.latestValues;\n node.snapshot.isShared = true;\n }\n if ((_a = node.root) === null || _a === void 0 ? void 0 : _a.isUpdating) {\n node.isLayoutDirty = true;\n }\n var crossfade = node.options.crossfade;\n if (crossfade === false) {\n prevLead.hide();\n }\n /**\n * TODO:\n * - Test border radius when previous node was deleted\n * - boxShadow mixing\n * - Shared between element A in scrolled container and element B (scroll stays the same or changes)\n * - Shared between element A in transformed container and element B (transform stays the same or changes)\n * - Shared between element A in scrolled page and element B (scroll stays the same or changes)\n * ---\n * - Crossfade opacity of root nodes\n * - layoutId changes after animation\n * - layoutId changes mid animation\n */\n }\n };\n NodeStack.prototype.exitAnimationComplete = function () {\n this.members.forEach(function (node) {\n var _a, _b, _c, _d, _e;\n (_b = (_a = node.options).onExitComplete) === null || _b === void 0 ? void 0 : _b.call(_a);\n (_e = (_c = node.resumingFrom) === null || _c === void 0 ? void 0 : (_d = _c.options).onExitComplete) === null || _e === void 0 ? void 0 : _e.call(_d);\n });\n };\n NodeStack.prototype.scheduleRender = function () {\n this.members.forEach(function (node) {\n node.instance && node.scheduleRender(false);\n });\n };\n /**\n * Clear any leads that have been removed this render to prevent them from being\n * used in future animations and to prevent memory leaks\n */\n NodeStack.prototype.removeLeadSnapshot = function () {\n if (this.lead && this.lead.snapshot) {\n this.lead.snapshot = undefined;\n }\n };\n return NodeStack;\n}());\n\nexport { NodeStack };\n","var identityProjection = \"translate3d(0px, 0px, 0) scale(1, 1)\";\nfunction buildProjectionTransform(delta, treeScale, latestTransform) {\n /**\n * The translations we use to calculate are always relative to the viewport coordinate space.\n * But when we apply scales, we also scale the coordinate space of an element and its children.\n * For instance if we have a treeScale (the culmination of all parent scales) of 0.5 and we need\n * to move an element 100 pixels, we actually need to move it 200 in within that scaled space.\n */\n var xTranslate = delta.x.translate / treeScale.x;\n var yTranslate = delta.y.translate / treeScale.y;\n var transform = \"translate3d(\".concat(xTranslate, \"px, \").concat(yTranslate, \"px, 0) \");\n if (latestTransform) {\n var rotate = latestTransform.rotate, rotateX = latestTransform.rotateX, rotateY = latestTransform.rotateY;\n if (rotate)\n transform += \"rotate(\".concat(rotate, \"deg) \");\n if (rotateX)\n transform += \"rotateX(\".concat(rotateX, \"deg) \");\n if (rotateY)\n transform += \"rotateY(\".concat(rotateY, \"deg) \");\n }\n transform += \"scale(\".concat(delta.x.scale, \", \").concat(delta.y.scale, \")\");\n return transform === identityProjection ? \"none\" : transform;\n}\n\nexport { buildProjectionTransform, identityProjection };\n","var compareByDepth = function (a, b) {\n return a.depth - b.depth;\n};\n\nexport { compareByDepth };\n","import { addUniqueItem, removeItem } from '../../utils/array.mjs';\nimport { compareByDepth } from './compare-by-depth.mjs';\n\nvar FlatTree = /** @class */ (function () {\n function FlatTree() {\n this.children = [];\n this.isDirty = false;\n }\n FlatTree.prototype.add = function (child) {\n addUniqueItem(this.children, child);\n this.isDirty = true;\n };\n FlatTree.prototype.remove = function (child) {\n removeItem(this.children, child);\n this.isDirty = true;\n };\n FlatTree.prototype.forEach = function (callback) {\n this.isDirty && this.children.sort(compareByDepth);\n this.isDirty = false;\n this.children.forEach(callback);\n };\n return FlatTree;\n}());\n\nexport { FlatTree };\n","import { __spreadArray, __read, __assign } from 'tslib';\nimport sync, { cancelSync, flushSync } from 'framesync';\nimport { mix } from 'popmotion';\nimport { animate } from '../../animation/animate.mjs';\nimport { SubscriptionManager } from '../../utils/subscription-manager.mjs';\nimport { mixValues } from '../animation/mix-values.mjs';\nimport { copyBoxInto } from '../geometry/copy.mjs';\nimport { translateAxis, transformBox, applyBoxDelta, applyTreeDeltas } from '../geometry/delta-apply.mjs';\nimport { calcRelativePosition, calcRelativeBox, calcBoxDelta, calcLength } from '../geometry/delta-calc.mjs';\nimport { removeBoxTransforms } from '../geometry/delta-remove.mjs';\nimport { createBox, createDelta } from '../geometry/models.mjs';\nimport { getValueTransition } from '../../animation/utils/transitions.mjs';\nimport { boxEquals, isDeltaZero } 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 } from '../utils/has-transform.mjs';\nimport { transformAxes } from '../../render/html/utils/transform.mjs';\nimport { FlatTree } from '../../render/utils/flat-tree.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\n\n/**\n * We use 1000 as the animation target as 0-1000 maps better to pixels than 0-1\n * which has a noticeable difference in spring animations\n */\nvar animationTarget = 1000;\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 */\nvar 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};\nfunction createProjectionNode(_a) {\n var attachResizeListener = _a.attachResizeListener, defaultParent = _a.defaultParent, measureScroll = _a.measureScroll, resetTransform = _a.resetTransform;\n return /** @class */ (function () {\n function ProjectionNode(id, latestValues, parent) {\n var _this = this;\n if (latestValues === void 0) { latestValues = {}; }\n if (parent === void 0) { parent = defaultParent === null || defaultParent === void 0 ? void 0 : defaultParent(); }\n /**\n * A Set containing all this component's children. This is used to iterate\n * through the children.\n *\n * TODO: This could be faster to iterate as a flat array stored on the root node.\n */\n this.children = new Set();\n /**\n * Options for the node. We use this to configure what kind of layout animations\n * we should perform (if any).\n */\n this.options = {};\n /**\n * We use this to detect when its safe to shut down part of a projection tree.\n * We have to keep projecting children for scale correction and relative projection\n * until all their parents stop performing layout animations.\n */\n this.isTreeAnimating = false;\n this.isAnimationBlocked = false;\n /**\n * Flag to true if we think this layout has been changed. We can't always know this,\n * currently we set it to true every time a component renders, or if it has a layoutDependency\n * if that has changed between renders. Additionally, components can be grouped by LayoutGroup\n * and if one node is dirtied, they all are.\n */\n this.isLayoutDirty = false;\n /**\n * Block layout updates for instant layout transitions throughout the tree.\n */\n this.updateManuallyBlocked = false;\n this.updateBlockedByResize = false;\n /**\n * Set to true between the start of the first `willUpdate` call and the end of the `didUpdate`\n * call.\n */\n this.isUpdating = false;\n /**\n * If this is an SVG element we currently disable projection transforms\n */\n this.isSVG = false;\n /**\n * Flag to true (during promotion) if a node doing an instant layout transition needs to reset\n * its projection styles.\n */\n this.needsReset = false;\n /**\n * Flags whether this node should have its transform reset prior to measuring.\n */\n this.shouldResetTransform = false;\n /**\n * An object representing the calculated contextual/accumulated/tree scale.\n * This will be used to scale calculcated projection transforms, as these are\n * calculated in screen-space but need to be scaled for elements to actually\n * make it to their calculated destinations.\n *\n * TODO: Lazy-init\n */\n this.treeScale = { x: 1, y: 1 };\n /**\n *\n */\n this.eventHandlers = new Map();\n // Note: Currently only running on root node\n this.potentialNodes = new Map();\n this.checkUpdateFailed = function () {\n if (_this.isUpdating) {\n _this.isUpdating = false;\n _this.clearAllSnapshots();\n }\n };\n this.updateProjection = function () {\n _this.nodes.forEach(resolveTargetDelta);\n _this.nodes.forEach(calcProjection);\n };\n this.hasProjected = false;\n this.isVisible = true;\n this.animationProgress = 0;\n /**\n * Shared layout\n */\n // TODO Only running on root node\n this.sharedNodes = new Map();\n this.id = id;\n this.latestValues = latestValues;\n this.root = parent ? parent.root || parent : this;\n this.path = parent ? __spreadArray(__spreadArray([], __read(parent.path), false), [parent], false) : [];\n this.parent = parent;\n this.depth = parent ? parent.depth + 1 : 0;\n id && this.root.registerPotentialNode(id, this);\n for (var i = 0; i < this.path.length; i++) {\n this.path[i].shouldResetTransform = true;\n }\n if (this.root === this)\n this.nodes = new FlatTree();\n }\n ProjectionNode.prototype.addEventListener = function (name, handler) {\n if (!this.eventHandlers.has(name)) {\n this.eventHandlers.set(name, new SubscriptionManager());\n }\n return this.eventHandlers.get(name).add(handler);\n };\n ProjectionNode.prototype.notifyListeners = function (name) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var subscriptionManager = this.eventHandlers.get(name);\n subscriptionManager === null || subscriptionManager === void 0 ? void 0 : subscriptionManager.notify.apply(subscriptionManager, __spreadArray([], __read(args), false));\n };\n ProjectionNode.prototype.hasListeners = function (name) {\n return this.eventHandlers.has(name);\n };\n ProjectionNode.prototype.registerPotentialNode = function (id, node) {\n this.potentialNodes.set(id, node);\n };\n /**\n * Lifecycles\n */\n ProjectionNode.prototype.mount = function (instance, isLayoutDirty) {\n var _this = this;\n var _a;\n if (isLayoutDirty === void 0) { isLayoutDirty = false; }\n if (this.instance)\n return;\n this.isSVG =\n instance instanceof SVGElement && instance.tagName !== \"svg\";\n this.instance = instance;\n var _b = this.options, layoutId = _b.layoutId, layout = _b.layout, visualElement = _b.visualElement;\n if (visualElement && !visualElement.getInstance()) {\n visualElement.mount(instance);\n }\n this.root.nodes.add(this);\n (_a = this.parent) === null || _a === void 0 ? void 0 : _a.children.add(this);\n this.id && this.root.potentialNodes.delete(this.id);\n if (isLayoutDirty && (layout || layoutId)) {\n this.isLayoutDirty = true;\n }\n if (attachResizeListener) {\n var unblockTimeout_1;\n var resizeUnblockUpdate_1 = function () {\n return (_this.root.updateBlockedByResize = false);\n };\n attachResizeListener(instance, function () {\n _this.root.updateBlockedByResize = true;\n clearTimeout(unblockTimeout_1);\n unblockTimeout_1 = window.setTimeout(resizeUnblockUpdate_1, 250);\n if (globalProjectionState.hasAnimatedSinceResize) {\n globalProjectionState.hasAnimatedSinceResize = false;\n _this.nodes.forEach(finishAnimation);\n }\n });\n }\n if (layoutId) {\n this.root.registerSharedNode(layoutId, this);\n }\n // Only register the handler if it requires layout animation\n if (this.options.animate !== false &&\n visualElement &&\n (layoutId || layout)) {\n this.addEventListener(\"didUpdate\", function (_a) {\n var _b, _c, _d, _e, _f;\n var delta = _a.delta, hasLayoutChanged = _a.hasLayoutChanged, hasRelativeTargetChanged = _a.hasRelativeTargetChanged, newLayout = _a.layout;\n if (_this.isTreeAnimationBlocked()) {\n _this.target = undefined;\n _this.relativeTarget = undefined;\n return;\n }\n // TODO: Check here if an animation exists\n var layoutTransition = (_c = (_b = _this.options.transition) !== null && _b !== void 0 ? _b : visualElement.getDefaultTransition()) !== null && _c !== void 0 ? _c : defaultLayoutTransition;\n var _g = visualElement.getProps(), onLayoutAnimationStart = _g.onLayoutAnimationStart, onLayoutAnimationComplete = _g.onLayoutAnimationComplete;\n /**\n * The target layout of the element might stay the same,\n * but its position relative to its parent has changed.\n */\n var targetChanged = !_this.targetLayout ||\n !boxEquals(_this.targetLayout, newLayout) ||\n hasRelativeTargetChanged;\n /**\n * If the layout hasn't seemed to have changed, it might be that the\n * element is visually in the same place in the document but its position\n * relative to its parent has indeed changed. So here we check for that.\n */\n var hasOnlyRelativeTargetChanged = !hasLayoutChanged && hasRelativeTargetChanged;\n if (((_d = _this.resumeFrom) === null || _d === void 0 ? void 0 : _d.instance) ||\n hasOnlyRelativeTargetChanged ||\n (hasLayoutChanged &&\n (targetChanged || !_this.currentAnimation))) {\n if (_this.resumeFrom) {\n _this.resumingFrom = _this.resumeFrom;\n _this.resumingFrom.resumingFrom = undefined;\n }\n _this.setAnimationOrigin(delta, hasOnlyRelativeTargetChanged);\n var animationOptions = __assign(__assign({}, getValueTransition(layoutTransition, \"layout\")), { onPlay: onLayoutAnimationStart, onComplete: onLayoutAnimationComplete });\n if (visualElement.shouldReduceMotion) {\n animationOptions.delay = 0;\n animationOptions.type = false;\n }\n _this.startAnimation(animationOptions);\n }\n else {\n /**\n * If the layout hasn't changed and we have an animation that hasn't started yet,\n * finish it immediately. Otherwise it will be animating from a location\n * that was probably never commited to screen and look like a jumpy box.\n */\n if (!hasLayoutChanged &&\n _this.animationProgress === 0) {\n _this.finishAnimation();\n }\n _this.isLead() && ((_f = (_e = _this.options).onExitComplete) === null || _f === void 0 ? void 0 : _f.call(_e));\n }\n _this.targetLayout = newLayout;\n });\n }\n };\n ProjectionNode.prototype.unmount = function () {\n var _a, _b;\n this.options.layoutId && this.willUpdate();\n this.root.nodes.remove(this);\n (_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.remove(this);\n (_b = this.parent) === null || _b === void 0 ? void 0 : _b.children.delete(this);\n this.instance = undefined;\n cancelSync.preRender(this.updateProjection);\n };\n // only on the root\n ProjectionNode.prototype.blockUpdate = function () {\n this.updateManuallyBlocked = true;\n };\n ProjectionNode.prototype.unblockUpdate = function () {\n this.updateManuallyBlocked = false;\n };\n ProjectionNode.prototype.isUpdateBlocked = function () {\n return this.updateManuallyBlocked || this.updateBlockedByResize;\n };\n ProjectionNode.prototype.isTreeAnimationBlocked = function () {\n var _a;\n return (this.isAnimationBlocked ||\n ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isTreeAnimationBlocked()) ||\n false);\n };\n // Note: currently only running on root node\n ProjectionNode.prototype.startUpdate = function () {\n var _a;\n if (this.isUpdateBlocked())\n return;\n this.isUpdating = true;\n (_a = this.nodes) === null || _a === void 0 ? void 0 : _a.forEach(resetRotation);\n };\n ProjectionNode.prototype.willUpdate = function (shouldNotifyListeners) {\n var _a, _b, _c;\n if (shouldNotifyListeners === void 0) { shouldNotifyListeners = true; }\n if (this.root.isUpdateBlocked()) {\n (_b = (_a = this.options).onExitComplete) === null || _b === void 0 ? void 0 : _b.call(_a);\n return;\n }\n !this.root.isUpdating && this.root.startUpdate();\n if (this.isLayoutDirty)\n return;\n this.isLayoutDirty = true;\n for (var i = 0; i < this.path.length; i++) {\n var node = this.path[i];\n node.shouldResetTransform = true;\n /**\n * TODO: Check we haven't updated the scroll\n * since the last didUpdate\n */\n node.updateScroll();\n }\n var _d = this.options, layoutId = _d.layoutId, layout = _d.layout;\n if (layoutId === undefined && !layout)\n return;\n var transformTemplate = (_c = this.options.visualElement) === null || _c === void 0 ? void 0 : _c.getProps().transformTemplate;\n this.prevTransformTemplateValue = transformTemplate === null || transformTemplate === void 0 ? void 0 : transformTemplate(this.latestValues, \"\");\n this.updateSnapshot();\n shouldNotifyListeners && this.notifyListeners(\"willUpdate\");\n };\n // Note: Currently only running on root node\n ProjectionNode.prototype.didUpdate = function () {\n var updateWasBlocked = this.isUpdateBlocked();\n // When doing an instant transition, we skip the layout update,\n // but should still clean up the measurements so that the next\n // snapshot could be taken correctly.\n if (updateWasBlocked) {\n this.unblockUpdate();\n this.clearAllSnapshots();\n this.nodes.forEach(clearMeasurements);\n return;\n }\n if (!this.isUpdating)\n return;\n this.isUpdating = false;\n /**\n * Search for and mount newly-added projection elements.\n *\n * TODO: Every time a new component is rendered we could search up the tree for\n * the closest mounted node and query from there rather than document.\n */\n if (this.potentialNodes.size) {\n this.potentialNodes.forEach(mountNodeEarly);\n this.potentialNodes.clear();\n }\n /**\n * Write\n */\n this.nodes.forEach(resetTransformStyle);\n /**\n * Read ==================\n */\n // Update layout measurements of updated children\n this.nodes.forEach(updateLayout);\n /**\n * Write\n */\n // Notify listeners that the layout is updated\n this.nodes.forEach(notifyLayoutUpdate);\n this.clearAllSnapshots();\n // Flush any scheduled updates\n flushSync.update();\n flushSync.preRender();\n flushSync.render();\n };\n ProjectionNode.prototype.clearAllSnapshots = function () {\n this.nodes.forEach(clearSnapshot);\n this.sharedNodes.forEach(removeLeadSnapshots);\n };\n ProjectionNode.prototype.scheduleUpdateProjection = function () {\n sync.preRender(this.updateProjection, false, true);\n };\n ProjectionNode.prototype.scheduleCheckAfterUnmount = function () {\n var _this = this;\n /**\n * If the unmounting node is in a layoutGroup and did trigger a willUpdate,\n * we manually call didUpdate to give a chance to the siblings to animate.\n * Otherwise, cleanup all snapshots to prevents future nodes from reusing them.\n */\n sync.postRender(function () {\n if (_this.isLayoutDirty) {\n _this.root.didUpdate();\n }\n else {\n _this.root.checkUpdateFailed();\n }\n });\n };\n /**\n * Update measurements\n */\n ProjectionNode.prototype.updateSnapshot = function () {\n if (this.snapshot || !this.instance)\n return;\n var measured = this.measure();\n var layout = this.removeTransform(this.removeElementScroll(measured));\n roundBox(layout);\n this.snapshot = {\n measured: measured,\n layout: layout,\n latestValues: {},\n };\n };\n ProjectionNode.prototype.updateLayout = function () {\n var _a;\n if (!this.instance)\n return;\n // TODO: Incorporate into a forwarded scroll offset\n this.updateScroll();\n if (!(this.options.alwaysMeasureLayout && this.isLead()) &&\n !this.isLayoutDirty) {\n return;\n }\n /**\n * When a node is mounted, it simply resumes from the prevLead's\n * snapshot instead of taking a new one, but the ancestors scroll\n * might have updated while the prevLead is unmounted. We need to\n * update the scroll again to make sure the layout we measure is\n * up to date.\n */\n if (this.resumeFrom && !this.resumeFrom.instance) {\n for (var i = 0; i < this.path.length; i++) {\n var node = this.path[i];\n node.updateScroll();\n }\n }\n var measured = this.measure();\n roundBox(measured);\n var prevLayout = this.layout;\n this.layout = {\n measured: measured,\n actual: this.removeElementScroll(measured),\n };\n this.layoutCorrected = createBox();\n this.isLayoutDirty = false;\n this.projectionDelta = undefined;\n this.notifyListeners(\"measure\", this.layout.actual);\n (_a = this.options.visualElement) === null || _a === void 0 ? void 0 : _a.notifyLayoutMeasure(this.layout.actual, prevLayout === null || prevLayout === void 0 ? void 0 : prevLayout.actual);\n };\n ProjectionNode.prototype.updateScroll = function () {\n if (this.options.layoutScroll && this.instance) {\n this.scroll = measureScroll(this.instance);\n }\n };\n ProjectionNode.prototype.resetTransform = function () {\n var _a;\n if (!resetTransform)\n return;\n var isResetRequested = this.isLayoutDirty || this.shouldResetTransform;\n var hasProjection = this.projectionDelta && !isDeltaZero(this.projectionDelta);\n var transformTemplate = (_a = this.options.visualElement) === null || _a === void 0 ? void 0 : _a.getProps().transformTemplate;\n var transformTemplateValue = transformTemplate === null || transformTemplate === void 0 ? void 0 : transformTemplate(this.latestValues, \"\");\n var transformTemplateHasChanged = transformTemplateValue !== this.prevTransformTemplateValue;\n if (isResetRequested &&\n (hasProjection ||\n hasTransform(this.latestValues) ||\n transformTemplateHasChanged)) {\n resetTransform(this.instance, transformTemplateValue);\n this.shouldResetTransform = false;\n this.scheduleRender();\n }\n };\n ProjectionNode.prototype.measure = function () {\n var visualElement = this.options.visualElement;\n if (!visualElement)\n return createBox();\n var box = visualElement.measureViewportBox();\n // Remove viewport scroll to give page-relative coordinates\n var scroll = this.root.scroll;\n if (scroll) {\n translateAxis(box.x, scroll.x);\n translateAxis(box.y, scroll.y);\n }\n return box;\n };\n ProjectionNode.prototype.removeElementScroll = function (box) {\n var boxWithoutScroll = createBox();\n copyBoxInto(boxWithoutScroll, box);\n /**\n * Performance TODO: Keep a cumulative scroll offset down the tree\n * rather than loop back up the path.\n */\n for (var i = 0; i < this.path.length; i++) {\n var node = this.path[i];\n var scroll_1 = node.scroll, options = node.options;\n if (node !== this.root && scroll_1 && options.layoutScroll) {\n translateAxis(boxWithoutScroll.x, scroll_1.x);\n translateAxis(boxWithoutScroll.y, scroll_1.y);\n }\n }\n return boxWithoutScroll;\n };\n ProjectionNode.prototype.applyTransform = function (box, transformOnly) {\n if (transformOnly === void 0) { transformOnly = false; }\n var withTransforms = createBox();\n copyBoxInto(withTransforms, box);\n for (var i = 0; i < this.path.length; i++) {\n var node = this.path[i];\n if (!transformOnly &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(withTransforms, {\n x: -node.scroll.x,\n y: -node.scroll.y,\n });\n }\n if (!hasTransform(node.latestValues))\n continue;\n transformBox(withTransforms, node.latestValues);\n }\n if (hasTransform(this.latestValues)) {\n transformBox(withTransforms, this.latestValues);\n }\n return withTransforms;\n };\n ProjectionNode.prototype.removeTransform = function (box) {\n var _a;\n var boxWithoutTransform = createBox();\n copyBoxInto(boxWithoutTransform, box);\n for (var i = 0; i < this.path.length; i++) {\n var node = this.path[i];\n if (!node.instance)\n continue;\n if (!hasTransform(node.latestValues))\n continue;\n hasScale(node.latestValues) && node.updateSnapshot();\n var sourceBox = createBox();\n var nodeBox = node.measure();\n copyBoxInto(sourceBox, nodeBox);\n removeBoxTransforms(boxWithoutTransform, node.latestValues, (_a = node.snapshot) === null || _a === void 0 ? void 0 : _a.layout, sourceBox);\n }\n if (hasTransform(this.latestValues)) {\n removeBoxTransforms(boxWithoutTransform, this.latestValues);\n }\n return boxWithoutTransform;\n };\n /**\n *\n */\n ProjectionNode.prototype.setTargetDelta = function (delta) {\n this.targetDelta = delta;\n this.root.scheduleUpdateProjection();\n };\n ProjectionNode.prototype.setOptions = function (options) {\n var _a;\n this.options = __assign(__assign(__assign({}, this.options), options), { crossfade: (_a = options.crossfade) !== null && _a !== void 0 ? _a : true });\n };\n ProjectionNode.prototype.clearMeasurements = function () {\n this.scroll = undefined;\n this.layout = undefined;\n this.snapshot = undefined;\n this.prevTransformTemplateValue = undefined;\n this.targetDelta = undefined;\n this.target = undefined;\n this.isLayoutDirty = false;\n };\n /**\n * Frame calculations\n */\n ProjectionNode.prototype.resolveTargetDelta = function () {\n var _a;\n var _b = this.options, layout = _b.layout, layoutId = _b.layoutId;\n /**\n * If we have no layout, we can't perform projection, so early return\n */\n if (!this.layout || !(layout || layoutId))\n return;\n /**\n * If we don't have a targetDelta but do have a layout, we can attempt to resolve\n * a relativeParent. This will allow a component to perform scale correction\n * even if no animation has started.\n */\n // TODO If this is unsuccessful this currently happens every frame\n if (!this.targetDelta && !this.relativeTarget) {\n // TODO: This is a semi-repetition of further down this function, make DRY\n this.relativeParent = this.getClosestProjectingParent();\n if (this.relativeParent && this.relativeParent.layout) {\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.layout.actual, this.relativeParent.layout.actual);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n }\n }\n /**\n * If we have no relative target or no target delta our target isn't valid\n * for this frame.\n */\n if (!this.relativeTarget && !this.targetDelta)\n return;\n /**\n * Lazy-init target data structure\n */\n if (!this.target) {\n this.target = createBox();\n this.targetWithTransforms = createBox();\n }\n /**\n * If we've got a relative box for this component, resolve it into a target relative to the parent.\n */\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n ((_a = this.relativeParent) === null || _a === void 0 ? void 0 : _a.target)) {\n calcRelativeBox(this.target, this.relativeTarget, this.relativeParent.target);\n /**\n * If we've only got a targetDelta, resolve it into a target\n */\n }\n else if (this.targetDelta) {\n if (Boolean(this.resumingFrom)) {\n // TODO: This is creating a new object every frame\n this.target = this.applyTransform(this.layout.actual);\n }\n else {\n copyBoxInto(this.target, this.layout.actual);\n }\n applyBoxDelta(this.target, this.targetDelta);\n }\n else {\n /**\n * If no target, use own layout as target\n */\n copyBoxInto(this.target, this.layout.actual);\n }\n /**\n * If we've been told to attempt to resolve a relative target, do so.\n */\n if (this.attemptToResolveRelativeTarget) {\n this.attemptToResolveRelativeTarget = false;\n this.relativeParent = this.getClosestProjectingParent();\n if (this.relativeParent &&\n Boolean(this.relativeParent.resumingFrom) ===\n Boolean(this.resumingFrom) &&\n !this.relativeParent.options.layoutScroll &&\n this.relativeParent.target) {\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.target, this.relativeParent.target);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n }\n }\n };\n ProjectionNode.prototype.getClosestProjectingParent = function () {\n if (!this.parent || hasTransform(this.parent.latestValues))\n return undefined;\n if ((this.parent.relativeTarget || this.parent.targetDelta) &&\n this.parent.layout) {\n return this.parent;\n }\n else {\n return this.parent.getClosestProjectingParent();\n }\n };\n ProjectionNode.prototype.calcProjection = function () {\n var _a;\n var _b = this.options, layout = _b.layout, layoutId = _b.layoutId;\n /**\n * If this section of the tree isn't animating we can\n * delete our target sources for the following frame.\n */\n this.isTreeAnimating = Boolean(((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isTreeAnimating) ||\n this.currentAnimation ||\n this.pendingAnimation);\n if (!this.isTreeAnimating) {\n this.targetDelta = this.relativeTarget = undefined;\n }\n if (!this.layout || !(layout || layoutId))\n return;\n var lead = this.getLead();\n /**\n * Reset the corrected box with the latest values from box, as we're then going\n * to perform mutative operations on it.\n */\n copyBoxInto(this.layoutCorrected, this.layout.actual);\n /**\n * Apply all the parent deltas to this box to produce the corrected box. This\n * is the layout box, as it will appear on screen as a result of the transforms of its parents.\n */\n applyTreeDeltas(this.layoutCorrected, this.treeScale, this.path, Boolean(this.resumingFrom) || this !== lead);\n var target = lead.target;\n if (!target)\n return;\n if (!this.projectionDelta) {\n this.projectionDelta = createDelta();\n this.projectionDeltaWithTransform = createDelta();\n }\n var prevTreeScaleX = this.treeScale.x;\n var prevTreeScaleY = this.treeScale.y;\n var prevProjectionTransform = this.projectionTransform;\n /**\n * Update the delta between the corrected box and the target box before user-set transforms were applied.\n * This will allow us to calculate the corrected borderRadius and boxShadow to compensate\n * for our layout reprojection, but still allow them to be scaled correctly by the user.\n * It might be that to simplify this we may want to accept that user-set scale is also corrected\n * and we wouldn't have to keep and calc both deltas, OR we could support a user setting\n * to allow people to choose whether these styles are corrected based on just the\n * layout reprojection or the final bounding box.\n */\n calcBoxDelta(this.projectionDelta, this.layoutCorrected, target, this.latestValues);\n this.projectionTransform = buildProjectionTransform(this.projectionDelta, this.treeScale);\n if (this.projectionTransform !== prevProjectionTransform ||\n this.treeScale.x !== prevTreeScaleX ||\n this.treeScale.y !== prevTreeScaleY) {\n this.hasProjected = true;\n this.scheduleRender();\n this.notifyListeners(\"projectionUpdate\", target);\n }\n };\n ProjectionNode.prototype.hide = function () {\n this.isVisible = false;\n // TODO: Schedule render\n };\n ProjectionNode.prototype.show = function () {\n this.isVisible = true;\n // TODO: Schedule render\n };\n ProjectionNode.prototype.scheduleRender = function (notifyAll) {\n var _a, _b, _c;\n if (notifyAll === void 0) { notifyAll = true; }\n (_b = (_a = this.options).scheduleRender) === null || _b === void 0 ? void 0 : _b.call(_a);\n notifyAll && ((_c = this.getStack()) === null || _c === void 0 ? void 0 : _c.scheduleRender());\n if (this.resumingFrom && !this.resumingFrom.instance) {\n this.resumingFrom = undefined;\n }\n };\n ProjectionNode.prototype.setAnimationOrigin = function (delta, hasOnlyRelativeTargetChanged) {\n var _this = this;\n var _a;\n if (hasOnlyRelativeTargetChanged === void 0) { hasOnlyRelativeTargetChanged = false; }\n var snapshot = this.snapshot;\n var snapshotLatestValues = (snapshot === null || snapshot === void 0 ? void 0 : snapshot.latestValues) || {};\n var mixedValues = __assign({}, this.latestValues);\n var targetDelta = createDelta();\n this.relativeTarget = this.relativeTargetOrigin = undefined;\n this.attemptToResolveRelativeTarget = !hasOnlyRelativeTargetChanged;\n var relativeLayout = createBox();\n var isSharedLayoutAnimation = snapshot === null || snapshot === void 0 ? void 0 : snapshot.isShared;\n var isOnlyMember = (((_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.members.length) || 0) <= 1;\n var shouldCrossfadeOpacity = Boolean(isSharedLayoutAnimation &&\n !isOnlyMember &&\n this.options.crossfade === true &&\n !this.path.some(hasOpacityCrossfade));\n this.animationProgress = 0;\n this.mixTargetDelta = function (latest) {\n var _a;\n var progress = latest / 1000;\n mixAxisDelta(targetDelta.x, delta.x, progress);\n mixAxisDelta(targetDelta.y, delta.y, progress);\n _this.setTargetDelta(targetDelta);\n if (_this.relativeTarget &&\n _this.relativeTargetOrigin &&\n _this.layout &&\n ((_a = _this.relativeParent) === null || _a === void 0 ? void 0 : _a.layout)) {\n calcRelativePosition(relativeLayout, _this.layout.actual, _this.relativeParent.layout.actual);\n mixBox(_this.relativeTarget, _this.relativeTargetOrigin, relativeLayout, progress);\n }\n if (isSharedLayoutAnimation) {\n _this.animationValues = mixedValues;\n mixValues(mixedValues, snapshotLatestValues, _this.latestValues, progress, shouldCrossfadeOpacity, isOnlyMember);\n }\n _this.root.scheduleUpdateProjection();\n _this.scheduleRender();\n _this.animationProgress = progress;\n };\n this.mixTargetDelta(0);\n };\n ProjectionNode.prototype.startAnimation = function (options) {\n var _this = this;\n var _a, _b;\n this.notifyListeners(\"animationStart\");\n (_a = this.currentAnimation) === null || _a === void 0 ? void 0 : _a.stop();\n if (this.resumingFrom) {\n (_b = this.resumingFrom.currentAnimation) === null || _b === void 0 ? void 0 : _b.stop();\n }\n if (this.pendingAnimation) {\n cancelSync.update(this.pendingAnimation);\n this.pendingAnimation = undefined;\n }\n /**\n * Start the animation in the next frame to have a frame with progress 0,\n * where the target is the same as when the animation started, so we can\n * calculate the relative positions correctly for instant transitions.\n */\n this.pendingAnimation = sync.update(function () {\n globalProjectionState.hasAnimatedSinceResize = true;\n _this.currentAnimation = animate(0, animationTarget, __assign(__assign({}, options), { onUpdate: function (latest) {\n var _a;\n _this.mixTargetDelta(latest);\n (_a = options.onUpdate) === null || _a === void 0 ? void 0 : _a.call(options, latest);\n }, onComplete: function () {\n var _a;\n (_a = options.onComplete) === null || _a === void 0 ? void 0 : _a.call(options);\n _this.completeAnimation();\n } }));\n if (_this.resumingFrom) {\n _this.resumingFrom.currentAnimation = _this.currentAnimation;\n }\n _this.pendingAnimation = undefined;\n });\n };\n ProjectionNode.prototype.completeAnimation = function () {\n var _a;\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = undefined;\n this.resumingFrom.preserveOpacity = undefined;\n }\n (_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.exitAnimationComplete();\n this.resumingFrom =\n this.currentAnimation =\n this.animationValues =\n undefined;\n this.notifyListeners(\"animationComplete\");\n };\n ProjectionNode.prototype.finishAnimation = function () {\n var _a;\n if (this.currentAnimation) {\n (_a = this.mixTargetDelta) === null || _a === void 0 ? void 0 : _a.call(this, animationTarget);\n this.currentAnimation.stop();\n }\n this.completeAnimation();\n };\n ProjectionNode.prototype.applyTransformsToTarget = function () {\n var _a = this.getLead(), targetWithTransforms = _a.targetWithTransforms, target = _a.target, layout = _a.layout, latestValues = _a.latestValues;\n if (!targetWithTransforms || !target || !layout)\n return;\n copyBoxInto(targetWithTransforms, target);\n /**\n * Apply the latest user-set transforms to the targetBox to produce the targetBoxFinal.\n * This is the final box that we will then project into by calculating a transform delta and\n * applying it to the corrected box.\n */\n transformBox(targetWithTransforms, latestValues);\n /**\n * Update the delta between the corrected box and the final target box, after\n * user-set transforms are applied to it. This will be used by the renderer to\n * create a transform style that will reproject the element from its actual layout\n * into the desired bounding box.\n */\n calcBoxDelta(this.projectionDeltaWithTransform, this.layoutCorrected, targetWithTransforms, latestValues);\n };\n ProjectionNode.prototype.registerSharedNode = function (layoutId, node) {\n var _a, _b, _c;\n if (!this.sharedNodes.has(layoutId)) {\n this.sharedNodes.set(layoutId, new NodeStack());\n }\n var stack = this.sharedNodes.get(layoutId);\n stack.add(node);\n node.promote({\n transition: (_a = node.options.initialPromotionConfig) === null || _a === void 0 ? void 0 : _a.transition,\n preserveFollowOpacity: (_c = (_b = node.options.initialPromotionConfig) === null || _b === void 0 ? void 0 : _b.shouldPreserveFollowOpacity) === null || _c === void 0 ? void 0 : _c.call(_b, node),\n });\n };\n ProjectionNode.prototype.isLead = function () {\n var stack = this.getStack();\n return stack ? stack.lead === this : true;\n };\n ProjectionNode.prototype.getLead = function () {\n var _a;\n var layoutId = this.options.layoutId;\n return layoutId ? ((_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.lead) || this : this;\n };\n ProjectionNode.prototype.getPrevLead = function () {\n var _a;\n var layoutId = this.options.layoutId;\n return layoutId ? (_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.prevLead : undefined;\n };\n ProjectionNode.prototype.getStack = function () {\n var layoutId = this.options.layoutId;\n if (layoutId)\n return this.root.sharedNodes.get(layoutId);\n };\n ProjectionNode.prototype.promote = function (_a) {\n var _b = _a === void 0 ? {} : _a, needsReset = _b.needsReset, transition = _b.transition, preserveFollowOpacity = _b.preserveFollowOpacity;\n var stack = this.getStack();\n if (stack)\n stack.promote(this, preserveFollowOpacity);\n if (needsReset) {\n this.projectionDelta = undefined;\n this.needsReset = true;\n }\n if (transition)\n this.setOptions({ transition: transition });\n };\n ProjectionNode.prototype.relegate = function () {\n var stack = this.getStack();\n if (stack) {\n return stack.relegate(this);\n }\n else {\n return false;\n }\n };\n ProjectionNode.prototype.resetRotation = function () {\n var visualElement = this.options.visualElement;\n if (!visualElement)\n return;\n // If there's no detected rotation values, we can early return without a forced render.\n var hasRotate = false;\n // Keep a record of all the values we've reset\n var resetValues = {};\n // Check the rotate value of all axes and reset to 0\n for (var i = 0; i < transformAxes.length; i++) {\n var axis = transformAxes[i];\n var key = \"rotate\" + axis;\n // If this rotation doesn't exist as a motion value, then we don't\n // need to reset it\n if (!visualElement.getStaticValue(key)) {\n continue;\n }\n hasRotate = true;\n // Record the rotation and then temporarily set it to 0\n resetValues[key] = visualElement.getStaticValue(key);\n visualElement.setStaticValue(key, 0);\n }\n // If there's no rotation values, we don't need to do any more.\n if (!hasRotate)\n return;\n // Force a render of this element to apply the transform with all rotations\n // set to 0.\n visualElement === null || visualElement === void 0 ? void 0 : visualElement.syncRender();\n // Put back all the values we reset\n for (var key in resetValues) {\n visualElement.setStaticValue(key, resetValues[key]);\n }\n // Schedule a render for the next frame. This ensures we won't visually\n // see the element with the reset rotate value applied.\n visualElement.scheduleRender();\n };\n ProjectionNode.prototype.getProjectionStyles = function (styleProp) {\n var _a, _b, _c, _d, _e, _f;\n if (styleProp === void 0) { styleProp = {}; }\n // TODO: Return lifecycle-persistent object\n var styles = {};\n if (!this.instance || this.isSVG)\n return styles;\n if (!this.isVisible) {\n return { visibility: \"hidden\" };\n }\n else {\n styles.visibility = \"\";\n }\n var transformTemplate = (_a = this.options.visualElement) === null || _a === void 0 ? void 0 : _a.getProps().transformTemplate;\n if (this.needsReset) {\n this.needsReset = false;\n styles.opacity = \"\";\n styles.pointerEvents =\n resolveMotionValue(styleProp.pointerEvents) || \"\";\n styles.transform = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : \"none\";\n return styles;\n }\n var lead = this.getLead();\n if (!this.projectionDelta || !this.layout || !lead.target) {\n var emptyStyles = {};\n if (this.options.layoutId) {\n emptyStyles.opacity = (_b = this.latestValues.opacity) !== null && _b !== void 0 ? _b : 1;\n emptyStyles.pointerEvents =\n resolveMotionValue(styleProp.pointerEvents) || \"\";\n }\n if (this.hasProjected && !hasTransform(this.latestValues)) {\n emptyStyles.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n this.hasProjected = false;\n }\n return emptyStyles;\n }\n var valuesToRender = lead.animationValues || lead.latestValues;\n this.applyTransformsToTarget();\n styles.transform = buildProjectionTransform(this.projectionDeltaWithTransform, this.treeScale, valuesToRender);\n if (transformTemplate) {\n styles.transform = transformTemplate(valuesToRender, styles.transform);\n }\n var _g = this.projectionDelta, x = _g.x, y = _g.y;\n styles.transformOrigin = \"\".concat(x.origin * 100, \"% \").concat(y.origin * 100, \"% 0\");\n if (lead.animationValues) {\n /**\n * If the lead component is animating, assign this either the entering/leaving\n * opacity\n */\n styles.opacity =\n lead === this\n ? (_d = (_c = valuesToRender.opacity) !== null && _c !== void 0 ? _c : this.latestValues.opacity) !== null && _d !== void 0 ? _d : 1\n : this.preserveOpacity\n ? this.latestValues.opacity\n : valuesToRender.opacityExit;\n }\n else {\n /**\n * Or we're not animating at all, set the lead component to its actual\n * opacity and other components to hidden.\n */\n styles.opacity =\n lead === this\n ? (_e = valuesToRender.opacity) !== null && _e !== void 0 ? _e : \"\"\n : (_f = valuesToRender.opacityExit) !== null && _f !== void 0 ? _f : 0;\n }\n /**\n * Apply scale correction\n */\n for (var key in scaleCorrectors) {\n if (valuesToRender[key] === undefined)\n continue;\n var _h = scaleCorrectors[key], correct = _h.correct, applyTo = _h.applyTo;\n var corrected = correct(valuesToRender[key], lead);\n if (applyTo) {\n var num = applyTo.length;\n for (var i = 0; i < num; i++) {\n styles[applyTo[i]] = corrected;\n }\n }\n else {\n styles[key] = corrected;\n }\n }\n /**\n * Disable pointer events on follow components. This is to ensure\n * that if a follow component covers a lead component it doesn't block\n * pointer events on the lead.\n */\n if (this.options.layoutId) {\n styles.pointerEvents =\n lead === this\n ? resolveMotionValue(styleProp.pointerEvents) || \"\"\n : \"none\";\n }\n return styles;\n };\n ProjectionNode.prototype.clearSnapshot = function () {\n this.resumeFrom = this.snapshot = undefined;\n };\n // Only run on root\n ProjectionNode.prototype.resetTree = function () {\n this.root.nodes.forEach(function (node) { var _a; return (_a = node.currentAnimation) === null || _a === void 0 ? void 0 : _a.stop(); });\n this.root.nodes.forEach(clearMeasurements);\n this.root.sharedNodes.clear();\n };\n return ProjectionNode;\n }());\n}\nfunction updateLayout(node) {\n node.updateLayout();\n}\nfunction notifyLayoutUpdate(node) {\n var _a, _b, _c, _d;\n var snapshot = (_b = (_a = node.resumeFrom) === null || _a === void 0 ? void 0 : _a.snapshot) !== null && _b !== void 0 ? _b : node.snapshot;\n if (node.isLead() &&\n node.layout &&\n snapshot &&\n node.hasListeners(\"didUpdate\")) {\n var _e = node.layout, layout_1 = _e.actual, measuredLayout = _e.measured;\n // TODO Maybe we want to also resize the layout snapshot so we don't trigger\n // animations for instance if layout=\"size\" and an element has only changed position\n if (node.options.animationType === \"size\") {\n eachAxis(function (axis) {\n var axisSnapshot = snapshot.isShared\n ? snapshot.measured[axis]\n : snapshot.layout[axis];\n var length = calcLength(axisSnapshot);\n axisSnapshot.min = layout_1[axis].min;\n axisSnapshot.max = axisSnapshot.min + length;\n });\n }\n else if (node.options.animationType === \"position\") {\n eachAxis(function (axis) {\n var axisSnapshot = snapshot.isShared\n ? snapshot.measured[axis]\n : snapshot.layout[axis];\n var length = calcLength(layout_1[axis]);\n axisSnapshot.max = axisSnapshot.min + length;\n });\n }\n var layoutDelta = createDelta();\n calcBoxDelta(layoutDelta, layout_1, snapshot.layout);\n var visualDelta = createDelta();\n if (snapshot.isShared) {\n calcBoxDelta(visualDelta, node.applyTransform(measuredLayout, true), snapshot.measured);\n }\n else {\n calcBoxDelta(visualDelta, layout_1, snapshot.layout);\n }\n var hasLayoutChanged = !isDeltaZero(layoutDelta);\n var hasRelativeTargetChanged = false;\n if (!node.resumeFrom) {\n node.relativeParent = node.getClosestProjectingParent();\n /**\n * If the relativeParent is itself resuming from a different element then\n * the relative snapshot is not relavent\n */\n if (node.relativeParent && !node.relativeParent.resumeFrom) {\n var _f = node.relativeParent, parentSnapshot = _f.snapshot, parentLayout = _f.layout;\n if (parentSnapshot && parentLayout) {\n var relativeSnapshot = createBox();\n calcRelativePosition(relativeSnapshot, snapshot.layout, parentSnapshot.layout);\n var relativeLayout = createBox();\n calcRelativePosition(relativeLayout, layout_1, parentLayout.actual);\n if (!boxEquals(relativeSnapshot, relativeLayout)) {\n hasRelativeTargetChanged = true;\n }\n }\n }\n }\n node.notifyListeners(\"didUpdate\", {\n layout: layout_1,\n snapshot: snapshot,\n delta: visualDelta,\n layoutDelta: layoutDelta,\n hasLayoutChanged: hasLayoutChanged,\n hasRelativeTargetChanged: hasRelativeTargetChanged,\n });\n }\n else if (node.isLead()) {\n (_d = (_c = node.options).onExitComplete) === null || _d === void 0 ? void 0 : _d.call(_c);\n }\n /**\n * Clearing transition\n * TODO: Investigate why this transition is being passed in as {type: false } from Framer\n * and why we need it at all\n */\n node.options.transition = undefined;\n}\nfunction clearSnapshot(node) {\n node.clearSnapshot();\n}\nfunction clearMeasurements(node) {\n node.clearMeasurements();\n}\nfunction resetTransformStyle(node) {\n var visualElement = node.options.visualElement;\n if (visualElement === null || visualElement === void 0 ? void 0 : visualElement.getProps().onBeforeLayoutMeasure) {\n visualElement.notifyBeforeLayoutMeasure();\n }\n node.resetTransform();\n}\nfunction finishAnimation(node) {\n node.finishAnimation();\n node.targetDelta = node.relativeTarget = node.target = undefined;\n}\nfunction resolveTargetDelta(node) {\n node.resolveTargetDelta();\n}\nfunction calcProjection(node) {\n node.calcProjection();\n}\nfunction resetRotation(node) {\n node.resetRotation();\n}\nfunction removeLeadSnapshots(stack) {\n stack.removeLeadSnapshot();\n}\nfunction mixAxisDelta(output, delta, p) {\n output.translate = mix(delta.translate, 0, p);\n output.scale = mix(delta.scale, 1, p);\n output.origin = delta.origin;\n output.originPoint = delta.originPoint;\n}\nfunction mixAxis(output, from, to, p) {\n output.min = mix(from.min, to.min, p);\n output.max = mix(from.max, to.max, p);\n}\nfunction mixBox(output, from, to, p) {\n mixAxis(output.x, from.x, to.x, p);\n mixAxis(output.y, from.y, to.y, p);\n}\nfunction hasOpacityCrossfade(node) {\n return (node.animationValues && node.animationValues.opacityExit !== undefined);\n}\nvar defaultLayoutTransition = {\n duration: 0.45,\n ease: [0.4, 0, 0.1, 1],\n};\nfunction mountNodeEarly(node, id) {\n /**\n * Rather than searching the DOM from document we can search the\n * path for the deepest mounted ancestor and search from there\n */\n var searchNode = node.root;\n for (var i = node.path.length - 1; i >= 0; i--) {\n if (Boolean(node.path[i].instance)) {\n searchNode = node.path[i];\n break;\n }\n }\n var searchElement = searchNode && searchNode !== node.root ? searchNode.instance : document;\n var element = searchElement.querySelector(\"[data-projection-id=\\\"\".concat(id, \"\\\"]\"));\n if (element)\n node.mount(element, true);\n}\nfunction roundAxis(axis) {\n axis.min = Math.round(axis.min);\n axis.max = Math.round(axis.max);\n}\nfunction roundBox(box) {\n roundAxis(box.x);\n roundAxis(box.y);\n}\n\nexport { createProjectionNode, globalProjectionState, mixAxis, mixAxisDelta, mixBox };\n","import { motionValue } from '../value/index.mjs';\nimport { isMotionValue } from '../value/utils/is-motion-value.mjs';\nimport { startAnimation } from './utils/transitions.mjs';\n\n/**\n * Animate a single value or a `MotionValue`.\n *\n * The first argument is either a `MotionValue` to animate, or an initial animation value.\n *\n * The second is either a value to animate to, or an array of keyframes to animate through.\n *\n * The third argument can be either tween or spring options, and optional lifecycle methods: `onUpdate`, `onPlay`, `onComplete`, `onRepeat` and `onStop`.\n *\n * Returns `AnimationPlaybackControls`, currently just a `stop` method.\n *\n * ```javascript\n * const x = useMotionValue(0)\n *\n * useEffect(() => {\n * const controls = animate(x, 100, {\n * type: \"spring\",\n * stiffness: 2000,\n * onComplete: v => {}\n * })\n *\n * return controls.stop\n * })\n * ```\n *\n * @public\n */\nfunction animate(from, to, transition) {\n if (transition === void 0) { transition = {}; }\n var value = isMotionValue(from) ? from : motionValue(from);\n startAnimation(\"\", value, to, transition);\n return {\n stop: function () { return value.stop(); },\n isAnimating: function () { return value.isAnimating(); },\n };\n}\n\nexport { animate };\n","import { __read } from 'tslib';\nimport { invariant } from 'hey-listen';\nimport { cubicBezier, linear, easeIn, easeInOut, easeOut, circIn, circInOut, circOut, backIn, backInOut, backOut, anticipate, bounceIn, bounceInOut, bounceOut } from 'popmotion';\n\nvar easingLookup = {\n linear: linear,\n easeIn: easeIn,\n easeInOut: easeInOut,\n easeOut: easeOut,\n circIn: circIn,\n circInOut: circInOut,\n circOut: circOut,\n backIn: backIn,\n backInOut: backInOut,\n backOut: backOut,\n anticipate: anticipate,\n bounceIn: bounceIn,\n bounceInOut: bounceInOut,\n bounceOut: bounceOut,\n};\nvar easingDefinitionToFunction = function (definition) {\n if (Array.isArray(definition)) {\n // If cubic bezier definition, create bezier curve\n invariant(definition.length === 4, \"Cubic bezier arrays must contain four numerical values.\");\n var _a = __read(definition, 4), x1 = _a[0], y1 = _a[1], x2 = _a[2], y2 = _a[3];\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 '\".concat(definition, \"'\"));\n return easingLookup[definition];\n }\n return definition;\n};\nvar isEasingArray = function (ease) {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\nexport { easingDefinitionToFunction, isEasingArray };\n","import { complex } from 'style-value-types';\n\n/**\n * Check if a value is animatable. Examples:\n *\n * ✅: 100, \"100px\", \"#fff\"\n * ❌: \"block\", \"url(2.jpg)\"\n * @param value\n *\n * @internal\n */\nvar isAnimatable = function (key, value) {\n // If the list of keys tat might be non-animatable grows, replace with Set\n if (key === \"zIndex\")\n return false;\n // If it's a number or a keyframes array, we can animate it. We might at some point\n // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,\n // but for now lets leave it like this for performance reasons\n if (typeof value === \"number\" || Array.isArray(value))\n return true;\n if (typeof value === \"string\" && // It's animatable if we have a string\n complex.test(value) && // And it contains numbers and/or colors\n !value.startsWith(\"url(\") // Unless it starts with \"url(\"\n ) {\n return true;\n }\n return false;\n};\n\nexport { isAnimatable };\n","import { __assign } from 'tslib';\nimport { isKeyframesTarget } from './is-keyframes-target.mjs';\n\nvar underDampedSpring = function () { return ({\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restSpeed: 10,\n}); };\nvar criticallyDampedSpring = function (to) { return ({\n type: \"spring\",\n stiffness: 550,\n damping: to === 0 ? 2 * Math.sqrt(550) : 30,\n restSpeed: 10,\n}); };\nvar linearTween = function () { return ({\n type: \"keyframes\",\n ease: \"linear\",\n duration: 0.3,\n}); };\nvar keyframes = function (values) { return ({\n type: \"keyframes\",\n duration: 0.8,\n values: values,\n}); };\nvar defaultTransitions = {\n x: underDampedSpring,\n y: underDampedSpring,\n z: underDampedSpring,\n rotate: underDampedSpring,\n rotateX: underDampedSpring,\n rotateY: underDampedSpring,\n rotateZ: underDampedSpring,\n scaleX: criticallyDampedSpring,\n scaleY: criticallyDampedSpring,\n scale: criticallyDampedSpring,\n opacity: linearTween,\n backgroundColor: linearTween,\n color: linearTween,\n default: criticallyDampedSpring,\n};\nvar getDefaultTransition = function (valueKey, to) {\n var transitionFactory;\n if (isKeyframesTarget(to)) {\n transitionFactory = keyframes;\n }\n else {\n transitionFactory =\n defaultTransitions[valueKey] || defaultTransitions.default;\n }\n return __assign({ to: to }, transitionFactory(to));\n};\n\nexport { criticallyDampedSpring, getDefaultTransition, linearTween, underDampedSpring };\n","var instantAnimationState = {\n current: false,\n};\n\nexport { instantAnimationState };\n","import { __assign, __rest, __spreadArray, __read } from 'tslib';\nimport { inertia, animate } from 'popmotion';\nimport { secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { isEasingArray, easingDefinitionToFunction } from './easing.mjs';\nimport { isAnimatable } from './is-animatable.mjs';\nimport { getDefaultTransition } from './default-transitions.mjs';\nimport { warning } from 'hey-listen';\nimport { getAnimatableNone } from '../../render/dom/value-types/animatable-none.mjs';\nimport { instantAnimationState } from '../../utils/use-instant-transition-state.mjs';\nimport { resolveFinalValueInKeyframes } from '../../utils/resolve-value.mjs';\n\n/**\n * Decide whether a transition is defined on a given Transition.\n * This filters out orchestration options and returns true\n * if any options are left.\n */\nfunction isTransitionDefined(_a) {\n _a.when; _a.delay; _a.delayChildren; _a.staggerChildren; _a.staggerDirection; _a.repeat; _a.repeatType; _a.repeatDelay; _a.from; var transition = __rest(_a, [\"when\", \"delay\", \"delayChildren\", \"staggerChildren\", \"staggerDirection\", \"repeat\", \"repeatType\", \"repeatDelay\", \"from\"]);\n return !!Object.keys(transition).length;\n}\nvar legacyRepeatWarning = false;\n/**\n * Convert Framer Motion's Transition type into Popmotion-compatible options.\n */\nfunction convertTransitionToAnimationOptions(_a) {\n var ease = _a.ease, times = _a.times, yoyo = _a.yoyo, flip = _a.flip, loop = _a.loop, transition = __rest(_a, [\"ease\", \"times\", \"yoyo\", \"flip\", \"loop\"]);\n var options = __assign({}, transition);\n if (times)\n options[\"offset\"] = times;\n /**\n * Convert any existing durations from seconds to milliseconds\n */\n if (transition.duration)\n options[\"duration\"] = secondsToMilliseconds(transition.duration);\n if (transition.repeatDelay)\n options.repeatDelay = secondsToMilliseconds(transition.repeatDelay);\n /**\n * Map easing names to Popmotion's easing functions\n */\n if (ease) {\n options[\"ease\"] = isEasingArray(ease)\n ? ease.map(easingDefinitionToFunction)\n : easingDefinitionToFunction(ease);\n }\n /**\n * Support legacy transition API\n */\n if (transition.type === \"tween\")\n options.type = \"keyframes\";\n /**\n * TODO: These options are officially removed from the API.\n */\n if (yoyo || loop || flip) {\n warning(!legacyRepeatWarning, \"yoyo, loop and flip have been removed from the API. Replace with repeat and repeatType options.\");\n legacyRepeatWarning = true;\n if (yoyo) {\n options.repeatType = \"reverse\";\n }\n else if (loop) {\n options.repeatType = \"loop\";\n }\n else if (flip) {\n options.repeatType = \"mirror\";\n }\n options.repeat = loop || yoyo || flip || transition.repeat;\n }\n /**\n * TODO: Popmotion 9 has the ability to automatically detect whether to use\n * a keyframes or spring animation, but does so by detecting velocity and other spring options.\n * It'd be good to introduce a similar thing here.\n */\n if (transition.type !== \"spring\")\n options.type = \"keyframes\";\n return options;\n}\n/**\n * Get the delay for a value by checking Transition with decreasing specificity.\n */\nfunction getDelayFromTransition(transition, key) {\n var _a, _b;\n var valueTransition = getValueTransition(transition, key) || {};\n return (_b = (_a = valueTransition.delay) !== null && _a !== void 0 ? _a : transition.delay) !== null && _b !== void 0 ? _b : 0;\n}\nfunction hydrateKeyframes(options) {\n if (Array.isArray(options.to) && options.to[0] === null) {\n options.to = __spreadArray([], __read(options.to), false);\n options.to[0] = options.from;\n }\n return options;\n}\nfunction getPopmotionAnimationOptions(transition, options, key) {\n var _a;\n if (Array.isArray(options.to)) {\n (_a = transition.duration) !== null && _a !== void 0 ? _a : (transition.duration = 0.8);\n }\n hydrateKeyframes(options);\n /**\n * Get a default transition if none is determined to be defined.\n */\n if (!isTransitionDefined(transition)) {\n transition = __assign(__assign({}, transition), getDefaultTransition(key, options.to));\n }\n return __assign(__assign({}, options), convertTransitionToAnimationOptions(transition));\n}\n/**\n *\n */\nfunction getAnimation(key, value, target, transition, onComplete) {\n var _a;\n var valueTransition = getValueTransition(transition, key);\n var origin = (_a = valueTransition.from) !== null && _a !== void 0 ? _a : value.get();\n var isTargetAnimatable = isAnimatable(key, target);\n if (origin === \"none\" && isTargetAnimatable && typeof target === \"string\") {\n /**\n * If we're trying to animate from \"none\", try and get an animatable version\n * of the target. This could be improved to work both ways.\n */\n origin = getAnimatableNone(key, target);\n }\n else if (isZero(origin) && typeof target === \"string\") {\n origin = getZeroUnit(target);\n }\n else if (!Array.isArray(target) &&\n isZero(target) &&\n typeof origin === \"string\") {\n target = getZeroUnit(origin);\n }\n var isOriginAnimatable = isAnimatable(key, origin);\n warning(isOriginAnimatable === isTargetAnimatable, \"You are trying to animate \".concat(key, \" from \\\"\").concat(origin, \"\\\" to \\\"\").concat(target, \"\\\". \").concat(origin, \" is not an animatable value - to enable this animation set \").concat(origin, \" to a value animatable to \").concat(target, \" via the `style` property.\"));\n function start() {\n var options = {\n from: origin,\n to: target,\n velocity: value.getVelocity(),\n onComplete: onComplete,\n onUpdate: function (v) { return value.set(v); },\n };\n return valueTransition.type === \"inertia\" ||\n valueTransition.type === \"decay\"\n ? inertia(__assign(__assign({}, options), valueTransition))\n : animate(__assign(__assign({}, getPopmotionAnimationOptions(valueTransition, options, key)), { onUpdate: function (v) {\n var _a;\n options.onUpdate(v);\n (_a = valueTransition.onUpdate) === null || _a === void 0 ? void 0 : _a.call(valueTransition, v);\n }, onComplete: function () {\n var _a;\n options.onComplete();\n (_a = valueTransition.onComplete) === null || _a === void 0 ? void 0 : _a.call(valueTransition);\n } }));\n }\n function set() {\n var _a, _b;\n var finalTarget = resolveFinalValueInKeyframes(target);\n value.set(finalTarget);\n onComplete();\n (_a = valueTransition === null || valueTransition === void 0 ? void 0 : valueTransition.onUpdate) === null || _a === void 0 ? void 0 : _a.call(valueTransition, finalTarget);\n (_b = valueTransition === null || valueTransition === void 0 ? void 0 : valueTransition.onComplete) === null || _b === void 0 ? void 0 : _b.call(valueTransition);\n return { stop: function () { } };\n }\n return !isOriginAnimatable ||\n !isTargetAnimatable ||\n valueTransition.type === false\n ? set\n : start;\n}\nfunction isZero(value) {\n return (value === 0 ||\n (typeof value === \"string\" &&\n parseFloat(value) === 0 &&\n value.indexOf(\" \") === -1));\n}\nfunction getZeroUnit(potentialUnitType) {\n return typeof potentialUnitType === \"number\"\n ? 0\n : getAnimatableNone(\"\", potentialUnitType);\n}\nfunction getValueTransition(transition, key) {\n return transition[key] || transition[\"default\"] || transition;\n}\n/**\n * Start animation on a MotionValue. This function is an interface between\n * Framer Motion and Popmotion\n *\n * @internal\n */\nfunction startAnimation(key, value, target, transition) {\n if (transition === void 0) { transition = {}; }\n if (instantAnimationState.current) {\n transition = { type: false };\n }\n return value.start(function (onComplete) {\n var delayTimer;\n var controls;\n var animation = getAnimation(key, value, target, transition, onComplete);\n var delay = getDelayFromTransition(transition, key);\n var start = function () { return (controls = animation()); };\n if (delay) {\n delayTimer = window.setTimeout(start, secondsToMilliseconds(delay));\n }\n else {\n start();\n }\n return function () {\n clearTimeout(delayTimer);\n controls === null || controls === void 0 ? void 0 : controls.stop();\n };\n });\n}\n\nexport { convertTransitionToAnimationOptions, getDelayFromTransition, getPopmotionAnimationOptions, getValueTransition, getZeroUnit, hydrateKeyframes, isTransitionDefined, isZero, startAnimation };\n","import { addUniqueItem, removeItem } from './array.mjs';\n\nvar SubscriptionManager = /** @class */ (function () {\n function SubscriptionManager() {\n this.subscriptions = [];\n }\n SubscriptionManager.prototype.add = function (handler) {\n var _this = this;\n addUniqueItem(this.subscriptions, handler);\n return function () { return removeItem(_this.subscriptions, handler); };\n };\n SubscriptionManager.prototype.notify = function (a, b, c) {\n var 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 (var 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 var handler = this.subscriptions[i];\n handler && handler(a, b, c);\n }\n }\n };\n SubscriptionManager.prototype.getSize = function () {\n return this.subscriptions.length;\n };\n SubscriptionManager.prototype.clear = function () {\n this.subscriptions.length = 0;\n };\n return SubscriptionManager;\n}());\n\nexport { SubscriptionManager };\n","import { number, px, percent, degrees, vw, vh } from 'style-value-types';\nimport { testValueType } from './test.mjs';\nimport { auto } from './type-auto.mjs';\n\n/**\n * A list of value types commonly used for dimensions\n */\nvar dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\nvar findDimensionValueType = function (v) {\n return dimensionValueTypes.find(testValueType(v));\n};\n\nexport { dimensionValueTypes, findDimensionValueType };\n","/**\n * ValueType for \"auto\"\n */\nvar auto = {\n test: function (v) { return v === \"auto\"; },\n parse: function (v) { return v; },\n};\n\nexport { auto };\n","/**\n * Browser-safe usage of process\n */\nvar mockProcess = { env: { NODE_ENV: \"production\" } };\nvar safeProcess = typeof process === \"undefined\" ? mockProcess : process;\n// eslint-disable-next-line import/no-default-export\nvar process$1 = safeProcess;\n\nexport { process$1 as default };\n","var scaleCorrectors = {};\nfunction addScaleCorrector(correctors) {\n Object.assign(scaleCorrectors, correctors);\n}\n\nexport { addScaleCorrector, scaleCorrectors };\n","import { isTouchEvent } from '../gestures/utils/event-type.mjs';\n\n/**\n * Filters out events not attached to the primary pointer (currently left mouse button)\n * @param eventHandler\n */\nfunction filterPrimaryPointer(eventHandler) {\n return function (event) {\n var isMouseEvent = event instanceof MouseEvent;\n var isPrimaryPointer = !isMouseEvent ||\n (isMouseEvent && event.button === 0);\n if (isPrimaryPointer) {\n eventHandler(event);\n }\n };\n}\nvar defaultPagePoint = { pageX: 0, pageY: 0 };\nfunction pointFromTouch(e, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n var primaryTouch = e.touches[0] || e.changedTouches[0];\n var point = primaryTouch || defaultPagePoint;\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"],\n };\n}\nfunction pointFromMouse(point, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"],\n };\n}\nfunction extractEventInfo(event, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n return {\n point: isTouchEvent(event)\n ? pointFromTouch(event, pointType)\n : pointFromMouse(event, pointType),\n };\n}\nvar wrapHandler = function (handler, shouldFilterPrimaryPointer) {\n if (shouldFilterPrimaryPointer === void 0) { shouldFilterPrimaryPointer = false; }\n var listener = function (event) {\n return handler(event, extractEventInfo(event));\n };\n return shouldFilterPrimaryPointer\n ? filterPrimaryPointer(listener)\n : listener;\n};\n\nexport { extractEventInfo, wrapHandler };\n","function isMouseEvent(event) {\n // PointerEvent inherits from MouseEvent so we can't use a straight instanceof check.\n if (typeof PointerEvent !== \"undefined\" && event instanceof PointerEvent) {\n return !!(event.pointerType === \"mouse\");\n }\n return event instanceof MouseEvent;\n}\nfunction isTouchEvent(event) {\n var hasTouches = !!event.touches;\n return hasTouches;\n}\n\nexport { isMouseEvent, isTouchEvent };\n","import { createContext } from 'react';\n\nvar LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\n","import { useEffect } from 'react';\n\nfunction useUnmountEffect(callback) {\n return useEffect(function () { return function () { return callback(); }; }, []);\n}\n\nexport { useUnmountEffect };\n","import { __assign } from 'tslib';\nimport { color, filter } from 'style-value-types';\nimport { numberValueTypes } from './number.mjs';\n\n/**\n * A map of default value types for common values\n */\nvar defaultValueTypes = __assign(__assign({}, numberValueTypes), { \n // Color props\n color: color, backgroundColor: color, outlineColor: color, fill: color, stroke: color, \n // Border props\n borderColor: color, borderTopColor: color, borderRightColor: color, borderBottomColor: color, borderLeftColor: color, filter: filter, WebkitFilter: filter });\n/**\n * Gets the default ValueType for the provided value key\n */\nvar getDefaultValueType = function (key) { return defaultValueTypes[key]; };\n\nexport { defaultValueTypes, getDefaultValueType };\n","import { isKeyframesTarget } from '../animation/utils/is-keyframes-target.mjs';\n\nvar isCustomValue = function (v) {\n return Boolean(v && typeof v === \"object\" && v.mix && v.toValue);\n};\nvar resolveFinalValueInKeyframes = function (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","function isAnimationControls(v) {\n return typeof v === \"object\" && typeof v.start === \"function\";\n}\n\nexport { isAnimationControls };\n","import { isForcedMotionValue } from '../../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\n\nfunction scrapeMotionValuesFromProps(props) {\n var style = props.style;\n var newValues = {};\n for (var key in style) {\n if (isMotionValue(style[key]) || isForcedMotionValue(key, props)) {\n newValues[key] = style[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","function createLock(name) {\n var lock = null;\n return function () {\n var openLock = function () {\n lock = null;\n };\n if (lock === null) {\n lock = name;\n return openLock;\n }\n return false;\n };\n}\nvar globalHorizontalLock = createLock(\"dragHorizontal\");\nvar globalVerticalLock = createLock(\"dragVertical\");\nfunction getGlobalLock(drag) {\n var lock = false;\n if (drag === \"y\") {\n lock = globalVerticalLock();\n }\n else if (drag === \"x\") {\n lock = globalHorizontalLock();\n }\n else {\n var openHorizontal_1 = globalHorizontalLock();\n var openVertical_1 = globalVerticalLock();\n if (openHorizontal_1 && openVertical_1) {\n lock = function () {\n openHorizontal_1();\n openVertical_1();\n };\n }\n else {\n // Release the locks because we don't use them\n if (openHorizontal_1)\n openHorizontal_1();\n if (openVertical_1)\n openVertical_1();\n }\n }\n return lock;\n}\nfunction isDragActive() {\n // Check the gesture lock - if we get it, it means no drag gesture is active\n // and we can safely fire the tap gesture.\n var openGestureLock = getGlobalLock(true);\n if (!openGestureLock)\n return true;\n openGestureLock();\n return false;\n}\n\nexport { createLock, getGlobalLock, isDragActive };\n","import { sortTransformProps } from './transform.mjs';\n\nvar translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\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(_a, _b, transformIsDefault, transformTemplate) {\n var transform = _a.transform, transformKeys = _a.transformKeys;\n var _c = _b.enableHardwareAcceleration, enableHardwareAcceleration = _c === void 0 ? true : _c, _d = _b.allowTransformNone, allowTransformNone = _d === void 0 ? true : _d;\n // The transform string we're going to build into.\n var transformString = \"\";\n // Transform keys into their default order - this will determine the output order.\n transformKeys.sort(sortTransformProps);\n // Track whether the defined transform has a defined z so we don't add a\n // second to enable hardware acceleration\n var transformHasZ = false;\n // Loop over each transform and build them into transformString\n var numTransformKeys = transformKeys.length;\n for (var i = 0; i < numTransformKeys; i++) {\n var key = transformKeys[i];\n transformString += \"\".concat(translateAlias[key] || key, \"(\").concat(transform[key], \") \");\n if (key === \"z\")\n transformHasZ = true;\n }\n if (!transformHasZ && enableHardwareAcceleration) {\n transformString += \"translateZ(0)\";\n }\n else {\n transformString = transformString.trim();\n }\n // If we have a custom `transform` template, pass our transform values and\n // generated transformString to that before returning\n if (transformTemplate) {\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n }\n else if (allowTransformNone && transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n/**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\nfunction buildTransformOrigin(_a) {\n var _b = _a.originX, originX = _b === void 0 ? \"50%\" : _b, _c = _a.originY, originY = _c === void 0 ? \"50%\" : _c, _d = _a.originZ, originZ = _d === void 0 ? 0 : _d;\n return \"\".concat(originX, \" \").concat(originY, \" \").concat(originZ);\n}\n\nexport { buildTransform, buildTransformOrigin };\n","/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nvar getValueAsType = function (value, type) {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\nexport { getValueAsType };\n","import { buildTransform, buildTransformOrigin } from './build-transform.mjs';\nimport { isCSSVariable } from '../../dom/utils/is-css-variable.mjs';\nimport { isTransformProp, isTransformOriginProp } from './transform.mjs';\nimport { getValueAsType } from '../../dom/value-types/get-as-type.mjs';\nimport { numberValueTypes } from '../../dom/value-types/number.mjs';\n\nfunction buildHTMLStyles(state, latestValues, options, transformTemplate) {\n var _a;\n var style = state.style, vars = state.vars, transform = state.transform, transformKeys = state.transformKeys, transformOrigin = state.transformOrigin;\n // Empty the transformKeys array. As we're throwing out refs to its items\n // this might not be as cheap as suspected. Maybe using the array as a buffer\n // with a manual incrementation would be better.\n transformKeys.length = 0;\n // Track whether we encounter any transform or transformOrigin values.\n var hasTransform = false;\n var hasTransformOrigin = false;\n // Does the calculated transform essentially equal \"none\"?\n var transformIsNone = true;\n /**\n * Loop over all our latest animated values and decide whether to handle them\n * as a style or CSS variable.\n *\n * Transforms and transform origins are kept seperately for further processing.\n */\n for (var key in latestValues) {\n var value = latestValues[key];\n /**\n * If this is a CSS variable we don't do any further processing.\n */\n if (isCSSVariable(key)) {\n vars[key] = value;\n continue;\n }\n // Convert the value to its default value type, ie 0 -> \"0px\"\n var valueType = numberValueTypes[key];\n var valueAsType = getValueAsType(value, valueType);\n if (isTransformProp(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n transform[key] = valueAsType;\n transformKeys.push(key);\n // If we already know we have a non-default transform, early return\n if (!transformIsNone)\n continue;\n // Otherwise check to see if this is a default transform\n if (value !== ((_a = valueType.default) !== null && _a !== void 0 ? _a : 0))\n transformIsNone = false;\n }\n else if (isTransformOriginProp(key)) {\n transformOrigin[key] = valueAsType;\n // If this is a transform origin, flag and enable further transform-origin processing\n hasTransformOrigin = true;\n }\n else {\n style[key] = valueAsType;\n }\n }\n if (hasTransform) {\n style.transform = buildTransform(state, options, transformIsNone, transformTemplate);\n }\n else if (transformTemplate) {\n style.transform = transformTemplate({}, \"\");\n }\n else if (!latestValues.transform && style.transform) {\n style.transform = \"none\";\n }\n if (hasTransformOrigin) {\n style.transformOrigin = buildTransformOrigin(transformOrigin);\n }\n}\n\nexport { buildHTMLStyles };\n","import { px } from 'style-value-types';\n\nfunction calcOrigin(origin, offset, size) {\n return typeof origin === \"string\"\n ? origin\n : px.transform(offset + size * origin);\n}\n/**\n * The SVG transform origin defaults are different to CSS and is less intuitive,\n * so we use the measured dimensions of the SVG to reconcile these.\n */\nfunction calcSVGTransformOrigin(dimensions, originX, originY) {\n var pxOriginX = calcOrigin(originX, dimensions.x, dimensions.width);\n var pxOriginY = calcOrigin(originY, dimensions.y, dimensions.height);\n return \"\".concat(pxOriginX, \" \").concat(pxOriginY);\n}\n\nexport { calcSVGTransformOrigin };\n","import { px } from 'style-value-types';\n\nvar dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nvar 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, offset, useDashCase) {\n if (spacing === void 0) { spacing = 1; }\n if (offset === void 0) { offset = 0; }\n if (useDashCase === void 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 var keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset\n attrs[keys.offset] = px.transform(-offset);\n // Build the dash array\n var pathLength = px.transform(length);\n var pathSpacing = px.transform(spacing);\n attrs[keys.array] = \"\".concat(pathLength, \" \").concat(pathSpacing);\n}\n\nexport { buildSVGPath };\n","import { __rest } from 'tslib';\nimport { buildHTMLStyles } from '../../html/utils/build-styles.mjs';\nimport { calcSVGTransformOrigin } from './transform-origin.mjs';\nimport { buildSVGPath } from './path.mjs';\n\n/**\n * Build SVG visual attrbutes, like cx and style.transform\n */\nfunction buildSVGAttrs(state, _a, options, transformTemplate) {\n var attrX = _a.attrX, attrY = _a.attrY, originX = _a.originX, originY = _a.originY, pathLength = _a.pathLength, _b = _a.pathSpacing, pathSpacing = _b === void 0 ? 1 : _b, _c = _a.pathOffset, pathOffset = _c === void 0 ? 0 : _c, \n // This is object creation, which we try to avoid per-frame.\n latest = __rest(_a, [\"attrX\", \"attrY\", \"originX\", \"originY\", \"pathLength\", \"pathSpacing\", \"pathOffset\"]);\n buildHTMLStyles(state, latest, options, transformTemplate);\n state.attrs = state.style;\n state.style = {};\n var attrs = state.attrs, style = state.style, dimensions = state.dimensions;\n /**\n * However, we apply transforms as CSS transforms. So if we detect a transform we take it from attrs\n * and copy it into style.\n */\n if (attrs.transform) {\n if (dimensions)\n style.transform = attrs.transform;\n delete attrs.transform;\n }\n // Parse transformOrigin\n if (dimensions &&\n (originX !== undefined || originY !== undefined || style.transform)) {\n style.transformOrigin = calcSVGTransformOrigin(dimensions, originX !== undefined ? originX : 0.5, originY !== undefined ? originY : 0.5);\n }\n // Treat x/y not as shortcuts but as actual attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n // Build SVG path if one has been defined\n if (pathLength !== undefined) {\n buildSVGPath(attrs, pathLength, pathSpacing, pathOffset, false);\n }\n}\n\nexport { buildSVGAttrs };\n","/**\n * We keep these listed seperately as we use the lowercase tag names as part\n * of the runtime bundle to detect SVG components\n */\nvar lowercaseSVGElements = [\n \"animate\",\n \"circle\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"g\",\n \"image\",\n \"line\",\n \"filter\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"rect\",\n \"stop\",\n \"svg\",\n \"switch\",\n \"symbol\",\n \"text\",\n \"tspan\",\n \"use\",\n \"view\",\n];\n\nexport { lowercaseSVGElements };\n","import { lowercaseSVGElements } from '../../svg/lowercase-elements.mjs';\n\nfunction isSVGComponent(Component) {\n if (\n /**\n * If it's not a string, it's a custom React component. Currently we only support\n * HTML custom React components.\n */\n typeof Component !== \"string\" ||\n /**\n * If it contains a dash, the element is a custom HTML webcomponent.\n */\n Component.includes(\"-\")) {\n return false;\n }\n else if (\n /**\n * If it's in our list of lowercase SVG tags, it's an SVG component\n */\n lowercaseSVGElements.indexOf(Component) > -1 ||\n /**\n * If it contains a capital letter, it's an SVG component\n */\n /[A-Z]/.test(Component)) {\n return true;\n }\n return false;\n}\n\nexport { isSVGComponent };\n","/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\nvar secondsToMilliseconds = function (seconds) { return seconds * 1000; };\n\nexport { secondsToMilliseconds };\n","/**\n * Bounding boxes tend to be defined as top, left, right, bottom. For various operations\n * it's easier to consider each axis individually. This function returns a bounding box\n * as a map of single-axis min/max values.\n */\nfunction convertBoundingBoxToBox(_a) {\n var top = _a.top, left = _a.left, right = _a.right, bottom = _a.bottom;\n return {\n x: { min: left, max: right },\n y: { min: top, max: bottom },\n };\n}\nfunction convertBoxToBoundingBox(_a) {\n var x = _a.x, y = _a.y;\n return { top: y.min, right: x.max, bottom: y.max, left: x.min };\n}\n/**\n * Applies a TransformPoint function to a bounding box. TransformPoint is usually a function\n * provided by Framer to allow measured points to be corrected for device scaling. This is used\n * when measuring DOM elements and DOM event points.\n */\nfunction transformBoxPoints(point, transformPoint) {\n if (!transformPoint)\n return point;\n var topLeft = transformPoint({ x: point.left, y: point.top });\n var bottomRight = transformPoint({ x: point.right, y: point.bottom });\n return {\n top: topLeft.y,\n left: topLeft.x,\n bottom: bottomRight.y,\n right: bottomRight.x,\n };\n}\n\nexport { convertBoundingBoxToBox, convertBoxToBoundingBox, transformBoxPoints };\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 *\n * @internal\n */\nfunction resolveMotionValue(value) {\n var unwrappedValue = isMotionValue(value) ? value.get() : value;\n return isCustomValue(unwrappedValue)\n ? unwrappedValue.toValue()\n : unwrappedValue;\n}\n\nexport { resolveMotionValue };\n","var createHtmlRenderState = function () { return ({\n style: {},\n transform: {},\n transformKeys: [],\n transformOrigin: {},\n vars: {},\n}); };\n\nexport { createHtmlRenderState };\n","import { __assign } from 'tslib';\nimport { 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 (var key in source) {\n if (!isMotionValue(source[key]) && !isForcedMotionValue(key, props)) {\n target[key] = source[key];\n }\n }\n}\nfunction useInitialMotionValues(_a, visualState, isStatic) {\n var transformTemplate = _a.transformTemplate;\n return useMemo(function () {\n var state = createHtmlRenderState();\n buildHTMLStyles(state, visualState, { enableHardwareAcceleration: !isStatic }, transformTemplate);\n var vars = state.vars, style = state.style;\n return __assign(__assign({}, vars), style);\n }, [visualState]);\n}\nfunction useStyle(props, visualState, isStatic) {\n var styleProp = props.style || {};\n var style = {};\n /**\n * Copy non-Motion Values straight into style\n */\n copyRawValuesOnly(style, styleProp, props);\n Object.assign(style, useInitialMotionValues(props, visualState, isStatic));\n if (props.transformValues) {\n style = props.transformValues(style);\n }\n return style;\n}\nfunction useHTMLProps(props, visualState, isStatic) {\n // The `any` isn't ideal but it is the type of createElement props argument\n var htmlProps = {};\n var style = useStyle(props, visualState, isStatic);\n if (Boolean(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-\".concat(props.drag === \"x\" ? \"y\" : \"x\");\n }\n htmlProps.style = style;\n return htmlProps;\n}\n\nexport { copyRawValuesOnly, useHTMLProps, useStyle };\n","/**\n * A list of all valid MotionProps.\n *\n * @internalremarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nvar validMotionProps = new Set([\n \"initial\",\n \"animate\",\n \"exit\",\n \"style\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"transformValues\",\n \"custom\",\n \"inherit\",\n \"layout\",\n \"layoutId\",\n \"layoutDependency\",\n \"onLayoutAnimationStart\",\n \"onLayoutAnimationComplete\",\n \"onLayoutMeasure\",\n \"onBeforeLayoutMeasure\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"drag\",\n \"dragControls\",\n \"dragListener\",\n \"dragConstraints\",\n \"dragDirectionLock\",\n \"dragSnapToOrigin\",\n \"_dragX\",\n \"_dragY\",\n \"dragElastic\",\n \"dragMomentum\",\n \"dragPropagation\",\n \"dragTransition\",\n \"whileDrag\",\n \"onPan\",\n \"onPanStart\",\n \"onPanEnd\",\n \"onPanSessionStart\",\n \"onTap\",\n \"onTapStart\",\n \"onTapCancel\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"whileFocus\",\n \"whileTap\",\n \"whileHover\",\n \"whileInView\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n \"viewport\",\n \"layoutScroll\",\n]);\n/**\n * Check whether a prop name is a valid `MotionProp` key.\n *\n * @param key - Name of the property to check\n * @returns `true` is key is a valid `MotionProp`.\n *\n * @public\n */\nfunction isValidMotionProp(key) {\n return validMotionProps.has(key);\n}\n\nexport { isValidMotionProp };\n","import { isValidMotionProp } from '../../../motion/utils/valid-prop.mjs';\n\nvar shouldForward = function (key) { return !isValidMotionProp(key); };\nfunction loadExternalIsValidProp(isValidProp) {\n if (!isValidProp)\n return;\n // Explicitly filter our events\n shouldForward = function (key) {\n return key.startsWith(\"on\") ? !isValidMotionProp(key) : isValidProp(key);\n };\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 var filteredProps = {};\n for (var key in props) {\n if (shouldForward(key) ||\n (forwardMotionProps === true && isValidMotionProp(key)) ||\n (!isDom && !isValidMotionProp(key)) ||\n // If trying to use native HTML drag events, forward drag listeners\n (props[\"draggable\"] && key.startsWith(\"onDrag\"))) {\n filteredProps[key] = props[key];\n }\n }\n return filteredProps;\n}\n\nexport { filterProps, loadExternalIsValidProp };\n","import { __assign } from 'tslib';\nimport { createHtmlRenderState } from '../../html/utils/create-render-state.mjs';\n\nvar createSvgRenderState = function () { return (__assign(__assign({}, createHtmlRenderState()), { attrs: {} })); };\n\nexport { createSvgRenderState };\n","import { __assign } from 'tslib';\nimport { useMemo } from 'react';\nimport { copyRawValuesOnly } from '../html/use-props.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\n\nfunction useSVGProps(props, visualState) {\n var visualProps = useMemo(function () {\n var state = createSvgRenderState();\n buildSVGAttrs(state, visualState, { enableHardwareAcceleration: false }, props.transformTemplate);\n return __assign(__assign({}, state.attrs), { style: __assign({}, state.style) });\n }, [visualState]);\n if (props.style) {\n var rawStyles = {};\n copyRawValuesOnly(rawStyles, props.style, props);\n visualProps.style = __assign(__assign({}, rawStyles), visualProps.style);\n }\n return visualProps;\n}\n\nexport { useSVGProps };\n","import { __assign } from 'tslib';\nimport { createElement } from 'react';\nimport { useHTMLProps } from '../html/use-props.mjs';\nimport { filterProps } from './utils/filter-props.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\nimport { useSVGProps } from '../svg/use-props.mjs';\n\nfunction createUseRender(forwardMotionProps) {\n if (forwardMotionProps === void 0) { forwardMotionProps = false; }\n var useRender = function (Component, props, projectionId, ref, _a, isStatic) {\n var latestValues = _a.latestValues;\n var useVisualProps = isSVGComponent(Component)\n ? useSVGProps\n : useHTMLProps;\n var visualProps = useVisualProps(props, latestValues, isStatic);\n var filteredProps = filterProps(props, typeof Component === \"string\", forwardMotionProps);\n var elementProps = __assign(__assign(__assign({}, filteredProps), visualProps), { ref: ref });\n if (projectionId) {\n elementProps[\"data-projection-id\"] = projectionId;\n }\n return createElement(Component, elementProps);\n };\n return useRender;\n}\n\nexport { createUseRender };\n","import { __rest } from 'tslib';\nimport { useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { checkIfControllingVariants, checkIfVariantNode, resolveVariantFromProps } from '../../render/utils/variants.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\n\nfunction makeState(_a, props, context, presenceContext) {\n var scrapeMotionValuesFromProps = _a.scrapeMotionValuesFromProps, createRenderState = _a.createRenderState, onMount = _a.onMount;\n var state = {\n latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\n renderState: createRenderState(),\n };\n if (onMount) {\n state.mount = function (instance) { return onMount(props, instance, state); };\n }\n return state;\n}\nvar makeUseVisualState = function (config) {\n return function (props, isStatic) {\n var context = useContext(MotionContext);\n var presenceContext = useContext(PresenceContext);\n return isStatic\n ? makeState(config, props, context, presenceContext)\n : useConstant(function () {\n return makeState(config, props, context, presenceContext);\n });\n };\n};\nfunction makeLatestValues(props, context, presenceContext, scrapeMotionValues) {\n var values = {};\n var blockInitialAnimation = (presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.initial) === false;\n var motionValues = scrapeMotionValues(props);\n for (var key in motionValues) {\n values[key] = resolveMotionValue(motionValues[key]);\n }\n var initial = props.initial, animate = props.animate;\n var isControllingVariants = checkIfControllingVariants(props);\n var isVariantNode = checkIfVariantNode(props);\n if (context &&\n isVariantNode &&\n !isControllingVariants &&\n props.inherit !== false) {\n initial !== null && initial !== void 0 ? initial : (initial = context.initial);\n animate !== null && animate !== void 0 ? animate : (animate = context.animate);\n }\n var initialAnimationIsBlocked = blockInitialAnimation || initial === false;\n var variantToSet = initialAnimationIsBlocked ? animate : initial;\n if (variantToSet &&\n typeof variantToSet !== \"boolean\" &&\n !isAnimationControls(variantToSet)) {\n var list = Array.isArray(variantToSet) ? variantToSet : [variantToSet];\n list.forEach(function (definition) {\n var resolved = resolveVariantFromProps(props, definition);\n if (!resolved)\n return;\n var transitionEnd = resolved.transitionEnd; resolved.transition; var target = __rest(resolved, [\"transitionEnd\", \"transition\"]);\n for (var key in target) {\n var 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 var index = initialAnimationIsBlocked\n ? valueTarget.length - 1\n : 0;\n valueTarget = valueTarget[index];\n }\n if (valueTarget !== null) {\n values[key] = valueTarget;\n }\n }\n for (var key in transitionEnd)\n values[key] = transitionEnd[key];\n });\n }\n return values;\n}\n\nexport { makeUseVisualState };\n","import { renderSVG } from './utils/render.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\n\nvar svgMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createSvgRenderState,\n onMount: function (props, instance, _a) {\n var renderState = _a.renderState, latestValues = _a.latestValues;\n try {\n renderState.dimensions =\n typeof instance.getBBox ===\n \"function\"\n ? instance.getBBox()\n : instance.getBoundingClientRect();\n }\n catch (e) {\n // Most likely trying to measure an unrendered element under Firefox\n renderState.dimensions = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n buildSVGAttrs(renderState, latestValues, { enableHardwareAcceleration: false }, props.transformTemplate);\n renderSVG(instance, renderState);\n },\n }),\n};\n\nexport { svgMotionConfig };\n","import { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nvar htmlMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createHtmlRenderState,\n }),\n};\n\nexport { htmlMotionConfig };\n","import { __assign } from 'tslib';\nimport { isSVGComponent } from './is-svg-component.mjs';\nimport { createUseRender } from '../use-render.mjs';\nimport { svgMotionConfig } from '../../svg/config-motion.mjs';\nimport { htmlMotionConfig } from '../../html/config-motion.mjs';\n\nfunction createDomMotionConfig(Component, _a, preloadedFeatures, createVisualElement, projectionNodeConstructor) {\n var _b = _a.forwardMotionProps, forwardMotionProps = _b === void 0 ? false : _b;\n var baseConfig = isSVGComponent(Component)\n ? svgMotionConfig\n : htmlMotionConfig;\n return __assign(__assign({}, baseConfig), { preloadedFeatures: preloadedFeatures, useRender: createUseRender(forwardMotionProps), createVisualElement: createVisualElement, projectionNodeConstructor: projectionNodeConstructor, Component: Component });\n}\n\nexport { createDomMotionConfig };\n","import { __spreadArray, __read } from 'tslib';\nimport { SubscriptionManager } from '../../utils/subscription-manager.mjs';\n\nvar names = [\n \"LayoutMeasure\",\n \"BeforeLayoutMeasure\",\n \"LayoutUpdate\",\n \"ViewportBoxUpdate\",\n \"Update\",\n \"Render\",\n \"AnimationComplete\",\n \"LayoutAnimationComplete\",\n \"AnimationStart\",\n \"LayoutAnimationStart\",\n \"SetAxisTarget\",\n \"Unmount\",\n];\nfunction createLifecycles() {\n var managers = names.map(function () { return new SubscriptionManager(); });\n var propSubscriptions = {};\n var lifecycles = {\n clearAllListeners: function () { return managers.forEach(function (manager) { return manager.clear(); }); },\n updatePropListeners: function (props) {\n names.forEach(function (name) {\n var _a;\n var on = \"on\" + name;\n var propListener = props[on];\n // Unsubscribe existing subscription\n (_a = propSubscriptions[name]) === null || _a === void 0 ? void 0 : _a.call(propSubscriptions);\n // Add new subscription\n if (propListener) {\n propSubscriptions[name] = lifecycles[on](propListener);\n }\n });\n },\n };\n managers.forEach(function (manager, i) {\n lifecycles[\"on\" + names[i]] = function (handler) { return manager.add(handler); };\n lifecycles[\"notify\" + names[i]] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return manager.notify.apply(manager, __spreadArray([], __read(args), false));\n };\n });\n return lifecycles;\n}\n\nexport { createLifecycles };\n","import { __assign, __read } from 'tslib';\nimport { number, px } from 'style-value-types';\nimport { isKeyframesTarget } from '../../../animation/utils/is-keyframes-target.mjs';\nimport { invariant } from 'hey-listen';\nimport { transformProps } from '../../html/utils/transform.mjs';\nimport { findDimensionValueType } from '../value-types/dimensions.mjs';\n\nvar positionalKeys = new Set([\n \"width\",\n \"height\",\n \"top\",\n \"left\",\n \"right\",\n \"bottom\",\n \"x\",\n \"y\",\n]);\nvar isPositionalKey = function (key) { return positionalKeys.has(key); };\nvar hasPositionalKey = function (target) {\n return Object.keys(target).some(isPositionalKey);\n};\nvar setAndResetVelocity = function (value, to) {\n // Looks odd but setting it twice doesn't render, it'll just\n // set both prev and current to the latest value\n value.set(to, false);\n value.set(to);\n};\nvar isNumOrPxType = function (v) {\n return v === number || v === px;\n};\nvar BoundingBoxDimension;\n(function (BoundingBoxDimension) {\n BoundingBoxDimension[\"width\"] = \"width\";\n BoundingBoxDimension[\"height\"] = \"height\";\n BoundingBoxDimension[\"left\"] = \"left\";\n BoundingBoxDimension[\"right\"] = \"right\";\n BoundingBoxDimension[\"top\"] = \"top\";\n BoundingBoxDimension[\"bottom\"] = \"bottom\";\n})(BoundingBoxDimension || (BoundingBoxDimension = {}));\nvar getPosFromMatrix = function (matrix, pos) {\n return parseFloat(matrix.split(\", \")[pos]);\n};\nvar getTranslateFromMatrix = function (pos2, pos3) {\n return function (_bbox, _a) {\n var transform = _a.transform;\n if (transform === \"none\" || !transform)\n return 0;\n var matrix3d = transform.match(/^matrix3d\\((.+)\\)$/);\n if (matrix3d) {\n return getPosFromMatrix(matrix3d[1], pos3);\n }\n else {\n var matrix = transform.match(/^matrix\\((.+)\\)$/);\n if (matrix) {\n return getPosFromMatrix(matrix[1], pos2);\n }\n else {\n return 0;\n }\n }\n };\n};\nvar transformKeys = new Set([\"x\", \"y\", \"z\"]);\nvar nonTranslationalTransformKeys = transformProps.filter(function (key) { return !transformKeys.has(key); });\nfunction removeNonTranslationalTransform(visualElement) {\n var removedTransforms = [];\n nonTranslationalTransformKeys.forEach(function (key) {\n var value = visualElement.getValue(key);\n if (value !== undefined) {\n removedTransforms.push([key, value.get()]);\n value.set(key.startsWith(\"scale\") ? 1 : 0);\n }\n });\n // Apply changes to element before measurement\n if (removedTransforms.length)\n visualElement.syncRender();\n return removedTransforms;\n}\nvar positionalValues = {\n // Dimensions\n width: function (_a, _b) {\n var x = _a.x;\n var _c = _b.paddingLeft, paddingLeft = _c === void 0 ? \"0\" : _c, _d = _b.paddingRight, paddingRight = _d === void 0 ? \"0\" : _d;\n return x.max - x.min - parseFloat(paddingLeft) - parseFloat(paddingRight);\n },\n height: function (_a, _b) {\n var y = _a.y;\n var _c = _b.paddingTop, paddingTop = _c === void 0 ? \"0\" : _c, _d = _b.paddingBottom, paddingBottom = _d === void 0 ? \"0\" : _d;\n return y.max - y.min - parseFloat(paddingTop) - parseFloat(paddingBottom);\n },\n top: function (_bbox, _a) {\n var top = _a.top;\n return parseFloat(top);\n },\n left: function (_bbox, _a) {\n var left = _a.left;\n return parseFloat(left);\n },\n bottom: function (_a, _b) {\n var y = _a.y;\n var top = _b.top;\n return parseFloat(top) + (y.max - y.min);\n },\n right: function (_a, _b) {\n var x = _a.x;\n var left = _b.left;\n return parseFloat(left) + (x.max - x.min);\n },\n // Transform\n x: getTranslateFromMatrix(4, 13),\n y: getTranslateFromMatrix(5, 14),\n};\nvar convertChangedValueTypes = function (target, visualElement, changedKeys) {\n var originBbox = visualElement.measureViewportBox();\n var element = visualElement.getInstance();\n var elementComputedStyle = getComputedStyle(element);\n var display = elementComputedStyle.display;\n var origin = {};\n // If the element is currently set to display: \"none\", make it visible before\n // measuring the target bounding box\n if (display === \"none\") {\n visualElement.setStaticValue(\"display\", target.display || \"block\");\n }\n /**\n * Record origins before we render and update styles\n */\n changedKeys.forEach(function (key) {\n origin[key] = positionalValues[key](originBbox, elementComputedStyle);\n });\n // Apply the latest values (as set in checkAndConvertChangedValueTypes)\n visualElement.syncRender();\n var targetBbox = visualElement.measureViewportBox();\n changedKeys.forEach(function (key) {\n // Restore styles to their **calculated computed style**, not their actual\n // originally set style. This allows us to animate between equivalent pixel units.\n var value = visualElement.getValue(key);\n setAndResetVelocity(value, origin[key]);\n target[key] = positionalValues[key](targetBbox, elementComputedStyle);\n });\n return target;\n};\nvar checkAndConvertChangedValueTypes = function (visualElement, target, origin, transitionEnd) {\n if (origin === void 0) { origin = {}; }\n if (transitionEnd === void 0) { transitionEnd = {}; }\n target = __assign({}, target);\n transitionEnd = __assign({}, transitionEnd);\n var targetPositionalKeys = Object.keys(target).filter(isPositionalKey);\n // We want to remove any transform values that could affect the element's bounding box before\n // it's measured. We'll reapply these later.\n var removedTransformValues = [];\n var hasAttemptedToRemoveTransformValues = false;\n var changedValueTypeKeys = [];\n targetPositionalKeys.forEach(function (key) {\n var value = visualElement.getValue(key);\n if (!visualElement.hasValue(key))\n return;\n var from = origin[key];\n var fromType = findDimensionValueType(from);\n var to = target[key];\n var toType;\n // TODO: The current implementation of this basically throws an error\n // if you try and do value conversion via keyframes. There's probably\n // a way of doing this but the performance implications would need greater scrutiny,\n // as it'd be doing multiple resize-remeasure operations.\n if (isKeyframesTarget(to)) {\n var numKeyframes = to.length;\n var fromIndex = to[0] === null ? 1 : 0;\n from = to[fromIndex];\n fromType = findDimensionValueType(from);\n for (var i = fromIndex; i < numKeyframes; i++) {\n if (!toType) {\n toType = findDimensionValueType(to[i]);\n invariant(toType === fromType ||\n (isNumOrPxType(fromType) && isNumOrPxType(toType)), \"Keyframes must be of the same dimension as the current value\");\n }\n else {\n invariant(findDimensionValueType(to[i]) === toType, \"All keyframes must be of the same type\");\n }\n }\n }\n else {\n toType = findDimensionValueType(to);\n }\n if (fromType !== toType) {\n // If they're both just number or px, convert them both to numbers rather than\n // relying on resize/remeasure to convert (which is wasteful in this situation)\n if (isNumOrPxType(fromType) && isNumOrPxType(toType)) {\n var current = value.get();\n if (typeof current === \"string\") {\n value.set(parseFloat(current));\n }\n if (typeof to === \"string\") {\n target[key] = parseFloat(to);\n }\n else if (Array.isArray(to) && toType === px) {\n target[key] = to.map(parseFloat);\n }\n }\n else if ((fromType === null || fromType === void 0 ? void 0 : fromType.transform) &&\n (toType === null || toType === void 0 ? void 0 : toType.transform) &&\n (from === 0 || to === 0)) {\n // If one or the other value is 0, it's safe to coerce it to the\n // type of the other without measurement\n if (from === 0) {\n value.set(toType.transform(from));\n }\n else {\n target[key] = fromType.transform(to);\n }\n }\n else {\n // If we're going to do value conversion via DOM measurements, we first\n // need to remove non-positional transform values that could affect the bbox measurements.\n if (!hasAttemptedToRemoveTransformValues) {\n removedTransformValues =\n removeNonTranslationalTransform(visualElement);\n hasAttemptedToRemoveTransformValues = true;\n }\n changedValueTypeKeys.push(key);\n transitionEnd[key] =\n transitionEnd[key] !== undefined\n ? transitionEnd[key]\n : target[key];\n setAndResetVelocity(value, to);\n }\n }\n });\n if (changedValueTypeKeys.length) {\n var convertedTarget = convertChangedValueTypes(target, visualElement, changedValueTypeKeys);\n // If we removed transform values, reapply them before the next render\n if (removedTransformValues.length) {\n removedTransformValues.forEach(function (_a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n visualElement.getValue(key).set(value);\n });\n }\n // Reapply original values\n visualElement.syncRender();\n return { target: convertedTarget, transitionEnd: transitionEnd };\n }\n else {\n return { target: target, transitionEnd: transitionEnd };\n }\n};\n/**\n * Convert value types for x/y/width/height/top/left/bottom/right\n *\n * Allows animation between `'auto'` -> `'100%'` or `0` -> `'calc(50% - 10vw)'`\n *\n * @internal\n */\nfunction unitConversion(visualElement, target, origin, transitionEnd) {\n return hasPositionalKey(target)\n ? checkAndConvertChangedValueTypes(visualElement, target, origin, transitionEnd)\n : { target: target, transitionEnd: transitionEnd };\n}\n\nexport { BoundingBoxDimension, positionalValues, unitConversion };\n","import { __assign, __spreadArray, __read } from 'tslib';\nimport sync, { cancelSync } from 'framesync';\nimport { motionValue } from '../value/index.mjs';\nimport { isMotionValue } from '../value/utils/is-motion-value.mjs';\nimport { variantPriorityOrder } from './utils/animation-state.mjs';\nimport { createLifecycles } from './utils/lifecycles.mjs';\nimport { updateMotionValuesFromProps } from './utils/motion-values.mjs';\nimport { checkIfControllingVariants, checkIfVariantNode, isVariantLabel } from './utils/variants.mjs';\n\nvar visualElement = function (_a) {\n var _b = _a.treeType, treeType = _b === void 0 ? \"\" : _b, build = _a.build, getBaseTarget = _a.getBaseTarget, makeTargetAnimatable = _a.makeTargetAnimatable, measureViewportBox = _a.measureViewportBox, renderInstance = _a.render, readValueFromInstance = _a.readValueFromInstance, removeValueFromRenderState = _a.removeValueFromRenderState, sortNodePosition = _a.sortNodePosition, scrapeMotionValuesFromProps = _a.scrapeMotionValuesFromProps;\n return function (_a, options) {\n var parent = _a.parent, props = _a.props, presenceId = _a.presenceId, blockInitialAnimation = _a.blockInitialAnimation, visualState = _a.visualState, shouldReduceMotion = _a.shouldReduceMotion;\n if (options === void 0) { options = {}; }\n var isMounted = false;\n var latestValues = visualState.latestValues, renderState = visualState.renderState;\n /**\n * The instance of the render-specific node that will be hydrated by the\n * exposed React ref. So for example, this visual element can host a\n * HTMLElement, plain object, or Three.js object. The functions provided\n * in VisualElementConfig allow us to interface with this instance.\n */\n var instance;\n /**\n * Manages the subscriptions for a visual element's lifecycle, for instance\n * onRender\n */\n var lifecycles = createLifecycles();\n /**\n * A map of all motion values attached to this visual element. Motion\n * values are source of truth for any given animated value. A motion\n * value might be provided externally by the component via props.\n */\n var values = new Map();\n /**\n * A map of every subscription that binds the provided or generated\n * motion values onChange listeners to this visual element.\n */\n var valueSubscriptions = new Map();\n /**\n * A reference to the previously-provided motion values as returned\n * from scrapeMotionValuesFromProps. We use the keys in here to determine\n * if any motion values need to be removed after props are updated.\n */\n var prevMotionValues = {};\n /**\n * When values are removed from all animation props we need to search\n * for a fallback value to animate to. These values are tracked in baseTarget.\n */\n var baseTarget = __assign({}, latestValues);\n // Internal methods ========================\n /**\n * On mount, this will be hydrated with a callback to disconnect\n * this visual element from its parent on unmount.\n */\n var removeFromVariantTree;\n /**\n * Render the element with the latest styles outside of the React\n * render lifecycle\n */\n function render() {\n if (!instance || !isMounted)\n return;\n triggerBuild();\n renderInstance(instance, renderState, props.style, element.projection);\n }\n function triggerBuild() {\n build(element, renderState, latestValues, options, props);\n }\n function update() {\n lifecycles.notifyUpdate(latestValues);\n }\n /**\n *\n */\n function bindToMotionValue(key, value) {\n var removeOnChange = value.onChange(function (latestValue) {\n latestValues[key] = latestValue;\n props.onUpdate && sync.update(update, false, true);\n });\n var removeOnRenderRequest = value.onRenderRequest(element.scheduleRender);\n valueSubscriptions.set(key, function () {\n removeOnChange();\n removeOnRenderRequest();\n });\n }\n /**\n * Any motion values that are provided to the element when created\n * aren't yet bound to the element, as this would technically be impure.\n * However, we iterate through the motion values and set them to the\n * initial values for this component.\n *\n * TODO: This is impure and we should look at changing this to run on mount.\n * Doing so will break some tests but this isn't neccessarily a breaking change,\n * more a reflection of the test.\n */\n var initialMotionValues = scrapeMotionValuesFromProps(props);\n for (var key in initialMotionValues) {\n var value = initialMotionValues[key];\n if (latestValues[key] !== undefined && isMotionValue(value)) {\n value.set(latestValues[key], false);\n }\n }\n /**\n * Determine what role this visual element should take in the variant tree.\n */\n var isControllingVariants = checkIfControllingVariants(props);\n var isVariantNode = checkIfVariantNode(props);\n var element = __assign(__assign({ treeType: treeType, \n /**\n * This is a mirror of the internal instance prop, which keeps\n * VisualElement type-compatible with React's RefObject.\n */\n current: null, \n /**\n * The depth of this visual element within the visual element tree.\n */\n depth: parent ? parent.depth + 1 : 0, parent: parent, children: new Set(), \n /**\n *\n */\n presenceId: presenceId, shouldReduceMotion: shouldReduceMotion, \n /**\n * If this component is part of the variant tree, it should track\n * any children that are also part of the tree. This is essentially\n * a shadow tree to simplify logic around how to stagger over children.\n */\n variantChildren: isVariantNode ? new Set() : undefined, \n /**\n * Whether this instance is visible. This can be changed imperatively\n * by the projection tree, is analogous to CSS's visibility in that\n * hidden elements should take up layout, and needs enacting by the configured\n * render function.\n */\n isVisible: undefined, \n /**\n * Normally, if a component is controlled by a parent's variants, it can\n * rely on that ancestor to trigger animations further down the tree.\n * However, if a component is created after its parent is mounted, the parent\n * won't trigger that mount animation so the child needs to.\n *\n * TODO: This might be better replaced with a method isParentMounted\n */\n manuallyAnimateOnMount: Boolean(parent === null || parent === void 0 ? void 0 : parent.isMounted()), \n /**\n * This can be set by AnimatePresence to force components that mount\n * at the same time as it to mount as if they have initial={false} set.\n */\n blockInitialAnimation: blockInitialAnimation, \n /**\n * Determine whether this component has mounted yet. This is mostly used\n * by variant children to determine whether they need to trigger their\n * own animations on mount.\n */\n isMounted: function () { return Boolean(instance); }, mount: function (newInstance) {\n isMounted = true;\n instance = element.current = newInstance;\n if (element.projection) {\n element.projection.mount(newInstance);\n }\n if (isVariantNode && parent && !isControllingVariants) {\n removeFromVariantTree = parent === null || parent === void 0 ? void 0 : parent.addVariantChild(element);\n }\n values.forEach(function (value, key) { return bindToMotionValue(key, value); });\n parent === null || parent === void 0 ? void 0 : parent.children.add(element);\n element.setProps(props);\n }, \n /**\n *\n */\n unmount: function () {\n var _a;\n (_a = element.projection) === null || _a === void 0 ? void 0 : _a.unmount();\n cancelSync.update(update);\n cancelSync.render(render);\n valueSubscriptions.forEach(function (remove) { return remove(); });\n removeFromVariantTree === null || removeFromVariantTree === void 0 ? void 0 : removeFromVariantTree();\n parent === null || parent === void 0 ? void 0 : parent.children.delete(element);\n lifecycles.clearAllListeners();\n instance = undefined;\n isMounted = false;\n }, \n /**\n * Add a child visual element to our set of children.\n */\n addVariantChild: function (child) {\n var _a;\n var closestVariantNode = element.getClosestVariantNode();\n if (closestVariantNode) {\n (_a = closestVariantNode.variantChildren) === null || _a === void 0 ? void 0 : _a.add(child);\n return function () {\n return closestVariantNode.variantChildren.delete(child);\n };\n }\n }, sortNodePosition: function (other) {\n /**\n * If these nodes aren't even of the same type we can't compare their depth.\n */\n if (!sortNodePosition || treeType !== other.treeType)\n return 0;\n return sortNodePosition(element.getInstance(), other.getInstance());\n }, \n /**\n * Returns the closest variant node in the tree starting from\n * this visual element.\n */\n getClosestVariantNode: function () {\n return isVariantNode ? element : parent === null || parent === void 0 ? void 0 : parent.getClosestVariantNode();\n }, \n /**\n * Expose the latest layoutId prop.\n */\n getLayoutId: function () { return props.layoutId; }, \n /**\n * Returns the current instance.\n */\n getInstance: function () { return instance; }, \n /**\n * Get/set the latest static values.\n */\n getStaticValue: function (key) { return latestValues[key]; }, setStaticValue: function (key, value) { return (latestValues[key] = value); }, \n /**\n * Returns the latest motion value state. Currently only used to take\n * a snapshot of the visual element - perhaps this can return the whole\n * visual state\n */\n getLatestValues: function () { return latestValues; }, \n /**\n * Set the visiblity of the visual element. If it's changed, schedule\n * a render to reflect these changes.\n */\n setVisibility: function (visibility) {\n if (element.isVisible === visibility)\n return;\n element.isVisible = visibility;\n element.scheduleRender();\n }, \n /**\n * Make a target animatable by Popmotion. For instance, if we're\n * trying to animate width from 100px to 100vw we need to measure 100vw\n * in pixels to determine what we really need to animate to. This is also\n * pluggable to support Framer's custom value types like Color,\n * and CSS variables.\n */\n makeTargetAnimatable: function (target, canMutate) {\n if (canMutate === void 0) { canMutate = true; }\n return makeTargetAnimatable(element, target, props, canMutate);\n }, \n /**\n * Measure the current viewport box with or without transforms.\n * Only measures axis-aligned boxes, rotate and skew must be manually\n * removed with a re-render to work.\n */\n measureViewportBox: function () {\n return measureViewportBox(instance, props);\n }, \n // Motion values ========================\n /**\n * Add a motion value and bind it to this visual element.\n */\n addValue: function (key, value) {\n // Remove existing value if it exists\n if (element.hasValue(key))\n element.removeValue(key);\n values.set(key, value);\n latestValues[key] = value.get();\n bindToMotionValue(key, value);\n }, \n /**\n * Remove a motion value and unbind any active subscriptions.\n */\n removeValue: function (key) {\n var _a;\n values.delete(key);\n (_a = valueSubscriptions.get(key)) === null || _a === void 0 ? void 0 : _a();\n valueSubscriptions.delete(key);\n delete latestValues[key];\n removeValueFromRenderState(key, renderState);\n }, \n /**\n * Check whether we have a motion value for this key\n */\n hasValue: function (key) { return values.has(key); }, \n /**\n * Get a motion value for this key. If called with a default\n * value, we'll create one if none exists.\n */\n getValue: function (key, defaultValue) {\n var value = values.get(key);\n if (value === undefined && defaultValue !== undefined) {\n value = motionValue(defaultValue);\n element.addValue(key, value);\n }\n return value;\n }, \n /**\n * Iterate over our motion values.\n */\n forEachValue: function (callback) { return values.forEach(callback); }, \n /**\n * If we're trying to animate to a previously unencountered value,\n * we need to check for it in our state and as a last resort read it\n * directly from the instance (which might have performance implications).\n */\n readValue: function (key) {\n var _a;\n return (_a = latestValues[key]) !== null && _a !== void 0 ? _a : readValueFromInstance(instance, key, options);\n }, \n /**\n * Set the base target to later animate back to. This is currently\n * only hydrated on creation and when we first read a value.\n */\n setBaseTarget: function (key, value) {\n baseTarget[key] = value;\n }, \n /**\n * Find the base target for a value thats been removed from all animation\n * props.\n */\n getBaseTarget: function (key) {\n if (getBaseTarget) {\n var target = getBaseTarget(props, key);\n if (target !== undefined && !isMotionValue(target))\n return target;\n }\n return baseTarget[key];\n } }, lifecycles), { \n /**\n * Build the renderer state based on the latest visual state.\n */\n build: function () {\n triggerBuild();\n return renderState;\n }, \n /**\n * Schedule a render on the next animation frame.\n */\n scheduleRender: function () {\n sync.render(render, false, true);\n }, \n /**\n * Synchronously fire render. It's prefered that we batch renders but\n * in many circumstances, like layout measurement, we need to run this\n * synchronously. However in those instances other measures should be taken\n * to batch reads/writes.\n */\n syncRender: render, \n /**\n * Update the provided props. Ensure any newly-added motion values are\n * added to our map, old ones removed, and listeners updated.\n */\n setProps: function (newProps) {\n if (newProps.transformTemplate || props.transformTemplate) {\n element.scheduleRender();\n }\n props = newProps;\n lifecycles.updatePropListeners(newProps);\n prevMotionValues = updateMotionValuesFromProps(element, scrapeMotionValuesFromProps(props), prevMotionValues);\n }, getProps: function () { return props; }, \n // Variants ==============================\n /**\n * Returns the variant definition with a given name.\n */\n getVariant: function (name) { var _a; return (_a = props.variants) === null || _a === void 0 ? void 0 : _a[name]; }, \n /**\n * Returns the defined default transition on this component.\n */\n getDefaultTransition: function () { return props.transition; }, getTransformPagePoint: function () {\n return props.transformPagePoint;\n }, \n /**\n * Used by child variant nodes to get the closest ancestor variant props.\n */\n getVariantContext: function (startAtParent) {\n if (startAtParent === void 0) { startAtParent = false; }\n if (startAtParent)\n return parent === null || parent === void 0 ? void 0 : parent.getVariantContext();\n if (!isControllingVariants) {\n var context_1 = (parent === null || parent === void 0 ? void 0 : parent.getVariantContext()) || {};\n if (props.initial !== undefined) {\n context_1.initial = props.initial;\n }\n return context_1;\n }\n var context = {};\n for (var i = 0; i < numVariantProps; i++) {\n var name_1 = variantProps[i];\n var prop = props[name_1];\n if (isVariantLabel(prop) || prop === false) {\n context[name_1] = prop;\n }\n }\n return context;\n } });\n return element;\n };\n};\nvar variantProps = __spreadArray([\"initial\"], __read(variantPriorityOrder), false);\nvar numVariantProps = variantProps.length;\n\nexport { visualElement };\n","import { motionValue } from '../../value/index.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction updateMotionValuesFromProps(element, next, prev) {\n var _a;\n for (var key in next) {\n var nextValue = next[key];\n var prevValue = prev[key];\n if (isMotionValue(nextValue)) {\n /**\n * If this is a motion value found in props or style, we want to add it\n * to our visual element's motion value map.\n */\n element.addValue(key, nextValue);\n }\n else if (isMotionValue(prevValue)) {\n /**\n * If we're swapping to a new motion value, create a new motion value\n * from that\n */\n element.addValue(key, motionValue(nextValue));\n }\n else if (prevValue !== nextValue) {\n /**\n * If this is a flat value that has changed, update the motion value\n * or create one if it doesn't exist. We only want to do this if we're\n * not handling the value with our animation state.\n */\n if (element.hasValue(key)) {\n var existingValue = element.getValue(key);\n // TODO: Only update values that aren't being animated or even looked at\n !existingValue.hasAnimated && existingValue.set(nextValue);\n }\n else {\n element.addValue(key, motionValue((_a = element.getStaticValue(key)) !== null && _a !== void 0 ? _a : nextValue));\n }\n }\n }\n // Handle removed values\n for (var key in prev) {\n if (next[key] === undefined)\n element.removeValue(key);\n }\n return next;\n}\n\nexport { updateMotionValuesFromProps };\n","import { resolveCSSVariables } from './css-variables-conversion.mjs';\nimport { unitConversion } from './unit-conversion.mjs';\n\n/**\n * Parse a DOM variant to make it animatable. This involves resolving CSS variables\n * and ensuring animations like \"20%\" => \"calc(50vw)\" are performed in pixels.\n */\nvar parseDomVariant = function (visualElement, target, origin, transitionEnd) {\n var resolved = resolveCSSVariables(visualElement, target, transitionEnd);\n target = resolved.target;\n transitionEnd = resolved.transitionEnd;\n return unitConversion(visualElement, target, origin, transitionEnd);\n};\n\nexport { parseDomVariant };\n","import { __rest, __assign } from 'tslib';\nimport { visualElement } from '../index.mjs';\nimport { getOrigin, checkTargetForNewValues } from '../utils/setters.mjs';\nimport { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { isCSSVariable } from '../dom/utils/is-css-variable.mjs';\nimport { parseDomVariant } from '../dom/utils/parse-dom-variant.mjs';\nimport { isTransformProp } from './utils/transform.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { renderHTML } from './utils/render.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\nimport { measureViewportBox } from '../../projection/utils/measure.mjs';\n\nfunction getComputedStyle(element) {\n return window.getComputedStyle(element);\n}\nvar htmlConfig = {\n treeType: \"dom\",\n readValueFromInstance: function (domElement, key) {\n if (isTransformProp(key)) {\n var defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n else {\n var computedStyle = getComputedStyle(domElement);\n return ((isCSSVariable(key)\n ? computedStyle.getPropertyValue(key)\n : computedStyle[key]) || 0);\n }\n },\n sortNodePosition: function (a, b) {\n /**\n * compareDocumentPosition returns a bitmask, by using the bitwise &\n * we're returning true if 2 in that bitmask is set to true. 2 is set\n * to true if b preceeds a.\n */\n return a.compareDocumentPosition(b) & 2 ? 1 : -1;\n },\n getBaseTarget: function (props, key) {\n var _a;\n return (_a = props.style) === null || _a === void 0 ? void 0 : _a[key];\n },\n measureViewportBox: function (element, _a) {\n var transformPagePoint = _a.transformPagePoint;\n return measureViewportBox(element, transformPagePoint);\n },\n /**\n * Reset the transform on the current Element. This is called as part\n * of a batched process across the entire layout tree. To remove this write\n * cycle it'd be interesting to see if it's possible to \"undo\" all the current\n * layout transforms up the tree in the same way this.getBoundingBoxWithoutTransforms\n * works\n */\n resetTransform: function (element, domElement, props) {\n var transformTemplate = props.transformTemplate;\n domElement.style.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n // Ensure that whatever happens next, we restore our transform on the next frame\n element.scheduleRender();\n },\n restoreTransform: function (instance, mutableState) {\n instance.style.transform = mutableState.style.transform;\n },\n removeValueFromRenderState: function (key, _a) {\n var vars = _a.vars, style = _a.style;\n delete vars[key];\n delete style[key];\n },\n /**\n * Ensure that HTML and Framer-specific value types like `px`->`%` and `Color`\n * can be animated by Motion.\n */\n makeTargetAnimatable: function (element, _a, _b, isMounted) {\n var transformValues = _b.transformValues;\n if (isMounted === void 0) { isMounted = true; }\n var transition = _a.transition, transitionEnd = _a.transitionEnd, target = __rest(_a, [\"transition\", \"transitionEnd\"]);\n var origin = getOrigin(target, transition || {}, element);\n /**\n * If Framer has provided a function to convert `Color` etc value types, convert them\n */\n if (transformValues) {\n if (transitionEnd)\n transitionEnd = transformValues(transitionEnd);\n if (target)\n target = transformValues(target);\n if (origin)\n origin = transformValues(origin);\n }\n if (isMounted) {\n checkTargetForNewValues(element, target, origin);\n var parsed = parseDomVariant(element, target, origin, transitionEnd);\n transitionEnd = parsed.transitionEnd;\n target = parsed.target;\n }\n return __assign({ transition: transition, transitionEnd: transitionEnd }, target);\n },\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n build: function (element, renderState, latestValues, options, props) {\n if (element.isVisible !== undefined) {\n renderState.style.visibility = element.isVisible\n ? \"visible\"\n : \"hidden\";\n }\n buildHTMLStyles(renderState, latestValues, options, props.transformTemplate);\n },\n render: renderHTML,\n};\nvar htmlVisualElement = visualElement(htmlConfig);\n\nexport { getComputedStyle, htmlConfig, htmlVisualElement };\n","import { __assign } from 'tslib';\nimport { visualElement } from '../index.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { htmlConfig } from '../html/visual-element.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { camelToDash } from '../dom/utils/camel-to-dash.mjs';\nimport { camelCaseAttributes } from './utils/camel-case-attrs.mjs';\nimport { isTransformProp } from '../html/utils/transform.mjs';\nimport { renderSVG } from './utils/render.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\n\nvar svgVisualElement = visualElement(__assign(__assign({}, htmlConfig), { getBaseTarget: function (props, key) {\n return props[key];\n }, readValueFromInstance: function (domElement, key) {\n var _a;\n if (isTransformProp(key)) {\n return ((_a = getDefaultValueType(key)) === null || _a === void 0 ? void 0 : _a.default) || 0;\n }\n key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;\n return domElement.getAttribute(key);\n }, scrapeMotionValuesFromProps: scrapeMotionValuesFromProps, build: function (_element, renderState, latestValues, options, props) {\n buildSVGAttrs(renderState, latestValues, options, props.transformTemplate);\n }, render: renderSVG }));\n\nexport { svgVisualElement };\n","import { htmlVisualElement } from '../html/visual-element.mjs';\nimport { svgVisualElement } from '../svg/visual-element.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\n\nvar createDomVisualElement = function (Component, options) {\n return isSVGComponent(Component)\n ? svgVisualElement(options, { enableHardwareAcceleration: false })\n : htmlVisualElement(options, { enableHardwareAcceleration: true });\n};\n\nexport { createDomVisualElement };\n","import { filter, complex } from 'style-value-types';\nimport { getDefaultValueType } from './defaults.mjs';\n\nfunction getAnimatableNone(key, value) {\n var _a;\n var defaultValueType = getDefaultValueType(key);\n if (defaultValueType !== filter)\n defaultValueType = complex;\n // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\n return (_a = defaultValueType.getAnimatableNone) === null || _a === void 0 ? void 0 : _a.call(defaultValueType, value);\n}\n\nexport { getAnimatableNone };\n","/**\n * Check if the value is a zero value string like \"0px\" or \"0%\"\n */\nvar isZeroValueString = function (v) { return /^0[^.\\s]+$/.test(v); };\n\nexport { isZeroValueString };\n","import { __spreadArray, __read } from 'tslib';\nimport { color, complex } from 'style-value-types';\nimport { dimensionValueTypes } from './dimensions.mjs';\nimport { testValueType } from './test.mjs';\n\n/**\n * A list of all ValueTypes\n */\nvar valueTypes = __spreadArray(__spreadArray([], __read(dimensionValueTypes), false), [color, complex], false);\n/**\n * Tests a value against the list of ValueTypes\n */\nvar findValueType = function (v) { return valueTypes.find(testValueType(v)); };\n\nexport { findValueType };\n","import { __rest, __assign, __spreadArray, __read } from 'tslib';\nimport { complex } from 'style-value-types';\nimport { isNumericalString } from '../../utils/is-numerical-string.mjs';\nimport { isZeroValueString } from '../../utils/is-zero-value-string.mjs';\nimport { resolveFinalValueInKeyframes } from '../../utils/resolve-value.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { getAnimatableNone } from '../dom/value-types/animatable-none.mjs';\nimport { findValueType } from '../dom/value-types/find.mjs';\nimport { resolveVariant } from './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 var resolved = resolveVariant(visualElement, definition);\n var _a = resolved ? visualElement.makeTargetAnimatable(resolved, false) : {}, _b = _a.transitionEnd, transitionEnd = _b === void 0 ? {} : _b; _a.transition; var target = __rest(_a, [\"transitionEnd\", \"transition\"]);\n target = __assign(__assign({}, target), transitionEnd);\n for (var key in target) {\n var value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n }\n}\nfunction setVariants(visualElement, variantLabels) {\n var reversedLabels = __spreadArray([], __read(variantLabels), false).reverse();\n reversedLabels.forEach(function (key) {\n var _a;\n var variant = visualElement.getVariant(key);\n variant && setTarget(visualElement, variant);\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n setVariants(child, variantLabels);\n });\n });\n}\nfunction setValues(visualElement, definition) {\n if (Array.isArray(definition)) {\n return setVariants(visualElement, definition);\n }\n else if (typeof definition === \"string\") {\n return setVariants(visualElement, [definition]);\n }\n else {\n setTarget(visualElement, definition);\n }\n}\nfunction checkTargetForNewValues(visualElement, target, origin) {\n var _a, _b, _c;\n var _d;\n var newValueKeys = Object.keys(target).filter(function (key) { return !visualElement.hasValue(key); });\n var numNewValues = newValueKeys.length;\n if (!numNewValues)\n return;\n for (var i = 0; i < numNewValues; i++) {\n var key = newValueKeys[i];\n var targetValue = target[key];\n var value = null;\n /**\n * If the target is a series of keyframes, we can use the first value\n * in the array. If this first value is null, we'll still need to read from the DOM.\n */\n if (Array.isArray(targetValue)) {\n value = targetValue[0];\n }\n /**\n * If the target isn't keyframes, or the first keyframe was null, we need to\n * first check if an origin value was explicitly defined in the transition as \"from\",\n * if not read the value from the DOM. As an absolute fallback, take the defined target value.\n */\n if (value === null) {\n value = (_b = (_a = origin[key]) !== null && _a !== void 0 ? _a : visualElement.readValue(key)) !== null && _b !== void 0 ? _b : target[key];\n }\n /**\n * If value is still undefined or null, ignore it. Preferably this would throw,\n * but this was causing issues in Framer.\n */\n if (value === undefined || value === null)\n continue;\n if (typeof value === \"string\" &&\n (isNumericalString(value) || isZeroValueString(value))) {\n // If this is a number read as a string, ie \"0\" or \"200\", convert it to a number\n value = parseFloat(value);\n }\n else if (!findValueType(value) && complex.test(targetValue)) {\n value = getAnimatableNone(key, targetValue);\n }\n visualElement.addValue(key, motionValue(value));\n (_c = (_d = origin)[key]) !== null && _c !== void 0 ? _c : (_d[key] = value);\n visualElement.setBaseTarget(key, value);\n }\n}\nfunction getOriginFromTransition(key, transition) {\n if (!transition)\n return;\n var valueTransition = transition[key] || transition[\"default\"] || transition;\n return valueTransition.from;\n}\nfunction getOrigin(target, transition, visualElement) {\n var _a, _b;\n var origin = {};\n for (var key in target) {\n origin[key] =\n (_a = getOriginFromTransition(key, transition)) !== null && _a !== void 0 ? _a : (_b = visualElement.getValue(key)) === null || _b === void 0 ? void 0 : _b.get();\n }\n return origin;\n}\n\nexport { checkTargetForNewValues, getOrigin, getOriginFromTransition, setTarget, setValues };\n","/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nvar isNumericalString = function (v) { return /^\\-?\\d*\\.?\\d+$/.test(v); };\n\nexport { isNumericalString };\n","import { __read } from 'tslib';\nimport { useEffect, useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { usePresence } from '../../components/AnimatePresence/use-presence.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { createAnimationState } from '../../render/utils/animation-state.mjs';\nimport { AnimationType } from '../../render/utils/types.mjs';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.mjs';\n\nvar animations = {\n animation: makeRenderlessComponent(function (_a) {\n var visualElement = _a.visualElement, animate = _a.animate;\n /**\n * We dynamically generate the AnimationState manager as it contains a reference\n * to the underlying animation library. We only want to load that if we load this,\n * so people can optionally code split it out using the `m` component.\n */\n visualElement.animationState || (visualElement.animationState = createAnimationState(visualElement));\n /**\n * Subscribe any provided AnimationControls to the component's VisualElement\n */\n if (isAnimationControls(animate)) {\n useEffect(function () { return animate.subscribe(visualElement); }, [animate]);\n }\n }),\n exit: makeRenderlessComponent(function (props) {\n var custom = props.custom, visualElement = props.visualElement;\n var _a = __read(usePresence(), 2), isPresent = _a[0], safeToRemove = _a[1];\n var presenceContext = useContext(PresenceContext);\n useEffect(function () {\n var _a, _b;\n visualElement.isPresent = isPresent;\n var animation = (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Exit, !isPresent, { custom: (_b = presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.custom) !== null && _b !== void 0 ? _b : custom });\n !isPresent && (animation === null || animation === void 0 ? void 0 : animation.then(safeToRemove));\n }, [isPresent]);\n }),\n};\n\nexport { animations };\n","import { useConstant } from './use-constant.mjs';\n\nvar counter = 0;\nvar incrementId = function () { return counter++; };\nvar useId = function () { return useConstant(incrementId); };\n/**\n * Ideally we'd use the following code to support React 18 optionally.\n * But this fairly fails in Webpack (otherwise treeshaking wouldn't work at all).\n * Need to come up with a different way of figuring this out.\n */\n// export const useId = (React as any).useId\n// ? (React as any).useId\n// : () => useConstant(incrementId)\n\nexport { useId };\n","import { createMotionComponent } from '../../motion/index.mjs';\n\n/**\n * Convert any React component into a `motion` component. The provided component\n * **must** use `React.forwardRef` to the underlying DOM component you want to animate.\n *\n * ```jsx\n * const Component = React.forwardRef((props, ref) => {\n * return
\n * })\n *\n * const MotionComponent = motion(Component)\n * ```\n *\n * @public\n */\nfunction createMotionProxy(createConfig) {\n function custom(Component, customMotionComponentConfig) {\n if (customMotionComponentConfig === void 0) { customMotionComponentConfig = {}; }\n return createMotionComponent(createConfig(Component, customMotionComponentConfig));\n }\n if (typeof Proxy === \"undefined\") {\n return custom;\n }\n /**\n * A cache of generated `motion` components, e.g `motion.div`, `motion.input` etc.\n * Rather than generating them anew every render.\n */\n var componentCache = new Map();\n return new Proxy(custom, {\n /**\n * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.\n * The prop name is passed through as `key` and we can use that to generate a `motion`\n * DOM component with that name.\n */\n get: function (_target, key) {\n /**\n * If this element doesn't exist in the component cache, create it and cache.\n */\n if (!componentCache.has(key)) {\n componentCache.set(key, custom(key));\n }\n return componentCache.get(key);\n },\n });\n}\n\nexport { createMotionProxy };\n","import { isMouseEvent } from './utils/event-type.mjs';\nimport { AnimationType } from '../render/utils/types.mjs';\nimport { usePointerEvent } from '../events/use-pointer-event.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\n\nfunction createHoverEvent(visualElement, isActive, callback) {\n return function (event, info) {\n var _a;\n if (!isMouseEvent(event) || isDragActive())\n return;\n /**\n * Ensure we trigger animations before firing event callback\n */\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Hover, isActive);\n callback === null || callback === void 0 ? void 0 : callback(event, info);\n };\n}\nfunction useHoverGesture(_a) {\n var onHoverStart = _a.onHoverStart, onHoverEnd = _a.onHoverEnd, whileHover = _a.whileHover, visualElement = _a.visualElement;\n usePointerEvent(visualElement, \"pointerenter\", onHoverStart || whileHover\n ? createHoverEvent(visualElement, true, onHoverStart)\n : undefined);\n usePointerEvent(visualElement, \"pointerleave\", onHoverEnd || whileHover\n ? createHoverEvent(visualElement, false, onHoverEnd)\n : undefined);\n}\n\nexport { useHoverGesture };\n","/**\n * Recursively traverse up the tree to check whether the provided child node\n * is the parent or a descendant of it.\n *\n * @param parent - Element to find\n * @param child - Element to test against parent\n */\nvar isNodeOrChild = function (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","var warned = new Set();\nfunction warnOnce(condition, message, element) {\n if (condition || warned.has(message))\n return;\n console.warn(message);\n if (element)\n console.warn(element);\n warned.add(message);\n}\n\nexport { warnOnce };\n","import { __rest, __assign } from 'tslib';\n\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 */\nvar 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 */\nvar observers = new WeakMap();\nvar fireObserverCallback = function (entry) {\n var _a;\n (_a = observerCallbacks.get(entry.target)) === null || _a === void 0 ? void 0 : _a(entry);\n};\nvar fireAllObserverCallbacks = function (entries) {\n entries.forEach(fireObserverCallback);\n};\nfunction initIntersectionObserver(_a) {\n var root = _a.root, options = __rest(_a, [\"root\"]);\n var 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 var rootObservers = observers.get(lookupRoot);\n var 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, __assign({ root: root }, options));\n }\n return rootObservers[key];\n}\nfunction observeIntersection(element, options, callback) {\n var rootInteresectionObserver = initIntersectionObserver(options);\n observerCallbacks.set(element, callback);\n rootInteresectionObserver.observe(element);\n return function () {\n observerCallbacks.delete(element);\n rootInteresectionObserver.unobserve(element);\n };\n}\n\nexport { observeIntersection };\n","import process from '../../../utils/process.mjs';\nimport { useRef, useEffect } from 'react';\nimport { AnimationType } from '../../../render/utils/types.mjs';\nimport { warnOnce } from '../../../utils/warn-once.mjs';\nimport { observeIntersection } from './observers.mjs';\n\nfunction useViewport(_a) {\n var visualElement = _a.visualElement, whileInView = _a.whileInView, onViewportEnter = _a.onViewportEnter, onViewportLeave = _a.onViewportLeave, _b = _a.viewport, viewport = _b === void 0 ? {} : _b;\n var state = useRef({\n hasEnteredView: false,\n isInView: false,\n });\n var shouldObserve = Boolean(whileInView || onViewportEnter || onViewportLeave);\n if (viewport.once && state.current.hasEnteredView)\n shouldObserve = false;\n var useObserver = typeof IntersectionObserver === \"undefined\"\n ? useMissingIntersectionObserver\n : useIntersectionObserver;\n useObserver(shouldObserve, state.current, visualElement, viewport);\n}\nvar thresholdNames = {\n some: 0,\n all: 1,\n};\nfunction useIntersectionObserver(shouldObserve, state, visualElement, _a) {\n var root = _a.root, rootMargin = _a.margin, _b = _a.amount, amount = _b === void 0 ? \"some\" : _b, once = _a.once;\n useEffect(function () {\n if (!shouldObserve)\n return;\n var options = {\n root: root === null || root === void 0 ? void 0 : root.current,\n rootMargin: rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholdNames[amount],\n };\n var intersectionCallback = function (entry) {\n var _a;\n var isIntersecting = entry.isIntersecting;\n /**\n * If there's been no change in the viewport state, early return.\n */\n if (state.isInView === isIntersecting)\n return;\n state.isInView = isIntersecting;\n /**\n * Handle hasEnteredView. If this is only meant to run once, and\n * element isn't visible, early return. Otherwise set hasEnteredView to true.\n */\n if (once && !isIntersecting && state.hasEnteredView) {\n return;\n }\n else if (isIntersecting) {\n state.hasEnteredView = true;\n }\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.InView, isIntersecting);\n /**\n * Use the latest committed props rather than the ones in scope\n * when this observer is created\n */\n var props = visualElement.getProps();\n var callback = isIntersecting\n ? props.onViewportEnter\n : props.onViewportLeave;\n callback === null || callback === void 0 ? void 0 : callback(entry);\n };\n return observeIntersection(visualElement.getInstance(), options, intersectionCallback);\n }, [shouldObserve, root, rootMargin, amount]);\n}\n/**\n * If IntersectionObserver is missing, we activate inView and fire onViewportEnter\n * on mount. This way, the page will be in the state the author expects users\n * to see it in for everyone.\n */\nfunction useMissingIntersectionObserver(shouldObserve, state, visualElement, _a) {\n var _b = _a.fallback, fallback = _b === void 0 ? true : _b;\n useEffect(function () {\n if (!shouldObserve || !fallback)\n return;\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(false, \"IntersectionObserver not available on this device. whileInView animations will trigger on mount.\");\n }\n /**\n * Fire this in an rAF because, at this point, the animation state\n * won't have flushed for the first time and there's certain logic in\n * there that behaves differently on the initial animation.\n *\n * This hook should be quite rarely called so setting this in an rAF\n * is preferred to changing the behaviour of the animation state.\n */\n requestAnimationFrame(function () {\n var _a;\n state.hasEnteredView = true;\n var onViewportEnter = visualElement.getProps().onViewportEnter;\n onViewportEnter === null || onViewportEnter === void 0 ? void 0 : onViewportEnter(null);\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.InView, true);\n });\n }, [shouldObserve]);\n}\n\nexport { useViewport };\n","import { useFocusGesture } from '../../gestures/use-focus-gesture.mjs';\nimport { useHoverGesture } from '../../gestures/use-hover-gesture.mjs';\nimport { useTapGesture } from '../../gestures/use-tap-gesture.mjs';\nimport { useViewport } from './viewport/use-viewport.mjs';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.mjs';\n\nvar gestureAnimations = {\n inView: makeRenderlessComponent(useViewport),\n tap: makeRenderlessComponent(useTapGesture),\n focus: makeRenderlessComponent(useFocusGesture),\n hover: makeRenderlessComponent(useHoverGesture),\n};\n\nexport { gestureAnimations };\n","import { useRef } from 'react';\nimport { isNodeOrChild } from './utils/is-node-or-child.mjs';\nimport { usePointerEvent, addPointerEvent } from '../events/use-pointer-event.mjs';\nimport { useUnmountEffect } from '../utils/use-unmount-effect.mjs';\nimport { pipe } from 'popmotion';\nimport { AnimationType } from '../render/utils/types.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\n\n/**\n * @param handlers -\n * @internal\n */\nfunction useTapGesture(_a) {\n var onTap = _a.onTap, onTapStart = _a.onTapStart, onTapCancel = _a.onTapCancel, whileTap = _a.whileTap, visualElement = _a.visualElement;\n var hasPressListeners = onTap || onTapStart || onTapCancel || whileTap;\n var isPressing = useRef(false);\n var cancelPointerEndListeners = useRef(null);\n function removePointerEndListener() {\n var _a;\n (_a = cancelPointerEndListeners.current) === null || _a === void 0 ? void 0 : _a.call(cancelPointerEndListeners);\n cancelPointerEndListeners.current = null;\n }\n function checkPointerEnd() {\n var _a;\n removePointerEndListener();\n isPressing.current = false;\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Tap, false);\n return !isDragActive();\n }\n function onPointerUp(event, info) {\n if (!checkPointerEnd())\n return;\n /**\n * We only count this as a tap gesture if the event.target is the same\n * as, or a child of, this component's element\n */\n !isNodeOrChild(visualElement.getInstance(), event.target)\n ? onTapCancel === null || onTapCancel === void 0 ? void 0 : onTapCancel(event, info)\n : onTap === null || onTap === void 0 ? void 0 : onTap(event, info);\n }\n function onPointerCancel(event, info) {\n if (!checkPointerEnd())\n return;\n onTapCancel === null || onTapCancel === void 0 ? void 0 : onTapCancel(event, info);\n }\n function onPointerDown(event, info) {\n var _a;\n removePointerEndListener();\n if (isPressing.current)\n return;\n isPressing.current = true;\n cancelPointerEndListeners.current = pipe(addPointerEvent(window, \"pointerup\", onPointerUp), addPointerEvent(window, \"pointercancel\", onPointerCancel));\n /**\n * Ensure we trigger animations before firing event callback\n */\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Tap, true);\n onTapStart === null || onTapStart === void 0 ? void 0 : onTapStart(event, info);\n }\n usePointerEvent(visualElement, \"pointerdown\", hasPressListeners ? onPointerDown : undefined);\n useUnmountEffect(removePointerEndListener);\n}\n\nexport { useTapGesture };\n","import { AnimationType } from '../render/utils/types.mjs';\nimport { useDomEvent } from '../events/use-dom-event.mjs';\n\n/**\n *\n * @param props\n * @param ref\n * @internal\n */\nfunction useFocusGesture(_a) {\n var whileFocus = _a.whileFocus, visualElement = _a.visualElement;\n var onFocus = function () {\n var _a;\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Focus, true);\n };\n var onBlur = function () {\n var _a;\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Focus, false);\n };\n useDomEvent(visualElement, \"focus\", whileFocus ? onFocus : undefined);\n useDomEvent(visualElement, \"blur\", whileFocus ? onBlur : undefined);\n}\n\nexport { useFocusGesture };\n","/**\n * Tests a provided value against a ValueType\n */\nvar testValueType = function (v) { return function (type) { return type.test(v); }; };\n\nexport { testValueType };\n","/**\n * Returns true if the provided key is a CSS variable\n */\nfunction isCSSVariable(key) {\n return key.startsWith(\"--\");\n}\n\nexport { isCSSVariable };\n","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 var viewportBox = measureViewportBox(element, transformPagePoint);\n var scroll = rootProjectionNode.scroll;\n if (scroll) {\n translateAxis(viewportBox.x, scroll.x);\n translateAxis(viewportBox.y, scroll.y);\n }\n return viewportBox;\n}\n\nexport { measurePageBox, measureViewportBox };\n","import { __rest, __assign, __read } from 'tslib';\nimport { invariant } from 'hey-listen';\n\nfunction isCSSVariable(value) {\n return typeof value === \"string\" && value.startsWith(\"var(--\");\n}\n/**\n * Parse Framer's special CSS variable format into a CSS token and a fallback.\n *\n * ```\n * `var(--foo, #fff)` => [`--foo`, '#fff']\n * ```\n *\n * @param current\n */\nvar cssVariableRegex = /var\\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\\)/;\nfunction parseCSSVariable(current) {\n var match = cssVariableRegex.exec(current);\n if (!match)\n return [,];\n var _a = __read(match, 3), token = _a[1], fallback = _a[2];\n return [token, fallback];\n}\nvar maxDepth = 4;\nfunction getVariableValue(current, element, depth) {\n if (depth === void 0) { depth = 1; }\n invariant(depth <= maxDepth, \"Max CSS variable fallback depth detected in property \\\"\".concat(current, \"\\\". This may indicate a circular fallback dependency.\"));\n var _a = __read(parseCSSVariable(current), 2), token = _a[0], fallback = _a[1];\n // No CSS variable detected\n if (!token)\n return;\n // Attempt to read this CSS variable off the element\n var resolved = window.getComputedStyle(element).getPropertyValue(token);\n if (resolved) {\n return resolved.trim();\n }\n else if (isCSSVariable(fallback)) {\n // The fallback might itself be a CSS variable, in which case we attempt to resolve it too.\n return getVariableValue(fallback, element, depth + 1);\n }\n else {\n return fallback;\n }\n}\n/**\n * Resolve CSS variables from\n *\n * @internal\n */\nfunction resolveCSSVariables(visualElement, _a, transitionEnd) {\n var _b;\n var target = __rest(_a, []);\n var element = visualElement.getInstance();\n if (!(element instanceof Element))\n return { target: target, transitionEnd: transitionEnd };\n // If `transitionEnd` isn't `undefined`, clone it. We could clone `target` and `transitionEnd`\n // only if they change but I think this reads clearer and this isn't a performance-critical path.\n if (transitionEnd) {\n transitionEnd = __assign({}, transitionEnd);\n }\n // Go through existing `MotionValue`s and ensure any existing CSS variables are resolved\n visualElement.forEachValue(function (value) {\n var current = value.get();\n if (!isCSSVariable(current))\n return;\n var resolved = getVariableValue(current, element);\n if (resolved)\n value.set(resolved);\n });\n // Cycle through every target property and resolve CSS variables. Currently\n // we only read single-var properties like `var(--foo)`, not `calc(var(--foo) + 20px)`\n for (var key in target) {\n var current = target[key];\n if (!isCSSVariable(current))\n continue;\n var resolved = getVariableValue(current, element);\n if (!resolved)\n continue;\n // Clone target if it hasn't already been\n target[key] = resolved;\n // If the user hasn't already set this key on `transitionEnd`, set it to the unresolved\n // CSS variable. This will ensure that after the animation the component will reflect\n // changes in the value of the CSS variable.\n if (transitionEnd)\n (_b = transitionEnd[key]) !== null && _b !== void 0 ? _b : (transitionEnd[key] = current);\n }\n return { target: target, transitionEnd: transitionEnd };\n}\n\nexport { cssVariableRegex, parseCSSVariable, resolveCSSVariables };\n","import { scaleCorrectors } from '../../projection/styles/scale-correction.mjs';\nimport { isTransformProp, isTransformOriginProp } from '../../render/html/utils/transform.mjs';\n\nfunction isForcedMotionValue(key, _a) {\n var layout = _a.layout, layoutId = _a.layoutId;\n return (isTransformProp(key) ||\n isTransformOriginProp(key) ||\n ((layout || layoutId !== undefined) &&\n (!!scaleCorrectors[key] || key === \"opacity\")));\n}\n\nexport { isForcedMotionValue };\n","function renderHTML(element, _a, styleProp, projection) {\n var style = _a.style, vars = _a.vars;\n Object.assign(element.style, style, projection && projection.getProjectionStyles(styleProp));\n // Loop over any CSS variables and assign those.\n for (var 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 */\nvar camelCaseAttributes = new Set([\n \"baseFrequency\",\n \"diffuseConstant\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keySplines\",\n \"keyTimes\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerWidth\",\n \"numOctaves\",\n \"targetX\",\n \"targetY\",\n \"surfaceScale\",\n \"specularConstant\",\n \"specularExponent\",\n \"stdDeviation\",\n \"tableValues\",\n \"viewBox\",\n \"gradientTransform\",\n \"pathLength\",\n]);\n\nexport { camelCaseAttributes };\n","var CAMEL_CASE_PATTERN = /([a-z])([A-Z])/g;\nvar REPLACE_TEMPLATE = \"$1-$2\";\n/**\n * Convert camelCase to dash-case properties.\n */\nvar camelToDash = function (str) {\n return str.replace(CAMEL_CASE_PATTERN, REPLACE_TEMPLATE).toLowerCase();\n};\n\nexport { camelToDash };\n","import { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\nimport { scrapeMotionValuesFromProps as scrapeMotionValuesFromProps$1 } from '../../html/utils/scrape-motion-values.mjs';\n\nfunction scrapeMotionValuesFromProps(props) {\n var newValues = scrapeMotionValuesFromProps$1(props);\n for (var key in props) {\n if (isMotionValue(props[key])) {\n var targetKey = key === \"x\" || key === \"y\" ? \"attr\" + key.toUpperCase() : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\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 (var key in renderState.attrs) {\n element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]);\n }\n}\n\nexport { renderSVG };\n","import { useContext, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useId } from '../../utils/use-id.mjs';\n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n * const [isPresent, safeToRemove] = usePresence()\n *\n * useEffect(() => {\n * !isPresent && setTimeout(safeToRemove, 1000)\n * }, [isPresent])\n *\n * return \n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed the tree, but\n * `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */\nfunction usePresence() {\n var context = useContext(PresenceContext);\n if (context === null)\n return [true, null];\n var isPresent = context.isPresent, onExitComplete = context.onExitComplete, register = context.register;\n // It's safe to call the following hooks conditionally (after an early return) because the context will always\n // either be null or non-null for the lifespan of the component.\n // Replace with useId when released in React\n var id = useId();\n useEffect(function () { return register(id); }, []);\n var safeToRemove = function () { return onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete(id); };\n return !isPresent && onExitComplete ? [false, safeToRemove] : [true];\n}\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n * const isPresent = useIsPresent()\n *\n * useEffect(() => {\n * !isPresent && console.log(\"I've been removed!\")\n * }, [isPresent])\n *\n * return \n * }\n * ```\n *\n * @public\n */\nfunction useIsPresent() {\n return isPresent(useContext(PresenceContext));\n}\nfunction isPresent(context) {\n return context === null ? true : context.isPresent;\n}\n\nexport { isPresent, useIsPresent, usePresence };\n","import { createContext } from 'react';\n\n/**\n * @internal\n */\nvar SwitchLayoutGroupContext = createContext({});\n\nexport { SwitchLayoutGroupContext };\n","import { __assign } from 'tslib';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport process from '../../utils/process.mjs';\nimport { featureDefinitions } from './definitions.mjs';\nimport { invariant } from 'hey-listen';\nimport { LazyContext } from '../../context/LazyContext.mjs';\n\nvar featureNames = Object.keys(featureDefinitions);\nvar numFeatures = featureNames.length;\n/**\n * Load features via renderless components based on the provided MotionProps.\n */\nfunction useFeatures(props, visualElement, preloadedFeatures) {\n var features = [];\n var lazyContext = useContext(LazyContext);\n if (!visualElement)\n return null;\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 lazyContext.strict) {\n invariant(false, \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\");\n }\n for (var i = 0; i < numFeatures; i++) {\n var name_1 = featureNames[i];\n var _a = featureDefinitions[name_1], isEnabled = _a.isEnabled, Component = _a.Component;\n /**\n * It might be possible in the future to use this moment to\n * dynamically request functionality. In initial tests this\n * was producing a lot of duplication amongst bundles.\n */\n if (isEnabled(props) && Component) {\n features.push(React.createElement(Component, __assign({ key: name_1 }, props, { visualElement: visualElement })));\n }\n }\n return features;\n}\n\nexport { useFeatures };\n","import { __read } from 'tslib';\nimport { useState, useContext } from 'react';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { isBrowser } from './is-browser.mjs';\n\n// Does this device prefer reduced motion? Returns `null` server-side.\nvar prefersReducedMotion = { current: null };\nvar hasDetected = false;\nfunction initPrefersReducedMotion() {\n hasDetected = true;\n if (!isBrowser)\n return;\n if (window.matchMedia) {\n var motionMediaQuery_1 = window.matchMedia(\"(prefers-reduced-motion)\");\n var setReducedMotionPreferences = function () {\n return (prefersReducedMotion.current = motionMediaQuery_1.matches);\n };\n motionMediaQuery_1.addListener(setReducedMotionPreferences);\n setReducedMotionPreferences();\n }\n else {\n prefersReducedMotion.current = false;\n }\n}\n/**\n * A hook that returns `true` if we should be using reduced motion based on the current device's Reduced Motion setting.\n *\n * This can be used to implement changes to your UI based on Reduced Motion. For instance, replacing motion-sickness inducing\n * `x`/`y` animations with `opacity`, disabling the autoplay of background videos, or turning off parallax motion.\n *\n * It will actively respond to changes and re-render your components with the latest setting.\n *\n * ```jsx\n * export function Sidebar({ isOpen }) {\n * const shouldReduceMotion = useReducedMotion()\n * const closedX = shouldReduceMotion ? 0 : \"-100%\"\n *\n * return (\n *