framer-motion 7.0.3 → 7.1.2

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 (186) hide show
  1. package/dist/cjs/index.js +2090 -2304
  2. package/dist/es/animation/animate.mjs +4 -5
  3. package/dist/es/animation/animation-controls.mjs +22 -24
  4. package/dist/es/animation/use-animated-state.mjs +23 -25
  5. package/dist/es/animation/use-animation.mjs +2 -2
  6. package/dist/es/animation/utils/default-transitions.mjs +13 -14
  7. package/dist/es/animation/utils/easing.mjs +20 -21
  8. package/dist/es/animation/utils/is-animatable.mjs +1 -1
  9. package/dist/es/animation/utils/is-keyframes-target.mjs +1 -1
  10. package/dist/es/animation/utils/transitions.mjs +30 -31
  11. package/dist/es/components/AnimatePresence/PresenceChild.mjs +18 -31
  12. package/dist/es/components/AnimatePresence/index.mjs +33 -35
  13. package/dist/es/components/AnimatePresence/use-presence.mjs +5 -5
  14. package/dist/es/components/AnimateSharedLayout.mjs +4 -5
  15. package/dist/es/components/LayoutGroup/index.mjs +12 -16
  16. package/dist/es/components/LazyMotion/index.mjs +9 -10
  17. package/dist/es/components/MotionConfig/index.mjs +5 -5
  18. package/dist/es/components/Reorder/Group.mjs +16 -16
  19. package/dist/es/components/Reorder/Item.mjs +14 -18
  20. package/dist/es/components/Reorder/index.mjs +3 -3
  21. package/dist/es/components/Reorder/utils/check-reorder.mjs +6 -6
  22. package/dist/es/context/DeprecatedLayoutGroupContext.mjs +1 -1
  23. package/dist/es/context/LayoutGroupContext.mjs +1 -1
  24. package/dist/es/context/LazyContext.mjs +1 -1
  25. package/dist/es/context/MotionConfigContext.mjs +2 -2
  26. package/dist/es/context/MotionContext/create.mjs +2 -2
  27. package/dist/es/context/MotionContext/index.mjs +1 -1
  28. package/dist/es/context/MotionContext/utils.mjs +1 -1
  29. package/dist/es/context/PresenceContext.mjs +1 -1
  30. package/dist/es/context/ReorderContext.mjs +1 -1
  31. package/dist/es/context/SwitchLayoutGroupContext.mjs +1 -1
  32. package/dist/es/events/event-info.mjs +11 -17
  33. package/dist/es/events/use-dom-event.mjs +4 -5
  34. package/dist/es/events/use-pointer-event.mjs +2 -2
  35. package/dist/es/events/utils.mjs +3 -9
  36. package/dist/es/gestures/PanSession.mjs +42 -47
  37. package/dist/es/gestures/drag/VisualElementDragControls.mjs +147 -157
  38. package/dist/es/gestures/drag/use-drag-controls.mjs +10 -12
  39. package/dist/es/gestures/drag/use-drag.mjs +4 -4
  40. package/dist/es/gestures/drag/utils/constraints.mjs +12 -17
  41. package/dist/es/gestures/drag/utils/lock.mjs +17 -17
  42. package/dist/es/gestures/use-focus-gesture.mjs +3 -4
  43. package/dist/es/gestures/use-hover-gesture.mjs +2 -3
  44. package/dist/es/gestures/use-pan-gesture.mjs +9 -10
  45. package/dist/es/gestures/use-tap-gesture.mjs +5 -6
  46. package/dist/es/gestures/utils/event-type.mjs +1 -1
  47. package/dist/es/gestures/utils/is-node-or-child.mjs +1 -1
  48. package/dist/es/index.mjs +1 -0
  49. package/dist/es/motion/features/animations.mjs +9 -11
  50. package/dist/es/motion/features/definitions.mjs +5 -5
  51. package/dist/es/motion/features/drag.mjs +1 -1
  52. package/dist/es/motion/features/gestures.mjs +1 -1
  53. package/dist/es/motion/features/layout/MeasureLayout.mjs +32 -40
  54. package/dist/es/motion/features/layout/index.mjs +1 -1
  55. package/dist/es/motion/features/use-features.mjs +8 -9
  56. package/dist/es/motion/features/use-projection.mjs +10 -11
  57. package/dist/es/motion/features/viewport/observers.mjs +12 -12
  58. package/dist/es/motion/features/viewport/use-viewport.mjs +17 -20
  59. package/dist/es/motion/index.mjs +13 -16
  60. package/dist/es/motion/utils/VisualElementHandler.mjs +10 -16
  61. package/dist/es/motion/utils/is-forced-motion-value.mjs +1 -2
  62. package/dist/es/motion/utils/make-renderless-component.mjs +2 -2
  63. package/dist/es/motion/utils/use-motion-ref.mjs +1 -1
  64. package/dist/es/motion/utils/use-visual-element.mjs +13 -13
  65. package/dist/es/motion/utils/use-visual-state.mjs +26 -31
  66. package/dist/es/motion/utils/valid-prop.mjs +1 -1
  67. package/dist/es/projection/animation/mix-values.mjs +12 -16
  68. package/dist/es/projection/geometry/conversion.mjs +4 -6
  69. package/dist/es/projection/geometry/delta-apply.mjs +14 -20
  70. package/dist/es/projection/geometry/delta-calc.mjs +2 -5
  71. package/dist/es/projection/geometry/delta-remove.mjs +6 -13
  72. package/dist/es/projection/geometry/models.mjs +7 -7
  73. package/dist/es/projection/node/DocumentProjectionNode.mjs +5 -5
  74. package/dist/es/projection/node/HTMLProjectionNode.mjs +8 -10
  75. package/dist/es/projection/node/create-projection-node.mjs +283 -307
  76. package/dist/es/projection/node/group.mjs +6 -8
  77. package/dist/es/projection/node/id.mjs +2 -2
  78. package/dist/es/projection/node/state.mjs +1 -1
  79. package/dist/es/projection/shared/stack.mjs +26 -27
  80. package/dist/es/projection/styles/scale-border-radius.mjs +5 -5
  81. package/dist/es/projection/styles/scale-box-shadow.mjs +18 -19
  82. package/dist/es/projection/styles/scale-correction.mjs +1 -1
  83. package/dist/es/projection/styles/transform.mjs +12 -12
  84. package/dist/es/projection/use-reset-projection.mjs +2 -2
  85. package/dist/es/projection/utils/has-transform.mjs +1 -2
  86. package/dist/es/projection/utils/measure.mjs +2 -2
  87. package/dist/es/render/dom/create-visual-element.mjs +1 -1
  88. package/dist/es/render/dom/features-animation.mjs +1 -2
  89. package/dist/es/render/dom/features-max.mjs +1 -2
  90. package/dist/es/render/dom/motion-minimal.mjs +1 -1
  91. package/dist/es/render/dom/motion-proxy.mjs +3 -4
  92. package/dist/es/render/dom/motion.mjs +2 -5
  93. package/dist/es/render/dom/use-render.mjs +6 -9
  94. package/dist/es/render/dom/utils/camel-to-dash.mjs +3 -5
  95. package/dist/es/render/dom/utils/create-config.mjs +5 -5
  96. package/dist/es/render/dom/utils/css-variables-conversion.mjs +19 -20
  97. package/dist/es/render/dom/utils/filter-props.mjs +4 -6
  98. package/dist/es/render/dom/utils/parse-dom-variant.mjs +2 -2
  99. package/dist/es/render/dom/utils/unit-conversion.mjs +68 -99
  100. package/dist/es/render/dom/value-types/animatable-none.mjs +1 -1
  101. package/dist/es/render/dom/value-types/defaults.mjs +4 -5
  102. package/dist/es/render/dom/value-types/dimensions.mjs +2 -4
  103. package/dist/es/render/dom/value-types/find.mjs +2 -3
  104. package/dist/es/render/dom/value-types/get-as-type.mjs +1 -1
  105. package/dist/es/render/dom/value-types/number.mjs +2 -2
  106. package/dist/es/render/dom/value-types/test.mjs +1 -1
  107. package/dist/es/render/dom/value-types/type-auto.mjs +3 -3
  108. package/dist/es/render/dom/value-types/type-int.mjs +1 -2
  109. package/dist/es/render/html/config-motion.mjs +1 -1
  110. package/dist/es/render/html/use-props.mjs +11 -13
  111. package/dist/es/render/html/utils/build-styles.mjs +8 -8
  112. package/dist/es/render/html/utils/build-transform.mjs +11 -16
  113. package/dist/es/render/html/utils/create-render-state.mjs +2 -2
  114. package/dist/es/render/html/utils/render.mjs +2 -3
  115. package/dist/es/render/html/utils/scrape-motion-values.mjs +3 -3
  116. package/dist/es/render/html/utils/transform.mjs +6 -10
  117. package/dist/es/render/html/visual-element.mjs +22 -23
  118. package/dist/es/render/index.mjs +359 -364
  119. package/dist/es/render/svg/config-motion.mjs +2 -3
  120. package/dist/es/render/svg/lowercase-elements.mjs +1 -1
  121. package/dist/es/render/svg/use-props.mjs +5 -6
  122. package/dist/es/render/svg/utils/build-attrs.mjs +2 -2
  123. package/dist/es/render/svg/utils/camel-case-attrs.mjs +1 -1
  124. package/dist/es/render/svg/utils/create-render-state.mjs +1 -2
  125. package/dist/es/render/svg/utils/path.mjs +7 -10
  126. package/dist/es/render/svg/utils/render.mjs +1 -1
  127. package/dist/es/render/svg/utils/scrape-motion-values.mjs +3 -3
  128. package/dist/es/render/svg/utils/transform-origin.mjs +3 -3
  129. package/dist/es/render/svg/visual-element.mjs +6 -4
  130. package/dist/es/render/utils/animation-state.mjs +71 -87
  131. package/dist/es/render/utils/animation.mjs +48 -60
  132. package/dist/es/render/utils/compare-by-depth.mjs +1 -3
  133. package/dist/es/render/utils/flat-tree.mjs +9 -10
  134. package/dist/es/render/utils/lifecycles.mjs +12 -19
  135. package/dist/es/render/utils/motion-values.mjs +16 -8
  136. package/dist/es/render/utils/setters.mjs +19 -19
  137. package/dist/es/render/utils/variants.mjs +6 -8
  138. package/dist/es/utils/array.mjs +9 -10
  139. package/dist/es/utils/is-browser.mjs +1 -1
  140. package/dist/es/utils/is-numerical-string.mjs +1 -1
  141. package/dist/es/utils/is-zero-value-string.mjs +1 -1
  142. package/dist/es/utils/process.mjs +2 -2
  143. package/dist/es/utils/resolve-value.mjs +2 -2
  144. package/dist/es/utils/shallow-compare.mjs +2 -2
  145. package/dist/es/utils/subscription-manager.mjs +15 -17
  146. package/dist/es/utils/time-conversion.mjs +1 -1
  147. package/dist/es/utils/transform.mjs +10 -15
  148. package/dist/es/utils/use-animation-frame.mjs +5 -6
  149. package/dist/es/utils/use-constant.mjs +1 -1
  150. package/dist/es/utils/use-cycle.mjs +9 -10
  151. package/dist/es/utils/use-force-update.mjs +4 -5
  152. package/dist/es/utils/use-in-view.mjs +7 -9
  153. package/dist/es/utils/use-instant-transition-state.mjs +1 -1
  154. package/dist/es/utils/use-instant-transition.mjs +6 -9
  155. package/dist/es/utils/use-is-mounted.mjs +3 -3
  156. package/dist/es/utils/use-isomorphic-effect.mjs +1 -1
  157. package/dist/es/utils/use-reduced-motion.mjs +8 -11
  158. package/dist/es/utils/use-unmount-effect.mjs +1 -1
  159. package/dist/es/utils/warn-once.mjs +1 -1
  160. package/dist/es/value/index.mjs +53 -59
  161. package/dist/es/value/use-combine-values.mjs +3 -3
  162. package/dist/es/value/use-inverted-scale.mjs +9 -11
  163. package/dist/es/value/use-motion-template.mjs +5 -9
  164. package/dist/es/value/use-motion-value.mjs +4 -5
  165. package/dist/es/value/use-on-change.mjs +4 -4
  166. package/dist/es/value/use-scroll.mjs +9 -11
  167. package/dist/es/value/use-spring.mjs +8 -10
  168. package/dist/es/value/use-time.mjs +2 -2
  169. package/dist/es/value/use-transform.mjs +6 -10
  170. package/dist/es/value/use-velocity.mjs +3 -3
  171. package/dist/es/value/use-will-change/index.mjs +50 -0
  172. package/dist/es/value/use-will-change/is.mjs +7 -0
  173. package/dist/es/value/utils/is-motion-value.mjs +1 -1
  174. package/dist/es/value/utils/resolve-motion-value.mjs +1 -1
  175. package/dist/framer-motion.dev.js +2134 -2414
  176. package/dist/framer-motion.js +1 -1
  177. package/dist/index.d.ts +9 -2
  178. package/dist/projection.dev.js +1154 -1300
  179. package/dist/size-rollup-dom-animation.js +1 -1
  180. package/dist/size-rollup-dom-max.js +1 -1
  181. package/dist/size-rollup-m.js +1 -1
  182. package/dist/size-webpack-dom-animation.js +1 -1
  183. package/dist/size-webpack-dom-max.js +1 -1
  184. package/dist/size-webpack-m.js +1 -1
  185. package/dist/three-entry.d.ts +0 -1
  186. package/package.json +12 -12
@@ -2,21 +2,17 @@
2
2
  * A list of all transformable axes. We'll use this list to generated a version
3
3
  * of each axes for each transform.
4
4
  */
5
- var transformAxes = ["", "X", "Y", "Z"];
5
+ const transformAxes = ["", "X", "Y", "Z"];
6
6
  /**
7
7
  * An ordered array of each transformable value. By default, transform values
8
8
  * will be sorted to this order.
9
9
  */
10
- var order = ["translate", "scale", "rotate", "skew"];
10
+ const order = ["translate", "scale", "rotate", "skew"];
11
11
  /**
12
12
  * Generate a list of every possible transform key.
13
13
  */
14
- var transformProps = ["transformPerspective", "x", "y", "z"];
15
- order.forEach(function (operationKey) {
16
- return transformAxes.forEach(function (axesKey) {
17
- return transformProps.push(operationKey + axesKey);
18
- });
19
- });
14
+ const transformProps = ["transformPerspective", "x", "y", "z"];
15
+ order.forEach((operationKey) => transformAxes.forEach((axesKey) => transformProps.push(operationKey + axesKey)));
20
16
  /**
21
17
  * A function to use with Array.sort to sort transform keys by their default order.
22
18
  */
@@ -26,14 +22,14 @@ function sortTransformProps(a, b) {
26
22
  /**
27
23
  * A quick lookup for transform props.
28
24
  */
29
- var transformPropSet = new Set(transformProps);
25
+ const transformPropSet = new Set(transformProps);
30
26
  function isTransformProp(key) {
31
27
  return transformPropSet.has(key);
32
28
  }
33
29
  /**
34
30
  * A quick lookup for transform origin props
35
31
  */
36
- var transformOriginProps = new Set(["originX", "originY", "originZ"]);
32
+ const transformOriginProps = new Set(["originX", "originY", "originZ"]);
37
33
  function isTransformOriginProp(key) {
38
34
  return transformOriginProps.has(key);
39
35
  }
@@ -1,4 +1,4 @@
1
- import { __rest, __assign } from 'tslib';
1
+ import { __rest } from 'tslib';
2
2
  import { visualElement } from '../index.mjs';
3
3
  import { getOrigin, checkTargetForNewValues } from '../utils/setters.mjs';
4
4
  import { buildHTMLStyles } from './utils/build-styles.mjs';
@@ -13,22 +13,22 @@ import { measureViewportBox } from '../../projection/utils/measure.mjs';
13
13
  function getComputedStyle(element) {
14
14
  return window.getComputedStyle(element);
15
15
  }
16
- var htmlConfig = {
16
+ const htmlConfig = {
17
17
  treeType: "dom",
18
- readValueFromInstance: function (domElement, key) {
18
+ readValueFromInstance(domElement, key) {
19
19
  if (isTransformProp(key)) {
20
- var defaultType = getDefaultValueType(key);
20
+ const defaultType = getDefaultValueType(key);
21
21
  return defaultType ? defaultType.default || 0 : 0;
22
22
  }
23
23
  else {
24
- var computedStyle = getComputedStyle(domElement);
25
- var value = (isCSSVariable(key)
24
+ const computedStyle = getComputedStyle(domElement);
25
+ const value = (isCSSVariable(key)
26
26
  ? computedStyle.getPropertyValue(key)
27
27
  : computedStyle[key]) || 0;
28
28
  return typeof value === "string" ? value.trim() : value;
29
29
  }
30
30
  },
31
- sortNodePosition: function (a, b) {
31
+ sortNodePosition(a, b) {
32
32
  /**
33
33
  * compareDocumentPosition returns a bitmask, by using the bitwise &
34
34
  * we're returning true if 2 in that bitmask is set to true. 2 is set
@@ -36,12 +36,11 @@ var htmlConfig = {
36
36
  */
37
37
  return a.compareDocumentPosition(b) & 2 ? 1 : -1;
38
38
  },
39
- getBaseTarget: function (props, key) {
39
+ getBaseTarget(props, key) {
40
40
  var _a;
41
41
  return (_a = props.style) === null || _a === void 0 ? void 0 : _a[key];
42
42
  },
43
- measureViewportBox: function (element, _a) {
44
- var transformPagePoint = _a.transformPagePoint;
43
+ measureViewportBox(element, { transformPagePoint }) {
45
44
  return measureViewportBox(element, transformPagePoint);
46
45
  },
47
46
  /**
@@ -51,19 +50,18 @@ var htmlConfig = {
51
50
  * layout transforms up the tree in the same way this.getBoundingBoxWithoutTransforms
52
51
  * works
53
52
  */
54
- resetTransform: function (element, domElement, props) {
55
- var transformTemplate = props.transformTemplate;
53
+ resetTransform(element, domElement, props) {
54
+ const { transformTemplate } = props;
56
55
  domElement.style.transform = transformTemplate
57
56
  ? transformTemplate({}, "")
58
57
  : "none";
59
58
  // Ensure that whatever happens next, we restore our transform on the next frame
60
59
  element.scheduleRender();
61
60
  },
62
- restoreTransform: function (instance, mutableState) {
61
+ restoreTransform(instance, mutableState) {
63
62
  instance.style.transform = mutableState.style.transform;
64
63
  },
65
- removeValueFromRenderState: function (key, _a) {
66
- var vars = _a.vars, style = _a.style;
64
+ removeValueFromRenderState(key, { vars, style }) {
67
65
  delete vars[key];
68
66
  delete style[key];
69
67
  },
@@ -71,11 +69,11 @@ var htmlConfig = {
71
69
  * Ensure that HTML and Framer-specific value types like `px`->`%` and `Color`
72
70
  * can be animated by Motion.
73
71
  */
74
- makeTargetAnimatable: function (element, _a, _b, isMounted) {
75
- var transition = _a.transition, transitionEnd = _a.transitionEnd, target = __rest(_a, ["transition", "transitionEnd"]);
72
+ makeTargetAnimatable(element, _a, _b, isMounted) {
73
+ var { transition, transitionEnd } = _a, target = __rest(_a, ["transition", "transitionEnd"]);
76
74
  var transformValues = _b.transformValues;
77
75
  if (isMounted === void 0) { isMounted = true; }
78
- var origin = getOrigin(target, transition || {}, element);
76
+ let origin = getOrigin(target, transition || {}, element);
79
77
  /**
80
78
  * If Framer has provided a function to convert `Color` etc value types, convert them
81
79
  */
@@ -89,14 +87,15 @@ var htmlConfig = {
89
87
  }
90
88
  if (isMounted) {
91
89
  checkTargetForNewValues(element, target, origin);
92
- var parsed = parseDomVariant(element, target, origin, transitionEnd);
90
+ const parsed = parseDomVariant(element, target, origin, transitionEnd);
93
91
  transitionEnd = parsed.transitionEnd;
94
92
  target = parsed.target;
95
93
  }
96
- return __assign({ transition: transition, transitionEnd: transitionEnd }, target);
94
+ return Object.assign({ transition,
95
+ transitionEnd }, target);
97
96
  },
98
- scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,
99
- build: function (element, renderState, latestValues, options, props) {
97
+ scrapeMotionValuesFromProps,
98
+ build(element, renderState, latestValues, options, props) {
100
99
  if (element.isVisible !== undefined) {
101
100
  renderState.style.visibility = element.isVisible
102
101
  ? "visible"
@@ -106,6 +105,6 @@ var htmlConfig = {
106
105
  },
107
106
  render: renderHTML,
108
107
  };
109
- var htmlVisualElement = visualElement(htmlConfig);
108
+ const htmlVisualElement = visualElement(htmlConfig);
110
109
 
111
110
  export { getComputedStyle, htmlConfig, htmlVisualElement };