@vysmo/easings 0.1.0
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/LICENSE +21 -0
- package/README.md +368 -0
- package/dist/builders/anticipate.d.ts +20 -0
- package/dist/builders/anticipate.d.ts.map +1 -0
- package/dist/builders/anticipate.js +52 -0
- package/dist/builders/anticipate.js.map +1 -0
- package/dist/builders/bezier.d.ts +7 -0
- package/dist/builders/bezier.d.ts.map +1 -0
- package/dist/builders/bezier.js +69 -0
- package/dist/builders/bezier.js.map +1 -0
- package/dist/builders/breathe.d.ts +11 -0
- package/dist/builders/breathe.d.ts.map +1 -0
- package/dist/builders/breathe.js +14 -0
- package/dist/builders/breathe.js.map +1 -0
- package/dist/builders/custom.d.ts +13 -0
- package/dist/builders/custom.d.ts.map +1 -0
- package/dist/builders/custom.js +40 -0
- package/dist/builders/custom.js.map +1 -0
- package/dist/builders/expoScale.d.ts +13 -0
- package/dist/builders/expoScale.d.ts.map +1 -0
- package/dist/builders/expoScale.js +27 -0
- package/dist/builders/expoScale.js.map +1 -0
- package/dist/builders/gravity.d.ts +12 -0
- package/dist/builders/gravity.d.ts.map +1 -0
- package/dist/builders/gravity.js +11 -0
- package/dist/builders/gravity.js.map +1 -0
- package/dist/builders/index.d.ts +12 -0
- package/dist/builders/index.d.ts.map +1 -0
- package/dist/builders/index.js +12 -0
- package/dist/builders/index.js.map +1 -0
- package/dist/builders/rough.d.ts +17 -0
- package/dist/builders/rough.d.ts.map +1 -0
- package/dist/builders/rough.js +62 -0
- package/dist/builders/rough.js.map +1 -0
- package/dist/builders/slow.d.ts +16 -0
- package/dist/builders/slow.d.ts.map +1 -0
- package/dist/builders/slow.js +59 -0
- package/dist/builders/slow.js.map +1 -0
- package/dist/builders/spring-presets.d.ts +48 -0
- package/dist/builders/spring-presets.d.ts.map +1 -0
- package/dist/builders/spring-presets.js +19 -0
- package/dist/builders/spring-presets.js.map +1 -0
- package/dist/builders/spring.d.ts +12 -0
- package/dist/builders/spring.d.ts.map +1 -0
- package/dist/builders/spring.js +46 -0
- package/dist/builders/spring.js.map +1 -0
- package/dist/builders/wiggle.d.ts +9 -0
- package/dist/builders/wiggle.d.ts.map +1 -0
- package/dist/builders/wiggle.js +23 -0
- package/dist/builders/wiggle.js.map +1 -0
- package/dist/css.d.ts +40 -0
- package/dist/css.d.ts.map +1 -0
- package/dist/css.js +71 -0
- package/dist/css.js.map +1 -0
- package/dist/define.d.ts +12 -0
- package/dist/define.d.ts.map +1 -0
- package/dist/define.js +31 -0
- package/dist/define.js.map +1 -0
- package/dist/easings/back.d.ts +8 -0
- package/dist/easings/back.d.ts.map +1 -0
- package/dist/easings/back.js +20 -0
- package/dist/easings/back.js.map +1 -0
- package/dist/easings/bounce.d.ts +4 -0
- package/dist/easings/bounce.d.ts.map +1 -0
- package/dist/easings/bounce.js +21 -0
- package/dist/easings/bounce.js.map +1 -0
- package/dist/easings/circ.d.ts +4 -0
- package/dist/easings/circ.d.ts.map +1 -0
- package/dist/easings/circ.js +7 -0
- package/dist/easings/circ.js.map +1 -0
- package/dist/easings/elastic.d.ts +9 -0
- package/dist/easings/elastic.d.ts.map +1 -0
- package/dist/easings/elastic.js +33 -0
- package/dist/easings/elastic.js.map +1 -0
- package/dist/easings/expo.d.ts +4 -0
- package/dist/easings/expo.d.ts.map +1 -0
- package/dist/easings/expo.js +11 -0
- package/dist/easings/expo.js.map +1 -0
- package/dist/easings/index.d.ts +11 -0
- package/dist/easings/index.d.ts.map +1 -0
- package/dist/easings/index.js +11 -0
- package/dist/easings/index.js.map +1 -0
- package/dist/easings/linear.d.ts +3 -0
- package/dist/easings/linear.d.ts.map +1 -0
- package/dist/easings/linear.js +4 -0
- package/dist/easings/linear.js.map +1 -0
- package/dist/easings/power.d.ts +25 -0
- package/dist/easings/power.d.ts.map +1 -0
- package/dist/easings/power.js +29 -0
- package/dist/easings/power.js.map +1 -0
- package/dist/easings/sine.d.ts +4 -0
- package/dist/easings/sine.d.ts.map +1 -0
- package/dist/easings/sine.js +6 -0
- package/dist/easings/sine.js.map +1 -0
- package/dist/easings/smooth.d.ts +4 -0
- package/dist/easings/smooth.d.ts.map +1 -0
- package/dist/easings/smooth.js +21 -0
- package/dist/easings/smooth.js.map +1 -0
- package/dist/easings/steps.d.ts +8 -0
- package/dist/easings/steps.d.ts.map +1 -0
- package/dist/easings/steps.js +16 -0
- package/dist/easings/steps.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/modifiers/blend.d.ts +13 -0
- package/dist/modifiers/blend.d.ts.map +1 -0
- package/dist/modifiers/blend.js +21 -0
- package/dist/modifiers/blend.js.map +1 -0
- package/dist/modifiers/chain.d.ts +18 -0
- package/dist/modifiers/chain.d.ts.map +1 -0
- package/dist/modifiers/chain.js +40 -0
- package/dist/modifiers/chain.js.map +1 -0
- package/dist/modifiers/index.d.ts +7 -0
- package/dist/modifiers/index.d.ts.map +1 -0
- package/dist/modifiers/index.js +7 -0
- package/dist/modifiers/index.js.map +1 -0
- package/dist/modifiers/mirror.d.ts +8 -0
- package/dist/modifiers/mirror.d.ts.map +1 -0
- package/dist/modifiers/mirror.js +14 -0
- package/dist/modifiers/mirror.js.map +1 -0
- package/dist/modifiers/reverse.d.ts +4 -0
- package/dist/modifiers/reverse.d.ts.map +1 -0
- package/dist/modifiers/reverse.js +6 -0
- package/dist/modifiers/reverse.js.map +1 -0
- package/dist/modifiers/slice.d.ts +11 -0
- package/dist/modifiers/slice.d.ts.map +1 -0
- package/dist/modifiers/slice.js +28 -0
- package/dist/modifiers/slice.js.map +1 -0
- package/dist/modifiers/yoyo.d.ts +8 -0
- package/dist/modifiers/yoyo.d.ts.map +1 -0
- package/dist/modifiers/yoyo.js +10 -0
- package/dist/modifiers/yoyo.js.map +1 -0
- package/dist/parse.d.ts +14 -0
- package/dist/parse.d.ts.map +1 -0
- package/dist/parse.js +108 -0
- package/dist/parse.js.map +1 -0
- package/dist/reduced-motion.d.ts +17 -0
- package/dist/reduced-motion.d.ts.map +1 -0
- package/dist/reduced-motion.js +24 -0
- package/dist/reduced-motion.js.map +1 -0
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +63 -0
- package/src/__tests__/anticipate-variants.test.ts +58 -0
- package/src/__tests__/builders.test.ts +349 -0
- package/src/__tests__/contract.test.ts +47 -0
- package/src/__tests__/css.test.ts +93 -0
- package/src/__tests__/easings.bench.ts +66 -0
- package/src/__tests__/endpoint-correctness.test.ts +170 -0
- package/src/__tests__/modifiers.test.ts +134 -0
- package/src/__tests__/parametric.test.ts +148 -0
- package/src/__tests__/parse.test.ts +71 -0
- package/src/__tests__/property.test.ts +110 -0
- package/src/__tests__/reduced-motion.test.ts +66 -0
- package/src/__tests__/slice.test.ts +38 -0
- package/src/__tests__/spring-presets.test.ts +48 -0
- package/src/__tests__/ssr.test.ts +62 -0
- package/src/__tests__/types-check.ts +104 -0
- package/src/builders/anticipate.ts +66 -0
- package/src/builders/bezier.ts +71 -0
- package/src/builders/breathe.ts +31 -0
- package/src/builders/custom.ts +43 -0
- package/src/builders/expoScale.ts +30 -0
- package/src/builders/gravity.ts +27 -0
- package/src/builders/index.ts +24 -0
- package/src/builders/rough.ts +83 -0
- package/src/builders/slow.ts +72 -0
- package/src/builders/spring-presets.ts +20 -0
- package/src/builders/spring.ts +61 -0
- package/src/builders/wiggle.ts +40 -0
- package/src/css.ts +79 -0
- package/src/define.ts +49 -0
- package/src/easings/back.ts +24 -0
- package/src/easings/bounce.ts +23 -0
- package/src/easings/circ.ts +9 -0
- package/src/easings/elastic.ts +52 -0
- package/src/easings/expo.ts +9 -0
- package/src/easings/index.ts +35 -0
- package/src/easings/linear.ts +4 -0
- package/src/easings/power.ts +38 -0
- package/src/easings/sine.ts +7 -0
- package/src/easings/smooth.ts +25 -0
- package/src/easings/steps.ts +25 -0
- package/src/index.ts +9 -0
- package/src/modifiers/blend.ts +24 -0
- package/src/modifiers/chain.ts +63 -0
- package/src/modifiers/index.ts +6 -0
- package/src/modifiers/mirror.ts +14 -0
- package/src/modifiers/reverse.ts +7 -0
- package/src/modifiers/slice.ts +29 -0
- package/src/modifiers/yoyo.ts +15 -0
- package/src/parse.ts +167 -0
- package/src/reduced-motion.ts +26 -0
- package/src/types.ts +8 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EACzB,OAAO,GAAE,mBAAwB,GAChC,QAAQ,CAcV;AAED,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,EACrD,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAC3C,OAAO,GAAE,mBAAwB,GAChC,gBAAgB,CAAC,CAAC,CAAC,CAYrB"}
|
package/dist/define.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export function defineEasing(name, fn, options = {}) {
|
|
2
|
+
const { exactEndpoints = true } = options;
|
|
3
|
+
const wrapped = ((t) => {
|
|
4
|
+
// Defensive: NaN and non-finite inputs collapse to 0. Better than
|
|
5
|
+
// propagating NaN through a whole animation pipeline.
|
|
6
|
+
if (!Number.isFinite(t))
|
|
7
|
+
return 0;
|
|
8
|
+
if (exactEndpoints) {
|
|
9
|
+
if (t <= 0)
|
|
10
|
+
return 0;
|
|
11
|
+
if (t >= 1)
|
|
12
|
+
return 1;
|
|
13
|
+
}
|
|
14
|
+
return fn(t);
|
|
15
|
+
});
|
|
16
|
+
Object.defineProperty(wrapped, "easingName", { value: name, enumerable: true });
|
|
17
|
+
return wrapped;
|
|
18
|
+
}
|
|
19
|
+
export function defineParametricEasing(name, defaults, build, options = {}) {
|
|
20
|
+
const base = defineEasing(name, build(defaults), options);
|
|
21
|
+
Object.defineProperty(base, "defaults", {
|
|
22
|
+
value: Object.freeze({ ...defaults }),
|
|
23
|
+
enumerable: true,
|
|
24
|
+
});
|
|
25
|
+
Object.defineProperty(base, "with", {
|
|
26
|
+
value: (params) => defineEasing(name, build({ ...defaults, ...params }), options),
|
|
27
|
+
enumerable: true,
|
|
28
|
+
});
|
|
29
|
+
return base;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=define.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,YAAY,CAC1B,IAAY,EACZ,EAAyB,EACzB,UAA+B,EAAE;IAEjC,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAC1C,MAAM,OAAO,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE;QAC7B,kEAAkE;QAClE,sDAAsD;QACtD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QAClC,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACf,CAAC,CAAa,CAAC;IACf,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAChF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,QAAW,EACX,KAA2C,EAC3C,UAA+B,EAAE;IAEjC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAwB,CAAC;IACjF,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE;QACtC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC;QACrC,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;QAClC,KAAK,EAAE,CAAC,MAAkB,EAAY,EAAE,CACtC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC;QAChE,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type BackParams = {
|
|
2
|
+
overshoot: number;
|
|
3
|
+
};
|
|
4
|
+
export declare const backIn: import("../types.js").ParametricEasing<BackParams>;
|
|
5
|
+
export declare const backOut: import("../types.js").ParametricEasing<BackParams>;
|
|
6
|
+
export declare const backInOut: import("../types.js").ParametricEasing<BackParams>;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=back.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"back.d.ts","sourceRoot":"","sources":["../../src/easings/back.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAIxC,eAAO,MAAM,MAAM,oDAEjB,CAAC;AAEH,eAAO,MAAM,OAAO,oDAGlB,CAAC;AAEH,eAAO,MAAM,SAAS,oDAQpB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { defineParametricEasing } from "../define.js";
|
|
2
|
+
const DEFAULTS = { overshoot: 1.70158 };
|
|
3
|
+
export const backIn = defineParametricEasing("back.in", DEFAULTS, ({ overshoot: s }) => (t) => {
|
|
4
|
+
return t * t * ((s + 1) * t - s);
|
|
5
|
+
});
|
|
6
|
+
export const backOut = defineParametricEasing("back.out", DEFAULTS, ({ overshoot: s }) => (t) => {
|
|
7
|
+
const u = t - 1;
|
|
8
|
+
return u * u * ((s + 1) * u + s) + 1;
|
|
9
|
+
});
|
|
10
|
+
export const backInOut = defineParametricEasing("back.inOut", DEFAULTS, ({ overshoot }) => {
|
|
11
|
+
const s = overshoot * 1.525;
|
|
12
|
+
return (t) => {
|
|
13
|
+
const u = t * 2;
|
|
14
|
+
if (u < 1)
|
|
15
|
+
return 0.5 * (u * u * ((s + 1) * u - s));
|
|
16
|
+
const v = u - 2;
|
|
17
|
+
return 0.5 * (v * v * ((s + 1) * v + s) + 2);
|
|
18
|
+
};
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=back.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"back.js","sourceRoot":"","sources":["../../src/easings/back.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAItD,MAAM,QAAQ,GAAe,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAEpD,MAAM,CAAC,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;IAC5F,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,sBAAsB,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;IAC9F,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,sBAAsB,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;IACxF,MAAM,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC;IAC5B,OAAO,CAAC,CAAC,EAAE,EAAE;QACX,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bounce.d.ts","sourceRoot":"","sources":["../../src/easings/bounce.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,SAAS,gCAA4C,CAAC;AACnE,eAAO,MAAM,QAAQ,gCAA6D,CAAC;AACnF,eAAO,MAAM,WAAW,gCAEvB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { defineEasing } from "../define.js";
|
|
2
|
+
function bounceOutImpl(t) {
|
|
3
|
+
const n = 7.5625;
|
|
4
|
+
const d = 2.75;
|
|
5
|
+
if (t < 1 / d)
|
|
6
|
+
return n * t * t;
|
|
7
|
+
if (t < 2 / d) {
|
|
8
|
+
const u = t - 1.5 / d;
|
|
9
|
+
return n * u * u + 0.75;
|
|
10
|
+
}
|
|
11
|
+
if (t < 2.5 / d) {
|
|
12
|
+
const u = t - 2.25 / d;
|
|
13
|
+
return n * u * u + 0.9375;
|
|
14
|
+
}
|
|
15
|
+
const u = t - 2.625 / d;
|
|
16
|
+
return n * u * u + 0.984375;
|
|
17
|
+
}
|
|
18
|
+
export const bounceOut = defineEasing("bounce.out", bounceOutImpl);
|
|
19
|
+
export const bounceIn = defineEasing("bounce.in", (t) => 1 - bounceOutImpl(1 - t));
|
|
20
|
+
export const bounceInOut = defineEasing("bounce.inOut", (t) => t < 0.5 ? (1 - bounceOutImpl(1 - 2 * t)) / 2 : (1 + bounceOutImpl(2 * t - 1)) / 2);
|
|
21
|
+
//# sourceMappingURL=bounce.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bounce.js","sourceRoot":"","sources":["../../src/easings/bounce.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,SAAS,aAAa,CAAC,CAAS;IAC9B,MAAM,CAAC,GAAG,MAAM,CAAC;IACjB,MAAM,CAAC,GAAG,IAAI,CAAC;IACf,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC1B,CAAC;IACD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;QAChB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IAC5B,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnF,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAC5D,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAClF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circ.d.ts","sourceRoot":"","sources":["../../src/easings/circ.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,gCAA2D,CAAC;AAC/E,eAAO,MAAM,OAAO,gCAAoE,CAAC;AACzF,eAAO,MAAM,SAAS,gCAIrB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { defineEasing } from "../define.js";
|
|
2
|
+
export const circIn = defineEasing("circ.in", (t) => 1 - Math.sqrt(1 - t * t));
|
|
3
|
+
export const circOut = defineEasing("circ.out", (t) => Math.sqrt(1 - (t - 1) * (t - 1)));
|
|
4
|
+
export const circInOut = defineEasing("circ.inOut", (t) => t < 0.5
|
|
5
|
+
? (1 - Math.sqrt(1 - (2 * t) ** 2)) / 2
|
|
6
|
+
: (Math.sqrt(1 - (-2 * t + 2) ** 2) + 1) / 2);
|
|
7
|
+
//# sourceMappingURL=circ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circ.js","sourceRoot":"","sources":["../../src/easings/circ.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/E,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzF,MAAM,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CACxD,CAAC,GAAG,GAAG;IACL,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IACvC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAC/C,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type ElasticParams = {
|
|
2
|
+
amplitude: number;
|
|
3
|
+
period: number;
|
|
4
|
+
};
|
|
5
|
+
export declare const elasticIn: import("../types.js").ParametricEasing<ElasticParams>;
|
|
6
|
+
export declare const elasticOut: import("../types.js").ParametricEasing<ElasticParams>;
|
|
7
|
+
export declare const elasticInOut: import("../types.js").ParametricEasing<ElasticParams>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=elastic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elastic.d.ts","sourceRoot":"","sources":["../../src/easings/elastic.ts"],"names":[],"mappings":"AAEA,KAAK,aAAa,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAa3D,eAAO,MAAM,SAAS,uDAQrB,CAAC;AAEF,eAAO,MAAM,UAAU,uDAQtB,CAAC;AAEF,eAAO,MAAM,YAAY,uDAgBxB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { defineParametricEasing } from "../define.js";
|
|
2
|
+
const DEFAULTS = { amplitude: 1, period: 0.3 };
|
|
3
|
+
const TAU = Math.PI * 2;
|
|
4
|
+
function resolveAmplitude(a) {
|
|
5
|
+
return a < 1 ? 1 : a;
|
|
6
|
+
}
|
|
7
|
+
function resolvePhase(a, p) {
|
|
8
|
+
return a < 1 ? p / 4 : (p / TAU) * Math.asin(1 / a);
|
|
9
|
+
}
|
|
10
|
+
export const elasticIn = defineParametricEasing("elastic.in", DEFAULTS, ({ amplitude, period }) => {
|
|
11
|
+
const a = resolveAmplitude(amplitude);
|
|
12
|
+
const s = resolvePhase(amplitude, period);
|
|
13
|
+
return (t) => -(a * 2 ** (10 * (t - 1)) * Math.sin(((t - 1 - s) * TAU) / period));
|
|
14
|
+
});
|
|
15
|
+
export const elasticOut = defineParametricEasing("elastic.out", DEFAULTS, ({ amplitude, period }) => {
|
|
16
|
+
const a = resolveAmplitude(amplitude);
|
|
17
|
+
const s = resolvePhase(amplitude, period);
|
|
18
|
+
return (t) => a * 2 ** (-10 * t) * Math.sin(((t - s) * TAU) / period) + 1;
|
|
19
|
+
});
|
|
20
|
+
export const elasticInOut = defineParametricEasing("elastic.inOut", DEFAULTS, ({ amplitude, period }) => {
|
|
21
|
+
const a = resolveAmplitude(amplitude);
|
|
22
|
+
const p = period * 1.5;
|
|
23
|
+
const s = resolvePhase(amplitude, p);
|
|
24
|
+
return (t) => {
|
|
25
|
+
const u = t * 2;
|
|
26
|
+
if (u < 1) {
|
|
27
|
+
return -0.5 * (a * 2 ** (10 * (u - 1)) * Math.sin(((u - 1 - s) * TAU) / p));
|
|
28
|
+
}
|
|
29
|
+
const v = u - 1;
|
|
30
|
+
return 0.5 * a * 2 ** (-10 * v) * Math.sin(((v - s) * TAU) / p) + 1;
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=elastic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elastic.js","sourceRoot":"","sources":["../../src/easings/elastic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expo.d.ts","sourceRoot":"","sources":["../../src/easings/expo.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,gCAAqE,CAAC;AACzF,eAAO,MAAM,OAAO,gCAAsE,CAAC;AAC3F,eAAO,MAAM,SAAS,gCAIpB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { defineEasing } from "../define.js";
|
|
2
|
+
export const expoIn = defineEasing("expo.in", (t) => (t === 0 ? 0 : 2 ** (10 * t - 10)));
|
|
3
|
+
export const expoOut = defineEasing("expo.out", (t) => (t === 1 ? 1 : 1 - 2 ** (-10 * t)));
|
|
4
|
+
export const expoInOut = defineEasing("expo.inOut", (t) => {
|
|
5
|
+
if (t === 0)
|
|
6
|
+
return 0;
|
|
7
|
+
if (t === 1)
|
|
8
|
+
return 1;
|
|
9
|
+
return t < 0.5 ? 2 ** (20 * t - 10) / 2 : (2 - 2 ** (-20 * t + 10)) / 2;
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=expo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expo.js","sourceRoot":"","sources":["../../src/easings/expo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACzF,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3F,MAAM,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;IACxD,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACtB,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACtB,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1E,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { linear, none } from "./linear.js";
|
|
2
|
+
export { power1In, power1Out, power1InOut, power2In, power2Out, power2InOut, power3In, power3Out, power3InOut, power4In, power4Out, power4InOut, quadIn, quadOut, quadInOut, cubicIn, cubicOut, cubicInOut, quartIn, quartOut, quartInOut, quintIn, quintOut, quintInOut, } from "./power.js";
|
|
3
|
+
export { sineIn, sineOut, sineInOut } from "./sine.js";
|
|
4
|
+
export { circIn, circOut, circInOut } from "./circ.js";
|
|
5
|
+
export { expoIn, expoOut, expoInOut } from "./expo.js";
|
|
6
|
+
export { smoothIn, smoothOut, smoothInOut } from "./smooth.js";
|
|
7
|
+
export { backIn, backOut, backInOut } from "./back.js";
|
|
8
|
+
export { elasticIn, elasticOut, elasticInOut } from "./elastic.js";
|
|
9
|
+
export { bounceIn, bounceOut, bounceInOut } from "./bounce.js";
|
|
10
|
+
export { steps, type StepPosition } from "./steps.js";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/easings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,QAAQ,EACR,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,EACT,WAAW,EACX,MAAM,EACN,OAAO,EACP,SAAS,EACT,OAAO,EACP,QAAQ,EACR,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { linear, none } from "./linear.js";
|
|
2
|
+
export { power1In, power1Out, power1InOut, power2In, power2Out, power2InOut, power3In, power3Out, power3InOut, power4In, power4Out, power4InOut, quadIn, quadOut, quadInOut, cubicIn, cubicOut, cubicInOut, quartIn, quartOut, quartInOut, quintIn, quintOut, quintInOut, } from "./power.js";
|
|
3
|
+
export { sineIn, sineOut, sineInOut } from "./sine.js";
|
|
4
|
+
export { circIn, circOut, circInOut } from "./circ.js";
|
|
5
|
+
export { expoIn, expoOut, expoInOut } from "./expo.js";
|
|
6
|
+
export { smoothIn, smoothOut, smoothInOut } from "./smooth.js";
|
|
7
|
+
export { backIn, backOut, backInOut } from "./back.js";
|
|
8
|
+
export { elasticIn, elasticOut, elasticInOut } from "./elastic.js";
|
|
9
|
+
export { bounceIn, bounceOut, bounceInOut } from "./bounce.js";
|
|
10
|
+
export { steps } from "./steps.js";
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/easings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,QAAQ,EACR,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,EACT,WAAW,EACX,MAAM,EACN,OAAO,EACP,SAAS,EACT,OAAO,EACP,QAAQ,EACR,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAqB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linear.d.ts","sourceRoot":"","sources":["../../src/easings/linear.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,gCAAmC,CAAC;AACvD,eAAO,MAAM,IAAI,gCAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linear.js","sourceRoot":"","sources":["../../src/easings/linear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare const power1In: import("../types.js").EasingFn;
|
|
2
|
+
export declare const power1Out: import("../types.js").EasingFn;
|
|
3
|
+
export declare const power1InOut: import("../types.js").EasingFn;
|
|
4
|
+
export declare const power2In: import("../types.js").EasingFn;
|
|
5
|
+
export declare const power2Out: import("../types.js").EasingFn;
|
|
6
|
+
export declare const power2InOut: import("../types.js").EasingFn;
|
|
7
|
+
export declare const power3In: import("../types.js").EasingFn;
|
|
8
|
+
export declare const power3Out: import("../types.js").EasingFn;
|
|
9
|
+
export declare const power3InOut: import("../types.js").EasingFn;
|
|
10
|
+
export declare const power4In: import("../types.js").EasingFn;
|
|
11
|
+
export declare const power4Out: import("../types.js").EasingFn;
|
|
12
|
+
export declare const power4InOut: import("../types.js").EasingFn;
|
|
13
|
+
export declare const quadIn: import("../types.js").EasingFn;
|
|
14
|
+
export declare const quadOut: import("../types.js").EasingFn;
|
|
15
|
+
export declare const quadInOut: import("../types.js").EasingFn;
|
|
16
|
+
export declare const cubicIn: import("../types.js").EasingFn;
|
|
17
|
+
export declare const cubicOut: import("../types.js").EasingFn;
|
|
18
|
+
export declare const cubicInOut: import("../types.js").EasingFn;
|
|
19
|
+
export declare const quartIn: import("../types.js").EasingFn;
|
|
20
|
+
export declare const quartOut: import("../types.js").EasingFn;
|
|
21
|
+
export declare const quartInOut: import("../types.js").EasingFn;
|
|
22
|
+
export declare const quintIn: import("../types.js").EasingFn;
|
|
23
|
+
export declare const quintOut: import("../types.js").EasingFn;
|
|
24
|
+
export declare const quintInOut: import("../types.js").EasingFn;
|
|
25
|
+
//# sourceMappingURL=power.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"power.d.ts","sourceRoot":"","sources":["../../src/easings/power.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,QAAQ,gCAAuC,CAAC;AAC7D,eAAO,MAAM,SAAS,gCAAyC,CAAC;AAChE,eAAO,MAAM,WAAW,gCAA6C,CAAC;AAEtE,eAAO,MAAM,QAAQ,gCAAuC,CAAC;AAC7D,eAAO,MAAM,SAAS,gCAAyC,CAAC;AAChE,eAAO,MAAM,WAAW,gCAA6C,CAAC;AAEtE,eAAO,MAAM,QAAQ,gCAAuC,CAAC;AAC7D,eAAO,MAAM,SAAS,gCAAyC,CAAC;AAChE,eAAO,MAAM,WAAW,gCAA6C,CAAC;AAEtE,eAAO,MAAM,QAAQ,gCAAuC,CAAC;AAC7D,eAAO,MAAM,SAAS,gCAAyC,CAAC;AAChE,eAAO,MAAM,WAAW,gCAA6C,CAAC;AAEtE,eAAO,MAAM,MAAM,gCAAW,CAAC;AAC/B,eAAO,MAAM,OAAO,gCAAY,CAAC;AACjC,eAAO,MAAM,SAAS,gCAAc,CAAC;AAErC,eAAO,MAAM,OAAO,gCAAW,CAAC;AAChC,eAAO,MAAM,QAAQ,gCAAY,CAAC;AAClC,eAAO,MAAM,UAAU,gCAAc,CAAC;AAEtC,eAAO,MAAM,OAAO,gCAAW,CAAC;AAChC,eAAO,MAAM,QAAQ,gCAAY,CAAC;AAClC,eAAO,MAAM,UAAU,gCAAc,CAAC;AAEtC,eAAO,MAAM,OAAO,gCAAW,CAAC;AAChC,eAAO,MAAM,QAAQ,gCAAY,CAAC;AAClC,eAAO,MAAM,UAAU,gCAAc,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { defineEasing } from "../define.js";
|
|
2
|
+
const makeIn = (n) => (t) => t ** n;
|
|
3
|
+
const makeOut = (n) => (t) => 1 - (1 - t) ** n;
|
|
4
|
+
const makeInOut = (n) => (t) => t < 0.5 ? 2 ** (n - 1) * t ** n : 1 - (-2 * t + 2) ** n / 2;
|
|
5
|
+
export const power1In = defineEasing("power1.in", makeIn(2));
|
|
6
|
+
export const power1Out = defineEasing("power1.out", makeOut(2));
|
|
7
|
+
export const power1InOut = defineEasing("power1.inOut", makeInOut(2));
|
|
8
|
+
export const power2In = defineEasing("power2.in", makeIn(3));
|
|
9
|
+
export const power2Out = defineEasing("power2.out", makeOut(3));
|
|
10
|
+
export const power2InOut = defineEasing("power2.inOut", makeInOut(3));
|
|
11
|
+
export const power3In = defineEasing("power3.in", makeIn(4));
|
|
12
|
+
export const power3Out = defineEasing("power3.out", makeOut(4));
|
|
13
|
+
export const power3InOut = defineEasing("power3.inOut", makeInOut(4));
|
|
14
|
+
export const power4In = defineEasing("power4.in", makeIn(5));
|
|
15
|
+
export const power4Out = defineEasing("power4.out", makeOut(5));
|
|
16
|
+
export const power4InOut = defineEasing("power4.inOut", makeInOut(5));
|
|
17
|
+
export const quadIn = power1In;
|
|
18
|
+
export const quadOut = power1Out;
|
|
19
|
+
export const quadInOut = power1InOut;
|
|
20
|
+
export const cubicIn = power2In;
|
|
21
|
+
export const cubicOut = power2Out;
|
|
22
|
+
export const cubicInOut = power2InOut;
|
|
23
|
+
export const quartIn = power3In;
|
|
24
|
+
export const quartOut = power3Out;
|
|
25
|
+
export const quartInOut = power3InOut;
|
|
26
|
+
export const quintIn = power4In;
|
|
27
|
+
export const quintOut = power4Out;
|
|
28
|
+
export const quintInOut = power4InOut;
|
|
29
|
+
//# sourceMappingURL=power.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"power.js","sourceRoot":"","sources":["../../src/easings/power.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACpD,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/D,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAS,EAAE,EAAE,CAC7C,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE9D,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtE,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtE,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtE,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtE,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC;AAC/B,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC;AACjC,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AAErC,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAChC,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC;AAClC,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;AAEtC,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAChC,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC;AAClC,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;AAEtC,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAChC,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC;AAClC,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sine.d.ts","sourceRoot":"","sources":["../../src/easings/sine.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,MAAM,gCAA4D,CAAC;AAChF,eAAO,MAAM,OAAO,gCAAyD,CAAC;AAC9E,eAAO,MAAM,SAAS,gCAAsE,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { defineEasing } from "../define.js";
|
|
2
|
+
const HALF_PI = Math.PI / 2;
|
|
3
|
+
export const sineIn = defineEasing("sine.in", (t) => 1 - Math.cos(t * HALF_PI));
|
|
4
|
+
export const sineOut = defineEasing("sine.out", (t) => Math.sin(t * HALF_PI));
|
|
5
|
+
export const sineInOut = defineEasing("sine.inOut", (t) => -(Math.cos(Math.PI * t) - 1) / 2);
|
|
6
|
+
//# sourceMappingURL=sine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sine.js","sourceRoot":"","sources":["../../src/easings/sine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAE5B,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;AAChF,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;AAC9E,MAAM,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smooth.d.ts","sourceRoot":"","sources":["../../src/easings/smooth.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,WAAW,gCAA2C,CAAC;AAIpE,eAAO,MAAM,QAAQ,gCAGnB,CAAC;AAGH,eAAO,MAAM,SAAS,gCAGpB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { defineEasing } from "../define.js";
|
|
2
|
+
// Hermite smoothstep. C¹-continuous at both endpoints — zero velocity
|
|
3
|
+
// at t=0 AND t=1. The canonical inOut shape from GLSL `smoothstep`,
|
|
4
|
+
// distinct from `power2.inOut` whose first derivative is non-zero at
|
|
5
|
+
// the endpoints. The in/out variants are derived by rescaling halves
|
|
6
|
+
// of the smoothstep curve, so they preserve Hermite smoothness on the
|
|
7
|
+
// "interior" endpoint (t=0 for in, t=1 for out).
|
|
8
|
+
const smoothstep = (t) => t * t * (3 - 2 * t);
|
|
9
|
+
export const smoothInOut = defineEasing("smooth.inOut", smoothstep);
|
|
10
|
+
// 2·smoothstep(t/2): first half of the inOut curve, scaled to [0, 1].
|
|
11
|
+
// f(0)=0, f(1)=1, f'(0)=0, f'(1)=1.5 — slow start, accelerates out.
|
|
12
|
+
export const smoothIn = defineEasing("smooth.in", (t) => {
|
|
13
|
+
const u = t / 2;
|
|
14
|
+
return 2 * smoothstep(u);
|
|
15
|
+
});
|
|
16
|
+
// Mirror of smoothIn. Fast start, decelerates to zero velocity at t=1.
|
|
17
|
+
export const smoothOut = defineEasing("smooth.out", (t) => {
|
|
18
|
+
const u = (1 - t) / 2;
|
|
19
|
+
return 1 - 2 * smoothstep(u);
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=smooth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smooth.js","sourceRoot":"","sources":["../../src/easings/smooth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,sEAAsE;AACtE,oEAAoE;AACpE,qEAAqE;AACrE,qEAAqE;AACrE,sEAAsE;AACtE,iDAAiD;AAEjD,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAEtD,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AAEpE,sEAAsE;AACtE,oEAAoE;AACpE,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;IACtD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEH,uEAAuE;AACvE,MAAM,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;IACxD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../../src/easings/steps.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAEpD,KAAK,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,CAAC;AAI7D,eAAO,MAAM,KAAK,qDAgBjB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { defineParametricEasing } from "../define.js";
|
|
2
|
+
const DEFAULTS = { count: 5, position: "end" };
|
|
3
|
+
export const steps = defineParametricEasing("steps", DEFAULTS, ({ count, position }) => {
|
|
4
|
+
const n = Math.max(1, Math.floor(count));
|
|
5
|
+
switch (position) {
|
|
6
|
+
case "end":
|
|
7
|
+
return (t) => Math.min(Math.floor(t * n), n) / n;
|
|
8
|
+
case "start":
|
|
9
|
+
return (t) => Math.min(Math.floor(t * n) + 1, n) / n;
|
|
10
|
+
case "none":
|
|
11
|
+
if (n === 1)
|
|
12
|
+
return () => 0;
|
|
13
|
+
return (t) => Math.min(Math.floor(t * n), n - 1) / (n - 1);
|
|
14
|
+
}
|
|
15
|
+
}, { exactEndpoints: false });
|
|
16
|
+
//# sourceMappingURL=steps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../../src/easings/steps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAMtD,MAAM,QAAQ,GAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAE5D,MAAM,CAAC,MAAM,KAAK,GAAG,sBAAsB,CACzC,OAAO,EACP,QAAQ,EACR,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IACtB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,KAAK;YACR,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QACnD,KAAK,OAAO;YACV,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QACvD,KAAK,MAAM;YACT,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;YAC5B,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,EACD,EAAE,cAAc,EAAE,KAAK,EAAE,CAC1B,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type { EasingFn, ParametricEasing } from "./types.js";
|
|
2
|
+
export { defineEasing, defineParametricEasing } from "./define.js";
|
|
3
|
+
export type { DefineEasingOptions } from "./define.js";
|
|
4
|
+
export * from "./easings/index.js";
|
|
5
|
+
export * from "./builders/index.js";
|
|
6
|
+
export * from "./modifiers/index.js";
|
|
7
|
+
export { toCSSLinear, toCSSBezier, toCSSKeyframes } from "./css.js";
|
|
8
|
+
export { parseEasing } from "./parse.js";
|
|
9
|
+
export { prefersReducedMotion, respectReducedMotion } from "./reduced-motion.js";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACnE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { defineEasing, defineParametricEasing } from "./define.js";
|
|
2
|
+
export * from "./easings/index.js";
|
|
3
|
+
export * from "./builders/index.js";
|
|
4
|
+
export * from "./modifiers/index.js";
|
|
5
|
+
export { toCSSLinear, toCSSBezier, toCSSKeyframes } from "./css.js";
|
|
6
|
+
export { parseEasing } from "./parse.js";
|
|
7
|
+
export { prefersReducedMotion, respectReducedMotion } from "./reduced-motion.js";
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAEnE,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { EasingFn } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Linearly interpolate between two eases. At weight=0 returns pure `a`;
|
|
4
|
+
* at weight=1 returns pure `b`; between is the weighted sum. Useful for
|
|
5
|
+
* morphing between easings or dialling in a custom shape from known eases.
|
|
6
|
+
*/
|
|
7
|
+
export declare function blend(a: EasingFn, b: EasingFn, weight: number): EasingFn;
|
|
8
|
+
/**
|
|
9
|
+
* Compose two eases: apply `a` first, then `b` to `a`'s output. The result
|
|
10
|
+
* is `b(a(t))`. Useful for doubly-applied curves ("ease then ease again").
|
|
11
|
+
*/
|
|
12
|
+
export declare function compose(a: EasingFn, b: EasingFn): EasingFn;
|
|
13
|
+
//# sourceMappingURL=blend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blend.d.ts","sourceRoot":"","sources":["../../src/modifiers/blend.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAOxE;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAE1D"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { defineEasing } from "../define.js";
|
|
2
|
+
/**
|
|
3
|
+
* Linearly interpolate between two eases. At weight=0 returns pure `a`;
|
|
4
|
+
* at weight=1 returns pure `b`; between is the weighted sum. Useful for
|
|
5
|
+
* morphing between easings or dialling in a custom shape from known eases.
|
|
6
|
+
*/
|
|
7
|
+
export function blend(a, b, weight) {
|
|
8
|
+
if (weight <= 0)
|
|
9
|
+
return a;
|
|
10
|
+
if (weight >= 1)
|
|
11
|
+
return b;
|
|
12
|
+
return defineEasing(`blend(${a.easingName}, ${b.easingName}, ${weight})`, (t) => a(t) * (1 - weight) + b(t) * weight);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Compose two eases: apply `a` first, then `b` to `a`'s output. The result
|
|
16
|
+
* is `b(a(t))`. Useful for doubly-applied curves ("ease then ease again").
|
|
17
|
+
*/
|
|
18
|
+
export function compose(a, b) {
|
|
19
|
+
return defineEasing(`compose(${b.easingName}, ${a.easingName})`, (t) => b(a(t)));
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=blend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blend.js","sourceRoot":"","sources":["../../src/modifiers/blend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,CAAW,EAAE,CAAW,EAAE,MAAc;IAC5D,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1B,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1B,OAAO,YAAY,CACjB,SAAS,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,UAAU,KAAK,MAAM,GAAG,EACpD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAC3C,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,CAAW,EAAE,CAAW;IAC9C,OAAO,YAAY,CAAC,WAAW,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { EasingFn } from "../types.js";
|
|
2
|
+
export type ChainSegment = {
|
|
3
|
+
/** Ease for this segment. Input t is [0, 1] within the segment. */
|
|
4
|
+
ease: EasingFn;
|
|
5
|
+
/** Fraction of total duration this segment occupies. Must be > 0. */
|
|
6
|
+
duration: number;
|
|
7
|
+
/** Starting output value for the segment. Defaults to previous segment's end or 0. */
|
|
8
|
+
from?: number;
|
|
9
|
+
/** Ending output value. Defaults to the next segment's `from` or 1. */
|
|
10
|
+
to?: number;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Chain multiple eases sequentially across [0, 1]. Each segment has its
|
|
14
|
+
* own duration and output range. Useful for multi-phase animations
|
|
15
|
+
* (e.g., "power2.in for 30%, then spring for 70%").
|
|
16
|
+
*/
|
|
17
|
+
export declare function chain(segments: ReadonlyArray<ChainSegment>): EasingFn;
|
|
18
|
+
//# sourceMappingURL=chain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/modifiers/chain.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,MAAM,YAAY,GAAG;IACzB,mEAAmE;IACnE,IAAI,EAAE,QAAQ,CAAC;IACf,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,GAAG,QAAQ,CA2CrE"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { defineEasing } from "../define.js";
|
|
2
|
+
/**
|
|
3
|
+
* Chain multiple eases sequentially across [0, 1]. Each segment has its
|
|
4
|
+
* own duration and output range. Useful for multi-phase animations
|
|
5
|
+
* (e.g., "power2.in for 30%, then spring for 70%").
|
|
6
|
+
*/
|
|
7
|
+
export function chain(segments) {
|
|
8
|
+
if (segments.length === 0) {
|
|
9
|
+
throw new RangeError("chain: at least one segment required");
|
|
10
|
+
}
|
|
11
|
+
const totalDuration = segments.reduce((sum, s) => sum + s.duration, 0);
|
|
12
|
+
if (totalDuration <= 0) {
|
|
13
|
+
throw new RangeError("chain: total duration must be > 0");
|
|
14
|
+
}
|
|
15
|
+
const resolved = [];
|
|
16
|
+
let cursor = 0;
|
|
17
|
+
for (let i = 0; i < segments.length; i++) {
|
|
18
|
+
const seg = segments[i];
|
|
19
|
+
const start = cursor;
|
|
20
|
+
const end = cursor + seg.duration / totalDuration;
|
|
21
|
+
const prevEnd = i > 0 ? resolved[i - 1].to : 0;
|
|
22
|
+
const nextFrom = segments[i + 1]?.from;
|
|
23
|
+
const from = seg.from ?? prevEnd;
|
|
24
|
+
const to = seg.to ?? nextFrom ?? (i === segments.length - 1 ? 1 : from);
|
|
25
|
+
resolved.push({ ease: seg.ease, start, end, from, to });
|
|
26
|
+
cursor = end;
|
|
27
|
+
}
|
|
28
|
+
const name = `chain(${segments.map((s) => s.ease.easingName).join(", ")})`;
|
|
29
|
+
return defineEasing(name, (t) => {
|
|
30
|
+
for (const seg of resolved) {
|
|
31
|
+
if (t <= seg.end) {
|
|
32
|
+
const span = seg.end - seg.start;
|
|
33
|
+
const localT = span === 0 ? 0 : (t - seg.start) / span;
|
|
34
|
+
return seg.from + (seg.to - seg.from) * seg.ease(localT);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return resolved[resolved.length - 1].to;
|
|
38
|
+
}, { exactEndpoints: false });
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=chain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/modifiers/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAc5C;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,QAAqC;IACzD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,UAAU,CAAC,sCAAsC,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACvE,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,UAAU,CAAC,mCAAmC,CAAC,CAAC;IAC5D,CAAC;IAQD,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC;QACrB,MAAM,GAAG,GAAG,MAAM,GAAG,GAAG,CAAC,QAAQ,GAAG,aAAa,CAAC;QAClD,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;QACvC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC;QACjC,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,QAAQ,IAAI,CAAC,CAAC,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,SAAS,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC3E,OAAO,YAAY,CACjB,IAAI,EACJ,CAAC,CAAC,EAAE,EAAE;QACJ,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC;gBACjC,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;gBACvD,OAAO,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,EAAE,CAAC;IAC3C,CAAC,EACD,EAAE,cAAc,EAAE,KAAK,EAAE,CAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { reverse } from "./reverse.js";
|
|
2
|
+
export { mirror } from "./mirror.js";
|
|
3
|
+
export { yoyo } from "./yoyo.js";
|
|
4
|
+
export { chain, type ChainSegment } from "./chain.js";
|
|
5
|
+
export { blend, compose } from "./blend.js";
|
|
6
|
+
export { slice } from "./slice.js";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|