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,11 +1,13 @@
1
- function f(e, n) {
2
- e.indexOf(n) === -1 && e.push(n);
1
+ function addUniqueItem(arr, item) {
2
+ if (arr.indexOf(item) === -1)
3
+ arr.push(item);
3
4
  }
4
- function d(e, n) {
5
- const i = e.indexOf(n);
6
- i > -1 && e.splice(i, 1);
5
+ function removeItem(arr, item) {
6
+ const index = arr.indexOf(item);
7
+ if (index > -1)
8
+ arr.splice(index, 1);
7
9
  }
8
10
  export {
9
- f as addUniqueItem,
10
- d as removeItem
11
+ addUniqueItem,
12
+ removeItem
11
13
  };
@@ -1,4 +1,10 @@
1
- const n = (t, e, r) => r > e ? e : r < t ? t : r;
1
+ const clamp = (min, max, v) => {
2
+ if (v > max)
3
+ return max;
4
+ if (v < min)
5
+ return min;
6
+ return v;
7
+ };
2
8
  export {
3
- n as clamp
9
+ clamp
4
10
  };
@@ -1,17 +1,22 @@
1
- import { time as a } from "../frameloop/sync-time.mjs";
2
- import { secondsToMilliseconds as d } from "./time-conversion.mjs";
3
- import { frame as i, cancelFrame as t } from "../frameloop/frame.mjs";
4
- function m(o, e) {
5
- const c = a.now(), r = ({ timestamp: s }) => {
6
- const n = s - c;
7
- n >= e && (t(r), o(n - e));
1
+ import { time } from "../frameloop/sync-time.mjs";
2
+ import { secondsToMilliseconds } from "./time-conversion.mjs";
3
+ import { frame, cancelFrame } from "../frameloop/frame.mjs";
4
+ function delay(callback, timeout) {
5
+ const start = time.now();
6
+ const checkElapsed = ({ timestamp }) => {
7
+ const elapsed = timestamp - start;
8
+ if (elapsed >= timeout) {
9
+ cancelFrame(checkElapsed);
10
+ callback(elapsed - timeout);
11
+ }
8
12
  };
9
- return i.read(r, !0), () => t(r);
13
+ frame.read(checkElapsed, true);
14
+ return () => cancelFrame(checkElapsed);
10
15
  }
11
- function u(o, e) {
12
- return m(o, d(e));
16
+ function delayInSeconds(callback, timeout) {
17
+ return delay(callback, secondsToMilliseconds(timeout));
13
18
  }
14
19
  export {
15
- m as delay,
16
- u as delayInSeconds
20
+ delay,
21
+ delayInSeconds
17
22
  };
@@ -1,9 +1,10 @@
1
- const s = (t, n) => Math.abs(t - n);
2
- function e(t, n) {
3
- const a = s(t.x, n.x), c = s(t.y, n.y);
4
- return Math.sqrt(a ** 2 + c ** 2);
1
+ const distance = (a, b) => Math.abs(a - b);
2
+ function distance2D(a, b) {
3
+ const xDelta = distance(a.x, b.x);
4
+ const yDelta = distance(a.y, b.y);
5
+ return Math.sqrt(xDelta ** 2 + yDelta ** 2);
5
6
  }
6
7
  export {
7
- s as distance,
8
- e as distance2D
8
+ distance,
9
+ distance2D
9
10
  };
@@ -1,12 +1,19 @@
1
- import { noop as r } from "./noop.mjs";
2
- let e = r, i = r;
3
- process.env.NODE_ENV !== "production" && (e = (o, n) => {
4
- !o && typeof console < "u" && console.warn(n);
5
- }, i = (o, n) => {
6
- if (!o)
7
- throw new Error(n);
8
- });
1
+ import { noop } from "./noop.mjs";
2
+ let warning = noop;
3
+ let invariant = noop;
4
+ if (process.env.NODE_ENV !== "production") {
5
+ warning = (check, message) => {
6
+ if (!check && typeof console !== "undefined") {
7
+ console.warn(message);
8
+ }
9
+ };
10
+ invariant = (check, message) => {
11
+ if (!check) {
12
+ throw new Error(message);
13
+ }
14
+ };
15
+ }
9
16
  export {
10
- i as invariant,
11
- e as warning
17
+ invariant,
18
+ warning
12
19
  };
@@ -1,22 +1,39 @@
1
- function c(e, f, r) {
2
- return r < 0 && (r += 1), r > 1 && (r -= 1), r < 1 / 6 ? e + (f - e) * 6 * r : r < 1 / 2 ? f : r < 2 / 3 ? e + (f - e) * (2 / 3 - r) * 6 : e;
1
+ function hueToRgb(p, q, t) {
2
+ if (t < 0)
3
+ t += 1;
4
+ if (t > 1)
5
+ t -= 1;
6
+ if (t < 1 / 6)
7
+ return p + (q - p) * 6 * t;
8
+ if (t < 1 / 2)
9
+ return q;
10
+ if (t < 2 / 3)
11
+ return p + (q - p) * (2 / 3 - t) * 6;
12
+ return p;
3
13
  }
4
- function R({ hue: e, saturation: f, lightness: r, alpha: M }) {
5
- e /= 360, f /= 100, r /= 100;
6
- let o = 0, u = 0, d = 0;
7
- if (!f)
8
- o = u = d = r;
9
- else {
10
- const n = r < 0.5 ? r * (1 + f) : r + f - r * f, b = 2 * r - n;
11
- o = c(b, n, e + 1 / 3), u = c(b, n, e), d = c(b, n, e - 1 / 3);
14
+ function hslaToRgba({ hue, saturation, lightness, alpha }) {
15
+ hue /= 360;
16
+ saturation /= 100;
17
+ lightness /= 100;
18
+ let red = 0;
19
+ let green = 0;
20
+ let blue = 0;
21
+ if (!saturation) {
22
+ red = green = blue = lightness;
23
+ } else {
24
+ const q = lightness < 0.5 ? lightness * (1 + saturation) : lightness + saturation - lightness * saturation;
25
+ const p = 2 * lightness - q;
26
+ red = hueToRgb(p, q, hue + 1 / 3);
27
+ green = hueToRgb(p, q, hue);
28
+ blue = hueToRgb(p, q, hue - 1 / 3);
12
29
  }
13
30
  return {
14
- red: Math.round(o * 255),
15
- green: Math.round(u * 255),
16
- blue: Math.round(d * 255),
17
- alpha: M
31
+ red: Math.round(red * 255),
32
+ green: Math.round(green * 255),
33
+ blue: Math.round(blue * 255),
34
+ alpha
18
35
  };
19
36
  }
20
37
  export {
21
- R as hslaToRgba
38
+ hslaToRgba
22
39
  };
@@ -1,38 +1,49 @@
1
- import { invariant as g } from "./errors.mjs";
2
- import { clamp as h } from "./clamp.mjs";
3
- import { pipe as x } from "./pipe.mjs";
4
- import { progress as y } from "./progress.mjs";
5
- import { noop as M } from "./noop.mjs";
6
- import { mix as b } from "./mix/index.mjs";
7
- function v(r, e, f) {
8
- const t = [], a = f || b, n = r.length - 1;
9
- for (let o = 0; o < n; o++) {
10
- let s = a(r[o], r[o + 1]);
11
- if (e) {
12
- const i = Array.isArray(e) ? e[o] || M : e;
13
- s = x(i, s);
1
+ import { invariant } from "./errors.mjs";
2
+ import { clamp } from "./clamp.mjs";
3
+ import { pipe } from "./pipe.mjs";
4
+ import { progress } from "./progress.mjs";
5
+ import { noop } from "./noop.mjs";
6
+ import { mix } from "./mix/index.mjs";
7
+ function createMixers(output, ease, customMixer) {
8
+ const mixers = [];
9
+ const mixerFactory = customMixer || mix;
10
+ const numMixers = output.length - 1;
11
+ for (let i = 0; i < numMixers; i++) {
12
+ let mixer = mixerFactory(output[i], output[i + 1]);
13
+ if (ease) {
14
+ const easingFunction = Array.isArray(ease) ? ease[i] || noop : ease;
15
+ mixer = pipe(easingFunction, mixer);
14
16
  }
15
- t.push(s);
17
+ mixers.push(mixer);
16
18
  }
17
- return t;
19
+ return mixers;
18
20
  }
19
- function I(r, e, { clamp: f = !0, ease: t, mixer: a } = {}) {
20
- const n = r.length;
21
- if (g(n === e.length, "Both input and output ranges must be the same length"), n === 1)
22
- return () => e[0];
23
- if (n === 2 && r[0] === r[1])
24
- return () => e[1];
25
- r[0] > r[n - 1] && (r = [...r].reverse(), e = [...e].reverse());
26
- const o = v(e, t, a), s = o.length, i = (c) => {
27
- let m = 0;
28
- if (s > 1)
29
- for (; m < r.length - 2 && !(c < r[m + 1]); m++)
30
- ;
31
- const l = y(r[m], r[m + 1], c);
32
- return o[m](l);
21
+ function interpolate(input, output, { clamp: isClamp = true, ease, mixer } = {}) {
22
+ const inputLength = input.length;
23
+ invariant(inputLength === output.length, "Both input and output ranges must be the same length");
24
+ if (inputLength === 1)
25
+ return () => output[0];
26
+ if (inputLength === 2 && input[0] === input[1])
27
+ return () => output[1];
28
+ if (input[0] > input[inputLength - 1]) {
29
+ input = [...input].reverse();
30
+ output = [...output].reverse();
31
+ }
32
+ const mixers = createMixers(output, ease, mixer);
33
+ const numMixers = mixers.length;
34
+ const interpolator = (v) => {
35
+ let i = 0;
36
+ if (numMixers > 1) {
37
+ for (; i < input.length - 2; i++) {
38
+ if (v < input[i + 1])
39
+ break;
40
+ }
41
+ }
42
+ const progressInRange = progress(input[i], input[i + 1], v);
43
+ return mixers[i](progressInRange);
33
44
  };
34
- return f ? (c) => i(h(r[0], r[n - 1], c)) : i;
45
+ return isClamp ? (v) => interpolator(clamp(input[0], input[inputLength - 1], v)) : interpolator;
35
46
  }
36
47
  export {
37
- I as interpolate
48
+ interpolate
38
49
  };
@@ -1,4 +1,4 @@
1
- const e = typeof window < "u";
1
+ const isBrowser = typeof window !== "undefined";
2
2
  export {
3
- e as isBrowser
3
+ isBrowser
4
4
  };
@@ -1,4 +1,4 @@
1
- const d = (t) => /^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(t);
1
+ const isNumericalString = (v) => /^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(v);
2
2
  export {
3
- d as isNumericalString
3
+ isNumericalString
4
4
  };
@@ -1,4 +1,4 @@
1
- const e = (t) => /^0[^.\s]+$/u.test(t);
1
+ const isZeroValueString = (v) => /^0[^.\s]+$/u.test(v);
2
2
  export {
3
- e as isZeroValueString
3
+ isZeroValueString
4
4
  };
@@ -1,7 +1,11 @@
1
- function r(n) {
2
- let e;
3
- return () => (e === void 0 && (e = n()), e);
1
+ function memo(callback) {
2
+ let result;
3
+ return () => {
4
+ if (result === void 0)
5
+ result = callback();
6
+ return result;
7
+ };
4
8
  }
5
9
  export {
6
- r as memo
10
+ memo
7
11
  };
@@ -1,29 +1,44 @@
1
- import { mixNumber as p } from "./number.mjs";
2
- import { warning as f } from "../errors.mjs";
3
- import { hslaToRgba as c } from "../hsla-to-rgba.mjs";
4
- import { hex as u } from "../../value/types/color/hex.mjs";
5
- import { rgba as s } from "../../value/types/color/rgba.mjs";
6
- import { hsla as l } from "../../value/types/color/hsla.mjs";
7
- import { mixImmediate as d } from "./immediate.mjs";
8
- const m = (o, e, r) => {
9
- const t = o * o, n = r * (e * e - t) + t;
10
- return n < 0 ? 0 : Math.sqrt(n);
11
- }, b = [u, s, l], h = (o) => b.find((e) => e.test(o));
12
- function i(o) {
13
- const e = h(o);
14
- if (f(!!e, `'${o}' is not an animatable color. Use the equivalent color code instead.`), !e)
15
- return !1;
16
- let r = e.parse(o);
17
- return e === l && (r = c(r)), r;
1
+ import { mixNumber } from "./number.mjs";
2
+ import { warning } from "../errors.mjs";
3
+ import { hslaToRgba } from "../hsla-to-rgba.mjs";
4
+ import { hex } from "../../value/types/color/hex.mjs";
5
+ import { rgba } from "../../value/types/color/rgba.mjs";
6
+ import { hsla } from "../../value/types/color/hsla.mjs";
7
+ import { mixImmediate } from "./immediate.mjs";
8
+ const mixLinearColor = (from, to, v) => {
9
+ const fromExpo = from * from;
10
+ const expo = v * (to * to - fromExpo) + fromExpo;
11
+ return expo < 0 ? 0 : Math.sqrt(expo);
12
+ };
13
+ const colorTypes = [hex, rgba, hsla];
14
+ const getColorType = (v) => colorTypes.find((type) => type.test(v));
15
+ function asRGBA(color) {
16
+ const type = getColorType(color);
17
+ warning(Boolean(type), `'${color}' is not an animatable color. Use the equivalent color code instead.`);
18
+ if (!Boolean(type))
19
+ return false;
20
+ let model = type.parse(color);
21
+ if (type === hsla) {
22
+ model = hslaToRgba(model);
23
+ }
24
+ return model;
18
25
  }
19
- const G = (o, e) => {
20
- const r = i(o), t = i(e);
21
- if (!r || !t)
22
- return d(o, e);
23
- const n = { ...r };
24
- return (a) => (n.red = m(r.red, t.red, a), n.green = m(r.green, t.green, a), n.blue = m(r.blue, t.blue, a), n.alpha = p(r.alpha, t.alpha, a), s.transform(n));
26
+ const mixColor = (from, to) => {
27
+ const fromRGBA = asRGBA(from);
28
+ const toRGBA = asRGBA(to);
29
+ if (!fromRGBA || !toRGBA) {
30
+ return mixImmediate(from, to);
31
+ }
32
+ const blended = { ...fromRGBA };
33
+ return (v) => {
34
+ blended.red = mixLinearColor(fromRGBA.red, toRGBA.red, v);
35
+ blended.green = mixLinearColor(fromRGBA.green, toRGBA.green, v);
36
+ blended.blue = mixLinearColor(fromRGBA.blue, toRGBA.blue, v);
37
+ blended.alpha = mixNumber(fromRGBA.alpha, toRGBA.alpha, v);
38
+ return rgba.transform(blended);
39
+ };
25
40
  };
26
41
  export {
27
- G as mixColor,
28
- m as mixLinearColor
42
+ mixColor,
43
+ mixLinearColor
29
44
  };
@@ -1,52 +1,84 @@
1
- import { mixNumber as h } from "./number.mjs";
2
- import { mixColor as u } from "./color.mjs";
3
- import { pipe as b } from "../pipe.mjs";
4
- import { warning as y } from "../errors.mjs";
5
- import { color as m } from "../../value/types/color/index.mjs";
6
- import { complex as v, analyseComplexValue as a } from "../../value/types/complex/index.mjs";
7
- import { isCSSVariableToken as g } from "../../render/dom/utils/is-css-variable.mjs";
8
- import { invisibleValues as c, mixVisibility as V } from "./visibility.mjs";
9
- import { mixImmediate as l } from "./immediate.mjs";
10
- function C(e, t) {
11
- return (r) => h(e, t, r);
1
+ import { mixNumber as mixNumber$1 } from "./number.mjs";
2
+ import { mixColor } from "./color.mjs";
3
+ import { pipe } from "../pipe.mjs";
4
+ import { warning } from "../errors.mjs";
5
+ import { color } from "../../value/types/color/index.mjs";
6
+ import { complex, analyseComplexValue } from "../../value/types/complex/index.mjs";
7
+ import { isCSSVariableToken } from "../../render/dom/utils/is-css-variable.mjs";
8
+ import { invisibleValues, mixVisibility } from "./visibility.mjs";
9
+ import { mixImmediate } from "./immediate.mjs";
10
+ function mixNumber(a, b) {
11
+ return (p) => mixNumber$1(a, b, p);
12
12
  }
13
- function f(e) {
14
- return typeof e == "number" ? C : typeof e == "string" ? g(e) ? l : m.test(e) ? u : S : Array.isArray(e) ? p : typeof e == "object" ? m.test(e) ? u : k : l;
13
+ function getMixer(a) {
14
+ if (typeof a === "number") {
15
+ return mixNumber;
16
+ } else if (typeof a === "string") {
17
+ return isCSSVariableToken(a) ? mixImmediate : color.test(a) ? mixColor : mixComplex;
18
+ } else if (Array.isArray(a)) {
19
+ return mixArray;
20
+ } else if (typeof a === "object") {
21
+ return color.test(a) ? mixColor : mixObject;
22
+ }
23
+ return mixImmediate;
15
24
  }
16
- function p(e, t) {
17
- const r = [...e], o = r.length, n = e.map((i, s) => f(i)(i, t[s]));
18
- return (i) => {
19
- for (let s = 0; s < o; s++)
20
- r[s] = n[s](i);
21
- return r;
25
+ function mixArray(a, b) {
26
+ const output = [...a];
27
+ const numValues = output.length;
28
+ const blendValue = a.map((v, i) => getMixer(v)(v, b[i]));
29
+ return (p) => {
30
+ for (let i = 0; i < numValues; i++) {
31
+ output[i] = blendValue[i](p);
32
+ }
33
+ return output;
22
34
  };
23
35
  }
24
- function k(e, t) {
25
- const r = { ...e, ...t }, o = {};
26
- for (const n in r)
27
- e[n] !== void 0 && t[n] !== void 0 && (o[n] = f(e[n])(e[n], t[n]));
28
- return (n) => {
29
- for (const i in o)
30
- r[i] = o[i](n);
31
- return r;
36
+ function mixObject(a, b) {
37
+ const output = { ...a, ...b };
38
+ const blendValue = {};
39
+ for (const key in output) {
40
+ if (a[key] !== void 0 && b[key] !== void 0) {
41
+ blendValue[key] = getMixer(a[key])(a[key], b[key]);
42
+ }
43
+ }
44
+ return (v) => {
45
+ for (const key in blendValue) {
46
+ output[key] = blendValue[key](v);
47
+ }
48
+ return output;
32
49
  };
33
50
  }
34
- function I(e, t) {
35
- var r;
36
- const o = [], n = { color: 0, var: 0, number: 0 };
37
- for (let i = 0; i < t.values.length; i++) {
38
- const s = t.types[i], x = e.indexes[s][n[s]], d = (r = e.values[x]) !== null && r !== void 0 ? r : 0;
39
- o[i] = d, n[s]++;
51
+ function matchOrder(origin, target) {
52
+ var _a;
53
+ const orderedOrigin = [];
54
+ const pointers = { color: 0, var: 0, number: 0 };
55
+ for (let i = 0; i < target.values.length; i++) {
56
+ const type = target.types[i];
57
+ const originIndex = origin.indexes[type][pointers[type]];
58
+ const originValue = (_a = origin.values[originIndex]) !== null && _a !== void 0 ? _a : 0;
59
+ orderedOrigin[i] = originValue;
60
+ pointers[type]++;
40
61
  }
41
- return o;
62
+ return orderedOrigin;
42
63
  }
43
- const S = (e, t) => {
44
- const r = v.createTransformer(t), o = a(e), n = a(t);
45
- return o.indexes.var.length === n.indexes.var.length && o.indexes.color.length === n.indexes.color.length && o.indexes.number.length >= n.indexes.number.length ? c.has(e) && !n.values.length || c.has(t) && !o.values.length ? V(e, t) : b(p(I(o, n), n.values), r) : (y(!0, `Complex values '${e}' and '${t}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`), l(e, t));
64
+ const mixComplex = (origin, target) => {
65
+ const template = complex.createTransformer(target);
66
+ const originStats = analyseComplexValue(origin);
67
+ const targetStats = analyseComplexValue(target);
68
+ const canInterpolate = originStats.indexes.var.length === targetStats.indexes.var.length && originStats.indexes.color.length === targetStats.indexes.color.length && originStats.indexes.number.length >= targetStats.indexes.number.length;
69
+ if (canInterpolate) {
70
+ if (invisibleValues.has(origin) && !targetStats.values.length || invisibleValues.has(target) && !originStats.values.length) {
71
+ return mixVisibility(origin, target);
72
+ }
73
+ return pipe(mixArray(matchOrder(originStats, targetStats), targetStats.values), template);
74
+ } else {
75
+ warning(true, `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`);
76
+ return mixImmediate(origin, target);
77
+ }
46
78
  };
47
79
  export {
48
- f as getMixer,
49
- p as mixArray,
50
- S as mixComplex,
51
- k as mixObject
80
+ getMixer,
81
+ mixArray,
82
+ mixComplex,
83
+ mixObject
52
84
  };
@@ -1,6 +1,6 @@
1
- function m(e, t) {
2
- return (i) => i > 0 ? t : e;
1
+ function mixImmediate(a, b) {
2
+ return (p) => p > 0 ? b : a;
3
3
  }
4
4
  export {
5
- m as mixImmediate
5
+ mixImmediate
6
6
  };
@@ -1,8 +1,12 @@
1
- import { getMixer as m } from "./complex.mjs";
2
- import { mixNumber as t } from "./number.mjs";
3
- function o(e, r, i) {
4
- return typeof e == "number" && typeof r == "number" && typeof i == "number" ? t(e, r, i) : m(e)(e, r);
1
+ import { getMixer } from "./complex.mjs";
2
+ import { mixNumber } from "./number.mjs";
3
+ function mix(from, to, p) {
4
+ if (typeof from === "number" && typeof to === "number" && typeof p === "number") {
5
+ return mixNumber(from, to, p);
6
+ }
7
+ const mixer = getMixer(from);
8
+ return mixer(from, to);
5
9
  }
6
10
  export {
7
- o as mix
11
+ mix
8
12
  };
@@ -1,4 +1,6 @@
1
- const n = (e, r, t) => e + (r - e) * t;
1
+ const mixNumber = (from, to, progress) => {
2
+ return from + (to - from) * progress;
3
+ };
2
4
  export {
3
- n as mixNumber
5
+ mixNumber
4
6
  };
@@ -1,8 +1,12 @@
1
- const s = /* @__PURE__ */ new Set(["none", "hidden"]);
2
- function t(e, i) {
3
- return s.has(e) ? (n) => n <= 0 ? e : i : (n) => n >= 1 ? i : e;
1
+ const invisibleValues = /* @__PURE__ */ new Set(["none", "hidden"]);
2
+ function mixVisibility(origin, target) {
3
+ if (invisibleValues.has(origin)) {
4
+ return (p) => p <= 0 ? origin : target;
5
+ } else {
6
+ return (p) => p >= 1 ? target : origin;
7
+ }
4
8
  }
5
9
  export {
6
- s as invisibleValues,
7
- t as mixVisibility
10
+ invisibleValues,
11
+ mixVisibility
8
12
  };
@@ -1,4 +1,4 @@
1
- const n = (o) => o;
1
+ const noop = (any) => any;
2
2
  export {
3
- n as noop
3
+ noop
4
4
  };
@@ -1,8 +1,9 @@
1
- import { fillOffset as e } from "./fill.mjs";
2
- function n(t) {
3
- const f = [0];
4
- return e(f, t.length - 1), f;
1
+ import { fillOffset } from "./fill.mjs";
2
+ function defaultOffset(arr) {
3
+ const offset = [0];
4
+ fillOffset(offset, arr.length - 1);
5
+ return offset;
5
6
  }
6
7
  export {
7
- n as defaultOffset
8
+ defaultOffset
8
9
  };
@@ -1,12 +1,12 @@
1
- import { mixNumber as e } from "../mix/number.mjs";
2
- import { progress as f } from "../progress.mjs";
3
- function l(o, t) {
4
- const s = o[o.length - 1];
5
- for (let r = 1; r <= t; r++) {
6
- const m = f(0, t, r);
7
- o.push(e(s, 1, m));
1
+ import { mixNumber } from "../mix/number.mjs";
2
+ import { progress } from "../progress.mjs";
3
+ function fillOffset(offset, remaining) {
4
+ const min = offset[offset.length - 1];
5
+ for (let i = 1; i <= remaining; i++) {
6
+ const offsetProgress = progress(0, remaining, i);
7
+ offset.push(mixNumber(min, 1, offsetProgress));
8
8
  }
9
9
  }
10
10
  export {
11
- l as fillOffset
11
+ fillOffset
12
12
  };
@@ -1,6 +1,6 @@
1
- function o(e, t) {
2
- return e.map((n) => n * t);
1
+ function convertOffsetToTimes(offset, duration) {
2
+ return offset.map((o) => o * duration);
3
3
  }
4
4
  export {
5
- o as convertOffsetToTimes
5
+ convertOffsetToTimes
6
6
  };
@@ -1,4 +1,5 @@
1
- const o = (c, e) => (n) => e(c(n)), t = (...c) => c.reduce(o);
1
+ const combineFunctions = (a, b) => (v) => b(a(v));
2
+ const pipe = (...transformers) => transformers.reduce(combineFunctions);
2
3
  export {
3
- t as pipe
4
+ pipe
4
5
  };