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.
- package/dist/cjs/index.js +2090 -2304
- package/dist/es/animation/animate.mjs +4 -5
- package/dist/es/animation/animation-controls.mjs +22 -24
- package/dist/es/animation/use-animated-state.mjs +23 -25
- package/dist/es/animation/use-animation.mjs +2 -2
- package/dist/es/animation/utils/default-transitions.mjs +13 -14
- package/dist/es/animation/utils/easing.mjs +20 -21
- package/dist/es/animation/utils/is-animatable.mjs +1 -1
- package/dist/es/animation/utils/is-keyframes-target.mjs +1 -1
- package/dist/es/animation/utils/transitions.mjs +30 -31
- package/dist/es/components/AnimatePresence/PresenceChild.mjs +18 -31
- package/dist/es/components/AnimatePresence/index.mjs +33 -35
- package/dist/es/components/AnimatePresence/use-presence.mjs +5 -5
- package/dist/es/components/AnimateSharedLayout.mjs +4 -5
- package/dist/es/components/LayoutGroup/index.mjs +12 -16
- package/dist/es/components/LazyMotion/index.mjs +9 -10
- package/dist/es/components/MotionConfig/index.mjs +5 -5
- package/dist/es/components/Reorder/Group.mjs +16 -16
- package/dist/es/components/Reorder/Item.mjs +14 -18
- package/dist/es/components/Reorder/index.mjs +3 -3
- package/dist/es/components/Reorder/utils/check-reorder.mjs +6 -6
- package/dist/es/context/DeprecatedLayoutGroupContext.mjs +1 -1
- package/dist/es/context/LayoutGroupContext.mjs +1 -1
- package/dist/es/context/LazyContext.mjs +1 -1
- package/dist/es/context/MotionConfigContext.mjs +2 -2
- package/dist/es/context/MotionContext/create.mjs +2 -2
- package/dist/es/context/MotionContext/index.mjs +1 -1
- package/dist/es/context/MotionContext/utils.mjs +1 -1
- package/dist/es/context/PresenceContext.mjs +1 -1
- package/dist/es/context/ReorderContext.mjs +1 -1
- package/dist/es/context/SwitchLayoutGroupContext.mjs +1 -1
- package/dist/es/events/event-info.mjs +11 -17
- package/dist/es/events/use-dom-event.mjs +4 -5
- package/dist/es/events/use-pointer-event.mjs +2 -2
- package/dist/es/events/utils.mjs +3 -9
- package/dist/es/gestures/PanSession.mjs +42 -47
- package/dist/es/gestures/drag/VisualElementDragControls.mjs +147 -157
- package/dist/es/gestures/drag/use-drag-controls.mjs +10 -12
- package/dist/es/gestures/drag/use-drag.mjs +4 -4
- package/dist/es/gestures/drag/utils/constraints.mjs +12 -17
- package/dist/es/gestures/drag/utils/lock.mjs +17 -17
- package/dist/es/gestures/use-focus-gesture.mjs +3 -4
- package/dist/es/gestures/use-hover-gesture.mjs +2 -3
- package/dist/es/gestures/use-pan-gesture.mjs +9 -10
- package/dist/es/gestures/use-tap-gesture.mjs +5 -6
- package/dist/es/gestures/utils/event-type.mjs +1 -1
- package/dist/es/gestures/utils/is-node-or-child.mjs +1 -1
- package/dist/es/index.mjs +1 -0
- package/dist/es/motion/features/animations.mjs +9 -11
- package/dist/es/motion/features/definitions.mjs +5 -5
- package/dist/es/motion/features/drag.mjs +1 -1
- package/dist/es/motion/features/gestures.mjs +1 -1
- package/dist/es/motion/features/layout/MeasureLayout.mjs +32 -40
- package/dist/es/motion/features/layout/index.mjs +1 -1
- package/dist/es/motion/features/use-features.mjs +8 -9
- package/dist/es/motion/features/use-projection.mjs +10 -11
- package/dist/es/motion/features/viewport/observers.mjs +12 -12
- package/dist/es/motion/features/viewport/use-viewport.mjs +17 -20
- package/dist/es/motion/index.mjs +13 -16
- package/dist/es/motion/utils/VisualElementHandler.mjs +10 -16
- package/dist/es/motion/utils/is-forced-motion-value.mjs +1 -2
- package/dist/es/motion/utils/make-renderless-component.mjs +2 -2
- package/dist/es/motion/utils/use-motion-ref.mjs +1 -1
- package/dist/es/motion/utils/use-visual-element.mjs +13 -13
- package/dist/es/motion/utils/use-visual-state.mjs +26 -31
- package/dist/es/motion/utils/valid-prop.mjs +1 -1
- package/dist/es/projection/animation/mix-values.mjs +12 -16
- package/dist/es/projection/geometry/conversion.mjs +4 -6
- package/dist/es/projection/geometry/delta-apply.mjs +14 -20
- package/dist/es/projection/geometry/delta-calc.mjs +2 -5
- package/dist/es/projection/geometry/delta-remove.mjs +6 -13
- package/dist/es/projection/geometry/models.mjs +7 -7
- package/dist/es/projection/node/DocumentProjectionNode.mjs +5 -5
- package/dist/es/projection/node/HTMLProjectionNode.mjs +8 -10
- package/dist/es/projection/node/create-projection-node.mjs +283 -307
- package/dist/es/projection/node/group.mjs +6 -8
- package/dist/es/projection/node/id.mjs +2 -2
- package/dist/es/projection/node/state.mjs +1 -1
- package/dist/es/projection/shared/stack.mjs +26 -27
- package/dist/es/projection/styles/scale-border-radius.mjs +5 -5
- package/dist/es/projection/styles/scale-box-shadow.mjs +18 -19
- package/dist/es/projection/styles/scale-correction.mjs +1 -1
- package/dist/es/projection/styles/transform.mjs +12 -12
- package/dist/es/projection/use-reset-projection.mjs +2 -2
- package/dist/es/projection/utils/has-transform.mjs +1 -2
- package/dist/es/projection/utils/measure.mjs +2 -2
- package/dist/es/render/dom/create-visual-element.mjs +1 -1
- package/dist/es/render/dom/features-animation.mjs +1 -2
- package/dist/es/render/dom/features-max.mjs +1 -2
- package/dist/es/render/dom/motion-minimal.mjs +1 -1
- package/dist/es/render/dom/motion-proxy.mjs +3 -4
- package/dist/es/render/dom/motion.mjs +2 -5
- package/dist/es/render/dom/use-render.mjs +6 -9
- package/dist/es/render/dom/utils/camel-to-dash.mjs +3 -5
- package/dist/es/render/dom/utils/create-config.mjs +5 -5
- package/dist/es/render/dom/utils/css-variables-conversion.mjs +19 -20
- package/dist/es/render/dom/utils/filter-props.mjs +4 -6
- package/dist/es/render/dom/utils/parse-dom-variant.mjs +2 -2
- package/dist/es/render/dom/utils/unit-conversion.mjs +68 -99
- package/dist/es/render/dom/value-types/animatable-none.mjs +1 -1
- package/dist/es/render/dom/value-types/defaults.mjs +4 -5
- package/dist/es/render/dom/value-types/dimensions.mjs +2 -4
- package/dist/es/render/dom/value-types/find.mjs +2 -3
- package/dist/es/render/dom/value-types/get-as-type.mjs +1 -1
- package/dist/es/render/dom/value-types/number.mjs +2 -2
- package/dist/es/render/dom/value-types/test.mjs +1 -1
- package/dist/es/render/dom/value-types/type-auto.mjs +3 -3
- package/dist/es/render/dom/value-types/type-int.mjs +1 -2
- package/dist/es/render/html/config-motion.mjs +1 -1
- package/dist/es/render/html/use-props.mjs +11 -13
- package/dist/es/render/html/utils/build-styles.mjs +8 -8
- package/dist/es/render/html/utils/build-transform.mjs +11 -16
- package/dist/es/render/html/utils/create-render-state.mjs +2 -2
- package/dist/es/render/html/utils/render.mjs +2 -3
- package/dist/es/render/html/utils/scrape-motion-values.mjs +3 -3
- package/dist/es/render/html/utils/transform.mjs +6 -10
- package/dist/es/render/html/visual-element.mjs +22 -23
- package/dist/es/render/index.mjs +359 -364
- package/dist/es/render/svg/config-motion.mjs +2 -3
- package/dist/es/render/svg/lowercase-elements.mjs +1 -1
- package/dist/es/render/svg/use-props.mjs +5 -6
- package/dist/es/render/svg/utils/build-attrs.mjs +2 -2
- package/dist/es/render/svg/utils/camel-case-attrs.mjs +1 -1
- package/dist/es/render/svg/utils/create-render-state.mjs +1 -2
- package/dist/es/render/svg/utils/path.mjs +7 -10
- package/dist/es/render/svg/utils/render.mjs +1 -1
- package/dist/es/render/svg/utils/scrape-motion-values.mjs +3 -3
- package/dist/es/render/svg/utils/transform-origin.mjs +3 -3
- package/dist/es/render/svg/visual-element.mjs +6 -4
- package/dist/es/render/utils/animation-state.mjs +71 -87
- package/dist/es/render/utils/animation.mjs +48 -60
- package/dist/es/render/utils/compare-by-depth.mjs +1 -3
- package/dist/es/render/utils/flat-tree.mjs +9 -10
- package/dist/es/render/utils/lifecycles.mjs +12 -19
- package/dist/es/render/utils/motion-values.mjs +16 -8
- package/dist/es/render/utils/setters.mjs +19 -19
- package/dist/es/render/utils/variants.mjs +6 -8
- package/dist/es/utils/array.mjs +9 -10
- package/dist/es/utils/is-browser.mjs +1 -1
- package/dist/es/utils/is-numerical-string.mjs +1 -1
- package/dist/es/utils/is-zero-value-string.mjs +1 -1
- package/dist/es/utils/process.mjs +2 -2
- package/dist/es/utils/resolve-value.mjs +2 -2
- package/dist/es/utils/shallow-compare.mjs +2 -2
- package/dist/es/utils/subscription-manager.mjs +15 -17
- package/dist/es/utils/time-conversion.mjs +1 -1
- package/dist/es/utils/transform.mjs +10 -15
- package/dist/es/utils/use-animation-frame.mjs +5 -6
- package/dist/es/utils/use-constant.mjs +1 -1
- package/dist/es/utils/use-cycle.mjs +9 -10
- package/dist/es/utils/use-force-update.mjs +4 -5
- package/dist/es/utils/use-in-view.mjs +7 -9
- package/dist/es/utils/use-instant-transition-state.mjs +1 -1
- package/dist/es/utils/use-instant-transition.mjs +6 -9
- package/dist/es/utils/use-is-mounted.mjs +3 -3
- package/dist/es/utils/use-isomorphic-effect.mjs +1 -1
- package/dist/es/utils/use-reduced-motion.mjs +8 -11
- package/dist/es/utils/use-unmount-effect.mjs +1 -1
- package/dist/es/utils/warn-once.mjs +1 -1
- package/dist/es/value/index.mjs +53 -59
- package/dist/es/value/use-combine-values.mjs +3 -3
- package/dist/es/value/use-inverted-scale.mjs +9 -11
- package/dist/es/value/use-motion-template.mjs +5 -9
- package/dist/es/value/use-motion-value.mjs +4 -5
- package/dist/es/value/use-on-change.mjs +4 -4
- package/dist/es/value/use-scroll.mjs +9 -11
- package/dist/es/value/use-spring.mjs +8 -10
- package/dist/es/value/use-time.mjs +2 -2
- package/dist/es/value/use-transform.mjs +6 -10
- package/dist/es/value/use-velocity.mjs +3 -3
- package/dist/es/value/use-will-change/index.mjs +50 -0
- package/dist/es/value/use-will-change/is.mjs +7 -0
- package/dist/es/value/utils/is-motion-value.mjs +1 -1
- package/dist/es/value/utils/resolve-motion-value.mjs +1 -1
- package/dist/framer-motion.dev.js +2134 -2414
- package/dist/framer-motion.js +1 -1
- package/dist/index.d.ts +9 -2
- package/dist/projection.dev.js +1154 -1300
- package/dist/size-rollup-dom-animation.js +1 -1
- package/dist/size-rollup-dom-max.js +1 -1
- package/dist/size-rollup-m.js +1 -1
- package/dist/size-webpack-dom-animation.js +1 -1
- package/dist/size-webpack-dom-max.js +1 -1
- package/dist/size-webpack-m.js +1 -1
- package/dist/three-entry.d.ts +0 -1
- 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
|
-
|
|
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
|
-
|
|
10
|
+
const order = ["translate", "scale", "rotate", "skew"];
|
|
11
11
|
/**
|
|
12
12
|
* Generate a list of every possible transform key.
|
|
13
13
|
*/
|
|
14
|
-
|
|
15
|
-
order.forEach(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
16
|
+
const htmlConfig = {
|
|
17
17
|
treeType: "dom",
|
|
18
|
-
readValueFromInstance
|
|
18
|
+
readValueFromInstance(domElement, key) {
|
|
19
19
|
if (isTransformProp(key)) {
|
|
20
|
-
|
|
20
|
+
const defaultType = getDefaultValueType(key);
|
|
21
21
|
return defaultType ? defaultType.default || 0 : 0;
|
|
22
22
|
}
|
|
23
23
|
else {
|
|
24
|
-
|
|
25
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
55
|
-
|
|
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
|
|
61
|
+
restoreTransform(instance, mutableState) {
|
|
63
62
|
instance.style.transform = mutableState.style.transform;
|
|
64
63
|
},
|
|
65
|
-
removeValueFromRenderState
|
|
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
|
|
75
|
-
var
|
|
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
|
-
|
|
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
|
-
|
|
90
|
+
const parsed = parseDomVariant(element, target, origin, transitionEnd);
|
|
93
91
|
transitionEnd = parsed.transitionEnd;
|
|
94
92
|
target = parsed.target;
|
|
95
93
|
}
|
|
96
|
-
return
|
|
94
|
+
return Object.assign({ transition,
|
|
95
|
+
transitionEnd }, target);
|
|
97
96
|
},
|
|
98
|
-
scrapeMotionValuesFromProps
|
|
99
|
-
build
|
|
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
|
-
|
|
108
|
+
const htmlVisualElement = visualElement(htmlConfig);
|
|
110
109
|
|
|
111
110
|
export { getComputedStyle, htmlConfig, htmlVisualElement };
|