framer-motion 5.4.0 → 5.4.1

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.
@@ -1,9 +1,16 @@
1
1
  import { number, px, percent, degrees, vw, vh } from 'style-value-types';
2
+ import { testValueType } from './test.mjs';
2
3
  import { auto } from './type-auto.mjs';
3
4
 
4
5
  /**
5
6
  * A list of value types commonly used for dimensions
6
7
  */
7
8
  var dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];
9
+ /**
10
+ * Tests a dimensional value against the list of dimension ValueTypes
11
+ */
12
+ var findDimensionValueType = function (v) {
13
+ return dimensionValueTypes.find(testValueType(v));
14
+ };
8
15
 
9
- export { dimensionValueTypes };
16
+ export { dimensionValueTypes, findDimensionValueType };
@@ -119,6 +119,9 @@ function animateChildren(visualElement, variant, delayChildren, staggerChildren,
119
119
  });
120
120
  return Promise.all(animations);
121
121
  }
122
+ function stopAnimation(visualElement) {
123
+ visualElement.forEachValue(function (value) { return value.stop(); });
124
+ }
122
125
  function sortByTreeOrder(a, b) {
123
126
  return a.sortNodePosition(b);
124
127
  }
@@ -135,4 +138,4 @@ function shouldBlockAnimation(_a, key) {
135
138
  return shouldBlock;
136
139
  }
137
140
 
138
- export { animateVisualElement, sortByTreeOrder };
141
+ export { animateVisualElement, sortByTreeOrder, stopAnimation };
@@ -1,4 +1,4 @@
1
- import { __rest, __assign } from 'tslib';
1
+ import { __rest, __assign, __spreadArray, __read } from 'tslib';
2
2
  import { complex } from 'style-value-types';
3
3
  import { isNumericalString } from '../../utils/is-numerical-string.mjs';
4
4
  import { isZeroValueString } from '../../utils/is-zero-value-string.mjs';
@@ -29,6 +29,28 @@ function setTarget(visualElement, definition) {
29
29
  setMotionValue(visualElement, key, value);
30
30
  }
31
31
  }
32
+ function setVariants(visualElement, variantLabels) {
33
+ var reversedLabels = __spreadArray([], __read(variantLabels), false).reverse();
34
+ reversedLabels.forEach(function (key) {
35
+ var _a;
36
+ var variant = visualElement.getVariant(key);
37
+ variant && setTarget(visualElement, variant);
38
+ (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {
39
+ setVariants(child, variantLabels);
40
+ });
41
+ });
42
+ }
43
+ function setValues(visualElement, definition) {
44
+ if (Array.isArray(definition)) {
45
+ return setVariants(visualElement, definition);
46
+ }
47
+ else if (typeof definition === "string") {
48
+ return setVariants(visualElement, [definition]);
49
+ }
50
+ else {
51
+ setTarget(visualElement, definition);
52
+ }
53
+ }
32
54
  function checkTargetForNewValues(visualElement, target, origin) {
33
55
  var _a, _b, _c;
34
56
  var _d;
@@ -74,5 +96,20 @@ function checkTargetForNewValues(visualElement, target, origin) {
74
96
  visualElement.setBaseTarget(key, value);
75
97
  }
76
98
  }
99
+ function getOriginFromTransition(key, transition) {
100
+ if (!transition)
101
+ return;
102
+ var valueTransition = transition[key] || transition["default"] || transition;
103
+ return valueTransition.from;
104
+ }
105
+ function getOrigin(target, transition, visualElement) {
106
+ var _a, _b;
107
+ var origin = {};
108
+ for (var key in target) {
109
+ origin[key] =
110
+ (_a = getOriginFromTransition(key, transition)) !== null && _a !== void 0 ? _a : (_b = visualElement.getValue(key)) === null || _b === void 0 ? void 0 : _b.get();
111
+ }
112
+ return origin;
113
+ }
77
114
 
78
- export { checkTargetForNewValues, setTarget };
115
+ export { checkTargetForNewValues, getOrigin, getOriginFromTransition, setTarget, setValues };
@@ -1,4 +1,4 @@
1
- import 'tslib';
1
+ import { __read } from 'tslib';
2
2
 
3
3
  function addUniqueItem(arr, item) {
4
4
  arr.indexOf(item) === -1 && arr.push(item);
@@ -7,5 +7,16 @@ function removeItem(arr, item) {
7
7
  var index = arr.indexOf(item);
8
8
  index > -1 && arr.splice(index, 1);
9
9
  }
10
+ // Adapted from array-move
11
+ function moveItem(_a, fromIndex, toIndex) {
12
+ var _b = __read(_a), arr = _b.slice(0);
13
+ var startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex;
14
+ if (startIndex >= 0 && startIndex < arr.length) {
15
+ var endIndex = toIndex < 0 ? arr.length + toIndex : toIndex;
16
+ var _c = __read(arr.splice(fromIndex, 1), 1), item = _c[0];
17
+ arr.splice(endIndex, 0, item);
18
+ }
19
+ return arr;
20
+ }
10
21
 
11
- export { addUniqueItem, removeItem };
22
+ export { addUniqueItem, moveItem, removeItem };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "framer-motion",
3
- "version": "5.4.0",
3
+ "version": "5.4.1",
4
4
  "description": "A simple and powerful React animation library",
5
5
  "main": "dist/framer-motion.cjs.js",
6
6
  "module": "dist/es/index.mjs",