use-scroll-animate 4.2.0 → 4.3.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.
@@ -117,7 +117,11 @@ interface UsaTypewriterElement extends UsaElement {
117
117
  * them in a cascade (pure CSS animation per unit, transform / opacity /
118
118
  * filter only). Words never break across lines.
119
119
  *
120
- * Attributes: `by` (`chars` | `words`, default `chars`), `effect`
120
+ * 4.3: `Intl.Segmenter`-aware (emoji, CJK words), Arabic-script words are
121
+ * never split below the word, `by="lines"` reveals line by line, and `from`
122
+ * (`start` · `end` · `center` · `edges` · `random`) sets the cascade order.
123
+ *
124
+ * Attributes: `by` (`chars` | `words` | `lines`, default `chars`), `effect`
121
125
  * (`rise` | `fade` | `blur` | `flip` | `pop`, default `rise`), `stagger`
122
126
  * (ms between units, 28 for chars / 70 for words), `duration` (ms, 620),
123
127
  * `delay` (ms, 0), `trigger` (`view` | `load` | `manual`, default `view`),
@@ -230,6 +234,81 @@ interface UsaScrollHighlightElement extends UsaElement {
230
234
  readonly progress: number;
231
235
  }
232
236
 
237
+ /**
238
+ * Where a step starts on a timeline:
239
+ * - a number: absolute time in ms
240
+ * - `'>'` (default): when the previous step ends · `'<'`: when it starts
241
+ * - `'+=200'` / `'-=200'`: after / overlapping the previous end
242
+ * - `'<+=100'`: 100ms after the previous step's start
243
+ * - `'intro'` / `'intro+=150'`: at (or relative to) a label
244
+ */
245
+ type TimelinePosition = number | string;
246
+ interface TimelineStepOptions {
247
+ /** Duration in ms or a motion token name (`'fast'`, `'slow'`…; 4.2). Default: timeline default, 600. */
248
+ duration?: number | string;
249
+ /** CSS easing or a motion token name (`'emphasized'`, `'spring'`…; 4.2). Default `cubic-bezier(0.22, 1, 0.36, 1)`. */
250
+ easing?: string;
251
+ /** Start position, see `TimelinePosition`. */
252
+ at?: TimelinePosition;
253
+ /** ms between targets when the selector matches several elements. */
254
+ stagger?: number;
255
+ }
256
+ interface ScrubOptions {
257
+ /** Scroll offset (px) before the source's top reaches the viewport bottom where progress starts (JS engine only). */
258
+ offset?: number;
259
+ /** Smoothing 0–1 (0 = immediate, default 0). Smoothing needs the JS engine. */
260
+ smooth?: number;
261
+ /**
262
+ * 4.1: which progress source drives the timeline.
263
+ * - `'view'` (default): `source` moving through the viewport (CSS `ViewTimeline`, range `cover`).
264
+ * - `'scroll'`: the scroll position of `source` itself (a scroll container; CSS `ScrollTimeline`).
265
+ */
266
+ source?: 'view' | 'scroll';
267
+ /** 4.1: `'auto'` (default) uses the browser's native scroll-driven animations when available, `'js'` forces the fallback. */
268
+ engine?: 'auto' | 'native' | 'js';
269
+ /** 4.1: scroll axis, `'block'` (default) · `'inline'` · `'x'` · `'y'`. */
270
+ axis?: 'block' | 'inline' | 'x' | 'y';
271
+ }
272
+ /** The function `scrub()` returns: call it to stop. `native` tells which engine runs it. */
273
+ interface ScrubHandle {
274
+ (): void;
275
+ /** `true` when the browser's ScrollTimeline / ViewTimeline drives it (compositor, no JS per frame). */
276
+ readonly native: boolean;
277
+ }
278
+ interface Timeline {
279
+ /** Total length in ms. */
280
+ readonly duration: number;
281
+ /** Label positions in ms. */
282
+ readonly labels: Readonly<Record<string, number>>;
283
+ /** Current playhead in ms. */
284
+ readonly time: number;
285
+ /** Add a step: animate `target` with keyframes or a preset name (`fade-up`, `scale`…). */
286
+ to(target: string | Element | Element[] | NodeList, frames: Keyframe[] | string, options?: TimelineStepOptions): Timeline;
287
+ /** Name a position (default: the current end). */
288
+ label(name: string, at?: TimelinePosition): Timeline;
289
+ /** Run `fn` when the playhead passes `at`. */
290
+ call(fn: () => void, at?: TimelinePosition): Timeline;
291
+ /** Play forwards from the playhead (from 0 when at the end). Resolves at the end. */
292
+ play(from?: TimelinePosition): Promise<void>;
293
+ /** Play backwards to 0. */
294
+ reverse(): Promise<void>;
295
+ pause(): Timeline;
296
+ /** Jump to a time (ms) or label. */
297
+ seek(to: TimelinePosition): Timeline;
298
+ /** Get or set progress 0–1. */
299
+ progress(p?: number): number;
300
+ /**
301
+ * Tie progress to scroll: `source` moving through the viewport (or, with
302
+ * `{ source: 'scroll' }`, a scroll container's own position). Runs on native
303
+ * ScrollTimeline / ViewTimeline when available (and no `smooth`, `offset`,
304
+ * `call()` cues or `onUpdate` need JS), else on a rAF-throttled listener.
305
+ * Returns a stop function with a `native` flag.
306
+ */
307
+ scrub(source: Element, options?: ScrubOptions): ScrubHandle;
308
+ /** Stop and drop every animation (elements keep their last frame). */
309
+ cancel(): void;
310
+ }
311
+
233
312
  /**
234
313
  * use-scroll-animate/components/text — text effects.
235
314
  * `<usa-typewriter>`, `<usa-split-text>`, `<usa-scramble>`, `<usa-counter>`,
@@ -1275,81 +1354,6 @@ declare global {
1275
1354
  }
1276
1355
  }
1277
1356
 
1278
- /**
1279
- * Where a step starts on a timeline:
1280
- * - a number: absolute time in ms
1281
- * - `'>'` (default): when the previous step ends · `'<'`: when it starts
1282
- * - `'+=200'` / `'-=200'`: after / overlapping the previous end
1283
- * - `'<+=100'`: 100ms after the previous step's start
1284
- * - `'intro'` / `'intro+=150'`: at (or relative to) a label
1285
- */
1286
- type TimelinePosition = number | string;
1287
- interface TimelineStepOptions {
1288
- /** Duration in ms or a motion token name (`'fast'`, `'slow'`…; 4.2). Default: timeline default, 600. */
1289
- duration?: number | string;
1290
- /** CSS easing or a motion token name (`'emphasized'`, `'spring'`…; 4.2). Default `cubic-bezier(0.22, 1, 0.36, 1)`. */
1291
- easing?: string;
1292
- /** Start position, see `TimelinePosition`. */
1293
- at?: TimelinePosition;
1294
- /** ms between targets when the selector matches several elements. */
1295
- stagger?: number;
1296
- }
1297
- interface ScrubOptions {
1298
- /** Scroll offset (px) before the source's top reaches the viewport bottom where progress starts (JS engine only). */
1299
- offset?: number;
1300
- /** Smoothing 0–1 (0 = immediate, default 0). Smoothing needs the JS engine. */
1301
- smooth?: number;
1302
- /**
1303
- * 4.1: which progress source drives the timeline.
1304
- * - `'view'` (default): `source` moving through the viewport (CSS `ViewTimeline`, range `cover`).
1305
- * - `'scroll'`: the scroll position of `source` itself (a scroll container; CSS `ScrollTimeline`).
1306
- */
1307
- source?: 'view' | 'scroll';
1308
- /** 4.1: `'auto'` (default) uses the browser's native scroll-driven animations when available, `'js'` forces the fallback. */
1309
- engine?: 'auto' | 'native' | 'js';
1310
- /** 4.1: scroll axis, `'block'` (default) · `'inline'` · `'x'` · `'y'`. */
1311
- axis?: 'block' | 'inline' | 'x' | 'y';
1312
- }
1313
- /** The function `scrub()` returns: call it to stop. `native` tells which engine runs it. */
1314
- interface ScrubHandle {
1315
- (): void;
1316
- /** `true` when the browser's ScrollTimeline / ViewTimeline drives it (compositor, no JS per frame). */
1317
- readonly native: boolean;
1318
- }
1319
- interface Timeline {
1320
- /** Total length in ms. */
1321
- readonly duration: number;
1322
- /** Label positions in ms. */
1323
- readonly labels: Readonly<Record<string, number>>;
1324
- /** Current playhead in ms. */
1325
- readonly time: number;
1326
- /** Add a step: animate `target` with keyframes or a preset name (`fade-up`, `scale`…). */
1327
- to(target: string | Element | Element[] | NodeList, frames: Keyframe[] | string, options?: TimelineStepOptions): Timeline;
1328
- /** Name a position (default: the current end). */
1329
- label(name: string, at?: TimelinePosition): Timeline;
1330
- /** Run `fn` when the playhead passes `at`. */
1331
- call(fn: () => void, at?: TimelinePosition): Timeline;
1332
- /** Play forwards from the playhead (from 0 when at the end). Resolves at the end. */
1333
- play(from?: TimelinePosition): Promise<void>;
1334
- /** Play backwards to 0. */
1335
- reverse(): Promise<void>;
1336
- pause(): Timeline;
1337
- /** Jump to a time (ms) or label. */
1338
- seek(to: TimelinePosition): Timeline;
1339
- /** Get or set progress 0–1. */
1340
- progress(p?: number): number;
1341
- /**
1342
- * Tie progress to scroll: `source` moving through the viewport (or, with
1343
- * `{ source: 'scroll' }`, a scroll container's own position). Runs on native
1344
- * ScrollTimeline / ViewTimeline when available (and no `smooth`, `offset`,
1345
- * `call()` cues or `onUpdate` need JS), else on a rAF-throttled listener.
1346
- * Returns a stop function with a `native` flag.
1347
- */
1348
- scrub(source: Element, options?: ScrubOptions): ScrubHandle;
1349
- /** Stop and drop every animation (elements keep their last frame). */
1350
- cancel(): void;
1351
- }
1352
-
1353
1357
  /**
1354
1358
  * `<usa-timeline>` — declarative choreography. Every descendant with
1355
1359
  * `data-tl="<preset>"` becomes a step, in document order; `data-at`
@@ -2,6 +2,8 @@ import { defineComponents } from '../components.js';
2
2
  import './reveal.js';
3
3
  import '../chunks/base-BPG5zvex.js';
4
4
  import './text.js';
5
+ import '../chunks/core-LkGRmgES.js';
6
+ import './tokens.js';
5
7
  import './interaction.js';
6
8
  import './feedback.js';
7
9
  import './background.js';
@@ -14,8 +16,6 @@ import './click.js';
14
16
  import './ui.js';
15
17
  import './page.js';
16
18
  import './timeline.js';
17
- import '../chunks/core-LkGRmgES.js';
18
- import './tokens.js';
19
19
  import './gesture.js';
20
20
  import '../chunks/core-eXX8rB_b.js';
21
21
  import './svg.js';
@@ -84,6 +84,7 @@ exports.defineScrolly = components_reveal.defineScrolly;
84
84
  exports.defineStagger = components_reveal.defineStagger;
85
85
  exports.readScrollProgress = components_reveal.readScrollProgress;
86
86
  exports.revealKeyframes = components_reveal.revealKeyframes;
87
+ exports.JOINING_SCRIPT = components_text.JOINING_SCRIPT;
87
88
  exports.defineCounter = components_text.defineCounter;
88
89
  exports.defineGlitch = components_text.defineGlitch;
89
90
  exports.defineGradientText = components_text.defineGradientText;
@@ -97,7 +98,12 @@ exports.defineTextRotate = components_text.defineTextRotate;
97
98
  exports.defineTypewriter = components_text.defineTypewriter;
98
99
  exports.defineWaveText = components_text.defineWaveText;
99
100
  exports.easeOutExpo = components_text.easeOutExpo;
101
+ exports.graphemes = components_text.graphemes;
100
102
  exports.scrambleFrame = components_text.scrambleFrame;
103
+ exports.splitOrder = components_text.splitOrder;
104
+ exports.splitText = components_text.splitText;
105
+ exports.splitTimeline = components_text.splitTimeline;
106
+ exports.splitWords = components_text.splitWords;
101
107
  exports.defineInteractionComponents = components_interaction.defineInteractionComponents;
102
108
  exports.defineMagnetic = components_interaction.defineMagnetic;
103
109
  exports.definePress = components_interaction.definePress;
@@ -1 +1 @@
1
- {"version":3,"file":"components.cjs","sources":["../src/components/index.ts"],"sourcesContent":["/**\n * use-scroll-animate/components\n *\n * Framework-agnostic, dependency-free animated UI components built on\n * Custom Elements + CSS + the Web Animations API. They run in any browser\n * and in Windows desktop apps that render with a web view: Electron, Tauri\n * (WebView2), WinUI 3 / WPF / WinForms with WebView2, and installed PWAs.\n *\n * ```js\n * import { defineComponents } from 'use-scroll-animate/components';\n * defineComponents(); // registers every <usa-*> element\n * // or only what you use (tree-shakable):\n * import { defineTypewriter } from 'use-scroll-animate/components/text';\n * ```\n *\n * Importing has no side effects and is SSR-safe; nothing is registered\n * until a `define*()` function runs in a browser.\n *\n * @license MIT\n */\nimport { defineRevealComponents } from './reveal/index';\nimport { defineTextComponents } from './text/index';\nimport { defineInteractionComponents } from './interaction/index';\nimport { defineFeedbackComponents } from './feedback/index';\nimport { defineBackgroundComponents } from './background/index';\nimport { defineTransitionComponents } from './transitions/index';\nimport { definePhysicsComponents } from './physics/index';\nimport { defineCardComponents } from './cards/index';\nimport { defineClickComponents } from './click/index';\nimport { defineUiComponents } from './ui/index';\nimport { definePageComponents } from './page/index';\nimport { defineTimelineComponents } from './timeline/index';\nimport { defineGestureComponents } from './gesture/index';\nimport { defineSvgComponents } from './svg/index';\nimport { defineWebglComponents } from './webgl/index';\nimport { defineDepthComponents } from './depth/index';\nimport { defineLayoutComponents } from './layout/index';\nimport { definePacksComponents } from './packs/index';\nimport { adoptVariants } from './ui/variants';\nimport { canDefine } from './base';\n\nexport * from './reveal/index';\nexport * from './text/index';\nexport * from './interaction/index';\nexport * from './feedback/index';\nexport * from './background/index';\nexport * from './transitions/index';\nexport * from './physics/index';\nexport * from './cards/index';\nexport * from './click/index';\nexport * from './ui/index';\nexport * from './page/index';\nexport * from './timeline/index';\nexport * from './gesture/index';\nexport * from './svg/index';\nexport * from './webgl/index';\nexport * from './depth/index';\nexport * from './layout/index';\nexport * from './packs/index';\nexport * from './tokens/index';\n\nexport { COMPONENT_CATEGORIES } from './index-tags';\nexport type { ComponentCategory } from './index-tags';\nimport { COMPONENT_CATEGORIES, type ComponentCategory } from './index-tags';\n\nconst BY_CATEGORY: Record<ComponentCategory, () => void> = {\n reveal: defineRevealComponents,\n text: defineTextComponents,\n interaction: defineInteractionComponents,\n feedback: defineFeedbackComponents,\n background: defineBackgroundComponents,\n transitions: defineTransitionComponents,\n physics: definePhysicsComponents,\n cards: defineCardComponents,\n click: defineClickComponents,\n ui: defineUiComponents,\n page: definePageComponents,\n timeline: defineTimelineComponents,\n gesture: defineGestureComponents,\n svg: defineSvgComponents,\n webgl: defineWebglComponents,\n depth: defineDepthComponents,\n layout: defineLayoutComponents,\n packs: definePacksComponents,\n};\n\n/**\n * Register every `<usa-*>` component (or only the given categories).\n * Safe to call more than once and on the server (no-op without DOM).\n */\nexport function defineComponents(categories?: ComponentCategory[]): void {\n if (canDefine()) adoptVariants();\n (categories || (Object.keys(BY_CATEGORY) as ComponentCategory[])).forEach((c) => BY_CATEGORY[c]?.());\n}\n"],"names":["defineRevealComponents","defineTextComponents","defineInteractionComponents","defineFeedbackComponents","defineBackgroundComponents","defineTransitionComponents","definePhysicsComponents","defineCardComponents","defineClickComponents","defineUiComponents","definePageComponents","defineTimelineComponents","defineGestureComponents","defineSvgComponents","defineWebglComponents","defineDepthComponents","defineLayoutComponents","definePacksComponents","canDefine","adoptVariants"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;AAmBG;AA8CH,MAAM,WAAW,GAA0C;AACzD,IAAA,MAAM,EAAEA,wCAAsB;AAC9B,IAAA,IAAI,EAAEC,oCAAoB;AAC1B,IAAA,WAAW,EAAEC,kDAA2B;AACxC,IAAA,QAAQ,EAAEC,4CAAwB;AAClC,IAAA,UAAU,EAAEC,gDAA0B;AACtC,IAAA,WAAW,EAAEC,iDAA0B;AACvC,IAAA,OAAO,EAAEC,0CAAuB;AAChC,IAAA,KAAK,EAAEC,qCAAoB;AAC3B,IAAA,KAAK,EAAEC,sCAAqB;AAC5B,IAAA,EAAE,EAAEC,gCAAkB;AACtB,IAAA,IAAI,EAAEC,oCAAoB;AAC1B,IAAA,QAAQ,EAAEC,4CAAwB;AAClC,IAAA,OAAO,EAAEC,0CAAuB;AAChC,IAAA,GAAG,EAAEC,kCAAmB;AACxB,IAAA,KAAK,EAAEC,sCAAqB;AAC5B,IAAA,KAAK,EAAEC,sCAAqB;AAC5B,IAAA,MAAM,EAAEC,wCAAsB;AAC9B,IAAA,KAAK,EAAEC,sCAAqB;CAC7B;AAED;;;AAGG;AACG,SAAU,gBAAgB,CAAC,UAAgC,EAAA;AAC/D,IAAA,IAAIC,cAAS,EAAE;AAAE,QAAAC,sBAAa,EAAE;IAChC,CAAC,UAAU,IAAK,MAAM,CAAC,IAAI,CAAC,WAAW,CAAyB,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACtG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"components.cjs","sources":["../src/components/index.ts"],"sourcesContent":["/**\n * use-scroll-animate/components\n *\n * Framework-agnostic, dependency-free animated UI components built on\n * Custom Elements + CSS + the Web Animations API. They run in any browser\n * and in Windows desktop apps that render with a web view: Electron, Tauri\n * (WebView2), WinUI 3 / WPF / WinForms with WebView2, and installed PWAs.\n *\n * ```js\n * import { defineComponents } from 'use-scroll-animate/components';\n * defineComponents(); // registers every <usa-*> element\n * // or only what you use (tree-shakable):\n * import { defineTypewriter } from 'use-scroll-animate/components/text';\n * ```\n *\n * Importing has no side effects and is SSR-safe; nothing is registered\n * until a `define*()` function runs in a browser.\n *\n * @license MIT\n */\nimport { defineRevealComponents } from './reveal/index';\nimport { defineTextComponents } from './text/index';\nimport { defineInteractionComponents } from './interaction/index';\nimport { defineFeedbackComponents } from './feedback/index';\nimport { defineBackgroundComponents } from './background/index';\nimport { defineTransitionComponents } from './transitions/index';\nimport { definePhysicsComponents } from './physics/index';\nimport { defineCardComponents } from './cards/index';\nimport { defineClickComponents } from './click/index';\nimport { defineUiComponents } from './ui/index';\nimport { definePageComponents } from './page/index';\nimport { defineTimelineComponents } from './timeline/index';\nimport { defineGestureComponents } from './gesture/index';\nimport { defineSvgComponents } from './svg/index';\nimport { defineWebglComponents } from './webgl/index';\nimport { defineDepthComponents } from './depth/index';\nimport { defineLayoutComponents } from './layout/index';\nimport { definePacksComponents } from './packs/index';\nimport { adoptVariants } from './ui/variants';\nimport { canDefine } from './base';\n\nexport * from './reveal/index';\nexport * from './text/index';\nexport * from './interaction/index';\nexport * from './feedback/index';\nexport * from './background/index';\nexport * from './transitions/index';\nexport * from './physics/index';\nexport * from './cards/index';\nexport * from './click/index';\nexport * from './ui/index';\nexport * from './page/index';\nexport * from './timeline/index';\nexport * from './gesture/index';\nexport * from './svg/index';\nexport * from './webgl/index';\nexport * from './depth/index';\nexport * from './layout/index';\nexport * from './packs/index';\nexport * from './tokens/index';\n\nexport { COMPONENT_CATEGORIES } from './index-tags';\nexport type { ComponentCategory } from './index-tags';\nimport { COMPONENT_CATEGORIES, type ComponentCategory } from './index-tags';\n\nconst BY_CATEGORY: Record<ComponentCategory, () => void> = {\n reveal: defineRevealComponents,\n text: defineTextComponents,\n interaction: defineInteractionComponents,\n feedback: defineFeedbackComponents,\n background: defineBackgroundComponents,\n transitions: defineTransitionComponents,\n physics: definePhysicsComponents,\n cards: defineCardComponents,\n click: defineClickComponents,\n ui: defineUiComponents,\n page: definePageComponents,\n timeline: defineTimelineComponents,\n gesture: defineGestureComponents,\n svg: defineSvgComponents,\n webgl: defineWebglComponents,\n depth: defineDepthComponents,\n layout: defineLayoutComponents,\n packs: definePacksComponents,\n};\n\n/**\n * Register every `<usa-*>` component (or only the given categories).\n * Safe to call more than once and on the server (no-op without DOM).\n */\nexport function defineComponents(categories?: ComponentCategory[]): void {\n if (canDefine()) adoptVariants();\n (categories || (Object.keys(BY_CATEGORY) as ComponentCategory[])).forEach((c) => BY_CATEGORY[c]?.());\n}\n"],"names":["defineRevealComponents","defineTextComponents","defineInteractionComponents","defineFeedbackComponents","defineBackgroundComponents","defineTransitionComponents","definePhysicsComponents","defineCardComponents","defineClickComponents","defineUiComponents","definePageComponents","defineTimelineComponents","defineGestureComponents","defineSvgComponents","defineWebglComponents","defineDepthComponents","defineLayoutComponents","definePacksComponents","canDefine","adoptVariants"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;AAmBG;AA8CH,MAAM,WAAW,GAA0C;AACzD,IAAA,MAAM,EAAEA,wCAAsB;AAC9B,IAAA,IAAI,EAAEC,oCAAoB;AAC1B,IAAA,WAAW,EAAEC,kDAA2B;AACxC,IAAA,QAAQ,EAAEC,4CAAwB;AAClC,IAAA,UAAU,EAAEC,gDAA0B;AACtC,IAAA,WAAW,EAAEC,iDAA0B;AACvC,IAAA,OAAO,EAAEC,0CAAuB;AAChC,IAAA,KAAK,EAAEC,qCAAoB;AAC3B,IAAA,KAAK,EAAEC,sCAAqB;AAC5B,IAAA,EAAE,EAAEC,gCAAkB;AACtB,IAAA,IAAI,EAAEC,oCAAoB;AAC1B,IAAA,QAAQ,EAAEC,4CAAwB;AAClC,IAAA,OAAO,EAAEC,0CAAuB;AAChC,IAAA,GAAG,EAAEC,kCAAmB;AACxB,IAAA,KAAK,EAAEC,sCAAqB;AAC5B,IAAA,KAAK,EAAEC,sCAAqB;AAC5B,IAAA,MAAM,EAAEC,wCAAsB;AAC9B,IAAA,KAAK,EAAEC,sCAAqB;CAC7B;AAED;;;AAGG;AACG,SAAU,gBAAgB,CAAC,UAAgC,EAAA;AAC/D,IAAA,IAAIC,cAAS,EAAE;AAAE,QAAAC,sBAAa,EAAE;IAChC,CAAC,UAAU,IAAK,MAAM,CAAC,IAAI,CAAC,WAAW,CAAyB,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACtG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -165,7 +165,11 @@ declare function defineTypewriter(tag?: string): CustomElementConstructor | unde
165
165
  * them in a cascade (pure CSS animation per unit, transform / opacity /
166
166
  * filter only). Words never break across lines.
167
167
  *
168
- * Attributes: `by` (`chars` | `words`, default `chars`), `effect`
168
+ * 4.3: `Intl.Segmenter`-aware (emoji, CJK words), Arabic-script words are
169
+ * never split below the word, `by="lines"` reveals line by line, and `from`
170
+ * (`start` · `end` · `center` · `edges` · `random`) sets the cascade order.
171
+ *
172
+ * Attributes: `by` (`chars` | `words` | `lines`, default `chars`), `effect`
169
173
  * (`rise` | `fade` | `blur` | `flip` | `pop`, default `rise`), `stagger`
170
174
  * (ms between units, 28 for chars / 70 for words), `duration` (ms, 620),
171
175
  * `delay` (ms, 0), `trigger` (`view` | `load` | `manual`, default `view`),
@@ -292,6 +296,185 @@ interface UsaScrollHighlightElement extends UsaElement {
292
296
  }
293
297
  declare function defineScrollHighlight(tag?: string): CustomElementConstructor | undefined;
294
298
 
299
+ /**
300
+ * Where a step starts on a timeline:
301
+ * - a number: absolute time in ms
302
+ * - `'>'` (default): when the previous step ends · `'<'`: when it starts
303
+ * - `'+=200'` / `'-=200'`: after / overlapping the previous end
304
+ * - `'<+=100'`: 100ms after the previous step's start
305
+ * - `'intro'` / `'intro+=150'`: at (or relative to) a label
306
+ */
307
+ type TimelinePosition = number | string;
308
+ interface TimelineStepOptions {
309
+ /** Duration in ms or a motion token name (`'fast'`, `'slow'`…; 4.2). Default: timeline default, 600. */
310
+ duration?: number | string;
311
+ /** CSS easing or a motion token name (`'emphasized'`, `'spring'`…; 4.2). Default `cubic-bezier(0.22, 1, 0.36, 1)`. */
312
+ easing?: string;
313
+ /** Start position, see `TimelinePosition`. */
314
+ at?: TimelinePosition;
315
+ /** ms between targets when the selector matches several elements. */
316
+ stagger?: number;
317
+ }
318
+ interface TimelineOptions {
319
+ /** Defaults for every step. */
320
+ defaults?: Pick<TimelineStepOptions, 'duration' | 'easing' | 'stagger'>;
321
+ /** Playback rate (1 = normal). */
322
+ speed?: number;
323
+ /** Called after `play()` reaches the end (or the start when reversed). */
324
+ onComplete?: () => void;
325
+ /** Called on every frame with progress 0–1. */
326
+ onUpdate?: (progress: number) => void;
327
+ }
328
+ interface ScrubOptions {
329
+ /** Scroll offset (px) before the source's top reaches the viewport bottom where progress starts (JS engine only). */
330
+ offset?: number;
331
+ /** Smoothing 0–1 (0 = immediate, default 0). Smoothing needs the JS engine. */
332
+ smooth?: number;
333
+ /**
334
+ * 4.1: which progress source drives the timeline.
335
+ * - `'view'` (default): `source` moving through the viewport (CSS `ViewTimeline`, range `cover`).
336
+ * - `'scroll'`: the scroll position of `source` itself (a scroll container; CSS `ScrollTimeline`).
337
+ */
338
+ source?: 'view' | 'scroll';
339
+ /** 4.1: `'auto'` (default) uses the browser's native scroll-driven animations when available, `'js'` forces the fallback. */
340
+ engine?: 'auto' | 'native' | 'js';
341
+ /** 4.1: scroll axis, `'block'` (default) · `'inline'` · `'x'` · `'y'`. */
342
+ axis?: 'block' | 'inline' | 'x' | 'y';
343
+ }
344
+ /** The function `scrub()` returns: call it to stop. `native` tells which engine runs it. */
345
+ interface ScrubHandle {
346
+ (): void;
347
+ /** `true` when the browser's ScrollTimeline / ViewTimeline drives it (compositor, no JS per frame). */
348
+ readonly native: boolean;
349
+ }
350
+ /** 4.1: whether `scrub()` can use native ScrollTimeline / ViewTimeline here. */
351
+ declare function supportsNativeScrub(source?: 'view' | 'scroll'): boolean;
352
+ interface Timeline {
353
+ /** Total length in ms. */
354
+ readonly duration: number;
355
+ /** Label positions in ms. */
356
+ readonly labels: Readonly<Record<string, number>>;
357
+ /** Current playhead in ms. */
358
+ readonly time: number;
359
+ /** Add a step: animate `target` with keyframes or a preset name (`fade-up`, `scale`…). */
360
+ to(target: string | Element | Element[] | NodeList, frames: Keyframe[] | string, options?: TimelineStepOptions): Timeline;
361
+ /** Name a position (default: the current end). */
362
+ label(name: string, at?: TimelinePosition): Timeline;
363
+ /** Run `fn` when the playhead passes `at`. */
364
+ call(fn: () => void, at?: TimelinePosition): Timeline;
365
+ /** Play forwards from the playhead (from 0 when at the end). Resolves at the end. */
366
+ play(from?: TimelinePosition): Promise<void>;
367
+ /** Play backwards to 0. */
368
+ reverse(): Promise<void>;
369
+ pause(): Timeline;
370
+ /** Jump to a time (ms) or label. */
371
+ seek(to: TimelinePosition): Timeline;
372
+ /** Get or set progress 0–1. */
373
+ progress(p?: number): number;
374
+ /**
375
+ * Tie progress to scroll: `source` moving through the viewport (or, with
376
+ * `{ source: 'scroll' }`, a scroll container's own position). Runs on native
377
+ * ScrollTimeline / ViewTimeline when available (and no `smooth`, `offset`,
378
+ * `call()` cues or `onUpdate` need JS), else on a rAF-throttled listener.
379
+ * Returns a stop function with a `native` flag.
380
+ */
381
+ scrub(source: Element, options?: ScrubOptions): ScrubHandle;
382
+ /** Stop and drop every animation (elements keep their last frame). */
383
+ cancel(): void;
384
+ }
385
+ /** Keyframe presets usable by name in `to()` and `data-tl`. */
386
+ declare const TIMELINE_PRESETS: Record<string, Keyframe[]>;
387
+ /** Resolve a position against the previous step and labels (pure). */
388
+ declare function resolvePosition(pos: TimelinePosition | undefined, end: number, prevStart: number, labels?: Record<string, number>): number;
389
+ /**
390
+ * Choreograph animations on one clock: chain, overlap, label, seek, reverse and
391
+ * scrub them with scroll. Built on WAAPI (paused animations driven by one
392
+ * playhead); without WAAPI or under reduced motion it jumps to the end state.
393
+ *
394
+ * @example
395
+ * const tl = timeline({ defaults: { duration: 500 } })
396
+ * .to('.title', 'fade-up')
397
+ * .label('cards')
398
+ * .to('.card', 'scale', { stagger: 80, at: '-=200' })
399
+ * .to('.cta', [{ opacity: 0 }, { opacity: 1 }], { at: 'cards+=400' });
400
+ * tl.play(); // or tl.scrub(document.querySelector('.hero'))
401
+ */
402
+ declare function timeline(options?: TimelineOptions): Timeline;
403
+
404
+ /**
405
+ * `splitText()` (4.3) — split an element's text into characters, words and / or
406
+ * lines, ready for per-unit choreography with `timeline()`.
407
+ *
408
+ * - Grapheme- and word-aware via `Intl.Segmenter` when available: emoji and
409
+ * combining marks stay whole; Chinese / Japanese / Korean text is split into
410
+ * real words (or one unit per character without `Segmenter`).
411
+ * - RTL aware: Arabic-script text (cursive, letters join) is never split
412
+ * below the word, so shaping is preserved; Hebrew and other RTL scripts
413
+ * split per character. Units stay in logical (reading) order.
414
+ * - Nested inline markup (`<em>`, `<a>`, `<br>`) is preserved.
415
+ * - Accessible: the original text stays available to assistive tech via a
416
+ * visually hidden copy; the split spans are `aria-hidden`.
417
+ */
418
+ type SplitBy = 'char' | 'word' | 'line';
419
+ interface SplitTextOptions {
420
+ /** What to split into: `'char'`, `'word'`, `'line'` or several, e.g. `['word', 'line']`. Default `'char'` (words are always wrapped too). */
421
+ by?: SplitBy | SplitBy[] | string;
422
+ /** Locale for `Intl.Segmenter` (default: the element's `lang`, else the document's). */
423
+ locale?: string;
424
+ /** Class prefix (default `usa-split`): units get `usa-split-char` / `-word` / `-line`. */
425
+ className?: string;
426
+ }
427
+ interface SplitResult {
428
+ chars: HTMLElement[];
429
+ words: HTMLElement[];
430
+ lines: HTMLElement[];
431
+ /** `'rtl'` or `'ltr'` — the direction the split ran in. */
432
+ direction: 'ltr' | 'rtl';
433
+ /** Re-measure lines (call after a resize or font load). */
434
+ relayout(): HTMLElement[];
435
+ /** Restore the original markup. */
436
+ revert(): void;
437
+ }
438
+ /** Scripts whose letters join (splitting them would break shaping). */
439
+ declare const JOINING_SCRIPT: RegExp;
440
+ /** Grapheme clusters of `s` (emoji / combining marks stay whole). */
441
+ declare function graphemes(s: string, locale?: string): string[];
442
+ /**
443
+ * Word-ish tokens of `s`, whitespace kept as separate tokens. CJK text is
444
+ * segmented into words with `Intl.Segmenter`, or per character without it.
445
+ */
446
+ declare function words(s: string, locale?: string): string[];
447
+ declare function splitText(el: HTMLElement, options?: SplitTextOptions): SplitResult;
448
+ type SplitFrom = 'start' | 'end' | 'center' | 'edges' | 'random';
449
+ /** Order indices `0…n-1` by choreography: from the start, end, center outwards, edges inwards, or random (seeded). */
450
+ declare function splitOrder(n: number, from?: SplitFrom, seed?: number): number[];
451
+ interface SplitTimelineOptions extends SplitTextOptions {
452
+ /** Which units to animate (default: the finest in `by`). */
453
+ unit?: 'char' | 'word' | 'line';
454
+ /** Timeline preset name or keyframes (default `'fade-up'`). */
455
+ preset?: string | Keyframe[];
456
+ /** ms between units (default 30 for chars, 80 for words, 140 for lines). */
457
+ stagger?: number;
458
+ /** Duration per unit in ms or a motion token name (default 500). */
459
+ duration?: number | string;
460
+ easing?: string;
461
+ /** Choreography order (default `'start'` — reading order, also for RTL). */
462
+ from?: SplitFrom;
463
+ }
464
+ /**
465
+ * Split `el` and build a `timeline()` with one step per unit — play it,
466
+ * `scrub()` it with scroll, `reverse()` or `seek()` it.
467
+ *
468
+ * ```ts
469
+ * const { timeline: tl } = splitTimeline(h1, { by: 'char', preset: 'blur', from: 'center' });
470
+ * tl.play();
471
+ * ```
472
+ */
473
+ declare function splitTimeline(el: HTMLElement, options?: SplitTimelineOptions): {
474
+ split: SplitResult;
475
+ timeline: Timeline;
476
+ };
477
+
295
478
  /**
296
479
  * use-scroll-animate/components/text — text effects.
297
480
  * `<usa-typewriter>`, `<usa-split-text>`, `<usa-scramble>`, `<usa-counter>`,
@@ -1747,111 +1930,6 @@ declare global {
1747
1930
  }
1748
1931
  }
1749
1932
 
1750
- /**
1751
- * Where a step starts on a timeline:
1752
- * - a number: absolute time in ms
1753
- * - `'>'` (default): when the previous step ends · `'<'`: when it starts
1754
- * - `'+=200'` / `'-=200'`: after / overlapping the previous end
1755
- * - `'<+=100'`: 100ms after the previous step's start
1756
- * - `'intro'` / `'intro+=150'`: at (or relative to) a label
1757
- */
1758
- type TimelinePosition = number | string;
1759
- interface TimelineStepOptions {
1760
- /** Duration in ms or a motion token name (`'fast'`, `'slow'`…; 4.2). Default: timeline default, 600. */
1761
- duration?: number | string;
1762
- /** CSS easing or a motion token name (`'emphasized'`, `'spring'`…; 4.2). Default `cubic-bezier(0.22, 1, 0.36, 1)`. */
1763
- easing?: string;
1764
- /** Start position, see `TimelinePosition`. */
1765
- at?: TimelinePosition;
1766
- /** ms between targets when the selector matches several elements. */
1767
- stagger?: number;
1768
- }
1769
- interface TimelineOptions {
1770
- /** Defaults for every step. */
1771
- defaults?: Pick<TimelineStepOptions, 'duration' | 'easing' | 'stagger'>;
1772
- /** Playback rate (1 = normal). */
1773
- speed?: number;
1774
- /** Called after `play()` reaches the end (or the start when reversed). */
1775
- onComplete?: () => void;
1776
- /** Called on every frame with progress 0–1. */
1777
- onUpdate?: (progress: number) => void;
1778
- }
1779
- interface ScrubOptions {
1780
- /** Scroll offset (px) before the source's top reaches the viewport bottom where progress starts (JS engine only). */
1781
- offset?: number;
1782
- /** Smoothing 0–1 (0 = immediate, default 0). Smoothing needs the JS engine. */
1783
- smooth?: number;
1784
- /**
1785
- * 4.1: which progress source drives the timeline.
1786
- * - `'view'` (default): `source` moving through the viewport (CSS `ViewTimeline`, range `cover`).
1787
- * - `'scroll'`: the scroll position of `source` itself (a scroll container; CSS `ScrollTimeline`).
1788
- */
1789
- source?: 'view' | 'scroll';
1790
- /** 4.1: `'auto'` (default) uses the browser's native scroll-driven animations when available, `'js'` forces the fallback. */
1791
- engine?: 'auto' | 'native' | 'js';
1792
- /** 4.1: scroll axis, `'block'` (default) · `'inline'` · `'x'` · `'y'`. */
1793
- axis?: 'block' | 'inline' | 'x' | 'y';
1794
- }
1795
- /** The function `scrub()` returns: call it to stop. `native` tells which engine runs it. */
1796
- interface ScrubHandle {
1797
- (): void;
1798
- /** `true` when the browser's ScrollTimeline / ViewTimeline drives it (compositor, no JS per frame). */
1799
- readonly native: boolean;
1800
- }
1801
- /** 4.1: whether `scrub()` can use native ScrollTimeline / ViewTimeline here. */
1802
- declare function supportsNativeScrub(source?: 'view' | 'scroll'): boolean;
1803
- interface Timeline {
1804
- /** Total length in ms. */
1805
- readonly duration: number;
1806
- /** Label positions in ms. */
1807
- readonly labels: Readonly<Record<string, number>>;
1808
- /** Current playhead in ms. */
1809
- readonly time: number;
1810
- /** Add a step: animate `target` with keyframes or a preset name (`fade-up`, `scale`…). */
1811
- to(target: string | Element | Element[] | NodeList, frames: Keyframe[] | string, options?: TimelineStepOptions): Timeline;
1812
- /** Name a position (default: the current end). */
1813
- label(name: string, at?: TimelinePosition): Timeline;
1814
- /** Run `fn` when the playhead passes `at`. */
1815
- call(fn: () => void, at?: TimelinePosition): Timeline;
1816
- /** Play forwards from the playhead (from 0 when at the end). Resolves at the end. */
1817
- play(from?: TimelinePosition): Promise<void>;
1818
- /** Play backwards to 0. */
1819
- reverse(): Promise<void>;
1820
- pause(): Timeline;
1821
- /** Jump to a time (ms) or label. */
1822
- seek(to: TimelinePosition): Timeline;
1823
- /** Get or set progress 0–1. */
1824
- progress(p?: number): number;
1825
- /**
1826
- * Tie progress to scroll: `source` moving through the viewport (or, with
1827
- * `{ source: 'scroll' }`, a scroll container's own position). Runs on native
1828
- * ScrollTimeline / ViewTimeline when available (and no `smooth`, `offset`,
1829
- * `call()` cues or `onUpdate` need JS), else on a rAF-throttled listener.
1830
- * Returns a stop function with a `native` flag.
1831
- */
1832
- scrub(source: Element, options?: ScrubOptions): ScrubHandle;
1833
- /** Stop and drop every animation (elements keep their last frame). */
1834
- cancel(): void;
1835
- }
1836
- /** Keyframe presets usable by name in `to()` and `data-tl`. */
1837
- declare const TIMELINE_PRESETS: Record<string, Keyframe[]>;
1838
- /** Resolve a position against the previous step and labels (pure). */
1839
- declare function resolvePosition(pos: TimelinePosition | undefined, end: number, prevStart: number, labels?: Record<string, number>): number;
1840
- /**
1841
- * Choreograph animations on one clock: chain, overlap, label, seek, reverse and
1842
- * scrub them with scroll. Built on WAAPI (paused animations driven by one
1843
- * playhead); without WAAPI or under reduced motion it jumps to the end state.
1844
- *
1845
- * @example
1846
- * const tl = timeline({ defaults: { duration: 500 } })
1847
- * .to('.title', 'fade-up')
1848
- * .label('cards')
1849
- * .to('.card', 'scale', { stagger: 80, at: '-=200' })
1850
- * .to('.cta', [{ opacity: 0 }, { opacity: 1 }], { at: 'cards+=400' });
1851
- * tl.play(); // or tl.scrub(document.querySelector('.hero'))
1852
- */
1853
- declare function timeline(options?: TimelineOptions): Timeline;
1854
-
1855
1933
  /**
1856
1934
  * `<usa-timeline>` — declarative choreography. Every descendant with
1857
1935
  * `data-tl="<preset>"` becomes a step, in document order; `data-at`
@@ -2502,5 +2580,5 @@ type ComponentCategory = keyof typeof COMPONENT_CATEGORIES;
2502
2580
  */
2503
2581
  declare function defineComponents(categories?: ComponentCategory[]): void;
2504
2582
 
2505
- export { AMBIENT_EFFECTS, ANIM_ICONS, BUTTON_DEFORMS, CARD_EFFECTS, CLICK_EFFECTS, COMPONENT_CATEGORIES, CURSOR_MODES, MASK_SHAPES, MORPH_ICONS, MOTION_SCALE, MOTION_TOKENS, PACKS, PACK_PRIMITIVES, PAGE_EFFECTS, REVEAL_EFFECTS, SHADERS, SPINNER_VARIANTS, SPRING_EFFECTS, SPRING_PRESETS, TIMELINE_PRESETS, VARIANTS, adoptVariants, applyMotionTokens, applyPack, autoAnimate, burst, confetti, configureComponents, 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, 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, deviceTilt, drawLines, easeOutExpo, enableMpaTransitions, flip, flipFrames, fluentPreset, flyToCart, fragmentSource, gesture, getMotionIntensity, getMotionTokens, glQuad, haptic, importMotionTokens, interpolatePath, linearEasing, loadingBar, masonryLayout, mergeMotionTokens, morphPath, morphTo, motionToken, motionTokensToCss, motionTokensToJSON, motionTokensToVars, motionVar, orientationToTilt, pageTransition, parseDuration, parseEasing, pathsCompatible, pinchScale, prefersReducedMotion, projectInertia, readScrollProgress, requestOrientationPermission, resolveDurationToken, resolveEasingToken, resolvePosition, resolveSpring, restoreMotionIntensity, revealKeyframes, rubberBand, scrambleFrame, scrollToTarget, setMotionIntensity, setVariant, shake, sharedTransition, smoothScroll, snapTo, spring, springEasing, springEffectKeyframes, springSamples, stepSpring, supportsLinearEasing, supportsNativeScrub, supportsOrientation, supportsViewTransitions, supportsWebGL, swipeDirection, themeTransition, timeline, toast, viewTransition };
2506
- export type { AmbientEffect, AutoAnimateOptions, BurstOptions, ButtonDeform, ButtonShape, ButtonState, CardEffect, ClickEffect, ComponentCategory, ComponentsConfig, ConfettiOptions, CursorMode, DeepPartialTokens, DialogVariant, FlipOptions, FluentPresetOptions, GLQuad, GestureHandlers, GestureOptions, MorphOptions, MotionIntensity, MotionTokenGroup, MotionTokens, PackContext, PackName, PageEffect, PageTransitionOptions, PanState, PinchState, Placement, PressState, RevealEffect, ScrubHandle, ScrubOptions, SharedOptions, SmoothScrollOptions, SpinnerVariant, SpringConfig, SpringEffect, SpringInput, SpringPreset, SpringToken, SpringValue, SpringValueOptions, SwipeDirection, SwipeState, TiltReading, Timeline, TimelineOptions, TimelinePosition, TimelineStepOptions, ToastHandle, ToastOptions, ToastType, UsaAccordionElement, UsaAcrylicElement, UsaAmbientElement, UsaAnimIconElement, UsaAuroraElement, UsaAutoAnimateElement, UsaAutoSkeletonElement, UsaAvatarStackElement, UsaBackToTopElement, UsaBadgeElement, UsaBlobsElement, UsaBottomSheetElement, UsaButtonElement, UsaCardElement, UsaCardStackElement, UsaCarousel3dElement, UsaCheckElement, UsaCheckboxElement, UsaClickElement, UsaCounterElement, UsaCubeElement, UsaCursorElement, UsaDepthElement, UsaDialogElement, UsaDotNetworkElement, UsaDoubleTapElement, UsaDraggableElement, UsaDrawElement, UsaDrawerElement, UsaElement, UsaFabElement, UsaFullpageElement, UsaGLElement, UsaGlitchElement, UsaGradientTextElement, UsaGrainElement, UsaGridGlowElement, UsaHandwritingElement, UsaHoldElement, UsaIconMorphElement, UsaLikeElement, UsaLoadingBarElement, UsaMagneticElement, UsaMarqueeElement, UsaMaskRevealElement, UsaMasonryElement, UsaMorphElement, UsaMotionSwitchElement, UsaNavbarElement, UsaOverscrollElement, UsaPackElement, UsaParticlesElement, UsaPinchZoomElement, UsaPopoverElement, UsaPressElement, UsaProgressElement, UsaPullRefreshElement, UsaRatingElement, UsaRevealElement, UsaRippleElement, UsaScrambleElement, UsaScrollHighlightElement, UsaScrollProgressElement, UsaScrollyElement, UsaShimmerTextElement, UsaSkeletonElement, UsaSliderElement, UsaSpinnerElement, UsaSplashElement, UsaSplitTextElement, UsaSpotlightElement, UsaSpringElement, UsaStaggerElement, UsaStickyStackElement, UsaSwipeableElement, UsaTabsElement, UsaTextRotateElement, UsaTiltElement, UsaTimelineElement, UsaToasterElement, UsaToggleElement, UsaTooltipElement, UsaTypewriterElement, UsaViewSwitchElement, UsaWaterRippleElement, UsaWaveTextElement, Variant, ViewTransitionOptions };
2583
+ export { AMBIENT_EFFECTS, ANIM_ICONS, BUTTON_DEFORMS, CARD_EFFECTS, CLICK_EFFECTS, COMPONENT_CATEGORIES, CURSOR_MODES, JOINING_SCRIPT, MASK_SHAPES, MORPH_ICONS, MOTION_SCALE, MOTION_TOKENS, PACKS, PACK_PRIMITIVES, PAGE_EFFECTS, REVEAL_EFFECTS, SHADERS, SPINNER_VARIANTS, SPRING_EFFECTS, SPRING_PRESETS, TIMELINE_PRESETS, VARIANTS, adoptVariants, applyMotionTokens, applyPack, autoAnimate, burst, confetti, configureComponents, 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, 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, deviceTilt, drawLines, easeOutExpo, enableMpaTransitions, flip, flipFrames, fluentPreset, flyToCart, fragmentSource, gesture, getMotionIntensity, getMotionTokens, glQuad, graphemes, haptic, importMotionTokens, interpolatePath, linearEasing, loadingBar, masonryLayout, mergeMotionTokens, morphPath, morphTo, motionToken, motionTokensToCss, motionTokensToJSON, motionTokensToVars, motionVar, orientationToTilt, pageTransition, parseDuration, parseEasing, pathsCompatible, pinchScale, prefersReducedMotion, projectInertia, readScrollProgress, requestOrientationPermission, resolveDurationToken, resolveEasingToken, resolvePosition, resolveSpring, restoreMotionIntensity, revealKeyframes, rubberBand, scrambleFrame, scrollToTarget, setMotionIntensity, setVariant, shake, sharedTransition, smoothScroll, snapTo, splitOrder, splitText, splitTimeline, words as splitWords, spring, springEasing, springEffectKeyframes, springSamples, stepSpring, supportsLinearEasing, supportsNativeScrub, supportsOrientation, supportsViewTransitions, supportsWebGL, swipeDirection, themeTransition, timeline, toast, viewTransition };
2584
+ export type { AmbientEffect, AutoAnimateOptions, BurstOptions, ButtonDeform, ButtonShape, ButtonState, CardEffect, ClickEffect, ComponentCategory, ComponentsConfig, ConfettiOptions, CursorMode, DeepPartialTokens, DialogVariant, FlipOptions, FluentPresetOptions, GLQuad, GestureHandlers, GestureOptions, MorphOptions, MotionIntensity, MotionTokenGroup, MotionTokens, PackContext, PackName, PageEffect, PageTransitionOptions, PanState, PinchState, Placement, PressState, RevealEffect, ScrubHandle, ScrubOptions, SharedOptions, SmoothScrollOptions, SpinnerVariant, SplitBy, SplitFrom, SplitResult, SplitTextOptions, SplitTimelineOptions, SpringConfig, SpringEffect, SpringInput, SpringPreset, SpringToken, SpringValue, SpringValueOptions, SwipeDirection, SwipeState, TiltReading, Timeline, TimelineOptions, TimelinePosition, TimelineStepOptions, ToastHandle, ToastOptions, ToastType, UsaAccordionElement, UsaAcrylicElement, UsaAmbientElement, UsaAnimIconElement, UsaAuroraElement, UsaAutoAnimateElement, UsaAutoSkeletonElement, UsaAvatarStackElement, UsaBackToTopElement, UsaBadgeElement, UsaBlobsElement, UsaBottomSheetElement, UsaButtonElement, UsaCardElement, UsaCardStackElement, UsaCarousel3dElement, UsaCheckElement, UsaCheckboxElement, UsaClickElement, UsaCounterElement, UsaCubeElement, UsaCursorElement, UsaDepthElement, UsaDialogElement, UsaDotNetworkElement, UsaDoubleTapElement, UsaDraggableElement, UsaDrawElement, UsaDrawerElement, UsaElement, UsaFabElement, UsaFullpageElement, UsaGLElement, UsaGlitchElement, UsaGradientTextElement, UsaGrainElement, UsaGridGlowElement, UsaHandwritingElement, UsaHoldElement, UsaIconMorphElement, UsaLikeElement, UsaLoadingBarElement, UsaMagneticElement, UsaMarqueeElement, UsaMaskRevealElement, UsaMasonryElement, UsaMorphElement, UsaMotionSwitchElement, UsaNavbarElement, UsaOverscrollElement, UsaPackElement, UsaParticlesElement, UsaPinchZoomElement, UsaPopoverElement, UsaPressElement, UsaProgressElement, UsaPullRefreshElement, UsaRatingElement, UsaRevealElement, UsaRippleElement, UsaScrambleElement, UsaScrollHighlightElement, UsaScrollProgressElement, UsaScrollyElement, UsaShimmerTextElement, UsaSkeletonElement, UsaSliderElement, UsaSpinnerElement, UsaSplashElement, UsaSplitTextElement, UsaSpotlightElement, UsaSpringElement, UsaStaggerElement, UsaStickyStackElement, UsaSwipeableElement, UsaTabsElement, UsaTextRotateElement, UsaTiltElement, UsaTimelineElement, UsaToasterElement, UsaToggleElement, UsaTooltipElement, UsaTypewriterElement, UsaViewSwitchElement, UsaWaterRippleElement, UsaWaveTextElement, Variant, ViewTransitionOptions };