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.
Files changed (226) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +2 -1
  3. package/README_ja.md +1 -0
  4. package/README_zh.md +2 -1
  5. package/dist/chunks/{base-BvpQ4Ggj.cjs → base-B5i8qQPR.cjs} +46 -40
  6. package/dist/chunks/base-B5i8qQPR.cjs.map +1 -0
  7. package/dist/chunks/{base-DbbRUxaa.js → base-C3Sw9sAO.js} +46 -41
  8. package/dist/chunks/base-C3Sw9sAO.js.map +1 -0
  9. package/dist/chunks/{core-BWO7JKJ5.cjs → core-BDcszY4L.cjs} +2 -2
  10. package/dist/chunks/{core-BWO7JKJ5.cjs.map → core-BDcszY4L.cjs.map} +1 -1
  11. package/dist/chunks/{core-CcaSsbV8.js → core-BTf__I-8.js} +2 -2
  12. package/dist/chunks/{core-CcaSsbV8.js.map → core-BTf__I-8.js.map} +1 -1
  13. package/dist/chunks/{core-CCAM3nKw.cjs → core-BjOYKSrV.cjs} +2 -2
  14. package/dist/chunks/{core-CCAM3nKw.cjs.map → core-BjOYKSrV.cjs.map} +1 -1
  15. package/dist/chunks/{core-BVTuet9o.js → core-DN3hHbHh.js} +2 -2
  16. package/dist/chunks/{core-BVTuet9o.js.map → core-DN3hHbHh.js.map} +1 -1
  17. package/dist/chunks/fx-B8hk1Fby.cjs +114 -0
  18. package/dist/chunks/fx-B8hk1Fby.cjs.map +1 -0
  19. package/dist/chunks/fx-ChjxrMBo.js +109 -0
  20. package/dist/chunks/fx-ChjxrMBo.js.map +1 -0
  21. package/dist/chunks/{index-tags-Dh8nwXqw.js → index-tags-DucKMQr_.js} +2 -1
  22. package/dist/chunks/{index-tags-Dh8nwXqw.js.map → index-tags-DucKMQr_.js.map} +1 -1
  23. package/dist/chunks/{index-tags-CIRY2KnU.cjs → index-tags-wv0R_vkO.cjs} +2 -1
  24. package/dist/chunks/{index-tags-CIRY2KnU.cjs.map → index-tags-wv0R_vkO.cjs.map} +1 -1
  25. package/dist/chunks/{spring-fFkqE9J0.cjs → spring--oZh55tB.cjs} +2 -2
  26. package/dist/chunks/{spring-fFkqE9J0.cjs.map → spring--oZh55tB.cjs.map} +1 -1
  27. package/dist/chunks/{spring-B6w7mVCU.js → spring-CckMe3x0.js} +2 -2
  28. package/dist/chunks/{spring-B6w7mVCU.js.map → spring-CckMe3x0.js.map} +1 -1
  29. package/dist/chunks/{variants-Cal4DB0E.js → variants-Bsevy6Xm.js} +2 -2
  30. package/dist/chunks/{variants-Cal4DB0E.js.map → variants-Bsevy6Xm.js.map} +1 -1
  31. package/dist/chunks/{variants-C8xj8gfd.cjs → variants-DxPmgrNX.cjs} +2 -2
  32. package/dist/chunks/{variants-C8xj8gfd.cjs.map → variants-DxPmgrNX.cjs.map} +1 -1
  33. package/dist/components/a11y.cjs +3 -2
  34. package/dist/components/a11y.cjs.map +1 -1
  35. package/dist/components/a11y.d.cts +1 -0
  36. package/dist/components/a11y.d.ts +1 -0
  37. package/dist/components/a11y.js +4 -3
  38. package/dist/components/a11y.js.map +1 -1
  39. package/dist/components/angular.cjs +8 -6
  40. package/dist/components/angular.cjs.map +1 -1
  41. package/dist/components/angular.d.cts +33 -4
  42. package/dist/components/angular.d.ts +33 -4
  43. package/dist/components/angular.js +8 -6
  44. package/dist/components/angular.js.map +1 -1
  45. package/dist/components/background.cjs +2 -4
  46. package/dist/components/background.cjs.map +1 -1
  47. package/dist/components/background.d.cts +2 -47
  48. package/dist/components/background.d.ts +2 -47
  49. package/dist/components/background.js +3 -4
  50. package/dist/components/background.js.map +1 -1
  51. package/dist/components/bridge.cjs +1 -1
  52. package/dist/components/bridge.js +1 -1
  53. package/dist/components/cards.cjs +2 -4
  54. package/dist/components/cards.cjs.map +1 -1
  55. package/dist/components/cards.d.cts +2 -47
  56. package/dist/components/cards.d.ts +2 -47
  57. package/dist/components/cards.js +2 -3
  58. package/dist/components/cards.js.map +1 -1
  59. package/dist/components/click.cjs +24 -130
  60. package/dist/components/click.cjs.map +1 -1
  61. package/dist/components/click.d.cts +2 -47
  62. package/dist/components/click.d.ts +2 -47
  63. package/dist/components/click.js +4 -109
  64. package/dist/components/click.js.map +1 -1
  65. package/dist/components/depth.cjs +3 -5
  66. package/dist/components/depth.cjs.map +1 -1
  67. package/dist/components/depth.d.cts +2 -47
  68. package/dist/components/depth.d.ts +2 -47
  69. package/dist/components/depth.js +3 -4
  70. package/dist/components/depth.js.map +1 -1
  71. package/dist/components/effects.cjs +265 -0
  72. package/dist/components/effects.cjs.map +1 -0
  73. package/dist/components/effects.d.cts +66 -0
  74. package/dist/components/effects.d.ts +66 -0
  75. package/dist/components/effects.js +258 -0
  76. package/dist/components/effects.js.map +1 -0
  77. package/dist/components/feedback.cjs +1 -3
  78. package/dist/components/feedback.cjs.map +1 -1
  79. package/dist/components/feedback.d.cts +2 -47
  80. package/dist/components/feedback.d.ts +2 -47
  81. package/dist/components/feedback.js +1 -2
  82. package/dist/components/feedback.js.map +1 -1
  83. package/dist/components/fx.cjs +289 -0
  84. package/dist/components/fx.cjs.map +1 -0
  85. package/dist/components/fx.css +3 -0
  86. package/dist/components/fx.d.cts +114 -0
  87. package/dist/components/fx.d.ts +114 -0
  88. package/dist/components/fx.js +275 -0
  89. package/dist/components/fx.js.map +1 -0
  90. package/dist/components/gesture.cjs +3 -5
  91. package/dist/components/gesture.cjs.map +1 -1
  92. package/dist/components/gesture.d.cts +2 -47
  93. package/dist/components/gesture.d.ts +2 -47
  94. package/dist/components/gesture.js +4 -5
  95. package/dist/components/gesture.js.map +1 -1
  96. package/dist/components/interaction.cjs +1 -3
  97. package/dist/components/interaction.cjs.map +1 -1
  98. package/dist/components/interaction.d.cts +2 -47
  99. package/dist/components/interaction.d.ts +2 -47
  100. package/dist/components/interaction.js +1 -2
  101. package/dist/components/interaction.js.map +1 -1
  102. package/dist/components/jsx.d.cts +1 -0
  103. package/dist/components/jsx.d.ts +1 -0
  104. package/dist/components/layout.cjs +1 -3
  105. package/dist/components/layout.cjs.map +1 -1
  106. package/dist/components/layout.d.cts +2 -47
  107. package/dist/components/layout.d.ts +2 -47
  108. package/dist/components/layout.js +2 -3
  109. package/dist/components/layout.js.map +1 -1
  110. package/dist/components/lazy.cjs +2 -1
  111. package/dist/components/lazy.cjs.map +1 -1
  112. package/dist/components/lazy.d.cts +1 -0
  113. package/dist/components/lazy.d.ts +1 -0
  114. package/dist/components/lazy.js +2 -1
  115. package/dist/components/lazy.js.map +1 -1
  116. package/dist/components/lite.cjs +366 -64
  117. package/dist/components/lite.cjs.map +1 -1
  118. package/dist/components/lite.js +349 -65
  119. package/dist/components/lite.js.map +1 -1
  120. package/dist/components/packs.cjs +1 -3
  121. package/dist/components/packs.cjs.map +1 -1
  122. package/dist/components/packs.d.cts +2 -47
  123. package/dist/components/packs.d.ts +2 -47
  124. package/dist/components/packs.js +2 -3
  125. package/dist/components/packs.js.map +1 -1
  126. package/dist/components/page.cjs +33 -22
  127. package/dist/components/page.cjs.map +1 -1
  128. package/dist/components/page.d.cts +15 -52
  129. package/dist/components/page.d.ts +15 -52
  130. package/dist/components/page.js +33 -22
  131. package/dist/components/page.js.map +1 -1
  132. package/dist/components/perf.cjs +3 -4
  133. package/dist/components/perf.cjs.map +1 -1
  134. package/dist/components/perf.d.cts +1 -0
  135. package/dist/components/perf.d.ts +1 -0
  136. package/dist/components/perf.js +4 -5
  137. package/dist/components/perf.js.map +1 -1
  138. package/dist/components/physics.cjs +2 -4
  139. package/dist/components/physics.cjs.map +1 -1
  140. package/dist/components/physics.d.cts +2 -47
  141. package/dist/components/physics.d.ts +2 -47
  142. package/dist/components/physics.js +3 -4
  143. package/dist/components/physics.js.map +1 -1
  144. package/dist/components/react.cjs +1 -1
  145. package/dist/components/react.js +1 -1
  146. package/dist/components/reveal.cjs +1 -3
  147. package/dist/components/reveal.cjs.map +1 -1
  148. package/dist/components/reveal.d.cts +2 -47
  149. package/dist/components/reveal.d.ts +2 -47
  150. package/dist/components/reveal.js +1 -2
  151. package/dist/components/reveal.js.map +1 -1
  152. package/dist/components/solid.cjs +8 -6
  153. package/dist/components/solid.cjs.map +1 -1
  154. package/dist/components/solid.d.cts +33 -4
  155. package/dist/components/solid.d.ts +33 -4
  156. package/dist/components/solid.js +8 -6
  157. package/dist/components/solid.js.map +1 -1
  158. package/dist/components/svelte.cjs +8 -6
  159. package/dist/components/svelte.cjs.map +1 -1
  160. package/dist/components/svelte.d.cts +33 -4
  161. package/dist/components/svelte.d.ts +33 -4
  162. package/dist/components/svelte.js +8 -6
  163. package/dist/components/svelte.js.map +1 -1
  164. package/dist/components/svg.cjs +1 -3
  165. package/dist/components/svg.cjs.map +1 -1
  166. package/dist/components/svg.d.cts +2 -47
  167. package/dist/components/svg.d.ts +2 -47
  168. package/dist/components/svg.js +2 -3
  169. package/dist/components/svg.js.map +1 -1
  170. package/dist/components/text.cjs +2 -4
  171. package/dist/components/text.cjs.map +1 -1
  172. package/dist/components/text.d.cts +2 -47
  173. package/dist/components/text.d.ts +2 -47
  174. package/dist/components/text.js +2 -3
  175. package/dist/components/text.js.map +1 -1
  176. package/dist/components/timeline.cjs +3 -7
  177. package/dist/components/timeline.cjs.map +1 -1
  178. package/dist/components/timeline.d.cts +4 -49
  179. package/dist/components/timeline.d.ts +4 -49
  180. package/dist/components/timeline.js +4 -7
  181. package/dist/components/timeline.js.map +1 -1
  182. package/dist/components/transitions.cjs +1 -3
  183. package/dist/components/transitions.cjs.map +1 -1
  184. package/dist/components/transitions.d.cts +2 -47
  185. package/dist/components/transitions.d.ts +2 -47
  186. package/dist/components/transitions.js +2 -3
  187. package/dist/components/transitions.js.map +1 -1
  188. package/dist/components/ui.cjs +3 -5
  189. package/dist/components/ui.cjs.map +1 -1
  190. package/dist/components/ui.d.cts +2 -47
  191. package/dist/components/ui.d.ts +2 -47
  192. package/dist/components/ui.js +4 -5
  193. package/dist/components/ui.js.map +1 -1
  194. package/dist/components/vue.cjs +8 -6
  195. package/dist/components/vue.cjs.map +1 -1
  196. package/dist/components/vue.d.cts +33 -4
  197. package/dist/components/vue.d.ts +33 -4
  198. package/dist/components/vue.js +8 -6
  199. package/dist/components/vue.js.map +1 -1
  200. package/dist/components/webgl.cjs +3 -5
  201. package/dist/components/webgl.cjs.map +1 -1
  202. package/dist/components/webgl.d.cts +2 -47
  203. package/dist/components/webgl.d.ts +2 -47
  204. package/dist/components/webgl.js +3 -4
  205. package/dist/components/webgl.js.map +1 -1
  206. package/dist/components.cjs +31 -10
  207. package/dist/components.cjs.map +1 -1
  208. package/dist/components.css +1 -0
  209. package/dist/components.d.cts +137 -17
  210. package/dist/components.d.ts +137 -17
  211. package/dist/components.js +15 -11
  212. package/dist/components.js.map +1 -1
  213. package/dist/components.umd.js +2 -2
  214. package/dist/components.umd.js.map +1 -1
  215. package/dist/index.cjs +2 -2
  216. package/dist/index.js +2 -2
  217. package/dist/index.umd.js +1 -1
  218. package/dist/index.umd.js.map +1 -1
  219. package/docs/API.md +1 -1
  220. package/docs/ROADMAP.md +12 -12
  221. package/docs/components.md +29 -1
  222. package/docs/performance.md +1 -1
  223. package/docs/upgrading-5.md +2 -2
  224. package/package.json +24 -3
  225. package/dist/chunks/base-BvpQ4Ggj.cjs.map +0 -1
  226. package/dist/chunks/base-DbbRUxaa.js.map +0 -1
@@ -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 = { off: 0, low: 0.6, normal: 1, high: 1.25 };
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
- if (!quiet) {
15
- // 4.9: removed in 5.0 (see docs/upgrading-5.md, `npx usa-codemod-5`)
16
- if (options.motionIntensity === 'off')
17
- deprecate('intensity-off', "motionIntensity: 'off' is deprecated and will be removed in 5.0 — use motionSensitivity: 'minimal' (setMotionSensitivity('minimal')) instead.");
18
- if (options.reducedMotion === 'no-preference')
19
- deprecate('reduced-no-preference', "reducedMotion: 'no-preference' is deprecated and will be removed in 5.0 — the OS setting is always respected; use 'user' (default) or 'reduce'.");
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.motionIntensity === 'off' || config.motionSensitivity === 'minimal' || config.motionSensitivity === 'static')
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
- if (typeof el.animate !== 'function' || config.motionSensitivity === 'static') {
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
- if (prev.intensity !== 'off')
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
- * `'off'` (like reduced motion), `'low'`, `'normal'` (default), `'high'`.
7977
- * Sets `--usa-motion` and `data-usa-motion` on `<html>`; with `persist`
7978
- * the choice is remembered (localStorage) and restored by `restoreMotionIntensity()`.
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 (!LEVELS.includes(level))
7987
+ if (!INTENSITIES.includes(level))
7982
7988
  return;
7983
- if (level === 'off' && !fromSwitch)
7984
- deprecate('set-intensity-off', "setMotionIntensity('off') is deprecated and will be removed in 5.0 — use setMotionSensitivity('minimal') from use-scroll-animate/components/a11y.");
7985
- withoutDeprecations(() => configureComponents({ motionIntensity: level }));
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
- /** Re-apply a persisted intensity (call early on page load). Returns it. */
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
- fromSwitch = true;
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 getMotionIntensity();
8033
+ return getMotionLevel();
8016
8034
  }
8017
8035
  set value(v) {
8018
- fromSwitch = true;
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
- if (v === 'js')
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') || c.getContext('experimental-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 }) || canvas.getContext('experimental-webgl'));
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