use-scroll-animate 3.9.0 → 4.0.1

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 (144) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +16 -14
  3. package/README_ja.md +10 -11
  4. package/README_zh.md +11 -12
  5. package/dist/chunks/{base-Dm6ee5ug.cjs → base-CXx7jZ-o.cjs} +1 -11
  6. package/dist/chunks/{base-Dm6ee5ug.cjs.map → base-CXx7jZ-o.cjs.map} +1 -1
  7. package/dist/chunks/{base-BRIPyPtX.js → base-ZARFccur.js} +2 -11
  8. package/dist/chunks/{base-BRIPyPtX.js.map → base-ZARFccur.js.map} +1 -1
  9. package/dist/chunks/core-Co-6AL0h.js +218 -0
  10. package/dist/chunks/core-Co-6AL0h.js.map +1 -0
  11. package/dist/chunks/{core-CYozf_E-.js → core-DKY-fVzR.js} +2 -2
  12. package/dist/chunks/{core-CYozf_E-.js.map → core-DKY-fVzR.js.map} +1 -1
  13. package/dist/chunks/core-DXqZm5Il.cjs +222 -0
  14. package/dist/chunks/core-DXqZm5Il.cjs.map +1 -0
  15. package/dist/chunks/{core-CHAtivHV.cjs → core-IaorbTdu.cjs} +2 -2
  16. package/dist/chunks/{core-CHAtivHV.cjs.map → core-IaorbTdu.cjs.map} +1 -1
  17. package/dist/chunks/{index-tags-BmQR17Sb.js → index-tags-43Xtd01A.js} +2 -2
  18. package/dist/chunks/index-tags-43Xtd01A.js.map +1 -0
  19. package/dist/chunks/{index-tags-DYYsgbba.cjs → index-tags-BQh_uGqH.cjs} +2 -2
  20. package/dist/chunks/index-tags-BQh_uGqH.cjs.map +1 -0
  21. package/dist/chunks/{spring-Dp5BllPB.cjs → spring-2OTnYCzm.cjs} +2 -2
  22. package/dist/chunks/{spring-Dp5BllPB.cjs.map → spring-2OTnYCzm.cjs.map} +1 -1
  23. package/dist/chunks/{spring-UBPhrh1X.js → spring-E2ickYNI.js} +2 -2
  24. package/dist/chunks/{spring-UBPhrh1X.js.map → spring-E2ickYNI.js.map} +1 -1
  25. package/dist/chunks/{variants-_dC-ey6R.cjs → variants-BNIrn4ch.cjs} +2 -2
  26. package/dist/chunks/{variants-_dC-ey6R.cjs.map → variants-BNIrn4ch.cjs.map} +1 -1
  27. package/dist/chunks/{variants-DTypaOH3.js → variants-DvnxvRCM.js} +2 -2
  28. package/dist/chunks/{variants-DTypaOH3.js.map → variants-DvnxvRCM.js.map} +1 -1
  29. package/dist/components/angular.cjs +6 -5
  30. package/dist/components/angular.cjs.map +1 -1
  31. package/dist/components/angular.d.cts +4 -17
  32. package/dist/components/angular.d.ts +4 -17
  33. package/dist/components/angular.js +6 -5
  34. package/dist/components/angular.js.map +1 -1
  35. package/dist/components/background.cjs +2 -2
  36. package/dist/components/background.js +3 -3
  37. package/dist/components/cards.cjs +2 -2
  38. package/dist/components/cards.js +3 -3
  39. package/dist/components/click.cjs +2 -2
  40. package/dist/components/click.js +3 -3
  41. package/dist/components/depth.cjs +3 -3
  42. package/dist/components/depth.js +4 -4
  43. package/dist/components/feedback.cjs +1 -1
  44. package/dist/components/feedback.js +2 -2
  45. package/dist/components/gesture.cjs +3 -3
  46. package/dist/components/gesture.js +5 -5
  47. package/dist/components/interaction.cjs +1 -1
  48. package/dist/components/interaction.js +2 -2
  49. package/dist/components/jsx.d.cts +1 -1
  50. package/dist/components/jsx.d.ts +1 -1
  51. package/dist/components/layout.cjs +1 -1
  52. package/dist/components/layout.js +2 -2
  53. package/dist/components/lazy.cjs +1 -1
  54. package/dist/components/lazy.d.cts +1 -1
  55. package/dist/components/lazy.d.ts +1 -1
  56. package/dist/components/lazy.js +1 -1
  57. package/dist/components/packs.cjs +1 -1
  58. package/dist/components/packs.js +2 -2
  59. package/dist/components/page.cjs +2 -2
  60. package/dist/components/page.js +3 -3
  61. package/dist/components/physics.cjs +2 -2
  62. package/dist/components/physics.js +4 -4
  63. package/dist/components/react.cjs +2 -2
  64. package/dist/components/react.cjs.map +1 -1
  65. package/dist/components/react.d.cts +1 -1
  66. package/dist/components/react.d.ts +1 -1
  67. package/dist/components/react.js +2 -2
  68. package/dist/components/react.js.map +1 -1
  69. package/dist/components/reveal.cjs +1 -1
  70. package/dist/components/reveal.js +2 -2
  71. package/dist/components/solid.cjs +25 -9
  72. package/dist/components/solid.cjs.map +1 -1
  73. package/dist/components/solid.d.cts +8 -35
  74. package/dist/components/solid.d.ts +8 -35
  75. package/dist/components/solid.js +25 -9
  76. package/dist/components/solid.js.map +1 -1
  77. package/dist/components/svelte.cjs +6 -5
  78. package/dist/components/svelte.cjs.map +1 -1
  79. package/dist/components/svelte.d.cts +4 -17
  80. package/dist/components/svelte.d.ts +4 -17
  81. package/dist/components/svelte.js +6 -5
  82. package/dist/components/svelte.js.map +1 -1
  83. package/dist/components/svg.cjs +17 -11
  84. package/dist/components/svg.cjs.map +1 -1
  85. package/dist/components/svg.css +1 -1
  86. package/dist/components/svg.js +18 -12
  87. package/dist/components/svg.js.map +1 -1
  88. package/dist/components/text.cjs +2 -2
  89. package/dist/components/text.css +1 -1
  90. package/dist/components/text.js +3 -3
  91. package/dist/components/timeline.cjs +23 -223
  92. package/dist/components/timeline.cjs.map +1 -1
  93. package/dist/components/timeline.js +21 -220
  94. package/dist/components/timeline.js.map +1 -1
  95. package/dist/components/transitions.cjs +8 -125
  96. package/dist/components/transitions.cjs.map +1 -1
  97. package/dist/components/transitions.css +0 -1
  98. package/dist/components/transitions.d.cts +5 -34
  99. package/dist/components/transitions.d.ts +5 -34
  100. package/dist/components/transitions.js +10 -125
  101. package/dist/components/transitions.js.map +1 -1
  102. package/dist/components/ui.cjs +3 -3
  103. package/dist/components/ui.js +5 -5
  104. package/dist/components/vue.cjs +6 -5
  105. package/dist/components/vue.cjs.map +1 -1
  106. package/dist/components/vue.d.cts +4 -17
  107. package/dist/components/vue.d.ts +4 -17
  108. package/dist/components/vue.js +6 -5
  109. package/dist/components/vue.js.map +1 -1
  110. package/dist/components/webgl.cjs +11 -1
  111. package/dist/components/webgl.cjs.map +1 -1
  112. package/dist/components/webgl.js +12 -2
  113. package/dist/components/webgl.js.map +1 -1
  114. package/dist/components.cjs +12 -13
  115. package/dist/components.cjs.map +1 -1
  116. package/dist/components.css +2 -3
  117. package/dist/components.d.cts +6 -35
  118. package/dist/components.d.ts +6 -35
  119. package/dist/components.js +10 -9
  120. package/dist/components.js.map +1 -1
  121. package/dist/components.umd.js +2 -2
  122. package/dist/components.umd.js.map +1 -1
  123. package/dist/index.cjs +5 -109
  124. package/dist/index.cjs.map +1 -1
  125. package/dist/index.d.cts +72 -32
  126. package/dist/index.d.ts +72 -32
  127. package/dist/index.js +4 -110
  128. package/dist/index.js.map +1 -1
  129. package/dist/index.umd.js +2 -2
  130. package/dist/index.umd.js.map +1 -1
  131. package/dist/solid.cjs +38 -8
  132. package/dist/solid.cjs.map +1 -1
  133. package/dist/solid.d.cts +6 -1
  134. package/dist/solid.d.ts +6 -1
  135. package/dist/solid.js +39 -9
  136. package/dist/solid.js.map +1 -1
  137. package/docs/API.md +6 -6
  138. package/docs/ROADMAP.md +14 -0
  139. package/docs/components.md +3 -5
  140. package/docs/migration-from-aos.md +1 -1
  141. package/docs/migration-from-gsap-scrolltrigger.md +6 -6
  142. package/package.json +1 -1
  143. package/dist/chunks/index-tags-BmQR17Sb.js.map +0 -1
  144. package/dist/chunks/index-tags-DYYsgbba.cjs.map +0 -1
package/dist/solid.d.ts CHANGED
@@ -219,7 +219,12 @@ declare module 'solid-js' {
219
219
  }
220
220
  }
221
221
  }
222
- /** Directive: `<div use:scrollAnimate={{ animation: 'fade-in' }} />` */
222
+ /**
223
+ * Directive: `<div use:scrollAnimate={{ animation: 'fade-in' }} />`.
224
+ * 4.0.1: the accessor is tracked — when signals it reads change, callbacks
225
+ * update right away and the other options are re-applied if the element has
226
+ * not animated yet (no manual `refresh()` needed).
227
+ */
223
228
  declare function scrollAnimate(el: Element, accessor?: () => SolidScrollAnimateOptions | true | undefined): void;
224
229
  /** Directive: `<ul use:scrollStagger={{ stagger: 60, observeChildren: true }} />` */
225
230
  declare function scrollStagger(el: Element, accessor?: () => SolidScrollStaggerOptions | true | undefined): void;
package/dist/solid.js CHANGED
@@ -1,4 +1,4 @@
1
- import { onMount, onCleanup } from 'solid-js';
1
+ import { createRenderEffect, onMount, onCleanup } from 'solid-js';
2
2
  import { c as createScrollAnimate } from './chunks/core-mV_TPgG_.js';
3
3
  import { s as staggerChildren } from './chunks/stagger-BFAhKknX.js';
4
4
 
@@ -22,16 +22,46 @@ function read(accessor) {
22
22
  const v = accessor?.();
23
23
  return (v && v !== true ? v : {});
24
24
  }
25
- function observe(el, options) {
26
- const { instance, ...opts } = options;
27
- const sa = getInstance(instance);
28
- // Wait until the element is in the document (directives/refs run before insertion).
29
- onMount(() => sa.observe(el, opts));
30
- onCleanup(() => sa.unobserve(el));
25
+ const CALLBACKS = ['onStart', 'onComplete', 'onEnter', 'onLeave', 'onProgress'];
26
+ /** Callbacks always call the latest options' version. */
27
+ function liveCallbacks(opts, latest) {
28
+ const out = { ...opts };
29
+ CALLBACKS.forEach((name) => {
30
+ if (typeof opts[name] === 'function')
31
+ out[name] = (...args) => latest()[name]?.(...args);
32
+ });
33
+ return out;
31
34
  }
32
- /** Directive: `<div use:scrollAnimate={{ animation: 'fade-in' }} />` */
35
+ /**
36
+ * Directive: `<div use:scrollAnimate={{ animation: 'fade-in' }} />`.
37
+ * 4.0.1: the accessor is tracked — when signals it reads change, callbacks
38
+ * update right away and the other options are re-applied if the element has
39
+ * not animated yet (no manual `refresh()` needed).
40
+ */
33
41
  function scrollAnimate(el, accessor) {
34
- observe(el, read(accessor));
42
+ let latest = {};
43
+ let mounted = false;
44
+ let sa = null;
45
+ const apply = () => {
46
+ const { instance, ...opts } = latest;
47
+ const record = sa?.getObservedElements().find((r) => r.element === el);
48
+ if (sa && record?.animated)
49
+ return; // finished: callbacks stay live
50
+ sa?.unobserve(el);
51
+ sa = getInstance(instance);
52
+ sa.observe(el, liveCallbacks(opts, () => latest));
53
+ };
54
+ createRenderEffect(() => {
55
+ latest = read(accessor);
56
+ if (mounted)
57
+ apply();
58
+ });
59
+ // Wait until the element is in the document (directives/refs run before insertion).
60
+ onMount(() => {
61
+ mounted = true;
62
+ apply();
63
+ });
64
+ onCleanup(() => sa?.unobserve(el));
35
65
  }
36
66
  /** Directive: `<ul use:scrollStagger={{ stagger: 60, observeChildren: true }} />` */
37
67
  function scrollStagger(el, accessor) {
package/dist/solid.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"solid.js","sources":["../src/solid.ts"],"sourcesContent":["/**\n * use-scroll-animate - Solid integration\n *\n * ```tsx\n * import { scrollAnimate, scrollStagger, useScrollAnimate } from 'use-scroll-animate/solid';\n * false && scrollAnimate; // keep the directive import (TypeScript)\n *\n * <div use:scrollAnimate={{ animation: 'zoom-in' }}>…</div>\n * <ul use:scrollStagger={{ stagger: 60 }}>…</ul>\n * <div ref={useScrollAnimate({ animation: 'fade-in-up' })}>…</div>\n * ```\n *\n * `solid-js` is an optional peer dependency (only needed for this entry).\n */\n\nimport { onCleanup, onMount } from 'solid-js';\nimport type { AnimateOptions, ScrollAnimateInstance } from './types';\nimport { createScrollAnimate } from './core';\nimport { staggerChildren, type StaggerOptions } from './stagger';\n\nexport interface SolidScrollAnimateOptions extends AnimateOptions {\n instance?: ScrollAnimateInstance;\n}\nexport interface SolidScrollStaggerOptions extends StaggerOptions {\n instance?: ScrollAnimateInstance;\n}\n\ndeclare module 'solid-js' {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace JSX {\n interface Directives {\n scrollAnimate: SolidScrollAnimateOptions | true;\n scrollStagger: SolidScrollStaggerOptions | true;\n }\n }\n}\n\nlet shared: ScrollAnimateInstance | null = null;\nconst getInstance = (own?: ScrollAnimateInstance) => own || shared || (shared = createScrollAnimate());\n\nfunction read<T>(accessor?: () => T | true | undefined): T {\n const v = accessor?.();\n return (v && v !== true ? v : {}) as T;\n}\n\nfunction observe(el: Element, options: SolidScrollAnimateOptions): void {\n const { instance, ...opts } = options;\n const sa = getInstance(instance);\n // Wait until the element is in the document (directives/refs run before insertion).\n onMount(() => sa.observe(el, opts));\n onCleanup(() => sa.unobserve(el));\n}\n\n/** Directive: `<div use:scrollAnimate={{ animation: 'fade-in' }} />` */\nexport function scrollAnimate(el: Element, accessor?: () => SolidScrollAnimateOptions | true | undefined): void {\n observe(el, read(accessor));\n}\n\n/** Directive: `<ul use:scrollStagger={{ stagger: 60, observeChildren: true }} />` */\nexport function scrollStagger(el: Element, accessor?: () => SolidScrollStaggerOptions | true | undefined): void {\n const { instance, ...opts } = read<SolidScrollStaggerOptions>(accessor);\n let stop: (() => void) | undefined;\n onMount(() => {\n stop = staggerChildren(el, opts, getInstance(instance));\n });\n onCleanup(() => stop?.());\n}\n\n/** Primitive returning a `ref` callback: `<div ref={useScrollAnimate({ animation: 'fade-in-up' })} />` */\nexport function useScrollAnimate(options: SolidScrollAnimateOptions = {}): (el: Element) => void {\n let el: Element | undefined;\n const { instance, ...opts } = options;\n const sa = getInstance(instance);\n onMount(() => el && sa.observe(el, opts));\n onCleanup(() => el && sa.unobserve(el));\n return (node: Element) => {\n el = node;\n };\n}\n"],"names":[],"mappings":";;;;AAAA;;;;;;;;;;;;;AAaG;AAwBH,IAAI,MAAM,GAAiC,IAAI;AAC/C,MAAM,WAAW,GAAG,CAAC,GAA2B,KAAK,GAAG,IAAI,MAAM,KAAK,MAAM,GAAG,mBAAmB,EAAE,CAAC;AAEtG,SAAS,IAAI,CAAI,QAAqC,EAAA;AACpD,IAAA,MAAM,CAAC,GAAG,QAAQ,IAAI;AACtB,IAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,EAAE;AAClC;AAEA,SAAS,OAAO,CAAC,EAAW,EAAE,OAAkC,EAAA;IAC9D,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO;AACrC,IAAA,MAAM,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC;;AAEhC,IAAA,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACnC,SAAS,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AACnC;AAEA;AACM,SAAU,aAAa,CAAC,EAAW,EAAE,QAA6D,EAAA;IACtG,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7B;AAEA;AACM,SAAU,aAAa,CAAC,EAAW,EAAE,QAA6D,EAAA;IACtG,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAA4B,QAAQ,CAAC;AACvE,IAAA,IAAI,IAA8B;IAClC,OAAO,CAAC,MAAK;AACX,QAAA,IAAI,GAAG,eAAe,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;AACzD,IAAA,CAAC,CAAC;IACF,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC;AAC3B;AAEA;AACM,SAAU,gBAAgB,CAAC,OAAA,GAAqC,EAAE,EAAA;AACtE,IAAA,IAAI,EAAuB;IAC3B,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO;AACrC,IAAA,MAAM,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC;AAChC,IAAA,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AACzC,IAAA,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,IAAa,KAAI;QACvB,EAAE,GAAG,IAAI;AACX,IAAA,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"solid.js","sources":["../src/solid.ts"],"sourcesContent":["/**\n * use-scroll-animate - Solid integration\n *\n * ```tsx\n * import { scrollAnimate, scrollStagger, useScrollAnimate } from 'use-scroll-animate/solid';\n * false && scrollAnimate; // keep the directive import (TypeScript)\n *\n * <div use:scrollAnimate={{ animation: 'zoom-in' }}>…</div>\n * <ul use:scrollStagger={{ stagger: 60 }}>…</ul>\n * <div ref={useScrollAnimate({ animation: 'fade-in-up' })}>…</div>\n * ```\n *\n * `solid-js` is an optional peer dependency (only needed for this entry).\n */\n\nimport { createRenderEffect, onCleanup, onMount } from 'solid-js';\nimport type { AnimateOptions, ScrollAnimateInstance } from './types';\nimport { createScrollAnimate } from './core';\nimport { staggerChildren, type StaggerOptions } from './stagger';\n\nexport interface SolidScrollAnimateOptions extends AnimateOptions {\n instance?: ScrollAnimateInstance;\n}\nexport interface SolidScrollStaggerOptions extends StaggerOptions {\n instance?: ScrollAnimateInstance;\n}\n\ndeclare module 'solid-js' {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace JSX {\n interface Directives {\n scrollAnimate: SolidScrollAnimateOptions | true;\n scrollStagger: SolidScrollStaggerOptions | true;\n }\n }\n}\n\nlet shared: ScrollAnimateInstance | null = null;\nconst getInstance = (own?: ScrollAnimateInstance) => own || shared || (shared = createScrollAnimate());\n\nfunction read<T>(accessor?: () => T | true | undefined): T {\n const v = accessor?.();\n return (v && v !== true ? v : {}) as T;\n}\n\nconst CALLBACKS = ['onStart', 'onComplete', 'onEnter', 'onLeave', 'onProgress'] as const;\n\n/** Callbacks always call the latest options' version. */\nfunction liveCallbacks(opts: AnimateOptions, latest: () => AnimateOptions): AnimateOptions {\n const out: AnimateOptions = { ...opts };\n CALLBACKS.forEach((name) => {\n if (typeof opts[name] === 'function') (out as any)[name] = (...args: unknown[]) => (latest()[name] as any)?.(...args);\n });\n return out;\n}\n\n/**\n * Directive: `<div use:scrollAnimate={{ animation: 'fade-in' }} />`.\n * 4.0.1: the accessor is tracked — when signals it reads change, callbacks\n * update right away and the other options are re-applied if the element has\n * not animated yet (no manual `refresh()` needed).\n */\nexport function scrollAnimate(el: Element, accessor?: () => SolidScrollAnimateOptions | true | undefined): void {\n let latest: SolidScrollAnimateOptions = {};\n let mounted = false;\n let sa: ScrollAnimateInstance | null = null;\n const apply = () => {\n const { instance, ...opts } = latest;\n const record = sa?.getObservedElements().find((r) => r.element === el);\n if (sa && record?.animated) return; // finished: callbacks stay live\n sa?.unobserve(el);\n sa = getInstance(instance);\n sa.observe(el, liveCallbacks(opts, () => latest));\n };\n createRenderEffect(() => {\n latest = read<SolidScrollAnimateOptions>(accessor);\n if (mounted) apply();\n });\n // Wait until the element is in the document (directives/refs run before insertion).\n onMount(() => {\n mounted = true;\n apply();\n });\n onCleanup(() => sa?.unobserve(el));\n}\n\n/** Directive: `<ul use:scrollStagger={{ stagger: 60, observeChildren: true }} />` */\nexport function scrollStagger(el: Element, accessor?: () => SolidScrollStaggerOptions | true | undefined): void {\n const { instance, ...opts } = read<SolidScrollStaggerOptions>(accessor);\n let stop: (() => void) | undefined;\n onMount(() => {\n stop = staggerChildren(el, opts, getInstance(instance));\n });\n onCleanup(() => stop?.());\n}\n\n/** Primitive returning a `ref` callback: `<div ref={useScrollAnimate({ animation: 'fade-in-up' })} />` */\nexport function useScrollAnimate(options: SolidScrollAnimateOptions = {}): (el: Element) => void {\n let el: Element | undefined;\n const { instance, ...opts } = options;\n const sa = getInstance(instance);\n onMount(() => el && sa.observe(el, opts));\n onCleanup(() => el && sa.unobserve(el));\n return (node: Element) => {\n el = node;\n };\n}\n"],"names":[],"mappings":"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"}
package/docs/API.md CHANGED
@@ -9,7 +9,7 @@
9
9
  - [Data attributes](#data-attributes)
10
10
  - [Global config (`ScrollAnimateConfig`)](#global-config-scrollanimateconfig)
11
11
  - [Presets & easings](#presets--easings)
12
- - [Helpers: `staggerChildren`, `sequence`, `parallax`, `getScrollProgress`, `supportsScrollTimeline`](#helpers)
12
+ - [Helpers: `staggerChildren`, `timeline`, `parallax`, `getScrollProgress`, `supportsScrollTimeline`](#helpers)
13
13
  - [Framework integrations](#framework-integrations)
14
14
  - [Behaviour notes](#behaviour-notes)
15
15
 
@@ -17,7 +17,7 @@
17
17
 
18
18
  | Import | Contents |
19
19
  |---|---|
20
- | `use-scroll-animate` | Default instance, `createScrollAnimate`, `staggerChildren`, `sequence`, `parallax`, `getScrollProgress`, `supportsScrollTimeline`, `PRESETS`, `resolvePreset`, `resolveEasing`, `EASING_MAP`, all types |
20
+ | `use-scroll-animate` | Default instance, `createScrollAnimate`, `staggerChildren`, `timeline`, `parallax`, `getScrollProgress`, `supportsScrollTimeline`, `PRESETS`, `resolvePreset`, `resolveEasing`, `EASING_MAP`, all types |
21
21
  | `use-scroll-animate/react` | `createReactHooks(React)` |
22
22
  | `use-scroll-animate/vue` | `createVueComposables({ ref, onMounted, onUnmounted })` |
23
23
  | `use-scroll-animate/svelte` | `scrollAnimate`, `scrollStagger` actions |
@@ -25,7 +25,7 @@
25
25
  | `use-scroll-animate/element` | `defineScrollAnimate(tagName?, instance?)` for `<scroll-animate>` |
26
26
  | `dist/index.umd.js` | Global `ScrollAnimate` (`ScrollAnimate.default` is the instance, other exports as properties) |
27
27
  | `dist/element.umd.js` | Registers `<scroll-animate>` on load; global `ScrollAnimateElement` |
28
- | `use-scroll-animate/components` (+ `/components/reveal`, `/text`, `/interaction`, `/feedback`, `/background`, `/transitions`) | 30 animated `<usa-*>` Web Components, `defineComponents()`, `configureComponents()`, `toast()`, `viewTransition()`, `flip()`, `connectedAnimation()` — see **[components.md](./components.md)** |
28
+ | `use-scroll-animate/components` (+ `/components/reveal`, `/text`, `/interaction`, `/feedback`, `/background`, `/transitions`) | 30 animated `<usa-*>` Web Components, `defineComponents()`, `configureComponents()`, `toast()`, `viewTransition()`, `flip()` — see **[components.md](./components.md)** |
29
29
  | `dist/components.umd.js`, `use-scroll-animate/components.css` | Registers every `<usa-*>` on load (global `UsaComponents`); the component styles as a file |
30
30
 
31
31
  Every entry is ESM-first (`import` → `.js` + `.d.ts`) with a CommonJS build (`require` → `.cjs` + `.d.cts`), SSR-safe (no DOM access at import), and has zero runtime dependencies.
@@ -111,8 +111,8 @@ Boolean attributes are true when present unless their value is `"false"`.
111
111
  ### `staggerChildren(container, options?, instance?)` → `() => void`
112
112
  Reveal the children of `container` one after another when it enters. `StaggerOptions` = `AnimateOptions` + `stagger` (default `80` ms) + `observeChildren` (MutationObserver for children added later). Stopping before the reveal makes the children visible.
113
113
 
114
- ### `sequence(steps, options?)` → `SequenceController`
115
- Timeline across targets. `SequenceStep` = `AnimateOptions` + `target` + `gap` (ms after the previous step; negative overlaps) or `at` (absolute ms). `SequenceOptions` = `AnimateOptions` + `trigger` (play once when it enters) + `instance`. Controller: `play(): Promise<void>`, `cancel()`, `duration()`.
114
+ ### `timeline(options?)` → `Timeline` (4.0; replaces `sequence()`)
115
+ One playhead for many WAAPI animations. `options` = `{ defaults: { duration = 600, easing, stagger }, speed, onUpdate(p), onComplete() }`. Build with `.to(target, keyframes | preset, { at, duration, easing, stagger })`, `.label(name, at?)`, `.call(fn, at?)`; positions `'>'` (default), `'<'`, `'-=ms'`, `'+=ms'`, `'<+=ms'`, `'label+=ms'` or ms (`resolvePosition()`). Control: `play(from?)` / `reverse()` (Promises), `pause()`, `seek(ms | label)`, `progress(p?)`, `scrub(el, { offset, smooth })` → stop, `cancel()`; read `duration`, `time`, `labels`. Presets: `TIMELINE_PRESETS`. Reduced motion jumps to the end. Also in `use-scroll-animate/components/timeline` with `<usa-timeline>`.
116
116
 
117
117
  ### `parallax(target, options?)` → `() => void`
118
118
  `{ speed = 0.2, axis = 'y', progressVar = '--sa-parallax', root = null, respectReducedMotion = true }`. Offset `(progress − 0.5) × speed × 100vh` (or `vw`) on the `translate` property; progress (0–1) in the CSS variable. The stop function removes listeners and inline styles.
@@ -136,5 +136,5 @@ True scroll progress 0–1 of `el` through the viewport or `root`. `0` without a
136
136
  - **Reduced motion**: with `prefers-reduced-motion: reduce` (or `disabled: true`) nothing is hidden or moved; callbacks still fire; `progressVar` is still written (it is data); `parallax()` writes only its variable.
137
137
  - **SSR**: every entry can be imported and called on the server; calls are no-ops without a DOM.
138
138
  - **No IntersectionObserver**: content is shown immediately.
139
- - **Native engine**: scroll-linked, so `duration`/`delay`/`threshold`/`offset`/`stagger` don't apply; `once` freezes the end state on completion; class-name mode, reduced motion, `animate()`, `sequence()` and `staggerChildren()` always use JS.
139
+ - **Native engine**: scroll-linked, so `duration`/`delay`/`threshold`/`offset`/`stagger` don't apply; `once` freezes the end state on completion; class-name mode, reduced motion, `animate()`, `timeline()` and `staggerChildren()` always use JS.
140
140
  - **Native engine by default**: in browsers without `animation-timeline: view()` everything runs on the JS engine.
@@ -0,0 +1,14 @@
1
+ # 路线图(4.0 之后)
2
+
3
+ > 4.0.0 已完成 API 统一:`timeline()` 取代 `sequence()`,`sharedTransition()` 取代 `connectedAnimation()`,`<usa-auto-animate>` 取代 `<usa-flip-list>`。以下为 4.x → 5.0 的规划,每个版本一个 PR,按需调整。
4
+
5
+ - **v4.1** — 滚动驱动时间线:`timeline().scrub()` 优先使用原生 `ScrollTimeline` / `ViewTimeline`(脱离主线程),JS 作为回退。
6
+ - **v4.2** — 动效设计令牌:统一的时长 / 缓动 / 弹簧令牌(CSS 变量 + JSON),支持从 Figma Tokens / Style Dictionary 导入。
7
+ - **v4.3** — 文本进阶:按字 / 词 / 行拆分的 `splitText()`,支持中日韩文字与 RTL,配合 `timeline()` 逐字编排。
8
+ - **v4.4** — 无障碍增强:每个组件提供“静态替代”与 `aria-live` 规范,新增运动敏感度分级与自动化 a11y 回归测试。
9
+ - **v4.5** — 性能与体积:按需加载 CSS、共享 rAF 调度器、动画数量自动降级,组件整体 gzip 目标 ≤ 70KB。
10
+ - **v4.6** — 实验室 2.0:时间线可视化编辑(关键帧轨道)、保存 / 分享预设,并可导出为 `<usa-timeline>` 标记。
11
+ - **v4.7** — 原生壳集成:WinUI 3、.NET MAUI、Flutter 的官方桥接示例包,支持系统“减少动态效果”与主题自动同步。
12
+ - **v4.8** — 3D 与 WebGL 扩展:基于 `glQuad()` 的粒子 / 后处理小型预设库,统一 WebGL 回退与电量 / 帧率自适应。
13
+ - **v4.9** — 5.0 预备:标记计划移除或重命名的 API 并输出一次性弃用警告,发布 `upgrading-5.md` 与自动迁移脚本(codemod)。
14
+ - **v5.0** — 下一代主版本:仅支持现代浏览器(原生 View Transitions / Scroll Timeline 基线),移除 4.9 弃用的 API,统一的插件式效果注册机制。
@@ -40,7 +40,7 @@ defineTypewriter();
40
40
  No build step (registers every `<usa-*>` and exposes the API as `window.UsaComponents`):
41
41
 
42
42
  ```html
43
- <script src="https://unpkg.com/use-scroll-animate@3/dist/components.umd.js"></script>
43
+ <script src="https://unpkg.com/use-scroll-animate@4/dist/components.umd.js"></script>
44
44
  <usa-typewriter words="Hello, Windows.|Hello, web."></usa-typewriter>
45
45
  <script>UsaComponents.toast('Ready', { type: 'success' });</script>
46
46
  ```
@@ -113,11 +113,9 @@ All attributes are optional unless noted. Events are `CustomEvent`s that bubble,
113
113
  |---|---|---|---|
114
114
  | `<usa-dialog>` | Animated modal / drawer / sheet on the native `<dialog>` (focus trap, Esc, top layer); content is slotted, so frameworks keep owning it | `open`, `kind` (`modal`*, `drawer-start`, `drawer-end`, `drawer-bottom`, `sheet`), `label`, `no-backdrop-close`, `no-esc`; `[data-close]` children close it; `::part(panel/backdrop)`, `--usa-dialog-*` | `show()`, `close(value?)`, `open`, `returnValue`; `usa:open`, `usa:beforeclose` (cancelable), `usa:close` |
115
115
  | `<usa-accordion>` | Smooth height animation for native `<details>` | `multiple`, `duration` (300) | `toggleItem(details, open?)`, `items`; `usa:toggle` |
116
- | `<usa-flip-list>` | Children glide to new places on add / remove / reorder (FLIP) | `duration` (420), `easing`, `disabled` | `flip(mutate)` |
117
116
  | `<usa-view-switch>` | One view at a time with direction-aware transitions | `active` (name or index), `effect` (`slide`*, `fade`, `scale`, `drill`), `duration` | `show(view)`, `active`, `views`; `usa:change` |
118
117
  | `viewTransition(update, opts?)` | Runs a DOM update inside `document.startViewTransition()`, cross-fade fallback | `{ fallback, duration, types }` | `Promise<void>` |
119
118
  | `flip(targets, mutate, opts?)` | FLIP-animates any layout change | `{ duration, easing, animateEnter }` | `Promise<void>` |
120
- | `connectedAnimation(from, to, opts?)` | WinUI-style connected / shared-element animation | `{ duration, easing, hideSource }` | `Promise<void>` |
121
119
 
122
120
  ### 7. Spring & physics — `components/physics`
123
121
 
@@ -287,7 +285,7 @@ Fallbacks set `data-fallback` (`webgl` · `image` · `no-image`); cross-origin i
287
285
  | `<usa-masonry>` | Masonry grid with animated reflow | `columns` or `min` (220), `gap` (16); `layout()` |
288
286
  | `sharedTransition(update, root?)` | Shared-element transition via `data-shared="id"` | `duration` (450), `easing`; View Transitions API or FLIP |
289
287
 
290
- Also see `flip()` / `connectedAnimation()` / `<usa-flip-list>` in `components/transitions`.
288
+ Also see `flip()` in `components/transitions`. (4.0 removed `<usa-flip-list>` and `connectedAnimation()` in favour of these.)
291
289
 
292
290
  ### v3.7 Visual playground
293
291
 
@@ -315,7 +313,7 @@ Hybrid / desktop hosts (MAUI, Flutter WebView, Electron, Tauri): [hybrid-apps.md
315
313
 
316
314
  `<usa-pack>` (e.g. `<usa-pack name="ecommerce">…</usa-pack>`) or `applyPack('ecommerce', root)`; helpers `flyToCart(from, to)`, `countUp(el)`.
317
315
 
318
- **Deprecated in 3.9, removed in 4.0:** `sequence()`, `connectedAnimation()`, `<usa-flip-list>` — see [upgrading-4.md](./upgrading-4.md).
316
+ **Deprecated in 3.9, removed in 4.0.0:** `sequence()`, `connectedAnimation()`, `<usa-flip-list>` — see [upgrading-4.md](./upgrading-4.md).
319
317
 
320
318
  ## Frameworks
321
319
 
@@ -27,7 +27,7 @@ No stylesheet is needed: animations run through the Web Animations API (or opt i
27
27
  | `data-aos-once="true"` | `data-sa-once` (default) |
28
28
  | `data-aos-mirror="true"` (animate out when scrolling past) | `data-sa-exit` |
29
29
  | `data-aos-anchor-placement="top-center"` | `data-sa-threshold="0.5"` or `data-sa-root-margin="0px 0px -50% 0px"` |
30
- | `data-aos-anchor=".other"` | `sequence([...], { trigger: '.other' })` |
30
+ | `data-aos-anchor=".other"` | `timeline()` played when `.other` enters (or `<usa-timeline>` around it) |
31
31
 
32
32
  ## 3. Animation names
33
33
 
@@ -35,14 +35,14 @@ GSAP + ScrollTrigger is a full animation platform; `use-scroll-animate` covers t
35
35
  - tl.from('.title', { opacity: 0, y: 40 })
36
36
  - .from('.subtitle', { opacity: 0 }, '-=0.2')
37
37
  - .from('.cta', { scale: 0.8, opacity: 0 }, 1.2);
38
- + sequence([
39
- + { target: '.title', animation: 'fade-in-up' },
40
- + { target: '.subtitle', animation: 'fade-in', gap: -200 },
41
- + { target: '.cta', animation: 'zoom-in', at: 1200 },
42
- + ], { trigger: '.hero' });
38
+ + const tl = timeline()
39
+ + .to('.title', 'fade-up')
40
+ + .to('.subtitle', 'fade', { at: '-=200' })
41
+ + .to('.cta', 'scale', { at: 1200 });
42
+ + tl.scrub(document.querySelector('.hero')); // or tl.play() when it enters
43
43
  ```
44
44
 
45
- `play()` returns a Promise; `cancel()` stops it and leaves content visible.
45
+ `play()` / `reverse()` return Promises; `seek()`, `progress()`, labels and `scrub()` work like GSAP's timeline controls.
46
46
 
47
47
  ## Scrub (progress-linked) animations
48
48
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "use-scroll-animate",
3
- "version": "3.9.0",
3
+ "version": "4.0.1",
4
4
  "description": "A lightweight, high-performance, dependency-free scroll animation library and animated UI components (Web Components) for the web and Windows web-view apps.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-tags-BmQR17Sb.js","sources":["../../src/components/index-tags.ts"],"sourcesContent":["// The component categories and their default tags (no imports: safe for lazy loaders).\n/** The component categories and their default tags. */\nexport const COMPONENT_CATEGORIES = {\n reveal: ['usa-reveal', 'usa-stagger', 'usa-scroll-progress', 'usa-scrolly'],\n text: ['usa-typewriter', 'usa-split-text', 'usa-scramble', 'usa-counter', 'usa-shimmer-text', 'usa-text-rotate', 'usa-wave-text', 'usa-glitch', 'usa-gradient-text', 'usa-handwriting', 'usa-scroll-highlight'],\n interaction: ['usa-ripple', 'usa-magnetic', 'usa-tilt', 'usa-spotlight', 'usa-press', 'usa-toggle'],\n feedback: ['usa-spinner', 'usa-skeleton', 'usa-progress', 'usa-toaster', 'usa-check'],\n background: ['usa-aurora', 'usa-particles', 'usa-grain', 'usa-marquee', 'usa-acrylic', 'usa-grid-glow', 'usa-blobs', 'usa-water-ripple', 'usa-dot-network'],\n transitions: ['usa-dialog', 'usa-accordion', 'usa-flip-list', 'usa-view-switch'],\n physics: ['usa-spring', 'usa-draggable', 'usa-overscroll'],\n cards: ['usa-card', 'usa-card-stack', 'usa-sticky-stack', 'usa-carousel-3d'],\n click: ['usa-click', 'usa-button', 'usa-icon-morph', 'usa-like', 'usa-hold', 'usa-double-tap', 'usa-checkbox'],\n ui: ['usa-tabs', 'usa-drawer', 'usa-bottom-sheet', 'usa-pull-refresh', 'usa-fab', 'usa-navbar', 'usa-slider', 'usa-rating', 'usa-tooltip', 'usa-popover', 'usa-badge', 'usa-avatar-stack'],\n page: ['usa-cursor', 'usa-fullpage', 'usa-loading-bar', 'usa-back-to-top', 'usa-ambient', 'usa-splash', 'usa-auto-skeleton', 'usa-motion-switch'],\n timeline: ['usa-timeline'],\n gesture: ['usa-swipeable', 'usa-pinch-zoom'],\n svg: ['usa-draw', 'usa-morph', 'usa-mask-reveal', 'usa-anim-icon'],\n webgl: ['usa-shader', 'usa-distort', 'usa-liquid'],\n depth: ['usa-cube', 'usa-depth'],\n layout: ['usa-auto-animate', 'usa-masonry'],\n packs: ['usa-pack'],\n} as const;\n\nexport type ComponentCategory = keyof typeof COMPONENT_CATEGORIES;\n"],"names":[],"mappings":"AAAA;AACA;AACO,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,aAAa,CAAC;IAC3E,IAAI,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,sBAAsB,CAAC;AAC/M,IAAA,WAAW,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,CAAC;IACnG,QAAQ,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,CAAC;AACrF,IAAA,UAAU,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;IAC3J,WAAW,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,CAAC;AAChF,IAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,gBAAgB,CAAC;IAC1D,KAAK,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;AAC5E,IAAA,KAAK,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,CAAC;IAC9G,EAAE,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,kBAAkB,CAAC;AAC1L,IAAA,IAAI,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,CAAC;IACjJ,QAAQ,EAAE,CAAC,cAAc,CAAC;AAC1B,IAAA,OAAO,EAAE,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAC5C,GAAG,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,CAAC;AAClE,IAAA,KAAK,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC;AAClD,IAAA,KAAK,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;AAChC,IAAA,MAAM,EAAE,CAAC,kBAAkB,EAAE,aAAa,CAAC;IAC3C,KAAK,EAAE,CAAC,UAAU,CAAC;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-tags-DYYsgbba.cjs","sources":["../../src/components/index-tags.ts"],"sourcesContent":["// The component categories and their default tags (no imports: safe for lazy loaders).\n/** The component categories and their default tags. */\nexport const COMPONENT_CATEGORIES = {\n reveal: ['usa-reveal', 'usa-stagger', 'usa-scroll-progress', 'usa-scrolly'],\n text: ['usa-typewriter', 'usa-split-text', 'usa-scramble', 'usa-counter', 'usa-shimmer-text', 'usa-text-rotate', 'usa-wave-text', 'usa-glitch', 'usa-gradient-text', 'usa-handwriting', 'usa-scroll-highlight'],\n interaction: ['usa-ripple', 'usa-magnetic', 'usa-tilt', 'usa-spotlight', 'usa-press', 'usa-toggle'],\n feedback: ['usa-spinner', 'usa-skeleton', 'usa-progress', 'usa-toaster', 'usa-check'],\n background: ['usa-aurora', 'usa-particles', 'usa-grain', 'usa-marquee', 'usa-acrylic', 'usa-grid-glow', 'usa-blobs', 'usa-water-ripple', 'usa-dot-network'],\n transitions: ['usa-dialog', 'usa-accordion', 'usa-flip-list', 'usa-view-switch'],\n physics: ['usa-spring', 'usa-draggable', 'usa-overscroll'],\n cards: ['usa-card', 'usa-card-stack', 'usa-sticky-stack', 'usa-carousel-3d'],\n click: ['usa-click', 'usa-button', 'usa-icon-morph', 'usa-like', 'usa-hold', 'usa-double-tap', 'usa-checkbox'],\n ui: ['usa-tabs', 'usa-drawer', 'usa-bottom-sheet', 'usa-pull-refresh', 'usa-fab', 'usa-navbar', 'usa-slider', 'usa-rating', 'usa-tooltip', 'usa-popover', 'usa-badge', 'usa-avatar-stack'],\n page: ['usa-cursor', 'usa-fullpage', 'usa-loading-bar', 'usa-back-to-top', 'usa-ambient', 'usa-splash', 'usa-auto-skeleton', 'usa-motion-switch'],\n timeline: ['usa-timeline'],\n gesture: ['usa-swipeable', 'usa-pinch-zoom'],\n svg: ['usa-draw', 'usa-morph', 'usa-mask-reveal', 'usa-anim-icon'],\n webgl: ['usa-shader', 'usa-distort', 'usa-liquid'],\n depth: ['usa-cube', 'usa-depth'],\n layout: ['usa-auto-animate', 'usa-masonry'],\n packs: ['usa-pack'],\n} as const;\n\nexport type ComponentCategory = keyof typeof COMPONENT_CATEGORIES;\n"],"names":[],"mappings":";;AAAA;AACA;AACO,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,aAAa,CAAC;IAC3E,IAAI,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,sBAAsB,CAAC;AAC/M,IAAA,WAAW,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,CAAC;IACnG,QAAQ,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,CAAC;AACrF,IAAA,UAAU,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;IAC3J,WAAW,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,CAAC;AAChF,IAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,gBAAgB,CAAC;IAC1D,KAAK,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;AAC5E,IAAA,KAAK,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,CAAC;IAC9G,EAAE,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,kBAAkB,CAAC;AAC1L,IAAA,IAAI,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,CAAC;IACjJ,QAAQ,EAAE,CAAC,cAAc,CAAC;AAC1B,IAAA,OAAO,EAAE,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAC5C,GAAG,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,CAAC;AAClE,IAAA,KAAK,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC;AAClD,IAAA,KAAK,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;AAChC,IAAA,MAAM,EAAE,CAAC,kBAAkB,EAAE,aAAa,CAAC;IAC3C,KAAK,EAAE,CAAC,UAAU,CAAC;;;;;"}