use-scroll-animate 4.9.0 → 5.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/CHANGELOG.md +33 -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/effects.cjs +265 -0
- package/dist/components/effects.cjs.map +1 -0
- package/dist/components/effects.d.cts +66 -0
- package/dist/components/effects.d.ts +66 -0
- package/dist/components/effects.js +258 -0
- package/dist/components/effects.js.map +1 -0
- 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 +289 -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 +275 -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 +366 -64
- package/dist/components/lite.cjs.map +1 -1
- package/dist/components/lite.js +349 -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 +29 -1
- package/docs/performance.md +1 -1
- package/docs/upgrading-5.md +2 -2
- package/package.json +24 -3
- package/dist/chunks/base-BvpQ4Ggj.cjs.map +0 -1
- package/dist/chunks/base-DbbRUxaa.js.map +0 -1
package/dist/components/lite.js
CHANGED
|
@@ -7,17 +7,16 @@
|
|
|
7
7
|
* scripts. Classes are created the first time a `define*()` function runs.
|
|
8
8
|
*/
|
|
9
9
|
const MOTION_SENSITIVITY_LEVELS = ['full', 'gentle', 'minimal', 'static'];
|
|
10
|
-
const MOTION_SCALE = {
|
|
10
|
+
const MOTION_SCALE = { low: 0.6, normal: 1, high: 1.25 };
|
|
11
11
|
const config = { injectStyles: true, reducedMotion: 'user', motionIntensity: 'normal', motionSensitivity: 'full' };
|
|
12
12
|
/** Change global component settings (call before `define*()` for `injectStyles`). */
|
|
13
13
|
function configureComponents(options) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
14
|
+
options = { ...options };
|
|
15
|
+
// 5.0: removed values are ignored (see docs/upgrading-5.md)
|
|
16
|
+
if (options.motionIntensity && !(options.motionIntensity in MOTION_SCALE))
|
|
17
|
+
delete options.motionIntensity;
|
|
18
|
+
if (options.reducedMotion && options.reducedMotion !== 'reduce')
|
|
19
|
+
options.reducedMotion = 'user';
|
|
21
20
|
Object.assign(config, options);
|
|
22
21
|
if (options.motionIntensity && typeof document !== 'undefined') {
|
|
23
22
|
document.documentElement.style.setProperty('--usa-motion', String(MOTION_SCALE[options.motionIntensity] ?? 1));
|
|
@@ -62,15 +61,12 @@ function adaptKeyframes(frames, level = config.motionSensitivity) {
|
|
|
62
61
|
return out;
|
|
63
62
|
});
|
|
64
63
|
}
|
|
65
|
-
let quiet = 0;
|
|
66
64
|
/** Run `fn` without 4.9 deprecation warnings (library-internal calls). */
|
|
67
65
|
function withoutDeprecations(fn) {
|
|
68
|
-
quiet++;
|
|
69
66
|
try {
|
|
70
67
|
return fn();
|
|
71
68
|
}
|
|
72
69
|
finally {
|
|
73
|
-
quiet--;
|
|
74
70
|
}
|
|
75
71
|
}
|
|
76
72
|
/** The current global motion intensity. */
|
|
@@ -84,10 +80,10 @@ function motionScale() {
|
|
|
84
80
|
const canDefine = () => typeof customElements !== 'undefined' && typeof HTMLElement !== 'undefined';
|
|
85
81
|
/** `true` when animations should be reduced (OS setting or `configureComponents`). */
|
|
86
82
|
function prefersReducedMotion() {
|
|
87
|
-
if (config.
|
|
83
|
+
if (config.motionSensitivity === 'minimal' || config.motionSensitivity === 'static')
|
|
84
|
+
return true;
|
|
85
|
+
if (config.reducedMotion === 'reduce')
|
|
88
86
|
return true;
|
|
89
|
-
if (config.reducedMotion !== 'user')
|
|
90
|
-
return config.reducedMotion === 'reduce';
|
|
91
87
|
return typeof matchMedia === 'function' && !!matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
92
88
|
}
|
|
93
89
|
const injected = new Set();
|
|
@@ -223,31 +219,7 @@ function getBase() {
|
|
|
223
219
|
}
|
|
224
220
|
/** `el.animate()` that returns `null` (and applies the last frame) without WAAPI. */
|
|
225
221
|
motion(el, keyframes, options) {
|
|
226
|
-
|
|
227
|
-
applyFrame(el, keyframes[keyframes.length - 1]);
|
|
228
|
-
return null;
|
|
229
|
-
}
|
|
230
|
-
keyframes = adaptKeyframes(keyframes);
|
|
231
|
-
if (active$1 >= maxActive) {
|
|
232
|
-
applyFrame(el, keyframes[keyframes.length - 1]);
|
|
233
|
-
return null;
|
|
234
|
-
}
|
|
235
|
-
const k = motionScale();
|
|
236
|
-
if (k !== 1 && k > 0 && typeof options.duration === 'number')
|
|
237
|
-
options = { ...options, duration: options.duration * k, delay: (options.delay || 0) * k };
|
|
238
|
-
const a = el.animate(keyframes, options);
|
|
239
|
-
if (options.iterations !== Infinity) {
|
|
240
|
-
active$1++;
|
|
241
|
-
let done = false;
|
|
242
|
-
const end = () => {
|
|
243
|
-
if (!done) {
|
|
244
|
-
done = true;
|
|
245
|
-
active$1--;
|
|
246
|
-
}
|
|
247
|
-
};
|
|
248
|
-
a?.finished?.then(end, end);
|
|
249
|
-
}
|
|
250
|
-
return a;
|
|
222
|
+
return animateWithMotion(el, keyframes, options);
|
|
251
223
|
}
|
|
252
224
|
emit(type, detail) {
|
|
253
225
|
return this.dispatchEvent(new CustomEvent(`usa:${type}`, { detail, bubbles: true, cancelable: true }));
|
|
@@ -256,6 +228,39 @@ function getBase() {
|
|
|
256
228
|
baseClass = Base;
|
|
257
229
|
return baseClass;
|
|
258
230
|
}
|
|
231
|
+
/**
|
|
232
|
+
* `el.animate()` with the library's motion rules (5.0, shared by elements and
|
|
233
|
+
* registered effects): motion sensitivity (keyframes adapted, `static` →
|
|
234
|
+
* final frame), intensity (duration scale) and the animation budget. Returns
|
|
235
|
+
* `null` (final frame applied) when nothing should animate.
|
|
236
|
+
*/
|
|
237
|
+
function animateWithMotion(el, keyframes, options) {
|
|
238
|
+
if (typeof el.animate !== 'function' || config.motionSensitivity === 'static') {
|
|
239
|
+
applyFrame(el, keyframes[keyframes.length - 1]);
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
242
|
+
keyframes = adaptKeyframes(keyframes);
|
|
243
|
+
if (active$1 >= maxActive) {
|
|
244
|
+
applyFrame(el, keyframes[keyframes.length - 1]);
|
|
245
|
+
return null;
|
|
246
|
+
}
|
|
247
|
+
const k = motionScale();
|
|
248
|
+
if (k !== 1 && k > 0 && typeof options.duration === 'number')
|
|
249
|
+
options = { ...options, duration: options.duration * k, delay: (options.delay || 0) * k };
|
|
250
|
+
const a = el.animate(keyframes, options);
|
|
251
|
+
if (options.iterations !== Infinity) {
|
|
252
|
+
active$1++;
|
|
253
|
+
let done = false;
|
|
254
|
+
const end = () => {
|
|
255
|
+
if (!done) {
|
|
256
|
+
done = true;
|
|
257
|
+
active$1--;
|
|
258
|
+
}
|
|
259
|
+
};
|
|
260
|
+
a?.finished?.then(end, end);
|
|
261
|
+
}
|
|
262
|
+
return a;
|
|
263
|
+
}
|
|
259
264
|
/** Write a keyframe's properties as inline styles (no-WAAPI fallback). */
|
|
260
265
|
function applyFrame(el, frame) {
|
|
261
266
|
if (!frame)
|
|
@@ -416,6 +421,7 @@ const COMPONENT_CATEGORIES = {
|
|
|
416
421
|
depth: ['usa-cube', 'usa-depth'],
|
|
417
422
|
layout: ['usa-auto-animate', 'usa-masonry'],
|
|
418
423
|
packs: ['usa-pack'],
|
|
424
|
+
fx: ['usa-fx'],
|
|
419
425
|
};
|
|
420
426
|
|
|
421
427
|
/**
|
|
@@ -451,8 +457,7 @@ function autoDegrade(options = {}) {
|
|
|
451
457
|
state.reason = reason;
|
|
452
458
|
if (degraded) {
|
|
453
459
|
prev = { intensity: getMotionIntensity(), budget: animationBudget() };
|
|
454
|
-
|
|
455
|
-
configureComponents({ motionIntensity: 'low' });
|
|
460
|
+
configureComponents({ motionIntensity: 'low' });
|
|
456
461
|
setAnimationBudget(Math.max(4, Math.floor(maxActive / 2)));
|
|
457
462
|
}
|
|
458
463
|
else if (prev) {
|
|
@@ -7968,21 +7973,23 @@ function defineAutoSkeleton(tag = 'usa-auto-skeleton') {
|
|
|
7968
7973
|
|
|
7969
7974
|
var css$7 = "";
|
|
7970
7975
|
|
|
7976
|
+
const INTENSITIES = ['low', 'normal', 'high'];
|
|
7971
7977
|
const LEVELS = ['off', 'low', 'normal', 'high'];
|
|
7972
7978
|
const KEY$1 = 'usa:motion';
|
|
7973
|
-
let fromSwitch = false;
|
|
7974
7979
|
/**
|
|
7975
7980
|
* Set the global motion intensity for every `<usa-*>` component:
|
|
7976
|
-
* `'
|
|
7977
|
-
*
|
|
7978
|
-
*
|
|
7981
|
+
* `'low'`, `'normal'` (default), `'high'`. Sets `--usa-motion` and
|
|
7982
|
+
* `data-usa-motion` on `<html>`; with `persist` the choice is remembered
|
|
7983
|
+
* (localStorage) and restored by `restoreMotionIntensity()`.
|
|
7984
|
+
* 5.0: `'off'` was removed — use `setMotionSensitivity('minimal')`.
|
|
7979
7985
|
*/
|
|
7980
7986
|
function setMotionIntensity(level, persist = false) {
|
|
7981
|
-
if (!
|
|
7987
|
+
if (!INTENSITIES.includes(level))
|
|
7982
7988
|
return;
|
|
7983
|
-
|
|
7984
|
-
|
|
7985
|
-
|
|
7989
|
+
configureComponents({ motionIntensity: level });
|
|
7990
|
+
store(level, persist);
|
|
7991
|
+
}
|
|
7992
|
+
function store(level, persist) {
|
|
7986
7993
|
if (persist) {
|
|
7987
7994
|
try {
|
|
7988
7995
|
localStorage.setItem(KEY$1, level);
|
|
@@ -7994,30 +8001,39 @@ function setMotionIntensity(level, persist = false) {
|
|
|
7994
8001
|
if (typeof document !== 'undefined')
|
|
7995
8002
|
document.dispatchEvent(new CustomEvent('usa:motion', { detail: { level } }));
|
|
7996
8003
|
}
|
|
7997
|
-
/**
|
|
8004
|
+
/** Apply a switch level: `'off'` = motion sensitivity `minimal`, otherwise full motion at that intensity. */
|
|
8005
|
+
function setMotionLevel(level, persist = false) {
|
|
8006
|
+
if (!LEVELS.includes(level))
|
|
8007
|
+
return;
|
|
8008
|
+
if (level === 'off')
|
|
8009
|
+
configureComponents({ motionSensitivity: 'minimal' });
|
|
8010
|
+
else
|
|
8011
|
+
configureComponents({ motionIntensity: level, ...(getMotionSensitivity() === 'minimal' ? { motionSensitivity: 'full' } : {}) });
|
|
8012
|
+
store(level, persist);
|
|
8013
|
+
}
|
|
8014
|
+
/** The current switch level. */
|
|
8015
|
+
function getMotionLevel() {
|
|
8016
|
+
return getMotionSensitivity() === 'minimal' || getMotionSensitivity() === 'static' ? 'off' : getMotionIntensity();
|
|
8017
|
+
}
|
|
8018
|
+
/** Re-apply a persisted level (call early on page load). Returns the active intensity. */
|
|
7998
8019
|
function restoreMotionIntensity() {
|
|
7999
8020
|
try {
|
|
8000
8021
|
const v = localStorage.getItem(KEY$1);
|
|
8001
|
-
if (v && LEVELS.includes(v))
|
|
8002
|
-
|
|
8003
|
-
setMotionIntensity(v);
|
|
8004
|
-
}
|
|
8022
|
+
if (v && LEVELS.includes(v))
|
|
8023
|
+
setMotionLevel(v);
|
|
8005
8024
|
}
|
|
8006
8025
|
catch {
|
|
8007
8026
|
/* ignore */
|
|
8008
8027
|
}
|
|
8009
|
-
fromSwitch = false;
|
|
8010
8028
|
return getMotionIntensity();
|
|
8011
8029
|
}
|
|
8012
8030
|
function defineMotionSwitch(tag = 'usa-motion-switch') {
|
|
8013
8031
|
return defineElement(tag, (Base) => class UsaMotionSwitch extends Base {
|
|
8014
8032
|
get value() {
|
|
8015
|
-
return
|
|
8033
|
+
return getMotionLevel();
|
|
8016
8034
|
}
|
|
8017
8035
|
set value(v) {
|
|
8018
|
-
|
|
8019
|
-
setMotionIntensity(v, true);
|
|
8020
|
-
fromSwitch = false;
|
|
8036
|
+
setMotionLevel(v, true);
|
|
8021
8037
|
this.sync();
|
|
8022
8038
|
}
|
|
8023
8039
|
mount() {
|
|
@@ -8208,9 +8224,7 @@ function defineTimeline(tag = 'usa-timeline') {
|
|
|
8208
8224
|
// (0–0.95) or `scrub="js"` opt into the JS engine, `scrub="scroll"`
|
|
8209
8225
|
// follows this element's own scroll position.
|
|
8210
8226
|
const v = this.str('scrub');
|
|
8211
|
-
|
|
8212
|
-
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.');
|
|
8213
|
-
const stop = tl.scrub(this, { smooth: this.num('smooth', 0), engine: v === 'js' ? 'js' : 'auto', source: v === 'scroll' ? 'scroll' : 'view' });
|
|
8227
|
+
const stop = tl.scrub(this, { smooth: this.num('smooth', 0), engine: 'auto', source: v === 'scroll' ? 'scroll' : 'view' });
|
|
8214
8228
|
this.toggleAttribute('data-native', stop.native);
|
|
8215
8229
|
this.onCleanup(stop);
|
|
8216
8230
|
return;
|
|
@@ -9007,7 +9021,7 @@ function supportsWebGL() {
|
|
|
9007
9021
|
return support;
|
|
9008
9022
|
try {
|
|
9009
9023
|
const c = typeof document !== 'undefined' ? document.createElement('canvas') : null;
|
|
9010
|
-
support = !!(c && (c.getContext('webgl')
|
|
9024
|
+
support = !!(c && (c.getContext('webgl')));
|
|
9011
9025
|
}
|
|
9012
9026
|
catch {
|
|
9013
9027
|
support = false;
|
|
@@ -9018,7 +9032,7 @@ function supportsWebGL() {
|
|
|
9018
9032
|
function glQuad(canvas, frag) {
|
|
9019
9033
|
let gl = null;
|
|
9020
9034
|
try {
|
|
9021
|
-
gl = (canvas.getContext('webgl', { premultipliedAlpha: false, antialias: false })
|
|
9035
|
+
gl = (canvas.getContext('webgl', { premultipliedAlpha: false, antialias: false }));
|
|
9022
9036
|
}
|
|
9023
9037
|
catch {
|
|
9024
9038
|
gl = null;
|
|
@@ -10076,6 +10090,274 @@ function definePacksComponents() {
|
|
|
10076
10090
|
definePack();
|
|
10077
10091
|
}
|
|
10078
10092
|
|
|
10093
|
+
/**
|
|
10094
|
+
* 5.0 — unified plugin-style effect registration. Every effect (built-in or
|
|
10095
|
+
* yours) is a plain object registered once and played the same way:
|
|
10096
|
+
* `playEffect(el, name)`, `bindEffect(el, name, { trigger })` or
|
|
10097
|
+
* `<usa-fx effect="name" trigger="click">`. Effects get a context that
|
|
10098
|
+
* already applies reduced motion, motion sensitivity, intensity and the
|
|
10099
|
+
* animation budget.
|
|
10100
|
+
*/
|
|
10101
|
+
const EFFECT_KINDS = ['enter', 'exit', 'attention', 'click', 'hover', 'card', 'loop', 'page', 'background', 'text', 'cursor', 'scroll'];
|
|
10102
|
+
const EFFECT_TRIGGERS = ['click', 'hover', 'enter', 'load', 'loop', 'manual'];
|
|
10103
|
+
const registry = new Map();
|
|
10104
|
+
/** Register an effect (throws on a duplicate name unless `override`). Returns an unregister function. */
|
|
10105
|
+
function registerEffect(def, opts = {}) {
|
|
10106
|
+
if (!/^[a-z][a-z0-9-]*$/.test(def.name))
|
|
10107
|
+
throw new Error(`[use-scroll-animate] invalid effect name "${def.name}"`);
|
|
10108
|
+
if (!EFFECT_KINDS.includes(def.kind))
|
|
10109
|
+
throw new Error(`[use-scroll-animate] unknown effect kind "${def.kind}"`);
|
|
10110
|
+
if (registry.has(def.name) && !opts.override)
|
|
10111
|
+
throw new Error(`[use-scroll-animate] effect "${def.name}" is already registered`);
|
|
10112
|
+
registry.set(def.name, def);
|
|
10113
|
+
return () => {
|
|
10114
|
+
if (registry.get(def.name) === def)
|
|
10115
|
+
registry.delete(def.name);
|
|
10116
|
+
};
|
|
10117
|
+
}
|
|
10118
|
+
/** Register several effects at once (already-registered names are skipped). */
|
|
10119
|
+
function registerEffects(defs) {
|
|
10120
|
+
for (const d of defs)
|
|
10121
|
+
if (!registry.has(d.name))
|
|
10122
|
+
registerEffect(d);
|
|
10123
|
+
}
|
|
10124
|
+
const getEffect = (name) => registry.get(name);
|
|
10125
|
+
const hasEffect = (name) => registry.has(name);
|
|
10126
|
+
/** Registered effects (optionally of one kind), sorted by name. */
|
|
10127
|
+
function listEffects(kind) {
|
|
10128
|
+
return Array.from(registry.values())
|
|
10129
|
+
.filter((d) => !kind || d.kind === kind)
|
|
10130
|
+
.sort((a, b) => a.name.localeCompare(b.name));
|
|
10131
|
+
}
|
|
10132
|
+
const SKIP_BY_DEFAULT = ['loop', 'background', 'cursor'];
|
|
10133
|
+
function context(event) {
|
|
10134
|
+
const cleanups = [];
|
|
10135
|
+
return {
|
|
10136
|
+
reduced: prefersReducedMotion(),
|
|
10137
|
+
sensitivity: getMotionSensitivity(),
|
|
10138
|
+
event,
|
|
10139
|
+
animate: animateWithMotion,
|
|
10140
|
+
onCleanup: (fn) => cleanups.push(fn),
|
|
10141
|
+
cleanups,
|
|
10142
|
+
};
|
|
10143
|
+
}
|
|
10144
|
+
/**
|
|
10145
|
+
* Play a registered effect once on `el`. Resolves when it finishes (or
|
|
10146
|
+
* immediately for fire-and-forget effects). Unknown names reject.
|
|
10147
|
+
*/
|
|
10148
|
+
async function playEffect(el, name, options = {}, event) {
|
|
10149
|
+
const def = registry.get(name);
|
|
10150
|
+
if (!def)
|
|
10151
|
+
throw new Error(`[use-scroll-animate] unknown effect "${name}" — registered: ${Array.from(registry.keys()).join(', ')}`);
|
|
10152
|
+
const ctx = context(event);
|
|
10153
|
+
if (ctx.reduced && (def.reduced ?? (SKIP_BY_DEFAULT.includes(def.kind) ? 'skip' : 'run')) === 'skip')
|
|
10154
|
+
return;
|
|
10155
|
+
const out = def.run(el, { ...(def.defaults || {}), ...options }, ctx);
|
|
10156
|
+
if (out && typeof out.finished?.then === 'function')
|
|
10157
|
+
await out.finished.catch(() => undefined);
|
|
10158
|
+
else if (out && typeof out.then === 'function')
|
|
10159
|
+
await out;
|
|
10160
|
+
}
|
|
10161
|
+
/**
|
|
10162
|
+
* Bind an effect to a trigger on `el`: `click`, `hover` (pointerenter / focus),
|
|
10163
|
+
* `enter` (scrolls into view; `once` by default), `load` (now), `loop`
|
|
10164
|
+
* (starts now, cleanup stops it) or `manual` (nothing). Returns an unbind.
|
|
10165
|
+
*/
|
|
10166
|
+
function bindEffect(el, name, options = {}) {
|
|
10167
|
+
const { trigger = 'click', once, ...opts } = options;
|
|
10168
|
+
const def = registry.get(name);
|
|
10169
|
+
if (!def)
|
|
10170
|
+
throw new Error(`[use-scroll-animate] unknown effect "${name}"`);
|
|
10171
|
+
const offs = [];
|
|
10172
|
+
let current = null;
|
|
10173
|
+
const fire = (e) => {
|
|
10174
|
+
const ctx = context(e);
|
|
10175
|
+
if (ctx.reduced && (def.reduced ?? (SKIP_BY_DEFAULT.includes(def.kind) ? 'skip' : 'run')) === 'skip')
|
|
10176
|
+
return;
|
|
10177
|
+
// A persistent effect (returns a cleanup) replaces its previous run instead of stacking.
|
|
10178
|
+
current?.();
|
|
10179
|
+
current = null;
|
|
10180
|
+
const out = def.run(el, { ...(def.defaults || {}), ...opts }, ctx);
|
|
10181
|
+
const stops = [...ctx.cleanups, ...(typeof out === 'function' ? [out] : [])];
|
|
10182
|
+
if (stops.length)
|
|
10183
|
+
current = () => stops.splice(0).forEach((f) => f());
|
|
10184
|
+
};
|
|
10185
|
+
offs.push(() => {
|
|
10186
|
+
current?.();
|
|
10187
|
+
current = null;
|
|
10188
|
+
});
|
|
10189
|
+
const on = (type, opt) => {
|
|
10190
|
+
el.addEventListener(type, fire, opt);
|
|
10191
|
+
offs.push(() => el.removeEventListener(type, fire, opt));
|
|
10192
|
+
};
|
|
10193
|
+
if (trigger === 'click')
|
|
10194
|
+
on('click', { once: !!once });
|
|
10195
|
+
else if (trigger === 'hover')
|
|
10196
|
+
(on('pointerenter'), on('focusin'));
|
|
10197
|
+
else if (trigger === 'load' || trigger === 'loop')
|
|
10198
|
+
fire();
|
|
10199
|
+
else if (trigger === 'enter' && typeof IntersectionObserver !== 'undefined') {
|
|
10200
|
+
const io = new IntersectionObserver((entries) => {
|
|
10201
|
+
for (const en of entries)
|
|
10202
|
+
if (en.isIntersecting) {
|
|
10203
|
+
fire();
|
|
10204
|
+
if (once !== false)
|
|
10205
|
+
io.disconnect();
|
|
10206
|
+
}
|
|
10207
|
+
}, { threshold: 0.15 });
|
|
10208
|
+
io.observe(el);
|
|
10209
|
+
offs.push(() => io.disconnect());
|
|
10210
|
+
}
|
|
10211
|
+
return () => offs.splice(0).reverse().forEach((f) => f());
|
|
10212
|
+
}
|
|
10213
|
+
|
|
10214
|
+
function defineFx(tag = 'usa-fx') {
|
|
10215
|
+
return defineElement(tag, (Base) => class UsaFx extends Base {
|
|
10216
|
+
static get observedAttributes() {
|
|
10217
|
+
return ['effect', 'trigger', 'options'];
|
|
10218
|
+
}
|
|
10219
|
+
get target() {
|
|
10220
|
+
return this.flag('self') ? this : (this.firstElementChild || this);
|
|
10221
|
+
}
|
|
10222
|
+
opts() {
|
|
10223
|
+
try {
|
|
10224
|
+
return JSON.parse(this.str('options', '{}')) || {};
|
|
10225
|
+
}
|
|
10226
|
+
catch {
|
|
10227
|
+
return {};
|
|
10228
|
+
}
|
|
10229
|
+
}
|
|
10230
|
+
play() {
|
|
10231
|
+
return playEffect(this.target, this.str('effect', 'pop'), this.opts()).catch(() => undefined);
|
|
10232
|
+
}
|
|
10233
|
+
mount() {
|
|
10234
|
+
if (!this.style.display)
|
|
10235
|
+
this.style.display = 'inline-block';
|
|
10236
|
+
const name = this.str('effect', 'pop');
|
|
10237
|
+
const t = this.str('trigger', 'click');
|
|
10238
|
+
try {
|
|
10239
|
+
this.onCleanup(bindEffect(this.target, name, { ...this.opts(), trigger: EFFECT_TRIGGERS.includes(t) ? t : 'click', once: this.flag('once') }));
|
|
10240
|
+
this.removeAttribute('data-unknown');
|
|
10241
|
+
}
|
|
10242
|
+
catch {
|
|
10243
|
+
this.setAttribute('data-unknown', name); // not registered (yet)
|
|
10244
|
+
}
|
|
10245
|
+
}
|
|
10246
|
+
});
|
|
10247
|
+
}
|
|
10248
|
+
|
|
10249
|
+
/**
|
|
10250
|
+
* 5.0 built-in effects, all registered through `registerEffect()`:
|
|
10251
|
+
* every timeline preset as an `enter` effect, attention seekers, and the
|
|
10252
|
+
* click effects (burst, confetti, shake, ripple).
|
|
10253
|
+
*/
|
|
10254
|
+
const enter = Object.entries(TIMELINE_PRESETS).map(([name, frames]) => ({
|
|
10255
|
+
name,
|
|
10256
|
+
kind: 'enter',
|
|
10257
|
+
description: `Entrance: ${name} (same keyframes as the timeline preset).`,
|
|
10258
|
+
defaults: { duration: 600, delay: 0, easing: 'cubic-bezier(0.22, 1, 0.36, 1)' },
|
|
10259
|
+
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' }),
|
|
10260
|
+
}));
|
|
10261
|
+
const A = (name, description, frames, duration = 700, easing = 'ease-in-out') => ({
|
|
10262
|
+
name,
|
|
10263
|
+
kind: 'attention',
|
|
10264
|
+
description,
|
|
10265
|
+
defaults: { duration, iterations: 1 },
|
|
10266
|
+
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 })),
|
|
10267
|
+
});
|
|
10268
|
+
const attention = [
|
|
10269
|
+
A('pulse', 'Gentle scale pulse.', [{ transform: 'scale(1)' }, { transform: 'scale(1.08)' }, { transform: 'scale(1)' }], 600),
|
|
10270
|
+
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)'),
|
|
10271
|
+
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),
|
|
10272
|
+
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),
|
|
10273
|
+
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),
|
|
10274
|
+
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),
|
|
10275
|
+
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),
|
|
10276
|
+
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),
|
|
10277
|
+
];
|
|
10278
|
+
const click = [
|
|
10279
|
+
{
|
|
10280
|
+
name: 'burst',
|
|
10281
|
+
kind: 'click',
|
|
10282
|
+
description: 'Particle burst from the click point (or the element center).',
|
|
10283
|
+
defaults: { count: 12 },
|
|
10284
|
+
run: (el, o, ctx) => {
|
|
10285
|
+
if (ctx.reduced)
|
|
10286
|
+
return;
|
|
10287
|
+
const r = el.getBoundingClientRect();
|
|
10288
|
+
const e = ctx.event;
|
|
10289
|
+
burst(e?.clientX ?? r.left + r.width / 2, e?.clientY ?? r.top + r.height / 2, o);
|
|
10290
|
+
},
|
|
10291
|
+
},
|
|
10292
|
+
{
|
|
10293
|
+
name: 'confetti',
|
|
10294
|
+
kind: 'click',
|
|
10295
|
+
description: 'Confetti cannon from the element.',
|
|
10296
|
+
defaults: { count: 80 },
|
|
10297
|
+
run: (el, o, ctx) => {
|
|
10298
|
+
if (ctx.reduced)
|
|
10299
|
+
return;
|
|
10300
|
+
const r = el.getBoundingClientRect();
|
|
10301
|
+
confetti({ x: r.left + r.width / 2, y: r.top + r.height / 2, ...o });
|
|
10302
|
+
},
|
|
10303
|
+
},
|
|
10304
|
+
{
|
|
10305
|
+
name: 'shake',
|
|
10306
|
+
kind: 'attention',
|
|
10307
|
+
description: 'Horizontal "no" shake (errors, wrong password).',
|
|
10308
|
+
defaults: { intensity: 8, duration: 480 },
|
|
10309
|
+
run: (el, o, ctx) => (ctx.reduced ? ctx.animate(el, [{ opacity: 1 }, { opacity: 0.5 }, { opacity: 1 }], { duration: 300 }) : shake(el, o.intensity, o.duration)),
|
|
10310
|
+
},
|
|
10311
|
+
{
|
|
10312
|
+
name: 'ripple',
|
|
10313
|
+
kind: 'click',
|
|
10314
|
+
description: 'Material-style ink ripple from the pointer.',
|
|
10315
|
+
defaults: { color: 'currentColor', duration: 600 },
|
|
10316
|
+
run: (el, o, ctx) => {
|
|
10317
|
+
var _a;
|
|
10318
|
+
if (ctx.reduced)
|
|
10319
|
+
return;
|
|
10320
|
+
const r = el.getBoundingClientRect();
|
|
10321
|
+
const e = ctx.event;
|
|
10322
|
+
const d = Math.hypot(r.width, r.height) * 2;
|
|
10323
|
+
const dot = document.createElement('span');
|
|
10324
|
+
dot.setAttribute('aria-hidden', 'true');
|
|
10325
|
+
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' });
|
|
10326
|
+
if (getComputedStyle(el).position === 'static')
|
|
10327
|
+
el.style.position = 'relative';
|
|
10328
|
+
(_a = el.style).overflow || (_a.overflow = 'hidden');
|
|
10329
|
+
el.appendChild(dot);
|
|
10330
|
+
const a = ctx.animate(dot, [{ transform: 'scale(0)', opacity: 0.3 }, { transform: 'scale(1)', opacity: 0 }], { duration: o.duration, easing: 'ease-out' });
|
|
10331
|
+
const done = () => dot.remove();
|
|
10332
|
+
if (a)
|
|
10333
|
+
a.finished.then(done, done);
|
|
10334
|
+
else
|
|
10335
|
+
done();
|
|
10336
|
+
return a;
|
|
10337
|
+
},
|
|
10338
|
+
},
|
|
10339
|
+
];
|
|
10340
|
+
/** Every built-in 5.0 effect definition. */
|
|
10341
|
+
const BUILTIN_EFFECTS = [...enter, ...attention, ...click];
|
|
10342
|
+
|
|
10343
|
+
/**
|
|
10344
|
+
* use-scroll-animate/components/fx — unified plugin-style effects (5.0).
|
|
10345
|
+
* `registerEffect({ name, kind, run })`, `playEffect(el, name)`,
|
|
10346
|
+
* `bindEffect(el, name, { trigger })`, `<usa-fx effect trigger>`. Built-ins:
|
|
10347
|
+
* every timeline preset (`enter`), `pulse` · `pop` · `jelly` · `wiggle` ·
|
|
10348
|
+
* `heartbeat` · `bounce` · `flash` · `tada` · `shake` (attention),
|
|
10349
|
+
* `burst` · `confetti` · `ripple` (click). More packs: `use-scroll-animate/components/effects`.
|
|
10350
|
+
*/
|
|
10351
|
+
/** Register the built-in effects (idempotent; `defineFxComponents()` calls it). */
|
|
10352
|
+
function registerBuiltinEffects() {
|
|
10353
|
+
registerEffects(BUILTIN_EFFECTS);
|
|
10354
|
+
}
|
|
10355
|
+
/** Register every component of this category under its default tag (+ the built-in effects). */
|
|
10356
|
+
function defineFxComponents() {
|
|
10357
|
+
registerBuiltinEffects();
|
|
10358
|
+
defineFx();
|
|
10359
|
+
}
|
|
10360
|
+
|
|
10079
10361
|
/**
|
|
10080
10362
|
* 4.9 — the 5.0 modern-browser baseline. `baselineReport()` lists which
|
|
10081
10363
|
* required / progressive features this browser has; `warnBaseline()` logs
|
|
@@ -10200,6 +10482,7 @@ const STATIC_ALTERNATIVES = {
|
|
|
10200
10482
|
depth: 'Flat, front-facing layout.',
|
|
10201
10483
|
layout: 'Items reflow instantly.',
|
|
10202
10484
|
packs: 'Roles are styled but not animated.',
|
|
10485
|
+
fx: 'Effects are skipped or reduced to a short fade; the content is unchanged.',
|
|
10203
10486
|
};
|
|
10204
10487
|
/**
|
|
10205
10488
|
* Freeze a subtree at its static alternative: finishes running animations
|
|
@@ -10510,6 +10793,7 @@ const BY_CATEGORY = {
|
|
|
10510
10793
|
depth: defineDepthComponents,
|
|
10511
10794
|
layout: defineLayoutComponents,
|
|
10512
10795
|
packs: definePacksComponents,
|
|
10796
|
+
fx: defineFxComponents,
|
|
10513
10797
|
};
|
|
10514
10798
|
/**
|
|
10515
10799
|
* Register every `<usa-*>` component (or only the given categories).
|
|
@@ -10537,5 +10821,5 @@ function defineComponents(categories) {
|
|
|
10537
10821
|
const STYLE_BASE = new URL('../', import.meta.url).href;
|
|
10538
10822
|
onDemandStyles(STYLE_BASE);
|
|
10539
10823
|
|
|
10540
|
-
export { ALL_TAGS, AMBIENT_EFFECTS, ANIM_ICONS, BRIDGE_PROTOCOL_VERSION, BUTTON_DEFORMS, CARD_EFFECTS, CLICK_EFFECTS, COMPONENT_CATEGORIES, CURSOR_MODES, GL_FALLBACKS, JOINING_SCRIPT, LIVE_REGION_IDS, MASK_SHAPES, MORPH_ICONS, MOTION_SCALE, MOTION_SENSITIVITY, MOTION_SENSITIVITY_LEVELS, MOTION_TOKENS, PACKS, PACK_PRIMITIVES, PAGE_EFFECTS, PARTICLE_PRESETS, POST_EFFECTS, REVEAL_EFFECTS, SENSITIVITY_CSS, SHADERS, SPINNER_VARIANTS, SPRING_EFFECTS, SPRING_PRESETS, STATIC_ALTERNATIVES, STYLE_BASE, TIMELINE_PRESETS, VARIANTS, activeAnimations, adaptKeyframes, adoptVariants, animationBudget, announce, applyMotionTokens, applyNativeSettings, applyPack, auditMotionA11y, autoAnimate, autoDegrade, baselineReport, burst, categoryOf, confetti, configureComponents, connectNativeShell, countUp, createSpring, defineAccordion, defineAcrylic, defineAmbient, defineAnimIcon, defineAurora, defineAutoAnimate, defineAutoSkeleton, defineAvatarStack, defineBackToTop, defineBackgroundComponents, defineBadge, defineBlobs, defineBottomSheet, defineButton, defineCard, defineCardComponents, defineCardStack, defineCarousel3d, defineCheck, defineCheckbox, defineClick, defineClickComponents, defineComponents, defineCounter, defineCube, defineCursor, defineDepth, defineDepthComponents, defineDialog, defineDistort, defineDotNetwork, defineDoubleTap, defineDraggable, defineDraw, defineDrawer, defineFab, defineFeedbackComponents, defineFullpage, defineGestureComponents, defineGlitch, defineGradientText, defineGrain, defineGridGlow, defineHandwriting, defineHold, defineIconMorph, defineInteractionComponents, defineLayoutComponents, defineLike, defineLiquid, defineLoadingBar, defineMagnetic, defineMarquee, defineMaskReveal, defineMasonry, defineMorph, defineMotionSwitch, defineNavbar, defineOverscroll, definePack, definePacksComponents, definePageComponents, defineParticles, definePhysicsComponents, definePinchZoom, definePopover, definePostFx, definePress, defineProgress, definePullRefresh, defineRating, defineReveal, defineRevealComponents, defineRipple, defineScramble, defineScrollHighlight, defineScrollProgress, defineScrolly, defineShader, defineShimmerText, defineSkeleton, defineSlider, defineSpinner, defineSplash, defineSplitText, defineSpotlight, defineSpring, defineStagger, defineStickyStack, defineSvgComponents, defineSwipeable, defineTabs, defineTextComponents, defineTextRotate, defineTilt, defineTimeline, defineTimelineComponents, defineToaster, defineToggle, defineTooltip, defineTransitionComponents, defineTypewriter, defineUiComponents, defineViewSwitch, defineWaterRipple, defineWaveText, defineWebglComponents, detectNativeHost, deviceTilt, drawLines, easeOutExpo, enableMpaTransitions, flip, flipFrames, fluentPreset, flyToCart, fragmentSource, gesture, getMotionIntensity, getMotionSensitivity, getMotionTokens, glFallbackCss, glGovernor, glQuad, graphemes, haptic, importMotionTokens, interpolatePath, linearEasing, liveRegion, loadCategoryStyles, loadedStyles, loadingBar, masonryLayout, mergeMotionTokens, morphPath, morphTo, motionAllowed, motionToken, motionTokensToCss, motionTokensToJSON, motionTokensToVars, motionVar, onDemandStyles, onFrame, orientationToTilt, pageTransition, parseDuration, parseEasing, parseNativeSettings, pathsCompatible, pinchScale, postFxShader, postToNative, prefersReducedMotion, projectInertia, readScrollProgress, requestOrientationPermission, resolveDurationToken, resolveEasingToken, resolvePosition, resolveSpring, restoreMotionIntensity, restoreMotionSensitivity, revealKeyframes, rubberBand, schedulerStats, scrambleFrame, scrollToTarget, setAnimationBudget, setMotionIntensity, setMotionSensitivity, setVariant, shake, sharedTransition, smoothScroll, snapTo, splitOrder, splitText, splitTimeline, words as splitWords, spring, springEasing, springEffectKeyframes, springSamples, staticAlternative, stepSpring, supportsLinearEasing, supportsNativeScrub, supportsOrientation, supportsViewTransitions, supportsWebGL, swipeDirection, themeTransition, timeline, toast, viewTransition, warnBaseline, watchPowerSaver };
|
|
10824
|
+
export { ALL_TAGS, AMBIENT_EFFECTS, ANIM_ICONS, BRIDGE_PROTOCOL_VERSION, BUILTIN_EFFECTS, BUTTON_DEFORMS, CARD_EFFECTS, CLICK_EFFECTS, COMPONENT_CATEGORIES, CURSOR_MODES, EFFECT_KINDS, EFFECT_TRIGGERS, GL_FALLBACKS, JOINING_SCRIPT, LIVE_REGION_IDS, MASK_SHAPES, MORPH_ICONS, MOTION_SCALE, MOTION_SENSITIVITY, MOTION_SENSITIVITY_LEVELS, MOTION_TOKENS, PACKS, PACK_PRIMITIVES, PAGE_EFFECTS, PARTICLE_PRESETS, POST_EFFECTS, REVEAL_EFFECTS, SENSITIVITY_CSS, SHADERS, SPINNER_VARIANTS, SPRING_EFFECTS, SPRING_PRESETS, STATIC_ALTERNATIVES, STYLE_BASE, TIMELINE_PRESETS, VARIANTS, activeAnimations, adaptKeyframes, adoptVariants, animateWithMotion, animationBudget, announce, applyMotionTokens, applyNativeSettings, applyPack, auditMotionA11y, autoAnimate, autoDegrade, baselineReport, bindEffect, burst, categoryOf, confetti, configureComponents, connectNativeShell, countUp, createSpring, defineAccordion, defineAcrylic, defineAmbient, defineAnimIcon, defineAurora, defineAutoAnimate, defineAutoSkeleton, defineAvatarStack, defineBackToTop, defineBackgroundComponents, defineBadge, defineBlobs, defineBottomSheet, defineButton, defineCard, defineCardComponents, defineCardStack, defineCarousel3d, defineCheck, defineCheckbox, defineClick, defineClickComponents, defineComponents, defineCounter, defineCube, defineCursor, defineDepth, defineDepthComponents, defineDialog, defineDistort, defineDotNetwork, defineDoubleTap, defineDraggable, defineDraw, defineDrawer, defineFab, defineFeedbackComponents, defineFullpage, defineFx, defineFxComponents, defineGestureComponents, defineGlitch, defineGradientText, defineGrain, defineGridGlow, defineHandwriting, defineHold, defineIconMorph, defineInteractionComponents, defineLayoutComponents, defineLike, defineLiquid, defineLoadingBar, defineMagnetic, defineMarquee, defineMaskReveal, defineMasonry, defineMorph, defineMotionSwitch, defineNavbar, defineOverscroll, definePack, definePacksComponents, definePageComponents, defineParticles, definePhysicsComponents, definePinchZoom, definePopover, definePostFx, definePress, defineProgress, definePullRefresh, defineRating, defineReveal, defineRevealComponents, defineRipple, defineScramble, defineScrollHighlight, defineScrollProgress, defineScrolly, defineShader, defineShimmerText, defineSkeleton, defineSlider, defineSpinner, defineSplash, defineSplitText, defineSpotlight, defineSpring, defineStagger, defineStickyStack, defineSvgComponents, defineSwipeable, defineTabs, defineTextComponents, defineTextRotate, defineTilt, defineTimeline, defineTimelineComponents, defineToaster, defineToggle, defineTooltip, defineTransitionComponents, defineTypewriter, defineUiComponents, defineViewSwitch, defineWaterRipple, defineWaveText, defineWebglComponents, detectNativeHost, deviceTilt, drawLines, easeOutExpo, enableMpaTransitions, flip, flipFrames, fluentPreset, flyToCart, fragmentSource, gesture, getEffect, getMotionIntensity, getMotionLevel, getMotionSensitivity, getMotionTokens, glFallbackCss, glGovernor, glQuad, graphemes, haptic, hasEffect, importMotionTokens, interpolatePath, linearEasing, listEffects, liveRegion, loadCategoryStyles, loadedStyles, loadingBar, masonryLayout, mergeMotionTokens, morphPath, morphTo, motionAllowed, motionScale, motionToken, motionTokensToCss, motionTokensToJSON, motionTokensToVars, motionVar, onDemandStyles, onFrame, orientationToTilt, pageTransition, parseDuration, parseEasing, parseNativeSettings, pathsCompatible, pinchScale, playEffect, postFxShader, postToNative, prefersReducedMotion, projectInertia, readScrollProgress, registerBuiltinEffects, registerEffect, registerEffects, requestOrientationPermission, resolveDurationToken, resolveEasingToken, resolvePosition, resolveSpring, restoreMotionIntensity, restoreMotionSensitivity, revealKeyframes, rubberBand, schedulerStats, scrambleFrame, scrollToTarget, setAnimationBudget, setMotionIntensity, setMotionLevel, setMotionSensitivity, setVariant, shake, sharedTransition, smoothScroll, snapTo, splitOrder, splitText, splitTimeline, words as splitWords, spring, springEasing, springEffectKeyframes, springSamples, staticAlternative, stepSpring, supportsLinearEasing, supportsNativeScrub, supportsOrientation, supportsViewTransitions, supportsWebGL, swipeDirection, themeTransition, timeline, toast, viewTransition, warnBaseline, watchPowerSaver, withoutDeprecations };
|
|
10541
10825
|
//# sourceMappingURL=lite.js.map
|