framer-motion 6.5.1 → 7.0.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 (31) hide show
  1. package/README.md +14 -11
  2. package/dist/cjs/index.js +19 -25
  3. package/dist/es/components/AnimatePresence/PresenceChild.mjs +1 -2
  4. package/dist/es/components/AnimatePresence/use-presence.mjs +1 -2
  5. package/dist/es/context/MotionContext/create.mjs +1 -1
  6. package/dist/es/gestures/PanSession.mjs +1 -1
  7. package/dist/es/gestures/drag/VisualElementDragControls.mjs +2 -1
  8. package/dist/es/gestures/drag/utils/constraints.mjs +1 -1
  9. package/dist/es/projection/animation/mix-values.mjs +2 -2
  10. package/dist/es/projection/node/create-projection-node.mjs +1 -1
  11. package/dist/es/render/dom/utils/unit-conversion.mjs +1 -1
  12. package/dist/es/render/html/visual-element.mjs +1 -1
  13. package/dist/es/render/utils/motion-values.mjs +1 -1
  14. package/dist/es/utils/use-animation-frame.mjs +5 -7
  15. package/dist/es/value/index.mjs +1 -1
  16. package/dist/es/value/scroll/use-element-scroll.mjs +3 -0
  17. package/dist/es/value/scroll/use-viewport-scroll.mjs +3 -0
  18. package/dist/framer-motion.dev.js +51 -80
  19. package/dist/framer-motion.js +1 -1
  20. package/dist/index.d.ts +23 -7
  21. package/dist/projection.dev.js +7 -7
  22. package/dist/size-rollup-dom-animation.js +1 -1
  23. package/dist/size-rollup-dom-max.js +1 -1
  24. package/dist/size-webpack-dom-animation.js +1 -1
  25. package/dist/size-webpack-dom-max.js +1 -2
  26. package/dist/size-webpack-m.js +0 -1
  27. package/dist/three-entry.d.ts +2 -2
  28. package/package.json +17 -24
  29. package/dist/es/utils/use-id.mjs +0 -15
  30. package/dist/size-webpack-dom-max.js.LICENSE.txt +0 -14
  31. package/dist/size-webpack-m.js.LICENSE.txt +0 -14
@@ -27,7 +27,7 @@
27
27
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
28
28
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
29
29
 
30
- /*! *****************************************************************************
30
+ /******************************************************************************
31
31
  Copyright (c) Microsoft Corporation.
32
32
 
33
33
  Permission to use, copy, modify, and/or distribute this software for any
@@ -69,7 +69,7 @@
69
69
  return __assign.apply(this, arguments);
70
70
  };
71
71
 
72
- function __rest$1(s, e) {
72
+ function __rest(s, e) {
73
73
  var t = {};
74
74
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
75
75
  t[p] = s[p];
@@ -890,8 +890,8 @@
890
890
  const clamp$2 = (min, max) => (v) => Math.max(Math.min(v, max), min);
891
891
  const sanitize = (v) => (v % 1 ? Number(v.toFixed(5)) : v);
892
892
  const floatRegex = /(-)?([\d]*\.?[\d])+/g;
893
- const colorRegex = /(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))/gi;
894
- const singleColorRegex = /^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i;
893
+ const colorRegex = /(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))/gi;
894
+ const singleColorRegex = /^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))$/i;
895
895
  function isString$1(v) {
896
896
  return typeof v === 'string';
897
897
  }
@@ -1457,7 +1457,7 @@
1457
1457
  function buildSVGAttrs(state, _a, options, transformTemplate) {
1458
1458
  var attrX = _a.attrX, attrY = _a.attrY, originX = _a.originX, originY = _a.originY, pathLength = _a.pathLength, _b = _a.pathSpacing, pathSpacing = _b === void 0 ? 1 : _b, _c = _a.pathOffset, pathOffset = _c === void 0 ? 0 : _c,
1459
1459
  // This is object creation, which we try to avoid per-frame.
1460
- latest = __rest$1(_a, ["attrX", "attrY", "originX", "originY", "pathLength", "pathSpacing", "pathOffset"]);
1460
+ latest = __rest(_a, ["attrX", "attrY", "originX", "originY", "pathLength", "pathSpacing", "pathOffset"]);
1461
1461
  buildHTMLStyles(state, latest, options, transformTemplate);
1462
1462
  state.attrs = state.style;
1463
1463
  state.style = {};
@@ -1671,7 +1671,7 @@
1671
1671
  var resolved = resolveVariantFromProps(props, definition);
1672
1672
  if (!resolved)
1673
1673
  return;
1674
- var transitionEnd = resolved.transitionEnd; resolved.transition; var target = __rest$1(resolved, ["transitionEnd", "transition"]);
1674
+ var transitionEnd = resolved.transitionEnd; resolved.transition; var target = __rest(resolved, ["transitionEnd", "transition"]);
1675
1675
  for (var key in target) {
1676
1676
  var valueTarget = target[key];
1677
1677
  if (Array.isArray(valueTarget)) {
@@ -2101,7 +2101,7 @@
2101
2101
  return springOptions;
2102
2102
  }
2103
2103
  function spring(_a) {
2104
- var { from = 0.0, to = 1.0, restSpeed = 2, restDelta } = _a, options = __rest$1(_a, ["from", "to", "restSpeed", "restDelta"]);
2104
+ var { from = 0.0, to = 1.0, restSpeed = 2, restDelta } = _a, options = __rest(_a, ["from", "to", "restSpeed", "restDelta"]);
2105
2105
  const state = { done: false, value: from };
2106
2106
  let { stiffness, damping, mass, velocity, duration, isResolvedFromDuration, } = getSpringOptions(options);
2107
2107
  let resolveSpring = zero;
@@ -2567,12 +2567,12 @@
2567
2567
  }
2568
2568
 
2569
2569
  const defaultTimestep = (1 / 60) * 1000;
2570
- const getCurrentTime$1 = typeof performance !== "undefined"
2570
+ const getCurrentTime = typeof performance !== "undefined"
2571
2571
  ? () => performance.now()
2572
2572
  : () => Date.now();
2573
2573
  const onNextFrame = typeof window !== "undefined"
2574
2574
  ? (callback) => window.requestAnimationFrame(callback)
2575
- : (callback) => setTimeout(() => callback(getCurrentTime$1()), defaultTimestep);
2575
+ : (callback) => setTimeout(() => callback(getCurrentTime()), defaultTimestep);
2576
2576
 
2577
2577
  function createRenderStep(runNextFrame) {
2578
2578
  let toRun = [];
@@ -2709,7 +2709,7 @@
2709
2709
  };
2710
2710
  function animate$1(_a) {
2711
2711
  var _b, _c;
2712
- var { from, autoplay = true, driver = framesync, elapsed = 0, repeat: repeatMax = 0, repeatType = "loop", repeatDelay = 0, onPlay, onStop, onComplete, onRepeat, onUpdate } = _a, options = __rest$1(_a, ["from", "autoplay", "driver", "elapsed", "repeat", "repeatType", "repeatDelay", "onPlay", "onStop", "onComplete", "onRepeat", "onUpdate"]);
2712
+ var { from, autoplay = true, driver = framesync, elapsed = 0, repeat: repeatMax = 0, repeatType = "loop", repeatDelay = 0, onPlay, onStop, onComplete, onRepeat, onUpdate } = _a, options = __rest(_a, ["from", "autoplay", "driver", "elapsed", "repeat", "repeatType", "repeatDelay", "onPlay", "onStop", "onComplete", "onRepeat", "onUpdate"]);
2713
2713
  let { to } = options;
2714
2714
  let driverControls;
2715
2715
  let repeatCount = 0;
@@ -3029,7 +3029,7 @@
3029
3029
  entries.forEach(fireObserverCallback);
3030
3030
  };
3031
3031
  function initIntersectionObserver(_a) {
3032
- var root = _a.root, options = __rest$1(_a, ["root"]);
3032
+ var root = _a.root, options = __rest(_a, ["root"]);
3033
3033
  var lookupRoot = root || document;
3034
3034
  /**
3035
3035
  * If we don't have an observer lookup map for this root, create one.
@@ -3162,18 +3162,6 @@
3162
3162
  hover: makeRenderlessComponent(useHoverGesture),
3163
3163
  };
3164
3164
 
3165
- var counter = 0;
3166
- var incrementId = function () { return counter++; };
3167
- var useId = function () { return useConstant(incrementId); };
3168
- /**
3169
- * Ideally we'd use the following code to support React 18 optionally.
3170
- * But this fairly fails in Webpack (otherwise treeshaking wouldn't work at all).
3171
- * Need to come up with a different way of figuring this out.
3172
- */
3173
- // export const useId = (React as any).useId
3174
- // ? (React as any).useId
3175
- // : () => useConstant(incrementId)
3176
-
3177
3165
  /**
3178
3166
  * When a component is the child of `AnimatePresence`, it can use `usePresence`
3179
3167
  * to access information about whether it's still present in the React tree.
@@ -3205,7 +3193,7 @@
3205
3193
  // It's safe to call the following hooks conditionally (after an early return) because the context will always
3206
3194
  // either be null or non-null for the lifespan of the component.
3207
3195
  // Replace with useId when released in React
3208
- var id = useId();
3196
+ var id = React.useId();
3209
3197
  React.useEffect(function () { return register(id); }, []);
3210
3198
  var safeToRemove = function () { return onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete(id); };
3211
3199
  return !isPresent && onExitComplete ? [false, safeToRemove] : [true];
@@ -3401,7 +3389,7 @@
3401
3389
  * if any options are left.
3402
3390
  */
3403
3391
  function isTransitionDefined(_a) {
3404
- _a.when; _a.delay; _a.delayChildren; _a.staggerChildren; _a.staggerDirection; _a.repeat; _a.repeatType; _a.repeatDelay; _a.from; var transition = __rest$1(_a, ["when", "delay", "delayChildren", "staggerChildren", "staggerDirection", "repeat", "repeatType", "repeatDelay", "from"]);
3392
+ _a.when; _a.delay; _a.delayChildren; _a.staggerChildren; _a.staggerDirection; _a.repeat; _a.repeatType; _a.repeatDelay; _a.from; var transition = __rest(_a, ["when", "delay", "delayChildren", "staggerChildren", "staggerDirection", "repeat", "repeatType", "repeatDelay", "from"]);
3405
3393
  return !!Object.keys(transition).length;
3406
3394
  }
3407
3395
  var legacyRepeatWarning = false;
@@ -3409,7 +3397,7 @@
3409
3397
  * Convert Framer Motion's Transition type into Popmotion-compatible options.
3410
3398
  */
3411
3399
  function convertTransitionToAnimationOptions(_a) {
3412
- var ease = _a.ease, times = _a.times, yoyo = _a.yoyo, flip = _a.flip, loop = _a.loop, transition = __rest$1(_a, ["ease", "times", "yoyo", "flip", "loop"]);
3400
+ var ease = _a.ease, times = _a.times, yoyo = _a.yoyo, flip = _a.flip, loop = _a.loop, transition = __rest(_a, ["ease", "times", "yoyo", "flip", "loop"]);
3413
3401
  var options = __assign({}, transition);
3414
3402
  if (times)
3415
3403
  options["offset"] = times;
@@ -3682,7 +3670,7 @@
3682
3670
  * This will be replaced by the build step with the latest version number.
3683
3671
  * When MotionValues are provided to motion components, warn if versions are mixed.
3684
3672
  */
3685
- this.version = "6.5.1";
3673
+ this.version = "7.0.2";
3686
3674
  /**
3687
3675
  * Duration, in milliseconds, since last updating frame.
3688
3676
  *
@@ -4012,7 +4000,7 @@
4012
4000
  }
4013
4001
  function setTarget(visualElement, definition) {
4014
4002
  var resolved = resolveVariant(visualElement, definition);
4015
- var _a = resolved ? visualElement.makeTargetAnimatable(resolved, false) : {}, _b = _a.transitionEnd, transitionEnd = _b === void 0 ? {} : _b; _a.transition; var target = __rest$1(_a, ["transitionEnd", "transition"]);
4003
+ var _a = resolved ? visualElement.makeTargetAnimatable(resolved, false) : {}, _b = _a.transitionEnd, transitionEnd = _b === void 0 ? {} : _b; _a.transition; var target = __rest(_a, ["transitionEnd", "transition"]);
4016
4004
  target = __assign(__assign({}, target), transitionEnd);
4017
4005
  for (var key in target) {
4018
4006
  var value = resolveFinalValueInKeyframes(target[key]);
@@ -4172,7 +4160,7 @@
4172
4160
  function animateTarget(visualElement, definition, _a) {
4173
4161
  var _b;
4174
4162
  var _c = _a === void 0 ? {} : _a, _d = _c.delay, delay = _d === void 0 ? 0 : _d, transitionOverride = _c.transitionOverride, type = _c.type;
4175
- var _e = visualElement.makeTargetAnimatable(definition), _f = _e.transition, transition = _f === void 0 ? visualElement.getDefaultTransition() : _f, transitionEnd = _e.transitionEnd, target = __rest$1(_e, ["transition", "transitionEnd"]);
4163
+ var _e = visualElement.makeTargetAnimatable(definition), _f = _e.transition, transition = _f === void 0 ? visualElement.getDefaultTransition() : _f, transitionEnd = _e.transitionEnd, target = __rest(_e, ["transition", "transitionEnd"]);
4176
4164
  if (transitionOverride)
4177
4165
  transition = transitionOverride;
4178
4166
  var animations = [];
@@ -4272,7 +4260,7 @@
4272
4260
  var buildResolvedTypeValues = function (acc, definition) {
4273
4261
  var resolved = resolveVariant(visualElement, definition);
4274
4262
  if (resolved) {
4275
- resolved.transition; var transitionEnd = resolved.transitionEnd, target = __rest$1(resolved, ["transition", "transitionEnd"]);
4263
+ resolved.transition; var transitionEnd = resolved.transitionEnd, target = __rest(resolved, ["transition", "transitionEnd"]);
4276
4264
  acc = __assign(__assign(__assign({}, acc), target), transitionEnd);
4277
4265
  }
4278
4266
  return acc;
@@ -4608,8 +4596,8 @@
4608
4596
  */
4609
4597
  var PanSession = /** @class */ (function () {
4610
4598
  function PanSession(event, handlers, _a) {
4611
- var _this = this;
4612
4599
  var _b = _a === void 0 ? {} : _a, transformPagePoint = _b.transformPagePoint;
4600
+ var _this = this;
4613
4601
  /**
4614
4602
  * @internal
4615
4603
  */
@@ -5480,7 +5468,7 @@
5480
5468
  * If the element's layout changes, calculate the delta and apply that to
5481
5469
  * the drag gesture's origin point.
5482
5470
  */
5483
- projection.addEventListener("didUpdate", (function (_a) {
5471
+ var stopLayoutUpdateListener = projection.addEventListener("didUpdate", (function (_a) {
5484
5472
  var delta = _a.delta, hasLayoutChanged = _a.hasLayoutChanged;
5485
5473
  if (_this.isDragging && hasLayoutChanged) {
5486
5474
  eachAxis(function (axis) {
@@ -5497,6 +5485,7 @@
5497
5485
  stopResizeListener();
5498
5486
  stopPointerListener();
5499
5487
  stopMeasureLayoutListener();
5488
+ stopLayoutUpdateListener === null || stopLayoutUpdateListener === void 0 ? void 0 : stopLayoutUpdateListener();
5500
5489
  };
5501
5490
  };
5502
5491
  VisualElementDragControls.prototype.getProps = function () {
@@ -5651,7 +5640,7 @@
5651
5640
  * and warn against mismatches.
5652
5641
  */
5653
5642
  {
5654
- warnOnce(nextValue.version === "6.5.1", "Attempting to mix Framer Motion versions ".concat(nextValue.version, " with 6.5.1 may not work as expected."));
5643
+ warnOnce(nextValue.version === "7.0.2", "Attempting to mix Framer Motion versions ".concat(nextValue.version, " with 7.0.2 may not work as expected."));
5655
5644
  }
5656
5645
  }
5657
5646
  else if (isMotionValue(prevValue)) {
@@ -6124,7 +6113,7 @@
6124
6113
  */
6125
6114
  function resolveCSSVariables(visualElement, _a, transitionEnd) {
6126
6115
  var _b;
6127
- var target = __rest$1(_a, []);
6116
+ var target = __rest(_a, []);
6128
6117
  var element = visualElement.getInstance();
6129
6118
  if (!(element instanceof Element))
6130
6119
  return { target: target, transitionEnd: transitionEnd };
@@ -6490,9 +6479,9 @@
6490
6479
  * can be animated by Motion.
6491
6480
  */
6492
6481
  makeTargetAnimatable: function (element, _a, _b, isMounted) {
6482
+ var transition = _a.transition, transitionEnd = _a.transitionEnd, target = __rest(_a, ["transition", "transitionEnd"]);
6493
6483
  var transformValues = _b.transformValues;
6494
6484
  if (isMounted === void 0) { isMounted = true; }
6495
- var transition = _a.transition, transitionEnd = _a.transitionEnd, target = __rest$1(_a, ["transition", "transitionEnd"]);
6496
6485
  var origin = getOrigin(target, transition || {}, element);
6497
6486
  /**
6498
6487
  * If Framer has provided a function to convert `Color` etc value types, convert them
@@ -7152,9 +7141,9 @@
7152
7141
  var attachResizeListener = _a.attachResizeListener, defaultParent = _a.defaultParent, measureScroll = _a.measureScroll, checkIsScrollRoot = _a.checkIsScrollRoot, resetTransform = _a.resetTransform;
7153
7142
  return /** @class */ (function () {
7154
7143
  function ProjectionNode(id, latestValues, parent) {
7155
- var _this = this;
7156
7144
  if (latestValues === void 0) { latestValues = {}; }
7157
7145
  if (parent === void 0) { parent = defaultParent === null || defaultParent === void 0 ? void 0 : defaultParent(); }
7146
+ var _this = this;
7158
7147
  /**
7159
7148
  * A Set containing all this component's children. This is used to iterate
7160
7149
  * through the children.
@@ -8422,7 +8411,7 @@
8422
8411
  var PresenceChild = function (_a) {
8423
8412
  var children = _a.children, initial = _a.initial, isPresent = _a.isPresent, onExitComplete = _a.onExitComplete, custom = _a.custom, presenceAffectsLayout = _a.presenceAffectsLayout;
8424
8413
  var presenceChildren = useConstant(newChildrenMap);
8425
- var id = useId();
8414
+ var id = React.useId();
8426
8415
  var context = React.useMemo(function () { return ({
8427
8416
  id: id,
8428
8417
  initial: initial,
@@ -8704,7 +8693,7 @@
8704
8693
  * @public
8705
8694
  */
8706
8695
  function MotionConfig(_a) {
8707
- var children = _a.children, isValidProp = _a.isValidProp, config = __rest$1(_a, ["children", "isValidProp"]);
8696
+ var children = _a.children, isValidProp = _a.isValidProp, config = __rest(_a, ["children", "isValidProp"]);
8708
8697
  isValidProp && loadExternalIsValidProp(isValidProp);
8709
8698
  /**
8710
8699
  * Inherit props from any parent MotionConfig components
@@ -8766,14 +8755,14 @@
8766
8755
  * If this is a synchronous load, load features immediately
8767
8756
  */
8768
8757
  if (!isLazyBundle(features)) {
8769
- var renderer = features.renderer, loadedFeatures = __rest$1(features, ["renderer"]);
8758
+ var renderer = features.renderer, loadedFeatures = __rest(features, ["renderer"]);
8770
8759
  loadedRenderer.current = renderer;
8771
8760
  loadFeatures(loadedFeatures);
8772
8761
  }
8773
8762
  React.useEffect(function () {
8774
8763
  if (isLazyBundle(features)) {
8775
8764
  features().then(function (_a) {
8776
- var renderer = _a.renderer, loadedFeatures = __rest$1(_a, ["renderer"]);
8765
+ var renderer = _a.renderer, loadedFeatures = __rest(_a, ["renderer"]);
8777
8766
  loadFeatures(loadedFeatures);
8778
8767
  loadedRenderer.current = renderer;
8779
8768
  setIsLoaded(true);
@@ -8809,7 +8798,7 @@
8809
8798
  }
8810
8799
 
8811
8800
  function ReorderGroup(_a, externalRef) {
8812
- var children = _a.children, _b = _a.as, as = _b === void 0 ? "ul" : _b, _c = _a.axis, axis = _c === void 0 ? "y" : _c, onReorder = _a.onReorder, values = _a.values, props = __rest$1(_a, ["children", "as", "axis", "onReorder", "values"]);
8801
+ var children = _a.children, _b = _a.as, as = _b === void 0 ? "ul" : _b, _c = _a.axis, axis = _c === void 0 ? "y" : _c, onReorder = _a.onReorder, values = _a.values, props = __rest(_a, ["children", "as", "axis", "onReorder", "values"]);
8813
8802
  var Component = useConstant(function () { return motion(as); });
8814
8803
  var order = [];
8815
8804
  var isReordering = React.useRef(false);
@@ -8969,7 +8958,7 @@
8969
8958
  return isMotionValue(value) ? value : useMotionValue(defaultValue);
8970
8959
  }
8971
8960
  function ReorderItem(_a, externalRef) {
8972
- var children = _a.children, style = _a.style, value = _a.value, _b = _a.as, as = _b === void 0 ? "li" : _b, onDrag = _a.onDrag, _c = _a.layout, layout = _c === void 0 ? true : _c, props = __rest$1(_a, ["children", "style", "value", "as", "onDrag", "layout"]);
8961
+ var children = _a.children, style = _a.style, value = _a.value, _b = _a.as, as = _b === void 0 ? "li" : _b, onDrag = _a.onDrag, _c = _a.layout, layout = _c === void 0 ? true : _c, props = __rest(_a, ["children", "style", "value", "as", "onDrag", "layout"]);
8973
8962
  var Component = useConstant(function () { return motion(as); });
8974
8963
  var context = React.useContext(ReorderContext);
8975
8964
  var point = {
@@ -9123,7 +9112,7 @@
9123
9112
  const clamp = (min, max, v) => Math.min(Math.max(v, min), max);
9124
9113
 
9125
9114
  const isNumber = (value) => typeof value === "number";
9126
- const isString = (value) => typeof value === "string";
9115
+
9127
9116
  const isEasingList = (easing) => Array.isArray(easing) && !isNumber(easing[0]);
9128
9117
 
9129
9118
  const wrap = (min, max, v) => {
@@ -9179,6 +9168,10 @@
9179
9168
  };
9180
9169
  }
9181
9170
 
9171
+ const isFunction = (value) => typeof value === "function";
9172
+
9173
+ const isString = (value) => typeof value === "string";
9174
+
9182
9175
  /*
9183
9176
  Convert velocity into velocity per second
9184
9177
 
@@ -9209,33 +9202,6 @@
9209
9202
  return Array.from(elements || []);
9210
9203
  }
9211
9204
 
9212
- /******************************************************************************
9213
- Copyright (c) Microsoft Corporation.
9214
-
9215
- Permission to use, copy, modify, and/or distribute this software for any
9216
- purpose with or without fee is hereby granted.
9217
-
9218
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
9219
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
9220
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
9221
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
9222
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
9223
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
9224
- PERFORMANCE OF THIS SOFTWARE.
9225
- ***************************************************************************** */
9226
-
9227
- function __rest(s, e) {
9228
- var t = {};
9229
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
9230
- t[p] = s[p];
9231
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
9232
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
9233
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9234
- t[p[i]] = s[p[i]];
9235
- }
9236
- return t;
9237
- }
9238
-
9239
9205
  const thresholds = {
9240
9206
  any: 0,
9241
9207
  all: 1,
@@ -9263,7 +9229,7 @@
9263
9229
  return;
9264
9230
  if (entry.isIntersecting) {
9265
9231
  const newOnEnd = onStart(entry);
9266
- if (typeof newOnEnd === "function") {
9232
+ if (isFunction(newOnEnd)) {
9267
9233
  activeIntersections.set(entry.target, newOnEnd);
9268
9234
  }
9269
9235
  else {
@@ -9376,7 +9342,7 @@
9376
9342
  }
9377
9343
 
9378
9344
  function resize(a, b) {
9379
- return typeof a === "function" ? resizeWindow(a) : resizeElement(a, b);
9345
+ return isFunction(a) ? resizeWindow(a) : resizeElement(a, b);
9380
9346
  }
9381
9347
 
9382
9348
  /**
@@ -9626,7 +9592,7 @@
9626
9592
  resolveOffsets(element, info, options);
9627
9593
  }
9628
9594
  },
9629
- notify: typeof onScroll === "function"
9595
+ notify: isFunction(onScroll)
9630
9596
  ? () => onScroll(info)
9631
9597
  : scrubAnimation(onScroll, info[axis]),
9632
9598
  };
@@ -9732,7 +9698,7 @@
9732
9698
  }); };
9733
9699
  function useScroll(_a) {
9734
9700
  if (_a === void 0) { _a = {}; }
9735
- var container = _a.container, target = _a.target, options = __rest$1(_a, ["container", "target"]);
9701
+ var container = _a.container, target = _a.target, options = __rest(_a, ["container", "target"]);
9736
9702
  var values = useConstant(createScrollMotionValues);
9737
9703
  useIsomorphicLayoutEffect(function () {
9738
9704
  return scroll(function (_a) {
@@ -9746,28 +9712,33 @@
9746
9712
  return values;
9747
9713
  }
9748
9714
 
9715
+ /**
9716
+ * @deprecated useElementScroll is deprecated. Convert to useScroll({ container: ref })
9717
+ */
9749
9718
  function useElementScroll(ref) {
9750
9719
  warnOnce(false, "useElementScroll is deprecated. Convert to useScroll({ container: ref }).");
9751
9720
  return useScroll({ container: ref });
9752
9721
  }
9753
9722
 
9723
+ /**
9724
+ * @deprecated useViewportScroll is deprecated. Convert to useScroll()
9725
+ */
9754
9726
  function useViewportScroll() {
9755
9727
  warnOnce(false, "useViewportScroll is deprecated. Convert to useScroll().");
9756
9728
  return useScroll();
9757
9729
  }
9758
9730
 
9759
- var getCurrentTime = typeof performance !== "undefined"
9760
- ? function () { return performance.now(); }
9761
- : function () { return Date.now(); };
9762
9731
  function useAnimationFrame(callback) {
9763
- var initialTimestamp = useConstant(getCurrentTime);
9732
+ var initialTimestamp = React.useRef(0);
9764
9733
  var isStatic = React.useContext(MotionConfigContext).isStatic;
9765
9734
  React.useEffect(function () {
9766
9735
  if (isStatic)
9767
9736
  return;
9768
9737
  var provideTimeSinceStart = function (_a) {
9769
9738
  var timestamp = _a.timestamp;
9770
- callback(timestamp - initialTimestamp);
9739
+ if (!initialTimestamp.current)
9740
+ initialTimestamp.current = timestamp;
9741
+ callback(timestamp - initialTimestamp.current);
9771
9742
  };
9772
9743
  sync.update(provideTimeSinceStart, true);
9773
9744
  return function () { return cancelSync.update(provideTimeSinceStart); };
@@ -10094,7 +10065,7 @@
10094
10065
  return options.initialState[key] || 0;
10095
10066
  },
10096
10067
  makeTargetAnimatable: function (element, _a) {
10097
- var transition = _a.transition, transitionEnd = _a.transitionEnd, target = __rest$1(_a, ["transition", "transitionEnd"]);
10068
+ var transition = _a.transition, transitionEnd = _a.transitionEnd, target = __rest(_a, ["transition", "transitionEnd"]);
10098
10069
  var origin = getOrigin(target, transition || {}, element);
10099
10070
  checkTargetForNewValues(element, target, origin);
10100
10071
  return __assign({ transition: transition, transitionEnd: transitionEnd }, target);