use-scroll-animate 4.9.0 → 5.0.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/CHANGELOG.md +19 -0
- package/README.md +2 -1
- package/README_ja.md +1 -0
- package/README_zh.md +2 -1
- package/dist/chunks/{base-BvpQ4Ggj.cjs → base-B5i8qQPR.cjs} +46 -40
- package/dist/chunks/base-B5i8qQPR.cjs.map +1 -0
- package/dist/chunks/{base-DbbRUxaa.js → base-C3Sw9sAO.js} +46 -41
- package/dist/chunks/base-C3Sw9sAO.js.map +1 -0
- package/dist/chunks/{core-BWO7JKJ5.cjs → core-BDcszY4L.cjs} +2 -2
- package/dist/chunks/{core-BWO7JKJ5.cjs.map → core-BDcszY4L.cjs.map} +1 -1
- package/dist/chunks/{core-CcaSsbV8.js → core-BTf__I-8.js} +2 -2
- package/dist/chunks/{core-CcaSsbV8.js.map → core-BTf__I-8.js.map} +1 -1
- package/dist/chunks/{core-CCAM3nKw.cjs → core-BjOYKSrV.cjs} +2 -2
- package/dist/chunks/{core-CCAM3nKw.cjs.map → core-BjOYKSrV.cjs.map} +1 -1
- package/dist/chunks/{core-BVTuet9o.js → core-DN3hHbHh.js} +2 -2
- package/dist/chunks/{core-BVTuet9o.js.map → core-DN3hHbHh.js.map} +1 -1
- package/dist/chunks/fx-B8hk1Fby.cjs +114 -0
- package/dist/chunks/fx-B8hk1Fby.cjs.map +1 -0
- package/dist/chunks/fx-ChjxrMBo.js +109 -0
- package/dist/chunks/fx-ChjxrMBo.js.map +1 -0
- package/dist/chunks/{index-tags-Dh8nwXqw.js → index-tags-DucKMQr_.js} +2 -1
- package/dist/chunks/{index-tags-Dh8nwXqw.js.map → index-tags-DucKMQr_.js.map} +1 -1
- package/dist/chunks/{index-tags-CIRY2KnU.cjs → index-tags-wv0R_vkO.cjs} +2 -1
- package/dist/chunks/{index-tags-CIRY2KnU.cjs.map → index-tags-wv0R_vkO.cjs.map} +1 -1
- package/dist/chunks/{spring-fFkqE9J0.cjs → spring--oZh55tB.cjs} +2 -2
- package/dist/chunks/{spring-fFkqE9J0.cjs.map → spring--oZh55tB.cjs.map} +1 -1
- package/dist/chunks/{spring-B6w7mVCU.js → spring-CckMe3x0.js} +2 -2
- package/dist/chunks/{spring-B6w7mVCU.js.map → spring-CckMe3x0.js.map} +1 -1
- package/dist/chunks/{variants-Cal4DB0E.js → variants-Bsevy6Xm.js} +2 -2
- package/dist/chunks/{variants-Cal4DB0E.js.map → variants-Bsevy6Xm.js.map} +1 -1
- package/dist/chunks/{variants-C8xj8gfd.cjs → variants-DxPmgrNX.cjs} +2 -2
- package/dist/chunks/{variants-C8xj8gfd.cjs.map → variants-DxPmgrNX.cjs.map} +1 -1
- package/dist/components/a11y.cjs +3 -2
- package/dist/components/a11y.cjs.map +1 -1
- package/dist/components/a11y.d.cts +1 -0
- package/dist/components/a11y.d.ts +1 -0
- package/dist/components/a11y.js +4 -3
- package/dist/components/a11y.js.map +1 -1
- package/dist/components/angular.cjs +8 -6
- package/dist/components/angular.cjs.map +1 -1
- package/dist/components/angular.d.cts +33 -4
- package/dist/components/angular.d.ts +33 -4
- package/dist/components/angular.js +8 -6
- package/dist/components/angular.js.map +1 -1
- package/dist/components/background.cjs +2 -4
- package/dist/components/background.cjs.map +1 -1
- package/dist/components/background.d.cts +2 -47
- package/dist/components/background.d.ts +2 -47
- package/dist/components/background.js +3 -4
- package/dist/components/background.js.map +1 -1
- package/dist/components/bridge.cjs +1 -1
- package/dist/components/bridge.js +1 -1
- package/dist/components/cards.cjs +2 -4
- package/dist/components/cards.cjs.map +1 -1
- package/dist/components/cards.d.cts +2 -47
- package/dist/components/cards.d.ts +2 -47
- package/dist/components/cards.js +2 -3
- package/dist/components/cards.js.map +1 -1
- package/dist/components/click.cjs +24 -130
- package/dist/components/click.cjs.map +1 -1
- package/dist/components/click.d.cts +2 -47
- package/dist/components/click.d.ts +2 -47
- package/dist/components/click.js +4 -109
- package/dist/components/click.js.map +1 -1
- package/dist/components/depth.cjs +3 -5
- package/dist/components/depth.cjs.map +1 -1
- package/dist/components/depth.d.cts +2 -47
- package/dist/components/depth.d.ts +2 -47
- package/dist/components/depth.js +3 -4
- package/dist/components/depth.js.map +1 -1
- package/dist/components/feedback.cjs +1 -3
- package/dist/components/feedback.cjs.map +1 -1
- package/dist/components/feedback.d.cts +2 -47
- package/dist/components/feedback.d.ts +2 -47
- package/dist/components/feedback.js +1 -2
- package/dist/components/feedback.js.map +1 -1
- package/dist/components/fx.cjs +285 -0
- package/dist/components/fx.cjs.map +1 -0
- package/dist/components/fx.css +3 -0
- package/dist/components/fx.d.cts +114 -0
- package/dist/components/fx.d.ts +114 -0
- package/dist/components/fx.js +271 -0
- package/dist/components/fx.js.map +1 -0
- package/dist/components/gesture.cjs +3 -5
- package/dist/components/gesture.cjs.map +1 -1
- package/dist/components/gesture.d.cts +2 -47
- package/dist/components/gesture.d.ts +2 -47
- package/dist/components/gesture.js +4 -5
- package/dist/components/gesture.js.map +1 -1
- package/dist/components/interaction.cjs +1 -3
- package/dist/components/interaction.cjs.map +1 -1
- package/dist/components/interaction.d.cts +2 -47
- package/dist/components/interaction.d.ts +2 -47
- package/dist/components/interaction.js +1 -2
- package/dist/components/interaction.js.map +1 -1
- package/dist/components/jsx.d.cts +1 -0
- package/dist/components/jsx.d.ts +1 -0
- package/dist/components/layout.cjs +1 -3
- package/dist/components/layout.cjs.map +1 -1
- package/dist/components/layout.d.cts +2 -47
- package/dist/components/layout.d.ts +2 -47
- package/dist/components/layout.js +2 -3
- package/dist/components/layout.js.map +1 -1
- package/dist/components/lazy.cjs +2 -1
- package/dist/components/lazy.cjs.map +1 -1
- package/dist/components/lazy.d.cts +1 -0
- package/dist/components/lazy.d.ts +1 -0
- package/dist/components/lazy.js +2 -1
- package/dist/components/lazy.js.map +1 -1
- package/dist/components/lite.cjs +362 -64
- package/dist/components/lite.cjs.map +1 -1
- package/dist/components/lite.js +345 -65
- package/dist/components/lite.js.map +1 -1
- package/dist/components/packs.cjs +1 -3
- package/dist/components/packs.cjs.map +1 -1
- package/dist/components/packs.d.cts +2 -47
- package/dist/components/packs.d.ts +2 -47
- package/dist/components/packs.js +2 -3
- package/dist/components/packs.js.map +1 -1
- package/dist/components/page.cjs +33 -22
- package/dist/components/page.cjs.map +1 -1
- package/dist/components/page.d.cts +15 -52
- package/dist/components/page.d.ts +15 -52
- package/dist/components/page.js +33 -22
- package/dist/components/page.js.map +1 -1
- package/dist/components/perf.cjs +3 -4
- package/dist/components/perf.cjs.map +1 -1
- package/dist/components/perf.d.cts +1 -0
- package/dist/components/perf.d.ts +1 -0
- package/dist/components/perf.js +4 -5
- package/dist/components/perf.js.map +1 -1
- package/dist/components/physics.cjs +2 -4
- package/dist/components/physics.cjs.map +1 -1
- package/dist/components/physics.d.cts +2 -47
- package/dist/components/physics.d.ts +2 -47
- package/dist/components/physics.js +3 -4
- package/dist/components/physics.js.map +1 -1
- package/dist/components/react.cjs +1 -1
- package/dist/components/react.js +1 -1
- package/dist/components/reveal.cjs +1 -3
- package/dist/components/reveal.cjs.map +1 -1
- package/dist/components/reveal.d.cts +2 -47
- package/dist/components/reveal.d.ts +2 -47
- package/dist/components/reveal.js +1 -2
- package/dist/components/reveal.js.map +1 -1
- package/dist/components/solid.cjs +8 -6
- package/dist/components/solid.cjs.map +1 -1
- package/dist/components/solid.d.cts +33 -4
- package/dist/components/solid.d.ts +33 -4
- package/dist/components/solid.js +8 -6
- package/dist/components/solid.js.map +1 -1
- package/dist/components/svelte.cjs +8 -6
- package/dist/components/svelte.cjs.map +1 -1
- package/dist/components/svelte.d.cts +33 -4
- package/dist/components/svelte.d.ts +33 -4
- package/dist/components/svelte.js +8 -6
- package/dist/components/svelte.js.map +1 -1
- package/dist/components/svg.cjs +1 -3
- package/dist/components/svg.cjs.map +1 -1
- package/dist/components/svg.d.cts +2 -47
- package/dist/components/svg.d.ts +2 -47
- package/dist/components/svg.js +2 -3
- package/dist/components/svg.js.map +1 -1
- package/dist/components/text.cjs +2 -4
- package/dist/components/text.cjs.map +1 -1
- package/dist/components/text.d.cts +2 -47
- package/dist/components/text.d.ts +2 -47
- package/dist/components/text.js +2 -3
- package/dist/components/text.js.map +1 -1
- package/dist/components/timeline.cjs +3 -7
- package/dist/components/timeline.cjs.map +1 -1
- package/dist/components/timeline.d.cts +4 -49
- package/dist/components/timeline.d.ts +4 -49
- package/dist/components/timeline.js +4 -7
- package/dist/components/timeline.js.map +1 -1
- package/dist/components/transitions.cjs +1 -3
- package/dist/components/transitions.cjs.map +1 -1
- package/dist/components/transitions.d.cts +2 -47
- package/dist/components/transitions.d.ts +2 -47
- package/dist/components/transitions.js +2 -3
- package/dist/components/transitions.js.map +1 -1
- package/dist/components/ui.cjs +3 -5
- package/dist/components/ui.cjs.map +1 -1
- package/dist/components/ui.d.cts +2 -47
- package/dist/components/ui.d.ts +2 -47
- package/dist/components/ui.js +4 -5
- package/dist/components/ui.js.map +1 -1
- package/dist/components/vue.cjs +8 -6
- package/dist/components/vue.cjs.map +1 -1
- package/dist/components/vue.d.cts +33 -4
- package/dist/components/vue.d.ts +33 -4
- package/dist/components/vue.js +8 -6
- package/dist/components/vue.js.map +1 -1
- package/dist/components/webgl.cjs +3 -5
- package/dist/components/webgl.cjs.map +1 -1
- package/dist/components/webgl.d.cts +2 -47
- package/dist/components/webgl.d.ts +2 -47
- package/dist/components/webgl.js +3 -4
- package/dist/components/webgl.js.map +1 -1
- package/dist/components.cjs +31 -10
- package/dist/components.cjs.map +1 -1
- package/dist/components.css +1 -0
- package/dist/components.d.cts +137 -17
- package/dist/components.d.ts +137 -17
- package/dist/components.js +15 -11
- package/dist/components.js.map +1 -1
- package/dist/components.umd.js +2 -2
- package/dist/components.umd.js.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +2 -2
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/docs/API.md +1 -1
- package/docs/ROADMAP.md +12 -12
- package/docs/components.md +14 -1
- package/docs/performance.md +1 -1
- package/docs/upgrading-5.md +2 -2
- package/package.json +14 -3
- package/dist/chunks/base-BvpQ4Ggj.cjs.map +0 -1
- package/dist/chunks/base-DbbRUxaa.js.map +0 -1
package/dist/components/lite.cjs
CHANGED
|
@@ -10,17 +10,16 @@ var _documentCurrentScript = typeof document !== 'undefined' ? document.currentS
|
|
|
10
10
|
* scripts. Classes are created the first time a `define*()` function runs.
|
|
11
11
|
*/
|
|
12
12
|
const MOTION_SENSITIVITY_LEVELS = ['full', 'gentle', 'minimal', 'static'];
|
|
13
|
-
const MOTION_SCALE = {
|
|
13
|
+
const MOTION_SCALE = { low: 0.6, normal: 1, high: 1.25 };
|
|
14
14
|
const config = { injectStyles: true, reducedMotion: 'user', motionIntensity: 'normal', motionSensitivity: 'full' };
|
|
15
15
|
/** Change global component settings (call before `define*()` for `injectStyles`). */
|
|
16
16
|
function configureComponents(options) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
17
|
+
options = { ...options };
|
|
18
|
+
// 5.0: removed values are ignored (see docs/upgrading-5.md)
|
|
19
|
+
if (options.motionIntensity && !(options.motionIntensity in MOTION_SCALE))
|
|
20
|
+
delete options.motionIntensity;
|
|
21
|
+
if (options.reducedMotion && options.reducedMotion !== 'reduce')
|
|
22
|
+
options.reducedMotion = 'user';
|
|
24
23
|
Object.assign(config, options);
|
|
25
24
|
if (options.motionIntensity && typeof document !== 'undefined') {
|
|
26
25
|
document.documentElement.style.setProperty('--usa-motion', String(MOTION_SCALE[options.motionIntensity] ?? 1));
|
|
@@ -65,15 +64,12 @@ function adaptKeyframes(frames, level = config.motionSensitivity) {
|
|
|
65
64
|
return out;
|
|
66
65
|
});
|
|
67
66
|
}
|
|
68
|
-
let quiet = 0;
|
|
69
67
|
/** Run `fn` without 4.9 deprecation warnings (library-internal calls). */
|
|
70
68
|
function withoutDeprecations(fn) {
|
|
71
|
-
quiet++;
|
|
72
69
|
try {
|
|
73
70
|
return fn();
|
|
74
71
|
}
|
|
75
72
|
finally {
|
|
76
|
-
quiet--;
|
|
77
73
|
}
|
|
78
74
|
}
|
|
79
75
|
/** The current global motion intensity. */
|
|
@@ -87,10 +83,10 @@ function motionScale() {
|
|
|
87
83
|
const canDefine = () => typeof customElements !== 'undefined' && typeof HTMLElement !== 'undefined';
|
|
88
84
|
/** `true` when animations should be reduced (OS setting or `configureComponents`). */
|
|
89
85
|
function prefersReducedMotion() {
|
|
90
|
-
if (config.
|
|
86
|
+
if (config.motionSensitivity === 'minimal' || config.motionSensitivity === 'static')
|
|
87
|
+
return true;
|
|
88
|
+
if (config.reducedMotion === 'reduce')
|
|
91
89
|
return true;
|
|
92
|
-
if (config.reducedMotion !== 'user')
|
|
93
|
-
return config.reducedMotion === 'reduce';
|
|
94
90
|
return typeof matchMedia === 'function' && !!matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
95
91
|
}
|
|
96
92
|
const injected = new Set();
|
|
@@ -226,31 +222,7 @@ function getBase() {
|
|
|
226
222
|
}
|
|
227
223
|
/** `el.animate()` that returns `null` (and applies the last frame) without WAAPI. */
|
|
228
224
|
motion(el, keyframes, options) {
|
|
229
|
-
|
|
230
|
-
applyFrame(el, keyframes[keyframes.length - 1]);
|
|
231
|
-
return null;
|
|
232
|
-
}
|
|
233
|
-
keyframes = adaptKeyframes(keyframes);
|
|
234
|
-
if (active$1 >= maxActive) {
|
|
235
|
-
applyFrame(el, keyframes[keyframes.length - 1]);
|
|
236
|
-
return null;
|
|
237
|
-
}
|
|
238
|
-
const k = motionScale();
|
|
239
|
-
if (k !== 1 && k > 0 && typeof options.duration === 'number')
|
|
240
|
-
options = { ...options, duration: options.duration * k, delay: (options.delay || 0) * k };
|
|
241
|
-
const a = el.animate(keyframes, options);
|
|
242
|
-
if (options.iterations !== Infinity) {
|
|
243
|
-
active$1++;
|
|
244
|
-
let done = false;
|
|
245
|
-
const end = () => {
|
|
246
|
-
if (!done) {
|
|
247
|
-
done = true;
|
|
248
|
-
active$1--;
|
|
249
|
-
}
|
|
250
|
-
};
|
|
251
|
-
a?.finished?.then(end, end);
|
|
252
|
-
}
|
|
253
|
-
return a;
|
|
225
|
+
return animateWithMotion(el, keyframes, options);
|
|
254
226
|
}
|
|
255
227
|
emit(type, detail) {
|
|
256
228
|
return this.dispatchEvent(new CustomEvent(`usa:${type}`, { detail, bubbles: true, cancelable: true }));
|
|
@@ -259,6 +231,39 @@ function getBase() {
|
|
|
259
231
|
baseClass = Base;
|
|
260
232
|
return baseClass;
|
|
261
233
|
}
|
|
234
|
+
/**
|
|
235
|
+
* `el.animate()` with the library's motion rules (5.0, shared by elements and
|
|
236
|
+
* registered effects): motion sensitivity (keyframes adapted, `static` →
|
|
237
|
+
* final frame), intensity (duration scale) and the animation budget. Returns
|
|
238
|
+
* `null` (final frame applied) when nothing should animate.
|
|
239
|
+
*/
|
|
240
|
+
function animateWithMotion(el, keyframes, options) {
|
|
241
|
+
if (typeof el.animate !== 'function' || config.motionSensitivity === 'static') {
|
|
242
|
+
applyFrame(el, keyframes[keyframes.length - 1]);
|
|
243
|
+
return null;
|
|
244
|
+
}
|
|
245
|
+
keyframes = adaptKeyframes(keyframes);
|
|
246
|
+
if (active$1 >= maxActive) {
|
|
247
|
+
applyFrame(el, keyframes[keyframes.length - 1]);
|
|
248
|
+
return null;
|
|
249
|
+
}
|
|
250
|
+
const k = motionScale();
|
|
251
|
+
if (k !== 1 && k > 0 && typeof options.duration === 'number')
|
|
252
|
+
options = { ...options, duration: options.duration * k, delay: (options.delay || 0) * k };
|
|
253
|
+
const a = el.animate(keyframes, options);
|
|
254
|
+
if (options.iterations !== Infinity) {
|
|
255
|
+
active$1++;
|
|
256
|
+
let done = false;
|
|
257
|
+
const end = () => {
|
|
258
|
+
if (!done) {
|
|
259
|
+
done = true;
|
|
260
|
+
active$1--;
|
|
261
|
+
}
|
|
262
|
+
};
|
|
263
|
+
a?.finished?.then(end, end);
|
|
264
|
+
}
|
|
265
|
+
return a;
|
|
266
|
+
}
|
|
262
267
|
/** Write a keyframe's properties as inline styles (no-WAAPI fallback). */
|
|
263
268
|
function applyFrame(el, frame) {
|
|
264
269
|
if (!frame)
|
|
@@ -419,6 +424,7 @@ const COMPONENT_CATEGORIES = {
|
|
|
419
424
|
depth: ['usa-cube', 'usa-depth'],
|
|
420
425
|
layout: ['usa-auto-animate', 'usa-masonry'],
|
|
421
426
|
packs: ['usa-pack'],
|
|
427
|
+
fx: ['usa-fx'],
|
|
422
428
|
};
|
|
423
429
|
|
|
424
430
|
/**
|
|
@@ -454,8 +460,7 @@ function autoDegrade(options = {}) {
|
|
|
454
460
|
state.reason = reason;
|
|
455
461
|
if (degraded) {
|
|
456
462
|
prev = { intensity: getMotionIntensity(), budget: animationBudget() };
|
|
457
|
-
|
|
458
|
-
configureComponents({ motionIntensity: 'low' });
|
|
463
|
+
configureComponents({ motionIntensity: 'low' });
|
|
459
464
|
setAnimationBudget(Math.max(4, Math.floor(maxActive / 2)));
|
|
460
465
|
}
|
|
461
466
|
else if (prev) {
|
|
@@ -7971,21 +7976,23 @@ function defineAutoSkeleton(tag = 'usa-auto-skeleton') {
|
|
|
7971
7976
|
|
|
7972
7977
|
var css$7 = "";
|
|
7973
7978
|
|
|
7979
|
+
const INTENSITIES = ['low', 'normal', 'high'];
|
|
7974
7980
|
const LEVELS = ['off', 'low', 'normal', 'high'];
|
|
7975
7981
|
const KEY$1 = 'usa:motion';
|
|
7976
|
-
let fromSwitch = false;
|
|
7977
7982
|
/**
|
|
7978
7983
|
* Set the global motion intensity for every `<usa-*>` component:
|
|
7979
|
-
* `'
|
|
7980
|
-
*
|
|
7981
|
-
*
|
|
7984
|
+
* `'low'`, `'normal'` (default), `'high'`. Sets `--usa-motion` and
|
|
7985
|
+
* `data-usa-motion` on `<html>`; with `persist` the choice is remembered
|
|
7986
|
+
* (localStorage) and restored by `restoreMotionIntensity()`.
|
|
7987
|
+
* 5.0: `'off'` was removed — use `setMotionSensitivity('minimal')`.
|
|
7982
7988
|
*/
|
|
7983
7989
|
function setMotionIntensity(level, persist = false) {
|
|
7984
|
-
if (!
|
|
7990
|
+
if (!INTENSITIES.includes(level))
|
|
7985
7991
|
return;
|
|
7986
|
-
|
|
7987
|
-
|
|
7988
|
-
|
|
7992
|
+
configureComponents({ motionIntensity: level });
|
|
7993
|
+
store(level, persist);
|
|
7994
|
+
}
|
|
7995
|
+
function store(level, persist) {
|
|
7989
7996
|
if (persist) {
|
|
7990
7997
|
try {
|
|
7991
7998
|
localStorage.setItem(KEY$1, level);
|
|
@@ -7997,30 +8004,39 @@ function setMotionIntensity(level, persist = false) {
|
|
|
7997
8004
|
if (typeof document !== 'undefined')
|
|
7998
8005
|
document.dispatchEvent(new CustomEvent('usa:motion', { detail: { level } }));
|
|
7999
8006
|
}
|
|
8000
|
-
/**
|
|
8007
|
+
/** Apply a switch level: `'off'` = motion sensitivity `minimal`, otherwise full motion at that intensity. */
|
|
8008
|
+
function setMotionLevel(level, persist = false) {
|
|
8009
|
+
if (!LEVELS.includes(level))
|
|
8010
|
+
return;
|
|
8011
|
+
if (level === 'off')
|
|
8012
|
+
configureComponents({ motionSensitivity: 'minimal' });
|
|
8013
|
+
else
|
|
8014
|
+
configureComponents({ motionIntensity: level, ...(getMotionSensitivity() === 'minimal' ? { motionSensitivity: 'full' } : {}) });
|
|
8015
|
+
store(level, persist);
|
|
8016
|
+
}
|
|
8017
|
+
/** The current switch level. */
|
|
8018
|
+
function getMotionLevel() {
|
|
8019
|
+
return getMotionSensitivity() === 'minimal' || getMotionSensitivity() === 'static' ? 'off' : getMotionIntensity();
|
|
8020
|
+
}
|
|
8021
|
+
/** Re-apply a persisted level (call early on page load). Returns the active intensity. */
|
|
8001
8022
|
function restoreMotionIntensity() {
|
|
8002
8023
|
try {
|
|
8003
8024
|
const v = localStorage.getItem(KEY$1);
|
|
8004
|
-
if (v && LEVELS.includes(v))
|
|
8005
|
-
|
|
8006
|
-
setMotionIntensity(v);
|
|
8007
|
-
}
|
|
8025
|
+
if (v && LEVELS.includes(v))
|
|
8026
|
+
setMotionLevel(v);
|
|
8008
8027
|
}
|
|
8009
8028
|
catch {
|
|
8010
8029
|
/* ignore */
|
|
8011
8030
|
}
|
|
8012
|
-
fromSwitch = false;
|
|
8013
8031
|
return getMotionIntensity();
|
|
8014
8032
|
}
|
|
8015
8033
|
function defineMotionSwitch(tag = 'usa-motion-switch') {
|
|
8016
8034
|
return defineElement(tag, (Base) => class UsaMotionSwitch extends Base {
|
|
8017
8035
|
get value() {
|
|
8018
|
-
return
|
|
8036
|
+
return getMotionLevel();
|
|
8019
8037
|
}
|
|
8020
8038
|
set value(v) {
|
|
8021
|
-
|
|
8022
|
-
setMotionIntensity(v, true);
|
|
8023
|
-
fromSwitch = false;
|
|
8039
|
+
setMotionLevel(v, true);
|
|
8024
8040
|
this.sync();
|
|
8025
8041
|
}
|
|
8026
8042
|
mount() {
|
|
@@ -8211,9 +8227,7 @@ function defineTimeline(tag = 'usa-timeline') {
|
|
|
8211
8227
|
// (0–0.95) or `scrub="js"` opt into the JS engine, `scrub="scroll"`
|
|
8212
8228
|
// follows this element's own scroll position.
|
|
8213
8229
|
const v = this.str('scrub');
|
|
8214
|
-
|
|
8215
|
-
deprecate('timeline-scrub-js', '<usa-timeline scrub="js"> is deprecated and will be removed in 5.0 — the JS engine is picked automatically where native scroll timelines are missing; add smooth="…" to opt into smoothing.');
|
|
8216
|
-
const stop = tl.scrub(this, { smooth: this.num('smooth', 0), engine: v === 'js' ? 'js' : 'auto', source: v === 'scroll' ? 'scroll' : 'view' });
|
|
8230
|
+
const stop = tl.scrub(this, { smooth: this.num('smooth', 0), engine: 'auto', source: v === 'scroll' ? 'scroll' : 'view' });
|
|
8217
8231
|
this.toggleAttribute('data-native', stop.native);
|
|
8218
8232
|
this.onCleanup(stop);
|
|
8219
8233
|
return;
|
|
@@ -9010,7 +9024,7 @@ function supportsWebGL() {
|
|
|
9010
9024
|
return support;
|
|
9011
9025
|
try {
|
|
9012
9026
|
const c = typeof document !== 'undefined' ? document.createElement('canvas') : null;
|
|
9013
|
-
support = !!(c && (c.getContext('webgl')
|
|
9027
|
+
support = !!(c && (c.getContext('webgl')));
|
|
9014
9028
|
}
|
|
9015
9029
|
catch {
|
|
9016
9030
|
support = false;
|
|
@@ -9021,7 +9035,7 @@ function supportsWebGL() {
|
|
|
9021
9035
|
function glQuad(canvas, frag) {
|
|
9022
9036
|
let gl = null;
|
|
9023
9037
|
try {
|
|
9024
|
-
gl = (canvas.getContext('webgl', { premultipliedAlpha: false, antialias: false })
|
|
9038
|
+
gl = (canvas.getContext('webgl', { premultipliedAlpha: false, antialias: false }));
|
|
9025
9039
|
}
|
|
9026
9040
|
catch {
|
|
9027
9041
|
gl = null;
|
|
@@ -10079,6 +10093,270 @@ function definePacksComponents() {
|
|
|
10079
10093
|
definePack();
|
|
10080
10094
|
}
|
|
10081
10095
|
|
|
10096
|
+
/**
|
|
10097
|
+
* 5.0 — unified plugin-style effect registration. Every effect (built-in or
|
|
10098
|
+
* yours) is a plain object registered once and played the same way:
|
|
10099
|
+
* `playEffect(el, name)`, `bindEffect(el, name, { trigger })` or
|
|
10100
|
+
* `<usa-fx effect="name" trigger="click">`. Effects get a context that
|
|
10101
|
+
* already applies reduced motion, motion sensitivity, intensity and the
|
|
10102
|
+
* animation budget.
|
|
10103
|
+
*/
|
|
10104
|
+
const EFFECT_KINDS = ['enter', 'exit', 'attention', 'click', 'hover', 'card', 'loop', 'page', 'background', 'text', 'cursor', 'scroll'];
|
|
10105
|
+
const EFFECT_TRIGGERS = ['click', 'hover', 'enter', 'load', 'loop', 'manual'];
|
|
10106
|
+
const registry = new Map();
|
|
10107
|
+
/** Register an effect (throws on a duplicate name unless `override`). Returns an unregister function. */
|
|
10108
|
+
function registerEffect(def, opts = {}) {
|
|
10109
|
+
if (!/^[a-z][a-z0-9-]*$/.test(def.name))
|
|
10110
|
+
throw new Error(`[use-scroll-animate] invalid effect name "${def.name}"`);
|
|
10111
|
+
if (!EFFECT_KINDS.includes(def.kind))
|
|
10112
|
+
throw new Error(`[use-scroll-animate] unknown effect kind "${def.kind}"`);
|
|
10113
|
+
if (registry.has(def.name) && !opts.override)
|
|
10114
|
+
throw new Error(`[use-scroll-animate] effect "${def.name}" is already registered`);
|
|
10115
|
+
registry.set(def.name, def);
|
|
10116
|
+
return () => {
|
|
10117
|
+
if (registry.get(def.name) === def)
|
|
10118
|
+
registry.delete(def.name);
|
|
10119
|
+
};
|
|
10120
|
+
}
|
|
10121
|
+
/** Register several effects at once (already-registered names are skipped). */
|
|
10122
|
+
function registerEffects(defs) {
|
|
10123
|
+
for (const d of defs)
|
|
10124
|
+
if (!registry.has(d.name))
|
|
10125
|
+
registerEffect(d);
|
|
10126
|
+
}
|
|
10127
|
+
const getEffect = (name) => registry.get(name);
|
|
10128
|
+
const hasEffect = (name) => registry.has(name);
|
|
10129
|
+
/** Registered effects (optionally of one kind), sorted by name. */
|
|
10130
|
+
function listEffects(kind) {
|
|
10131
|
+
return Array.from(registry.values())
|
|
10132
|
+
.filter((d) => !kind || d.kind === kind)
|
|
10133
|
+
.sort((a, b) => a.name.localeCompare(b.name));
|
|
10134
|
+
}
|
|
10135
|
+
const SKIP_BY_DEFAULT = ['loop', 'background', 'cursor'];
|
|
10136
|
+
function context(event) {
|
|
10137
|
+
const cleanups = [];
|
|
10138
|
+
return {
|
|
10139
|
+
reduced: prefersReducedMotion(),
|
|
10140
|
+
sensitivity: getMotionSensitivity(),
|
|
10141
|
+
event,
|
|
10142
|
+
animate: animateWithMotion,
|
|
10143
|
+
onCleanup: (fn) => cleanups.push(fn),
|
|
10144
|
+
cleanups,
|
|
10145
|
+
};
|
|
10146
|
+
}
|
|
10147
|
+
/**
|
|
10148
|
+
* Play a registered effect once on `el`. Resolves when it finishes (or
|
|
10149
|
+
* immediately for fire-and-forget effects). Unknown names reject.
|
|
10150
|
+
*/
|
|
10151
|
+
async function playEffect(el, name, options = {}, event) {
|
|
10152
|
+
const def = registry.get(name);
|
|
10153
|
+
if (!def)
|
|
10154
|
+
throw new Error(`[use-scroll-animate] unknown effect "${name}" — registered: ${Array.from(registry.keys()).join(', ')}`);
|
|
10155
|
+
const ctx = context(event);
|
|
10156
|
+
if (ctx.reduced && (def.reduced ?? (SKIP_BY_DEFAULT.includes(def.kind) ? 'skip' : 'run')) === 'skip')
|
|
10157
|
+
return;
|
|
10158
|
+
const out = def.run(el, { ...(def.defaults || {}), ...options }, ctx);
|
|
10159
|
+
if (out && typeof out.finished?.then === 'function')
|
|
10160
|
+
await out.finished.catch(() => undefined);
|
|
10161
|
+
else if (out && typeof out.then === 'function')
|
|
10162
|
+
await out;
|
|
10163
|
+
}
|
|
10164
|
+
/**
|
|
10165
|
+
* Bind an effect to a trigger on `el`: `click`, `hover` (pointerenter / focus),
|
|
10166
|
+
* `enter` (scrolls into view; `once` by default), `load` (now), `loop`
|
|
10167
|
+
* (starts now, cleanup stops it) or `manual` (nothing). Returns an unbind.
|
|
10168
|
+
*/
|
|
10169
|
+
function bindEffect(el, name, options = {}) {
|
|
10170
|
+
const { trigger = 'click', once, ...opts } = options;
|
|
10171
|
+
const def = registry.get(name);
|
|
10172
|
+
if (!def)
|
|
10173
|
+
throw new Error(`[use-scroll-animate] unknown effect "${name}"`);
|
|
10174
|
+
const offs = [];
|
|
10175
|
+
const fire = (e) => {
|
|
10176
|
+
if (trigger === 'loop' || def.kind === 'loop' || def.kind === 'background' || def.kind === 'cursor') {
|
|
10177
|
+
const ctx = context(e);
|
|
10178
|
+
if (ctx.reduced && (def.reduced ?? 'skip') === 'skip')
|
|
10179
|
+
return;
|
|
10180
|
+
const out = def.run(el, { ...(def.defaults || {}), ...opts }, ctx);
|
|
10181
|
+
if (typeof out === 'function')
|
|
10182
|
+
offs.push(out);
|
|
10183
|
+
offs.push(...ctx.cleanups);
|
|
10184
|
+
return;
|
|
10185
|
+
}
|
|
10186
|
+
void playEffect(el, name, opts, e).catch(() => undefined);
|
|
10187
|
+
};
|
|
10188
|
+
const on = (type, opt) => {
|
|
10189
|
+
el.addEventListener(type, fire, opt);
|
|
10190
|
+
offs.push(() => el.removeEventListener(type, fire, opt));
|
|
10191
|
+
};
|
|
10192
|
+
if (trigger === 'click')
|
|
10193
|
+
on('click', { once: !!once });
|
|
10194
|
+
else if (trigger === 'hover')
|
|
10195
|
+
(on('pointerenter'), on('focusin'));
|
|
10196
|
+
else if (trigger === 'load' || trigger === 'loop')
|
|
10197
|
+
fire();
|
|
10198
|
+
else if (trigger === 'enter' && typeof IntersectionObserver !== 'undefined') {
|
|
10199
|
+
const io = new IntersectionObserver((entries) => {
|
|
10200
|
+
for (const en of entries)
|
|
10201
|
+
if (en.isIntersecting) {
|
|
10202
|
+
fire();
|
|
10203
|
+
if (once !== false)
|
|
10204
|
+
io.disconnect();
|
|
10205
|
+
}
|
|
10206
|
+
}, { threshold: 0.15 });
|
|
10207
|
+
io.observe(el);
|
|
10208
|
+
offs.push(() => io.disconnect());
|
|
10209
|
+
}
|
|
10210
|
+
return () => offs.splice(0).reverse().forEach((f) => f());
|
|
10211
|
+
}
|
|
10212
|
+
|
|
10213
|
+
function defineFx(tag = 'usa-fx') {
|
|
10214
|
+
return defineElement(tag, (Base) => class UsaFx extends Base {
|
|
10215
|
+
static get observedAttributes() {
|
|
10216
|
+
return ['effect', 'trigger', 'options'];
|
|
10217
|
+
}
|
|
10218
|
+
get target() {
|
|
10219
|
+
return this.flag('self') ? this : (this.firstElementChild || this);
|
|
10220
|
+
}
|
|
10221
|
+
opts() {
|
|
10222
|
+
try {
|
|
10223
|
+
return JSON.parse(this.str('options', '{}')) || {};
|
|
10224
|
+
}
|
|
10225
|
+
catch {
|
|
10226
|
+
return {};
|
|
10227
|
+
}
|
|
10228
|
+
}
|
|
10229
|
+
play() {
|
|
10230
|
+
return playEffect(this.target, this.str('effect', 'pop'), this.opts()).catch(() => undefined);
|
|
10231
|
+
}
|
|
10232
|
+
mount() {
|
|
10233
|
+
if (!this.style.display)
|
|
10234
|
+
this.style.display = 'inline-block';
|
|
10235
|
+
const name = this.str('effect', 'pop');
|
|
10236
|
+
const t = this.str('trigger', 'click');
|
|
10237
|
+
try {
|
|
10238
|
+
this.onCleanup(bindEffect(this.target, name, { ...this.opts(), trigger: EFFECT_TRIGGERS.includes(t) ? t : 'click', once: this.flag('once') }));
|
|
10239
|
+
this.removeAttribute('data-unknown');
|
|
10240
|
+
}
|
|
10241
|
+
catch {
|
|
10242
|
+
this.setAttribute('data-unknown', name); // not registered (yet)
|
|
10243
|
+
}
|
|
10244
|
+
}
|
|
10245
|
+
});
|
|
10246
|
+
}
|
|
10247
|
+
|
|
10248
|
+
/**
|
|
10249
|
+
* 5.0 built-in effects, all registered through `registerEffect()`:
|
|
10250
|
+
* every timeline preset as an `enter` effect, attention seekers, and the
|
|
10251
|
+
* click effects (burst, confetti, shake, ripple).
|
|
10252
|
+
*/
|
|
10253
|
+
const enter = Object.entries(TIMELINE_PRESETS).map(([name, frames]) => ({
|
|
10254
|
+
name,
|
|
10255
|
+
kind: 'enter',
|
|
10256
|
+
description: `Entrance: ${name} (same keyframes as the timeline preset).`,
|
|
10257
|
+
defaults: { duration: 600, delay: 0, easing: 'cubic-bezier(0.22, 1, 0.36, 1)' },
|
|
10258
|
+
run: (el, o, ctx) => ctx.animate(el, ctx.reduced ? [{ opacity: 0 }, { opacity: 1 }] : frames, { duration: o.duration, delay: o.delay, easing: o.easing, fill: 'backwards' }),
|
|
10259
|
+
}));
|
|
10260
|
+
const A = (name, description, frames, duration = 700, easing = 'ease-in-out') => ({
|
|
10261
|
+
name,
|
|
10262
|
+
kind: 'attention',
|
|
10263
|
+
description,
|
|
10264
|
+
defaults: { duration, iterations: 1 },
|
|
10265
|
+
run: (el, o, ctx) => (ctx.reduced ? ctx.animate(el, [{ opacity: 1 }, { opacity: 0.6 }, { opacity: 1 }], { duration: 400 }) : ctx.animate(el, frames, { duration: o.duration, easing, iterations: o.iterations })),
|
|
10266
|
+
});
|
|
10267
|
+
const attention = [
|
|
10268
|
+
A('pulse', 'Gentle scale pulse.', [{ transform: 'scale(1)' }, { transform: 'scale(1.08)' }, { transform: 'scale(1)' }], 600),
|
|
10269
|
+
A('pop', 'Quick overshoot pop.', [{ transform: 'scale(1)' }, { transform: 'scale(1.18)', offset: 0.4 }, { transform: 'scale(0.96)', offset: 0.7 }, { transform: 'scale(1)' }], 450, 'cubic-bezier(0.34, 1.56, 0.64, 1)'),
|
|
10270
|
+
A('jelly', 'Rubbery squash-and-stretch.', [{ transform: 'scale(1,1)' }, { transform: 'scale(1.25,0.75)', offset: 0.3 }, { transform: 'scale(0.75,1.25)', offset: 0.4 }, { transform: 'scale(1.15,0.85)', offset: 0.5 }, { transform: 'scale(0.95,1.05)', offset: 0.65 }, { transform: 'scale(1.05,0.95)', offset: 0.75 }, { transform: 'scale(1,1)' }], 900),
|
|
10271
|
+
A('wiggle', 'Playful rotate wiggle.', [{ transform: 'rotate(0)' }, { transform: 'rotate(-8deg)', offset: 0.2 }, { transform: 'rotate(7deg)', offset: 0.4 }, { transform: 'rotate(-5deg)', offset: 0.6 }, { transform: 'rotate(3deg)', offset: 0.8 }, { transform: 'rotate(0)' }], 650),
|
|
10272
|
+
A('heartbeat', 'Double-beat heart pulse.', [{ transform: 'scale(1)' }, { transform: 'scale(1.2)', offset: 0.14 }, { transform: 'scale(1)', offset: 0.28 }, { transform: 'scale(1.2)', offset: 0.42 }, { transform: 'scale(1)', offset: 0.7 }], 1100),
|
|
10273
|
+
A('bounce', 'Hop up and settle with a squash.', [{ transform: 'translateY(0) scale(1,1)' }, { transform: 'translateY(-22px) scale(0.95,1.05)', offset: 0.35 }, { transform: 'translateY(0) scale(1.08,0.92)', offset: 0.6 }, { transform: 'translateY(-6px) scale(1,1)', offset: 0.8 }, { transform: 'translateY(0) scale(1,1)' }], 800),
|
|
10274
|
+
A('flash', 'Two soft flashes (well under 3 per second).', [{ opacity: 1 }, { opacity: 0.25, offset: 0.25 }, { opacity: 1, offset: 0.5 }, { opacity: 0.25, offset: 0.75 }, { opacity: 1 }], 1400),
|
|
10275
|
+
A('tada', 'Scale + shake celebration.', [{ transform: 'scale(1) rotate(0)' }, { transform: 'scale(0.9) rotate(-3deg)', offset: 0.1 }, { transform: 'scale(1.1) rotate(3deg)', offset: 0.3 }, { transform: 'scale(1.1) rotate(-3deg)', offset: 0.5 }, { transform: 'scale(1.1) rotate(3deg)', offset: 0.7 }, { transform: 'scale(1) rotate(0)' }], 1000),
|
|
10276
|
+
];
|
|
10277
|
+
const click = [
|
|
10278
|
+
{
|
|
10279
|
+
name: 'burst',
|
|
10280
|
+
kind: 'click',
|
|
10281
|
+
description: 'Particle burst from the click point (or the element center).',
|
|
10282
|
+
defaults: { count: 12 },
|
|
10283
|
+
run: (el, o, ctx) => {
|
|
10284
|
+
if (ctx.reduced)
|
|
10285
|
+
return;
|
|
10286
|
+
const r = el.getBoundingClientRect();
|
|
10287
|
+
const e = ctx.event;
|
|
10288
|
+
burst(e?.clientX ?? r.left + r.width / 2, e?.clientY ?? r.top + r.height / 2, o);
|
|
10289
|
+
},
|
|
10290
|
+
},
|
|
10291
|
+
{
|
|
10292
|
+
name: 'confetti',
|
|
10293
|
+
kind: 'click',
|
|
10294
|
+
description: 'Confetti cannon from the element.',
|
|
10295
|
+
defaults: { count: 80 },
|
|
10296
|
+
run: (el, o, ctx) => {
|
|
10297
|
+
if (ctx.reduced)
|
|
10298
|
+
return;
|
|
10299
|
+
const r = el.getBoundingClientRect();
|
|
10300
|
+
confetti({ x: r.left + r.width / 2, y: r.top + r.height / 2, ...o });
|
|
10301
|
+
},
|
|
10302
|
+
},
|
|
10303
|
+
{
|
|
10304
|
+
name: 'shake',
|
|
10305
|
+
kind: 'attention',
|
|
10306
|
+
description: 'Horizontal "no" shake (errors, wrong password).',
|
|
10307
|
+
defaults: { intensity: 8, duration: 480 },
|
|
10308
|
+
run: (el, o, ctx) => (ctx.reduced ? ctx.animate(el, [{ opacity: 1 }, { opacity: 0.5 }, { opacity: 1 }], { duration: 300 }) : shake(el, o.intensity, o.duration)),
|
|
10309
|
+
},
|
|
10310
|
+
{
|
|
10311
|
+
name: 'ripple',
|
|
10312
|
+
kind: 'click',
|
|
10313
|
+
description: 'Material-style ink ripple from the pointer.',
|
|
10314
|
+
defaults: { color: 'currentColor', duration: 600 },
|
|
10315
|
+
run: (el, o, ctx) => {
|
|
10316
|
+
var _a;
|
|
10317
|
+
if (ctx.reduced)
|
|
10318
|
+
return;
|
|
10319
|
+
const r = el.getBoundingClientRect();
|
|
10320
|
+
const e = ctx.event;
|
|
10321
|
+
const d = Math.hypot(r.width, r.height) * 2;
|
|
10322
|
+
const dot = document.createElement('span');
|
|
10323
|
+
dot.setAttribute('aria-hidden', 'true');
|
|
10324
|
+
Object.assign(dot.style, { position: 'absolute', left: `${(e?.clientX ?? r.left + r.width / 2) - r.left - d / 2}px`, top: `${(e?.clientY ?? r.top + r.height / 2) - r.top - d / 2}px`, width: `${d}px`, height: `${d}px`, borderRadius: '50%', background: o.color, opacity: '0.25', pointerEvents: 'none' });
|
|
10325
|
+
if (getComputedStyle(el).position === 'static')
|
|
10326
|
+
el.style.position = 'relative';
|
|
10327
|
+
(_a = el.style).overflow || (_a.overflow = 'hidden');
|
|
10328
|
+
el.appendChild(dot);
|
|
10329
|
+
const a = ctx.animate(dot, [{ transform: 'scale(0)', opacity: 0.3 }, { transform: 'scale(1)', opacity: 0 }], { duration: o.duration, easing: 'ease-out' });
|
|
10330
|
+
const done = () => dot.remove();
|
|
10331
|
+
if (a)
|
|
10332
|
+
a.finished.then(done, done);
|
|
10333
|
+
else
|
|
10334
|
+
done();
|
|
10335
|
+
return a;
|
|
10336
|
+
},
|
|
10337
|
+
},
|
|
10338
|
+
];
|
|
10339
|
+
/** Every built-in 5.0 effect definition. */
|
|
10340
|
+
const BUILTIN_EFFECTS = [...enter, ...attention, ...click];
|
|
10341
|
+
|
|
10342
|
+
/**
|
|
10343
|
+
* use-scroll-animate/components/fx — unified plugin-style effects (5.0).
|
|
10344
|
+
* `registerEffect({ name, kind, run })`, `playEffect(el, name)`,
|
|
10345
|
+
* `bindEffect(el, name, { trigger })`, `<usa-fx effect trigger>`. Built-ins:
|
|
10346
|
+
* every timeline preset (`enter`), `pulse` · `pop` · `jelly` · `wiggle` ·
|
|
10347
|
+
* `heartbeat` · `bounce` · `flash` · `tada` · `shake` (attention),
|
|
10348
|
+
* `burst` · `confetti` · `ripple` (click). More packs: `use-scroll-animate/components/effects`.
|
|
10349
|
+
*/
|
|
10350
|
+
/** Register the built-in effects (idempotent; `defineFxComponents()` calls it). */
|
|
10351
|
+
function registerBuiltinEffects() {
|
|
10352
|
+
registerEffects(BUILTIN_EFFECTS);
|
|
10353
|
+
}
|
|
10354
|
+
/** Register every component of this category under its default tag (+ the built-in effects). */
|
|
10355
|
+
function defineFxComponents() {
|
|
10356
|
+
registerBuiltinEffects();
|
|
10357
|
+
defineFx();
|
|
10358
|
+
}
|
|
10359
|
+
|
|
10082
10360
|
/**
|
|
10083
10361
|
* 4.9 — the 5.0 modern-browser baseline. `baselineReport()` lists which
|
|
10084
10362
|
* required / progressive features this browser has; `warnBaseline()` logs
|
|
@@ -10203,6 +10481,7 @@ const STATIC_ALTERNATIVES = {
|
|
|
10203
10481
|
depth: 'Flat, front-facing layout.',
|
|
10204
10482
|
layout: 'Items reflow instantly.',
|
|
10205
10483
|
packs: 'Roles are styled but not animated.',
|
|
10484
|
+
fx: 'Effects are skipped or reduced to a short fade; the content is unchanged.',
|
|
10206
10485
|
};
|
|
10207
10486
|
/**
|
|
10208
10487
|
* Freeze a subtree at its static alternative: finishes running animations
|
|
@@ -10513,6 +10792,7 @@ const BY_CATEGORY = {
|
|
|
10513
10792
|
depth: defineDepthComponents,
|
|
10514
10793
|
layout: defineLayoutComponents,
|
|
10515
10794
|
packs: definePacksComponents,
|
|
10795
|
+
fx: defineFxComponents,
|
|
10516
10796
|
};
|
|
10517
10797
|
/**
|
|
10518
10798
|
* Register every `<usa-*>` component (or only the given categories).
|
|
@@ -10544,11 +10824,14 @@ exports.ALL_TAGS = ALL_TAGS;
|
|
|
10544
10824
|
exports.AMBIENT_EFFECTS = AMBIENT_EFFECTS;
|
|
10545
10825
|
exports.ANIM_ICONS = ANIM_ICONS;
|
|
10546
10826
|
exports.BRIDGE_PROTOCOL_VERSION = BRIDGE_PROTOCOL_VERSION;
|
|
10827
|
+
exports.BUILTIN_EFFECTS = BUILTIN_EFFECTS;
|
|
10547
10828
|
exports.BUTTON_DEFORMS = BUTTON_DEFORMS;
|
|
10548
10829
|
exports.CARD_EFFECTS = CARD_EFFECTS;
|
|
10549
10830
|
exports.CLICK_EFFECTS = CLICK_EFFECTS;
|
|
10550
10831
|
exports.COMPONENT_CATEGORIES = COMPONENT_CATEGORIES;
|
|
10551
10832
|
exports.CURSOR_MODES = CURSOR_MODES;
|
|
10833
|
+
exports.EFFECT_KINDS = EFFECT_KINDS;
|
|
10834
|
+
exports.EFFECT_TRIGGERS = EFFECT_TRIGGERS;
|
|
10552
10835
|
exports.GL_FALLBACKS = GL_FALLBACKS;
|
|
10553
10836
|
exports.JOINING_SCRIPT = JOINING_SCRIPT;
|
|
10554
10837
|
exports.LIVE_REGION_IDS = LIVE_REGION_IDS;
|
|
@@ -10576,6 +10859,7 @@ exports.VARIANTS = VARIANTS;
|
|
|
10576
10859
|
exports.activeAnimations = activeAnimations;
|
|
10577
10860
|
exports.adaptKeyframes = adaptKeyframes;
|
|
10578
10861
|
exports.adoptVariants = adoptVariants;
|
|
10862
|
+
exports.animateWithMotion = animateWithMotion;
|
|
10579
10863
|
exports.animationBudget = animationBudget;
|
|
10580
10864
|
exports.announce = announce;
|
|
10581
10865
|
exports.applyMotionTokens = applyMotionTokens;
|
|
@@ -10585,6 +10869,7 @@ exports.auditMotionA11y = auditMotionA11y;
|
|
|
10585
10869
|
exports.autoAnimate = autoAnimate;
|
|
10586
10870
|
exports.autoDegrade = autoDegrade;
|
|
10587
10871
|
exports.baselineReport = baselineReport;
|
|
10872
|
+
exports.bindEffect = bindEffect;
|
|
10588
10873
|
exports.burst = burst;
|
|
10589
10874
|
exports.categoryOf = categoryOf;
|
|
10590
10875
|
exports.confetti = confetti;
|
|
@@ -10630,6 +10915,8 @@ exports.defineDrawer = defineDrawer;
|
|
|
10630
10915
|
exports.defineFab = defineFab;
|
|
10631
10916
|
exports.defineFeedbackComponents = defineFeedbackComponents;
|
|
10632
10917
|
exports.defineFullpage = defineFullpage;
|
|
10918
|
+
exports.defineFx = defineFx;
|
|
10919
|
+
exports.defineFxComponents = defineFxComponents;
|
|
10633
10920
|
exports.defineGestureComponents = defineGestureComponents;
|
|
10634
10921
|
exports.defineGlitch = defineGlitch;
|
|
10635
10922
|
exports.defineGradientText = defineGradientText;
|
|
@@ -10710,7 +10997,9 @@ exports.fluentPreset = fluentPreset;
|
|
|
10710
10997
|
exports.flyToCart = flyToCart;
|
|
10711
10998
|
exports.fragmentSource = fragmentSource;
|
|
10712
10999
|
exports.gesture = gesture;
|
|
11000
|
+
exports.getEffect = getEffect;
|
|
10713
11001
|
exports.getMotionIntensity = getMotionIntensity;
|
|
11002
|
+
exports.getMotionLevel = getMotionLevel;
|
|
10714
11003
|
exports.getMotionSensitivity = getMotionSensitivity;
|
|
10715
11004
|
exports.getMotionTokens = getMotionTokens;
|
|
10716
11005
|
exports.glFallbackCss = glFallbackCss;
|
|
@@ -10718,9 +11007,11 @@ exports.glGovernor = glGovernor;
|
|
|
10718
11007
|
exports.glQuad = glQuad;
|
|
10719
11008
|
exports.graphemes = graphemes;
|
|
10720
11009
|
exports.haptic = haptic;
|
|
11010
|
+
exports.hasEffect = hasEffect;
|
|
10721
11011
|
exports.importMotionTokens = importMotionTokens;
|
|
10722
11012
|
exports.interpolatePath = interpolatePath;
|
|
10723
11013
|
exports.linearEasing = linearEasing;
|
|
11014
|
+
exports.listEffects = listEffects;
|
|
10724
11015
|
exports.liveRegion = liveRegion;
|
|
10725
11016
|
exports.loadCategoryStyles = loadCategoryStyles;
|
|
10726
11017
|
exports.loadedStyles = loadedStyles;
|
|
@@ -10730,6 +11021,7 @@ exports.mergeMotionTokens = mergeMotionTokens;
|
|
|
10730
11021
|
exports.morphPath = morphPath;
|
|
10731
11022
|
exports.morphTo = morphTo;
|
|
10732
11023
|
exports.motionAllowed = motionAllowed;
|
|
11024
|
+
exports.motionScale = motionScale;
|
|
10733
11025
|
exports.motionToken = motionToken;
|
|
10734
11026
|
exports.motionTokensToCss = motionTokensToCss;
|
|
10735
11027
|
exports.motionTokensToJSON = motionTokensToJSON;
|
|
@@ -10744,11 +11036,15 @@ exports.parseEasing = parseEasing;
|
|
|
10744
11036
|
exports.parseNativeSettings = parseNativeSettings;
|
|
10745
11037
|
exports.pathsCompatible = pathsCompatible;
|
|
10746
11038
|
exports.pinchScale = pinchScale;
|
|
11039
|
+
exports.playEffect = playEffect;
|
|
10747
11040
|
exports.postFxShader = postFxShader;
|
|
10748
11041
|
exports.postToNative = postToNative;
|
|
10749
11042
|
exports.prefersReducedMotion = prefersReducedMotion;
|
|
10750
11043
|
exports.projectInertia = projectInertia;
|
|
10751
11044
|
exports.readScrollProgress = readScrollProgress;
|
|
11045
|
+
exports.registerBuiltinEffects = registerBuiltinEffects;
|
|
11046
|
+
exports.registerEffect = registerEffect;
|
|
11047
|
+
exports.registerEffects = registerEffects;
|
|
10752
11048
|
exports.requestOrientationPermission = requestOrientationPermission;
|
|
10753
11049
|
exports.resolveDurationToken = resolveDurationToken;
|
|
10754
11050
|
exports.resolveEasingToken = resolveEasingToken;
|
|
@@ -10763,6 +11059,7 @@ exports.scrambleFrame = scrambleFrame;
|
|
|
10763
11059
|
exports.scrollToTarget = scrollToTarget;
|
|
10764
11060
|
exports.setAnimationBudget = setAnimationBudget;
|
|
10765
11061
|
exports.setMotionIntensity = setMotionIntensity;
|
|
11062
|
+
exports.setMotionLevel = setMotionLevel;
|
|
10766
11063
|
exports.setMotionSensitivity = setMotionSensitivity;
|
|
10767
11064
|
exports.setVariant = setVariant;
|
|
10768
11065
|
exports.shake = shake;
|
|
@@ -10791,4 +11088,5 @@ exports.toast = toast;
|
|
|
10791
11088
|
exports.viewTransition = viewTransition;
|
|
10792
11089
|
exports.warnBaseline = warnBaseline;
|
|
10793
11090
|
exports.watchPowerSaver = watchPowerSaver;
|
|
11091
|
+
exports.withoutDeprecations = withoutDeprecations;
|
|
10794
11092
|
//# sourceMappingURL=lite.cjs.map
|