Initial commit
This commit is contained in:
5
node_modules/framer-motion/dist/es/easing/anticipate.mjs
generated
vendored
Normal file
5
node_modules/framer-motion/dist/es/easing/anticipate.mjs
generated
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
import { backIn } from './back.mjs';
|
||||
|
||||
const anticipate = (p) => (p *= 2) < 1 ? 0.5 * backIn(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));
|
||||
|
||||
export { anticipate };
|
||||
9
node_modules/framer-motion/dist/es/easing/back.mjs
generated
vendored
Normal file
9
node_modules/framer-motion/dist/es/easing/back.mjs
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
import { cubicBezier } from './cubic-bezier.mjs';
|
||||
import { mirrorEasing } from './modifiers/mirror.mjs';
|
||||
import { reverseEasing } from './modifiers/reverse.mjs';
|
||||
|
||||
const backOut = /*@__PURE__*/ cubicBezier(0.33, 1.53, 0.69, 0.99);
|
||||
const backIn = /*@__PURE__*/ reverseEasing(backOut);
|
||||
const backInOut = /*@__PURE__*/ mirrorEasing(backIn);
|
||||
|
||||
export { backIn, backInOut, backOut };
|
||||
8
node_modules/framer-motion/dist/es/easing/circ.mjs
generated
vendored
Normal file
8
node_modules/framer-motion/dist/es/easing/circ.mjs
generated
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
import { mirrorEasing } from './modifiers/mirror.mjs';
|
||||
import { reverseEasing } from './modifiers/reverse.mjs';
|
||||
|
||||
const circIn = (p) => 1 - Math.sin(Math.acos(p));
|
||||
const circOut = reverseEasing(circIn);
|
||||
const circInOut = mirrorEasing(circIn);
|
||||
|
||||
export { circIn, circInOut, circOut };
|
||||
51
node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs
generated
vendored
Normal file
51
node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs
generated
vendored
Normal file
@ -0,0 +1,51 @@
|
||||
import { noop } from 'motion-utils';
|
||||
|
||||
/*
|
||||
Bezier function generator
|
||||
This has been modified from Gaëtan Renaudeau's BezierEasing
|
||||
https://github.com/gre/bezier-easing/blob/master/src/index.js
|
||||
https://github.com/gre/bezier-easing/blob/master/LICENSE
|
||||
|
||||
I've removed the newtonRaphsonIterate algo because in benchmarking it
|
||||
wasn't noticiably faster than binarySubdivision, indeed removing it
|
||||
usually improved times, depending on the curve.
|
||||
I also removed the lookup table, as for the added bundle size and loop we're
|
||||
only cutting ~4 or so subdivision iterations. I bumped the max iterations up
|
||||
to 12 to compensate and this still tended to be faster for no perceivable
|
||||
loss in accuracy.
|
||||
Usage
|
||||
const easeOut = cubicBezier(.17,.67,.83,.67);
|
||||
const x = easeOut(0.5); // returns 0.627...
|
||||
*/
|
||||
// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.
|
||||
const calcBezier = (t, a1, a2) => (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) *
|
||||
t;
|
||||
const subdivisionPrecision = 0.0000001;
|
||||
const subdivisionMaxIterations = 12;
|
||||
function binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {
|
||||
let currentX;
|
||||
let currentT;
|
||||
let i = 0;
|
||||
do {
|
||||
currentT = lowerBound + (upperBound - lowerBound) / 2.0;
|
||||
currentX = calcBezier(currentT, mX1, mX2) - x;
|
||||
if (currentX > 0.0) {
|
||||
upperBound = currentT;
|
||||
}
|
||||
else {
|
||||
lowerBound = currentT;
|
||||
}
|
||||
} while (Math.abs(currentX) > subdivisionPrecision &&
|
||||
++i < subdivisionMaxIterations);
|
||||
return currentT;
|
||||
}
|
||||
function cubicBezier(mX1, mY1, mX2, mY2) {
|
||||
// If this is a linear gradient, return linear easing
|
||||
if (mX1 === mY1 && mX2 === mY2)
|
||||
return noop;
|
||||
const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);
|
||||
// If animation is at start/end, return t without easing
|
||||
return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);
|
||||
}
|
||||
|
||||
export { cubicBezier };
|
||||
7
node_modules/framer-motion/dist/es/easing/ease.mjs
generated
vendored
Normal file
7
node_modules/framer-motion/dist/es/easing/ease.mjs
generated
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
import { cubicBezier } from './cubic-bezier.mjs';
|
||||
|
||||
const easeIn = /*@__PURE__*/ cubicBezier(0.42, 0, 1, 1);
|
||||
const easeOut = /*@__PURE__*/ cubicBezier(0, 0, 0.58, 1);
|
||||
const easeInOut = /*@__PURE__*/ cubicBezier(0.42, 0, 0.58, 1);
|
||||
|
||||
export { easeIn, easeInOut, easeOut };
|
||||
5
node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs
generated
vendored
Normal file
5
node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs
generated
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
// Accepts an easing function and returns a new one that outputs mirrored values for
|
||||
// the second half of the animation. Turns easeIn into easeInOut.
|
||||
const mirrorEasing = (easing) => (p) => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;
|
||||
|
||||
export { mirrorEasing };
|
||||
5
node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs
generated
vendored
Normal file
5
node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs
generated
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
// Accepts an easing function and returns a new one that outputs reversed values.
|
||||
// Turns easeIn into easeOut.
|
||||
const reverseEasing = (easing) => (p) => 1 - easing(1 - p);
|
||||
|
||||
export { reverseEasing };
|
||||
15
node_modules/framer-motion/dist/es/easing/steps.mjs
generated
vendored
Normal file
15
node_modules/framer-motion/dist/es/easing/steps.mjs
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
import { clamp } from '../utils/clamp.mjs';
|
||||
|
||||
function steps(numSteps, direction = "end") {
|
||||
return (progress) => {
|
||||
progress =
|
||||
direction === "end"
|
||||
? Math.min(progress, 0.999)
|
||||
: Math.max(progress, 0.001);
|
||||
const expanded = progress * numSteps;
|
||||
const rounded = direction === "end" ? Math.floor(expanded) : Math.ceil(expanded);
|
||||
return clamp(0, 1, rounded / numSteps);
|
||||
};
|
||||
}
|
||||
|
||||
export { steps };
|
||||
17
node_modules/framer-motion/dist/es/easing/utils/create-generator-easing.mjs
generated
vendored
Normal file
17
node_modules/framer-motion/dist/es/easing/utils/create-generator-easing.mjs
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
import { calcGeneratorDuration, maxGeneratorDuration } from '../../animation/generators/utils/calc-duration.mjs';
|
||||
import { millisecondsToSeconds } from '../../utils/time-conversion.mjs';
|
||||
|
||||
/**
|
||||
* Create a progress => progress easing function from a generator.
|
||||
*/
|
||||
function createGeneratorEasing(options, scale = 100, createGenerator) {
|
||||
const generator = createGenerator({ ...options, keyframes: [0, scale] });
|
||||
const duration = Math.min(calcGeneratorDuration(generator), maxGeneratorDuration);
|
||||
return {
|
||||
type: "keyframes",
|
||||
ease: (progress) => generator.next(duration * progress).value / scale,
|
||||
duration: millisecondsToSeconds(duration),
|
||||
};
|
||||
}
|
||||
|
||||
export { createGeneratorEasing };
|
||||
8
node_modules/framer-motion/dist/es/easing/utils/get-easing-for-segment.mjs
generated
vendored
Normal file
8
node_modules/framer-motion/dist/es/easing/utils/get-easing-for-segment.mjs
generated
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
import { wrap } from '../../utils/wrap.mjs';
|
||||
import { isEasingArray } from './is-easing-array.mjs';
|
||||
|
||||
function getEasingForSegment(easing, i) {
|
||||
return isEasingArray(easing) ? easing[wrap(0, easing.length, i)] : easing;
|
||||
}
|
||||
|
||||
export { getEasingForSegment };
|
||||
3
node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs
generated
vendored
Normal file
3
node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
const isBezierDefinition = (easing) => Array.isArray(easing) && typeof easing[0] === "number";
|
||||
|
||||
export { isBezierDefinition };
|
||||
5
node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs
generated
vendored
Normal file
5
node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs
generated
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
const isEasingArray = (ease) => {
|
||||
return Array.isArray(ease) && typeof ease[0] !== "number";
|
||||
};
|
||||
|
||||
export { isEasingArray };
|
||||
37
node_modules/framer-motion/dist/es/easing/utils/map.mjs
generated
vendored
Normal file
37
node_modules/framer-motion/dist/es/easing/utils/map.mjs
generated
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
import { invariant, noop } from 'motion-utils';
|
||||
import { cubicBezier } from '../cubic-bezier.mjs';
|
||||
import { easeIn, easeInOut, easeOut } from '../ease.mjs';
|
||||
import { circIn, circInOut, circOut } from '../circ.mjs';
|
||||
import { backIn, backInOut, backOut } from '../back.mjs';
|
||||
import { anticipate } from '../anticipate.mjs';
|
||||
import { isBezierDefinition } from './is-bezier-definition.mjs';
|
||||
|
||||
const easingLookup = {
|
||||
linear: noop,
|
||||
easeIn,
|
||||
easeInOut,
|
||||
easeOut,
|
||||
circIn,
|
||||
circInOut,
|
||||
circOut,
|
||||
backIn,
|
||||
backInOut,
|
||||
backOut,
|
||||
anticipate,
|
||||
};
|
||||
const easingDefinitionToFunction = (definition) => {
|
||||
if (isBezierDefinition(definition)) {
|
||||
// If cubic bezier definition, create bezier curve
|
||||
invariant(definition.length === 4, `Cubic bezier arrays must contain four numerical values.`);
|
||||
const [x1, y1, x2, y2] = definition;
|
||||
return cubicBezier(x1, y1, x2, y2);
|
||||
}
|
||||
else if (typeof definition === "string") {
|
||||
// Else lookup from table
|
||||
invariant(easingLookup[definition] !== undefined, `Invalid easing type '${definition}'`);
|
||||
return easingLookup[definition];
|
||||
}
|
||||
return definition;
|
||||
};
|
||||
|
||||
export { easingDefinitionToFunction };
|
||||
Reference in New Issue
Block a user