motionary 0.0.0-stage → 6.2.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 (374) hide show
  1. package/CHANGELOG.md +803 -0
  2. package/LICENSE +21 -0
  3. package/README.md +218 -2
  4. package/README_ja.md +219 -0
  5. package/README_zh.md +219 -0
  6. package/bin/usa-codemod-5.mjs +79 -0
  7. package/bin/usa-codemod-6.mjs +146 -0
  8. package/dist/chunks/base-BaQV-2ha.cjs +436 -0
  9. package/dist/chunks/base-BaQV-2ha.cjs.map +1 -0
  10. package/dist/chunks/base-C_3cAoRz.js +404 -0
  11. package/dist/chunks/base-C_3cAoRz.js.map +1 -0
  12. package/dist/chunks/bind-B_CTL6Qn.js +22 -0
  13. package/dist/chunks/bind-B_CTL6Qn.js.map +1 -0
  14. package/dist/chunks/bind-Ui43-n2d.cjs +25 -0
  15. package/dist/chunks/bind-Ui43-n2d.cjs.map +1 -0
  16. package/dist/chunks/core-B5T0dhFH.cjs +920 -0
  17. package/dist/chunks/core-B5T0dhFH.cjs.map +1 -0
  18. package/dist/chunks/core-BGAyaY6L.cjs +265 -0
  19. package/dist/chunks/core-BGAyaY6L.cjs.map +1 -0
  20. package/dist/chunks/core-D7cVumUu.js +909 -0
  21. package/dist/chunks/core-D7cVumUu.js.map +1 -0
  22. package/dist/chunks/core-VEBw36QK.js +260 -0
  23. package/dist/chunks/core-VEBw36QK.js.map +1 -0
  24. package/dist/chunks/core-ps8uvYuN.js +181 -0
  25. package/dist/chunks/core-ps8uvYuN.js.map +1 -0
  26. package/dist/chunks/core-zq17EeCI.cjs +185 -0
  27. package/dist/chunks/core-zq17EeCI.cjs.map +1 -0
  28. package/dist/chunks/fx-Bs6IrV4Q.js +109 -0
  29. package/dist/chunks/fx-Bs6IrV4Q.js.map +1 -0
  30. package/dist/chunks/fx-lBGVtQO1.cjs +114 -0
  31. package/dist/chunks/fx-lBGVtQO1.cjs.map +1 -0
  32. package/dist/chunks/generative-D2YyhaeO.js +336 -0
  33. package/dist/chunks/generative-D2YyhaeO.js.map +1 -0
  34. package/dist/chunks/generative-DzIZq-_g.cjs +348 -0
  35. package/dist/chunks/generative-DzIZq-_g.cjs.map +1 -0
  36. package/dist/chunks/gpu-Bu7qwugO.js +380 -0
  37. package/dist/chunks/gpu-Bu7qwugO.js.map +1 -0
  38. package/dist/chunks/gpu-CenK2l6b.cjs +387 -0
  39. package/dist/chunks/gpu-CenK2l6b.cjs.map +1 -0
  40. package/dist/chunks/index-tags-DucKMQr_.js +26 -0
  41. package/dist/chunks/index-tags-DucKMQr_.js.map +1 -0
  42. package/dist/chunks/index-tags-wv0R_vkO.cjs +28 -0
  43. package/dist/chunks/index-tags-wv0R_vkO.cjs.map +1 -0
  44. package/dist/chunks/presets-BYBVJVeP.js +226 -0
  45. package/dist/chunks/presets-BYBVJVeP.js.map +1 -0
  46. package/dist/chunks/presets-CUHys3sK.cjs +233 -0
  47. package/dist/chunks/presets-CUHys3sK.cjs.map +1 -0
  48. package/dist/chunks/registry-CKNLQpwd.js +121 -0
  49. package/dist/chunks/registry-CKNLQpwd.js.map +1 -0
  50. package/dist/chunks/registry-DehBVRDV.cjs +131 -0
  51. package/dist/chunks/registry-DehBVRDV.cjs.map +1 -0
  52. package/dist/chunks/spring-CbvHfVtP.js +219 -0
  53. package/dist/chunks/spring-CbvHfVtP.js.map +1 -0
  54. package/dist/chunks/spring-Dgx187Vh.cjs +232 -0
  55. package/dist/chunks/spring-Dgx187Vh.cjs.map +1 -0
  56. package/dist/chunks/stagger-CCFyhzSw.cjs +86 -0
  57. package/dist/chunks/stagger-CCFyhzSw.cjs.map +1 -0
  58. package/dist/chunks/stagger-DtMKo2SK.js +84 -0
  59. package/dist/chunks/stagger-DtMKo2SK.js.map +1 -0
  60. package/dist/chunks/variants-BhjyddG8.cjs +39 -0
  61. package/dist/chunks/variants-BhjyddG8.cjs.map +1 -0
  62. package/dist/chunks/variants-DRlKVHvu.js +35 -0
  63. package/dist/chunks/variants-DRlKVHvu.js.map +1 -0
  64. package/dist/components/a11y.cjs +276 -0
  65. package/dist/components/a11y.cjs.map +1 -0
  66. package/dist/components/a11y.d.cts +131 -0
  67. package/dist/components/a11y.d.ts +131 -0
  68. package/dist/components/a11y.js +259 -0
  69. package/dist/components/a11y.js.map +1 -0
  70. package/dist/components/angular.cjs +76 -0
  71. package/dist/components/angular.cjs.map +1 -0
  72. package/dist/components/angular.d.cts +1734 -0
  73. package/dist/components/angular.d.ts +1734 -0
  74. package/dist/components/angular.js +70 -0
  75. package/dist/components/angular.js.map +1 -0
  76. package/dist/components/background.cjs +659 -0
  77. package/dist/components/background.cjs.map +1 -0
  78. package/dist/components/background.css +9 -0
  79. package/dist/components/background.d.cts +166 -0
  80. package/dist/components/background.d.ts +166 -0
  81. package/dist/components/background.js +647 -0
  82. package/dist/components/background.js.map +1 -0
  83. package/dist/components/bridge.cjs +154 -0
  84. package/dist/components/bridge.cjs.map +1 -0
  85. package/dist/components/bridge.d.cts +63 -0
  86. package/dist/components/bridge.d.ts +63 -0
  87. package/dist/components/bridge.js +147 -0
  88. package/dist/components/bridge.js.map +1 -0
  89. package/dist/components/cards.cjs +561 -0
  90. package/dist/components/cards.cjs.map +1 -0
  91. package/dist/components/cards.css +6 -0
  92. package/dist/components/cards.d.cts +115 -0
  93. package/dist/components/cards.d.ts +115 -0
  94. package/dist/components/cards.js +554 -0
  95. package/dist/components/cards.js.map +1 -0
  96. package/dist/components/click.cjs +877 -0
  97. package/dist/components/click.cjs.map +1 -0
  98. package/dist/components/click.css +9 -0
  99. package/dist/components/click.d.cts +218 -0
  100. package/dist/components/click.d.ts +218 -0
  101. package/dist/components/click.js +863 -0
  102. package/dist/components/click.js.map +1 -0
  103. package/dist/components/depth.cjs +250 -0
  104. package/dist/components/depth.cjs.map +1 -0
  105. package/dist/components/depth.css +3 -0
  106. package/dist/components/depth.d.cts +86 -0
  107. package/dist/components/depth.d.ts +86 -0
  108. package/dist/components/depth.js +242 -0
  109. package/dist/components/depth.js.map +1 -0
  110. package/dist/components/effects.cjs +2258 -0
  111. package/dist/components/effects.cjs.map +1 -0
  112. package/dist/components/effects.d.cts +545 -0
  113. package/dist/components/effects.d.ts +545 -0
  114. package/dist/components/effects.js +2200 -0
  115. package/dist/components/effects.js.map +1 -0
  116. package/dist/components/feedback.cjs +442 -0
  117. package/dist/components/feedback.cjs.map +1 -0
  118. package/dist/components/feedback.css +7 -0
  119. package/dist/components/feedback.d.cts +144 -0
  120. package/dist/components/feedback.d.ts +144 -0
  121. package/dist/components/feedback.js +433 -0
  122. package/dist/components/feedback.js.map +1 -0
  123. package/dist/components/fx-gpu.cjs +12 -0
  124. package/dist/components/fx-gpu.cjs.map +1 -0
  125. package/dist/components/fx-gpu.d.cts +63 -0
  126. package/dist/components/fx-gpu.d.ts +63 -0
  127. package/dist/components/fx-gpu.js +5 -0
  128. package/dist/components/fx-gpu.js.map +1 -0
  129. package/dist/components/fx.cjs +169 -0
  130. package/dist/components/fx.cjs.map +1 -0
  131. package/dist/components/fx.css +3 -0
  132. package/dist/components/fx.d.cts +114 -0
  133. package/dist/components/fx.d.ts +114 -0
  134. package/dist/components/fx.js +156 -0
  135. package/dist/components/fx.js.map +1 -0
  136. package/dist/components/fx2.cjs +25 -0
  137. package/dist/components/fx2.cjs.map +1 -0
  138. package/dist/components/fx2.d.cts +136 -0
  139. package/dist/components/fx2.d.ts +136 -0
  140. package/dist/components/fx2.js +17 -0
  141. package/dist/components/fx2.js.map +1 -0
  142. package/dist/components/gesture.cjs +209 -0
  143. package/dist/components/gesture.cjs.map +1 -0
  144. package/dist/components/gesture.css +3 -0
  145. package/dist/components/gesture.d.cts +134 -0
  146. package/dist/components/gesture.d.ts +134 -0
  147. package/dist/components/gesture.js +203 -0
  148. package/dist/components/gesture.js.map +1 -0
  149. package/dist/components/interaction.cjs +424 -0
  150. package/dist/components/interaction.cjs.map +1 -0
  151. package/dist/components/interaction.css +8 -0
  152. package/dist/components/interaction.d.cts +115 -0
  153. package/dist/components/interaction.d.ts +115 -0
  154. package/dist/components/interaction.js +416 -0
  155. package/dist/components/interaction.js.map +1 -0
  156. package/dist/components/jsx.cjs +3 -0
  157. package/dist/components/jsx.cjs.map +1 -0
  158. package/dist/components/jsx.d.cts +53 -0
  159. package/dist/components/jsx.d.ts +53 -0
  160. package/dist/components/jsx.js +2 -0
  161. package/dist/components/jsx.js.map +1 -0
  162. package/dist/components/layout.cjs +257 -0
  163. package/dist/components/layout.cjs.map +1 -0
  164. package/dist/components/layout.css +3 -0
  165. package/dist/components/layout.d.cts +99 -0
  166. package/dist/components/layout.d.ts +99 -0
  167. package/dist/components/layout.js +249 -0
  168. package/dist/components/layout.js.map +1 -0
  169. package/dist/components/lazy.cjs +92 -0
  170. package/dist/components/lazy.cjs.map +1 -0
  171. package/dist/components/lazy.d.cts +48 -0
  172. package/dist/components/lazy.d.ts +48 -0
  173. package/dist/components/lazy.js +87 -0
  174. package/dist/components/lazy.js.map +1 -0
  175. package/dist/components/lite.cjs +11095 -0
  176. package/dist/components/lite.cjs.map +1 -0
  177. package/dist/components/lite.d.cts +4 -0
  178. package/dist/components/lite.d.ts +4 -0
  179. package/dist/components/lite.js +10827 -0
  180. package/dist/components/lite.js.map +1 -0
  181. package/dist/components/packs.cjs +192 -0
  182. package/dist/components/packs.cjs.map +1 -0
  183. package/dist/components/packs.css +3 -0
  184. package/dist/components/packs.d.cts +72 -0
  185. package/dist/components/packs.d.ts +72 -0
  186. package/dist/components/packs.js +184 -0
  187. package/dist/components/packs.js.map +1 -0
  188. package/dist/components/page.cjs +824 -0
  189. package/dist/components/page.cjs.map +1 -0
  190. package/dist/components/page.css +11 -0
  191. package/dist/components/page.d.cts +249 -0
  192. package/dist/components/page.d.ts +249 -0
  193. package/dist/components/page.js +799 -0
  194. package/dist/components/page.js.map +1 -0
  195. package/dist/components/perf.cjs +120 -0
  196. package/dist/components/perf.cjs.map +1 -0
  197. package/dist/components/perf.d.cts +98 -0
  198. package/dist/components/perf.d.ts +98 -0
  199. package/dist/components/perf.js +110 -0
  200. package/dist/components/perf.js.map +1 -0
  201. package/dist/components/physics.cjs +448 -0
  202. package/dist/components/physics.cjs.map +1 -0
  203. package/dist/components/physics.css +5 -0
  204. package/dist/components/physics.d.cts +189 -0
  205. package/dist/components/physics.d.ts +189 -0
  206. package/dist/components/physics.js +430 -0
  207. package/dist/components/physics.js.map +1 -0
  208. package/dist/components/react.cjs +96 -0
  209. package/dist/components/react.cjs.map +1 -0
  210. package/dist/components/react.d.cts +18 -0
  211. package/dist/components/react.d.ts +18 -0
  212. package/dist/components/react.js +91 -0
  213. package/dist/components/react.js.map +1 -0
  214. package/dist/components/reveal.cjs +362 -0
  215. package/dist/components/reveal.cjs.map +1 -0
  216. package/dist/components/reveal.css +5 -0
  217. package/dist/components/reveal.d.cts +105 -0
  218. package/dist/components/reveal.d.ts +105 -0
  219. package/dist/components/reveal.js +353 -0
  220. package/dist/components/reveal.js.map +1 -0
  221. package/dist/components/solid.cjs +86 -0
  222. package/dist/components/solid.cjs.map +1 -0
  223. package/dist/components/solid.d.cts +1751 -0
  224. package/dist/components/solid.d.ts +1751 -0
  225. package/dist/components/solid.js +82 -0
  226. package/dist/components/solid.js.map +1 -0
  227. package/dist/components/svelte.cjs +68 -0
  228. package/dist/components/svelte.cjs.map +1 -0
  229. package/dist/components/svelte.d.cts +1733 -0
  230. package/dist/components/svelte.d.ts +1733 -0
  231. package/dist/components/svelte.js +64 -0
  232. package/dist/components/svelte.js.map +1 -0
  233. package/dist/components/svg.cjs +359 -0
  234. package/dist/components/svg.cjs.map +1 -0
  235. package/dist/components/svg.css +3 -0
  236. package/dist/components/svg.d.cts +113 -0
  237. package/dist/components/svg.d.ts +113 -0
  238. package/dist/components/svg.js +347 -0
  239. package/dist/components/svg.js.map +1 -0
  240. package/dist/components/text.cjs +968 -0
  241. package/dist/components/text.cjs.map +1 -0
  242. package/dist/components/text.css +8 -0
  243. package/dist/components/text.d.cts +342 -0
  244. package/dist/components/text.d.ts +342 -0
  245. package/dist/components/text.js +947 -0
  246. package/dist/components/text.js.map +1 -0
  247. package/dist/components/timeline.cjs +109 -0
  248. package/dist/components/timeline.cjs.map +1 -0
  249. package/dist/components/timeline.css +3 -0
  250. package/dist/components/timeline.d.cts +155 -0
  251. package/dist/components/timeline.d.ts +155 -0
  252. package/dist/components/timeline.js +103 -0
  253. package/dist/components/timeline.js.map +1 -0
  254. package/dist/components/tokens.cjs +226 -0
  255. package/dist/components/tokens.cjs.map +1 -0
  256. package/dist/components/tokens.d.cts +74 -0
  257. package/dist/components/tokens.d.ts +74 -0
  258. package/dist/components/tokens.js +211 -0
  259. package/dist/components/tokens.js.map +1 -0
  260. package/dist/components/transitions.cjs +430 -0
  261. package/dist/components/transitions.cjs.map +1 -0
  262. package/dist/components/transitions.css +5 -0
  263. package/dist/components/transitions.d.cts +126 -0
  264. package/dist/components/transitions.d.ts +126 -0
  265. package/dist/components/transitions.js +423 -0
  266. package/dist/components/transitions.js.map +1 -0
  267. package/dist/components/ui.cjs +1050 -0
  268. package/dist/components/ui.cjs.map +1 -0
  269. package/dist/components/ui.css +14 -0
  270. package/dist/components/ui.d.cts +224 -0
  271. package/dist/components/ui.d.ts +224 -0
  272. package/dist/components/ui.js +1034 -0
  273. package/dist/components/ui.js.map +1 -0
  274. package/dist/components/vue.cjs +67 -0
  275. package/dist/components/vue.cjs.map +1 -0
  276. package/dist/components/vue.d.cts +1722 -0
  277. package/dist/components/vue.d.ts +1722 -0
  278. package/dist/components/vue.js +64 -0
  279. package/dist/components/vue.js.map +1 -0
  280. package/dist/components/webgl.cjs +459 -0
  281. package/dist/components/webgl.cjs.map +1 -0
  282. package/dist/components/webgl.css +3 -0
  283. package/dist/components/webgl.d.cts +133 -0
  284. package/dist/components/webgl.d.ts +133 -0
  285. package/dist/components/webgl.js +442 -0
  286. package/dist/components/webgl.js.map +1 -0
  287. package/dist/components/widgets.cjs +591 -0
  288. package/dist/components/widgets.cjs.map +1 -0
  289. package/dist/components/widgets.d.cts +110 -0
  290. package/dist/components/widgets.d.ts +110 -0
  291. package/dist/components/widgets.js +581 -0
  292. package/dist/components/widgets.js.map +1 -0
  293. package/dist/components.cjs +351 -0
  294. package/dist/components.cjs.map +1 -0
  295. package/dist/components.css +75 -0
  296. package/dist/components.d.cts +2997 -0
  297. package/dist/components.d.ts +2997 -0
  298. package/dist/components.js +106 -0
  299. package/dist/components.js.map +1 -0
  300. package/dist/components.umd.js +23 -0
  301. package/dist/components.umd.js.map +1 -0
  302. package/dist/element.cjs +97 -0
  303. package/dist/element.cjs.map +1 -0
  304. package/dist/element.d.cts +215 -0
  305. package/dist/element.d.ts +215 -0
  306. package/dist/element.js +95 -0
  307. package/dist/element.js.map +1 -0
  308. package/dist/element.umd.js +2 -0
  309. package/dist/element.umd.js.map +1 -0
  310. package/dist/index.cjs +149 -0
  311. package/dist/index.cjs.map +1 -0
  312. package/dist/index.d.cts +425 -0
  313. package/dist/index.d.ts +425 -0
  314. package/dist/index.js +131 -0
  315. package/dist/index.js.map +1 -0
  316. package/dist/index.umd.js +15 -0
  317. package/dist/index.umd.js.map +1 -0
  318. package/dist/presets/extended.cjs +243 -0
  319. package/dist/presets/extended.cjs.map +1 -0
  320. package/dist/presets/extended.d.cts +37 -0
  321. package/dist/presets/extended.d.ts +37 -0
  322. package/dist/presets/extended.js +239 -0
  323. package/dist/presets/extended.js.map +1 -0
  324. package/dist/presets-extended.umd.js +2 -0
  325. package/dist/presets-extended.umd.js.map +1 -0
  326. package/dist/react.cjs +68 -0
  327. package/dist/react.cjs.map +1 -0
  328. package/dist/react.d.cts +158 -0
  329. package/dist/react.d.ts +158 -0
  330. package/dist/react.js +65 -0
  331. package/dist/react.js.map +1 -0
  332. package/dist/solid.cjs +93 -0
  333. package/dist/solid.cjs.map +1 -0
  334. package/dist/solid.d.cts +249 -0
  335. package/dist/solid.d.ts +249 -0
  336. package/dist/solid.js +89 -0
  337. package/dist/solid.js.map +1 -0
  338. package/dist/svelte.cjs +66 -0
  339. package/dist/svelte.cjs.map +1 -0
  340. package/dist/svelte.d.cts +243 -0
  341. package/dist/svelte.d.ts +243 -0
  342. package/dist/svelte.js +63 -0
  343. package/dist/svelte.js.map +1 -0
  344. package/dist/vue.cjs +62 -0
  345. package/dist/vue.cjs.map +1 -0
  346. package/dist/vue.d.cts +158 -0
  347. package/dist/vue.d.ts +158 -0
  348. package/dist/vue.js +60 -0
  349. package/dist/vue.js.map +1 -0
  350. package/dist/widgets.umd.js +2 -0
  351. package/dist/widgets.umd.js.map +1 -0
  352. package/docs/API.md +147 -0
  353. package/docs/ROADMAP.md +14 -0
  354. package/docs/accessibility.md +60 -0
  355. package/docs/components.md +564 -0
  356. package/docs/deprecations.md +30 -0
  357. package/docs/frameworks-ssr.md +100 -0
  358. package/docs/hybrid-apps.md +145 -0
  359. package/docs/images/showcase-detail.png +0 -0
  360. package/docs/images/showcase-grid.png +0 -0
  361. package/docs/images/showcase-mobile.png +0 -0
  362. package/docs/migration-from-aos.md +67 -0
  363. package/docs/migration-from-gsap-scrolltrigger.md +80 -0
  364. package/docs/motion-tokens.css +31 -0
  365. package/docs/motion-tokens.md +46 -0
  366. package/docs/motion.tokens.json +132 -0
  367. package/docs/performance.md +24 -0
  368. package/docs/presets.md +310 -0
  369. package/docs/upgrading-3.md +21 -0
  370. package/docs/upgrading-4.md +65 -0
  371. package/docs/upgrading-5.md +31 -0
  372. package/docs/upgrading-6.md +32 -0
  373. package/docs/windows-apps.md +119 -0
  374. package/package.json +562 -4
@@ -0,0 +1,18 @@
1
+ interface ReactLike {
2
+ createElement: (type: any, props?: any, ...children: any[]) => any;
3
+ forwardRef: (render: (props: any, ref: any) => any) => any;
4
+ useRef: <T>(v: T) => {
5
+ current: T;
6
+ };
7
+ useEffect: (fn: () => void | (() => void), deps?: unknown[]) => void;
8
+ useLayoutEffect?: (fn: () => void | (() => void), deps?: unknown[]) => void;
9
+ }
10
+ /** `usa-auto-animate` → `UsaAutoAnimate` */
11
+ declare const pascal: (tag: string) => string;
12
+ /** `onUsaChange` → `usa:change`, `onUsaDragEnd` → `usa:drag-end`; `onChange` → `change`. */
13
+ declare function eventName(prop: string): string | null;
14
+ /** All `<usa-*>` tags shipped by the package. */
15
+ declare const USA_TAGS: string[];
16
+ declare function createUsaComponents(React: ReactLike): Record<string, any>;
17
+
18
+ export { USA_TAGS, createUsaComponents, eventName, pascal };
@@ -0,0 +1,91 @@
1
+ import { C as COMPONENT_CATEGORIES } from '../chunks/index-tags-DucKMQr_.js';
2
+
3
+ /**
4
+ * motionary/components/react — React wrappers for every `<usa-*>`
5
+ * element (v2.9). React 19 handles custom elements natively; for React 18
6
+ * (and nicer DX in both) `createUsaComponents(React)` returns typed wrapper
7
+ * components that set **properties** (`checked`, `value`, `state`, …),
8
+ * forward `ref`, and map `onUsaChange`-style props to `usa:change` events.
9
+ *
10
+ * ```tsx
11
+ * import * as React from 'react';
12
+ * import { createUsaComponents } from 'motionary/components/react';
13
+ * import { defineComponents } from 'motionary/components';
14
+ * defineComponents();
15
+ * const { UsaButton, UsaToggle } = createUsaComponents(React);
16
+ * <UsaButton deform="squash" onUsaSubmit={(e) => e.detail.done(true)}><button>Pay</button></UsaButton>
17
+ * ```
18
+ *
19
+ * JSX types for the raw tags (`<usa-card effect="flip">`) come from
20
+ * `motionary/components/jsx` (see `UsaIntrinsicElements`).
21
+ */
22
+ /** `usa-auto-animate` → `UsaAutoAnimate` */
23
+ const pascal = (tag) => tag.replace(/(^|-)([a-z0-9])/g, (_, __, c) => c.toUpperCase());
24
+ /** `onUsaChange` → `usa:change`, `onUsaDragEnd` → `usa:drag-end`; `onChange` → `change`. */
25
+ function eventName(prop) {
26
+ const m = /^on([A-Z].*)$/.exec(prop);
27
+ if (!m)
28
+ return null;
29
+ const kebab = m[1].replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
30
+ return kebab.startsWith('usa-') ? `usa:${kebab.slice(4)}` : kebab;
31
+ }
32
+ /** Props written as DOM properties (not attributes) when given non-string values. */
33
+ const PROPS = new Set(['checked', 'value', 'state', 'open', 'liked', 'count', 'loading', 'flipped', 'selected', 'index', 'indeterminate']);
34
+ /** All `<usa-*>` tags shipped by the package. */
35
+ const USA_TAGS = Object.values(COMPONENT_CATEGORIES).flat();
36
+ function createUsaComponents(React) {
37
+ const useIso = React.useLayoutEffect || React.useEffect;
38
+ const make = (tag) => {
39
+ const C = React.forwardRef((props, ref) => {
40
+ const inner = React.useRef(null);
41
+ const attrs = {};
42
+ const events = [];
43
+ const propsSet = [];
44
+ for (const [k, v] of Object.entries(props)) {
45
+ if (k === 'children')
46
+ continue;
47
+ const ev = typeof v === 'function' ? eventName(k) : null;
48
+ if (ev)
49
+ events.push([ev, v]);
50
+ else if (PROPS.has(k) && typeof v !== 'string')
51
+ propsSet.push([k, v]);
52
+ else if (k === 'className')
53
+ attrs.class = v;
54
+ else if (typeof v === 'boolean') {
55
+ if (v)
56
+ attrs[k] = '';
57
+ }
58
+ else
59
+ attrs[k] = v;
60
+ }
61
+ useIso(() => {
62
+ const el = inner.current;
63
+ if (!el)
64
+ return;
65
+ for (const [k, v] of propsSet)
66
+ el[k] = v;
67
+ });
68
+ useIso(() => {
69
+ const el = inner.current;
70
+ if (!el)
71
+ return;
72
+ events.forEach(([n, f]) => el.addEventListener(n, f));
73
+ return () => events.forEach(([n, f]) => el.removeEventListener(n, f));
74
+ });
75
+ const setRef = (node) => {
76
+ inner.current = node;
77
+ if (typeof ref === 'function')
78
+ ref(node);
79
+ else if (ref)
80
+ ref.current = node;
81
+ };
82
+ return React.createElement(tag, { ...attrs, ref: setRef }, props.children);
83
+ });
84
+ C.displayName = pascal(tag);
85
+ return C;
86
+ };
87
+ return Object.fromEntries(USA_TAGS.map((t) => [pascal(t), make(t)]));
88
+ }
89
+
90
+ export { USA_TAGS, createUsaComponents, eventName, pascal };
91
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.js","sources":["../../src/components/frameworks/react.ts"],"sourcesContent":["/**\n * motionary/components/react — React wrappers for every `<usa-*>`\n * element (v2.9). React 19 handles custom elements natively; for React 18\n * (and nicer DX in both) `createUsaComponents(React)` returns typed wrapper\n * components that set **properties** (`checked`, `value`, `state`, …),\n * forward `ref`, and map `onUsaChange`-style props to `usa:change` events.\n *\n * ```tsx\n * import * as React from 'react';\n * import { createUsaComponents } from 'motionary/components/react';\n * import { defineComponents } from 'motionary/components';\n * defineComponents();\n * const { UsaButton, UsaToggle } = createUsaComponents(React);\n * <UsaButton deform=\"squash\" onUsaSubmit={(e) => e.detail.done(true)}><button>Pay</button></UsaButton>\n * ```\n *\n * JSX types for the raw tags (`<usa-card effect=\"flip\">`) come from\n * `motionary/components/jsx` (see `UsaIntrinsicElements`).\n */\nimport { COMPONENT_CATEGORIES } from '../index-tags';\n\ntype AnyProps = Record<string, any>;\ninterface ReactLike {\n createElement: (type: any, props?: any, ...children: any[]) => any;\n forwardRef: (render: (props: any, ref: any) => any) => any;\n useRef: <T>(v: T) => { current: T };\n useEffect: (fn: () => void | (() => void), deps?: unknown[]) => void;\n useLayoutEffect?: (fn: () => void | (() => void), deps?: unknown[]) => void;\n}\n\n/** `usa-auto-animate` → `UsaAutoAnimate` */\nexport const pascal = (tag: string): string => tag.replace(/(^|-)([a-z0-9])/g, (_, __, c) => c.toUpperCase());\n/** `onUsaChange` → `usa:change`, `onUsaDragEnd` → `usa:drag-end`; `onChange` → `change`. */\nexport function eventName(prop: string): string | null {\n const m = /^on([A-Z].*)$/.exec(prop);\n if (!m) return null;\n const kebab = m[1].replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n return kebab.startsWith('usa-') ? `usa:${kebab.slice(4)}` : kebab;\n}\n\n/** Props written as DOM properties (not attributes) when given non-string values. */\nconst PROPS = new Set(['checked', 'value', 'state', 'open', 'liked', 'count', 'loading', 'flipped', 'selected', 'index', 'indeterminate']);\n\n/** All `<usa-*>` tags shipped by the package. */\nexport const USA_TAGS: string[] = Object.values(COMPONENT_CATEGORIES).flat() as string[];\n\nexport function createUsaComponents(React: ReactLike): Record<string, any> {\n const useIso = React.useLayoutEffect || React.useEffect;\n const make = (tag: string) => {\n const C = React.forwardRef((props: AnyProps, ref: any) => {\n const inner = React.useRef<HTMLElement | null>(null);\n const attrs: AnyProps = {};\n const events: [string, any][] = [];\n const propsSet: [string, any][] = [];\n for (const [k, v] of Object.entries(props)) {\n if (k === 'children') continue;\n const ev = typeof v === 'function' ? eventName(k) : null;\n if (ev) events.push([ev, v]);\n else if (PROPS.has(k) && typeof v !== 'string') propsSet.push([k, v]);\n else if (k === 'className') attrs.class = v;\n else if (typeof v === 'boolean') {\n if (v) attrs[k] = '';\n } else attrs[k] = v;\n }\n useIso(() => {\n const el = inner.current as any;\n if (!el) return;\n for (const [k, v] of propsSet) el[k] = v;\n });\n useIso(() => {\n const el = inner.current;\n if (!el) return;\n events.forEach(([n, f]) => el.addEventListener(n, f));\n return () => events.forEach(([n, f]) => el.removeEventListener(n, f));\n });\n const setRef = (node: HTMLElement | null) => {\n inner.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) ref.current = node;\n };\n return React.createElement(tag, { ...attrs, ref: setRef }, props.children);\n });\n (C as any).displayName = pascal(tag);\n return C;\n };\n return Object.fromEntries(USA_TAGS.map((t) => [pascal(t), make(t)]));\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,362 @@
1
+ 'use strict';
2
+
3
+ var base = require('../chunks/base-BaQV-2ha.cjs');
4
+
5
+ /** Entrance effects shared by `<usa-reveal>` and `<usa-stagger>` (transform / opacity / filter only). */
6
+ const REVEAL_EFFECTS = [
7
+ 'fade',
8
+ 'fade-up',
9
+ 'fade-down',
10
+ 'fade-left',
11
+ 'fade-right',
12
+ 'zoom-in',
13
+ 'zoom-out',
14
+ 'blur',
15
+ 'blur-up',
16
+ 'flip-up',
17
+ 'flip-left',
18
+ 'rise',
19
+ ];
20
+ /** The "from" keyframe of an effect; the "to" keyframe is the element's natural state. */
21
+ function revealFrom(effect, distance = 32) {
22
+ const d = `${distance}px`;
23
+ switch (effect) {
24
+ case 'fade':
25
+ return { opacity: 0 };
26
+ case 'fade-down':
27
+ return { opacity: 0, transform: `translate3d(0,-${d},0)` };
28
+ case 'fade-left':
29
+ return { opacity: 0, transform: `translate3d(-${d},0,0)` };
30
+ case 'fade-right':
31
+ return { opacity: 0, transform: `translate3d(${d},0,0)` };
32
+ case 'zoom-in':
33
+ return { opacity: 0, transform: 'scale(0.86)' };
34
+ case 'zoom-out':
35
+ return { opacity: 0, transform: 'scale(1.14)' };
36
+ case 'blur':
37
+ return { opacity: 0, filter: 'blur(12px)' };
38
+ case 'blur-up':
39
+ return { opacity: 0, filter: 'blur(10px)', transform: `translate3d(0,${d},0)` };
40
+ case 'flip-up':
41
+ return { opacity: 0, transform: 'perspective(800px) rotateX(-55deg)', transformOrigin: '50% 100%' };
42
+ case 'flip-left':
43
+ return { opacity: 0, transform: 'perspective(800px) rotateY(55deg)', transformOrigin: '0% 50%' };
44
+ case 'rise':
45
+ return { opacity: 0, transform: `translate3d(0,${distance * 1.5}px,0) scale(0.96)` };
46
+ case 'fade-up':
47
+ default:
48
+ return { opacity: 0, transform: `translate3d(0,${d},0)` };
49
+ }
50
+ }
51
+ /** Keyframes from the effect to the natural state. */
52
+ function revealKeyframes(effect, distance) {
53
+ // Any preset registered with the scroll library (core, `presets/extended`, your own)
54
+ const p = REVEAL_EFFECTS.includes(effect) ? null : globalThis[Symbol.for('use-scroll-animate.presets')]?.[effect];
55
+ if (p)
56
+ return [p.from, ...(p.frames || []), p.to];
57
+ const from = revealFrom(effect, distance);
58
+ const to = {};
59
+ for (const k of Object.keys(from)) {
60
+ if (k === 'opacity')
61
+ to.opacity = 1;
62
+ else if (k === 'transform')
63
+ to.transform = 'none';
64
+ else if (k === 'filter')
65
+ to.filter = 'none';
66
+ else if (k === 'transformOrigin')
67
+ to.transformOrigin = from.transformOrigin;
68
+ }
69
+ return [from, to];
70
+ }
71
+
72
+ var css$2 = "usa-reveal,usa-stagger{display:block}usa-reveal[data-state=\"hidden\"],usa-stagger[data-state=\"hidden\"]>*{opacity:0}@media (prefers-reduced-motion:reduce){usa-reveal[data-state=\"hidden\"],usa-stagger[data-state=\"hidden\"]>*{opacity:1}}";
73
+
74
+ function defineReveal(tag = 'usa-reveal') {
75
+ return base.defineElement(tag, (Base) => class UsaReveal extends Base {
76
+ constructor() {
77
+ super(...arguments);
78
+ this._anim = null;
79
+ }
80
+ static get observedAttributes() {
81
+ return ['effect', 'distance', 'repeat', 'threshold', 'root-margin'];
82
+ }
83
+ get effect() {
84
+ return this.str('effect', 'fade-up');
85
+ }
86
+ set effect(v) {
87
+ this.setAttribute('effect', v);
88
+ }
89
+ get revealed() {
90
+ return this.getAttribute('data-state') !== 'hidden';
91
+ }
92
+ mount() {
93
+ if (this.reduced) {
94
+ this.setAttribute('data-state', 'shown');
95
+ return;
96
+ }
97
+ if (this.getAttribute('data-state') !== 'shown')
98
+ this.setAttribute('data-state', 'hidden');
99
+ this.inView((visible) => {
100
+ if (visible) {
101
+ this.emit('enter');
102
+ if (!this.revealed)
103
+ this.reveal();
104
+ }
105
+ else {
106
+ this.emit('leave');
107
+ if (this.flag('repeat') && this.revealed)
108
+ this.reset();
109
+ }
110
+ }, { threshold: this.num('threshold', 0.15), rootMargin: this.str('root-margin', '0px') });
111
+ }
112
+ unmount() {
113
+ this._anim?.cancel();
114
+ this._anim = null;
115
+ }
116
+ reveal() {
117
+ this._anim?.cancel();
118
+ this.setAttribute('data-state', 'shown');
119
+ if (this.reduced)
120
+ return Promise.resolve();
121
+ const a = this.motion(this, revealKeyframes(this.effect, this.num('distance', 32)), {
122
+ duration: this.num('duration', 700),
123
+ delay: this.num('delay', 0),
124
+ easing: this.str('easing', base.EASE_OUT),
125
+ fill: 'backwards',
126
+ });
127
+ this._anim = a;
128
+ return new Promise((resolve) => {
129
+ const done = () => {
130
+ if (this._anim === a)
131
+ this._anim = null;
132
+ this.emit('complete');
133
+ resolve();
134
+ };
135
+ if (!a)
136
+ done();
137
+ else
138
+ a.onfinish = done;
139
+ });
140
+ }
141
+ reset() {
142
+ this._anim?.cancel();
143
+ this._anim = null;
144
+ if (!this.reduced)
145
+ this.setAttribute('data-state', 'hidden');
146
+ }
147
+ }, { id: 'reveal', text: css$2 });
148
+ }
149
+
150
+ function defineStagger(tag = 'usa-stagger') {
151
+ return base.defineElement(tag, (Base) => class UsaStagger extends Base {
152
+ constructor() {
153
+ super(...arguments);
154
+ this._anims = [];
155
+ }
156
+ static get observedAttributes() {
157
+ return ['effect', 'repeat', 'threshold'];
158
+ }
159
+ mount() {
160
+ if (this.reduced) {
161
+ this.setAttribute('data-state', 'shown');
162
+ return;
163
+ }
164
+ if (this.getAttribute('data-state') !== 'shown')
165
+ this.setAttribute('data-state', 'hidden');
166
+ this.inView((visible) => {
167
+ if (visible && this.getAttribute('data-state') === 'hidden') {
168
+ this.emit('enter');
169
+ this.reveal();
170
+ }
171
+ else if (!visible && this.flag('repeat'))
172
+ this.reset();
173
+ }, { threshold: this.num('threshold', 0.1) });
174
+ }
175
+ unmount() {
176
+ this.cancel();
177
+ }
178
+ cancel() {
179
+ this._anims.splice(0).forEach((a) => a.cancel());
180
+ }
181
+ reveal() {
182
+ this.cancel();
183
+ this.setAttribute('data-state', 'shown');
184
+ const kids = Array.from(this.children);
185
+ if (this.reduced || !kids.length)
186
+ return Promise.resolve();
187
+ const frames = revealKeyframes(this.str('effect', 'fade-up'), this.num('distance', 24));
188
+ const interval = this.num('interval', 70);
189
+ const base$1 = this.num('delay', 0);
190
+ const duration = this.num('duration', 600);
191
+ const easing = this.str('easing', base.EASE_OUT);
192
+ const anims = kids
193
+ .map((kid, i) => this.motion(kid, frames, { duration, easing, delay: base$1 + i * interval, fill: 'backwards' }))
194
+ .filter((a) => !!a);
195
+ this._anims = anims;
196
+ const last = anims[anims.length - 1];
197
+ return new Promise((resolve) => {
198
+ const done = () => {
199
+ this.emit('complete');
200
+ resolve();
201
+ };
202
+ if (!last)
203
+ done();
204
+ else
205
+ last.onfinish = done;
206
+ });
207
+ }
208
+ reset() {
209
+ this.cancel();
210
+ if (!this.reduced)
211
+ this.setAttribute('data-state', 'hidden');
212
+ }
213
+ }, { id: 'reveal', text: css$2 });
214
+ }
215
+
216
+ var css$1 = "usa-scroll-progress{display:block;position:fixed;left:0;right:0;top:0;z-index:1000;height:var(--usa-progress-height,3px);background:var(--usa-progress-track,transparent);pointer-events:none;contain:strict}usa-scroll-progress[position=\"bottom\"]{top:auto;bottom:0}usa-scroll-progress[position=\"inline\"]{position:relative;z-index:auto;border-radius:999px;overflow:hidden}usa-scroll-progress .usa-progress-fill{display:block;height:100%;transform:scaleX(0);transform-origin:0 50%;background:var(--usa-progress-color,linear-gradient(90deg,#7c5cff,#22d3ee));will-change:transform}";
217
+
218
+ /** Progress (0–1) of `target` scrolling through the viewport, or of the page. */
219
+ function readScrollProgress(target) {
220
+ if (typeof window === 'undefined')
221
+ return 0;
222
+ const vh = window.innerHeight || document.documentElement.clientHeight;
223
+ if (target) {
224
+ const r = target.getBoundingClientRect();
225
+ const total = r.height - vh;
226
+ return total <= 0 ? (r.top <= 0 ? 1 : 0) : base.clamp(-r.top / total, 0, 1);
227
+ }
228
+ const doc = document.documentElement;
229
+ const max = doc.scrollHeight - vh;
230
+ return max <= 0 ? 0 : base.clamp((window.scrollY || doc.scrollTop) / max, 0, 1);
231
+ }
232
+ function defineScrollProgress(tag = 'usa-scroll-progress') {
233
+ return base.defineElement(tag, (Base) => class UsaScrollProgress extends Base {
234
+ constructor() {
235
+ super(...arguments);
236
+ this._bar = null;
237
+ this._p = -1;
238
+ this._frame = 0;
239
+ }
240
+ static get observedAttributes() {
241
+ return ['target', 'label'];
242
+ }
243
+ get progress() {
244
+ return Math.max(0, this._p);
245
+ }
246
+ mount() {
247
+ if (!this._bar) {
248
+ this._bar = document.createElement('span');
249
+ this._bar.className = 'usa-progress-fill';
250
+ this.replaceChildren(this._bar);
251
+ }
252
+ this.setAttribute('role', 'progressbar');
253
+ this.setAttribute('aria-valuemin', '0');
254
+ this.setAttribute('aria-valuemax', '100');
255
+ if (!this.hasAttribute('aria-label'))
256
+ this.setAttribute('aria-label', this.str('label', 'Reading progress'));
257
+ const schedule = () => {
258
+ if (!this._frame)
259
+ this._frame = base.raf(() => ((this._frame = 0), this.update()));
260
+ };
261
+ this.listen(window, 'scroll', schedule, { passive: true });
262
+ this.listen(window, 'resize', schedule, { passive: true });
263
+ this.update();
264
+ }
265
+ unmount() {
266
+ base.caf(this._frame);
267
+ this._frame = 0;
268
+ }
269
+ update() {
270
+ const sel = this.getAttribute('target');
271
+ const target = sel ? document.querySelector(sel) : null;
272
+ const p = readScrollProgress(target);
273
+ if (Math.abs(p - this._p) < 0.0005)
274
+ return;
275
+ this._p = p;
276
+ if (this._bar)
277
+ this._bar.style.transform = `scaleX(${p})`;
278
+ this.style.setProperty('--usa-progress', String(p));
279
+ const pct = String(Math.round(p * 100));
280
+ if (this.getAttribute('aria-valuenow') !== pct)
281
+ this.setAttribute('aria-valuenow', pct);
282
+ this.emit('progress', { progress: p });
283
+ }
284
+ }, { id: 'scroll-progress', text: css$1 });
285
+ }
286
+
287
+ var css = "usa-scrolly{display:block;position:relative}usa-scrolly [data-sticky]{position:sticky;top:var(--usa-sticky-top,0px)}usa-scrolly [data-step]{opacity:var(--usa-step-dim,0.35);transition:opacity 0.4s ease}usa-scrolly [data-step][data-active]{opacity:1}@media (prefers-reduced-motion:reduce){usa-scrolly [data-step]{transition:none}}";
288
+
289
+ function defineScrolly(tag = 'usa-scrolly') {
290
+ return base.defineElement(tag, (Base) => class UsaScrolly extends Base {
291
+ constructor() {
292
+ super(...arguments);
293
+ this._active = -1;
294
+ }
295
+ static get observedAttributes() {
296
+ return ['offset'];
297
+ }
298
+ get active() {
299
+ return this._active;
300
+ }
301
+ get steps() {
302
+ return Array.from(this.querySelectorAll('[data-step]'));
303
+ }
304
+ mount() {
305
+ const steps = this.steps;
306
+ if (!steps.length)
307
+ return;
308
+ const offset = base.clamp(this.num('offset', 0.5), 0, 1);
309
+ // A thin trigger band `offset` down the viewport
310
+ const top = Math.min(99, Math.round(offset * 100));
311
+ const rootMargin = `-${top}% 0px -${Math.max(0, 99 - top)}% 0px`;
312
+ if (typeof IntersectionObserver === 'undefined') {
313
+ this.activate(0);
314
+ return;
315
+ }
316
+ const io = new IntersectionObserver((entries) => {
317
+ for (const e of entries)
318
+ if (e.isIntersecting)
319
+ this.activate(steps.indexOf(e.target));
320
+ }, { rootMargin });
321
+ steps.forEach((s) => io.observe(s));
322
+ this.onCleanup(() => io.disconnect());
323
+ if (this._active < 0)
324
+ this.activate(0, true);
325
+ }
326
+ activate(index, silent = false) {
327
+ const steps = this.steps;
328
+ if (index < 0 || index >= steps.length || index === this._active)
329
+ return;
330
+ this._active = index;
331
+ steps.forEach((s, i) => s.toggleAttribute('data-active', i === index));
332
+ const step = steps[index];
333
+ this.setAttribute('active', String(index));
334
+ this.style.setProperty('--usa-step', String(index));
335
+ this.setAttribute('data-step-name', step.dataset.step || String(index));
336
+ if (!silent)
337
+ this.emit('step', { index, step, name: step.dataset.step || '' });
338
+ }
339
+ }, { id: 'scrolly', text: css });
340
+ }
341
+
342
+ /**
343
+ * motionary/components/reveal — entrance & scroll reveal components.
344
+ * `<usa-reveal>`, `<usa-stagger>`, `<usa-scroll-progress>`, `<usa-scrolly>`.
345
+ */
346
+ /** Register every component of this category under its default tag. */
347
+ function defineRevealComponents() {
348
+ defineReveal();
349
+ defineStagger();
350
+ defineScrollProgress();
351
+ defineScrolly();
352
+ }
353
+
354
+ exports.REVEAL_EFFECTS = REVEAL_EFFECTS;
355
+ exports.defineReveal = defineReveal;
356
+ exports.defineRevealComponents = defineRevealComponents;
357
+ exports.defineScrollProgress = defineScrollProgress;
358
+ exports.defineScrolly = defineScrolly;
359
+ exports.defineStagger = defineStagger;
360
+ exports.readScrollProgress = readScrollProgress;
361
+ exports.revealKeyframes = revealKeyframes;
362
+ //# sourceMappingURL=reveal.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reveal.cjs","sources":["../../src/components/reveal/effects.ts","../../src/components/reveal/reveal.ts","../../src/components/reveal/stagger.ts","../../src/components/reveal/scroll-progress.ts","../../src/components/reveal/scrolly.ts","../../src/components/reveal/index.ts"],"sourcesContent":["/** Entrance effects shared by `<usa-reveal>` and `<usa-stagger>` (transform / opacity / filter only). */\n\nexport const REVEAL_EFFECTS = [\n 'fade',\n 'fade-up',\n 'fade-down',\n 'fade-left',\n 'fade-right',\n 'zoom-in',\n 'zoom-out',\n 'blur',\n 'blur-up',\n 'flip-up',\n 'flip-left',\n 'rise',\n] as const;\n\nexport type RevealEffect = (typeof REVEAL_EFFECTS)[number];\n\n/** The \"from\" keyframe of an effect; the \"to\" keyframe is the element's natural state. */\nexport function revealFrom(effect: string, distance = 32): Keyframe {\n const d = `${distance}px`;\n switch (effect) {\n case 'fade':\n return { opacity: 0 };\n case 'fade-down':\n return { opacity: 0, transform: `translate3d(0,-${d},0)` };\n case 'fade-left':\n return { opacity: 0, transform: `translate3d(-${d},0,0)` };\n case 'fade-right':\n return { opacity: 0, transform: `translate3d(${d},0,0)` };\n case 'zoom-in':\n return { opacity: 0, transform: 'scale(0.86)' };\n case 'zoom-out':\n return { opacity: 0, transform: 'scale(1.14)' };\n case 'blur':\n return { opacity: 0, filter: 'blur(12px)' };\n case 'blur-up':\n return { opacity: 0, filter: 'blur(10px)', transform: `translate3d(0,${d},0)` };\n case 'flip-up':\n return { opacity: 0, transform: 'perspective(800px) rotateX(-55deg)', transformOrigin: '50% 100%' };\n case 'flip-left':\n return { opacity: 0, transform: 'perspective(800px) rotateY(55deg)', transformOrigin: '0% 50%' };\n case 'rise':\n return { opacity: 0, transform: `translate3d(0,${distance * 1.5}px,0) scale(0.96)` };\n case 'fade-up':\n default:\n return { opacity: 0, transform: `translate3d(0,${d},0)` };\n }\n}\n\n/** Keyframes from the effect to the natural state. */\nexport function revealKeyframes(effect: string, distance?: number): Keyframe[] {\n // Any preset registered with the scroll library (core, `presets/extended`, your own)\n const p = (REVEAL_EFFECTS as readonly string[]).includes(effect) ? null : (globalThis as any)[Symbol.for('use-scroll-animate.presets')]?.[effect];\n if (p) return [p.from, ...(p.frames || []), p.to];\n const from = revealFrom(effect, distance);\n const to: Keyframe = {};\n for (const k of Object.keys(from)) {\n if (k === 'opacity') to.opacity = 1;\n else if (k === 'transform') to.transform = 'none';\n else if (k === 'filter') to.filter = 'none';\n else if (k === 'transformOrigin') to.transformOrigin = from.transformOrigin;\n }\n return [from, to];\n}\n","import { defineElement, EASE_OUT, type UsaElement } from '../base';\nimport { revealKeyframes, type RevealEffect } from './effects';\nimport css from './reveal.css?raw';\n\n/**\n * `<usa-reveal>` — reveals its content when it scrolls into view.\n *\n * Attributes: `effect` (see {@link RevealEffect}, default `fade-up`),\n * `duration` (ms, 700), `delay` (ms, 0), `distance` (px, 32), `easing`,\n * `threshold` (0–1, 0.15), `root-margin`, `repeat` (hide again when it\n * leaves, replay on re-entry). Events: `usa:enter`, `usa:leave`, `usa:complete`.\n */\nexport interface UsaRevealElement extends UsaElement {\n effect: RevealEffect | string;\n /** Play the entrance now (also called automatically on enter). */\n reveal(): Promise<void>;\n /** Hide again so the next `reveal()` replays the entrance. */\n reset(): void;\n readonly revealed: boolean;\n}\n\nexport function defineReveal(tag = 'usa-reveal'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaReveal extends Base {\n static get observedAttributes(): string[] {\n return ['effect', 'distance', 'repeat', 'threshold', 'root-margin'];\n }\n\n private _anim: Animation | null = null;\n\n get effect(): string {\n return this.str('effect', 'fade-up');\n }\n set effect(v: string) {\n this.setAttribute('effect', v);\n }\n get revealed(): boolean {\n return this.getAttribute('data-state') !== 'hidden';\n }\n\n mount(): void {\n if (this.reduced) {\n this.setAttribute('data-state', 'shown');\n return;\n }\n if (this.getAttribute('data-state') !== 'shown') this.setAttribute('data-state', 'hidden');\n this.inView(\n (visible) => {\n if (visible) {\n this.emit('enter');\n if (!this.revealed) this.reveal();\n } else {\n this.emit('leave');\n if (this.flag('repeat') && this.revealed) this.reset();\n }\n },\n { threshold: this.num('threshold', 0.15), rootMargin: this.str('root-margin', '0px') }\n );\n }\n\n unmount(): void {\n this._anim?.cancel();\n this._anim = null;\n }\n\n reveal(): Promise<void> {\n this._anim?.cancel();\n this.setAttribute('data-state', 'shown');\n if (this.reduced) return Promise.resolve();\n const a = this.motion(this, revealKeyframes(this.effect, this.num('distance', 32)), {\n duration: this.num('duration', 700),\n delay: this.num('delay', 0),\n easing: this.str('easing', EASE_OUT),\n fill: 'backwards',\n });\n this._anim = a;\n return new Promise((resolve) => {\n const done = () => {\n if (this._anim === a) this._anim = null;\n this.emit('complete');\n resolve();\n };\n if (!a) done();\n else a.onfinish = done;\n });\n }\n\n reset(): void {\n this._anim?.cancel();\n this._anim = null;\n if (!this.reduced) this.setAttribute('data-state', 'hidden');\n }\n },\n { id: 'reveal', text: css }\n );\n}\n","import { defineElement, EASE_OUT, type UsaElement } from '../base';\nimport { revealKeyframes } from './effects';\nimport css from './reveal.css?raw';\n\n/**\n * `<usa-stagger>` — reveals its direct children one after another when the\n * list scrolls into view.\n *\n * Attributes: `effect` (default `fade-up`), `interval` (ms between children,\n * 70), `duration` (600), `delay` (0), `distance` (24), `easing`,\n * `threshold` (0.1), `repeat`. Events: `usa:enter`, `usa:complete`.\n */\nexport interface UsaStaggerElement extends UsaElement {\n reveal(): Promise<void>;\n reset(): void;\n}\n\nexport function defineStagger(tag = 'usa-stagger'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaStagger extends Base {\n static get observedAttributes(): string[] {\n return ['effect', 'repeat', 'threshold'];\n }\n\n private _anims: Animation[] = [];\n\n mount(): void {\n if (this.reduced) {\n this.setAttribute('data-state', 'shown');\n return;\n }\n if (this.getAttribute('data-state') !== 'shown') this.setAttribute('data-state', 'hidden');\n this.inView(\n (visible) => {\n if (visible && this.getAttribute('data-state') === 'hidden') {\n this.emit('enter');\n this.reveal();\n } else if (!visible && this.flag('repeat')) this.reset();\n },\n { threshold: this.num('threshold', 0.1) }\n );\n }\n\n unmount(): void {\n this.cancel();\n }\n\n private cancel(): void {\n this._anims.splice(0).forEach((a) => a.cancel());\n }\n\n reveal(): Promise<void> {\n this.cancel();\n this.setAttribute('data-state', 'shown');\n const kids = Array.from(this.children) as HTMLElement[];\n if (this.reduced || !kids.length) return Promise.resolve();\n const frames = revealKeyframes(this.str('effect', 'fade-up'), this.num('distance', 24));\n const interval = this.num('interval', 70);\n const base = this.num('delay', 0);\n const duration = this.num('duration', 600);\n const easing = this.str('easing', EASE_OUT);\n const anims = kids\n .map((kid, i) => this.motion(kid, frames, { duration, easing, delay: base + i * interval, fill: 'backwards' }))\n .filter((a): a is Animation => !!a);\n this._anims = anims;\n const last = anims[anims.length - 1];\n return new Promise((resolve) => {\n const done = () => {\n this.emit('complete');\n resolve();\n };\n if (!last) done();\n else last.onfinish = done;\n });\n }\n\n reset(): void {\n this.cancel();\n if (!this.reduced) this.setAttribute('data-state', 'hidden');\n }\n },\n { id: 'reveal', text: css }\n );\n}\n","import { defineElement, raf, caf, clamp, type UsaElement } from '../base';\nimport css from './scroll-progress.css?raw';\n\n/**\n * `<usa-scroll-progress>` — a reading-progress bar.\n *\n * Attributes: `target` (CSS selector of an article to track; default the\n * whole page), `position` (`top` | `bottom` | `inline`, default `top`),\n * `label` (accessible name, default \"Reading progress\"). Style with\n * `--usa-progress-color`, `--usa-progress-height`, `--usa-progress-track`.\n * Exposes the progress (0–1) as `--usa-progress` on the element and as the\n * `progress` property. Event: `usa:progress` (`detail.progress`).\n *\n * Writes only `transform: scaleX()` (compositor-friendly); reads layout\n * once per animation frame, and only while scrolling.\n */\nexport interface UsaScrollProgressElement extends UsaElement {\n readonly progress: number;\n /** Re-measure (e.g. after content loaded). */\n update(): void;\n}\n\n/** Progress (0–1) of `target` scrolling through the viewport, or of the page. */\nexport function readScrollProgress(target?: Element | null): number {\n if (typeof window === 'undefined') return 0;\n const vh = window.innerHeight || document.documentElement.clientHeight;\n if (target) {\n const r = target.getBoundingClientRect();\n const total = r.height - vh;\n return total <= 0 ? (r.top <= 0 ? 1 : 0) : clamp(-r.top / total, 0, 1);\n }\n const doc = document.documentElement;\n const max = doc.scrollHeight - vh;\n return max <= 0 ? 0 : clamp((window.scrollY || doc.scrollTop) / max, 0, 1);\n}\n\nexport function defineScrollProgress(tag = 'usa-scroll-progress'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaScrollProgress extends Base {\n static get observedAttributes(): string[] {\n return ['target', 'label'];\n }\n\n private _bar: HTMLElement | null = null;\n private _p = -1;\n private _frame = 0;\n\n get progress(): number {\n return Math.max(0, this._p);\n }\n\n mount(): void {\n if (!this._bar) {\n this._bar = document.createElement('span');\n this._bar.className = 'usa-progress-fill';\n this.replaceChildren(this._bar);\n }\n this.setAttribute('role', 'progressbar');\n this.setAttribute('aria-valuemin', '0');\n this.setAttribute('aria-valuemax', '100');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Reading progress'));\n const schedule = () => {\n if (!this._frame) this._frame = raf(() => ((this._frame = 0), this.update()));\n };\n this.listen(window, 'scroll', schedule, { passive: true });\n this.listen(window, 'resize', schedule, { passive: true });\n this.update();\n }\n\n unmount(): void {\n caf(this._frame);\n this._frame = 0;\n }\n\n update(): void {\n const sel = this.getAttribute('target');\n const target = sel ? document.querySelector(sel) : null;\n const p = readScrollProgress(target);\n if (Math.abs(p - this._p) < 0.0005) return;\n this._p = p;\n if (this._bar) this._bar.style.transform = `scaleX(${p})`;\n this.style.setProperty('--usa-progress', String(p));\n const pct = String(Math.round(p * 100));\n if (this.getAttribute('aria-valuenow') !== pct) this.setAttribute('aria-valuenow', pct);\n this.emit('progress', { progress: p });\n }\n },\n { id: 'scroll-progress', text: css }\n );\n}\n","import { defineElement, clamp, type UsaElement } from '../base';\nimport css from './scrolly.css?raw';\n\n/**\n * `<usa-scrolly>` — sticky scrollytelling. A child marked `data-sticky`\n * stays pinned while the `[data-step]` children scroll past; the step that\n * crosses the trigger line becomes active.\n *\n * Attributes: `offset` (trigger line as a fraction of the viewport height,\n * default 0.5), `active` (reflected index of the active step). The active\n * step gets `data-active`; the host gets `--usa-step` and `data-step-name`\n * (the step's `data-step` value). Event: `usa:step` (`detail.index`,\n * `detail.step`, `detail.name`).\n */\nexport interface UsaScrollyElement extends UsaElement {\n readonly active: number;\n readonly steps: HTMLElement[];\n}\n\nexport function defineScrolly(tag = 'usa-scrolly'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaScrolly extends Base {\n static get observedAttributes(): string[] {\n return ['offset'];\n }\n\n private _active = -1;\n\n get active(): number {\n return this._active;\n }\n get steps(): HTMLElement[] {\n return Array.from(this.querySelectorAll<HTMLElement>('[data-step]'));\n }\n\n mount(): void {\n const steps = this.steps;\n if (!steps.length) return;\n const offset = clamp(this.num('offset', 0.5), 0, 1);\n // A thin trigger band `offset` down the viewport\n const top = Math.min(99, Math.round(offset * 100));\n const rootMargin = `-${top}% 0px -${Math.max(0, 99 - top)}% 0px`;\n if (typeof IntersectionObserver === 'undefined') {\n this.activate(0);\n return;\n }\n const io = new IntersectionObserver(\n (entries) => {\n for (const e of entries) if (e.isIntersecting) this.activate(steps.indexOf(e.target as HTMLElement));\n },\n { rootMargin }\n );\n steps.forEach((s) => io.observe(s));\n this.onCleanup(() => io.disconnect());\n if (this._active < 0) this.activate(0, true);\n }\n\n activate(index: number, silent = false): void {\n const steps = this.steps;\n if (index < 0 || index >= steps.length || index === this._active) return;\n this._active = index;\n steps.forEach((s, i) => s.toggleAttribute('data-active', i === index));\n const step = steps[index];\n this.setAttribute('active', String(index));\n this.style.setProperty('--usa-step', String(index));\n this.setAttribute('data-step-name', step.dataset.step || String(index));\n if (!silent) this.emit('step', { index, step, name: step.dataset.step || '' });\n }\n },\n { id: 'scrolly', text: css }\n );\n}\n","/**\n * motionary/components/reveal — entrance & scroll reveal components.\n * `<usa-reveal>`, `<usa-stagger>`, `<usa-scroll-progress>`, `<usa-scrolly>`.\n */\nimport { defineReveal, type UsaRevealElement } from './reveal';\nimport { defineStagger, type UsaStaggerElement } from './stagger';\nimport { defineScrollProgress, type UsaScrollProgressElement } from './scroll-progress';\nimport { defineScrolly, type UsaScrollyElement } from './scrolly';\n\nexport { defineReveal, defineStagger, defineScrollProgress, defineScrolly };\nexport { readScrollProgress } from './scroll-progress';\nexport { REVEAL_EFFECTS, revealKeyframes } from './effects';\nexport type { RevealEffect } from './effects';\nexport type { UsaRevealElement, UsaStaggerElement, UsaScrollProgressElement, UsaScrollyElement };\n\n/** Register every component of this category under its default tag. */\nexport function defineRevealComponents(): void {\n defineReveal();\n defineStagger();\n defineScrollProgress();\n defineScrolly();\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'usa-reveal': UsaRevealElement;\n 'usa-stagger': UsaStaggerElement;\n 'usa-scroll-progress': UsaScrollProgressElement;\n 'usa-scrolly': UsaScrollyElement;\n }\n}\n"],"names":["defineElement","EASE_OUT","css","base","clamp","raf","caf"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /* motionary/components/reveal */
2
+ .usa-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
3
+ usa-reveal,usa-stagger{display:block}usa-reveal[data-state="hidden"],usa-stagger[data-state="hidden"]>*{opacity:0}@media (prefers-reduced-motion:reduce){usa-reveal[data-state="hidden"],usa-stagger[data-state="hidden"]>*{opacity:1}}
4
+ usa-scroll-progress{display:block;position:fixed;left:0;right:0;top:0;z-index:1000;height:var(--usa-progress-height,3px);background:var(--usa-progress-track,transparent);pointer-events:none;contain:strict}usa-scroll-progress[position="bottom"]{top:auto;bottom:0}usa-scroll-progress[position="inline"]{position:relative;z-index:auto;border-radius:999px;overflow:hidden}usa-scroll-progress .usa-progress-fill{display:block;height:100%;transform:scaleX(0);transform-origin:0 50%;background:var(--usa-progress-color,linear-gradient(90deg,#7c5cff,#22d3ee));will-change:transform}
5
+ usa-scrolly{display:block;position:relative}usa-scrolly [data-sticky]{position:sticky;top:var(--usa-sticky-top,0px)}usa-scrolly [data-step]{opacity:var(--usa-step-dim,0.35);transition:opacity 0.4s ease}usa-scrolly [data-step][data-active]{opacity:1}@media (prefers-reduced-motion:reduce){usa-scrolly [data-step]{transition:none}}