motionary 7.8.0 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +1 -1
  3. package/README_ja.md +1 -1
  4. package/README_zh.md +1 -1
  5. package/bin/usa-codemod-8.mjs +74 -0
  6. package/dist/chunks/{audio-DcPvT2Kh.js → audio-CynhhWDi.js} +3 -3
  7. package/dist/chunks/{audio-DcPvT2Kh.js.map → audio-CynhhWDi.js.map} +1 -1
  8. package/dist/chunks/{audio-EXUoijsG.cjs → audio-cgWbDkoY.cjs} +3 -3
  9. package/dist/chunks/{audio-EXUoijsG.cjs.map → audio-cgWbDkoY.cjs.map} +1 -1
  10. package/dist/chunks/{base-2-yYc93C.js → base-CLuqlLfG.js} +63 -6
  11. package/dist/chunks/base-CLuqlLfG.js.map +1 -0
  12. package/dist/chunks/{base-BaQV-2ha.cjs → base-DoRUZBy-.cjs} +66 -5
  13. package/dist/chunks/base-DoRUZBy-.cjs.map +1 -0
  14. package/dist/chunks/{builtins-HlqAkK0f.js → builtins-Bs4smevg.js} +3 -3
  15. package/dist/chunks/{builtins-HlqAkK0f.js.map → builtins-Bs4smevg.js.map} +1 -1
  16. package/dist/chunks/{builtins-xalxV2d5.cjs → builtins-ClXshqj-.cjs} +3 -3
  17. package/dist/chunks/{builtins-xalxV2d5.cjs.map → builtins-ClXshqj-.cjs.map} +1 -1
  18. package/dist/chunks/{core-DuO-AVXL.js → core-C3Taz-ew.js} +2 -2
  19. package/dist/chunks/{core-DuO-AVXL.js.map → core-C3Taz-ew.js.map} +1 -1
  20. package/dist/chunks/{core-D5rU0CV6.js → core-CiN5sqxB.js} +2 -2
  21. package/dist/chunks/{core-D5rU0CV6.js.map → core-CiN5sqxB.js.map} +1 -1
  22. package/dist/chunks/{core-BGAyaY6L.cjs → core-CwO835Wm.cjs} +2 -2
  23. package/dist/chunks/{core-BGAyaY6L.cjs.map → core-CwO835Wm.cjs.map} +1 -1
  24. package/dist/chunks/{core-zq17EeCI.cjs → core-O4grKHSa.cjs} +2 -2
  25. package/dist/chunks/{core-zq17EeCI.cjs.map → core-O4grKHSa.cjs.map} +1 -1
  26. package/dist/chunks/{fx-lBGVtQO1.cjs → fx-C-XjLOTc.cjs} +2 -2
  27. package/dist/chunks/{fx-lBGVtQO1.cjs.map → fx-C-XjLOTc.cjs.map} +1 -1
  28. package/dist/chunks/{fx-CMxWNwH8.js → fx-CQv3IxMf.js} +2 -2
  29. package/dist/chunks/{fx-CMxWNwH8.js.map → fx-CQv3IxMf.js.map} +1 -1
  30. package/dist/chunks/{gpu-DLPghVWr.js → gpu-CB8frFOD.js} +2 -2
  31. package/dist/chunks/{gpu-DLPghVWr.js.map → gpu-CB8frFOD.js.map} +1 -1
  32. package/dist/chunks/{gpu-Dx0H875w.cjs → gpu-CcdA2D2i.cjs} +2 -2
  33. package/dist/chunks/{gpu-Dx0H875w.cjs.map → gpu-CcdA2D2i.cjs.map} +1 -1
  34. package/dist/chunks/{index-tags-C04JP8g4.js → index-tags-B-JBecYg.js} +2 -2
  35. package/dist/chunks/index-tags-B-JBecYg.js.map +1 -0
  36. package/dist/chunks/{index-tags-BTMwrfgV.cjs → index-tags-hLIF2Clq.cjs} +2 -2
  37. package/dist/chunks/index-tags-hLIF2Clq.cjs.map +1 -0
  38. package/dist/chunks/{player-PS6_FzNw.cjs → player-C2n17sdH.cjs} +4 -4
  39. package/dist/chunks/{player-PS6_FzNw.cjs.map → player-C2n17sdH.cjs.map} +1 -1
  40. package/dist/chunks/{player-DxvCYo7Q.js → player-YzQGkKaW.js} +4 -4
  41. package/dist/chunks/{player-DxvCYo7Q.js.map → player-YzQGkKaW.js.map} +1 -1
  42. package/dist/chunks/{registry-DehBVRDV.cjs → registry-BVklOepd.cjs} +2 -2
  43. package/dist/chunks/{registry-DehBVRDV.cjs.map → registry-BVklOepd.cjs.map} +1 -1
  44. package/dist/chunks/{registry-CyKExAmE.js → registry-CnO7ZVPK.js} +2 -2
  45. package/dist/chunks/{registry-CyKExAmE.js.map → registry-CnO7ZVPK.js.map} +1 -1
  46. package/dist/chunks/{spring-BK8DiezC.js → spring-BFKNHmfl.js} +2 -2
  47. package/dist/chunks/{spring-BK8DiezC.js.map → spring-BFKNHmfl.js.map} +1 -1
  48. package/dist/chunks/{spring-Dgx187Vh.cjs → spring-uQMVJTj9.cjs} +2 -2
  49. package/dist/chunks/{spring-Dgx187Vh.cjs.map → spring-uQMVJTj9.cjs.map} +1 -1
  50. package/dist/chunks/{variants-BQ6bhzn4.js → variants-B-zKORvt.js} +2 -2
  51. package/dist/chunks/{variants-BQ6bhzn4.js.map → variants-B-zKORvt.js.map} +1 -1
  52. package/dist/chunks/{variants-BhjyddG8.cjs → variants-DagykrKH.cjs} +2 -2
  53. package/dist/chunks/{variants-BhjyddG8.cjs.map → variants-DagykrKH.cjs.map} +1 -1
  54. package/dist/components/a11y.cjs +2 -2
  55. package/dist/components/a11y.d.cts +1 -1
  56. package/dist/components/a11y.d.ts +1 -1
  57. package/dist/components/a11y.js +3 -3
  58. package/dist/components/angular.cjs +9 -9
  59. package/dist/components/angular.d.cts +2 -14
  60. package/dist/components/angular.d.ts +2 -14
  61. package/dist/components/angular.js +9 -9
  62. package/dist/components/background.cjs +2 -2
  63. package/dist/components/background.js +2 -2
  64. package/dist/components/bridge.cjs +1 -1
  65. package/dist/components/bridge.js +1 -1
  66. package/dist/components/cards.cjs +2 -2
  67. package/dist/components/cards.js +2 -2
  68. package/dist/components/click.cjs +3 -3
  69. package/dist/components/click.js +3 -3
  70. package/dist/components/depth.cjs +3 -3
  71. package/dist/components/depth.js +3 -3
  72. package/dist/components/effects.cjs +7 -7
  73. package/dist/components/effects.js +9 -9
  74. package/dist/components/engine.cjs +266 -0
  75. package/dist/components/engine.cjs.map +1 -0
  76. package/dist/components/engine.d.cts +105 -0
  77. package/dist/components/engine.d.ts +105 -0
  78. package/dist/components/engine.js +255 -0
  79. package/dist/components/engine.js.map +1 -0
  80. package/dist/components/feedback.cjs +1 -1
  81. package/dist/components/feedback.js +1 -1
  82. package/dist/components/fx-3d.cjs +2 -2
  83. package/dist/components/fx-3d.js +2 -2
  84. package/dist/components/fx-ai.cjs +2 -2
  85. package/dist/components/fx-ai.js +2 -2
  86. package/dist/components/fx-chart.cjs +2 -2
  87. package/dist/components/fx-chart.js +2 -2
  88. package/dist/components/fx-focus.cjs +2 -2
  89. package/dist/components/fx-focus.js +2 -2
  90. package/dist/components/fx-form.cjs +2 -2
  91. package/dist/components/fx-form.js +2 -2
  92. package/dist/components/fx-game.cjs +2 -2
  93. package/dist/components/fx-game.js +2 -2
  94. package/dist/components/fx-geo.cjs +2 -2
  95. package/dist/components/fx-geo.js +2 -2
  96. package/dist/components/fx-gpu.cjs +3 -3
  97. package/dist/components/fx-gpu.js +3 -3
  98. package/dist/components/fx-light.cjs +2 -2
  99. package/dist/components/fx-light.js +2 -2
  100. package/dist/components/fx-morph.cjs +2 -2
  101. package/dist/components/fx-morph.js +2 -2
  102. package/dist/components/fx-music.cjs +3 -3
  103. package/dist/components/fx-music.js +3 -3
  104. package/dist/components/fx-physics.cjs +2 -2
  105. package/dist/components/fx-physics.js +2 -2
  106. package/dist/components/fx-shop.cjs +2 -2
  107. package/dist/components/fx-shop.js +2 -2
  108. package/dist/components/fx-social.cjs +2 -2
  109. package/dist/components/fx-social.js +2 -2
  110. package/dist/components/fx-text.cjs +2 -2
  111. package/dist/components/fx-text.js +2 -2
  112. package/dist/components/fx-transitions.cjs +3 -3
  113. package/dist/components/fx-transitions.js +3 -3
  114. package/dist/components/fx-weather.cjs +2 -2
  115. package/dist/components/fx-weather.js +2 -2
  116. package/dist/components/fx.cjs +5 -5
  117. package/dist/components/fx.js +6 -6
  118. package/dist/components/fx2.cjs +4 -4
  119. package/dist/components/fx2.js +5 -5
  120. package/dist/components/gesture.cjs +3 -3
  121. package/dist/components/gesture.js +4 -4
  122. package/dist/components/interaction.cjs +1 -1
  123. package/dist/components/interaction.js +1 -1
  124. package/dist/components/jsx.d.cts +1 -1
  125. package/dist/components/jsx.d.ts +1 -1
  126. package/dist/components/layout.cjs +1 -1
  127. package/dist/components/layout.js +1 -1
  128. package/dist/components/lazy.cjs +1 -1
  129. package/dist/components/lazy.d.cts +1 -1
  130. package/dist/components/lazy.d.ts +1 -1
  131. package/dist/components/lazy.js +1 -1
  132. package/dist/components/lite.cjs +151 -205
  133. package/dist/components/lite.cjs.map +1 -1
  134. package/dist/components/lite.js +152 -205
  135. package/dist/components/lite.js.map +1 -1
  136. package/dist/components/marketplace.cjs +2 -2
  137. package/dist/components/marketplace.js +2 -2
  138. package/dist/components/packs.cjs +1 -1
  139. package/dist/components/packs.js +1 -1
  140. package/dist/components/page.cjs +2 -2
  141. package/dist/components/page.js +3 -3
  142. package/dist/components/perf.cjs +2 -2
  143. package/dist/components/perf.d.cts +1 -1
  144. package/dist/components/perf.d.ts +1 -1
  145. package/dist/components/perf.js +3 -3
  146. package/dist/components/physics.cjs +2 -2
  147. package/dist/components/physics.js +3 -3
  148. package/dist/components/react.cjs +1 -1
  149. package/dist/components/react.js +1 -1
  150. package/dist/components/reveal.cjs +1 -1
  151. package/dist/components/reveal.js +1 -1
  152. package/dist/components/solid.cjs +9 -9
  153. package/dist/components/solid.d.cts +2 -14
  154. package/dist/components/solid.d.ts +2 -14
  155. package/dist/components/solid.js +9 -9
  156. package/dist/components/svelte.cjs +9 -9
  157. package/dist/components/svelte.d.cts +2 -14
  158. package/dist/components/svelte.d.ts +2 -14
  159. package/dist/components/svelte.js +9 -9
  160. package/dist/components/svg.cjs +1 -1
  161. package/dist/components/svg.js +1 -1
  162. package/dist/components/text.cjs +2 -2
  163. package/dist/components/text.js +2 -2
  164. package/dist/components/timeline.cjs +2 -2
  165. package/dist/components/timeline.js +3 -3
  166. package/dist/components/transitions.cjs +1 -1
  167. package/dist/components/transitions.js +1 -1
  168. package/dist/components/ui.cjs +17 -107
  169. package/dist/components/ui.cjs.map +1 -1
  170. package/dist/components/ui.css +0 -1
  171. package/dist/components/ui.d.cts +3 -16
  172. package/dist/components/ui.d.ts +3 -16
  173. package/dist/components/ui.js +19 -108
  174. package/dist/components/ui.js.map +1 -1
  175. package/dist/components/vue.cjs +9 -9
  176. package/dist/components/vue.d.cts +2 -14
  177. package/dist/components/vue.d.ts +2 -14
  178. package/dist/components/vue.js +9 -9
  179. package/dist/components/webgl.cjs +1 -1
  180. package/dist/components/webgl.js +1 -1
  181. package/dist/components/widgets.cjs +585 -145
  182. package/dist/components/widgets.cjs.map +1 -1
  183. package/dist/components/widgets.d.cts +136 -3
  184. package/dist/components/widgets.d.ts +136 -3
  185. package/dist/components/widgets.js +579 -146
  186. package/dist/components/widgets.js.map +1 -1
  187. package/dist/components.cjs +9 -10
  188. package/dist/components.cjs.map +1 -1
  189. package/dist/components.css +0 -1
  190. package/dist/components.d.cts +4 -17
  191. package/dist/components.d.ts +4 -17
  192. package/dist/components.js +12 -12
  193. package/dist/components.umd.js +2 -2
  194. package/dist/components.umd.js.map +1 -1
  195. package/dist/index.cjs +2 -2
  196. package/dist/index.js +2 -2
  197. package/dist/index.umd.js +2 -2
  198. package/dist/index.umd.js.map +1 -1
  199. package/dist/widgets.umd.js +1 -1
  200. package/dist/widgets.umd.js.map +1 -1
  201. package/docs/ROADMAP.md +14 -12
  202. package/docs/accessibility.md +1 -2
  203. package/docs/components.md +44 -1
  204. package/docs/deprecations.md +4 -0
  205. package/docs/upgrading-8.md +37 -0
  206. package/package.json +23 -2
  207. package/dist/chunks/base-2-yYc93C.js.map +0 -1
  208. package/dist/chunks/base-BaQV-2ha.cjs.map +0 -1
  209. package/dist/chunks/index-tags-BTMwrfgV.cjs.map +0 -1
  210. package/dist/chunks/index-tags-C04JP8g4.js.map +0 -1
@@ -1124,17 +1124,6 @@ interface UsaSliderElement extends UsaElement {
1124
1124
  value: number;
1125
1125
  }
1126
1126
 
1127
- /**
1128
- * `<usa-rating>` — star rating with hover preview and a springy pop when a
1129
- * value is chosen. `role="slider"` (arrow keys, Home/End, number keys).
1130
- * Attributes: `value` (0), `max` (5), `icon` (★), `readonly`, `label`
1131
- * ("Rating"), `name` (form value), `variant`. Events: `change`, `usa:change` (`{ value }`).
1132
- * Reduced motion: no pop.
1133
- */
1134
- interface UsaRatingElement extends UsaElement {
1135
- value: number;
1136
- }
1137
-
1138
1127
  /**
1139
1128
  * `<usa-popover>` — a click-to-open popover: the first element child is the
1140
1129
  * trigger, `[data-popover]` is the content. Springs open from the trigger,
@@ -1172,7 +1161,7 @@ interface UsaAvatarStackElement extends UsaElement {
1172
1161
  /**
1173
1162
  * motionary/components/ui — animated UI components + style variants (v2.6).
1174
1163
  * `<usa-tabs>`, `<usa-drawer>`, `<usa-bottom-sheet>`, `<usa-pull-refresh>`,
1175
- * `<usa-fab>`, `<usa-navbar>`, `<usa-slider>`, `<usa-rating>`,
1164
+ * `<usa-fab>`, `<usa-navbar>`, `<usa-slider>`,
1176
1165
  * `<usa-popover>`, `<usa-badge>`, `<usa-avatar-stack>`,
1177
1166
  * and `variant="minimal | neon | glass | brutalist | fluent | material"`
1178
1167
  * design tokens (`setVariant()`, `VARIANTS`).
@@ -1187,7 +1176,6 @@ declare global {
1187
1176
  'usa-fab': UsaFabElement;
1188
1177
  'usa-navbar': UsaNavbarElement;
1189
1178
  'usa-slider': UsaSliderElement;
1190
- 'usa-rating': UsaRatingElement;
1191
1179
  'usa-popover': UsaPopoverElement;
1192
1180
  'usa-badge': UsaBadgeElement;
1193
1181
  'usa-avatar-stack': UsaAvatarStackElement;
@@ -1614,7 +1602,7 @@ declare const COMPONENT_CATEGORIES: {
1614
1602
  readonly physics: readonly ["usa-spring", "usa-draggable", "usa-overscroll"];
1615
1603
  readonly cards: readonly ["usa-card", "usa-card-stack", "usa-sticky-stack", "usa-carousel-3d"];
1616
1604
  readonly click: readonly ["usa-click", "usa-button", "usa-icon-morph", "usa-like", "usa-hold", "usa-double-tap", "usa-checkbox"];
1617
- readonly ui: readonly ["usa-tabs", "usa-drawer", "usa-bottom-sheet", "usa-pull-refresh", "usa-fab", "usa-navbar", "usa-slider", "usa-rating", "usa-popover", "usa-badge", "usa-avatar-stack"];
1605
+ readonly ui: readonly ["usa-tabs", "usa-drawer", "usa-bottom-sheet", "usa-pull-refresh", "usa-fab", "usa-navbar", "usa-slider", "usa-popover", "usa-badge", "usa-avatar-stack"];
1618
1606
  readonly page: readonly ["usa-cursor", "usa-fullpage", "usa-loading-bar", "usa-back-to-top", "usa-ambient", "usa-splash", "usa-auto-skeleton", "usa-motion-switch"];
1619
1607
  readonly timeline: readonly ["usa-timeline"];
1620
1608
  readonly gesture: readonly ["usa-swipeable", "usa-pinch-zoom"];
@@ -1,35 +1,35 @@
1
1
  import { defineComponents } from '../components.js';
2
2
  export { b as bindUsa, u as usaEventName } from '../chunks/bind-B_CTL6Qn.js';
3
3
  import './reveal.js';
4
- import '../chunks/base-2-yYc93C.js';
4
+ import '../chunks/base-CLuqlLfG.js';
5
5
  import './text.js';
6
- import '../chunks/core-D5rU0CV6.js';
6
+ import '../chunks/core-CiN5sqxB.js';
7
7
  import './tokens.js';
8
8
  import './interaction.js';
9
9
  import './feedback.js';
10
10
  import './background.js';
11
- import '../chunks/variants-BQ6bhzn4.js';
11
+ import '../chunks/variants-B-zKORvt.js';
12
12
  import './transitions.js';
13
13
  import './physics.js';
14
- import '../chunks/spring-BK8DiezC.js';
14
+ import '../chunks/spring-BFKNHmfl.js';
15
15
  import './cards.js';
16
16
  import './click.js';
17
- import '../chunks/fx-CMxWNwH8.js';
17
+ import '../chunks/fx-CQv3IxMf.js';
18
18
  import './ui.js';
19
19
  import './page.js';
20
20
  import './timeline.js';
21
21
  import './gesture.js';
22
- import '../chunks/core-DuO-AVXL.js';
22
+ import '../chunks/core-C3Taz-ew.js';
23
23
  import './svg.js';
24
24
  import './webgl.js';
25
25
  import './depth.js';
26
26
  import './layout.js';
27
27
  import './packs.js';
28
28
  import './fx.js';
29
- import '../chunks/registry-CyKExAmE.js';
30
- import '../chunks/builtins-HlqAkK0f.js';
29
+ import '../chunks/registry-CnO7ZVPK.js';
30
+ import '../chunks/builtins-Bs4smevg.js';
31
31
  import './a11y.js';
32
- import '../chunks/index-tags-C04JP8g4.js';
32
+ import '../chunks/index-tags-B-JBecYg.js';
33
33
  import './perf.js';
34
34
  import './bridge.js';
35
35
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var base = require('../chunks/base-BaQV-2ha.cjs');
4
- var variants = require('../chunks/variants-BhjyddG8.cjs');
3
+ var base = require('../chunks/base-DoRUZBy-.cjs');
4
+ var variants = require('../chunks/variants-DagykrKH.cjs');
5
5
 
6
6
  var css$6 = "usa-aurora{position:relative;display:block;isolation:isolate;overflow:hidden}usa-aurora .usa-aurora-layer{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:var(--usa-aurora-opacity,0.7);overflow:hidden;contain:strict}usa-aurora .usa-aurora-layer i{position:absolute;display:block;width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,var(--c),transparent);will-change:transform;animation:usa-aurora-a var(--usa-aurora-speed,18s) ease-in-out infinite alternate}usa-aurora .usa-aurora-layer i:nth-child(1){left:-15%;top:-30%}usa-aurora .usa-aurora-layer i:nth-child(2){right:-20%;top:-10%;animation-name:usa-aurora-b;animation-duration:calc(var(--usa-aurora-speed,18s) * 1.3)}usa-aurora .usa-aurora-layer i:nth-child(3){left:10%;bottom:-45%;animation-name:usa-aurora-c;animation-duration:calc(var(--usa-aurora-speed,18s) * 0.9)}usa-aurora .usa-aurora-layer i:nth-child(4){right:0;bottom:-30%;width:50%;animation-name:usa-aurora-b;animation-direction:alternate-reverse}usa-aurora[paused] .usa-aurora-layer i,usa-aurora[data-offscreen] .usa-aurora-layer i{animation-play-state:paused}@keyframes usa-aurora-a{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(30%,20%,0) scale(1.25)}}@keyframes usa-aurora-b{from{transform:translate3d(0,0,0) scale(1.1)}to{transform:translate3d(-35%,25%,0) scale(0.85)}}@keyframes usa-aurora-c{from{transform:translate3d(0,0,0) rotate(0deg) scale(1)}to{transform:translate3d(25%,-30%,0) rotate(40deg) scale(1.2)}}@media (prefers-reduced-motion:reduce){usa-aurora .usa-aurora-layer i,usa-grain .usa-grain-layer,usa-acrylic::after{animation:none !important}}";
7
7
 
@@ -1,5 +1,5 @@
1
- import { u as defineElement, l as caf, r as raf, x as adoptStyles, p as prefersReducedMotion } from '../chunks/base-2-yYc93C.js';
2
- import { s as setVariant } from '../chunks/variants-BQ6bhzn4.js';
1
+ import { u as defineElement, l as caf, r as raf, B as adoptStyles, p as prefersReducedMotion } from '../chunks/base-CLuqlLfG.js';
2
+ import { s as setVariant } from '../chunks/variants-B-zKORvt.js';
3
3
 
4
4
  var css$6 = "usa-aurora{position:relative;display:block;isolation:isolate;overflow:hidden}usa-aurora .usa-aurora-layer{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:var(--usa-aurora-opacity,0.7);overflow:hidden;contain:strict}usa-aurora .usa-aurora-layer i{position:absolute;display:block;width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,var(--c),transparent);will-change:transform;animation:usa-aurora-a var(--usa-aurora-speed,18s) ease-in-out infinite alternate}usa-aurora .usa-aurora-layer i:nth-child(1){left:-15%;top:-30%}usa-aurora .usa-aurora-layer i:nth-child(2){right:-20%;top:-10%;animation-name:usa-aurora-b;animation-duration:calc(var(--usa-aurora-speed,18s) * 1.3)}usa-aurora .usa-aurora-layer i:nth-child(3){left:10%;bottom:-45%;animation-name:usa-aurora-c;animation-duration:calc(var(--usa-aurora-speed,18s) * 0.9)}usa-aurora .usa-aurora-layer i:nth-child(4){right:0;bottom:-30%;width:50%;animation-name:usa-aurora-b;animation-direction:alternate-reverse}usa-aurora[paused] .usa-aurora-layer i,usa-aurora[data-offscreen] .usa-aurora-layer i{animation-play-state:paused}@keyframes usa-aurora-a{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(30%,20%,0) scale(1.25)}}@keyframes usa-aurora-b{from{transform:translate3d(0,0,0) scale(1.1)}to{transform:translate3d(-35%,25%,0) scale(0.85)}}@keyframes usa-aurora-c{from{transform:translate3d(0,0,0) rotate(0deg) scale(1)}to{transform:translate3d(25%,-30%,0) rotate(40deg) scale(1.2)}}@media (prefers-reduced-motion:reduce){usa-aurora .usa-aurora-layer i,usa-grain .usa-grain-layer,usa-acrylic::after{animation:none !important}}";
5
5
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var base = require('../chunks/base-BaQV-2ha.cjs');
3
+ var base = require('../chunks/base-DoRUZBy-.cjs');
4
4
 
5
5
  /**
6
6
  * motionary/components/bridge — native shell bridges (4.7).
@@ -1,4 +1,4 @@
1
- import { g as configureComponents, a as MOTION_SENSITIVITY_LEVELS } from '../chunks/base-2-yYc93C.js';
1
+ import { g as configureComponents, a as MOTION_SENSITIVITY_LEVELS } from '../chunks/base-CLuqlLfG.js';
2
2
 
3
3
  /**
4
4
  * motionary/components/bridge — native shell bridges (4.7).
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var base = require('../chunks/base-BaQV-2ha.cjs');
4
- var spring = require('../chunks/spring-Dgx187Vh.cjs');
3
+ var base = require('../chunks/base-DoRUZBy-.cjs');
4
+ var spring = require('../chunks/spring-uQMVJTj9.cjs');
5
5
 
6
6
  var css$3 = "usa-card{--usa-card-radius:18px;--usa-card-bg:var(--usa-surface,#1b1e27);--usa-card-glow:var(--usa-accent,#7c5cff);--usa-card-x:50%;--usa-card-y:50%;--usa-card-nx:0;--usa-card-ny:0;position:relative;display:block;border-radius:var(--usa-card-radius);isolation:isolate;-webkit-tap-highlight-color:transparent}usa-card:focus-visible{outline:2px solid var(--usa-card-glow);outline-offset:3px}usa-card[effect~=\"lift\"]{transition:transform 0.45s cubic-bezier(0.34,1.56,0.64,1),box-shadow 0.45s ease}usa-card[effect~=\"lift\"][data-hover],usa-card[effect~=\"lift\"]:focus-visible{transform:translateY(-6px) perspective(900px) rotateX(calc(var(--usa-card-ny) * -4deg)) rotateY(calc(var(--usa-card-nx) * 4deg));box-shadow:0 22px 44px -18px rgb(0 0 0 / 0.55)}usa-card[effect~=\"glass\"]{background:color-mix(in srgb,var(--usa-card-bg) 45%,transparent);border:1px solid rgb(255 255 255 / 0.16);-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5)}usa-card[effect~=\"spotlight\"]::before,usa-card[effect~=\"border-glow\"]::after{content:\"\";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity 0.3s ease}usa-card[effect~=\"spotlight\"]::before{z-index:-1;background:radial-gradient(260px circle at var(--usa-card-x) var(--usa-card-y),color-mix(in srgb,var(--usa-card-glow) 28%,transparent),transparent 70%)}usa-card[effect~=\"border-glow\"]::after{padding:1.5px;background:radial-gradient(180px circle at var(--usa-card-x) var(--usa-card-y),var(--usa-card-glow),transparent 70%);-webkit-mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}usa-card[data-hover]::before,usa-card[data-hover]::after{opacity:1}@property --usa-card-angle{syntax:\"<angle>\";inherits:false;initial-value:0deg}usa-card[effect~=\"conic-border\"]{border:2px solid transparent;background:linear-gradient(var(--usa-card-bg),var(--usa-card-bg)) padding-box,conic-gradient(from var(--usa-card-angle),var(--usa-card-glow),#22d3ee,#f472b6,var(--usa-card-glow)) border-box;animation:usa-card-spin 4s linear infinite}@keyframes usa-card-spin{to{--usa-card-angle:360deg}}usa-card .usa-card-sheen{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none}usa-card .usa-card-sheen::before{content:\"\";position:absolute;top:0;bottom:0;width:45%;left:-60%;transform:skewX(-20deg);background:linear-gradient(90deg,transparent,rgb(255 255 255 / 0.35),transparent)}usa-card[effect~=\"sheen\"]:hover .usa-card-sheen::before,usa-card[effect~=\"sheen\"]:focus-visible .usa-card-sheen::before{left:130%;transition:left 0.8s cubic-bezier(0.22,1,0.36,1)}usa-card .usa-card-holo{position:absolute;inset:0;border-radius:inherit;pointer-events:none;mix-blend-mode:color-dodge;opacity:0.35;background:linear-gradient(115deg,transparent 20%,#ff7ad9 35%,#7af0ff 45%,#ffe27a 55%,transparent 70%) calc(var(--usa-card-x) * 1.4 - 20%) calc(var(--usa-card-y) * 1.4 - 20%) / 220% 220%;transition:opacity 0.3s ease}usa-card[data-hover] .usa-card-holo{opacity:0.7}usa-card[effect~=\"parallax-layers\"] [data-depth]{transition:transform 0.25s ease-out;will-change:transform}usa-card[effect~=\"flip\"]{perspective:1000px;display:grid}usa-card[effect~=\"flip\"]>[data-front],usa-card[effect~=\"flip\"]>[data-back]{grid-area:1 / 1;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:inherit;transition:transform 0.7s cubic-bezier(0.34,1.3,0.64,1),opacity 0.3s ease}usa-card[effect~=\"flip\"]>[data-back]{transform:rotateY(180deg)}usa-card[effect~=\"flip\"][axis=\"x\"]>[data-back]{transform:rotateX(180deg)}usa-card[effect~=\"flip\"][flipped]>[data-front],usa-card[effect~=\"flip\"]:not([trigger=\"click\"]):hover>[data-front]{transform:rotateY(-180deg)}usa-card[effect~=\"flip\"][flipped]>[data-back],usa-card[effect~=\"flip\"]:not([trigger=\"click\"]):hover>[data-back]{transform:rotateY(0deg)}usa-card[effect~=\"flip\"][axis=\"x\"][flipped]>[data-front],usa-card[effect~=\"flip\"][axis=\"x\"]:not([trigger=\"click\"]):hover>[data-front]{transform:rotateX(180deg)}usa-card[effect~=\"flip\"][axis=\"x\"][flipped]>[data-back],usa-card[effect~=\"flip\"][axis=\"x\"]:not([trigger=\"click\"]):hover>[data-back]{transform:rotateX(0deg)}usa-card[effect~=\"flip\"][trigger=\"click\"]{cursor:pointer}usa-card[effect~=\"expand\"]{cursor:zoom-in}usa-card[effect~=\"expand\"]:not([expanded]) [data-detail]{display:none}usa-card[expanded]{position:fixed;inset:6vh max(4vw,calc(50vw - 420px));z-index:1000;overflow:auto;cursor:default;background:var(--usa-card-bg);box-shadow:0 30px 80px -20px rgb(0 0 0 / 0.6)}.usa-card-backdrop{position:fixed;inset:0;z-index:999;background:rgb(0 0 0 / 0.45)}@media (prefers-reduced-motion:reduce){usa-card,usa-card *,usa-card .usa-card-sheen::before{transition-duration:0.01ms !important;animation:none !important}usa-card[effect~=\"lift\"][data-hover]{transform:none}usa-card[effect~=\"flip\"]>[data-front],usa-card[effect~=\"flip\"]>[data-back]{transform:none !important}usa-card[effect~=\"flip\"][flipped]>[data-front],usa-card[effect~=\"flip\"]:not([flipped])>[data-back]{opacity:0;visibility:hidden}usa-card[effect~=\"flip\"]:not([trigger=\"click\"]):hover>[data-front]{opacity:0;visibility:hidden}usa-card[effect~=\"flip\"]:not([trigger=\"click\"]):hover>[data-back]{opacity:1;visibility:visible}}@media (prefers-reduced-transparency:reduce),(forced-colors:active){usa-card[effect~=\"glass\"]{background:var(--usa-card-bg);-webkit-backdrop-filter:none;backdrop-filter:none}}";
7
7
 
@@ -1,5 +1,5 @@
1
- import { u as defineElement, r as raf, l as caf, z as EASE_OUT, k as clamp } from '../chunks/base-2-yYc93C.js';
2
- import { d as springEasing, c as createSpring } from '../chunks/spring-BK8DiezC.js';
1
+ import { u as defineElement, r as raf, l as caf, D as EASE_OUT, k as clamp } from '../chunks/base-CLuqlLfG.js';
2
+ import { d as springEasing, c as createSpring } from '../chunks/spring-BFKNHmfl.js';
3
3
 
4
4
  var css$3 = "usa-card{--usa-card-radius:18px;--usa-card-bg:var(--usa-surface,#1b1e27);--usa-card-glow:var(--usa-accent,#7c5cff);--usa-card-x:50%;--usa-card-y:50%;--usa-card-nx:0;--usa-card-ny:0;position:relative;display:block;border-radius:var(--usa-card-radius);isolation:isolate;-webkit-tap-highlight-color:transparent}usa-card:focus-visible{outline:2px solid var(--usa-card-glow);outline-offset:3px}usa-card[effect~=\"lift\"]{transition:transform 0.45s cubic-bezier(0.34,1.56,0.64,1),box-shadow 0.45s ease}usa-card[effect~=\"lift\"][data-hover],usa-card[effect~=\"lift\"]:focus-visible{transform:translateY(-6px) perspective(900px) rotateX(calc(var(--usa-card-ny) * -4deg)) rotateY(calc(var(--usa-card-nx) * 4deg));box-shadow:0 22px 44px -18px rgb(0 0 0 / 0.55)}usa-card[effect~=\"glass\"]{background:color-mix(in srgb,var(--usa-card-bg) 45%,transparent);border:1px solid rgb(255 255 255 / 0.16);-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5)}usa-card[effect~=\"spotlight\"]::before,usa-card[effect~=\"border-glow\"]::after{content:\"\";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity 0.3s ease}usa-card[effect~=\"spotlight\"]::before{z-index:-1;background:radial-gradient(260px circle at var(--usa-card-x) var(--usa-card-y),color-mix(in srgb,var(--usa-card-glow) 28%,transparent),transparent 70%)}usa-card[effect~=\"border-glow\"]::after{padding:1.5px;background:radial-gradient(180px circle at var(--usa-card-x) var(--usa-card-y),var(--usa-card-glow),transparent 70%);-webkit-mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}usa-card[data-hover]::before,usa-card[data-hover]::after{opacity:1}@property --usa-card-angle{syntax:\"<angle>\";inherits:false;initial-value:0deg}usa-card[effect~=\"conic-border\"]{border:2px solid transparent;background:linear-gradient(var(--usa-card-bg),var(--usa-card-bg)) padding-box,conic-gradient(from var(--usa-card-angle),var(--usa-card-glow),#22d3ee,#f472b6,var(--usa-card-glow)) border-box;animation:usa-card-spin 4s linear infinite}@keyframes usa-card-spin{to{--usa-card-angle:360deg}}usa-card .usa-card-sheen{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none}usa-card .usa-card-sheen::before{content:\"\";position:absolute;top:0;bottom:0;width:45%;left:-60%;transform:skewX(-20deg);background:linear-gradient(90deg,transparent,rgb(255 255 255 / 0.35),transparent)}usa-card[effect~=\"sheen\"]:hover .usa-card-sheen::before,usa-card[effect~=\"sheen\"]:focus-visible .usa-card-sheen::before{left:130%;transition:left 0.8s cubic-bezier(0.22,1,0.36,1)}usa-card .usa-card-holo{position:absolute;inset:0;border-radius:inherit;pointer-events:none;mix-blend-mode:color-dodge;opacity:0.35;background:linear-gradient(115deg,transparent 20%,#ff7ad9 35%,#7af0ff 45%,#ffe27a 55%,transparent 70%) calc(var(--usa-card-x) * 1.4 - 20%) calc(var(--usa-card-y) * 1.4 - 20%) / 220% 220%;transition:opacity 0.3s ease}usa-card[data-hover] .usa-card-holo{opacity:0.7}usa-card[effect~=\"parallax-layers\"] [data-depth]{transition:transform 0.25s ease-out;will-change:transform}usa-card[effect~=\"flip\"]{perspective:1000px;display:grid}usa-card[effect~=\"flip\"]>[data-front],usa-card[effect~=\"flip\"]>[data-back]{grid-area:1 / 1;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:inherit;transition:transform 0.7s cubic-bezier(0.34,1.3,0.64,1),opacity 0.3s ease}usa-card[effect~=\"flip\"]>[data-back]{transform:rotateY(180deg)}usa-card[effect~=\"flip\"][axis=\"x\"]>[data-back]{transform:rotateX(180deg)}usa-card[effect~=\"flip\"][flipped]>[data-front],usa-card[effect~=\"flip\"]:not([trigger=\"click\"]):hover>[data-front]{transform:rotateY(-180deg)}usa-card[effect~=\"flip\"][flipped]>[data-back],usa-card[effect~=\"flip\"]:not([trigger=\"click\"]):hover>[data-back]{transform:rotateY(0deg)}usa-card[effect~=\"flip\"][axis=\"x\"][flipped]>[data-front],usa-card[effect~=\"flip\"][axis=\"x\"]:not([trigger=\"click\"]):hover>[data-front]{transform:rotateX(180deg)}usa-card[effect~=\"flip\"][axis=\"x\"][flipped]>[data-back],usa-card[effect~=\"flip\"][axis=\"x\"]:not([trigger=\"click\"]):hover>[data-back]{transform:rotateX(0deg)}usa-card[effect~=\"flip\"][trigger=\"click\"]{cursor:pointer}usa-card[effect~=\"expand\"]{cursor:zoom-in}usa-card[effect~=\"expand\"]:not([expanded]) [data-detail]{display:none}usa-card[expanded]{position:fixed;inset:6vh max(4vw,calc(50vw - 420px));z-index:1000;overflow:auto;cursor:default;background:var(--usa-card-bg);box-shadow:0 30px 80px -20px rgb(0 0 0 / 0.6)}.usa-card-backdrop{position:fixed;inset:0;z-index:999;background:rgb(0 0 0 / 0.45)}@media (prefers-reduced-motion:reduce){usa-card,usa-card *,usa-card .usa-card-sheen::before{transition-duration:0.01ms !important;animation:none !important}usa-card[effect~=\"lift\"][data-hover]{transform:none}usa-card[effect~=\"flip\"]>[data-front],usa-card[effect~=\"flip\"]>[data-back]{transform:none !important}usa-card[effect~=\"flip\"][flipped]>[data-front],usa-card[effect~=\"flip\"]:not([flipped])>[data-back]{opacity:0;visibility:hidden}usa-card[effect~=\"flip\"]:not([trigger=\"click\"]):hover>[data-front]{opacity:0;visibility:hidden}usa-card[effect~=\"flip\"]:not([trigger=\"click\"]):hover>[data-back]{opacity:1;visibility:visible}}@media (prefers-reduced-transparency:reduce),(forced-colors:active){usa-card[effect~=\"glass\"]{background:var(--usa-card-bg);-webkit-backdrop-filter:none;backdrop-filter:none}}";
5
5
 
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var base = require('../chunks/base-BaQV-2ha.cjs');
4
- var spring = require('../chunks/spring-Dgx187Vh.cjs');
5
- var fx = require('../chunks/fx-lBGVtQO1.cjs');
3
+ var base = require('../chunks/base-DoRUZBy-.cjs');
4
+ var spring = require('../chunks/spring-uQMVJTj9.cjs');
5
+ var fx = require('../chunks/fx-C-XjLOTc.cjs');
6
6
 
7
7
  var css$6 = "usa-click{position:relative;display:inline-block;overflow:hidden;isolation:isolate;border-radius:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation}usa-click[block]{display:block}usa-click .usa-click-wave{position:absolute;border-radius:50%;pointer-events:none;z-index:-1;transform:scale(0);background:radial-gradient(circle,var(--usa-wave) 0 55%,color-mix(in srgb,var(--usa-wave) 40%,transparent) 70%,transparent 72%)}";
8
8
 
@@ -1,6 +1,6 @@
1
- import { u as defineElement, z as EASE_OUT, k as clamp, l as caf, q as now, r as raf } from '../chunks/base-2-yYc93C.js';
2
- import { d as springEasing, c as createSpring } from '../chunks/spring-BK8DiezC.js';
3
- import { b as burst, c as confetti, h as haptic, s as shake } from '../chunks/fx-CMxWNwH8.js';
1
+ import { u as defineElement, D as EASE_OUT, k as clamp, l as caf, q as now, r as raf } from '../chunks/base-CLuqlLfG.js';
2
+ import { d as springEasing, c as createSpring } from '../chunks/spring-BFKNHmfl.js';
3
+ import { b as burst, c as confetti, h as haptic, s as shake } from '../chunks/fx-CQv3IxMf.js';
4
4
 
5
5
  var css$6 = "usa-click{position:relative;display:inline-block;overflow:hidden;isolation:isolate;border-radius:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation}usa-click[block]{display:block}usa-click .usa-click-wave{position:absolute;border-radius:50%;pointer-events:none;z-index:-1;transform:scale(0);background:radial-gradient(circle,var(--usa-wave) 0 55%,color-mix(in srgb,var(--usa-wave) 40%,transparent) 70%,transparent 72%)}";
6
6
 
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var base = require('../chunks/base-BaQV-2ha.cjs');
4
- var spring = require('../chunks/spring-Dgx187Vh.cjs');
5
- var core = require('../chunks/core-zq17EeCI.cjs');
3
+ var base = require('../chunks/base-DoRUZBy-.cjs');
4
+ var spring = require('../chunks/spring-uQMVJTj9.cjs');
5
+ var core = require('../chunks/core-O4grKHSa.cjs');
6
6
 
7
7
  var css = "usa-cube{--usa-cube-size:200px;display:block;width:var(--usa-cube-size);height:var(--usa-cube-size);perspective:var(--usa-cube-perspective,900px);touch-action:pan-y;user-select:none;-webkit-user-select:none;position:relative}usa-cube>[data-face]{position:absolute;inset:0;backface-visibility:hidden;transform:translateZ(calc(var(--usa-cube-size) / -2)) rotateX(var(--usa-cube-rx,0deg)) rotateY(var(--usa-cube-ry,0deg)) var(--usa-face) translateZ(calc(var(--usa-cube-size) / 2));transform-origin:50% 50%}usa-cube>[data-face=\"front\"]{--usa-face:rotateY(0deg)}usa-cube>[data-face=\"right\"]{--usa-face:rotateY(90deg)}usa-cube>[data-face=\"back\"]{--usa-face:rotateY(180deg)}usa-cube>[data-face=\"left\"]{--usa-face:rotateY(-90deg)}usa-cube>[data-face=\"top\"]{--usa-face:rotateX(90deg)}usa-cube>[data-face=\"bottom\"]{--usa-face:rotateX(-90deg)}usa-cube:focus-visible{outline:2px solid currentColor;outline-offset:6px}usa-depth{display:block;position:relative;perspective:1000px}usa-depth>*{transform:var(--usa-depth-rot,none);transform-style:preserve-3d}usa-depth [data-depth]{will-change:transform;transition:transform 0.12s linear}@media (prefers-reduced-motion:reduce){usa-depth [data-depth]{transform:none !important}}";
8
8
 
@@ -1,6 +1,6 @@
1
- import { u as defineElement, k as clamp, r as raf, l as caf } from '../chunks/base-2-yYc93C.js';
2
- import { c as createSpring } from '../chunks/spring-BK8DiezC.js';
3
- import { g as gesture } from '../chunks/core-DuO-AVXL.js';
1
+ import { u as defineElement, k as clamp, r as raf, l as caf } from '../chunks/base-CLuqlLfG.js';
2
+ import { c as createSpring } from '../chunks/spring-BFKNHmfl.js';
3
+ import { g as gesture } from '../chunks/core-C3Taz-ew.js';
4
4
 
5
5
  var css = "usa-cube{--usa-cube-size:200px;display:block;width:var(--usa-cube-size);height:var(--usa-cube-size);perspective:var(--usa-cube-perspective,900px);touch-action:pan-y;user-select:none;-webkit-user-select:none;position:relative}usa-cube>[data-face]{position:absolute;inset:0;backface-visibility:hidden;transform:translateZ(calc(var(--usa-cube-size) / -2)) rotateX(var(--usa-cube-rx,0deg)) rotateY(var(--usa-cube-ry,0deg)) var(--usa-face) translateZ(calc(var(--usa-cube-size) / 2));transform-origin:50% 50%}usa-cube>[data-face=\"front\"]{--usa-face:rotateY(0deg)}usa-cube>[data-face=\"right\"]{--usa-face:rotateY(90deg)}usa-cube>[data-face=\"back\"]{--usa-face:rotateY(180deg)}usa-cube>[data-face=\"left\"]{--usa-face:rotateY(-90deg)}usa-cube>[data-face=\"top\"]{--usa-face:rotateX(90deg)}usa-cube>[data-face=\"bottom\"]{--usa-face:rotateX(-90deg)}usa-cube:focus-visible{outline:2px solid currentColor;outline-offset:6px}usa-depth{display:block;position:relative;perspective:1000px}usa-depth>*{transform:var(--usa-depth-rot,none);transform-style:preserve-3d}usa-depth [data-depth]{will-change:transform;transition:transform 0.12s linear}@media (prefers-reduced-motion:reduce){usa-depth [data-depth]{transform:none !important}}";
6
6
 
@@ -2,15 +2,15 @@
2
2
 
3
3
  var components_fx = require('./fx.cjs');
4
4
  var shared = require('../chunks/shared-jkgRH-Hx.cjs');
5
- var player = require('../chunks/player-PS6_FzNw.cjs');
5
+ var player = require('../chunks/player-C2n17sdH.cjs');
6
6
  var generative = require('../chunks/generative-BHIj-NU0.cjs');
7
- var audio = require('../chunks/audio-EXUoijsG.cjs');
8
- var registry = require('../chunks/registry-DehBVRDV.cjs');
9
- var base = require('../chunks/base-BaQV-2ha.cjs');
7
+ var audio = require('../chunks/audio-cgWbDkoY.cjs');
8
+ var registry = require('../chunks/registry-BVklOepd.cjs');
9
+ var base = require('../chunks/base-DoRUZBy-.cjs');
10
10
  var components_tokens = require('./tokens.cjs');
11
- require('../chunks/builtins-xalxV2d5.cjs');
12
- require('../chunks/core-BGAyaY6L.cjs');
13
- require('../chunks/fx-lBGVtQO1.cjs');
11
+ require('../chunks/builtins-ClXshqj-.cjs');
12
+ require('../chunks/core-CwO835Wm.cjs');
13
+ require('../chunks/fx-C-XjLOTc.cjs');
14
14
 
15
15
  const CARD_FX = [
16
16
  {
@@ -1,17 +1,17 @@
1
1
  import { registerBuiltinEffects } from './fx.js';
2
2
  import { P as PALETTE, o as overlay, a as all, b as origin, s as spawn, r as rand, f as fxLayer } from '../chunks/shared-CkKHWrtJ.js';
3
- import { d as defineStory, a as definePlayer } from '../chunks/player-DxvCYo7Q.js';
4
- export { A as ANIMATION_FORMAT, S as STORY_TEMPLATES, c as createPlayer, f as formatCount, n as normalizeAnimation, s as storyProgress } from '../chunks/player-DxvCYo7Q.js';
3
+ import { d as defineStory, a as definePlayer } from '../chunks/player-YzQGkKaW.js';
4
+ export { A as ANIMATION_FORMAT, S as STORY_TEMPLATES, c as createPlayer, f as formatCount, n as normalizeAnimation, s as storyProgress } from '../chunks/player-YzQGkKaW.js';
5
5
  import { c as canvasBackground, h as hexRgb, G as GENERATIVE_FX } from '../chunks/generative-2LhxG5BJ.js';
6
6
  export { n as noise2 } from '../chunks/generative-2LhxG5BJ.js';
7
- import { A as AUDIO_FX, d as defineAudio } from '../chunks/audio-DcPvT2Kh.js';
8
- export { b as bindBeat, c as createBeatDetector, a as disableAudio, e as enableAudio, g as getAudio, o as onBeat } from '../chunks/audio-DcPvT2Kh.js';
9
- import { playEffect, bindEffect, registerEffects } from '../chunks/registry-CyKExAmE.js';
10
- import { u as defineElement, x as adoptStyles } from '../chunks/base-2-yYc93C.js';
7
+ import { A as AUDIO_FX, d as defineAudio } from '../chunks/audio-CynhhWDi.js';
8
+ export { b as bindBeat, c as createBeatDetector, a as disableAudio, e as enableAudio, g as getAudio, o as onBeat } from '../chunks/audio-CynhhWDi.js';
9
+ import { playEffect, bindEffect, registerEffects } from '../chunks/registry-CnO7ZVPK.js';
10
+ import { u as defineElement, B as adoptStyles } from '../chunks/base-CLuqlLfG.js';
11
11
  import { applyMotionTokens, motionTokensToVars, mergeMotionTokens } from './tokens.js';
12
- import '../chunks/builtins-HlqAkK0f.js';
13
- import '../chunks/core-D5rU0CV6.js';
14
- import '../chunks/fx-CMxWNwH8.js';
12
+ import '../chunks/builtins-Bs4smevg.js';
13
+ import '../chunks/core-CiN5sqxB.js';
14
+ import '../chunks/fx-CQv3IxMf.js';
15
15
 
16
16
  const CARD_FX = [
17
17
  {
@@ -0,0 +1,266 @@
1
+ 'use strict';
2
+
3
+ var base = require('../chunks/base-DoRUZBy-.cjs');
4
+
5
+ /**
6
+ * `motionary/engine` (= `motionary/components/engine`, 8.0) — the unified
7
+ * timeline engine and SSR hydration animations.
8
+ *
9
+ * - **`motionClock`** — the one clock every component, effect and frame loop
10
+ * runs on: `rate` (slow-mo / fast-forward), `pause()` / `resume()` /
11
+ * `toggle()`, `time`, `onChange()`. Pausing it freezes every animation
12
+ * started by Motionary on the page.
13
+ * - **`createTimeline()`** — sequence animations on that clock:
14
+ * `add(target, keyframes, options, position)` with positions `1200`
15
+ * (ms), `'+=200'` / `'-=100'` (after / overlapping the previous end) or
16
+ * `'<'` / `'<+=80'` (with the previous start); `play()`, `pause()`,
17
+ * `seek(ms)`, `progress` (0–1, settable), `duration`, `finished`.
18
+ * - **`hydrateMotion()`** — animate server-rendered `[data-usa-hydrate]`
19
+ * markup in on hydration without a flash: `ssrHead()` gives the `<style>`
20
+ * + one-line `<script>` for the document head (content stays visible
21
+ * without JS, and a CSS fallback reveals it after 3 s if JS never runs).
22
+ */
23
+ /** The shared motion clock (8.0). */
24
+ const motionClock = {
25
+ get rate() {
26
+ return base.getClock().rate;
27
+ },
28
+ set rate(r) {
29
+ base.setClock({ rate: r });
30
+ },
31
+ get paused() {
32
+ return base.getClock().paused;
33
+ },
34
+ /** Clock time in ms (advances with the shared frame loop, scaled by `rate`, frozen while paused). */
35
+ get time() {
36
+ return base.getClock().time;
37
+ },
38
+ pause() {
39
+ base.setClock({ paused: true });
40
+ },
41
+ resume() {
42
+ base.setClock({ paused: false });
43
+ },
44
+ toggle() {
45
+ base.setClock({ paused: !base.getClock().paused });
46
+ },
47
+ onChange: base.onClockChange,
48
+ };
49
+ /** Resolve a timeline position against the previous entry (8.0). */
50
+ function resolvePosition(position, prev, total) {
51
+ if (typeof position === 'number' && Number.isFinite(position))
52
+ return Math.max(0, position);
53
+ const p = String(position ?? '').replace(/\s+/g, '');
54
+ const prevStart = prev ? prev.start : 0;
55
+ const prevEnd = prev ? prev.end : 0;
56
+ let m;
57
+ if (p === '')
58
+ return prev ? prevEnd : 0;
59
+ if (p === '<')
60
+ return prevStart;
61
+ if ((m = p.match(/^<([+-])=(\d+(?:\.\d+)?)$/)))
62
+ return Math.max(0, prevStart + (m[1] === '+' ? 1 : -1) * Number(m[2]));
63
+ if ((m = p.match(/^([+-])=(\d+(?:\.\d+)?)$/)))
64
+ return Math.max(0, prevEnd + (m[1] === '+' ? 1 : -1) * Number(m[2]));
65
+ if (p === '>')
66
+ return total;
67
+ const n = Number(p);
68
+ return Number.isFinite(n) ? Math.max(0, n) : prevEnd;
69
+ }
70
+ const span = (o) => {
71
+ const d = typeof o.duration === 'number' ? o.duration : 0;
72
+ const it = typeof o.iterations === 'number' && Number.isFinite(o.iterations) ? o.iterations : 1;
73
+ return (o.delay || 0) + d * it + (o.endDelay || 0);
74
+ };
75
+ /** Sequence animations on the shared clock (8.0). */
76
+ function createTimeline(defaults = {}) {
77
+ const { autoplay = false, ...base$1 } = defaults;
78
+ const entries = [];
79
+ let anims = [];
80
+ let playing = false;
81
+ let pos = 0;
82
+ let resolveDone = () => undefined;
83
+ let finished = new Promise((r) => (resolveDone = r));
84
+ let timer = 0;
85
+ const duration = () => entries.reduce((m, e) => Math.max(m, e.end), 0);
86
+ const build = () => {
87
+ if (anims.length === entries.length)
88
+ return;
89
+ anims.forEach((a) => a?.cancel());
90
+ anims = entries.map((e) => {
91
+ const a = base.animateWithMotion(e.target, e.keyframes, { fill: 'both', ...e.options, delay: e.start + (e.options.delay || 0) });
92
+ if (a) {
93
+ a.pause();
94
+ a.currentTime = pos;
95
+ }
96
+ return a;
97
+ });
98
+ };
99
+ const done = () => {
100
+ playing = false;
101
+ pos = duration();
102
+ resolveDone();
103
+ };
104
+ const tl = {
105
+ get entries() {
106
+ return entries;
107
+ },
108
+ get duration() {
109
+ return duration();
110
+ },
111
+ get playing() {
112
+ return playing;
113
+ },
114
+ get progress() {
115
+ const live = anims.find((a) => a && typeof a.currentTime === 'number');
116
+ const t = live && playing ? Number(live.currentTime) : pos;
117
+ const d = duration();
118
+ return d ? Math.min(1, Math.max(0, t / d)) : 0;
119
+ },
120
+ set progress(p) {
121
+ tl.seek(Math.min(1, Math.max(0, p)) * duration());
122
+ },
123
+ get finished() {
124
+ return finished;
125
+ },
126
+ add(target, keyframes, options = {}, position) {
127
+ const opts = { ...base$1, ...(typeof options === 'number' ? { duration: options } : options) };
128
+ const list = !target ? [] : target instanceof Element ? [target] : Array.from(target);
129
+ const prev = entries.length ? entries[entries.length - 1] : null;
130
+ let start = resolvePosition(position, prev, duration());
131
+ const stagger = opts.stagger ? Number(opts.stagger) : 0;
132
+ delete opts.stagger;
133
+ for (const el of list) {
134
+ entries.push({ target: el, keyframes, options: opts, start, end: start + span(opts) });
135
+ start += stagger;
136
+ }
137
+ anims.forEach((a) => a?.cancel());
138
+ anims = [];
139
+ return tl;
140
+ },
141
+ play() {
142
+ if (pos >= duration())
143
+ pos = 0;
144
+ if (playing)
145
+ return tl;
146
+ if (pos === 0 && anims.length) {
147
+ anims.forEach((a) => a?.cancel());
148
+ anims = [];
149
+ finished = new Promise((r) => (resolveDone = r));
150
+ }
151
+ build();
152
+ playing = true;
153
+ const live = anims.filter(Boolean);
154
+ live.forEach((a) => {
155
+ a.currentTime = pos;
156
+ a.play();
157
+ });
158
+ clearTimeout(timer);
159
+ if (!live.length || base.prefersReducedMotion()) {
160
+ tl.seek(duration());
161
+ done();
162
+ }
163
+ else
164
+ Promise.all(live.map((a) => a.finished.catch(() => undefined))).then(() => playing && done());
165
+ return tl;
166
+ },
167
+ pause() {
168
+ const live = anims.find((a) => a && typeof a.currentTime === 'number');
169
+ if (live)
170
+ pos = Number(live.currentTime);
171
+ anims.forEach((a) => a?.pause());
172
+ playing = false;
173
+ return tl;
174
+ },
175
+ seek(ms) {
176
+ pos = Math.min(duration(), Math.max(0, ms));
177
+ build();
178
+ anims.forEach((a) => {
179
+ if (!a)
180
+ return;
181
+ a.currentTime = pos;
182
+ if (!playing)
183
+ a.pause();
184
+ });
185
+ return tl;
186
+ },
187
+ restart() {
188
+ anims.forEach((a) => a?.cancel());
189
+ anims = [];
190
+ pos = 0;
191
+ playing = false;
192
+ finished = new Promise((r) => (resolveDone = r));
193
+ return tl.play();
194
+ },
195
+ cancel() {
196
+ anims.forEach((a) => a?.cancel());
197
+ anims = [];
198
+ playing = false;
199
+ pos = 0;
200
+ },
201
+ };
202
+ if (autoplay)
203
+ queueMicrotask(() => entries.length && tl.play());
204
+ return tl;
205
+ }
206
+ /** Hydration presets for `data-usa-hydrate="…"` (8.0). */
207
+ const HYDRATE_PRESETS = {
208
+ fade: [{ opacity: 0 }, { opacity: 1 }],
209
+ 'fade-up': [{ opacity: 0, transform: 'translateY(16px)' }, { opacity: 1, transform: 'none' }],
210
+ 'fade-down': [{ opacity: 0, transform: 'translateY(-16px)' }, { opacity: 1, transform: 'none' }],
211
+ scale: [{ opacity: 0, transform: 'scale(.94)' }, { opacity: 1, transform: 'none' }],
212
+ blur: [{ opacity: 0, filter: 'blur(8px)' }, { opacity: 1, filter: 'none' }],
213
+ 'slide-left': [{ opacity: 0, transform: 'translateX(24px)' }, { opacity: 1, transform: 'none' }],
214
+ };
215
+ /**
216
+ * CSS that keeps `[data-usa-hydrate]` hidden only while JS is on and the
217
+ * page has not hydrated yet (`html.usa-js`), with a 3 s CSS fallback so the
218
+ * content can never stay invisible (8.0).
219
+ */
220
+ const HYDRATION_CSS = 'html.usa-js [data-usa-hydrate]:not([data-usa-hydrated]),html.usa-js usa-hydrate:not([data-usa-hydrated])>*{opacity:0;animation:usa-hydrate-fallback 0s 3s forwards}@keyframes usa-hydrate-fallback{to{opacity:1}}@media (prefers-reduced-motion:reduce){html.usa-js [data-usa-hydrate]:not([data-usa-hydrated]),html.usa-js usa-hydrate:not([data-usa-hydrated])>*{opacity:1;animation:none}}';
221
+ /** `<style>` + inline `<script>` for the SSR document head (8.0). Pass a CSP `nonce` if you use one. */
222
+ function ssrHead(nonce) {
223
+ const n = nonce ? ` nonce="${String(nonce).replace(/"/g, '')}"` : '';
224
+ return `<style data-usa-hydration${n}>${HYDRATION_CSS}</style><script${n}>document.documentElement.classList.add('usa-js')</script>`;
225
+ }
226
+ /**
227
+ * Animate server-rendered `[data-usa-hydrate]` elements in (document order,
228
+ * staggered; per-element `data-usa-delay`), mark them `data-usa-hydrated`
229
+ * and emit `usa:hydrated` on the root. Returns the timeline (8.0).
230
+ */
231
+ function hydrateMotion(root = document, options = {}) {
232
+ const { stagger = 60, duration = 600, preset = 'fade-up', easing = 'cubic-bezier(.2,.8,.2,1)' } = options;
233
+ if (typeof document !== 'undefined' && !document.querySelector('style[data-usa-hydration]')) {
234
+ const s = document.createElement('style');
235
+ s.setAttribute('data-usa-hydration', '');
236
+ s.textContent = HYDRATION_CSS;
237
+ document.head?.appendChild(s);
238
+ }
239
+ const els = Array.from(root.querySelectorAll('[data-usa-hydrate]:not([data-usa-hydrated])'));
240
+ const tl = createTimeline({ easing, duration });
241
+ els.forEach((el, i) => {
242
+ const name = el.getAttribute('data-usa-hydrate') || preset;
243
+ const frames = HYDRATE_PRESETS[name] || HYDRATE_PRESETS[preset] || HYDRATE_PRESETS['fade-up'];
244
+ const extra = Number(el.getAttribute('data-usa-delay')) || 0;
245
+ tl.add(el, frames, { duration, easing }, i * stagger + extra);
246
+ });
247
+ // mark first so the hiding CSS lets go; the animation's backwards fill holds the first frame
248
+ tl.play();
249
+ els.forEach((el) => el.setAttribute('data-usa-hydrated', ''));
250
+ const target = root.dispatchEvent ? root : document;
251
+ tl.finished.then(() => target.dispatchEvent?.(new CustomEvent('usa:hydrated', { detail: { count: els.length }, bubbles: true })));
252
+ return tl;
253
+ }
254
+
255
+ exports.getClock = base.getClock;
256
+ exports.onClockChange = base.onClockChange;
257
+ exports.setClock = base.setClock;
258
+ exports.trackAnimation = base.trackAnimation;
259
+ exports.HYDRATE_PRESETS = HYDRATE_PRESETS;
260
+ exports.HYDRATION_CSS = HYDRATION_CSS;
261
+ exports.createTimeline = createTimeline;
262
+ exports.hydrateMotion = hydrateMotion;
263
+ exports.motionClock = motionClock;
264
+ exports.resolvePosition = resolvePosition;
265
+ exports.ssrHead = ssrHead;
266
+ //# sourceMappingURL=engine.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.cjs","sources":["../../src/components/engine/index.ts"],"sourcesContent":["/**\n * `motionary/engine` (= `motionary/components/engine`, 8.0) — the unified\n * timeline engine and SSR hydration animations.\n *\n * - **`motionClock`** — the one clock every component, effect and frame loop\n * runs on: `rate` (slow-mo / fast-forward), `pause()` / `resume()` /\n * `toggle()`, `time`, `onChange()`. Pausing it freezes every animation\n * started by Motionary on the page.\n * - **`createTimeline()`** — sequence animations on that clock:\n * `add(target, keyframes, options, position)` with positions `1200`\n * (ms), `'+=200'` / `'-=100'` (after / overlapping the previous end) or\n * `'<'` / `'<+=80'` (with the previous start); `play()`, `pause()`,\n * `seek(ms)`, `progress` (0–1, settable), `duration`, `finished`.\n * - **`hydrateMotion()`** — animate server-rendered `[data-usa-hydrate]`\n * markup in on hydration without a flash: `ssrHead()` gives the `<style>`\n * + one-line `<script>` for the document head (content stays visible\n * without JS, and a CSS fallback reveals it after 3 s if JS never runs).\n */\nimport { animateWithMotion, getClock, setClock, onClockChange, prefersReducedMotion } from '../base';\n\nexport { getClock, setClock, onClockChange, trackAnimation } from '../base';\n\n/** The shared motion clock (8.0). */\nexport const motionClock = {\n get rate(): number {\n return getClock().rate;\n },\n set rate(r: number) {\n setClock({ rate: r });\n },\n get paused(): boolean {\n return getClock().paused;\n },\n /** Clock time in ms (advances with the shared frame loop, scaled by `rate`, frozen while paused). */\n get time(): number {\n return getClock().time;\n },\n pause(): void {\n setClock({ paused: true });\n },\n resume(): void {\n setClock({ paused: false });\n },\n toggle(): void {\n setClock({ paused: !getClock().paused });\n },\n onChange: onClockChange,\n};\n\nexport type TimelinePosition = number | string;\nexport interface TimelineEntry {\n target: Element;\n keyframes: Keyframe[];\n options: KeyframeAnimationOptions;\n start: number;\n end: number;\n}\nexport interface MotionTimeline {\n readonly entries: readonly TimelineEntry[];\n readonly duration: number;\n readonly playing: boolean;\n progress: number;\n readonly finished: Promise<void>;\n add(target: Element | Element[] | NodeListOf<Element> | null, keyframes: Keyframe[], options?: number | KeyframeAnimationOptions, position?: TimelinePosition): MotionTimeline;\n play(): MotionTimeline;\n pause(): MotionTimeline;\n seek(ms: number): MotionTimeline;\n restart(): MotionTimeline;\n cancel(): void;\n}\n\n/** Resolve a timeline position against the previous entry (8.0). */\nexport function resolvePosition(position: TimelinePosition | undefined, prev: { start: number; end: number } | null, total: number): number {\n if (typeof position === 'number' && Number.isFinite(position)) return Math.max(0, position);\n const p = String(position ?? '').replace(/\\s+/g, '');\n const prevStart = prev ? prev.start : 0;\n const prevEnd = prev ? prev.end : 0;\n let m: RegExpMatchArray | null;\n if (p === '') return prev ? prevEnd : 0;\n if (p === '<') return prevStart;\n if ((m = p.match(/^<([+-])=(\\d+(?:\\.\\d+)?)$/))) return Math.max(0, prevStart + (m[1] === '+' ? 1 : -1) * Number(m[2]));\n if ((m = p.match(/^([+-])=(\\d+(?:\\.\\d+)?)$/))) return Math.max(0, prevEnd + (m[1] === '+' ? 1 : -1) * Number(m[2]));\n if (p === '>') return total;\n const n = Number(p);\n return Number.isFinite(n) ? Math.max(0, n) : prevEnd;\n}\n\nconst span = (o: KeyframeAnimationOptions): number => {\n const d = typeof o.duration === 'number' ? o.duration : 0;\n const it = typeof o.iterations === 'number' && Number.isFinite(o.iterations) ? o.iterations : 1;\n return (o.delay || 0) + d * it + (o.endDelay || 0);\n};\n\n/** Sequence animations on the shared clock (8.0). */\nexport function createTimeline(defaults: KeyframeAnimationOptions & { autoplay?: boolean } = {}): MotionTimeline {\n const { autoplay = false, ...base } = defaults;\n const entries: TimelineEntry[] = [];\n let anims: (Animation | null)[] = [];\n let playing = false;\n let pos = 0;\n let resolveDone: () => void = () => undefined;\n let finished = new Promise<void>((r) => (resolveDone = r));\n let timer = 0 as unknown as ReturnType<typeof setTimeout>;\n\n const duration = () => entries.reduce((m, e) => Math.max(m, e.end), 0);\n const build = () => {\n if (anims.length === entries.length) return;\n anims.forEach((a) => a?.cancel());\n anims = entries.map((e) => {\n const a = animateWithMotion(e.target, e.keyframes, { fill: 'both', ...e.options, delay: e.start + (e.options.delay || 0) });\n if (a) {\n a.pause();\n a.currentTime = pos;\n }\n return a;\n });\n };\n const done = () => {\n playing = false;\n pos = duration();\n resolveDone();\n };\n const tl: MotionTimeline = {\n get entries() {\n return entries;\n },\n get duration() {\n return duration();\n },\n get playing() {\n return playing;\n },\n get progress() {\n const live = anims.find((a) => a && typeof a.currentTime === 'number');\n const t = live && playing ? Number(live.currentTime) : pos;\n const d = duration();\n return d ? Math.min(1, Math.max(0, t / d)) : 0;\n },\n set progress(p: number) {\n tl.seek(Math.min(1, Math.max(0, p)) * duration());\n },\n get finished() {\n return finished;\n },\n add(target, keyframes, options = {}, position) {\n const opts: KeyframeAnimationOptions = { ...base, ...(typeof options === 'number' ? { duration: options } : options) };\n const list = !target ? [] : target instanceof Element ? [target] : Array.from(target as ArrayLike<Element>);\n const prev = entries.length ? entries[entries.length - 1] : null;\n let start = resolvePosition(position, prev, duration());\n const stagger = (opts as any).stagger ? Number((opts as any).stagger) : 0;\n delete (opts as any).stagger;\n for (const el of list) {\n entries.push({ target: el, keyframes, options: opts, start, end: start + span(opts) });\n start += stagger;\n }\n anims.forEach((a) => a?.cancel());\n anims = [];\n return tl;\n },\n play() {\n if (pos >= duration()) pos = 0;\n if (playing) return tl;\n if (pos === 0 && anims.length) {\n anims.forEach((a) => a?.cancel());\n anims = [];\n finished = new Promise<void>((r) => (resolveDone = r));\n }\n build();\n playing = true;\n const live = anims.filter(Boolean) as Animation[];\n live.forEach((a) => {\n a.currentTime = pos;\n a.play();\n });\n clearTimeout(timer);\n if (!live.length || prefersReducedMotion()) {\n tl.seek(duration());\n done();\n } else Promise.all(live.map((a) => a.finished.catch(() => undefined))).then(() => playing && done());\n return tl;\n },\n pause() {\n const live = anims.find((a) => a && typeof a.currentTime === 'number');\n if (live) pos = Number(live.currentTime);\n anims.forEach((a) => a?.pause());\n playing = false;\n return tl;\n },\n seek(ms) {\n pos = Math.min(duration(), Math.max(0, ms));\n build();\n anims.forEach((a) => {\n if (!a) return;\n a.currentTime = pos;\n if (!playing) a.pause();\n });\n return tl;\n },\n restart() {\n anims.forEach((a) => a?.cancel());\n anims = [];\n pos = 0;\n playing = false;\n finished = new Promise<void>((r) => (resolveDone = r));\n return tl.play();\n },\n cancel() {\n anims.forEach((a) => a?.cancel());\n anims = [];\n playing = false;\n pos = 0;\n },\n };\n if (autoplay) queueMicrotask(() => entries.length && tl.play());\n return tl;\n}\n\n/** Hydration presets for `data-usa-hydrate=\"…\"` (8.0). */\nexport const HYDRATE_PRESETS: Record<string, Keyframe[]> = {\n fade: [{ opacity: 0 }, { opacity: 1 }],\n 'fade-up': [{ opacity: 0, transform: 'translateY(16px)' }, { opacity: 1, transform: 'none' }],\n 'fade-down': [{ opacity: 0, transform: 'translateY(-16px)' }, { opacity: 1, transform: 'none' }],\n scale: [{ opacity: 0, transform: 'scale(.94)' }, { opacity: 1, transform: 'none' }],\n blur: [{ opacity: 0, filter: 'blur(8px)' }, { opacity: 1, filter: 'none' }],\n 'slide-left': [{ opacity: 0, transform: 'translateX(24px)' }, { opacity: 1, transform: 'none' }],\n};\n\n/**\n * CSS that keeps `[data-usa-hydrate]` hidden only while JS is on and the\n * page has not hydrated yet (`html.usa-js`), with a 3 s CSS fallback so the\n * content can never stay invisible (8.0).\n */\nexport const HYDRATION_CSS =\n 'html.usa-js [data-usa-hydrate]:not([data-usa-hydrated]),html.usa-js usa-hydrate:not([data-usa-hydrated])>*{opacity:0;animation:usa-hydrate-fallback 0s 3s forwards}@keyframes usa-hydrate-fallback{to{opacity:1}}@media (prefers-reduced-motion:reduce){html.usa-js [data-usa-hydrate]:not([data-usa-hydrated]),html.usa-js usa-hydrate:not([data-usa-hydrated])>*{opacity:1;animation:none}}';\n\n/** `<style>` + inline `<script>` for the SSR document head (8.0). Pass a CSP `nonce` if you use one. */\nexport function ssrHead(nonce?: string): string {\n const n = nonce ? ` nonce=\"${String(nonce).replace(/\"/g, '')}\"` : '';\n return `<style data-usa-hydration${n}>${HYDRATION_CSS}</style><script${n}>document.documentElement.classList.add('usa-js')</script>`;\n}\n\nexport interface HydrateOptions {\n /** Delay between elements in document order (ms). Default 60. */\n stagger?: number;\n /** Duration per element (ms). Default 600. */\n duration?: number;\n /** Fallback preset when `data-usa-hydrate` is empty. Default `fade-up`. */\n preset?: string;\n easing?: string;\n /** Run as a timeline you can pause / seek (returned). */\n}\n\n/**\n * Animate server-rendered `[data-usa-hydrate]` elements in (document order,\n * staggered; per-element `data-usa-delay`), mark them `data-usa-hydrated`\n * and emit `usa:hydrated` on the root. Returns the timeline (8.0).\n */\nexport function hydrateMotion(root: ParentNode = document, options: HydrateOptions = {}): MotionTimeline {\n const { stagger = 60, duration = 600, preset = 'fade-up', easing = 'cubic-bezier(.2,.8,.2,1)' } = options;\n if (typeof document !== 'undefined' && !document.querySelector('style[data-usa-hydration]')) {\n const s = document.createElement('style');\n s.setAttribute('data-usa-hydration', '');\n s.textContent = HYDRATION_CSS;\n document.head?.appendChild(s);\n }\n const els = Array.from(root.querySelectorAll<HTMLElement>('[data-usa-hydrate]:not([data-usa-hydrated])'));\n const tl = createTimeline({ easing, duration });\n els.forEach((el, i) => {\n const name = el.getAttribute('data-usa-hydrate') || preset;\n const frames = HYDRATE_PRESETS[name] || HYDRATE_PRESETS[preset] || HYDRATE_PRESETS['fade-up'];\n const extra = Number(el.getAttribute('data-usa-delay')) || 0;\n tl.add(el, frames, { duration, easing }, i * stagger + extra);\n });\n // mark first so the hiding CSS lets go; the animation's backwards fill holds the first frame\n tl.play();\n els.forEach((el) => el.setAttribute('data-usa-hydrated', ''));\n const target = (root as any).dispatchEvent ? (root as unknown as EventTarget) : document;\n tl.finished.then(() => target.dispatchEvent?.(new CustomEvent('usa:hydrated', { detail: { count: els.length }, bubbles: true })));\n return tl;\n}\n"],"names":["getClock","setClock","onClockChange","base","animateWithMotion","prefersReducedMotion"],"mappings":"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"}