motion-v 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/dist/cjs/index.js +7637 -1
  2. package/dist/es/animation/use-animate.mjs +25 -15
  3. package/dist/es/components/AnimatePresence.vue.mjs +57 -39
  4. package/dist/es/components/AnimatePresence.vue2.mjs +2 -2
  5. package/dist/es/components/LayoutGroup.vue.mjs +39 -0
  6. package/dist/es/components/LayoutGroup.vue2.mjs +4 -0
  7. package/dist/es/components/Motion.vue.mjs +87 -57
  8. package/dist/es/components/Motion.vue2.mjs +2 -2
  9. package/dist/es/components/Primitive.mjs +15 -9
  10. package/dist/es/components/Slot.mjs +28 -19
  11. package/dist/es/components/context.mjs +15 -4
  12. package/dist/es/components/group.mjs +30 -0
  13. package/dist/es/components/presence.mjs +13 -10
  14. package/dist/es/components/renderSlotFragments.mjs +10 -4
  15. package/dist/es/components/use-force-update.mjs +11 -0
  16. package/dist/es/constants/index.mjs +13 -6
  17. package/dist/es/features/events.mjs +59 -43
  18. package/dist/es/features/feature-manager.mjs +20 -17
  19. package/dist/es/features/feature.mjs +4 -4
  20. package/dist/es/features/gestures/base.mjs +12 -7
  21. package/dist/es/features/gestures/hover.mjs +25 -16
  22. package/dist/es/features/gestures/in-view.mjs +21 -15
  23. package/dist/es/features/gestures/press.mjs +22 -13
  24. package/dist/es/features/layout/config.mjs +21 -0
  25. package/dist/es/features/layout/layout.mjs +74 -0
  26. package/dist/es/features/layout/utils.mjs +8 -0
  27. package/dist/es/features/svg.mjs +14 -13
  28. package/dist/es/index.mjs +119 -102
  29. package/dist/es/node_modules/.pnpm/@vueuse_shared@12.0.0_typescript@5.5.4/node_modules/@vueuse/shared/index.mjs +6 -0
  30. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/GroupPlaybackControls.mjs +38 -28
  31. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animate/index.mjs +22 -15
  32. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animate/resolve-subjects.mjs +13 -5
  33. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animate/sequence.mjs +11 -9
  34. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animate/single-value.mjs +8 -7
  35. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animate/subject.mjs +32 -24
  36. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/AcceleratedAnimation.mjs +178 -137
  37. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/BaseAnimation.mjs +53 -37
  38. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/MainThreadAnimation.mjs +227 -100
  39. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/drivers/driver-frameloop.mjs +8 -8
  40. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/utils/accelerated-values.mjs +2 -2
  41. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/utils/can-animate.mjs +26 -19
  42. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/NativeAnimation.mjs +112 -56
  43. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/animate-elements.mjs +25 -18
  44. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/animate-style.mjs +10 -9
  45. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/easing.mjs +27 -17
  46. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs +15 -12
  47. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/attach-timeline.mjs +4 -3
  48. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs +6 -5
  49. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/linear.mjs +10 -8
  50. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/memo-supports.mjs +7 -7
  51. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/style.mjs +6 -6
  52. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-flags.mjs +2 -2
  53. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-linear-easing.mjs +6 -6
  54. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-partial-keyframes.mjs +6 -6
  55. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-waapi.mjs +3 -3
  56. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/inertia.mjs +58 -28
  57. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs +28 -21
  58. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs +71 -43
  59. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs +64 -48
  60. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs +12 -10
  61. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/utils/is-generator.mjs +3 -3
  62. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs +6 -6
  63. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs +64 -37
  64. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs +48 -34
  65. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs +5 -4
  66. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs +4 -4
  67. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/sequence/create.mjs +133 -86
  68. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/sequence/utils/calc-time.mjs +12 -4
  69. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/sequence/utils/edit.mjs +20 -16
  70. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/sequence/utils/sort.mjs +11 -3
  71. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/create-visual-element.mjs +19 -15
  72. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs +19 -8
  73. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/get-value-transition.mjs +3 -3
  74. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs +14 -5
  75. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs +3 -3
  76. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/is-dom-keyframes.mjs +3 -3
  77. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs +4 -2
  78. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/is-none.mjs +10 -4
  79. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/is-transition-defined.mjs +3 -3
  80. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/stagger.mjs +18 -16
  81. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/anticipate.mjs +3 -3
  82. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/back.mjs +9 -7
  83. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/circ.mjs +8 -6
  84. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs +24 -14
  85. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/ease.mjs +7 -5
  86. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs +2 -2
  87. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs +2 -2
  88. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/steps.mjs +8 -7
  89. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/utils/create-generator-easing.mjs +8 -7
  90. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/utils/get-easing-for-segment.mjs +5 -5
  91. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs +2 -2
  92. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs +4 -2
  93. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/utils/map.mjs +32 -29
  94. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/events/add-dom-event.mjs +7 -0
  95. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/batcher.mjs +57 -21
  96. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/frame.mjs +7 -7
  97. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/index-legacy.mjs +9 -5
  98. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/microtask.mjs +6 -0
  99. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/render-step.mjs +41 -19
  100. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/sync-time.mjs +16 -10
  101. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/motion/features/definitions.mjs +8 -6
  102. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs +5 -5
  103. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs +60 -0
  104. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs +14 -13
  105. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/copy.mjs +19 -0
  106. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs +81 -0
  107. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs +55 -0
  108. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs +40 -0
  109. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/models.mjs +18 -5
  110. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/utils.mjs +34 -0
  111. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs +13 -0
  112. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs +28 -0
  113. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs +1086 -0
  114. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/node/state.mjs +15 -0
  115. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/shared/stack.mjs +94 -0
  116. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs +26 -0
  117. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs +25 -0
  118. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs +6 -2
  119. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/styles/transform.mjs +36 -0
  120. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs +6 -0
  121. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs +20 -0
  122. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/utils/measure.mjs +4 -4
  123. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/VisualElement.mjs +263 -117
  124. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/DOMKeyframesResolver.mjs +81 -45
  125. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs +13 -11
  126. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/resize/handle-element.mjs +49 -33
  127. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/resize/handle-window.mjs +22 -14
  128. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/resize/index.mjs +5 -5
  129. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/index.mjs +53 -36
  130. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/info.mjs +29 -16
  131. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/observe.mjs +14 -8
  132. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/edge.mjs +25 -9
  133. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/index.mjs +32 -20
  134. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/inset.mjs +32 -21
  135. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/offset.mjs +20 -6
  136. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/presets.mjs +2 -2
  137. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/on-scroll-handler.mjs +31 -15
  138. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/supports.mjs +3 -3
  139. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/track.mjs +60 -33
  140. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs +2 -2
  141. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs +21 -21
  142. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs +12 -3
  143. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs +3 -3
  144. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/utils/resolve-element.mjs +20 -9
  145. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs +47 -34
  146. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs +9 -7
  147. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs +21 -20
  148. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs +8 -7
  149. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs +7 -6
  150. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs +4 -2
  151. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/number-browser.mjs +34 -34
  152. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs +14 -14
  153. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs +2 -2
  154. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/transform.mjs +28 -28
  155. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs +4 -4
  156. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs +4 -4
  157. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/viewport/index.mjs +29 -17
  158. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs +41 -32
  159. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs +33 -20
  160. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs +36 -20
  161. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/utils/make-none-animatable.mjs +18 -12
  162. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/utils/render.mjs +6 -5
  163. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs +13 -9
  164. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/utils/transform.mjs +5 -4
  165. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/object/ObjectVisualElement.mjs +24 -20
  166. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/store.mjs +2 -2
  167. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs +33 -28
  168. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs +40 -20
  169. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs +2 -2
  170. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs +2 -2
  171. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/utils/path.mjs +12 -10
  172. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/utils/render.mjs +9 -8
  173. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs +12 -11
  174. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs +8 -7
  175. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/KeyframesResolver.mjs +105 -47
  176. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs +4 -0
  177. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs +24 -0
  178. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs +9 -9
  179. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs +3 -3
  180. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/motion-values.mjs +31 -20
  181. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs +5 -5
  182. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs +19 -14
  183. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/setters.mjs +17 -13
  184. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/variant-props.mjs +5 -4
  185. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/GlobalConfig.mjs +4 -4
  186. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/array.mjs +9 -7
  187. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/clamp.mjs +8 -2
  188. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/delay.mjs +17 -12
  189. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/distance.mjs +7 -6
  190. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/errors.mjs +17 -10
  191. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs +32 -15
  192. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/interpolate.mjs +42 -31
  193. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/is-browser.mjs +2 -2
  194. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs +2 -2
  195. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs +2 -2
  196. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/memo.mjs +8 -4
  197. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/color.mjs +40 -25
  198. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/complex.mjs +73 -41
  199. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/immediate.mjs +3 -3
  200. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/index.mjs +9 -5
  201. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/number.mjs +4 -2
  202. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/visibility.mjs +9 -5
  203. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/noop.mjs +2 -2
  204. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/offsets/default.mjs +6 -5
  205. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/offsets/fill.mjs +8 -8
  206. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/offsets/time.mjs +3 -3
  207. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/pipe.mjs +3 -2
  208. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/progress.mjs +4 -4
  209. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs +15 -10
  210. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs +4 -3
  211. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/resolve-value.mjs +9 -3
  212. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/subscription-manager.mjs +18 -15
  213. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/time-conversion.mjs +4 -3
  214. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/transform.mjs +17 -8
  215. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs +3 -3
  216. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/warn-once.mjs +7 -4
  217. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/wrap.mjs +4 -4
  218. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/index.mjs +125 -53
  219. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/color/hex.mjs +32 -14
  220. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/color/hsla.mjs +11 -9
  221. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/color/index.mjs +18 -8
  222. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/color/rgba.mjs +15 -13
  223. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/color/utils.mjs +16 -13
  224. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/complex/filter.mjs +22 -19
  225. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/complex/index.mjs +71 -36
  226. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/numbers/index.mjs +14 -12
  227. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/numbers/units.mjs +19 -13
  228. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/utils/color-regex.mjs +2 -2
  229. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/utils/float-regex.mjs +2 -2
  230. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/utils/is-nullish.mjs +3 -3
  231. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/utils/sanitize.mjs +2 -2
  232. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/utils/single-color-regex.mjs +2 -2
  233. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/use-will-change/add-will-change.mjs +7 -6
  234. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/use-will-change/is.mjs +4 -4
  235. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs +2 -2
  236. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs +9 -0
  237. package/dist/es/node_modules/.pnpm/hey-listen@1.0.8/node_modules/hey-listen/dist/hey-listen.es.mjs +17 -10
  238. package/dist/es/state/create-visual-element.mjs +9 -0
  239. package/dist/es/state/event.mjs +3 -3
  240. package/dist/es/state/motion-state.mjs +145 -91
  241. package/dist/es/state/schedule.mjs +23 -15
  242. package/dist/es/state/style.mjs +105 -81
  243. package/dist/es/state/transform.mjs +37 -29
  244. package/dist/es/state/utils.mjs +51 -45
  245. package/dist/es/utils/createContext.mjs +19 -11
  246. package/dist/es/utils/events.mjs +4 -4
  247. package/dist/es/utils/motion-value.mjs +3 -3
  248. package/dist/es/utils/use-animation-frame.mjs +17 -11
  249. package/dist/es/utils/use-in-view.mjs +20 -14
  250. package/dist/es/value/use-combine-values.mjs +22 -17
  251. package/dist/es/value/use-computed.mjs +17 -10
  252. package/dist/es/value/use-motion-template.mjs +17 -14
  253. package/dist/es/value/use-motion-value-event.mjs +11 -0
  254. package/dist/es/value/use-scroll.mjs +42 -33
  255. package/dist/es/value/use-spring.mjs +48 -28
  256. package/dist/es/value/use-time.mjs +7 -6
  257. package/dist/es/value/use-transform.mjs +24 -20
  258. package/dist/es/value/use-velocity.mjs +20 -0
  259. package/dist/src/components/LayoutGroup.d.ts +30 -0
  260. package/dist/src/components/context.d.ts +17 -0
  261. package/dist/src/components/group.d.ts +7 -0
  262. package/dist/src/components/use-force-update.d.ts +2 -0
  263. package/dist/src/features/index.d.ts +1 -0
  264. package/dist/src/features/layout/config.d.ts +8 -0
  265. package/dist/src/features/layout/layout.d.ts +10 -0
  266. package/dist/src/features/layout/types.d.ts +7 -0
  267. package/dist/src/features/layout/utils.d.ts +4 -0
  268. package/dist/src/index.d.ts +2 -0
  269. package/dist/src/state/create-visual-element.d.ts +1 -0
  270. package/dist/src/state/motion-state.d.ts +1 -2
  271. package/dist/src/types/state.d.ts +2 -1
  272. package/dist/src/value/index.d.ts +4 -0
  273. package/package.json +2 -1
  274. package/dist/es/node_modules/.pnpm/@vueuse_shared@11.1.0_vue@3.4.38_typescript@5.5.4_/node_modules/@vueuse/shared/index.mjs +0 -6
  275. package/dist/src/components/usePrimitiveElement.d.ts +0 -5
@@ -1,26 +1,46 @@
1
- import { buildHTMLStyles as b } from "../../html/utils/build-styles.mjs";
2
- import { calcSVGTransformOrigin as p } from "./transform-origin.mjs";
3
- import { buildSVGPath as v } from "./path.mjs";
4
- function S(f, {
5
- attrX: o,
6
- attrY: s,
7
- attrScale: m,
8
- originX: i,
9
- originY: e,
10
- pathLength: u,
11
- pathSpacing: l = 1,
12
- pathOffset: t = 0,
1
+ import { buildHTMLStyles } from "../../html/utils/build-styles.mjs";
2
+ import { calcSVGTransformOrigin } from "./transform-origin.mjs";
3
+ import { buildSVGPath } from "./path.mjs";
4
+ function buildSVGAttrs(state, {
5
+ attrX,
6
+ attrY,
7
+ attrScale,
8
+ originX,
9
+ originY,
10
+ pathLength,
11
+ pathSpacing = 1,
12
+ pathOffset = 0,
13
13
  // This is object creation, which we try to avoid per-frame.
14
- ...y
15
- }, x, c) {
16
- if (b(f, y, c), x) {
17
- f.style.viewBox && (f.attrs.viewBox = f.style.viewBox);
14
+ ...latest
15
+ }, isSVGTag, transformTemplate) {
16
+ buildHTMLStyles(state, latest, transformTemplate);
17
+ if (isSVGTag) {
18
+ if (state.style.viewBox) {
19
+ state.attrs.viewBox = state.style.viewBox;
20
+ }
18
21
  return;
19
22
  }
20
- f.attrs = f.style, f.style = {};
21
- const { attrs: n, style: r, dimensions: d } = f;
22
- n.transform && (d && (r.transform = n.transform), delete n.transform), d && (i !== void 0 || e !== void 0 || r.transform) && (r.transformOrigin = p(d, i !== void 0 ? i : 0.5, e !== void 0 ? e : 0.5)), o !== void 0 && (n.x = o), s !== void 0 && (n.y = s), m !== void 0 && (n.scale = m), u !== void 0 && v(n, u, l, t, !1);
23
+ state.attrs = state.style;
24
+ state.style = {};
25
+ const { attrs, style, dimensions } = state;
26
+ if (attrs.transform) {
27
+ if (dimensions)
28
+ style.transform = attrs.transform;
29
+ delete attrs.transform;
30
+ }
31
+ if (dimensions && (originX !== void 0 || originY !== void 0 || style.transform)) {
32
+ style.transformOrigin = calcSVGTransformOrigin(dimensions, originX !== void 0 ? originX : 0.5, originY !== void 0 ? originY : 0.5);
33
+ }
34
+ if (attrX !== void 0)
35
+ attrs.x = attrX;
36
+ if (attrY !== void 0)
37
+ attrs.y = attrY;
38
+ if (attrScale !== void 0)
39
+ attrs.scale = attrScale;
40
+ if (pathLength !== void 0) {
41
+ buildSVGPath(attrs, pathLength, pathSpacing, pathOffset, false);
42
+ }
23
43
  }
24
44
  export {
25
- S as buildSVGAttrs
45
+ buildSVGAttrs
26
46
  };
@@ -1,4 +1,4 @@
1
- const e = /* @__PURE__ */ new Set([
1
+ const camelCaseAttributes = /* @__PURE__ */ new Set([
2
2
  "baseFrequency",
3
3
  "diffuseConstant",
4
4
  "kernelMatrix",
@@ -24,5 +24,5 @@ const e = /* @__PURE__ */ new Set([
24
24
  "lengthAdjust"
25
25
  ]);
26
26
  export {
27
- e as camelCaseAttributes
27
+ camelCaseAttributes
28
28
  };
@@ -1,4 +1,4 @@
1
- const s = (o) => typeof o == "string" && o.toLowerCase() === "svg";
1
+ const isSVGTag = (tag) => typeof tag === "string" && tag.toLowerCase() === "svg";
2
2
  export {
3
- s as isSVGTag
3
+ isSVGTag
4
4
  };
@@ -1,18 +1,20 @@
1
- import { px as t } from "../../../value/types/numbers/units.mjs";
2
- const c = {
1
+ import { px } from "../../../value/types/numbers/units.mjs";
2
+ const dashKeys = {
3
3
  offset: "stroke-dashoffset",
4
4
  array: "stroke-dasharray"
5
- }, y = {
5
+ };
6
+ const camelKeys = {
6
7
  offset: "strokeDashoffset",
7
8
  array: "strokeDasharray"
8
9
  };
9
- function m(s, r, o = 1, e = 0, f = !0) {
10
- s.pathLength = 1;
11
- const a = f ? c : y;
12
- s[a.offset] = t.transform(-e);
13
- const n = t.transform(r), h = t.transform(o);
14
- s[a.array] = `${n} ${h}`;
10
+ function buildSVGPath(attrs, length, spacing = 1, offset = 0, useDashCase = true) {
11
+ attrs.pathLength = 1;
12
+ const keys = useDashCase ? dashKeys : camelKeys;
13
+ attrs[keys.offset] = px.transform(-offset);
14
+ const pathLength = px.transform(length);
15
+ const pathSpacing = px.transform(spacing);
16
+ attrs[keys.array] = `${pathLength} ${pathSpacing}`;
15
17
  }
16
18
  export {
17
- m as buildSVGPath
19
+ buildSVGPath
18
20
  };
@@ -1,11 +1,12 @@
1
- import { camelToDash as i } from "../../dom/utils/camel-to-dash.mjs";
2
- import { renderHTML as m } from "../../html/utils/render.mjs";
3
- import { camelCaseAttributes as e } from "./camel-case-attrs.mjs";
4
- function c(o, t, f, s) {
5
- m(o, t, void 0, s);
6
- for (const r in t.attrs)
7
- o.setAttribute(e.has(r) ? r : i(r), t.attrs[r]);
1
+ import { camelToDash } from "../../dom/utils/camel-to-dash.mjs";
2
+ import { renderHTML } from "../../html/utils/render.mjs";
3
+ import { camelCaseAttributes } from "./camel-case-attrs.mjs";
4
+ function renderSVG(element, renderState, _styleProp, projection) {
5
+ renderHTML(element, renderState, void 0, projection);
6
+ for (const key in renderState.attrs) {
7
+ element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]);
8
+ }
8
9
  }
9
10
  export {
10
- c as renderSVG
11
+ renderSVG
11
12
  };
@@ -1,15 +1,16 @@
1
- import { isMotionValue as n } from "../../../value/utils/is-motion-value.mjs";
2
- import { scrapeMotionValuesFromProps as i } from "../../html/utils/scrape-motion-values.mjs";
3
- import { transformPropOrder as m } from "../../html/utils/transform.mjs";
4
- function l(r, t, s) {
5
- const e = i(r, t, s);
6
- for (const o in r)
7
- if (n(r[o]) || n(t[o])) {
8
- const a = m.indexOf(o) !== -1 ? "attr" + o.charAt(0).toUpperCase() + o.substring(1) : o;
9
- e[a] = r[o];
1
+ import { isMotionValue } from "../../../value/utils/is-motion-value.mjs";
2
+ import { scrapeMotionValuesFromProps as scrapeMotionValuesFromProps$1 } from "../../html/utils/scrape-motion-values.mjs";
3
+ import { transformPropOrder } from "../../html/utils/transform.mjs";
4
+ function scrapeMotionValuesFromProps(props, prevProps, visualElement) {
5
+ const newValues = scrapeMotionValuesFromProps$1(props, prevProps, visualElement);
6
+ for (const key in props) {
7
+ if (isMotionValue(props[key]) || isMotionValue(prevProps[key])) {
8
+ const targetKey = transformPropOrder.indexOf(key) !== -1 ? "attr" + key.charAt(0).toUpperCase() + key.substring(1) : key;
9
+ newValues[targetKey] = props[key];
10
10
  }
11
- return e;
11
+ }
12
+ return newValues;
12
13
  }
13
14
  export {
14
- l as scrapeMotionValuesFromProps
15
+ scrapeMotionValuesFromProps
15
16
  };
@@ -1,11 +1,12 @@
1
- import { px as o } from "../../../value/types/numbers/units.mjs";
2
- function n(r, t, c) {
3
- return typeof r == "string" ? r : o.transform(t + c * r);
1
+ import { px } from "../../../value/types/numbers/units.mjs";
2
+ function calcOrigin(origin, offset, size) {
3
+ return typeof origin === "string" ? origin : px.transform(offset + size * origin);
4
4
  }
5
- function a(r, t, c) {
6
- const f = n(t, r.x, r.width), p = n(c, r.y, r.height);
7
- return `${f} ${p}`;
5
+ function calcSVGTransformOrigin(dimensions, originX, originY) {
6
+ const pxOriginX = calcOrigin(originX, dimensions.x, dimensions.width);
7
+ const pxOriginY = calcOrigin(originY, dimensions.y, dimensions.height);
8
+ return `${pxOriginX} ${pxOriginY}`;
8
9
  }
9
10
  export {
10
- a as calcSVGTransformOrigin
11
+ calcSVGTransformOrigin
11
12
  };
@@ -1,56 +1,108 @@
1
- import { removeNonTranslationalTransform as y } from "../dom/utils/unit-conversion.mjs";
2
- import { frame as u } from "../../frameloop/frame.mjs";
3
- const n = /* @__PURE__ */ new Set();
4
- let d = !1, m = !1;
5
- function h() {
6
- if (m) {
7
- const r = Array.from(n).filter((e) => e.needsMeasurement), s = new Set(r.map((e) => e.element)), l = /* @__PURE__ */ new Map();
8
- s.forEach((e) => {
9
- const t = y(e);
10
- t.length && (l.set(e, t), e.render());
11
- }), r.forEach((e) => e.measureInitialState()), s.forEach((e) => {
12
- e.render();
13
- const t = l.get(e);
14
- t && t.forEach(([a, i]) => {
15
- var o;
16
- (o = e.getValue(a)) === null || o === void 0 || o.set(i);
17
- });
18
- }), r.forEach((e) => e.measureEndState()), r.forEach((e) => {
19
- e.suspendedScrollY !== void 0 && window.scrollTo(0, e.suspendedScrollY);
1
+ import { removeNonTranslationalTransform } from "../dom/utils/unit-conversion.mjs";
2
+ import { frame } from "../../frameloop/frame.mjs";
3
+ const toResolve = /* @__PURE__ */ new Set();
4
+ let isScheduled = false;
5
+ let anyNeedsMeasurement = false;
6
+ function measureAllKeyframes() {
7
+ if (anyNeedsMeasurement) {
8
+ const resolversToMeasure = Array.from(toResolve).filter((resolver) => resolver.needsMeasurement);
9
+ const elementsToMeasure = new Set(resolversToMeasure.map((resolver) => resolver.element));
10
+ const transformsToRestore = /* @__PURE__ */ new Map();
11
+ elementsToMeasure.forEach((element) => {
12
+ const removedTransforms = removeNonTranslationalTransform(element);
13
+ if (!removedTransforms.length)
14
+ return;
15
+ transformsToRestore.set(element, removedTransforms);
16
+ element.render();
17
+ });
18
+ resolversToMeasure.forEach((resolver) => resolver.measureInitialState());
19
+ elementsToMeasure.forEach((element) => {
20
+ element.render();
21
+ const restore = transformsToRestore.get(element);
22
+ if (restore) {
23
+ restore.forEach(([key, value]) => {
24
+ var _a;
25
+ (_a = element.getValue(key)) === null || _a === void 0 ? void 0 : _a.set(value);
26
+ });
27
+ }
28
+ });
29
+ resolversToMeasure.forEach((resolver) => resolver.measureEndState());
30
+ resolversToMeasure.forEach((resolver) => {
31
+ if (resolver.suspendedScrollY !== void 0) {
32
+ window.scrollTo(0, resolver.suspendedScrollY);
33
+ }
20
34
  });
21
35
  }
22
- m = !1, d = !1, n.forEach((r) => r.complete()), n.clear();
36
+ anyNeedsMeasurement = false;
37
+ isScheduled = false;
38
+ toResolve.forEach((resolver) => resolver.complete());
39
+ toResolve.clear();
23
40
  }
24
- function c() {
25
- n.forEach((r) => {
26
- r.readKeyframes(), r.needsMeasurement && (m = !0);
41
+ function readAllKeyframes() {
42
+ toResolve.forEach((resolver) => {
43
+ resolver.readKeyframes();
44
+ if (resolver.needsMeasurement) {
45
+ anyNeedsMeasurement = true;
46
+ }
27
47
  });
28
48
  }
29
- function K() {
30
- c(), h();
49
+ function flushKeyframeResolvers() {
50
+ readAllKeyframes();
51
+ measureAllKeyframes();
31
52
  }
32
- class S {
33
- constructor(s, l, e, t, a, i = !1) {
34
- this.isComplete = !1, this.isAsync = !1, this.needsMeasurement = !1, this.isScheduled = !1, this.unresolvedKeyframes = [...s], this.onComplete = l, this.name = e, this.motionValue = t, this.element = a, this.isAsync = i;
53
+ class KeyframeResolver {
54
+ constructor(unresolvedKeyframes, onComplete, name, motionValue, element, isAsync = false) {
55
+ this.isComplete = false;
56
+ this.isAsync = false;
57
+ this.needsMeasurement = false;
58
+ this.isScheduled = false;
59
+ this.unresolvedKeyframes = [...unresolvedKeyframes];
60
+ this.onComplete = onComplete;
61
+ this.name = name;
62
+ this.motionValue = motionValue;
63
+ this.element = element;
64
+ this.isAsync = isAsync;
35
65
  }
36
66
  scheduleResolve() {
37
- this.isScheduled = !0, this.isAsync ? (n.add(this), d || (d = !0, u.read(c), u.resolveKeyframes(h))) : (this.readKeyframes(), this.complete());
67
+ this.isScheduled = true;
68
+ if (this.isAsync) {
69
+ toResolve.add(this);
70
+ if (!isScheduled) {
71
+ isScheduled = true;
72
+ frame.read(readAllKeyframes);
73
+ frame.resolveKeyframes(measureAllKeyframes);
74
+ }
75
+ } else {
76
+ this.readKeyframes();
77
+ this.complete();
78
+ }
38
79
  }
39
80
  readKeyframes() {
40
- const { unresolvedKeyframes: s, name: l, element: e, motionValue: t } = this;
41
- for (let a = 0; a < s.length; a++)
42
- if (s[a] === null)
43
- if (a === 0) {
44
- const i = t == null ? void 0 : t.get(), o = s[s.length - 1];
45
- if (i !== void 0)
46
- s[0] = i;
47
- else if (e && l) {
48
- const f = e.readValue(l, o);
49
- f != null && (s[0] = f);
81
+ const { unresolvedKeyframes, name, element, motionValue } = this;
82
+ for (let i = 0; i < unresolvedKeyframes.length; i++) {
83
+ if (unresolvedKeyframes[i] === null) {
84
+ if (i === 0) {
85
+ const currentValue = motionValue === null || motionValue === void 0 ? void 0 : motionValue.get();
86
+ const finalKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];
87
+ if (currentValue !== void 0) {
88
+ unresolvedKeyframes[0] = currentValue;
89
+ } else if (element && name) {
90
+ const valueAsRead = element.readValue(name, finalKeyframe);
91
+ if (valueAsRead !== void 0 && valueAsRead !== null) {
92
+ unresolvedKeyframes[0] = valueAsRead;
93
+ }
94
+ }
95
+ if (unresolvedKeyframes[0] === void 0) {
96
+ unresolvedKeyframes[0] = finalKeyframe;
97
+ }
98
+ if (motionValue && currentValue === void 0) {
99
+ motionValue.set(unresolvedKeyframes[0]);
50
100
  }
51
- s[0] === void 0 && (s[0] = o), t && i === void 0 && t.set(s[0]);
52
- } else
53
- s[a] = s[a - 1];
101
+ } else {
102
+ unresolvedKeyframes[i] = unresolvedKeyframes[i - 1];
103
+ }
104
+ }
105
+ }
54
106
  }
55
107
  setFinalKeyframe() {
56
108
  }
@@ -61,16 +113,22 @@ class S {
61
113
  measureEndState() {
62
114
  }
63
115
  complete() {
64
- this.isComplete = !0, this.onComplete(this.unresolvedKeyframes, this.finalKeyframe), n.delete(this);
116
+ this.isComplete = true;
117
+ this.onComplete(this.unresolvedKeyframes, this.finalKeyframe);
118
+ toResolve.delete(this);
65
119
  }
66
120
  cancel() {
67
- this.isComplete || (this.isScheduled = !1, n.delete(this));
121
+ if (!this.isComplete) {
122
+ this.isScheduled = false;
123
+ toResolve.delete(this);
124
+ }
68
125
  }
69
126
  resume() {
70
- this.isComplete || this.scheduleResolve();
127
+ if (!this.isComplete)
128
+ this.scheduleResolve();
71
129
  }
72
130
  }
73
131
  export {
74
- S as KeyframeResolver,
75
- K as flushKeyframeResolvers
132
+ KeyframeResolver,
133
+ flushKeyframeResolvers
76
134
  };
@@ -0,0 +1,4 @@
1
+ const compareByDepth = (a, b) => a.depth - b.depth;
2
+ export {
3
+ compareByDepth
4
+ };
@@ -0,0 +1,24 @@
1
+ import { addUniqueItem, removeItem } from "../../utils/array.mjs";
2
+ import { compareByDepth } from "./compare-by-depth.mjs";
3
+ class FlatTree {
4
+ constructor() {
5
+ this.children = [];
6
+ this.isDirty = false;
7
+ }
8
+ add(child) {
9
+ addUniqueItem(this.children, child);
10
+ this.isDirty = true;
11
+ }
12
+ remove(child) {
13
+ removeItem(this.children, child);
14
+ this.isDirty = true;
15
+ }
16
+ forEach(callback) {
17
+ this.isDirty && this.children.sort(compareByDepth);
18
+ this.isDirty = false;
19
+ this.children.forEach(callback);
20
+ }
21
+ }
22
+ export {
23
+ FlatTree
24
+ };
@@ -1,13 +1,13 @@
1
- import { isAnimationControls as o } from "../../animation/utils/is-animation-controls.mjs";
2
- import { isVariantLabel as r } from "./is-variant-label.mjs";
3
- import { variantProps as t } from "./variant-props.mjs";
4
- function a(i) {
5
- return o(i.animate) || t.some((n) => r(i[n]));
1
+ import { isAnimationControls } from "../../animation/utils/is-animation-controls.mjs";
2
+ import { isVariantLabel } from "./is-variant-label.mjs";
3
+ import { variantProps } from "./variant-props.mjs";
4
+ function isControllingVariants(props) {
5
+ return isAnimationControls(props.animate) || variantProps.some((name) => isVariantLabel(props[name]));
6
6
  }
7
- function f(i) {
8
- return !!(a(i) || i.variants);
7
+ function isVariantNode(props) {
8
+ return Boolean(isControllingVariants(props) || props.variants);
9
9
  }
10
10
  export {
11
- a as isControllingVariants,
12
- f as isVariantNode
11
+ isControllingVariants,
12
+ isVariantNode
13
13
  };
@@ -1,6 +1,6 @@
1
- function t(r) {
2
- return typeof r == "string" || Array.isArray(r);
1
+ function isVariantLabel(v) {
2
+ return typeof v === "string" || Array.isArray(v);
3
3
  }
4
4
  export {
5
- t as isVariantLabel
5
+ isVariantLabel
6
6
  };
@@ -1,26 +1,37 @@
1
- import { warnOnce as f } from "../../utils/warn-once.mjs";
2
- import { motionValue as n } from "../../value/index.mjs";
3
- import { isMotionValue as u } from "../../value/utils/is-motion-value.mjs";
4
- function c(e, t, r) {
5
- for (const o in t) {
6
- const i = t[o], s = r[o];
7
- if (u(i))
8
- e.addValue(o, i), process.env.NODE_ENV === "development" && f(i.version === "11.11.11", `Attempting to mix Framer Motion versions ${i.version} with 11.11.11 may not work as expected.`);
9
- else if (u(s))
10
- e.addValue(o, n(i, { owner: e }));
11
- else if (s !== i)
12
- if (e.hasValue(o)) {
13
- const a = e.getValue(o);
14
- a.liveStyle === !0 ? a.jump(i) : a.hasAnimated || a.set(i);
1
+ import { warnOnce } from "../../utils/warn-once.mjs";
2
+ import { motionValue } from "../../value/index.mjs";
3
+ import { isMotionValue } from "../../value/utils/is-motion-value.mjs";
4
+ function updateMotionValuesFromProps(element, next, prev) {
5
+ for (const key in next) {
6
+ const nextValue = next[key];
7
+ const prevValue = prev[key];
8
+ if (isMotionValue(nextValue)) {
9
+ element.addValue(key, nextValue);
10
+ if (process.env.NODE_ENV === "development") {
11
+ warnOnce(nextValue.version === "11.11.11", `Attempting to mix Framer Motion versions ${nextValue.version} with 11.11.11 may not work as expected.`);
12
+ }
13
+ } else if (isMotionValue(prevValue)) {
14
+ element.addValue(key, motionValue(nextValue, { owner: element }));
15
+ } else if (prevValue !== nextValue) {
16
+ if (element.hasValue(key)) {
17
+ const existingValue = element.getValue(key);
18
+ if (existingValue.liveStyle === true) {
19
+ existingValue.jump(nextValue);
20
+ } else if (!existingValue.hasAnimated) {
21
+ existingValue.set(nextValue);
22
+ }
15
23
  } else {
16
- const a = e.getStaticValue(o);
17
- e.addValue(o, n(a !== void 0 ? a : i, { owner: e }));
24
+ const latestValue = element.getStaticValue(key);
25
+ element.addValue(key, motionValue(latestValue !== void 0 ? latestValue : nextValue, { owner: element }));
18
26
  }
27
+ }
28
+ }
29
+ for (const key in prev) {
30
+ if (next[key] === void 0)
31
+ element.removeValue(key);
19
32
  }
20
- for (const o in r)
21
- t[o] === void 0 && e.removeValue(o);
22
- return t;
33
+ return next;
23
34
  }
24
35
  export {
25
- c as updateMotionValuesFromProps
36
+ updateMotionValuesFromProps
26
37
  };
@@ -1,8 +1,8 @@
1
- import { resolveVariantFromProps as s } from "./resolve-variants.mjs";
2
- function n(o, t, p) {
3
- const r = o.getProps();
4
- return s(r, t, r.custom, o);
1
+ import { resolveVariantFromProps } from "./resolve-variants.mjs";
2
+ function resolveVariant(visualElement, definition, custom) {
3
+ const props = visualElement.getProps();
4
+ return resolveVariantFromProps(props, definition, props.custom, visualElement);
5
5
  }
6
6
  export {
7
- n as resolveVariant
7
+ resolveVariant
8
8
  };
@@ -1,20 +1,25 @@
1
- function o(r) {
2
- const t = [{}, {}];
3
- return r == null || r.values.forEach((c, u) => {
4
- t[0][u] = c.get(), t[1][u] = c.getVelocity();
5
- }), t;
1
+ function getValueState(visualElement) {
2
+ const state = [{}, {}];
3
+ visualElement === null || visualElement === void 0 ? void 0 : visualElement.values.forEach((value, key) => {
4
+ state[0][key] = value.get();
5
+ state[1][key] = value.getVelocity();
6
+ });
7
+ return state;
6
8
  }
7
- function y(r, t, c, u) {
8
- if (typeof t == "function") {
9
- const [a, e] = o(u);
10
- t = t(c !== void 0 ? c : r.custom, a, e);
9
+ function resolveVariantFromProps(props, definition, custom, visualElement) {
10
+ if (typeof definition === "function") {
11
+ const [current, velocity] = getValueState(visualElement);
12
+ definition = definition(custom !== void 0 ? custom : props.custom, current, velocity);
11
13
  }
12
- if (typeof t == "string" && (t = r.variants && r.variants[t]), typeof t == "function") {
13
- const [a, e] = o(u);
14
- t = t(c !== void 0 ? c : r.custom, a, e);
14
+ if (typeof definition === "string") {
15
+ definition = props.variants && props.variants[definition];
15
16
  }
16
- return t;
17
+ if (typeof definition === "function") {
18
+ const [current, velocity] = getValueState(visualElement);
19
+ definition = definition(custom !== void 0 ? custom : props.custom, current, velocity);
20
+ }
21
+ return definition;
17
22
  }
18
23
  export {
19
- y as resolveVariantFromProps
24
+ resolveVariantFromProps
20
25
  };
@@ -1,18 +1,22 @@
1
- import { resolveFinalValueInKeyframes as s } from "../../utils/resolve-value.mjs";
2
- import { motionValue as f } from "../../value/index.mjs";
3
- import { resolveVariant as V } from "./resolve-dynamic-variants.mjs";
4
- function l(o, t, e) {
5
- o.hasValue(t) ? o.getValue(t).set(e) : o.addValue(t, f(e));
1
+ import { resolveFinalValueInKeyframes } from "../../utils/resolve-value.mjs";
2
+ import { motionValue } from "../../value/index.mjs";
3
+ import { resolveVariant } from "./resolve-dynamic-variants.mjs";
4
+ function setMotionValue(visualElement, key, value) {
5
+ if (visualElement.hasValue(key)) {
6
+ visualElement.getValue(key).set(value);
7
+ } else {
8
+ visualElement.addValue(key, motionValue(value));
9
+ }
6
10
  }
7
- function p(o, t) {
8
- const e = V(o, t);
9
- let { transitionEnd: a = {}, transition: c = {}, ...r } = e || {};
10
- r = { ...r, ...a };
11
- for (const n in r) {
12
- const i = s(r[n]);
13
- l(o, n, i);
11
+ function setTarget(visualElement, definition) {
12
+ const resolved = resolveVariant(visualElement, definition);
13
+ let { transitionEnd = {}, transition = {}, ...target } = resolved || {};
14
+ target = { ...target, ...transitionEnd };
15
+ for (const key in target) {
16
+ const value = resolveFinalValueInKeyframes(target[key]);
17
+ setMotionValue(visualElement, key, value);
14
18
  }
15
19
  }
16
20
  export {
17
- p as setTarget
21
+ setTarget
18
22
  };
@@ -1,4 +1,4 @@
1
- const i = [
1
+ const variantPriorityOrder = [
2
2
  "animate",
3
3
  "whileInView",
4
4
  "whileFocus",
@@ -6,8 +6,9 @@ const i = [
6
6
  "whileTap",
7
7
  "whileDrag",
8
8
  "exit"
9
- ], e = ["initial", ...i];
9
+ ];
10
+ const variantProps = ["initial", ...variantPriorityOrder];
10
11
  export {
11
- i as variantPriorityOrder,
12
- e as variantProps
12
+ variantPriorityOrder,
13
+ variantProps
13
14
  };
@@ -1,7 +1,7 @@
1
- const i = {
2
- skipAnimations: !1,
3
- useManualTiming: !1
1
+ const MotionGlobalConfig = {
2
+ skipAnimations: false,
3
+ useManualTiming: false
4
4
  };
5
5
  export {
6
- i as MotionGlobalConfig
6
+ MotionGlobalConfig
7
7
  };