@universityofmaryland/web-elements-library 1.4.8 → 1.5.0-beta.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 (1139) hide show
  1. package/README.md +1 -1
  2. package/dist/atomic/actions/icon.d.ts.map +1 -1
  3. package/dist/atomic/actions/icon.js +21 -22
  4. package/dist/atomic/actions/icon.js.map +1 -1
  5. package/dist/atomic/actions/icon.mjs +20 -21
  6. package/dist/atomic/actions/icon.mjs.map +1 -1
  7. package/dist/atomic/actions/text.d.ts.map +1 -1
  8. package/dist/atomic/actions/text.js +22 -19
  9. package/dist/atomic/actions/text.js.map +1 -1
  10. package/dist/atomic/actions/text.mjs +21 -19
  11. package/dist/atomic/actions/text.mjs.map +1 -1
  12. package/dist/atomic/animations/actions/indicator.d.ts.map +1 -1
  13. package/dist/atomic/animations/actions/indicator.js +32 -21
  14. package/dist/atomic/animations/actions/indicator.js.map +1 -1
  15. package/dist/atomic/animations/actions/indicator.mjs +3 -9
  16. package/dist/atomic/animations/actions/indicator.mjs.map +1 -1
  17. package/dist/atomic/animations/brand/card-stack.d.ts.map +1 -1
  18. package/dist/atomic/animations/brand/card-stack.js +42 -32
  19. package/dist/atomic/animations/brand/card-stack.js.map +1 -1
  20. package/dist/atomic/animations/brand/card-stack.mjs +21 -11
  21. package/dist/atomic/animations/brand/card-stack.mjs.map +1 -1
  22. package/dist/atomic/animations/brand/chevron-scroll.js +25 -8
  23. package/dist/atomic/animations/brand/chevron-scroll.js.map +1 -1
  24. package/dist/atomic/animations/brand/chevron-scroll.mjs +1 -1
  25. package/dist/atomic/animations/brand/chevron-scroll.mjs.map +1 -1
  26. package/dist/atomic/assets/image/gif.d.ts.map +1 -1
  27. package/dist/atomic/assets/image/gif.js +5 -8
  28. package/dist/atomic/assets/image/gif.js.map +1 -1
  29. package/dist/atomic/assets/image/gif.mjs +4 -7
  30. package/dist/atomic/assets/image/gif.mjs.map +1 -1
  31. package/dist/atomic/assets/video/observed-auto-play.js +2 -5
  32. package/dist/atomic/assets/video/observed-auto-play.js.map +1 -1
  33. package/dist/atomic/assets/video/observed-auto-play.mjs +2 -5
  34. package/dist/atomic/assets/video/observed-auto-play.mjs.map +1 -1
  35. package/dist/atomic/assets/video/toggle.d.ts.map +1 -1
  36. package/dist/atomic/assets/video/toggle.js +4 -7
  37. package/dist/atomic/assets/video/toggle.js.map +1 -1
  38. package/dist/atomic/assets/video/toggle.mjs +4 -7
  39. package/dist/atomic/assets/video/toggle.mjs.map +1 -1
  40. package/dist/atomic/buttons/fullscreen.js +2 -5
  41. package/dist/atomic/buttons/fullscreen.js.map +1 -1
  42. package/dist/atomic/buttons/fullscreen.mjs +2 -5
  43. package/dist/atomic/buttons/fullscreen.mjs.map +1 -1
  44. package/dist/atomic/events/meta.d.ts.map +1 -1
  45. package/dist/atomic/events/meta.js +8 -10
  46. package/dist/atomic/events/meta.js.map +1 -1
  47. package/dist/atomic/events/meta.mjs +5 -7
  48. package/dist/atomic/events/meta.mjs.map +1 -1
  49. package/dist/atomic/events/sign.js +19 -2
  50. package/dist/atomic/events/sign.js.map +1 -1
  51. package/dist/atomic/events/sign.mjs +2 -2
  52. package/dist/atomic/events/sign.mjs.map +1 -1
  53. package/dist/atomic/layout/block/stacked.d.ts.map +1 -1
  54. package/dist/atomic/layout/block/stacked.js +37 -55
  55. package/dist/atomic/layout/block/stacked.js.map +1 -1
  56. package/dist/atomic/layout/block/stacked.mjs +36 -54
  57. package/dist/atomic/layout/block/stacked.mjs.map +1 -1
  58. package/dist/atomic/layout/overlay/modal.d.ts.map +1 -1
  59. package/dist/atomic/layout/overlay/modal.js +22 -8
  60. package/dist/atomic/layout/overlay/modal.js.map +1 -1
  61. package/dist/atomic/layout/overlay/modal.mjs +3 -6
  62. package/dist/atomic/layout/overlay/modal.mjs.map +1 -1
  63. package/dist/atomic/layout/person/columns.d.ts.map +1 -1
  64. package/dist/atomic/layout/person/columns.js +36 -34
  65. package/dist/atomic/layout/person/columns.js.map +1 -1
  66. package/dist/atomic/layout/person/columns.mjs +35 -33
  67. package/dist/atomic/layout/person/columns.mjs.map +1 -1
  68. package/dist/atomic/text/stat.d.ts.map +1 -1
  69. package/dist/atomic/text/stat.js +47 -29
  70. package/dist/atomic/text/stat.js.map +1 -1
  71. package/dist/atomic/text/stat.mjs +30 -29
  72. package/dist/atomic/text/stat.mjs.map +1 -1
  73. package/dist/atomic/text-lockup/contact.d.ts.map +1 -1
  74. package/dist/atomic/text-lockup/contact.js +13 -15
  75. package/dist/atomic/text-lockup/contact.js.map +1 -1
  76. package/dist/atomic/text-lockup/contact.mjs +18 -20
  77. package/dist/atomic/text-lockup/contact.mjs.map +1 -1
  78. package/dist/atomic/text-lockup/date.d.ts.map +1 -1
  79. package/dist/atomic/text-lockup/date.js +24 -20
  80. package/dist/atomic/text-lockup/date.js.map +1 -1
  81. package/dist/atomic/text-lockup/date.mjs +11 -9
  82. package/dist/atomic/text-lockup/date.mjs.map +1 -1
  83. package/dist/atomic/text-lockup/large.js +7 -7
  84. package/dist/atomic/text-lockup/large.js.map +1 -1
  85. package/dist/atomic/text-lockup/large.mjs +6 -6
  86. package/dist/atomic/text-lockup/large.mjs.map +1 -1
  87. package/dist/atomic/text-lockup/medium.js +9 -9
  88. package/dist/atomic/text-lockup/medium.js.map +1 -1
  89. package/dist/atomic/text-lockup/medium.mjs +8 -8
  90. package/dist/atomic/text-lockup/medium.mjs.map +1 -1
  91. package/dist/atomic/text-lockup/person.js +5 -5
  92. package/dist/atomic/text-lockup/person.js.map +1 -1
  93. package/dist/atomic/text-lockup/person.mjs +4 -4
  94. package/dist/atomic/text-lockup/person.mjs.map +1 -1
  95. package/dist/atomic/text-lockup/small.d.ts.map +1 -1
  96. package/dist/atomic/text-lockup/small.js +15 -14
  97. package/dist/atomic/text-lockup/small.js.map +1 -1
  98. package/dist/atomic/text-lockup/small.mjs +3 -3
  99. package/dist/atomic/text-lockup/small.mjs.map +1 -1
  100. package/dist/composite/accordion/item.d.ts.map +1 -1
  101. package/dist/composite/accordion/item.js +5 -5
  102. package/dist/composite/accordion/item.js.map +1 -1
  103. package/dist/composite/accordion/item.mjs +4 -4
  104. package/dist/composite/accordion/item.mjs.map +1 -1
  105. package/dist/composite/alert/elements/text.d.ts.map +1 -1
  106. package/dist/composite/alert/elements/text.js +34 -14
  107. package/dist/composite/alert/elements/text.js.map +1 -1
  108. package/dist/composite/alert/elements/text.mjs +5 -3
  109. package/dist/composite/alert/elements/text.mjs.map +1 -1
  110. package/dist/composite/alert/page.d.ts.map +1 -1
  111. package/dist/composite/alert/page.js +37 -22
  112. package/dist/composite/alert/page.js.map +1 -1
  113. package/dist/composite/alert/page.mjs +6 -8
  114. package/dist/composite/alert/page.mjs.map +1 -1
  115. package/dist/composite/alert/site.d.ts.map +1 -1
  116. package/dist/composite/alert/site.js +46 -27
  117. package/dist/composite/alert/site.js.map +1 -1
  118. package/dist/composite/alert/site.mjs +10 -9
  119. package/dist/composite/alert/site.mjs.map +1 -1
  120. package/dist/composite/banner/promo.d.ts.map +1 -1
  121. package/dist/composite/banner/promo.js +7 -8
  122. package/dist/composite/banner/promo.js.map +1 -1
  123. package/dist/composite/banner/promo.mjs +6 -7
  124. package/dist/composite/banner/promo.mjs.map +1 -1
  125. package/dist/composite/card/block.js +21 -9
  126. package/dist/composite/card/block.js.map +1 -1
  127. package/dist/composite/card/block.mjs +20 -8
  128. package/dist/composite/card/block.mjs.map +1 -1
  129. package/dist/composite/card/list.d.ts.map +1 -1
  130. package/dist/composite/card/list.js +47 -48
  131. package/dist/composite/card/list.js.map +1 -1
  132. package/dist/composite/card/list.mjs +46 -47
  133. package/dist/composite/card/list.mjs.map +1 -1
  134. package/dist/composite/card/overlay/color.d.ts.map +1 -1
  135. package/dist/composite/card/overlay/color.js +24 -12
  136. package/dist/composite/card/overlay/color.js.map +1 -1
  137. package/dist/composite/card/overlay/color.mjs +22 -11
  138. package/dist/composite/card/overlay/color.mjs.map +1 -1
  139. package/dist/composite/card/overlay/icon.js +21 -10
  140. package/dist/composite/card/overlay/icon.js.map +1 -1
  141. package/dist/composite/card/overlay/icon.mjs +20 -9
  142. package/dist/composite/card/overlay/icon.mjs.map +1 -1
  143. package/dist/composite/card/overlay/image.d.ts.map +1 -1
  144. package/dist/composite/card/overlay/image.js +29 -20
  145. package/dist/composite/card/overlay/image.js.map +1 -1
  146. package/dist/composite/card/overlay/image.mjs +27 -18
  147. package/dist/composite/card/overlay/image.mjs.map +1 -1
  148. package/dist/composite/card/video/block.js +15 -4
  149. package/dist/composite/card/video/block.js.map +1 -1
  150. package/dist/composite/card/video/block.mjs +15 -4
  151. package/dist/composite/card/video/block.mjs.map +1 -1
  152. package/dist/composite/carousel/cards/index.js +6 -6
  153. package/dist/composite/carousel/cards/index.js.map +1 -1
  154. package/dist/composite/carousel/cards/index.mjs +6 -6
  155. package/dist/composite/carousel/cards/index.mjs.map +1 -1
  156. package/dist/composite/carousel/default/index.js +24 -7
  157. package/dist/composite/carousel/default/index.js.map +1 -1
  158. package/dist/composite/carousel/default/index.mjs +1 -1
  159. package/dist/composite/carousel/default/index.mjs.map +1 -1
  160. package/dist/composite/carousel/elements/blocks.d.ts.map +1 -1
  161. package/dist/composite/carousel/elements/blocks.js +20 -22
  162. package/dist/composite/carousel/elements/blocks.js.map +1 -1
  163. package/dist/composite/carousel/elements/blocks.mjs +11 -14
  164. package/dist/composite/carousel/elements/blocks.mjs.map +1 -1
  165. package/dist/composite/carousel/elements/full-screen.js +36 -8
  166. package/dist/composite/carousel/elements/full-screen.js.map +1 -1
  167. package/dist/composite/carousel/elements/full-screen.mjs +17 -6
  168. package/dist/composite/carousel/elements/full-screen.mjs.map +1 -1
  169. package/dist/composite/carousel/elements/image.d.ts.map +1 -1
  170. package/dist/composite/carousel/elements/image.js +32 -21
  171. package/dist/composite/carousel/elements/image.js.map +1 -1
  172. package/dist/composite/carousel/elements/image.mjs +8 -14
  173. package/dist/composite/carousel/elements/image.mjs.map +1 -1
  174. package/dist/composite/carousel/elements/overlay.js +19 -2
  175. package/dist/composite/carousel/elements/overlay.js.map +1 -1
  176. package/dist/composite/carousel/elements/overlay.mjs +1 -1
  177. package/dist/composite/carousel/elements/overlay.mjs.map +1 -1
  178. package/dist/composite/carousel/image/multiple.d.ts.map +1 -1
  179. package/dist/composite/carousel/image/multiple.js +24 -12
  180. package/dist/composite/carousel/image/multiple.js.map +1 -1
  181. package/dist/composite/carousel/image/multiple.mjs +17 -6
  182. package/dist/composite/carousel/image/multiple.mjs.map +1 -1
  183. package/dist/composite/carousel/image/standard.d.ts.map +1 -1
  184. package/dist/composite/carousel/image/standard.js +44 -47
  185. package/dist/composite/carousel/image/standard.js.map +1 -1
  186. package/dist/composite/carousel/image/standard.mjs +19 -5
  187. package/dist/composite/carousel/image/standard.mjs.map +1 -1
  188. package/dist/composite/carousel/thumbnail/index.js +29 -12
  189. package/dist/composite/carousel/thumbnail/index.js.map +1 -1
  190. package/dist/composite/carousel/thumbnail/index.mjs +1 -1
  191. package/dist/composite/carousel/thumbnail/index.mjs.map +1 -1
  192. package/dist/composite/carousel/wide/controls.d.ts.map +1 -1
  193. package/dist/composite/carousel/wide/controls.js +40 -30
  194. package/dist/composite/carousel/wide/controls.js.map +1 -1
  195. package/dist/composite/carousel/wide/controls.mjs +39 -29
  196. package/dist/composite/carousel/wide/controls.mjs.map +1 -1
  197. package/dist/composite/carousel/wide/frames.js +44 -33
  198. package/dist/composite/carousel/wide/frames.js.map +1 -1
  199. package/dist/composite/carousel/wide/frames.mjs +43 -32
  200. package/dist/composite/carousel/wide/frames.mjs.map +1 -1
  201. package/dist/composite/carousel/wide/index.d.ts.map +1 -1
  202. package/dist/composite/carousel/wide/index.js +17 -6
  203. package/dist/composite/carousel/wide/index.js.map +1 -1
  204. package/dist/composite/carousel/wide/index.mjs +16 -5
  205. package/dist/composite/carousel/wide/index.mjs.map +1 -1
  206. package/dist/composite/footer/elements/main-section/call-to-action.d.ts +5 -4
  207. package/dist/composite/footer/elements/main-section/call-to-action.d.ts.map +1 -1
  208. package/dist/composite/footer/elements/main-section/call-to-action.js +56 -37
  209. package/dist/composite/footer/elements/main-section/call-to-action.js.map +1 -1
  210. package/dist/composite/footer/elements/main-section/call-to-action.mjs +40 -37
  211. package/dist/composite/footer/elements/main-section/call-to-action.mjs.map +1 -1
  212. package/dist/composite/footer/elements/main-section/campaign.d.ts +3 -3
  213. package/dist/composite/footer/elements/main-section/campaign.d.ts.map +1 -1
  214. package/dist/composite/footer/elements/main-section/campaign.js +57 -22
  215. package/dist/composite/footer/elements/main-section/campaign.js.map +1 -1
  216. package/dist/composite/footer/elements/main-section/campaign.mjs +40 -22
  217. package/dist/composite/footer/elements/main-section/campaign.mjs.map +1 -1
  218. package/dist/composite/footer/elements/main-section/index.d.ts +3 -2
  219. package/dist/composite/footer/elements/main-section/index.d.ts.map +1 -1
  220. package/dist/composite/footer/elements/main-section/index.js +81 -94
  221. package/dist/composite/footer/elements/main-section/index.js.map +1 -1
  222. package/dist/composite/footer/elements/main-section/index.mjs +82 -95
  223. package/dist/composite/footer/elements/main-section/index.mjs.map +1 -1
  224. package/dist/composite/footer/elements/main-section/row-links/index.d.ts +5 -5
  225. package/dist/composite/footer/elements/main-section/row-links/index.d.ts.map +1 -1
  226. package/dist/composite/footer/elements/main-section/row-links/index.js +44 -72
  227. package/dist/composite/footer/elements/main-section/row-links/index.js.map +1 -1
  228. package/dist/composite/footer/elements/main-section/row-links/index.mjs +48 -75
  229. package/dist/composite/footer/elements/main-section/row-links/index.mjs.map +1 -1
  230. package/dist/composite/footer/elements/main-section/row-links/link-columns.d.ts +5 -3
  231. package/dist/composite/footer/elements/main-section/row-links/link-columns.d.ts.map +1 -1
  232. package/dist/composite/footer/elements/main-section/row-links/link-columns.js +178 -223
  233. package/dist/composite/footer/elements/main-section/row-links/link-columns.js.map +1 -1
  234. package/dist/composite/footer/elements/main-section/row-links/link-columns.mjs +180 -224
  235. package/dist/composite/footer/elements/main-section/row-links/link-columns.mjs.map +1 -1
  236. package/dist/composite/footer/elements/main-section/row-logo/contact.d.ts +5 -4
  237. package/dist/composite/footer/elements/main-section/row-logo/contact.d.ts.map +1 -1
  238. package/dist/composite/footer/elements/main-section/row-logo/contact.js +165 -199
  239. package/dist/composite/footer/elements/main-section/row-logo/contact.js.map +1 -1
  240. package/dist/composite/footer/elements/main-section/row-logo/contact.mjs +166 -199
  241. package/dist/composite/footer/elements/main-section/row-logo/contact.mjs.map +1 -1
  242. package/dist/composite/footer/elements/main-section/row-logo/index.d.ts +6 -3
  243. package/dist/composite/footer/elements/main-section/row-logo/index.d.ts.map +1 -1
  244. package/dist/composite/footer/elements/main-section/row-logo/index.js +54 -95
  245. package/dist/composite/footer/elements/main-section/row-logo/index.js.map +1 -1
  246. package/dist/composite/footer/elements/main-section/row-logo/index.mjs +59 -99
  247. package/dist/composite/footer/elements/main-section/row-logo/index.mjs.map +1 -1
  248. package/dist/composite/footer/elements/main-section/row-logo/logo.d.ts +4 -2
  249. package/dist/composite/footer/elements/main-section/row-logo/logo.d.ts.map +1 -1
  250. package/dist/composite/footer/elements/main-section/row-logo/logo.js +78 -71
  251. package/dist/composite/footer/elements/main-section/row-logo/logo.js.map +1 -1
  252. package/dist/composite/footer/elements/main-section/row-logo/logo.mjs +64 -74
  253. package/dist/composite/footer/elements/main-section/row-logo/logo.mjs.map +1 -1
  254. package/dist/composite/footer/elements/main-section/social.d.ts +5 -6
  255. package/dist/composite/footer/elements/main-section/social.d.ts.map +1 -1
  256. package/dist/composite/footer/elements/main-section/social.js +128 -202
  257. package/dist/composite/footer/elements/main-section/social.js.map +1 -1
  258. package/dist/composite/footer/elements/main-section/social.mjs +130 -203
  259. package/dist/composite/footer/elements/main-section/social.mjs.map +1 -1
  260. package/dist/composite/footer/elements/utility-section/index.d.ts +4 -2
  261. package/dist/composite/footer/elements/utility-section/index.d.ts.map +1 -1
  262. package/dist/composite/footer/elements/utility-section/index.js +107 -116
  263. package/dist/composite/footer/elements/utility-section/index.js.map +1 -1
  264. package/dist/composite/footer/elements/utility-section/index.mjs +109 -117
  265. package/dist/composite/footer/elements/utility-section/index.mjs.map +1 -1
  266. package/dist/composite/footer/globals.d.ts +0 -32
  267. package/dist/composite/footer/globals.d.ts.map +1 -1
  268. package/dist/composite/footer/globals.js +0 -19
  269. package/dist/composite/footer/globals.js.map +1 -1
  270. package/dist/composite/footer/globals.mjs +1 -20
  271. package/dist/composite/footer/globals.mjs.map +1 -1
  272. package/dist/composite/footer/options.d.ts +1 -1
  273. package/dist/composite/footer/options.d.ts.map +1 -1
  274. package/dist/composite/footer/options.js +52 -30
  275. package/dist/composite/footer/options.js.map +1 -1
  276. package/dist/composite/footer/options.mjs +37 -33
  277. package/dist/composite/footer/options.mjs.map +1 -1
  278. package/dist/composite/hero/custom/expand.d.ts.map +1 -1
  279. package/dist/composite/hero/custom/expand.js +36 -25
  280. package/dist/composite/hero/custom/expand.js.map +1 -1
  281. package/dist/composite/hero/custom/expand.mjs +30 -19
  282. package/dist/composite/hero/custom/expand.mjs.map +1 -1
  283. package/dist/composite/hero/custom/grid.d.ts.map +1 -1
  284. package/dist/composite/hero/custom/grid.js +48 -38
  285. package/dist/composite/hero/custom/grid.js.map +1 -1
  286. package/dist/composite/hero/custom/grid.mjs +35 -25
  287. package/dist/composite/hero/custom/grid.mjs.map +1 -1
  288. package/dist/composite/hero/custom/video-arrow.d.ts.map +1 -1
  289. package/dist/composite/hero/custom/video-arrow.js +23 -15
  290. package/dist/composite/hero/custom/video-arrow.js.map +1 -1
  291. package/dist/composite/hero/custom/video-arrow.mjs +20 -14
  292. package/dist/composite/hero/custom/video-arrow.mjs.map +1 -1
  293. package/dist/composite/hero/logo.d.ts.map +1 -1
  294. package/dist/composite/hero/logo.js +28 -16
  295. package/dist/composite/hero/logo.js.map +1 -1
  296. package/dist/composite/hero/logo.mjs +26 -15
  297. package/dist/composite/hero/logo.mjs.map +1 -1
  298. package/dist/composite/hero/minimal.d.ts.map +1 -1
  299. package/dist/composite/hero/minimal.js +33 -22
  300. package/dist/composite/hero/minimal.js.map +1 -1
  301. package/dist/composite/hero/minimal.mjs +32 -21
  302. package/dist/composite/hero/minimal.mjs.map +1 -1
  303. package/dist/composite/hero/overlay.d.ts.map +1 -1
  304. package/dist/composite/hero/overlay.js +32 -21
  305. package/dist/composite/hero/overlay.js.map +1 -1
  306. package/dist/composite/hero/overlay.mjs +30 -20
  307. package/dist/composite/hero/overlay.mjs.map +1 -1
  308. package/dist/composite/hero/stacked.d.ts.map +1 -1
  309. package/dist/composite/hero/stacked.js +45 -34
  310. package/dist/composite/hero/stacked.js.map +1 -1
  311. package/dist/composite/hero/stacked.mjs +40 -30
  312. package/dist/composite/hero/stacked.mjs.map +1 -1
  313. package/dist/composite/hero/standard.d.ts.map +1 -1
  314. package/dist/composite/hero/standard.js +38 -27
  315. package/dist/composite/hero/standard.js.map +1 -1
  316. package/dist/composite/hero/standard.mjs +36 -26
  317. package/dist/composite/hero/standard.mjs.map +1 -1
  318. package/dist/composite/layout/box/logo.d.ts.map +1 -1
  319. package/dist/composite/layout/box/logo.js +33 -14
  320. package/dist/composite/layout/box/logo.js.map +1 -1
  321. package/dist/composite/layout/box/logo.mjs +5 -4
  322. package/dist/composite/layout/box/logo.mjs.map +1 -1
  323. package/dist/composite/layout/image/expand.d.ts.map +1 -1
  324. package/dist/composite/layout/image/expand.js +32 -13
  325. package/dist/composite/layout/image/expand.js.map +1 -1
  326. package/dist/composite/layout/image/expand.mjs +7 -6
  327. package/dist/composite/layout/image/expand.mjs.map +1 -1
  328. package/dist/composite/layout/scroll-top/index.d.ts.map +1 -1
  329. package/dist/composite/layout/scroll-top/index.js +25 -11
  330. package/dist/composite/layout/scroll-top/index.js.map +1 -1
  331. package/dist/composite/layout/scroll-top/index.mjs +4 -7
  332. package/dist/composite/layout/scroll-top/index.mjs.map +1 -1
  333. package/dist/composite/layout/section-intro/small.d.ts.map +1 -1
  334. package/dist/composite/layout/section-intro/small.js +33 -14
  335. package/dist/composite/layout/section-intro/small.js.map +1 -1
  336. package/dist/composite/layout/section-intro/small.mjs +2 -1
  337. package/dist/composite/layout/section-intro/small.mjs.map +1 -1
  338. package/dist/composite/layout/section-intro/wide.js +20 -3
  339. package/dist/composite/layout/section-intro/wide.js.map +1 -1
  340. package/dist/composite/layout/section-intro/wide.mjs +1 -1
  341. package/dist/composite/layout/section-intro/wide.mjs.map +1 -1
  342. package/dist/composite/layout/sticky-columns/index.d.ts.map +1 -1
  343. package/dist/composite/layout/sticky-columns/index.js +26 -8
  344. package/dist/composite/layout/sticky-columns/index.js.map +1 -1
  345. package/dist/composite/layout/sticky-columns/index.mjs +4 -4
  346. package/dist/composite/layout/sticky-columns/index.mjs.map +1 -1
  347. package/dist/composite/media/elements/caption.d.ts.map +1 -1
  348. package/dist/composite/media/elements/caption.js +28 -9
  349. package/dist/composite/media/elements/caption.js.map +1 -1
  350. package/dist/composite/media/elements/caption.mjs +5 -4
  351. package/dist/composite/media/elements/caption.mjs.map +1 -1
  352. package/dist/composite/media/elements/gif.js +15 -4
  353. package/dist/composite/media/elements/gif.js.map +1 -1
  354. package/dist/composite/media/elements/gif.mjs +15 -4
  355. package/dist/composite/media/elements/gif.mjs.map +1 -1
  356. package/dist/composite/media/inline/caption.js +21 -8
  357. package/dist/composite/media/inline/caption.js.map +1 -1
  358. package/dist/composite/media/inline/caption.mjs +2 -6
  359. package/dist/composite/media/inline/caption.mjs.map +1 -1
  360. package/dist/composite/media/inline/wrapped.js +23 -10
  361. package/dist/composite/media/inline/wrapped.js.map +1 -1
  362. package/dist/composite/media/inline/wrapped.mjs +2 -6
  363. package/dist/composite/media/inline/wrapped.mjs.map +1 -1
  364. package/dist/composite/navigation/elements/breadcrumb/index.d.ts.map +1 -1
  365. package/dist/composite/navigation/elements/breadcrumb/index.js +35 -16
  366. package/dist/composite/navigation/elements/breadcrumb/index.js.map +1 -1
  367. package/dist/composite/navigation/elements/breadcrumb/index.mjs +7 -6
  368. package/dist/composite/navigation/elements/breadcrumb/index.mjs.map +1 -1
  369. package/dist/composite/navigation/elements/drawer/index.d.ts.map +1 -1
  370. package/dist/composite/navigation/elements/drawer/index.js +27 -13
  371. package/dist/composite/navigation/elements/drawer/index.js.map +1 -1
  372. package/dist/composite/navigation/elements/drawer/index.mjs +5 -8
  373. package/dist/composite/navigation/elements/drawer/index.mjs.map +1 -1
  374. package/dist/composite/navigation/elements/item/index.d.ts.map +1 -1
  375. package/dist/composite/navigation/elements/item/index.js +47 -28
  376. package/dist/composite/navigation/elements/item/index.js.map +1 -1
  377. package/dist/composite/navigation/elements/item/index.mjs +13 -12
  378. package/dist/composite/navigation/elements/item/index.mjs.map +1 -1
  379. package/dist/composite/navigation/elements/menu-button/index.js +20 -3
  380. package/dist/composite/navigation/elements/menu-button/index.js.map +1 -1
  381. package/dist/composite/navigation/elements/menu-button/index.mjs +1 -1
  382. package/dist/composite/navigation/elements/menu-button/index.mjs.map +1 -1
  383. package/dist/composite/navigation/elements/slider/action.d.ts.map +1 -1
  384. package/dist/composite/navigation/elements/slider/action.js +32 -13
  385. package/dist/composite/navigation/elements/slider/action.js.map +1 -1
  386. package/dist/composite/navigation/elements/slider/action.mjs +6 -5
  387. package/dist/composite/navigation/elements/slider/action.mjs.map +1 -1
  388. package/dist/composite/navigation/elements/slider/index.d.ts.map +1 -1
  389. package/dist/composite/navigation/elements/slider/index.js +35 -21
  390. package/dist/composite/navigation/elements/slider/index.js.map +1 -1
  391. package/dist/composite/navigation/elements/slider/index.mjs +3 -6
  392. package/dist/composite/navigation/elements/slider/index.mjs.map +1 -1
  393. package/dist/composite/navigation/elements/slider/slide-first.d.ts.map +1 -1
  394. package/dist/composite/navigation/elements/slider/slide-first.js +29 -10
  395. package/dist/composite/navigation/elements/slider/slide-first.js.map +1 -1
  396. package/dist/composite/navigation/elements/slider/slide-first.mjs +4 -3
  397. package/dist/composite/navigation/elements/slider/slide-first.mjs.map +1 -1
  398. package/dist/composite/navigation/elements/slider/slides.d.ts.map +1 -1
  399. package/dist/composite/navigation/elements/slider/slides.js +38 -19
  400. package/dist/composite/navigation/elements/slider/slides.js.map +1 -1
  401. package/dist/composite/navigation/elements/slider/slides.mjs +8 -7
  402. package/dist/composite/navigation/elements/slider/slides.mjs.map +1 -1
  403. package/dist/composite/navigation/elements/sticky/index.js +2 -5
  404. package/dist/composite/navigation/elements/sticky/index.js.map +1 -1
  405. package/dist/composite/navigation/elements/sticky/index.mjs +1 -4
  406. package/dist/composite/navigation/elements/sticky/index.mjs.map +1 -1
  407. package/dist/composite/navigation/header.d.ts.map +1 -1
  408. package/dist/composite/navigation/header.js +55 -36
  409. package/dist/composite/navigation/header.js.map +1 -1
  410. package/dist/composite/navigation/header.mjs +9 -8
  411. package/dist/composite/navigation/header.mjs.map +1 -1
  412. package/dist/composite/navigation/utility/alert.d.ts.map +1 -1
  413. package/dist/composite/navigation/utility/alert.js +18 -9
  414. package/dist/composite/navigation/utility/alert.js.map +1 -1
  415. package/dist/composite/navigation/utility/alert.mjs +18 -9
  416. package/dist/composite/navigation/utility/alert.mjs.map +1 -1
  417. package/dist/composite/navigation/utility/index.d.ts.map +1 -1
  418. package/dist/composite/navigation/utility/index.js +45 -41
  419. package/dist/composite/navigation/utility/index.js.map +1 -1
  420. package/dist/composite/navigation/utility/index.mjs +15 -13
  421. package/dist/composite/navigation/utility/index.mjs.map +1 -1
  422. package/dist/composite/navigation/utility/search.js +23 -6
  423. package/dist/composite/navigation/utility/search.js.map +1 -1
  424. package/dist/composite/navigation/utility/search.mjs +1 -1
  425. package/dist/composite/navigation/utility/search.mjs.map +1 -1
  426. package/dist/composite/pathway/_common.js +14 -3
  427. package/dist/composite/pathway/_common.js.map +1 -1
  428. package/dist/composite/pathway/_common.mjs +14 -3
  429. package/dist/composite/pathway/_common.mjs.map +1 -1
  430. package/dist/composite/pathway/hero.js +29 -19
  431. package/dist/composite/pathway/hero.js.map +1 -1
  432. package/dist/composite/pathway/hero.mjs +26 -16
  433. package/dist/composite/pathway/hero.mjs.map +1 -1
  434. package/dist/composite/pathway/highlight.js +21 -21
  435. package/dist/composite/pathway/highlight.js.map +1 -1
  436. package/dist/composite/pathway/highlight.mjs +20 -20
  437. package/dist/composite/pathway/highlight.mjs.map +1 -1
  438. package/dist/composite/pathway/overlay.js +19 -20
  439. package/dist/composite/pathway/overlay.js.map +1 -1
  440. package/dist/composite/pathway/overlay.mjs +14 -16
  441. package/dist/composite/pathway/overlay.mjs.map +1 -1
  442. package/dist/composite/pathway/standard.js +12 -15
  443. package/dist/composite/pathway/standard.js.map +1 -1
  444. package/dist/composite/pathway/standard.mjs +9 -12
  445. package/dist/composite/pathway/standard.mjs.map +1 -1
  446. package/dist/composite/pathway/sticky.d.ts.map +1 -1
  447. package/dist/composite/pathway/sticky.js +12 -10
  448. package/dist/composite/pathway/sticky.js.map +1 -1
  449. package/dist/composite/pathway/sticky.mjs +10 -9
  450. package/dist/composite/pathway/sticky.mjs.map +1 -1
  451. package/dist/composite/person/bio/full.d.ts.map +1 -1
  452. package/dist/composite/person/bio/full.js +24 -13
  453. package/dist/composite/person/bio/full.js.map +1 -1
  454. package/dist/composite/person/bio/full.mjs +22 -12
  455. package/dist/composite/person/bio/full.mjs.map +1 -1
  456. package/dist/composite/person/bio/small.js +33 -23
  457. package/dist/composite/person/bio/small.js.map +1 -1
  458. package/dist/composite/person/bio/small.mjs +32 -22
  459. package/dist/composite/person/bio/small.mjs.map +1 -1
  460. package/dist/composite/person/block.d.ts.map +1 -1
  461. package/dist/composite/person/block.js +26 -21
  462. package/dist/composite/person/block.js.map +1 -1
  463. package/dist/composite/person/block.mjs +24 -19
  464. package/dist/composite/person/block.mjs.map +1 -1
  465. package/dist/composite/person/hero.d.ts.map +1 -1
  466. package/dist/composite/person/hero.js +70 -43
  467. package/dist/composite/person/hero.js.map +1 -1
  468. package/dist/composite/person/hero.mjs +14 -4
  469. package/dist/composite/person/hero.mjs.map +1 -1
  470. package/dist/composite/person/list.d.ts.map +1 -1
  471. package/dist/composite/person/list.js +28 -21
  472. package/dist/composite/person/list.js.map +1 -1
  473. package/dist/composite/person/list.mjs +27 -20
  474. package/dist/composite/person/list.mjs.map +1 -1
  475. package/dist/composite/person/tabular.js +22 -11
  476. package/dist/composite/person/tabular.js.map +1 -1
  477. package/dist/composite/person/tabular.mjs +21 -10
  478. package/dist/composite/person/tabular.mjs.map +1 -1
  479. package/dist/composite/quote/_constants.d.ts +3 -0
  480. package/dist/composite/quote/_constants.d.ts.map +1 -0
  481. package/dist/composite/quote/_constants.js +7 -0
  482. package/dist/composite/quote/_constants.js.map +1 -0
  483. package/dist/composite/quote/_constants.mjs +7 -0
  484. package/dist/composite/quote/_constants.mjs.map +1 -0
  485. package/dist/composite/quote/_types.d.ts +24 -0
  486. package/dist/composite/quote/_types.d.ts.map +1 -0
  487. package/dist/composite/quote/elements/action.d.ts +11 -0
  488. package/dist/composite/quote/elements/action.d.ts.map +1 -0
  489. package/dist/composite/quote/elements/action.js +46 -0
  490. package/dist/composite/quote/elements/action.js.map +1 -0
  491. package/dist/composite/quote/elements/action.mjs +29 -0
  492. package/dist/composite/quote/elements/action.mjs.map +1 -0
  493. package/dist/composite/quote/elements/icon.d.ts +10 -0
  494. package/dist/composite/quote/elements/icon.d.ts.map +1 -0
  495. package/dist/composite/quote/elements/icon.js +67 -0
  496. package/dist/composite/quote/elements/icon.js.map +1 -0
  497. package/dist/composite/quote/elements/icon.mjs +51 -0
  498. package/dist/composite/quote/elements/icon.mjs.map +1 -0
  499. package/dist/composite/quote/elements/image.d.ts +7 -10
  500. package/dist/composite/quote/elements/image.d.ts.map +1 -1
  501. package/dist/composite/quote/elements/image.js +71 -12
  502. package/dist/composite/quote/elements/image.js.map +1 -1
  503. package/dist/composite/quote/elements/image.mjs +54 -12
  504. package/dist/composite/quote/elements/image.mjs.map +1 -1
  505. package/dist/composite/quote/elements/index.d.ts +4 -24
  506. package/dist/composite/quote/elements/index.d.ts.map +1 -1
  507. package/dist/composite/quote/elements/index.js +7 -5
  508. package/dist/composite/quote/elements/index.js.map +1 -1
  509. package/dist/composite/quote/elements/index.mjs +8 -7
  510. package/dist/composite/quote/elements/index.mjs.map +1 -1
  511. package/dist/composite/quote/elements/text.d.ts +5 -20
  512. package/dist/composite/quote/elements/text.d.ts.map +1 -1
  513. package/dist/composite/quote/elements/text.js +217 -194
  514. package/dist/composite/quote/elements/text.js.map +1 -1
  515. package/dist/composite/quote/elements/text.mjs +199 -194
  516. package/dist/composite/quote/elements/text.mjs.map +1 -1
  517. package/dist/composite/quote/featured.d.ts +4 -8
  518. package/dist/composite/quote/featured.d.ts.map +1 -1
  519. package/dist/composite/quote/featured.js +195 -243
  520. package/dist/composite/quote/featured.js.map +1 -1
  521. package/dist/composite/quote/featured.mjs +177 -242
  522. package/dist/composite/quote/featured.mjs.map +1 -1
  523. package/dist/composite/quote/helper/animation.d.ts +8 -0
  524. package/dist/composite/quote/helper/animation.d.ts.map +1 -0
  525. package/dist/composite/quote/helper/animation.js +74 -0
  526. package/dist/composite/quote/helper/animation.js.map +1 -0
  527. package/dist/composite/quote/helper/animation.mjs +74 -0
  528. package/dist/composite/quote/helper/animation.mjs.map +1 -0
  529. package/dist/composite/quote/index.d.ts +1 -1
  530. package/dist/composite/quote/index.d.ts.map +1 -1
  531. package/dist/composite/quote/index.mjs +6 -6
  532. package/dist/composite/quote/inline.d.ts +4 -9
  533. package/dist/composite/quote/inline.d.ts.map +1 -1
  534. package/dist/composite/quote/inline.js +72 -271
  535. package/dist/composite/quote/inline.js.map +1 -1
  536. package/dist/composite/quote/inline.mjs +56 -272
  537. package/dist/composite/quote/inline.mjs.map +1 -1
  538. package/dist/composite/quote/statement.d.ts +5 -7
  539. package/dist/composite/quote/statement.d.ts.map +1 -1
  540. package/dist/composite/slider/events.d.ts.map +1 -1
  541. package/dist/composite/slider/events.js +60 -46
  542. package/dist/composite/slider/events.js.map +1 -1
  543. package/dist/composite/slider/events.mjs +12 -16
  544. package/dist/composite/slider/events.mjs.map +1 -1
  545. package/dist/composite/social/sharing.d.ts.map +1 -1
  546. package/dist/composite/social/sharing.js +38 -23
  547. package/dist/composite/social/sharing.js.map +1 -1
  548. package/dist/composite/social/sharing.mjs +9 -11
  549. package/dist/composite/social/sharing.mjs.map +1 -1
  550. package/dist/composite/tabs/standard.d.ts.map +1 -1
  551. package/dist/composite/tabs/standard.js +44 -30
  552. package/dist/composite/tabs/standard.js.map +1 -1
  553. package/dist/composite/tabs/standard.mjs +9 -13
  554. package/dist/composite/tabs/standard.mjs.map +1 -1
  555. package/dist/index.d.ts +0 -1
  556. package/dist/index.d.ts.map +1 -1
  557. package/dist/index.js +0 -2
  558. package/dist/index.js.map +1 -1
  559. package/dist/index.mjs +1 -3
  560. package/dist/index.mjs.map +1 -1
  561. package/dist/layout/image.d.ts.map +1 -1
  562. package/dist/layout/image.js +25 -6
  563. package/dist/layout/image.js.map +1 -1
  564. package/dist/layout/image.mjs +4 -3
  565. package/dist/layout/image.mjs.map +1 -1
  566. package/dist/model/modifiers/index.d.ts +1 -1
  567. package/dist/model/modifiers/index.d.ts.map +1 -1
  568. package/dist/model/modifiers/index.js +12 -12
  569. package/dist/model/modifiers/index.js.map +1 -1
  570. package/dist/model/modifiers/index.mjs +2 -2
  571. package/dist/model/modifiers/index.mjs.map +1 -1
  572. package/dist/model/modifiers/style.js +7 -7
  573. package/dist/model/modifiers/style.js.map +1 -1
  574. package/dist/model/modifiers/style.mjs +2 -2
  575. package/dist/model/modifiers/style.mjs.map +1 -1
  576. package/package.json +17 -18
  577. package/dist/_virtual/___vite-browser-external.js +0 -8
  578. package/dist/_virtual/___vite-browser-external.js.map +0 -1
  579. package/dist/_virtual/___vite-browser-external.mjs +0 -7
  580. package/dist/_virtual/___vite-browser-external.mjs.map +0 -1
  581. package/dist/_virtual/__vite-browser-external.js +0 -4
  582. package/dist/_virtual/__vite-browser-external.js.map +0 -1
  583. package/dist/_virtual/__vite-browser-external.mjs +0 -5
  584. package/dist/_virtual/__vite-browser-external.mjs.map +0 -1
  585. package/dist/_virtual/_commonjsHelpers.js +0 -39
  586. package/dist/_virtual/_commonjsHelpers.js.map +0 -1
  587. package/dist/_virtual/_commonjsHelpers.mjs +0 -39
  588. package/dist/_virtual/_commonjsHelpers.mjs.map +0 -1
  589. package/dist/_virtual/attribute.js +0 -5
  590. package/dist/_virtual/attribute.js.map +0 -1
  591. package/dist/_virtual/attribute.mjs +0 -5
  592. package/dist/_virtual/attribute.mjs.map +0 -1
  593. package/dist/_virtual/className.js +0 -5
  594. package/dist/_virtual/className.js.map +0 -1
  595. package/dist/_virtual/className.mjs +0 -5
  596. package/dist/_virtual/className.mjs.map +0 -1
  597. package/dist/_virtual/combinator.js +0 -5
  598. package/dist/_virtual/combinator.js.map +0 -1
  599. package/dist/_virtual/combinator.mjs +0 -5
  600. package/dist/_virtual/combinator.mjs.map +0 -1
  601. package/dist/_virtual/comment.js +0 -5
  602. package/dist/_virtual/comment.js.map +0 -1
  603. package/dist/_virtual/comment.mjs +0 -5
  604. package/dist/_virtual/comment.mjs.map +0 -1
  605. package/dist/_virtual/constructors.js +0 -5
  606. package/dist/_virtual/constructors.js.map +0 -1
  607. package/dist/_virtual/constructors.mjs +0 -5
  608. package/dist/_virtual/constructors.mjs.map +0 -1
  609. package/dist/_virtual/container.js +0 -5
  610. package/dist/_virtual/container.js.map +0 -1
  611. package/dist/_virtual/container.mjs +0 -5
  612. package/dist/_virtual/container.mjs.map +0 -1
  613. package/dist/_virtual/ensureObject.js +0 -5
  614. package/dist/_virtual/ensureObject.js.map +0 -1
  615. package/dist/_virtual/ensureObject.mjs +0 -5
  616. package/dist/_virtual/ensureObject.mjs.map +0 -1
  617. package/dist/_virtual/getProp.js +0 -5
  618. package/dist/_virtual/getProp.js.map +0 -1
  619. package/dist/_virtual/getProp.mjs +0 -5
  620. package/dist/_virtual/getProp.mjs.map +0 -1
  621. package/dist/_virtual/guards.js +0 -5
  622. package/dist/_virtual/guards.js.map +0 -1
  623. package/dist/_virtual/guards.mjs +0 -5
  624. package/dist/_virtual/guards.mjs.map +0 -1
  625. package/dist/_virtual/id.js +0 -5
  626. package/dist/_virtual/id.js.map +0 -1
  627. package/dist/_virtual/id.mjs +0 -5
  628. package/dist/_virtual/id.mjs.map +0 -1
  629. package/dist/_virtual/index.js +0 -7
  630. package/dist/_virtual/index.js.map +0 -1
  631. package/dist/_virtual/index.mjs +0 -8
  632. package/dist/_virtual/index.mjs.map +0 -1
  633. package/dist/_virtual/index2.js +0 -7
  634. package/dist/_virtual/index2.js.map +0 -1
  635. package/dist/_virtual/index2.mjs +0 -8
  636. package/dist/_virtual/index2.mjs.map +0 -1
  637. package/dist/_virtual/index3.js +0 -5
  638. package/dist/_virtual/index3.js.map +0 -1
  639. package/dist/_virtual/index3.mjs +0 -5
  640. package/dist/_virtual/index3.mjs.map +0 -1
  641. package/dist/_virtual/index4.js +0 -5
  642. package/dist/_virtual/index4.js.map +0 -1
  643. package/dist/_virtual/index4.mjs +0 -5
  644. package/dist/_virtual/index4.mjs.map +0 -1
  645. package/dist/_virtual/index5.js +0 -5
  646. package/dist/_virtual/index5.js.map +0 -1
  647. package/dist/_virtual/index5.mjs +0 -5
  648. package/dist/_virtual/index5.mjs.map +0 -1
  649. package/dist/_virtual/namespace.js +0 -5
  650. package/dist/_virtual/namespace.js.map +0 -1
  651. package/dist/_virtual/namespace.mjs +0 -5
  652. package/dist/_virtual/namespace.mjs.map +0 -1
  653. package/dist/_virtual/nesting.js +0 -5
  654. package/dist/_virtual/nesting.js.map +0 -1
  655. package/dist/_virtual/nesting.mjs +0 -5
  656. package/dist/_virtual/nesting.mjs.map +0 -1
  657. package/dist/_virtual/node.js +0 -5
  658. package/dist/_virtual/node.js.map +0 -1
  659. package/dist/_virtual/node.mjs +0 -5
  660. package/dist/_virtual/node.mjs.map +0 -1
  661. package/dist/_virtual/parser.js +0 -5
  662. package/dist/_virtual/parser.js.map +0 -1
  663. package/dist/_virtual/parser.mjs +0 -5
  664. package/dist/_virtual/parser.mjs.map +0 -1
  665. package/dist/_virtual/picocolors.browser.js +0 -5
  666. package/dist/_virtual/picocolors.browser.js.map +0 -1
  667. package/dist/_virtual/picocolors.browser.mjs +0 -5
  668. package/dist/_virtual/picocolors.browser.mjs.map +0 -1
  669. package/dist/_virtual/postcss.js +0 -7
  670. package/dist/_virtual/postcss.js.map +0 -1
  671. package/dist/_virtual/postcss.mjs +0 -8
  672. package/dist/_virtual/postcss.mjs.map +0 -1
  673. package/dist/_virtual/processor.js +0 -5
  674. package/dist/_virtual/processor.js.map +0 -1
  675. package/dist/_virtual/processor.mjs +0 -5
  676. package/dist/_virtual/processor.mjs.map +0 -1
  677. package/dist/_virtual/pseudo.js +0 -5
  678. package/dist/_virtual/pseudo.js.map +0 -1
  679. package/dist/_virtual/pseudo.mjs +0 -5
  680. package/dist/_virtual/pseudo.mjs.map +0 -1
  681. package/dist/_virtual/root.js +0 -5
  682. package/dist/_virtual/root.js.map +0 -1
  683. package/dist/_virtual/root.mjs +0 -5
  684. package/dist/_virtual/root.mjs.map +0 -1
  685. package/dist/_virtual/selector.js +0 -5
  686. package/dist/_virtual/selector.js.map +0 -1
  687. package/dist/_virtual/selector.mjs +0 -5
  688. package/dist/_virtual/selector.mjs.map +0 -1
  689. package/dist/_virtual/sortAscending.js +0 -5
  690. package/dist/_virtual/sortAscending.js.map +0 -1
  691. package/dist/_virtual/sortAscending.mjs +0 -5
  692. package/dist/_virtual/sortAscending.mjs.map +0 -1
  693. package/dist/_virtual/string.js +0 -5
  694. package/dist/_virtual/string.js.map +0 -1
  695. package/dist/_virtual/string.mjs +0 -5
  696. package/dist/_virtual/string.mjs.map +0 -1
  697. package/dist/_virtual/stripComments.js +0 -5
  698. package/dist/_virtual/stripComments.js.map +0 -1
  699. package/dist/_virtual/stripComments.mjs +0 -5
  700. package/dist/_virtual/stripComments.mjs.map +0 -1
  701. package/dist/_virtual/symbols.js +0 -5
  702. package/dist/_virtual/symbols.js.map +0 -1
  703. package/dist/_virtual/symbols.mjs +0 -5
  704. package/dist/_virtual/symbols.mjs.map +0 -1
  705. package/dist/_virtual/tag.js +0 -5
  706. package/dist/_virtual/tag.js.map +0 -1
  707. package/dist/_virtual/tag.mjs +0 -5
  708. package/dist/_virtual/tag.mjs.map +0 -1
  709. package/dist/_virtual/tokenTypes.js +0 -5
  710. package/dist/_virtual/tokenTypes.js.map +0 -1
  711. package/dist/_virtual/tokenTypes.mjs +0 -5
  712. package/dist/_virtual/tokenTypes.mjs.map +0 -1
  713. package/dist/_virtual/tokenize.js +0 -5
  714. package/dist/_virtual/tokenize.js.map +0 -1
  715. package/dist/_virtual/tokenize.mjs +0 -5
  716. package/dist/_virtual/tokenize.mjs.map +0 -1
  717. package/dist/_virtual/types.js +0 -5
  718. package/dist/_virtual/types.js.map +0 -1
  719. package/dist/_virtual/types.mjs +0 -5
  720. package/dist/_virtual/types.mjs.map +0 -1
  721. package/dist/_virtual/unesc.js +0 -5
  722. package/dist/_virtual/unesc.js.map +0 -1
  723. package/dist/_virtual/unesc.mjs +0 -5
  724. package/dist/_virtual/unesc.mjs.map +0 -1
  725. package/dist/_virtual/universal.js +0 -5
  726. package/dist/_virtual/universal.js.map +0 -1
  727. package/dist/_virtual/universal.mjs +0 -5
  728. package/dist/_virtual/universal.mjs.map +0 -1
  729. package/dist/node_modules/@csstools/selector-specificity/dist/index.js +0 -96
  730. package/dist/node_modules/@csstools/selector-specificity/dist/index.js.map +0 -1
  731. package/dist/node_modules/@csstools/selector-specificity/dist/index.mjs +0 -96
  732. package/dist/node_modules/@csstools/selector-specificity/dist/index.mjs.map +0 -1
  733. package/dist/node_modules/camelcase-css/index-es5.js +0 -26
  734. package/dist/node_modules/camelcase-css/index-es5.js.map +0 -1
  735. package/dist/node_modules/camelcase-css/index-es5.mjs +0 -26
  736. package/dist/node_modules/camelcase-css/index-es5.mjs.map +0 -1
  737. package/dist/node_modules/cssesc/cssesc.js +0 -95
  738. package/dist/node_modules/cssesc/cssesc.js.map +0 -1
  739. package/dist/node_modules/cssesc/cssesc.mjs +0 -95
  740. package/dist/node_modules/cssesc/cssesc.mjs.map +0 -1
  741. package/dist/node_modules/nanoid/non-secure/index.js +0 -31
  742. package/dist/node_modules/nanoid/non-secure/index.js.map +0 -1
  743. package/dist/node_modules/nanoid/non-secure/index.mjs +0 -31
  744. package/dist/node_modules/nanoid/non-secure/index.mjs.map +0 -1
  745. package/dist/node_modules/picocolors/picocolors.browser.js +0 -17
  746. package/dist/node_modules/picocolors/picocolors.browser.js.map +0 -1
  747. package/dist/node_modules/picocolors/picocolors.browser.mjs +0 -17
  748. package/dist/node_modules/picocolors/picocolors.browser.mjs.map +0 -1
  749. package/dist/node_modules/postcss/lib/at-rule.js +0 -30
  750. package/dist/node_modules/postcss/lib/at-rule.js.map +0 -1
  751. package/dist/node_modules/postcss/lib/at-rule.mjs +0 -30
  752. package/dist/node_modules/postcss/lib/at-rule.mjs.map +0 -1
  753. package/dist/node_modules/postcss/lib/comment.js +0 -21
  754. package/dist/node_modules/postcss/lib/comment.js.map +0 -1
  755. package/dist/node_modules/postcss/lib/comment.mjs +0 -21
  756. package/dist/node_modules/postcss/lib/comment.mjs.map +0 -1
  757. package/dist/node_modules/postcss/lib/container.js +0 -383
  758. package/dist/node_modules/postcss/lib/container.js.map +0 -1
  759. package/dist/node_modules/postcss/lib/container.mjs +0 -383
  760. package/dist/node_modules/postcss/lib/container.mjs.map +0 -1
  761. package/dist/node_modules/postcss/lib/css-syntax-error.js +0 -92
  762. package/dist/node_modules/postcss/lib/css-syntax-error.js.map +0 -1
  763. package/dist/node_modules/postcss/lib/css-syntax-error.mjs +0 -92
  764. package/dist/node_modules/postcss/lib/css-syntax-error.mjs.map +0 -1
  765. package/dist/node_modules/postcss/lib/declaration.js +0 -27
  766. package/dist/node_modules/postcss/lib/declaration.js.map +0 -1
  767. package/dist/node_modules/postcss/lib/declaration.mjs +0 -27
  768. package/dist/node_modules/postcss/lib/declaration.mjs.map +0 -1
  769. package/dist/node_modules/postcss/lib/document.js +0 -34
  770. package/dist/node_modules/postcss/lib/document.js.map +0 -1
  771. package/dist/node_modules/postcss/lib/document.mjs +0 -34
  772. package/dist/node_modules/postcss/lib/document.mjs.map +0 -1
  773. package/dist/node_modules/postcss/lib/fromJSON.js +0 -67
  774. package/dist/node_modules/postcss/lib/fromJSON.js.map +0 -1
  775. package/dist/node_modules/postcss/lib/fromJSON.mjs +0 -67
  776. package/dist/node_modules/postcss/lib/fromJSON.mjs.map +0 -1
  777. package/dist/node_modules/postcss/lib/input.js +0 -216
  778. package/dist/node_modules/postcss/lib/input.js.map +0 -1
  779. package/dist/node_modules/postcss/lib/input.mjs +0 -216
  780. package/dist/node_modules/postcss/lib/input.mjs.map +0 -1
  781. package/dist/node_modules/postcss/lib/lazy-result.js +0 -467
  782. package/dist/node_modules/postcss/lib/lazy-result.js.map +0 -1
  783. package/dist/node_modules/postcss/lib/lazy-result.mjs +0 -467
  784. package/dist/node_modules/postcss/lib/lazy-result.mjs.map +0 -1
  785. package/dist/node_modules/postcss/lib/list.js +0 -60
  786. package/dist/node_modules/postcss/lib/list.js.map +0 -1
  787. package/dist/node_modules/postcss/lib/list.mjs +0 -60
  788. package/dist/node_modules/postcss/lib/list.mjs.map +0 -1
  789. package/dist/node_modules/postcss/lib/map-generator.js +0 -314
  790. package/dist/node_modules/postcss/lib/map-generator.js.map +0 -1
  791. package/dist/node_modules/postcss/lib/map-generator.mjs +0 -314
  792. package/dist/node_modules/postcss/lib/map-generator.mjs.map +0 -1
  793. package/dist/node_modules/postcss/lib/no-work-result.js +0 -113
  794. package/dist/node_modules/postcss/lib/no-work-result.js.map +0 -1
  795. package/dist/node_modules/postcss/lib/no-work-result.mjs +0 -113
  796. package/dist/node_modules/postcss/lib/no-work-result.mjs.map +0 -1
  797. package/dist/node_modules/postcss/lib/node.js +0 -335
  798. package/dist/node_modules/postcss/lib/node.js.map +0 -1
  799. package/dist/node_modules/postcss/lib/node.mjs +0 -335
  800. package/dist/node_modules/postcss/lib/node.mjs.map +0 -1
  801. package/dist/node_modules/postcss/lib/parse.js +0 -30
  802. package/dist/node_modules/postcss/lib/parse.js.map +0 -1
  803. package/dist/node_modules/postcss/lib/parse.mjs +0 -30
  804. package/dist/node_modules/postcss/lib/parse.mjs.map +0 -1
  805. package/dist/node_modules/postcss/lib/parser.js +0 -543
  806. package/dist/node_modules/postcss/lib/parser.js.map +0 -1
  807. package/dist/node_modules/postcss/lib/parser.mjs +0 -543
  808. package/dist/node_modules/postcss/lib/parser.mjs.map +0 -1
  809. package/dist/node_modules/postcss/lib/postcss.js +0 -28
  810. package/dist/node_modules/postcss/lib/postcss.js.map +0 -1
  811. package/dist/node_modules/postcss/lib/postcss.mjs +0 -29
  812. package/dist/node_modules/postcss/lib/postcss.mjs.map +0 -1
  813. package/dist/node_modules/postcss/lib/postcss2.js +0 -110
  814. package/dist/node_modules/postcss/lib/postcss2.js.map +0 -1
  815. package/dist/node_modules/postcss/lib/postcss2.mjs +0 -110
  816. package/dist/node_modules/postcss/lib/postcss2.mjs.map +0 -1
  817. package/dist/node_modules/postcss/lib/previous-map.js +0 -123
  818. package/dist/node_modules/postcss/lib/previous-map.js.map +0 -1
  819. package/dist/node_modules/postcss/lib/previous-map.mjs +0 -123
  820. package/dist/node_modules/postcss/lib/previous-map.mjs.map +0 -1
  821. package/dist/node_modules/postcss/lib/processor.js +0 -61
  822. package/dist/node_modules/postcss/lib/processor.js.map +0 -1
  823. package/dist/node_modules/postcss/lib/processor.mjs +0 -61
  824. package/dist/node_modules/postcss/lib/processor.mjs.map +0 -1
  825. package/dist/node_modules/postcss/lib/result.js +0 -44
  826. package/dist/node_modules/postcss/lib/result.js.map +0 -1
  827. package/dist/node_modules/postcss/lib/result.mjs +0 -44
  828. package/dist/node_modules/postcss/lib/result.mjs.map +0 -1
  829. package/dist/node_modules/postcss/lib/root.js +0 -58
  830. package/dist/node_modules/postcss/lib/root.js.map +0 -1
  831. package/dist/node_modules/postcss/lib/root.mjs +0 -58
  832. package/dist/node_modules/postcss/lib/root.mjs.map +0 -1
  833. package/dist/node_modules/postcss/lib/rule.js +0 -33
  834. package/dist/node_modules/postcss/lib/rule.js.map +0 -1
  835. package/dist/node_modules/postcss/lib/rule.mjs +0 -33
  836. package/dist/node_modules/postcss/lib/rule.mjs.map +0 -1
  837. package/dist/node_modules/postcss/lib/stringifier.js +0 -308
  838. package/dist/node_modules/postcss/lib/stringifier.js.map +0 -1
  839. package/dist/node_modules/postcss/lib/stringifier.mjs +0 -308
  840. package/dist/node_modules/postcss/lib/stringifier.mjs.map +0 -1
  841. package/dist/node_modules/postcss/lib/stringify.js +0 -19
  842. package/dist/node_modules/postcss/lib/stringify.js.map +0 -1
  843. package/dist/node_modules/postcss/lib/stringify.mjs +0 -19
  844. package/dist/node_modules/postcss/lib/stringify.mjs.map +0 -1
  845. package/dist/node_modules/postcss/lib/symbols.js +0 -13
  846. package/dist/node_modules/postcss/lib/symbols.js.map +0 -1
  847. package/dist/node_modules/postcss/lib/symbols.mjs +0 -13
  848. package/dist/node_modules/postcss/lib/symbols.mjs.map +0 -1
  849. package/dist/node_modules/postcss/lib/tokenize.js +0 -219
  850. package/dist/node_modules/postcss/lib/tokenize.js.map +0 -1
  851. package/dist/node_modules/postcss/lib/tokenize.mjs +0 -219
  852. package/dist/node_modules/postcss/lib/tokenize.mjs.map +0 -1
  853. package/dist/node_modules/postcss/lib/warning.js +0 -40
  854. package/dist/node_modules/postcss/lib/warning.js.map +0 -1
  855. package/dist/node_modules/postcss/lib/warning.mjs +0 -40
  856. package/dist/node_modules/postcss/lib/warning.mjs.map +0 -1
  857. package/dist/node_modules/postcss-js/async.js +0 -27
  858. package/dist/node_modules/postcss-js/async.js.map +0 -1
  859. package/dist/node_modules/postcss-js/async.mjs +0 -27
  860. package/dist/node_modules/postcss-js/async.mjs.map +0 -1
  861. package/dist/node_modules/postcss-js/index.js +0 -8
  862. package/dist/node_modules/postcss-js/index.js.map +0 -1
  863. package/dist/node_modules/postcss-js/index.mjs +0 -9
  864. package/dist/node_modules/postcss-js/index.mjs.map +0 -1
  865. package/dist/node_modules/postcss-js/index2.js +0 -25
  866. package/dist/node_modules/postcss-js/index2.js.map +0 -1
  867. package/dist/node_modules/postcss-js/index2.mjs +0 -25
  868. package/dist/node_modules/postcss-js/index2.mjs.map +0 -1
  869. package/dist/node_modules/postcss-js/objectifier.js +0 -92
  870. package/dist/node_modules/postcss-js/objectifier.js.map +0 -1
  871. package/dist/node_modules/postcss-js/objectifier.mjs +0 -92
  872. package/dist/node_modules/postcss-js/objectifier.mjs.map +0 -1
  873. package/dist/node_modules/postcss-js/parser.js +0 -102
  874. package/dist/node_modules/postcss-js/parser.js.map +0 -1
  875. package/dist/node_modules/postcss-js/parser.mjs +0 -102
  876. package/dist/node_modules/postcss-js/parser.mjs.map +0 -1
  877. package/dist/node_modules/postcss-js/process-result.js +0 -22
  878. package/dist/node_modules/postcss-js/process-result.js.map +0 -1
  879. package/dist/node_modules/postcss-js/process-result.mjs +0 -22
  880. package/dist/node_modules/postcss-js/process-result.mjs.map +0 -1
  881. package/dist/node_modules/postcss-js/sync.js +0 -24
  882. package/dist/node_modules/postcss-js/sync.js.map +0 -1
  883. package/dist/node_modules/postcss-js/sync.mjs +0 -24
  884. package/dist/node_modules/postcss-js/sync.mjs.map +0 -1
  885. package/dist/node_modules/postcss-nesting/dist/index.js +0 -267
  886. package/dist/node_modules/postcss-nesting/dist/index.js.map +0 -1
  887. package/dist/node_modules/postcss-nesting/dist/index.mjs +0 -268
  888. package/dist/node_modules/postcss-nesting/dist/index.mjs.map +0 -1
  889. package/dist/node_modules/postcss-selector-parser/dist/index.js +0 -67
  890. package/dist/node_modules/postcss-selector-parser/dist/index.js.map +0 -1
  891. package/dist/node_modules/postcss-selector-parser/dist/index.mjs +0 -67
  892. package/dist/node_modules/postcss-selector-parser/dist/index.mjs.map +0 -1
  893. package/dist/node_modules/postcss-selector-parser/dist/parser.js +0 -1038
  894. package/dist/node_modules/postcss-selector-parser/dist/parser.js.map +0 -1
  895. package/dist/node_modules/postcss-selector-parser/dist/parser.mjs +0 -1038
  896. package/dist/node_modules/postcss-selector-parser/dist/parser.mjs.map +0 -1
  897. package/dist/node_modules/postcss-selector-parser/dist/processor.js +0 -137
  898. package/dist/node_modules/postcss-selector-parser/dist/processor.js.map +0 -1
  899. package/dist/node_modules/postcss-selector-parser/dist/processor.mjs +0 -137
  900. package/dist/node_modules/postcss-selector-parser/dist/processor.mjs.map +0 -1
  901. package/dist/node_modules/postcss-selector-parser/dist/selectors/attribute.js +0 -404
  902. package/dist/node_modules/postcss-selector-parser/dist/selectors/attribute.js.map +0 -1
  903. package/dist/node_modules/postcss-selector-parser/dist/selectors/attribute.mjs +0 -404
  904. package/dist/node_modules/postcss-selector-parser/dist/selectors/attribute.mjs.map +0 -1
  905. package/dist/node_modules/postcss-selector-parser/dist/selectors/className.js +0 -89
  906. package/dist/node_modules/postcss-selector-parser/dist/selectors/className.js.map +0 -1
  907. package/dist/node_modules/postcss-selector-parser/dist/selectors/className.mjs +0 -89
  908. package/dist/node_modules/postcss-selector-parser/dist/selectors/className.mjs.map +0 -1
  909. package/dist/node_modules/postcss-selector-parser/dist/selectors/combinator.js +0 -46
  910. package/dist/node_modules/postcss-selector-parser/dist/selectors/combinator.js.map +0 -1
  911. package/dist/node_modules/postcss-selector-parser/dist/selectors/combinator.mjs +0 -46
  912. package/dist/node_modules/postcss-selector-parser/dist/selectors/combinator.mjs.map +0 -1
  913. package/dist/node_modules/postcss-selector-parser/dist/selectors/comment.js +0 -46
  914. package/dist/node_modules/postcss-selector-parser/dist/selectors/comment.js.map +0 -1
  915. package/dist/node_modules/postcss-selector-parser/dist/selectors/comment.mjs +0 -46
  916. package/dist/node_modules/postcss-selector-parser/dist/selectors/comment.mjs.map +0 -1
  917. package/dist/node_modules/postcss-selector-parser/dist/selectors/constructors.js +0 -88
  918. package/dist/node_modules/postcss-selector-parser/dist/selectors/constructors.js.map +0 -1
  919. package/dist/node_modules/postcss-selector-parser/dist/selectors/constructors.mjs +0 -88
  920. package/dist/node_modules/postcss-selector-parser/dist/selectors/constructors.mjs.map +0 -1
  921. package/dist/node_modules/postcss-selector-parser/dist/selectors/container.js +0 -391
  922. package/dist/node_modules/postcss-selector-parser/dist/selectors/container.js.map +0 -1
  923. package/dist/node_modules/postcss-selector-parser/dist/selectors/container.mjs +0 -391
  924. package/dist/node_modules/postcss-selector-parser/dist/selectors/container.mjs.map +0 -1
  925. package/dist/node_modules/postcss-selector-parser/dist/selectors/guards.js +0 -68
  926. package/dist/node_modules/postcss-selector-parser/dist/selectors/guards.js.map +0 -1
  927. package/dist/node_modules/postcss-selector-parser/dist/selectors/guards.mjs +0 -68
  928. package/dist/node_modules/postcss-selector-parser/dist/selectors/guards.mjs.map +0 -1
  929. package/dist/node_modules/postcss-selector-parser/dist/selectors/id.js +0 -50
  930. package/dist/node_modules/postcss-selector-parser/dist/selectors/id.js.map +0 -1
  931. package/dist/node_modules/postcss-selector-parser/dist/selectors/id.mjs +0 -50
  932. package/dist/node_modules/postcss-selector-parser/dist/selectors/id.mjs.map +0 -1
  933. package/dist/node_modules/postcss-selector-parser/dist/selectors/index.js +0 -35
  934. package/dist/node_modules/postcss-selector-parser/dist/selectors/index.js.map +0 -1
  935. package/dist/node_modules/postcss-selector-parser/dist/selectors/index.mjs +0 -35
  936. package/dist/node_modules/postcss-selector-parser/dist/selectors/index.mjs.map +0 -1
  937. package/dist/node_modules/postcss-selector-parser/dist/selectors/namespace.js +0 -117
  938. package/dist/node_modules/postcss-selector-parser/dist/selectors/namespace.js.map +0 -1
  939. package/dist/node_modules/postcss-selector-parser/dist/selectors/namespace.mjs +0 -117
  940. package/dist/node_modules/postcss-selector-parser/dist/selectors/namespace.mjs.map +0 -1
  941. package/dist/node_modules/postcss-selector-parser/dist/selectors/nesting.js +0 -47
  942. package/dist/node_modules/postcss-selector-parser/dist/selectors/nesting.js.map +0 -1
  943. package/dist/node_modules/postcss-selector-parser/dist/selectors/nesting.mjs +0 -47
  944. package/dist/node_modules/postcss-selector-parser/dist/selectors/nesting.mjs.map +0 -1
  945. package/dist/node_modules/postcss-selector-parser/dist/selectors/node.js +0 -183
  946. package/dist/node_modules/postcss-selector-parser/dist/selectors/node.js.map +0 -1
  947. package/dist/node_modules/postcss-selector-parser/dist/selectors/node.mjs +0 -183
  948. package/dist/node_modules/postcss-selector-parser/dist/selectors/node.mjs.map +0 -1
  949. package/dist/node_modules/postcss-selector-parser/dist/selectors/pseudo.js +0 -51
  950. package/dist/node_modules/postcss-selector-parser/dist/selectors/pseudo.js.map +0 -1
  951. package/dist/node_modules/postcss-selector-parser/dist/selectors/pseudo.mjs +0 -51
  952. package/dist/node_modules/postcss-selector-parser/dist/selectors/pseudo.mjs.map +0 -1
  953. package/dist/node_modules/postcss-selector-parser/dist/selectors/root.js +0 -81
  954. package/dist/node_modules/postcss-selector-parser/dist/selectors/root.js.map +0 -1
  955. package/dist/node_modules/postcss-selector-parser/dist/selectors/root.mjs +0 -81
  956. package/dist/node_modules/postcss-selector-parser/dist/selectors/root.mjs.map +0 -1
  957. package/dist/node_modules/postcss-selector-parser/dist/selectors/selector.js +0 -46
  958. package/dist/node_modules/postcss-selector-parser/dist/selectors/selector.js.map +0 -1
  959. package/dist/node_modules/postcss-selector-parser/dist/selectors/selector.mjs +0 -46
  960. package/dist/node_modules/postcss-selector-parser/dist/selectors/selector.mjs.map +0 -1
  961. package/dist/node_modules/postcss-selector-parser/dist/selectors/string.js +0 -46
  962. package/dist/node_modules/postcss-selector-parser/dist/selectors/string.js.map +0 -1
  963. package/dist/node_modules/postcss-selector-parser/dist/selectors/string.mjs +0 -46
  964. package/dist/node_modules/postcss-selector-parser/dist/selectors/string.mjs.map +0 -1
  965. package/dist/node_modules/postcss-selector-parser/dist/selectors/tag.js +0 -46
  966. package/dist/node_modules/postcss-selector-parser/dist/selectors/tag.js.map +0 -1
  967. package/dist/node_modules/postcss-selector-parser/dist/selectors/tag.mjs +0 -46
  968. package/dist/node_modules/postcss-selector-parser/dist/selectors/tag.mjs.map +0 -1
  969. package/dist/node_modules/postcss-selector-parser/dist/selectors/types.js +0 -37
  970. package/dist/node_modules/postcss-selector-parser/dist/selectors/types.js.map +0 -1
  971. package/dist/node_modules/postcss-selector-parser/dist/selectors/types.mjs +0 -37
  972. package/dist/node_modules/postcss-selector-parser/dist/selectors/types.mjs.map +0 -1
  973. package/dist/node_modules/postcss-selector-parser/dist/selectors/universal.js +0 -47
  974. package/dist/node_modules/postcss-selector-parser/dist/selectors/universal.js.map +0 -1
  975. package/dist/node_modules/postcss-selector-parser/dist/selectors/universal.mjs +0 -47
  976. package/dist/node_modules/postcss-selector-parser/dist/selectors/universal.mjs.map +0 -1
  977. package/dist/node_modules/postcss-selector-parser/dist/sortAscending.js +0 -21
  978. package/dist/node_modules/postcss-selector-parser/dist/sortAscending.js.map +0 -1
  979. package/dist/node_modules/postcss-selector-parser/dist/sortAscending.mjs +0 -21
  980. package/dist/node_modules/postcss-selector-parser/dist/sortAscending.mjs.map +0 -1
  981. package/dist/node_modules/postcss-selector-parser/dist/tokenTypes.js +0 -75
  982. package/dist/node_modules/postcss-selector-parser/dist/tokenTypes.js.map +0 -1
  983. package/dist/node_modules/postcss-selector-parser/dist/tokenTypes.mjs +0 -75
  984. package/dist/node_modules/postcss-selector-parser/dist/tokenTypes.mjs.map +0 -1
  985. package/dist/node_modules/postcss-selector-parser/dist/tokenize.js +0 -264
  986. package/dist/node_modules/postcss-selector-parser/dist/tokenize.js.map +0 -1
  987. package/dist/node_modules/postcss-selector-parser/dist/tokenize.mjs +0 -264
  988. package/dist/node_modules/postcss-selector-parser/dist/tokenize.mjs.map +0 -1
  989. package/dist/node_modules/postcss-selector-parser/dist/util/ensureObject.js +0 -28
  990. package/dist/node_modules/postcss-selector-parser/dist/util/ensureObject.js.map +0 -1
  991. package/dist/node_modules/postcss-selector-parser/dist/util/ensureObject.mjs +0 -28
  992. package/dist/node_modules/postcss-selector-parser/dist/util/ensureObject.mjs.map +0 -1
  993. package/dist/node_modules/postcss-selector-parser/dist/util/getProp.js +0 -29
  994. package/dist/node_modules/postcss-selector-parser/dist/util/getProp.js.map +0 -1
  995. package/dist/node_modules/postcss-selector-parser/dist/util/getProp.mjs +0 -29
  996. package/dist/node_modules/postcss-selector-parser/dist/util/getProp.mjs.map +0 -1
  997. package/dist/node_modules/postcss-selector-parser/dist/util/index.js +0 -28
  998. package/dist/node_modules/postcss-selector-parser/dist/util/index.js.map +0 -1
  999. package/dist/node_modules/postcss-selector-parser/dist/util/index.mjs +0 -28
  1000. package/dist/node_modules/postcss-selector-parser/dist/util/index.mjs.map +0 -1
  1001. package/dist/node_modules/postcss-selector-parser/dist/util/stripComments.js +0 -32
  1002. package/dist/node_modules/postcss-selector-parser/dist/util/stripComments.js.map +0 -1
  1003. package/dist/node_modules/postcss-selector-parser/dist/util/stripComments.mjs +0 -32
  1004. package/dist/node_modules/postcss-selector-parser/dist/util/stripComments.mjs.map +0 -1
  1005. package/dist/node_modules/postcss-selector-parser/dist/util/unesc.js +0 -68
  1006. package/dist/node_modules/postcss-selector-parser/dist/util/unesc.js.map +0 -1
  1007. package/dist/node_modules/postcss-selector-parser/dist/util/unesc.mjs +0 -68
  1008. package/dist/node_modules/postcss-selector-parser/dist/util/unesc.mjs.map +0 -1
  1009. package/dist/node_modules/util-deprecate/browser.js +0 -43
  1010. package/dist/node_modules/util-deprecate/browser.js.map +0 -1
  1011. package/dist/node_modules/util-deprecate/browser.mjs +0 -43
  1012. package/dist/node_modules/util-deprecate/browser.mjs.map +0 -1
  1013. package/dist/utilities/accessibility/index.d.ts +0 -13
  1014. package/dist/utilities/accessibility/index.d.ts.map +0 -1
  1015. package/dist/utilities/accessibility/index.js +0 -89
  1016. package/dist/utilities/accessibility/index.js.map +0 -1
  1017. package/dist/utilities/accessibility/index.mjs +0 -89
  1018. package/dist/utilities/accessibility/index.mjs.map +0 -1
  1019. package/dist/utilities/assets/icons.d.ts +0 -26
  1020. package/dist/utilities/assets/icons.d.ts.map +0 -1
  1021. package/dist/utilities/assets/icons.js +0 -53
  1022. package/dist/utilities/assets/icons.js.map +0 -1
  1023. package/dist/utilities/assets/icons.mjs +0 -53
  1024. package/dist/utilities/assets/icons.mjs.map +0 -1
  1025. package/dist/utilities/assets/index.d.ts +0 -4
  1026. package/dist/utilities/assets/index.d.ts.map +0 -1
  1027. package/dist/utilities/assets/index.js +0 -9
  1028. package/dist/utilities/assets/index.js.map +0 -1
  1029. package/dist/utilities/assets/index.mjs +0 -9
  1030. package/dist/utilities/assets/index.mjs.map +0 -1
  1031. package/dist/utilities/assets/logos.d.ts +0 -6
  1032. package/dist/utilities/assets/logos.d.ts.map +0 -1
  1033. package/dist/utilities/assets/logos.js +0 -14
  1034. package/dist/utilities/assets/logos.js.map +0 -1
  1035. package/dist/utilities/assets/logos.mjs +0 -14
  1036. package/dist/utilities/assets/logos.mjs.map +0 -1
  1037. package/dist/utilities/assets/social.d.ts +0 -8
  1038. package/dist/utilities/assets/social.d.ts.map +0 -1
  1039. package/dist/utilities/assets/social.js +0 -17
  1040. package/dist/utilities/assets/social.js.map +0 -1
  1041. package/dist/utilities/assets/social.mjs +0 -17
  1042. package/dist/utilities/assets/social.mjs.map +0 -1
  1043. package/dist/utilities/date.d.ts +0 -12
  1044. package/dist/utilities/date.d.ts.map +0 -1
  1045. package/dist/utilities/date.js +0 -36
  1046. package/dist/utilities/date.js.map +0 -1
  1047. package/dist/utilities/date.mjs +0 -36
  1048. package/dist/utilities/date.mjs.map +0 -1
  1049. package/dist/utilities/index.d.ts +0 -10
  1050. package/dist/utilities/index.d.ts.map +0 -1
  1051. package/dist/utilities/js-events/index.d.ts +0 -5
  1052. package/dist/utilities/js-events/index.d.ts.map +0 -1
  1053. package/dist/utilities/js-events/index.js +0 -37
  1054. package/dist/utilities/js-events/index.js.map +0 -1
  1055. package/dist/utilities/js-events/index.mjs +0 -37
  1056. package/dist/utilities/js-events/index.mjs.map +0 -1
  1057. package/dist/utilities/markup/create.d.ts +0 -13
  1058. package/dist/utilities/markup/create.d.ts.map +0 -1
  1059. package/dist/utilities/markup/create.js +0 -95
  1060. package/dist/utilities/markup/create.js.map +0 -1
  1061. package/dist/utilities/markup/create.mjs +0 -95
  1062. package/dist/utilities/markup/create.mjs.map +0 -1
  1063. package/dist/utilities/markup/get.d.ts +0 -4
  1064. package/dist/utilities/markup/get.d.ts.map +0 -1
  1065. package/dist/utilities/markup/get.js +0 -18
  1066. package/dist/utilities/markup/get.js.map +0 -1
  1067. package/dist/utilities/markup/get.mjs +0 -18
  1068. package/dist/utilities/markup/get.mjs.map +0 -1
  1069. package/dist/utilities/markup/index.d.ts +0 -5
  1070. package/dist/utilities/markup/index.d.ts.map +0 -1
  1071. package/dist/utilities/markup/index.js +0 -11
  1072. package/dist/utilities/markup/index.js.map +0 -1
  1073. package/dist/utilities/markup/index.mjs +0 -11
  1074. package/dist/utilities/markup/index.mjs.map +0 -1
  1075. package/dist/utilities/markup/locate.d.ts +0 -5
  1076. package/dist/utilities/markup/locate.d.ts.map +0 -1
  1077. package/dist/utilities/markup/locate.js +0 -26
  1078. package/dist/utilities/markup/locate.js.map +0 -1
  1079. package/dist/utilities/markup/locate.mjs +0 -26
  1080. package/dist/utilities/markup/locate.mjs.map +0 -1
  1081. package/dist/utilities/markup/modify.d.ts +0 -21
  1082. package/dist/utilities/markup/modify.d.ts.map +0 -1
  1083. package/dist/utilities/markup/modify.js +0 -93
  1084. package/dist/utilities/markup/modify.js.map +0 -1
  1085. package/dist/utilities/markup/modify.mjs +0 -93
  1086. package/dist/utilities/markup/modify.mjs.map +0 -1
  1087. package/dist/utilities/network/index.d.ts +0 -10
  1088. package/dist/utilities/network/index.d.ts.map +0 -1
  1089. package/dist/utilities/network/index.js +0 -35
  1090. package/dist/utilities/network/index.js.map +0 -1
  1091. package/dist/utilities/network/index.mjs +0 -35
  1092. package/dist/utilities/network/index.mjs.map +0 -1
  1093. package/dist/utilities/performance/index.d.ts +0 -2
  1094. package/dist/utilities/performance/index.d.ts.map +0 -1
  1095. package/dist/utilities/performance/index.js +0 -12
  1096. package/dist/utilities/performance/index.js.map +0 -1
  1097. package/dist/utilities/performance/index.mjs +0 -12
  1098. package/dist/utilities/performance/index.mjs.map +0 -1
  1099. package/dist/utilities/storage/index.d.ts +0 -2
  1100. package/dist/utilities/storage/index.d.ts.map +0 -1
  1101. package/dist/utilities/storage/index.js +0 -5
  1102. package/dist/utilities/storage/index.js.map +0 -1
  1103. package/dist/utilities/storage/index.mjs +0 -5
  1104. package/dist/utilities/storage/index.mjs.map +0 -1
  1105. package/dist/utilities/storage/local.d.ts +0 -7
  1106. package/dist/utilities/storage/local.d.ts.map +0 -1
  1107. package/dist/utilities/storage/local.js +0 -14
  1108. package/dist/utilities/storage/local.js.map +0 -1
  1109. package/dist/utilities/storage/local.mjs +0 -14
  1110. package/dist/utilities/storage/local.mjs.map +0 -1
  1111. package/dist/utilities/theme/animations.d.ts +0 -9
  1112. package/dist/utilities/theme/animations.d.ts.map +0 -1
  1113. package/dist/utilities/theme/animations.js +0 -70
  1114. package/dist/utilities/theme/animations.js.map +0 -1
  1115. package/dist/utilities/theme/animations.mjs +0 -70
  1116. package/dist/utilities/theme/animations.mjs.map +0 -1
  1117. package/dist/utilities/theme/assets.d.ts +0 -6
  1118. package/dist/utilities/theme/assets.d.ts.map +0 -1
  1119. package/dist/utilities/theme/assets.js +0 -17
  1120. package/dist/utilities/theme/assets.js.map +0 -1
  1121. package/dist/utilities/theme/assets.mjs +0 -17
  1122. package/dist/utilities/theme/assets.mjs.map +0 -1
  1123. package/dist/utilities/theme/index.d.ts +0 -11
  1124. package/dist/utilities/theme/index.d.ts.map +0 -1
  1125. package/dist/utilities/theme/index.js +0 -28
  1126. package/dist/utilities/theme/index.js.map +0 -1
  1127. package/dist/utilities/theme/index.mjs +0 -28
  1128. package/dist/utilities/theme/index.mjs.map +0 -1
  1129. package/dist/utilities/theme/media.d.ts +0 -12
  1130. package/dist/utilities/theme/media.d.ts.map +0 -1
  1131. package/dist/utilities/theme/media.js +0 -21
  1132. package/dist/utilities/theme/media.js.map +0 -1
  1133. package/dist/utilities/theme/media.mjs +0 -21
  1134. package/dist/utilities/theme/media.mjs.map +0 -1
  1135. package/dist/utilities.d.ts +0 -2
  1136. package/dist/utilities.js +0 -21
  1137. package/dist/utilities.js.map +0 -1
  1138. package/dist/utilities.mjs +0 -21
  1139. package/dist/utilities.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"card-stack.js","sources":["../../../../source/atomic/animations/brand/card-stack.ts"],"sourcesContent":["import * as Styles from '@universityofmaryland/web-styles-library';\nimport { ElementModel } from 'model';\nimport { assets } from 'atomic';\nimport { theme, accessibility } from 'utilities';\nimport { type ElementVisual } from '../../../_types';\n\ninterface CardStackProps {\n featured: HTMLImageElement | HTMLVideoElement;\n images: HTMLImageElement[];\n isExpandFeature: boolean;\n}\n\ninterface ConfigurationItem {\n column?: string;\n row?: string;\n zIndex?: number;\n featured?: boolean;\n matchWidth?: boolean;\n offset?: {\n top?: string;\n left?: string;\n right?: string;\n bottom?: string;\n };\n}\n\ninterface Configuration {\n count: number;\n layout: {\n gridTemplateColumns: string;\n gridTemplateRows: string;\n };\n items: ConfigurationItem[];\n}\n\nconst configuration: Configuration[] = [\n {\n count: 4,\n layout: {\n gridTemplateColumns: 'repeat(15, 10vw)',\n gridTemplateRows: 'repeat(15, 8vh)',\n },\n items: [\n {\n column: '3 / 8',\n row: '4 / 5',\n zIndex: 9,\n offset: {\n top: '-10%',\n left: '-5%',\n },\n },\n {\n column: '12 / 15',\n row: '2 / 6',\n offset: {\n top: '-1%',\n right: '-4%',\n },\n },\n {\n column: '4 / 7',\n row: '10 / 15',\n zIndex: 9,\n offset: {\n bottom: '-13%',\n left: '-4%',\n },\n },\n {\n column: '13 / 15',\n row: '10 / 14',\n offset: {\n right: '-8%',\n bottom: '-3%',\n },\n },\n ],\n },\n {\n count: 5,\n layout: {\n gridTemplateColumns: 'repeat(15, 10vw)',\n gridTemplateRows: 'repeat(15, 8vh)',\n },\n items: [\n {\n column: '2 / 6',\n row: '4 / 9',\n zIndex: 9,\n offset: {\n top: '-10%',\n left: '-6%',\n },\n },\n {\n column: '12 / 15',\n row: '2 / 5',\n offset: {\n top: '-3%',\n right: '-5%',\n },\n },\n {\n column: '10 / 12',\n row: '3 / 5',\n offset: {\n bottom: '-20%',\n right: '-1%',\n },\n },\n {\n column: '1 / 4',\n row: '8/ 13',\n zIndex: 9,\n offset: {\n bottom: '-10%',\n left: '-10%',\n },\n },\n {\n column: '12 / 15',\n row: '10 / 14',\n offset: {\n right: '-10%',\n bottom: '-7%',\n },\n },\n ],\n },\n {\n count: 6,\n layout: {\n gridTemplateColumns: 'repeat(15, 10vw)',\n gridTemplateRows: 'repeat(15, 8vh)',\n },\n items: [\n {\n column: '2 / 6',\n row: '4 / 9',\n zIndex: 9,\n offset: {\n top: '-10%',\n left: '-6%',\n },\n },\n {\n column: '12 / 15',\n row: '2 / 5',\n offset: {\n top: '-3%',\n right: '-5%',\n },\n },\n {\n column: '10 / 12',\n row: '3 / 5',\n offset: {\n bottom: '-20%',\n right: '-1%',\n },\n },\n {\n column: '12 / 15',\n row: '6 / 8',\n offset: {\n bottom: '-5%',\n right: '-20%',\n },\n },\n {\n column: '1 / 4',\n row: '8/ 13',\n zIndex: 9,\n offset: {\n bottom: '-10%',\n left: '-10%',\n },\n },\n {\n column: '12 / 15',\n row: '10 / 14',\n offset: {\n right: '-10%',\n bottom: '-7%',\n },\n },\n ],\n },\n {\n count: 7,\n layout: {\n gridTemplateColumns: 'repeat(15, 10vw)',\n gridTemplateRows: 'repeat(15, 8vh)',\n },\n items: [\n {\n column: '2 / 6',\n row: '4 / 9',\n zIndex: 9,\n offset: {\n top: '-10%',\n left: '-6%',\n },\n },\n {\n column: '12 / 15',\n row: '2 / 5',\n offset: {\n top: '-3%',\n right: '-5%',\n },\n },\n {\n column: '10 / 12',\n row: '3 / 5',\n offset: {\n bottom: '-20%',\n right: '-1%',\n },\n },\n {\n column: '12 / 15',\n row: '6 / 8',\n offset: {\n bottom: '-5%',\n right: '-20%',\n },\n },\n {\n column: '1 / 4',\n row: '8/ 13',\n zIndex: 9,\n offset: {\n bottom: '-10%',\n left: '-10%',\n },\n },\n {\n column: '12 / 15',\n row: '10 / 14',\n offset: {\n right: '-10%',\n bottom: '-7%',\n },\n },\n {\n column: '6 / 9',\n row: '10 / 15',\n offset: {\n right: '-10%',\n bottom: '-25%',\n },\n },\n ],\n },\n {\n count: 8,\n layout: {\n gridTemplateColumns: 'repeat(15, 10vw)',\n gridTemplateRows: 'repeat(15, 8vh)',\n },\n items: [\n {\n column: '2 / 6',\n row: '4 / 9',\n zIndex: 9,\n offset: {\n top: '-10%',\n left: '-6%',\n },\n },\n {\n column: '12 / 15',\n row: '2 / 5',\n offset: {\n top: '-3%',\n right: '-5%',\n },\n },\n {\n column: '10 / 12',\n row: '3 / 5',\n offset: {\n bottom: '-20%',\n right: '-1%',\n },\n },\n {\n column: '3 / 9',\n row: '1 / 3',\n offset: {\n right: '-10%',\n top: '-25%',\n },\n },\n {\n column: '12 / 15',\n row: '6 / 8',\n offset: {\n bottom: '-5%',\n right: '-20%',\n },\n },\n {\n column: '1 / 4',\n row: '8/ 13',\n zIndex: 9,\n offset: {\n bottom: '-10%',\n left: '-10%',\n },\n },\n {\n column: '12 / 15',\n row: '10 / 14',\n offset: {\n right: '-10%',\n bottom: '-7%',\n },\n },\n {\n column: '6 / 9',\n row: '10 / 15',\n offset: {\n right: '-10%',\n bottom: '-25%',\n },\n },\n ],\n },\n];\n\n// Class name constants\nconst STACK_CONTAINER_CLASS = 'brand-animations-card-stack';\nconst STACK_ELEMENT_CLASS = `${STACK_CONTAINER_CLASS}-element`;\nconst STACK_GRID_CLASS = `${STACK_CONTAINER_CLASS}-grid`;\nconst STACK_ITEM_CLASS = `${STACK_CONTAINER_CLASS}-item`;\nconst STACK_GRID_ERROR_CLASS = `${STACK_GRID_CLASS}-error`;\n\nconst KEY_FRAME_GRID_EXPAND = 'grid-expand';\nconst KEY_FRAME_GRID_ITEM = 'grid-item';\nconst KEY_FRAME_FEATURED_SIZE = 'featured-size';\n\nconst isPreferReducedMotion = accessibility.isPrefferdReducedMotion();\nconst isScrollTimelineSupported = () =>\n 'ScrollTimeline' in window || CSS.supports('animation-timeline', 'scroll()');\nconst isDisplayWithoutAnimation =\n isPreferReducedMotion || !isScrollTimelineSupported();\n\nconst getResponsiveSizes = () => {\n const windowWidth = window.innerWidth;\n\n if (windowWidth >= 1024) {\n return { width: 0.4, height: 0.4 };\n } else if (windowWidth >= 768) {\n return { width: 0.5, height: 0.5 };\n } else {\n return { width: 0.8, height: 0.5 };\n }\n};\n\nconst keyFrameGridExpand = `\n @keyframes ${KEY_FRAME_GRID_EXPAND} {\n to {\n transform: translate(0, 0);\n width: inherit;\n }\n }\n`;\n\nconst keyFrameGridItem = `\n @keyframes ${KEY_FRAME_GRID_ITEM} {\n to {\n opacity: 0;\n }\n }\n`;\n\nconst keyFrameFeaturedSize = `\n @keyframes ${KEY_FRAME_FEATURED_SIZE} {\n to {\n width: 100%;\n height: 100vh;\n top: 0%;\n }\n }\n`;\n\n/**\n * Waits for all media elements (images and videos) to load and render.\n *\n * @param container - The container element containing the media\n * @returns Promise that resolves when all media is loaded and rendered\n */\nconst waitForMediaLoad = async (container: HTMLElement): Promise<void> => {\n const images = Array.from(container.querySelectorAll('img'));\n const videos = Array.from(container.querySelectorAll('video'));\n\n const imagePromises = images.map((img) => {\n if (img.complete) {\n // Check if image loaded successfully or failed\n if (img.naturalWidth > 0) {\n return Promise.resolve();\n } else {\n // Image is complete but has no natural dimensions - it failed to load\n return Promise.reject(new Error(`Failed to load image: ${img.src}`));\n }\n }\n return new Promise<void>((resolve, reject) => {\n img.addEventListener('load', () => resolve(), { once: true });\n img.addEventListener(\n 'error',\n () => reject(new Error(`Failed to load image: ${img.src}`)),\n { once: true },\n );\n });\n });\n\n const videoPromises = videos.map((video) => {\n if (video.readyState >= 3) {\n return Promise.resolve();\n }\n return new Promise<void>((resolve, reject) => {\n video.addEventListener('loadeddata', () => resolve(), { once: true });\n video.addEventListener(\n 'error',\n () => reject(new Error(`Failed to load video: ${video.src}`)),\n { once: true },\n );\n });\n });\n\n await Promise.all([...imagePromises, ...videoPromises]);\n\n return new Promise<void>((resolve) => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n resolve();\n });\n });\n });\n};\n\n/**\n * Retrieves the configuration object for a specific element count.\n *\n * @param count - The number of elements to display\n * @returns The configuration object for the given count, or undefined if not found\n */\nconst getConfigurationByCount = (count: number) => {\n return configuration.find((c) => c.count === count);\n};\n\n/**\n * Gets the stack element from a grid item.\n *\n * @param gridItem - The grid item element\n * @param index - The index of the stack element\n * @returns The stack element or null if not found\n */\nconst getStackElementFromGridItem = (\n gridItem: HTMLElement,\n index: number,\n): HTMLElement | null => {\n return gridItem.querySelector(\n `.${STACK_ELEMENT_CLASS}-${index}`,\n ) as HTMLElement;\n};\n\n/**\n * Calculates the transform values (x, y) needed to center an element\n * relative to the brand-animations-card-stack-grid container with optional offset.\n *\n * @param element - The element to be centered\n * @param gridContainer - The grid container element\n * @param offset - Optional offset values in percentages\n * @returns Transform values {x, y} in pixels to center the element with offset\n */\nconst calculateCenterTransform = (\n element: HTMLElement,\n centerElement: HTMLElement,\n offset?: {\n top?: string;\n left?: string;\n right?: string;\n bottom?: string;\n },\n): { x: number; y: number } => {\n const elementRect = element.getBoundingClientRect();\n const centerRect = centerElement.getBoundingClientRect();\n\n const centerX = centerRect.left + centerRect.width / 2;\n const centerY = centerRect.top + centerRect.height / 2;\n\n const elementCenterX = elementRect.left + elementRect.width / 2;\n const elementCenterY = elementRect.top + elementRect.height / 2;\n\n let translateX = centerX - elementCenterX;\n let translateY = centerY - elementCenterY;\n\n if (offset) {\n const applyOffset = (\n value: string | undefined,\n dimension: number,\n ): number => {\n return value ? (parseFloat(value) / 100) * dimension : 0;\n };\n\n translateX += applyOffset(offset.left, centerRect.width);\n translateX -= applyOffset(offset.right, centerRect.width);\n translateY += applyOffset(offset.top, centerRect.height);\n translateY -= applyOffset(offset.bottom, centerRect.height);\n }\n\n return {\n x: translateX,\n y: translateY,\n };\n};\n\n/**\n * Clears animations from elements.\n *\n * @param featuredElement - The featured element\n * @param gridContainer - The grid container element\n */\nconst clearElementAnimations = (\n featuredElement: HTMLElement | null,\n gridContainer: HTMLElement | null,\n): void => {\n if (featuredElement) {\n featuredElement.style.animation = 'none';\n }\n if (gridContainer) {\n gridContainer.style.animation = 'none';\n }\n};\n\n/**\n * Checks if the current device is mobile based on viewport width.\n *\n * @returns True if device is mobile (width < 768px)\n */\nconst isMobileDevice = (): boolean => {\n return window.innerWidth < 768;\n};\n\n/**\n * Creates a resize handler function that only executes on actual window resizes.\n *\n * @param onResize - Callback to execute on resize\n * @param delay - Delay in milliseconds before executing callback\n * @returns Resize handler function\n */\nconst createResizeHandler = (\n onResize: () => void,\n delay: number = 300,\n): (() => void) => {\n let timeoutId: NodeJS.Timeout | null = null;\n let previousWidth = window.innerWidth;\n\n return () => {\n const currentWidth = window.innerWidth;\n\n // Only trigger on width changes (actual resize, not mobile scroll)\n if (currentWidth === previousWidth) {\n return;\n }\n\n previousWidth = currentWidth;\n\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n onResize();\n timeoutId = null;\n }, delay);\n };\n};\n\n/**\n * Sets opacity with optional transition.\n *\n * @param element - The element to modify\n * @param opacity - The opacity value\n * @param transition - Optional transition string\n */\nconst setElementOpacity = (\n element: HTMLElement,\n opacity: string,\n transition?: string,\n): void => {\n element.style.opacity = opacity;\n if (transition) {\n element.style.transition = transition;\n }\n};\n\n/**\n * Validates required elements for animation.\n *\n * @param gridContainer - The grid container element\n * @param config - Configuration object\n * @returns True if all required elements are present\n */\nconst validateAnimationElements = (\n gridContainer: HTMLElement | null,\n config: Configuration | undefined,\n): boolean => {\n return gridContainer !== null && config !== undefined;\n};\n\n/**\n * Applies dimension and position transforms to a grid element.\n *\n * @param element - The element to transform\n * @param itemConfig - Configuration for this specific item\n * @param featuredElement - The featured element for sizing reference\n * @param gridContainer - The grid container for position reference\n */\nconst applyElementTransforms = (\n element: HTMLElement,\n itemConfig: ConfigurationItem,\n featuredElement: HTMLElement,\n): void => {\n if (featuredElement) {\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const featuredWidth = featuredElement.offsetWidth;\n const featuredHeight = featuredElement.offsetHeight;\n const isLargerThan40Percent =\n featuredWidth > windowWidth * 0.41 ||\n featuredHeight > windowHeight * 0.41;\n\n if (!isLargerThan40Percent) {\n element.style.width = `${featuredWidth}px`;\n element.style.height = `${featuredHeight}px`;\n } else {\n const parentContainer = featuredElement.parentElement;\n const parentWidth = parentContainer\n ? parentContainer.offsetWidth\n : windowWidth;\n\n const { width: widthPercentage, height: heightVh } = getResponsiveSizes();\n const width = Math.round(parentWidth * widthPercentage);\n const height = Math.round(windowHeight * heightVh);\n\n element.style.width = `${width}px`;\n element.style.height = `${height}px`;\n }\n }\n\n const transform = calculateCenterTransform(\n element,\n featuredElement,\n itemConfig?.offset,\n );\n element.style.transform = `translate(${transform.x}px, ${transform.y}px)`;\n};\n\n/**\n * Processes all grid items for animation.\n *\n * @param gridContainer - The grid container element\n * @param config - Configuration object\n * @returns void\n */\nconst processGridAnimation = (\n featuredElement: HTMLElement,\n gridContainer: HTMLElement,\n config: Configuration,\n): void => {\n const gridItems = Array.from(gridContainer.children) as HTMLElement[];\n\n gridItems.forEach((gridItem, index) => {\n const element = getStackElementFromGridItem(gridItem, index);\n\n if (!element) {\n return;\n }\n\n const itemConfig = config.items[index];\n\n applyElementTransforms(element, itemConfig, featuredElement);\n });\n};\n\nconst createGridElement = (\n element: HTMLImageElement | HTMLVideoElement,\n index: number,\n placement: ConfigurationItem,\n) => {\n const children: ElementVisual[] = [];\n\n if (element.tagName === 'IMG') {\n children.push(\n assets.image.background({\n element: element as HTMLImageElement,\n isScaled: true,\n }),\n );\n }\n\n const rowStart = placement.row ? parseInt(placement.row.split(' / ')[0]) : 0;\n\n const getStartRange = (row: number): number => {\n if (row >= 13) return -70;\n if (row >= 10 && row <= 12) return -40;\n if (row >= 6 && row < 10) return 40;\n return 80;\n };\n\n const getEndRange = (row: number): number => {\n if (row >= 13) return 120;\n if (row >= 10 && row <= 12) return 140;\n if (row >= 6 && row < 10) return 160;\n return 170;\n };\n\n const startRange = getStartRange(rowStart);\n const endRange = getEndRange(rowStart);\n const animationRangeStart = `${startRange}vh`;\n const animationRangeEnd = `${endRange}vh`;\n\n return ElementModel.createDiv({\n className: `${STACK_ELEMENT_CLASS}-${index}`,\n children,\n elementStyles: {\n element: {\n overflow: 'clip',\n height: '100%',\n width: '100%',\n\n ...theme.media.withViewTimelineAnimation({\n animation: `${KEY_FRAME_GRID_EXPAND} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart,\n animationRangeEnd,\n animationDuration: '1ms',\n }),\n },\n },\n });\n};\n\nconst createGridItem = (\n element: HTMLImageElement | HTMLVideoElement,\n placement: ConfigurationItem,\n index: number,\n) => {\n const rowStart = placement.row ? parseInt(placement.row.split(' / ')[0]) : 0;\n const startRange = rowStart > 8 ? 0 : 80;\n const endRange = rowStart > 8 ? 200 : 200;\n const animationRangeStart = `${startRange}vh`;\n const animationRangeEnd = `${endRange}vh`;\n\n return ElementModel.createDiv({\n className: `${STACK_ITEM_CLASS}-${index}`,\n children: [createGridElement(element, index, placement)],\n elementStyles: {\n element: {\n gridColumn: placement.column,\n gridRow: placement.row,\n zIndex: placement.zIndex || 1,\n width: '100%',\n height: '100%',\n\n [`@media (${Styles.token.media.queries.large.max})`]: {\n [`@supports not (animation-timeline: scroll())`]: {\n display: 'none',\n },\n },\n\n ...(isDisplayWithoutAnimation && {\n display: 'none',\n }),\n\n ...theme.media.withViewTimelineAnimation({\n animation: `${KEY_FRAME_GRID_ITEM} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart,\n animationRangeEnd,\n }),\n },\n },\n });\n};\n\nconst createGrid = (props: CardStackProps) => {\n const totalCount = props.images.length;\n const config = getConfigurationByCount(totalCount);\n\n if (!config) {\n console.warn(`No configuration found for ${totalCount} elements`);\n return ElementModel.createDiv({\n className: STACK_GRID_ERROR_CLASS,\n });\n }\n\n const gridItems = props.images.map((element, index) => {\n const placement = config.items[index];\n return createGridItem(element, placement, index);\n });\n\n return ElementModel.createDiv({\n className: STACK_GRID_CLASS,\n children: gridItems,\n elementStyles: {\n element: {\n display: 'grid',\n gridTemplateColumns: 'repeat(16, 1fr)',\n gridTemplateRows: 'repeat(16, 2vh)',\n gap: Styles.token.spacing.min,\n minHeight: '300px',\n\n [`@media (${Styles.token.media.queries.large.max})`]: {\n '@supports not (animation-timeline: scroll())': {\n width: '100%',\n },\n },\n\n ...theme.media.withViewTimelineAnimation({\n gridTemplateColumns: config.layout.gridTemplateColumns,\n gridTemplateRows: config.layout.gridTemplateRows,\n transform: 'translate(-50%, -25%)',\n }),\n },\n },\n });\n};\n\nconst createFeatured = (\n element: HTMLImageElement | HTMLVideoElement,\n isExpand: boolean,\n totalCount: number,\n) => {\n const children: ElementVisual[] = [];\n let video: (ElementVisual & { events: { setPlay: () => void } }) | undefined;\n\n if (element.tagName === 'IMG') {\n children.push(\n assets.image.background({\n element: element as HTMLImageElement,\n isScaled: true,\n }),\n );\n }\n\n if (element.tagName === 'VIDEO') {\n element.setAttribute('muted', 'true');\n element.setAttribute('playsinline', 'true');\n element.setAttribute('loop', 'true');\n\n video = assets.video.toggle({\n video: element as HTMLVideoElement,\n isScaled: true,\n });\n children.push(video);\n }\n\n const { width: widthPercentage, height: heightVh } = getResponsiveSizes();\n\n const featuredElement = ElementModel.createDiv({\n className: `${STACK_ELEMENT_CLASS}-featured`,\n children,\n elementStyles: {\n element: {\n position: 'absolute',\n top: '20vh',\n left: '50%',\n transform: 'translateX(-50%)',\n zIndex: 999,\n width: `${widthPercentage * 100}%`,\n height: `${heightVh * 100}vh`,\n\n ...(isDisplayWithoutAnimation && {\n top: '0',\n }),\n\n [`@media (${Styles.token.media.queries.large.max})`]: {\n '@supports not (animation-timeline: view())': {\n width: '100% !important',\n height: '100% !important',\n top: '0',\n },\n },\n\n ...(isExpand && {\n ...theme.media.withViewTimelineAnimation({\n top: '30vh',\n animation: `${KEY_FRAME_FEATURED_SIZE} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart: `${100 + (totalCount - 4) * 10}vh`,\n animationRangeEnd: '250vh',\n }),\n }),\n },\n },\n });\n\n if (isExpand && featuredElement.element instanceof HTMLElement) {\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (video) video.events.setPlay();\n observer.disconnect();\n }\n });\n },\n {\n rootMargin: `-${100 + (totalCount - 4) * 10}px 0px 0px 0px`,\n threshold: 0,\n },\n );\n\n observer.observe(featuredElement.element);\n }\n\n return featuredElement;\n};\n\nconst createSticky = (props: CardStackProps) => {\n const wrapper = ElementModel.createDiv({\n className: `${STACK_CONTAINER_CLASS}-sticky-wrapper`,\n children: [\n createGrid(props),\n createFeatured(\n props.featured,\n props.isExpandFeature,\n props.images.length,\n ),\n ],\n elementStyles: {\n element: {\n position: 'relative',\n\n ...theme.media.withViewTimelineAnimation({\n position: 'sticky',\n top: 0,\n }),\n },\n },\n });\n\n return ElementModel.createDiv({\n className: `${STACK_CONTAINER_CLASS}-sticky`,\n children: [wrapper],\n elementStyles: {\n element: {\n ...theme.media.withViewTimelineAnimation({\n height: '200vh',\n\n ...(props.isExpandFeature && {\n height: '250vh',\n }),\n }),\n },\n },\n });\n};\n\nexport default (props: CardStackProps) => {\n const composite = ElementModel.createDiv({\n className: STACK_CONTAINER_CLASS,\n children: [createSticky(props)],\n elementStyles: {\n element: {\n containerType: 'inline-size',\n opacity: '0',\n overflow: 'clip',\n },\n },\n });\n\n const loadAnimation = async () => {\n const totalCount = props.images.length;\n const config = getConfigurationByCount(totalCount);\n const gridContainer = composite.element.querySelector(\n `.${STACK_GRID_CLASS}`,\n ) as HTMLElement;\n const featuredElement = composite.element.querySelector(\n `.${STACK_ELEMENT_CLASS}-featured`,\n ) as HTMLElement;\n let animationsCleared = false;\n\n if (!validateAnimationElements(gridContainer, config)) {\n return;\n }\n\n const clearAnimations = () => {\n if (animationsCleared) return;\n\n clearElementAnimations(featuredElement, gridContainer);\n animationsCleared = true;\n\n setTimeout(() => {\n processGridAnimation(props.featured, gridContainer!, config!);\n }, 100);\n };\n\n try {\n await waitForMediaLoad(gridContainer!);\n } catch (error) {\n console.warn('Media loading failed, proceeding with animation:', error);\n }\n\n processGridAnimation(props.featured, gridContainer!, config!);\n setElementOpacity(composite.element, '1');\n\n if (!isMobileDevice()) {\n const resizeHandler = createResizeHandler(() => {\n setTimeout(() => {\n processGridAnimation(props.featured, gridContainer!, config!);\n setTimeout(() => {\n setElementOpacity(composite.element, '1');\n animationsCleared = false;\n }, 100);\n }, 200);\n });\n\n window.addEventListener('resize', () => {\n if (isMobileDevice()) {\n return;\n }\n\n if (composite.element.style.opacity === '1') {\n setElementOpacity(composite.element, '0', 'opacity 0.3s ease-in-out');\n }\n\n clearAnimations();\n resizeHandler();\n });\n }\n };\n\n composite.styles += keyFrameGridExpand;\n composite.styles += keyFrameGridItem;\n composite.styles += keyFrameFeaturedSize;\n\n return {\n ...composite,\n events: {\n loadAnimation,\n },\n };\n};\n"],"names":["accessibility.isPrefferdReducedMotion","index","assets.image.background","ElementModel.createDiv","theme.media.withViewTimelineAnimation","Styles","assets.video.toggle"],"mappings":"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"}
1
+ {"version":3,"file":"card-stack.js","sources":["../../../../source/atomic/animations/brand/card-stack.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\nimport { isPreferredReducedMotion } from '@universityofmaryland/web-utilities-library/accessibility';\nimport { withViewTimelineAnimation } from '@universityofmaryland/web-utilities-library/styles';\nimport { ElementModel } from 'model';\nimport { assets } from 'atomic';\nimport { type ElementVisual } from '../../../_types';\n\ninterface CardStackProps {\n featured: HTMLImageElement | HTMLVideoElement;\n images: HTMLImageElement[];\n isExpandFeature: boolean;\n}\n\ninterface ConfigurationItem {\n column?: string;\n row?: string;\n zIndex?: number;\n featured?: boolean;\n matchWidth?: boolean;\n offset?: {\n top?: string;\n left?: string;\n right?: string;\n bottom?: string;\n };\n}\n\ninterface Configuration {\n count: number;\n layout: {\n gridTemplateColumns: string;\n gridTemplateRows: string;\n };\n items: ConfigurationItem[];\n}\n\nconst configuration: Configuration[] = [\n {\n count: 4,\n layout: {\n gridTemplateColumns: 'repeat(15, 10vw)',\n gridTemplateRows: 'repeat(15, 8vh)',\n },\n items: [\n {\n column: '3 / 8',\n row: '4 / 5',\n zIndex: 9,\n offset: {\n top: '-10%',\n left: '-5%',\n },\n },\n {\n column: '12 / 15',\n row: '2 / 6',\n offset: {\n top: '-1%',\n right: '-4%',\n },\n },\n {\n column: '4 / 7',\n row: '10 / 15',\n zIndex: 9,\n offset: {\n bottom: '-13%',\n left: '-4%',\n },\n },\n {\n column: '13 / 15',\n row: '10 / 14',\n offset: {\n right: '-8%',\n bottom: '-3%',\n },\n },\n ],\n },\n {\n count: 5,\n layout: {\n gridTemplateColumns: 'repeat(15, 10vw)',\n gridTemplateRows: 'repeat(15, 8vh)',\n },\n items: [\n {\n column: '2 / 6',\n row: '4 / 9',\n zIndex: 9,\n offset: {\n top: '-10%',\n left: '-6%',\n },\n },\n {\n column: '12 / 15',\n row: '2 / 5',\n offset: {\n top: '-3%',\n right: '-5%',\n },\n },\n {\n column: '10 / 12',\n row: '3 / 5',\n offset: {\n bottom: '-20%',\n right: '-1%',\n },\n },\n {\n column: '1 / 4',\n row: '8/ 13',\n zIndex: 9,\n offset: {\n bottom: '-10%',\n left: '-10%',\n },\n },\n {\n column: '12 / 15',\n row: '10 / 14',\n offset: {\n right: '-10%',\n bottom: '-7%',\n },\n },\n ],\n },\n {\n count: 6,\n layout: {\n gridTemplateColumns: 'repeat(15, 10vw)',\n gridTemplateRows: 'repeat(15, 8vh)',\n },\n items: [\n {\n column: '2 / 6',\n row: '4 / 9',\n zIndex: 9,\n offset: {\n top: '-10%',\n left: '-6%',\n },\n },\n {\n column: '12 / 15',\n row: '2 / 5',\n offset: {\n top: '-3%',\n right: '-5%',\n },\n },\n {\n column: '10 / 12',\n row: '3 / 5',\n offset: {\n bottom: '-20%',\n right: '-1%',\n },\n },\n {\n column: '12 / 15',\n row: '6 / 8',\n offset: {\n bottom: '-5%',\n right: '-20%',\n },\n },\n {\n column: '1 / 4',\n row: '8/ 13',\n zIndex: 9,\n offset: {\n bottom: '-10%',\n left: '-10%',\n },\n },\n {\n column: '12 / 15',\n row: '10 / 14',\n offset: {\n right: '-10%',\n bottom: '-7%',\n },\n },\n ],\n },\n {\n count: 7,\n layout: {\n gridTemplateColumns: 'repeat(15, 10vw)',\n gridTemplateRows: 'repeat(15, 8vh)',\n },\n items: [\n {\n column: '2 / 6',\n row: '4 / 9',\n zIndex: 9,\n offset: {\n top: '-10%',\n left: '-6%',\n },\n },\n {\n column: '12 / 15',\n row: '2 / 5',\n offset: {\n top: '-3%',\n right: '-5%',\n },\n },\n {\n column: '10 / 12',\n row: '3 / 5',\n offset: {\n bottom: '-20%',\n right: '-1%',\n },\n },\n {\n column: '12 / 15',\n row: '6 / 8',\n offset: {\n bottom: '-5%',\n right: '-20%',\n },\n },\n {\n column: '1 / 4',\n row: '8/ 13',\n zIndex: 9,\n offset: {\n bottom: '-10%',\n left: '-10%',\n },\n },\n {\n column: '12 / 15',\n row: '10 / 14',\n offset: {\n right: '-10%',\n bottom: '-7%',\n },\n },\n {\n column: '6 / 9',\n row: '10 / 15',\n offset: {\n right: '-10%',\n bottom: '-25%',\n },\n },\n ],\n },\n {\n count: 8,\n layout: {\n gridTemplateColumns: 'repeat(15, 10vw)',\n gridTemplateRows: 'repeat(15, 8vh)',\n },\n items: [\n {\n column: '2 / 6',\n row: '4 / 9',\n zIndex: 9,\n offset: {\n top: '-10%',\n left: '-6%',\n },\n },\n {\n column: '12 / 15',\n row: '2 / 5',\n offset: {\n top: '-3%',\n right: '-5%',\n },\n },\n {\n column: '10 / 12',\n row: '3 / 5',\n offset: {\n bottom: '-20%',\n right: '-1%',\n },\n },\n {\n column: '3 / 9',\n row: '1 / 3',\n offset: {\n right: '-10%',\n top: '-25%',\n },\n },\n {\n column: '12 / 15',\n row: '6 / 8',\n offset: {\n bottom: '-5%',\n right: '-20%',\n },\n },\n {\n column: '1 / 4',\n row: '8/ 13',\n zIndex: 9,\n offset: {\n bottom: '-10%',\n left: '-10%',\n },\n },\n {\n column: '12 / 15',\n row: '10 / 14',\n offset: {\n right: '-10%',\n bottom: '-7%',\n },\n },\n {\n column: '6 / 9',\n row: '10 / 15',\n offset: {\n right: '-10%',\n bottom: '-25%',\n },\n },\n ],\n },\n];\n\n// Class name constants\nconst STACK_CONTAINER_CLASS = 'brand-animations-card-stack';\nconst STACK_ELEMENT_CLASS = `${STACK_CONTAINER_CLASS}-element`;\nconst STACK_GRID_CLASS = `${STACK_CONTAINER_CLASS}-grid`;\nconst STACK_ITEM_CLASS = `${STACK_CONTAINER_CLASS}-item`;\nconst STACK_GRID_ERROR_CLASS = `${STACK_GRID_CLASS}-error`;\n\nconst KEY_FRAME_GRID_EXPAND = 'grid-expand';\nconst KEY_FRAME_GRID_ITEM = 'grid-item';\nconst KEY_FRAME_FEATURED_SIZE = 'featured-size';\n\nconst isPreferReducedMotion = isPreferredReducedMotion();\nconst isScrollTimelineSupported = () =>\n 'ScrollTimeline' in window || CSS.supports('animation-timeline', 'scroll()');\nconst isDisplayWithoutAnimation =\n isPreferReducedMotion || !isScrollTimelineSupported();\n\nconst getResponsiveSizes = () => {\n const windowWidth = window.innerWidth;\n\n if (windowWidth >= 1024) {\n return { width: 0.4, height: 0.4 };\n } else if (windowWidth >= 768) {\n return { width: 0.5, height: 0.5 };\n } else {\n return { width: 0.8, height: 0.5 };\n }\n};\n\nconst keyFrameGridExpand = `\n @keyframes ${KEY_FRAME_GRID_EXPAND} {\n to {\n transform: translate(0, 0);\n width: inherit;\n }\n }\n`;\n\nconst keyFrameGridItem = `\n @keyframes ${KEY_FRAME_GRID_ITEM} {\n to {\n opacity: 0;\n }\n }\n`;\n\nconst keyFrameFeaturedSize = `\n @keyframes ${KEY_FRAME_FEATURED_SIZE} {\n to {\n width: 100%;\n height: 100vh;\n top: 0%;\n }\n }\n`;\n\n/**\n * Waits for all media elements (images and videos) to load and render.\n *\n * @param container - The container element containing the media\n * @returns Promise that resolves when all media is loaded and rendered\n */\nconst waitForMediaLoad = async (container: HTMLElement): Promise<void> => {\n const images = Array.from(container.querySelectorAll('img'));\n const videos = Array.from(container.querySelectorAll('video'));\n\n const imagePromises = images.map((img) => {\n if (img.complete) {\n // Check if image loaded successfully or failed\n if (img.naturalWidth > 0) {\n return Promise.resolve();\n } else {\n // Image is complete but has no natural dimensions - it failed to load\n return Promise.reject(new Error(`Failed to load image: ${img.src}`));\n }\n }\n return new Promise<void>((resolve, reject) => {\n img.addEventListener('load', () => resolve(), { once: true });\n img.addEventListener(\n 'error',\n () => reject(new Error(`Failed to load image: ${img.src}`)),\n { once: true },\n );\n });\n });\n\n const videoPromises = videos.map((video) => {\n if (video.readyState >= 3) {\n return Promise.resolve();\n }\n return new Promise<void>((resolve, reject) => {\n video.addEventListener('loadeddata', () => resolve(), { once: true });\n video.addEventListener(\n 'error',\n () => reject(new Error(`Failed to load video: ${video.src}`)),\n { once: true },\n );\n });\n });\n\n await Promise.all([...imagePromises, ...videoPromises]);\n\n return new Promise<void>((resolve) => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n resolve();\n });\n });\n });\n};\n\n/**\n * Retrieves the configuration object for a specific element count.\n *\n * @param count - The number of elements to display\n * @returns The configuration object for the given count, or undefined if not found\n */\nconst getConfigurationByCount = (count: number) => {\n return configuration.find((c) => c.count === count);\n};\n\n/**\n * Gets the stack element from a grid item.\n *\n * @param gridItem - The grid item element\n * @param index - The index of the stack element\n * @returns The stack element or null if not found\n */\nconst getStackElementFromGridItem = (\n gridItem: HTMLElement,\n index: number,\n): HTMLElement | null => {\n return gridItem.querySelector(\n `.${STACK_ELEMENT_CLASS}-${index}`,\n ) as HTMLElement;\n};\n\n/**\n * Calculates the transform values (x, y) needed to center an element\n * relative to the brand-animations-card-stack-grid container with optional offset.\n *\n * @param element - The element to be centered\n * @param gridContainer - The grid container element\n * @param offset - Optional offset values in percentages\n * @returns Transform values {x, y} in pixels to center the element with offset\n */\nconst calculateCenterTransform = (\n element: HTMLElement,\n centerElement: HTMLElement,\n offset?: {\n top?: string;\n left?: string;\n right?: string;\n bottom?: string;\n },\n): { x: number; y: number } => {\n const elementRect = element.getBoundingClientRect();\n const centerRect = centerElement.getBoundingClientRect();\n\n const centerX = centerRect.left + centerRect.width / 2;\n const centerY = centerRect.top + centerRect.height / 2;\n\n const elementCenterX = elementRect.left + elementRect.width / 2;\n const elementCenterY = elementRect.top + elementRect.height / 2;\n\n let translateX = centerX - elementCenterX;\n let translateY = centerY - elementCenterY;\n\n if (offset) {\n const applyOffset = (\n value: string | undefined,\n dimension: number,\n ): number => {\n return value ? (parseFloat(value) / 100) * dimension : 0;\n };\n\n translateX += applyOffset(offset.left, centerRect.width);\n translateX -= applyOffset(offset.right, centerRect.width);\n translateY += applyOffset(offset.top, centerRect.height);\n translateY -= applyOffset(offset.bottom, centerRect.height);\n }\n\n return {\n x: translateX,\n y: translateY,\n };\n};\n\n/**\n * Clears animations from elements.\n *\n * @param featuredElement - The featured element\n * @param gridContainer - The grid container element\n */\nconst clearElementAnimations = (\n featuredElement: HTMLElement | null,\n gridContainer: HTMLElement | null,\n): void => {\n if (featuredElement) {\n featuredElement.style.animation = 'none';\n }\n if (gridContainer) {\n gridContainer.style.animation = 'none';\n }\n};\n\n/**\n * Checks if the current device is mobile based on viewport width.\n *\n * @returns True if device is mobile (width < 768px)\n */\nconst isMobileDevice = (): boolean => {\n return window.innerWidth < 768;\n};\n\n/**\n * Creates a resize handler function that only executes on actual window resizes.\n *\n * @param onResize - Callback to execute on resize\n * @param delay - Delay in milliseconds before executing callback\n * @returns Resize handler function\n */\nconst createResizeHandler = (\n onResize: () => void,\n delay: number = 300,\n): (() => void) => {\n let timeoutId: NodeJS.Timeout | null = null;\n let previousWidth = window.innerWidth;\n\n return () => {\n const currentWidth = window.innerWidth;\n\n // Only trigger on width changes (actual resize, not mobile scroll)\n if (currentWidth === previousWidth) {\n return;\n }\n\n previousWidth = currentWidth;\n\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n onResize();\n timeoutId = null;\n }, delay);\n };\n};\n\n/**\n * Sets opacity with optional transition.\n *\n * @param element - The element to modify\n * @param opacity - The opacity value\n * @param transition - Optional transition string\n */\nconst setElementOpacity = (\n element: HTMLElement,\n opacity: string,\n transition?: string,\n): void => {\n element.style.opacity = opacity;\n if (transition) {\n element.style.transition = transition;\n }\n};\n\n/**\n * Validates required elements for animation.\n *\n * @param gridContainer - The grid container element\n * @param config - Configuration object\n * @returns True if all required elements are present\n */\nconst validateAnimationElements = (\n gridContainer: HTMLElement | null,\n config: Configuration | undefined,\n): boolean => {\n return gridContainer !== null && config !== undefined;\n};\n\n/**\n * Applies dimension and position transforms to a grid element.\n *\n * @param element - The element to transform\n * @param itemConfig - Configuration for this specific item\n * @param featuredElement - The featured element for sizing reference\n * @param gridContainer - The grid container for position reference\n */\nconst applyElementTransforms = (\n element: HTMLElement,\n itemConfig: ConfigurationItem,\n featuredElement: HTMLElement,\n): void => {\n if (featuredElement) {\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const featuredWidth = featuredElement.offsetWidth;\n const featuredHeight = featuredElement.offsetHeight;\n const isLargerThan40Percent =\n featuredWidth > windowWidth * 0.41 ||\n featuredHeight > windowHeight * 0.41;\n\n if (!isLargerThan40Percent) {\n element.style.width = `${featuredWidth}px`;\n element.style.height = `${featuredHeight}px`;\n } else {\n const parentContainer = featuredElement.parentElement;\n const parentWidth = parentContainer\n ? parentContainer.offsetWidth\n : windowWidth;\n\n const { width: widthPercentage, height: heightVh } = getResponsiveSizes();\n const width = Math.round(parentWidth * widthPercentage);\n const height = Math.round(windowHeight * heightVh);\n\n element.style.width = `${width}px`;\n element.style.height = `${height}px`;\n }\n }\n\n const transform = calculateCenterTransform(\n element,\n featuredElement,\n itemConfig?.offset,\n );\n element.style.transform = `translate(${transform.x}px, ${transform.y}px)`;\n};\n\n/**\n * Processes all grid items for animation.\n *\n * @param gridContainer - The grid container element\n * @param config - Configuration object\n * @returns void\n */\nconst processGridAnimation = (\n featuredElement: HTMLElement,\n gridContainer: HTMLElement,\n config: Configuration,\n): void => {\n const gridItems = Array.from(gridContainer.children) as HTMLElement[];\n\n gridItems.forEach((gridItem, index) => {\n const element = getStackElementFromGridItem(gridItem, index);\n\n if (!element) {\n return;\n }\n\n const itemConfig = config.items[index];\n\n applyElementTransforms(element, itemConfig, featuredElement);\n });\n};\n\nconst createGridElement = (\n element: HTMLImageElement | HTMLVideoElement,\n index: number,\n placement: ConfigurationItem,\n) => {\n const children: ElementVisual[] = [];\n\n if (element.tagName === 'IMG') {\n children.push(\n assets.image.background({\n element: element as HTMLImageElement,\n isScaled: true,\n }),\n );\n }\n\n const rowStart = placement.row ? parseInt(placement.row.split(' / ')[0]) : 0;\n\n const getStartRange = (row: number): number => {\n if (row >= 13) return -70;\n if (row >= 10 && row <= 12) return -40;\n if (row >= 6 && row < 10) return 40;\n return 80;\n };\n\n const getEndRange = (row: number): number => {\n if (row >= 13) return 120;\n if (row >= 10 && row <= 12) return 140;\n if (row >= 6 && row < 10) return 160;\n return 170;\n };\n\n const startRange = getStartRange(rowStart);\n const endRange = getEndRange(rowStart);\n const animationRangeStart = `${startRange}vh`;\n const animationRangeEnd = `${endRange}vh`;\n\n return ElementModel.createDiv({\n className: `${STACK_ELEMENT_CLASS}-${index}`,\n children,\n elementStyles: {\n element: {\n overflow: 'clip',\n height: '100%',\n width: '100%',\n\n ...withViewTimelineAnimation({\n animation: `${KEY_FRAME_GRID_EXPAND} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart,\n animationRangeEnd,\n animationDuration: '1ms',\n }),\n },\n },\n });\n};\n\nconst createGridItem = (\n element: HTMLImageElement | HTMLVideoElement,\n placement: ConfigurationItem,\n index: number,\n) => {\n const rowStart = placement.row ? parseInt(placement.row.split(' / ')[0]) : 0;\n const startRange = rowStart > 8 ? 0 : 80;\n const endRange = rowStart > 8 ? 200 : 200;\n const animationRangeStart = `${startRange}vh`;\n const animationRangeEnd = `${endRange}vh`;\n\n return ElementModel.createDiv({\n className: `${STACK_ITEM_CLASS}-${index}`,\n children: [createGridElement(element, index, placement)],\n elementStyles: {\n element: {\n gridColumn: placement.column,\n gridRow: placement.row,\n zIndex: placement.zIndex || 1,\n width: '100%',\n height: '100%',\n\n [`@media (${token.media.queries.large.max})`]: {\n [`@supports not (animation-timeline: scroll())`]: {\n display: 'none',\n },\n },\n\n ...(isDisplayWithoutAnimation && {\n display: 'none',\n }),\n\n ...withViewTimelineAnimation({\n animation: `${KEY_FRAME_GRID_ITEM} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart,\n animationRangeEnd,\n }),\n },\n },\n });\n};\n\nconst createGrid = (props: CardStackProps) => {\n const totalCount = props.images.length;\n const config = getConfigurationByCount(totalCount);\n\n if (!config) {\n console.warn(`No configuration found for ${totalCount} elements`);\n return ElementModel.createDiv({\n className: STACK_GRID_ERROR_CLASS,\n });\n }\n\n const gridItems = props.images.map((element, index) => {\n const placement = config.items[index];\n return createGridItem(element, placement, index);\n });\n\n return ElementModel.createDiv({\n className: STACK_GRID_CLASS,\n children: gridItems,\n elementStyles: {\n element: {\n display: 'grid',\n gridTemplateColumns: 'repeat(16, 1fr)',\n gridTemplateRows: 'repeat(16, 2vh)',\n gap: token.spacing.min,\n minHeight: '300px',\n\n [`@media (${token.media.queries.large.max})`]: {\n '@supports not (animation-timeline: scroll())': {\n width: '100%',\n },\n },\n\n ...withViewTimelineAnimation({\n gridTemplateColumns: config.layout.gridTemplateColumns,\n gridTemplateRows: config.layout.gridTemplateRows,\n transform: 'translate(-50%, -25%)',\n }),\n },\n },\n });\n};\n\nconst createFeatured = (\n element: HTMLImageElement | HTMLVideoElement,\n isExpand: boolean,\n totalCount: number,\n) => {\n const children: ElementVisual[] = [];\n let video: (ElementVisual & { events: { setPlay: () => void } }) | undefined;\n\n if (element.tagName === 'IMG') {\n children.push(\n assets.image.background({\n element: element as HTMLImageElement,\n isScaled: true,\n }),\n );\n }\n\n if (element.tagName === 'VIDEO') {\n element.setAttribute('muted', 'true');\n element.setAttribute('playsinline', 'true');\n element.setAttribute('loop', 'true');\n\n video = assets.video.toggle({\n video: element as HTMLVideoElement,\n isScaled: true,\n });\n children.push(video);\n }\n\n const { width: widthPercentage, height: heightVh } = getResponsiveSizes();\n\n const featuredElement = ElementModel.createDiv({\n className: `${STACK_ELEMENT_CLASS}-featured`,\n children,\n elementStyles: {\n element: {\n position: 'absolute',\n top: '20vh',\n left: '50%',\n transform: 'translateX(-50%)',\n zIndex: 999,\n width: `${widthPercentage * 100}%`,\n height: `${heightVh * 100}vh`,\n\n ...(isDisplayWithoutAnimation && {\n top: '0',\n }),\n\n [`@media (${token.media.queries.large.max})`]: {\n '@supports not (animation-timeline: view())': {\n width: '100% !important',\n height: '100% !important',\n top: '0',\n },\n },\n\n ...(isExpand && {\n ...withViewTimelineAnimation({\n top: '30vh',\n animation: `${KEY_FRAME_FEATURED_SIZE} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart: `${100 + (totalCount - 4) * 10}vh`,\n animationRangeEnd: '250vh',\n }),\n }),\n },\n },\n });\n\n if (isExpand && featuredElement.element instanceof HTMLElement) {\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (video) video.events.setPlay();\n observer.disconnect();\n }\n });\n },\n {\n rootMargin: `-${100 + (totalCount - 4) * 10}px 0px 0px 0px`,\n threshold: 0,\n },\n );\n\n observer.observe(featuredElement.element);\n }\n\n return featuredElement;\n};\n\nconst createSticky = (props: CardStackProps) => {\n const wrapper = ElementModel.createDiv({\n className: `${STACK_CONTAINER_CLASS}-sticky-wrapper`,\n children: [\n createGrid(props),\n createFeatured(\n props.featured,\n props.isExpandFeature,\n props.images.length,\n ),\n ],\n elementStyles: {\n element: {\n position: 'relative',\n\n ...withViewTimelineAnimation({\n position: 'sticky',\n top: 0,\n }),\n },\n },\n });\n\n return ElementModel.createDiv({\n className: `${STACK_CONTAINER_CLASS}-sticky`,\n children: [wrapper],\n elementStyles: {\n element: {\n ...withViewTimelineAnimation({\n height: '200vh',\n\n ...(props.isExpandFeature && {\n height: '250vh',\n }),\n }),\n },\n },\n });\n};\n\nexport default (props: CardStackProps) => {\n const composite = ElementModel.createDiv({\n className: STACK_CONTAINER_CLASS,\n children: [createSticky(props)],\n elementStyles: {\n element: {\n containerType: 'inline-size',\n opacity: '0',\n overflow: 'clip',\n },\n },\n });\n\n const loadAnimation = async () => {\n const totalCount = props.images.length;\n const config = getConfigurationByCount(totalCount);\n const gridContainer = composite.element.querySelector(\n `.${STACK_GRID_CLASS}`,\n ) as HTMLElement;\n const featuredElement = composite.element.querySelector(\n `.${STACK_ELEMENT_CLASS}-featured`,\n ) as HTMLElement;\n let animationsCleared = false;\n\n if (!validateAnimationElements(gridContainer, config)) {\n return;\n }\n\n const clearAnimations = () => {\n if (animationsCleared) return;\n\n clearElementAnimations(featuredElement, gridContainer);\n animationsCleared = true;\n\n setTimeout(() => {\n processGridAnimation(props.featured, gridContainer!, config!);\n }, 100);\n };\n\n try {\n await waitForMediaLoad(gridContainer!);\n } catch (error) {\n console.warn('Media loading failed, proceeding with animation:', error);\n }\n\n processGridAnimation(props.featured, gridContainer!, config!);\n setElementOpacity(composite.element, '1');\n\n if (!isMobileDevice()) {\n const resizeHandler = createResizeHandler(() => {\n setTimeout(() => {\n processGridAnimation(props.featured, gridContainer!, config!);\n setTimeout(() => {\n setElementOpacity(composite.element, '1');\n animationsCleared = false;\n }, 100);\n }, 200);\n });\n\n window.addEventListener('resize', () => {\n if (isMobileDevice()) {\n return;\n }\n\n if (composite.element.style.opacity === '1') {\n setElementOpacity(composite.element, '0', 'opacity 0.3s ease-in-out');\n }\n\n clearAnimations();\n resizeHandler();\n });\n }\n };\n\n composite.styles += keyFrameGridExpand;\n composite.styles += keyFrameGridItem;\n composite.styles += keyFrameFeaturedSize;\n\n return {\n ...composite,\n events: {\n loadAnimation,\n },\n };\n};\n"],"names":["isPreferredReducedMotion","index","assets.image.background","ElementModel.createDiv","withViewTimelineAnimation","token","assets.video.toggle"],"mappings":"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"}
@@ -1,19 +1,29 @@
1
- import * as Styles from "@universityofmaryland/web-styles-library";
1
+ import * as token from "@universityofmaryland/web-styles-library/token";
2
+ import { isPreferredReducedMotion } from "@universityofmaryland/web-utilities-library/accessibility";
3
+ import { withViewTimelineAnimation } from "@universityofmaryland/web-utilities-library/styles";
2
4
  import { createDiv } from "../../../model/elements/index.mjs";
3
- import { isPrefferdReducedMotion } from "../../../utilities/accessibility/index.mjs";
4
- import "../../../node_modules/postcss/lib/postcss.mjs";
5
- import "../../../node_modules/postcss-nesting/dist/index.mjs";
6
- import "../../../node_modules/postcss-js/index.mjs";
7
- import { withViewTimelineAnimation } from "../../../utilities/theme/media.mjs";
5
+ import "@universityofmaryland/web-styles-library/element";
6
+ import "@universityofmaryland/web-utilities-library/media";
7
+ import "@universityofmaryland/web-utilities-library/dom";
8
+ import "@universityofmaryland/web-icons-library/controls";
9
+ import "@universityofmaryland/web-icons-library/communication";
10
+ import "@universityofmaryland/web-icons-library/files";
11
+ import "@universityofmaryland/web-icons-library/brand";
12
+ import "@universityofmaryland/web-icons-library/arrows";
8
13
  import "../actions/indicator.mjs";
9
14
  import "./chevron-scroll.mjs";
10
15
  import imageContainer from "../../assets/image/background.mjs";
16
+ import "@universityofmaryland/web-utilities-library/performance";
11
17
  import toggle from "../../assets/video/toggle.mjs";
18
+ import "@universityofmaryland/web-icons-library/location";
19
+ import "@universityofmaryland/web-icons-library/calendar";
12
20
  import "../../layout/block/stacked.mjs";
13
21
  import "../../layout/overlay/modal.mjs";
14
22
  import "../../layout/person/columns.mjs";
23
+ import "@universityofmaryland/web-icons-library/social";
15
24
  import "../../text-lockup/date.mjs";
16
25
  import "../../text-lockup/small.mjs";
26
+ import "@universityofmaryland/web-styles-library/typography";
17
27
  const configuration = [
18
28
  {
19
29
  count: 4,
@@ -319,7 +329,7 @@ const STACK_GRID_ERROR_CLASS = `${STACK_GRID_CLASS}-error`;
319
329
  const KEY_FRAME_GRID_EXPAND = "grid-expand";
320
330
  const KEY_FRAME_GRID_ITEM = "grid-item";
321
331
  const KEY_FRAME_FEATURED_SIZE = "featured-size";
322
- const isPreferReducedMotion = isPrefferdReducedMotion();
332
+ const isPreferReducedMotion = isPreferredReducedMotion();
323
333
  const isScrollTimelineSupported = () => "ScrollTimeline" in window || CSS.supports("animation-timeline", "scroll()");
324
334
  const isDisplayWithoutAnimation = isPreferReducedMotion || !isScrollTimelineSupported();
325
335
  const getResponsiveSizes = () => {
@@ -567,7 +577,7 @@ const createGridItem = (element, placement, index$1) => {
567
577
  zIndex: placement.zIndex || 1,
568
578
  width: "100%",
569
579
  height: "100%",
570
- [`@media (${Styles.token.media.queries.large.max})`]: {
580
+ [`@media (${token.media.queries.large.max})`]: {
571
581
  [`@supports not (animation-timeline: scroll())`]: {
572
582
  display: "none"
573
583
  }
@@ -606,9 +616,9 @@ const createGrid = (props) => {
606
616
  display: "grid",
607
617
  gridTemplateColumns: "repeat(16, 1fr)",
608
618
  gridTemplateRows: "repeat(16, 2vh)",
609
- gap: Styles.token.spacing.min,
619
+ gap: token.spacing.min,
610
620
  minHeight: "300px",
611
- [`@media (${Styles.token.media.queries.large.max})`]: {
621
+ [`@media (${token.media.queries.large.max})`]: {
612
622
  "@supports not (animation-timeline: scroll())": {
613
623
  width: "100%"
614
624
  }
@@ -659,7 +669,7 @@ const createFeatured = (element, isExpand, totalCount) => {
659
669
  ...isDisplayWithoutAnimation && {
660
670
  top: "0"
661
671
  },
662
- [`@media (${Styles.token.media.queries.large.max})`]: {
672
+ [`@media (${token.media.queries.large.max})`]: {
663
673
  "@supports not (animation-timeline: view())": {
664
674
  width: "100% !important",
665
675
  height: "100% !important",
@@ -1 +1 @@
1
- {"version":3,"file":"card-stack.mjs","sources":["../../../../source/atomic/animations/brand/card-stack.ts"],"sourcesContent":["import * as Styles from '@universityofmaryland/web-styles-library';\nimport { ElementModel } from 'model';\nimport { assets } from 'atomic';\nimport { theme, accessibility } from 'utilities';\nimport { type ElementVisual } from '../../../_types';\n\ninterface CardStackProps {\n featured: HTMLImageElement | HTMLVideoElement;\n images: HTMLImageElement[];\n isExpandFeature: boolean;\n}\n\ninterface ConfigurationItem {\n column?: string;\n row?: string;\n zIndex?: number;\n featured?: boolean;\n matchWidth?: boolean;\n offset?: {\n top?: string;\n left?: string;\n right?: string;\n bottom?: string;\n };\n}\n\ninterface Configuration {\n count: number;\n layout: {\n gridTemplateColumns: string;\n gridTemplateRows: string;\n };\n items: ConfigurationItem[];\n}\n\nconst configuration: Configuration[] = [\n {\n count: 4,\n layout: {\n gridTemplateColumns: 'repeat(15, 10vw)',\n gridTemplateRows: 'repeat(15, 8vh)',\n },\n items: [\n {\n column: '3 / 8',\n row: '4 / 5',\n zIndex: 9,\n offset: {\n top: '-10%',\n left: '-5%',\n },\n },\n {\n column: '12 / 15',\n row: '2 / 6',\n offset: {\n top: '-1%',\n right: '-4%',\n },\n },\n {\n column: '4 / 7',\n row: '10 / 15',\n zIndex: 9,\n offset: {\n bottom: '-13%',\n left: '-4%',\n },\n },\n {\n column: '13 / 15',\n row: '10 / 14',\n offset: {\n right: '-8%',\n bottom: '-3%',\n },\n },\n ],\n },\n {\n count: 5,\n layout: {\n gridTemplateColumns: 'repeat(15, 10vw)',\n gridTemplateRows: 'repeat(15, 8vh)',\n },\n items: [\n {\n column: '2 / 6',\n row: '4 / 9',\n zIndex: 9,\n offset: {\n top: '-10%',\n left: '-6%',\n },\n },\n {\n column: '12 / 15',\n row: '2 / 5',\n offset: {\n top: '-3%',\n right: '-5%',\n },\n },\n {\n column: '10 / 12',\n row: '3 / 5',\n offset: {\n bottom: '-20%',\n right: '-1%',\n },\n },\n {\n column: '1 / 4',\n row: '8/ 13',\n zIndex: 9,\n offset: {\n bottom: '-10%',\n left: '-10%',\n },\n },\n {\n column: '12 / 15',\n row: '10 / 14',\n offset: {\n right: '-10%',\n bottom: '-7%',\n },\n },\n ],\n },\n {\n count: 6,\n layout: {\n gridTemplateColumns: 'repeat(15, 10vw)',\n gridTemplateRows: 'repeat(15, 8vh)',\n },\n items: [\n {\n column: '2 / 6',\n row: '4 / 9',\n zIndex: 9,\n offset: {\n top: '-10%',\n left: '-6%',\n },\n },\n {\n column: '12 / 15',\n row: '2 / 5',\n offset: {\n top: '-3%',\n right: '-5%',\n },\n },\n {\n column: '10 / 12',\n row: '3 / 5',\n offset: {\n bottom: '-20%',\n right: '-1%',\n },\n },\n {\n column: '12 / 15',\n row: '6 / 8',\n offset: {\n bottom: '-5%',\n right: '-20%',\n },\n },\n {\n column: '1 / 4',\n row: '8/ 13',\n zIndex: 9,\n offset: {\n bottom: '-10%',\n left: '-10%',\n },\n },\n {\n column: '12 / 15',\n row: '10 / 14',\n offset: {\n right: '-10%',\n bottom: '-7%',\n },\n },\n ],\n },\n {\n count: 7,\n layout: {\n gridTemplateColumns: 'repeat(15, 10vw)',\n gridTemplateRows: 'repeat(15, 8vh)',\n },\n items: [\n {\n column: '2 / 6',\n row: '4 / 9',\n zIndex: 9,\n offset: {\n top: '-10%',\n left: '-6%',\n },\n },\n {\n column: '12 / 15',\n row: '2 / 5',\n offset: {\n top: '-3%',\n right: '-5%',\n },\n },\n {\n column: '10 / 12',\n row: '3 / 5',\n offset: {\n bottom: '-20%',\n right: '-1%',\n },\n },\n {\n column: '12 / 15',\n row: '6 / 8',\n offset: {\n bottom: '-5%',\n right: '-20%',\n },\n },\n {\n column: '1 / 4',\n row: '8/ 13',\n zIndex: 9,\n offset: {\n bottom: '-10%',\n left: '-10%',\n },\n },\n {\n column: '12 / 15',\n row: '10 / 14',\n offset: {\n right: '-10%',\n bottom: '-7%',\n },\n },\n {\n column: '6 / 9',\n row: '10 / 15',\n offset: {\n right: '-10%',\n bottom: '-25%',\n },\n },\n ],\n },\n {\n count: 8,\n layout: {\n gridTemplateColumns: 'repeat(15, 10vw)',\n gridTemplateRows: 'repeat(15, 8vh)',\n },\n items: [\n {\n column: '2 / 6',\n row: '4 / 9',\n zIndex: 9,\n offset: {\n top: '-10%',\n left: '-6%',\n },\n },\n {\n column: '12 / 15',\n row: '2 / 5',\n offset: {\n top: '-3%',\n right: '-5%',\n },\n },\n {\n column: '10 / 12',\n row: '3 / 5',\n offset: {\n bottom: '-20%',\n right: '-1%',\n },\n },\n {\n column: '3 / 9',\n row: '1 / 3',\n offset: {\n right: '-10%',\n top: '-25%',\n },\n },\n {\n column: '12 / 15',\n row: '6 / 8',\n offset: {\n bottom: '-5%',\n right: '-20%',\n },\n },\n {\n column: '1 / 4',\n row: '8/ 13',\n zIndex: 9,\n offset: {\n bottom: '-10%',\n left: '-10%',\n },\n },\n {\n column: '12 / 15',\n row: '10 / 14',\n offset: {\n right: '-10%',\n bottom: '-7%',\n },\n },\n {\n column: '6 / 9',\n row: '10 / 15',\n offset: {\n right: '-10%',\n bottom: '-25%',\n },\n },\n ],\n },\n];\n\n// Class name constants\nconst STACK_CONTAINER_CLASS = 'brand-animations-card-stack';\nconst STACK_ELEMENT_CLASS = `${STACK_CONTAINER_CLASS}-element`;\nconst STACK_GRID_CLASS = `${STACK_CONTAINER_CLASS}-grid`;\nconst STACK_ITEM_CLASS = `${STACK_CONTAINER_CLASS}-item`;\nconst STACK_GRID_ERROR_CLASS = `${STACK_GRID_CLASS}-error`;\n\nconst KEY_FRAME_GRID_EXPAND = 'grid-expand';\nconst KEY_FRAME_GRID_ITEM = 'grid-item';\nconst KEY_FRAME_FEATURED_SIZE = 'featured-size';\n\nconst isPreferReducedMotion = accessibility.isPrefferdReducedMotion();\nconst isScrollTimelineSupported = () =>\n 'ScrollTimeline' in window || CSS.supports('animation-timeline', 'scroll()');\nconst isDisplayWithoutAnimation =\n isPreferReducedMotion || !isScrollTimelineSupported();\n\nconst getResponsiveSizes = () => {\n const windowWidth = window.innerWidth;\n\n if (windowWidth >= 1024) {\n return { width: 0.4, height: 0.4 };\n } else if (windowWidth >= 768) {\n return { width: 0.5, height: 0.5 };\n } else {\n return { width: 0.8, height: 0.5 };\n }\n};\n\nconst keyFrameGridExpand = `\n @keyframes ${KEY_FRAME_GRID_EXPAND} {\n to {\n transform: translate(0, 0);\n width: inherit;\n }\n }\n`;\n\nconst keyFrameGridItem = `\n @keyframes ${KEY_FRAME_GRID_ITEM} {\n to {\n opacity: 0;\n }\n }\n`;\n\nconst keyFrameFeaturedSize = `\n @keyframes ${KEY_FRAME_FEATURED_SIZE} {\n to {\n width: 100%;\n height: 100vh;\n top: 0%;\n }\n }\n`;\n\n/**\n * Waits for all media elements (images and videos) to load and render.\n *\n * @param container - The container element containing the media\n * @returns Promise that resolves when all media is loaded and rendered\n */\nconst waitForMediaLoad = async (container: HTMLElement): Promise<void> => {\n const images = Array.from(container.querySelectorAll('img'));\n const videos = Array.from(container.querySelectorAll('video'));\n\n const imagePromises = images.map((img) => {\n if (img.complete) {\n // Check if image loaded successfully or failed\n if (img.naturalWidth > 0) {\n return Promise.resolve();\n } else {\n // Image is complete but has no natural dimensions - it failed to load\n return Promise.reject(new Error(`Failed to load image: ${img.src}`));\n }\n }\n return new Promise<void>((resolve, reject) => {\n img.addEventListener('load', () => resolve(), { once: true });\n img.addEventListener(\n 'error',\n () => reject(new Error(`Failed to load image: ${img.src}`)),\n { once: true },\n );\n });\n });\n\n const videoPromises = videos.map((video) => {\n if (video.readyState >= 3) {\n return Promise.resolve();\n }\n return new Promise<void>((resolve, reject) => {\n video.addEventListener('loadeddata', () => resolve(), { once: true });\n video.addEventListener(\n 'error',\n () => reject(new Error(`Failed to load video: ${video.src}`)),\n { once: true },\n );\n });\n });\n\n await Promise.all([...imagePromises, ...videoPromises]);\n\n return new Promise<void>((resolve) => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n resolve();\n });\n });\n });\n};\n\n/**\n * Retrieves the configuration object for a specific element count.\n *\n * @param count - The number of elements to display\n * @returns The configuration object for the given count, or undefined if not found\n */\nconst getConfigurationByCount = (count: number) => {\n return configuration.find((c) => c.count === count);\n};\n\n/**\n * Gets the stack element from a grid item.\n *\n * @param gridItem - The grid item element\n * @param index - The index of the stack element\n * @returns The stack element or null if not found\n */\nconst getStackElementFromGridItem = (\n gridItem: HTMLElement,\n index: number,\n): HTMLElement | null => {\n return gridItem.querySelector(\n `.${STACK_ELEMENT_CLASS}-${index}`,\n ) as HTMLElement;\n};\n\n/**\n * Calculates the transform values (x, y) needed to center an element\n * relative to the brand-animations-card-stack-grid container with optional offset.\n *\n * @param element - The element to be centered\n * @param gridContainer - The grid container element\n * @param offset - Optional offset values in percentages\n * @returns Transform values {x, y} in pixels to center the element with offset\n */\nconst calculateCenterTransform = (\n element: HTMLElement,\n centerElement: HTMLElement,\n offset?: {\n top?: string;\n left?: string;\n right?: string;\n bottom?: string;\n },\n): { x: number; y: number } => {\n const elementRect = element.getBoundingClientRect();\n const centerRect = centerElement.getBoundingClientRect();\n\n const centerX = centerRect.left + centerRect.width / 2;\n const centerY = centerRect.top + centerRect.height / 2;\n\n const elementCenterX = elementRect.left + elementRect.width / 2;\n const elementCenterY = elementRect.top + elementRect.height / 2;\n\n let translateX = centerX - elementCenterX;\n let translateY = centerY - elementCenterY;\n\n if (offset) {\n const applyOffset = (\n value: string | undefined,\n dimension: number,\n ): number => {\n return value ? (parseFloat(value) / 100) * dimension : 0;\n };\n\n translateX += applyOffset(offset.left, centerRect.width);\n translateX -= applyOffset(offset.right, centerRect.width);\n translateY += applyOffset(offset.top, centerRect.height);\n translateY -= applyOffset(offset.bottom, centerRect.height);\n }\n\n return {\n x: translateX,\n y: translateY,\n };\n};\n\n/**\n * Clears animations from elements.\n *\n * @param featuredElement - The featured element\n * @param gridContainer - The grid container element\n */\nconst clearElementAnimations = (\n featuredElement: HTMLElement | null,\n gridContainer: HTMLElement | null,\n): void => {\n if (featuredElement) {\n featuredElement.style.animation = 'none';\n }\n if (gridContainer) {\n gridContainer.style.animation = 'none';\n }\n};\n\n/**\n * Checks if the current device is mobile based on viewport width.\n *\n * @returns True if device is mobile (width < 768px)\n */\nconst isMobileDevice = (): boolean => {\n return window.innerWidth < 768;\n};\n\n/**\n * Creates a resize handler function that only executes on actual window resizes.\n *\n * @param onResize - Callback to execute on resize\n * @param delay - Delay in milliseconds before executing callback\n * @returns Resize handler function\n */\nconst createResizeHandler = (\n onResize: () => void,\n delay: number = 300,\n): (() => void) => {\n let timeoutId: NodeJS.Timeout | null = null;\n let previousWidth = window.innerWidth;\n\n return () => {\n const currentWidth = window.innerWidth;\n\n // Only trigger on width changes (actual resize, not mobile scroll)\n if (currentWidth === previousWidth) {\n return;\n }\n\n previousWidth = currentWidth;\n\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n onResize();\n timeoutId = null;\n }, delay);\n };\n};\n\n/**\n * Sets opacity with optional transition.\n *\n * @param element - The element to modify\n * @param opacity - The opacity value\n * @param transition - Optional transition string\n */\nconst setElementOpacity = (\n element: HTMLElement,\n opacity: string,\n transition?: string,\n): void => {\n element.style.opacity = opacity;\n if (transition) {\n element.style.transition = transition;\n }\n};\n\n/**\n * Validates required elements for animation.\n *\n * @param gridContainer - The grid container element\n * @param config - Configuration object\n * @returns True if all required elements are present\n */\nconst validateAnimationElements = (\n gridContainer: HTMLElement | null,\n config: Configuration | undefined,\n): boolean => {\n return gridContainer !== null && config !== undefined;\n};\n\n/**\n * Applies dimension and position transforms to a grid element.\n *\n * @param element - The element to transform\n * @param itemConfig - Configuration for this specific item\n * @param featuredElement - The featured element for sizing reference\n * @param gridContainer - The grid container for position reference\n */\nconst applyElementTransforms = (\n element: HTMLElement,\n itemConfig: ConfigurationItem,\n featuredElement: HTMLElement,\n): void => {\n if (featuredElement) {\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const featuredWidth = featuredElement.offsetWidth;\n const featuredHeight = featuredElement.offsetHeight;\n const isLargerThan40Percent =\n featuredWidth > windowWidth * 0.41 ||\n featuredHeight > windowHeight * 0.41;\n\n if (!isLargerThan40Percent) {\n element.style.width = `${featuredWidth}px`;\n element.style.height = `${featuredHeight}px`;\n } else {\n const parentContainer = featuredElement.parentElement;\n const parentWidth = parentContainer\n ? parentContainer.offsetWidth\n : windowWidth;\n\n const { width: widthPercentage, height: heightVh } = getResponsiveSizes();\n const width = Math.round(parentWidth * widthPercentage);\n const height = Math.round(windowHeight * heightVh);\n\n element.style.width = `${width}px`;\n element.style.height = `${height}px`;\n }\n }\n\n const transform = calculateCenterTransform(\n element,\n featuredElement,\n itemConfig?.offset,\n );\n element.style.transform = `translate(${transform.x}px, ${transform.y}px)`;\n};\n\n/**\n * Processes all grid items for animation.\n *\n * @param gridContainer - The grid container element\n * @param config - Configuration object\n * @returns void\n */\nconst processGridAnimation = (\n featuredElement: HTMLElement,\n gridContainer: HTMLElement,\n config: Configuration,\n): void => {\n const gridItems = Array.from(gridContainer.children) as HTMLElement[];\n\n gridItems.forEach((gridItem, index) => {\n const element = getStackElementFromGridItem(gridItem, index);\n\n if (!element) {\n return;\n }\n\n const itemConfig = config.items[index];\n\n applyElementTransforms(element, itemConfig, featuredElement);\n });\n};\n\nconst createGridElement = (\n element: HTMLImageElement | HTMLVideoElement,\n index: number,\n placement: ConfigurationItem,\n) => {\n const children: ElementVisual[] = [];\n\n if (element.tagName === 'IMG') {\n children.push(\n assets.image.background({\n element: element as HTMLImageElement,\n isScaled: true,\n }),\n );\n }\n\n const rowStart = placement.row ? parseInt(placement.row.split(' / ')[0]) : 0;\n\n const getStartRange = (row: number): number => {\n if (row >= 13) return -70;\n if (row >= 10 && row <= 12) return -40;\n if (row >= 6 && row < 10) return 40;\n return 80;\n };\n\n const getEndRange = (row: number): number => {\n if (row >= 13) return 120;\n if (row >= 10 && row <= 12) return 140;\n if (row >= 6 && row < 10) return 160;\n return 170;\n };\n\n const startRange = getStartRange(rowStart);\n const endRange = getEndRange(rowStart);\n const animationRangeStart = `${startRange}vh`;\n const animationRangeEnd = `${endRange}vh`;\n\n return ElementModel.createDiv({\n className: `${STACK_ELEMENT_CLASS}-${index}`,\n children,\n elementStyles: {\n element: {\n overflow: 'clip',\n height: '100%',\n width: '100%',\n\n ...theme.media.withViewTimelineAnimation({\n animation: `${KEY_FRAME_GRID_EXPAND} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart,\n animationRangeEnd,\n animationDuration: '1ms',\n }),\n },\n },\n });\n};\n\nconst createGridItem = (\n element: HTMLImageElement | HTMLVideoElement,\n placement: ConfigurationItem,\n index: number,\n) => {\n const rowStart = placement.row ? parseInt(placement.row.split(' / ')[0]) : 0;\n const startRange = rowStart > 8 ? 0 : 80;\n const endRange = rowStart > 8 ? 200 : 200;\n const animationRangeStart = `${startRange}vh`;\n const animationRangeEnd = `${endRange}vh`;\n\n return ElementModel.createDiv({\n className: `${STACK_ITEM_CLASS}-${index}`,\n children: [createGridElement(element, index, placement)],\n elementStyles: {\n element: {\n gridColumn: placement.column,\n gridRow: placement.row,\n zIndex: placement.zIndex || 1,\n width: '100%',\n height: '100%',\n\n [`@media (${Styles.token.media.queries.large.max})`]: {\n [`@supports not (animation-timeline: scroll())`]: {\n display: 'none',\n },\n },\n\n ...(isDisplayWithoutAnimation && {\n display: 'none',\n }),\n\n ...theme.media.withViewTimelineAnimation({\n animation: `${KEY_FRAME_GRID_ITEM} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart,\n animationRangeEnd,\n }),\n },\n },\n });\n};\n\nconst createGrid = (props: CardStackProps) => {\n const totalCount = props.images.length;\n const config = getConfigurationByCount(totalCount);\n\n if (!config) {\n console.warn(`No configuration found for ${totalCount} elements`);\n return ElementModel.createDiv({\n className: STACK_GRID_ERROR_CLASS,\n });\n }\n\n const gridItems = props.images.map((element, index) => {\n const placement = config.items[index];\n return createGridItem(element, placement, index);\n });\n\n return ElementModel.createDiv({\n className: STACK_GRID_CLASS,\n children: gridItems,\n elementStyles: {\n element: {\n display: 'grid',\n gridTemplateColumns: 'repeat(16, 1fr)',\n gridTemplateRows: 'repeat(16, 2vh)',\n gap: Styles.token.spacing.min,\n minHeight: '300px',\n\n [`@media (${Styles.token.media.queries.large.max})`]: {\n '@supports not (animation-timeline: scroll())': {\n width: '100%',\n },\n },\n\n ...theme.media.withViewTimelineAnimation({\n gridTemplateColumns: config.layout.gridTemplateColumns,\n gridTemplateRows: config.layout.gridTemplateRows,\n transform: 'translate(-50%, -25%)',\n }),\n },\n },\n });\n};\n\nconst createFeatured = (\n element: HTMLImageElement | HTMLVideoElement,\n isExpand: boolean,\n totalCount: number,\n) => {\n const children: ElementVisual[] = [];\n let video: (ElementVisual & { events: { setPlay: () => void } }) | undefined;\n\n if (element.tagName === 'IMG') {\n children.push(\n assets.image.background({\n element: element as HTMLImageElement,\n isScaled: true,\n }),\n );\n }\n\n if (element.tagName === 'VIDEO') {\n element.setAttribute('muted', 'true');\n element.setAttribute('playsinline', 'true');\n element.setAttribute('loop', 'true');\n\n video = assets.video.toggle({\n video: element as HTMLVideoElement,\n isScaled: true,\n });\n children.push(video);\n }\n\n const { width: widthPercentage, height: heightVh } = getResponsiveSizes();\n\n const featuredElement = ElementModel.createDiv({\n className: `${STACK_ELEMENT_CLASS}-featured`,\n children,\n elementStyles: {\n element: {\n position: 'absolute',\n top: '20vh',\n left: '50%',\n transform: 'translateX(-50%)',\n zIndex: 999,\n width: `${widthPercentage * 100}%`,\n height: `${heightVh * 100}vh`,\n\n ...(isDisplayWithoutAnimation && {\n top: '0',\n }),\n\n [`@media (${Styles.token.media.queries.large.max})`]: {\n '@supports not (animation-timeline: view())': {\n width: '100% !important',\n height: '100% !important',\n top: '0',\n },\n },\n\n ...(isExpand && {\n ...theme.media.withViewTimelineAnimation({\n top: '30vh',\n animation: `${KEY_FRAME_FEATURED_SIZE} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart: `${100 + (totalCount - 4) * 10}vh`,\n animationRangeEnd: '250vh',\n }),\n }),\n },\n },\n });\n\n if (isExpand && featuredElement.element instanceof HTMLElement) {\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (video) video.events.setPlay();\n observer.disconnect();\n }\n });\n },\n {\n rootMargin: `-${100 + (totalCount - 4) * 10}px 0px 0px 0px`,\n threshold: 0,\n },\n );\n\n observer.observe(featuredElement.element);\n }\n\n return featuredElement;\n};\n\nconst createSticky = (props: CardStackProps) => {\n const wrapper = ElementModel.createDiv({\n className: `${STACK_CONTAINER_CLASS}-sticky-wrapper`,\n children: [\n createGrid(props),\n createFeatured(\n props.featured,\n props.isExpandFeature,\n props.images.length,\n ),\n ],\n elementStyles: {\n element: {\n position: 'relative',\n\n ...theme.media.withViewTimelineAnimation({\n position: 'sticky',\n top: 0,\n }),\n },\n },\n });\n\n return ElementModel.createDiv({\n className: `${STACK_CONTAINER_CLASS}-sticky`,\n children: [wrapper],\n elementStyles: {\n element: {\n ...theme.media.withViewTimelineAnimation({\n height: '200vh',\n\n ...(props.isExpandFeature && {\n height: '250vh',\n }),\n }),\n },\n },\n });\n};\n\nexport default (props: CardStackProps) => {\n const composite = ElementModel.createDiv({\n className: STACK_CONTAINER_CLASS,\n children: [createSticky(props)],\n elementStyles: {\n element: {\n containerType: 'inline-size',\n opacity: '0',\n overflow: 'clip',\n },\n },\n });\n\n const loadAnimation = async () => {\n const totalCount = props.images.length;\n const config = getConfigurationByCount(totalCount);\n const gridContainer = composite.element.querySelector(\n `.${STACK_GRID_CLASS}`,\n ) as HTMLElement;\n const featuredElement = composite.element.querySelector(\n `.${STACK_ELEMENT_CLASS}-featured`,\n ) as HTMLElement;\n let animationsCleared = false;\n\n if (!validateAnimationElements(gridContainer, config)) {\n return;\n }\n\n const clearAnimations = () => {\n if (animationsCleared) return;\n\n clearElementAnimations(featuredElement, gridContainer);\n animationsCleared = true;\n\n setTimeout(() => {\n processGridAnimation(props.featured, gridContainer!, config!);\n }, 100);\n };\n\n try {\n await waitForMediaLoad(gridContainer!);\n } catch (error) {\n console.warn('Media loading failed, proceeding with animation:', error);\n }\n\n processGridAnimation(props.featured, gridContainer!, config!);\n setElementOpacity(composite.element, '1');\n\n if (!isMobileDevice()) {\n const resizeHandler = createResizeHandler(() => {\n setTimeout(() => {\n processGridAnimation(props.featured, gridContainer!, config!);\n setTimeout(() => {\n setElementOpacity(composite.element, '1');\n animationsCleared = false;\n }, 100);\n }, 200);\n });\n\n window.addEventListener('resize', () => {\n if (isMobileDevice()) {\n return;\n }\n\n if (composite.element.style.opacity === '1') {\n setElementOpacity(composite.element, '0', 'opacity 0.3s ease-in-out');\n }\n\n clearAnimations();\n resizeHandler();\n });\n }\n };\n\n composite.styles += keyFrameGridExpand;\n composite.styles += keyFrameGridItem;\n composite.styles += keyFrameFeaturedSize;\n\n return {\n ...composite,\n events: {\n loadAnimation,\n },\n };\n};\n"],"names":["accessibility.isPrefferdReducedMotion","index","assets.image.background","ElementModel.createDiv","theme.media.withViewTimelineAnimation","assets.video.toggle"],"mappings":";;;;;;;;;;;;;;;;AAmCA,MAAM,gBAAiC;AAAA,EACrC;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,MACN,qBAAqB;AAAA,MACrB,kBAAkB;AAAA,IAAA;AAAA,IAEpB,OAAO;AAAA,MACL;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,QAAQ;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QAAA;AAAA,MACR;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,UACN,KAAK;AAAA,UACL,OAAO;AAAA,QAAA;AAAA,MACT;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,QAAQ;AAAA,UACN,QAAQ;AAAA,UACR,MAAM;AAAA,QAAA;AAAA,MACR;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,UACN,OAAO;AAAA,UACP,QAAQ;AAAA,QAAA;AAAA,MACV;AAAA,IACF;AAAA,EACF;AAAA,EAEF;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,MACN,qBAAqB;AAAA,MACrB,kBAAkB;AAAA,IAAA;AAAA,IAEpB,OAAO;AAAA,MACL;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,QAAQ;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QAAA;AAAA,MACR;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,UACN,KAAK;AAAA,UACL,OAAO;AAAA,QAAA;AAAA,MACT;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,UACN,QAAQ;AAAA,UACR,OAAO;AAAA,QAAA;AAAA,MACT;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,QAAQ;AAAA,UACN,QAAQ;AAAA,UACR,MAAM;AAAA,QAAA;AAAA,MACR;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,UACN,OAAO;AAAA,UACP,QAAQ;AAAA,QAAA;AAAA,MACV;AAAA,IACF;AAAA,EACF;AAAA,EAEF;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,MACN,qBAAqB;AAAA,MACrB,kBAAkB;AAAA,IAAA;AAAA,IAEpB,OAAO;AAAA,MACL;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,QAAQ;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QAAA;AAAA,MACR;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,UACN,KAAK;AAAA,UACL,OAAO;AAAA,QAAA;AAAA,MACT;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,UACN,QAAQ;AAAA,UACR,OAAO;AAAA,QAAA;AAAA,MACT;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,UACN,QAAQ;AAAA,UACR,OAAO;AAAA,QAAA;AAAA,MACT;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,QAAQ;AAAA,UACN,QAAQ;AAAA,UACR,MAAM;AAAA,QAAA;AAAA,MACR;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,UACN,OAAO;AAAA,UACP,QAAQ;AAAA,QAAA;AAAA,MACV;AAAA,IACF;AAAA,EACF;AAAA,EAEF;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,MACN,qBAAqB;AAAA,MACrB,kBAAkB;AAAA,IAAA;AAAA,IAEpB,OAAO;AAAA,MACL;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,QAAQ;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QAAA;AAAA,MACR;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,UACN,KAAK;AAAA,UACL,OAAO;AAAA,QAAA;AAAA,MACT;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,UACN,QAAQ;AAAA,UACR,OAAO;AAAA,QAAA;AAAA,MACT;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,UACN,QAAQ;AAAA,UACR,OAAO;AAAA,QAAA;AAAA,MACT;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,QAAQ;AAAA,UACN,QAAQ;AAAA,UACR,MAAM;AAAA,QAAA;AAAA,MACR;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,UACN,OAAO;AAAA,UACP,QAAQ;AAAA,QAAA;AAAA,MACV;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,UACN,OAAO;AAAA,UACP,QAAQ;AAAA,QAAA;AAAA,MACV;AAAA,IACF;AAAA,EACF;AAAA,EAEF;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,MACN,qBAAqB;AAAA,MACrB,kBAAkB;AAAA,IAAA;AAAA,IAEpB,OAAO;AAAA,MACL;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,QAAQ;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QAAA;AAAA,MACR;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,UACN,KAAK;AAAA,UACL,OAAO;AAAA,QAAA;AAAA,MACT;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,UACN,QAAQ;AAAA,UACR,OAAO;AAAA,QAAA;AAAA,MACT;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,UACN,OAAO;AAAA,UACP,KAAK;AAAA,QAAA;AAAA,MACP;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,UACN,QAAQ;AAAA,UACR,OAAO;AAAA,QAAA;AAAA,MACT;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,QAAQ;AAAA,UACN,QAAQ;AAAA,UACR,MAAM;AAAA,QAAA;AAAA,MACR;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,UACN,OAAO;AAAA,UACP,QAAQ;AAAA,QAAA;AAAA,MACV;AAAA,MAEF;AAAA,QACE,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,QAAQ;AAAA,UACN,OAAO;AAAA,UACP,QAAQ;AAAA,QAAA;AAAA,MACV;AAAA,IACF;AAAA,EACF;AAEJ;AAGA,MAAM,wBAAwB;AAC9B,MAAM,sBAAsB,GAAG,qBAAqB;AACpD,MAAM,mBAAmB,GAAG,qBAAqB;AACjD,MAAM,mBAAmB,GAAG,qBAAqB;AACjD,MAAM,yBAAyB,GAAG,gBAAgB;AAElD,MAAM,wBAAwB;AAC9B,MAAM,sBAAsB;AAC5B,MAAM,0BAA0B;AAEhC,MAAM,wBAAwBA,wBAAc;AAC5C,MAAM,4BAA4B,MAChC,oBAAoB,UAAU,IAAI,SAAS,sBAAsB,UAAU;AAC7E,MAAM,4BACJ,yBAAyB,CAAC,0BAAA;AAE5B,MAAM,qBAAqB,MAAM;AAC/B,QAAM,cAAc,OAAO;AAE3B,MAAI,eAAe,MAAM;AACvB,WAAO,EAAE,OAAO,KAAK,QAAQ,IAAA;AAAA,EAC/B,WAAW,eAAe,KAAK;AAC7B,WAAO,EAAE,OAAO,KAAK,QAAQ,IAAA;AAAA,EAC/B,OAAO;AACL,WAAO,EAAE,OAAO,KAAK,QAAQ,IAAA;AAAA,EAC/B;AACF;AAEA,MAAM,qBAAqB;AAAA,eACZ,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQpC,MAAM,mBAAmB;AAAA,eACV,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAOlC,MAAM,uBAAuB;AAAA,eACd,uBAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAetC,MAAM,mBAAmB,OAAO,cAA0C;AACxE,QAAM,SAAS,MAAM,KAAK,UAAU,iBAAiB,KAAK,CAAC;AAC3D,QAAM,SAAS,MAAM,KAAK,UAAU,iBAAiB,OAAO,CAAC;AAE7D,QAAM,gBAAgB,OAAO,IAAI,CAAC,QAAQ;AACxC,QAAI,IAAI,UAAU;AAEhB,UAAI,IAAI,eAAe,GAAG;AACxB,eAAO,QAAQ,QAAA;AAAA,MACjB,OAAO;AAEL,eAAO,QAAQ,OAAO,IAAI,MAAM,yBAAyB,IAAI,GAAG,EAAE,CAAC;AAAA,MACrE;AAAA,IACF;AACA,WAAO,IAAI,QAAc,CAAC,SAAS,WAAW;AAC5C,UAAI,iBAAiB,QAAQ,MAAM,QAAA,GAAW,EAAE,MAAM,MAAM;AAC5D,UAAI;AAAA,QACF;AAAA,QACA,MAAM,OAAO,IAAI,MAAM,yBAAyB,IAAI,GAAG,EAAE,CAAC;AAAA,QAC1D,EAAE,MAAM,KAAA;AAAA,MAAK;AAAA,IAEjB,CAAC;AAAA,EACH,CAAC;AAED,QAAM,gBAAgB,OAAO,IAAI,CAAC,UAAU;AAC1C,QAAI,MAAM,cAAc,GAAG;AACzB,aAAO,QAAQ,QAAA;AAAA,IACjB;AACA,WAAO,IAAI,QAAc,CAAC,SAAS,WAAW;AAC5C,YAAM,iBAAiB,cAAc,MAAM,QAAA,GAAW,EAAE,MAAM,MAAM;AACpE,YAAM;AAAA,QACJ;AAAA,QACA,MAAM,OAAO,IAAI,MAAM,yBAAyB,MAAM,GAAG,EAAE,CAAC;AAAA,QAC5D,EAAE,MAAM,KAAA;AAAA,MAAK;AAAA,IAEjB,CAAC;AAAA,EACH,CAAC;AAED,QAAM,QAAQ,IAAI,CAAC,GAAG,eAAe,GAAG,aAAa,CAAC;AAEtD,SAAO,IAAI,QAAc,CAAC,YAAY;AACpC,0BAAsB,MAAM;AAC1B,4BAAsB,MAAM;AAC1B,gBAAA;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH,CAAC;AACH;AAQA,MAAM,0BAA0B,CAAC,UAAkB;AACjD,SAAO,cAAc,KAAK,CAAC,MAAM,EAAE,UAAU,KAAK;AACpD;AASA,MAAM,8BAA8B,CAClC,UACA,UACuB;AACvB,SAAO,SAAS;AAAA,IACd,IAAI,mBAAmB,IAAI,KAAK;AAAA,EAAA;AAEpC;AAWA,MAAM,2BAA2B,CAC/B,SACA,eACA,WAM6B;AAC7B,QAAM,cAAc,QAAQ,sBAAA;AAC5B,QAAM,aAAa,cAAc,sBAAA;AAEjC,QAAM,UAAU,WAAW,OAAO,WAAW,QAAQ;AACrD,QAAM,UAAU,WAAW,MAAM,WAAW,SAAS;AAErD,QAAM,iBAAiB,YAAY,OAAO,YAAY,QAAQ;AAC9D,QAAM,iBAAiB,YAAY,MAAM,YAAY,SAAS;AAE9D,MAAI,aAAa,UAAU;AAC3B,MAAI,aAAa,UAAU;AAE3B,MAAI,QAAQ;AACV,UAAM,cAAc,CAClB,OACA,cACW;AACX,aAAO,QAAS,WAAW,KAAK,IAAI,MAAO,YAAY;AAAA,IACzD;AAEA,kBAAc,YAAY,OAAO,MAAM,WAAW,KAAK;AACvD,kBAAc,YAAY,OAAO,OAAO,WAAW,KAAK;AACxD,kBAAc,YAAY,OAAO,KAAK,WAAW,MAAM;AACvD,kBAAc,YAAY,OAAO,QAAQ,WAAW,MAAM;AAAA,EAC5D;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,EAAA;AAEP;AAQA,MAAM,yBAAyB,CAC7B,iBACA,kBACS;AACT,MAAI,iBAAiB;AACnB,oBAAgB,MAAM,YAAY;AAAA,EACpC;AACA,MAAI,eAAe;AACjB,kBAAc,MAAM,YAAY;AAAA,EAClC;AACF;AAOA,MAAM,iBAAiB,MAAe;AACpC,SAAO,OAAO,aAAa;AAC7B;AASA,MAAM,sBAAsB,CAC1B,UACA,QAAgB,QACC;AACjB,MAAI,YAAmC;AACvC,MAAI,gBAAgB,OAAO;AAE3B,SAAO,MAAM;AACX,UAAM,eAAe,OAAO;AAG5B,QAAI,iBAAiB,eAAe;AAClC;AAAA,IACF;AAEA,oBAAgB;AAEhB,QAAI,WAAW;AACb,mBAAa,SAAS;AAAA,IACxB;AACA,gBAAY,WAAW,MAAM;AAC3B,eAAA;AACA,kBAAY;AAAA,IACd,GAAG,KAAK;AAAA,EACV;AACF;AASA,MAAM,oBAAoB,CACxB,SACA,SACA,eACS;AACT,UAAQ,MAAM,UAAU;AACxB,MAAI,YAAY;AACd,YAAQ,MAAM,aAAa;AAAA,EAC7B;AACF;AASA,MAAM,4BAA4B,CAChC,eACA,WACY;AACZ,SAAO,kBAAkB,QAAQ,WAAW;AAC9C;AAUA,MAAM,yBAAyB,CAC7B,SACA,YACA,oBACS;AACT,MAAI,iBAAiB;AACnB,UAAM,cAAc,OAAO;AAC3B,UAAM,eAAe,OAAO;AAC5B,UAAM,gBAAgB,gBAAgB;AACtC,UAAM,iBAAiB,gBAAgB;AACvC,UAAM,wBACJ,gBAAgB,cAAc,QAC9B,iBAAiB,eAAe;AAElC,QAAI,CAAC,uBAAuB;AAC1B,cAAQ,MAAM,QAAQ,GAAG,aAAa;AACtC,cAAQ,MAAM,SAAS,GAAG,cAAc;AAAA,IAC1C,OAAO;AACL,YAAM,kBAAkB,gBAAgB;AACxC,YAAM,cAAc,kBAChB,gBAAgB,cAChB;AAEJ,YAAM,EAAE,OAAO,iBAAiB,QAAQ,SAAA,IAAa,mBAAA;AACrD,YAAM,QAAQ,KAAK,MAAM,cAAc,eAAe;AACtD,YAAM,SAAS,KAAK,MAAM,eAAe,QAAQ;AAEjD,cAAQ,MAAM,QAAQ,GAAG,KAAK;AAC9B,cAAQ,MAAM,SAAS,GAAG,MAAM;AAAA,IAClC;AAAA,EACF;AAEA,QAAM,YAAY;AAAA,IAChB;AAAA,IACA;AAAA,IACA,YAAY;AAAA,EAAA;AAEd,UAAQ,MAAM,YAAY,aAAa,UAAU,CAAC,OAAO,UAAU,CAAC;AACtE;AASA,MAAM,uBAAuB,CAC3B,iBACA,eACA,WACS;AACT,QAAM,YAAY,MAAM,KAAK,cAAc,QAAQ;AAEnD,YAAU,QAAQ,CAAC,UAAU,UAAU;AACrC,UAAM,UAAU,4BAA4B,UAAU,KAAK;AAE3D,QAAI,CAAC,SAAS;AACZ;AAAA,IACF;AAEA,UAAM,aAAa,OAAO,MAAM,KAAK;AAErC,2BAAuB,SAAS,YAAY,eAAe;AAAA,EAC7D,CAAC;AACH;AAEA,MAAM,oBAAoB,CACxB,SACAC,SACA,cACG;AACH,QAAM,WAA4B,CAAA;AAElC,MAAI,QAAQ,YAAY,OAAO;AAC7B,aAAS;AAAA,MACPC,eAAwB;AAAA,QACtB;AAAA,QACA,UAAU;AAAA,MAAA,CACX;AAAA,IAAA;AAAA,EAEL;AAEA,QAAM,WAAW,UAAU,MAAM,SAAS,UAAU,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,IAAI;AAE3E,QAAM,gBAAgB,CAAC,QAAwB;AAC7C,QAAI,OAAO,GAAI,QAAO;AACtB,QAAI,OAAO,MAAM,OAAO,GAAI,QAAO;AACnC,QAAI,OAAO,KAAK,MAAM,GAAI,QAAO;AACjC,WAAO;AAAA,EACT;AAEA,QAAM,cAAc,CAAC,QAAwB;AAC3C,QAAI,OAAO,GAAI,QAAO;AACtB,QAAI,OAAO,MAAM,OAAO,GAAI,QAAO;AACnC,QAAI,OAAO,KAAK,MAAM,GAAI,QAAO;AACjC,WAAO;AAAA,EACT;AAEA,QAAM,aAAa,cAAc,QAAQ;AACzC,QAAM,WAAW,YAAY,QAAQ;AACrC,QAAM,sBAAsB,GAAG,UAAU;AACzC,QAAM,oBAAoB,GAAG,QAAQ;AAErC,SAAOC,UAAuB;AAAA,IAC5B,WAAW,GAAG,mBAAmB,IAAIF,OAAK;AAAA,IAC1C;AAAA,IACA,eAAe;AAAA,MACb,SAAS;AAAA,QACP,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,OAAO;AAAA,QAEP,GAAGG,0BAAsC;AAAA,UACvC,WAAW,GAAG,qBAAqB;AAAA,UACnC,mBAAmB;AAAA,UACnB;AAAA,UACA;AAAA,UACA,mBAAmB;AAAA,QAAA,CACpB;AAAA,MAAA;AAAA,IACH;AAAA,EACF,CACD;AACH;AAEA,MAAM,iBAAiB,CACrB,SACA,WACAH,YACG;AACH,QAAM,WAAW,UAAU,MAAM,SAAS,UAAU,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,IAAI;AAC3E,QAAM,aAAa,WAAW,IAAI,IAAI;AACtC,QAAM,WAAW,WAAW,IAAI,MAAM;AACtC,QAAM,sBAAsB,GAAG,UAAU;AACzC,QAAM,oBAAoB,GAAG,QAAQ;AAErC,SAAOE,UAAuB;AAAA,IAC5B,WAAW,GAAG,gBAAgB,IAAIF,OAAK;AAAA,IACvC,UAAU,CAAC,kBAAkB,SAASA,SAAO,SAAS,CAAC;AAAA,IACvD,eAAe;AAAA,MACb,SAAS;AAAA,QACP,YAAY,UAAU;AAAA,QACtB,SAAS,UAAU;AAAA,QACnB,QAAQ,UAAU,UAAU;AAAA,QAC5B,OAAO;AAAA,QACP,QAAQ;AAAA,QAER,CAAC,WAAW,OAAO,MAAM,MAAM,QAAQ,MAAM,GAAG,GAAG,GAAG;AAAA,UACpD,CAAC,8CAA8C,GAAG;AAAA,YAChD,SAAS;AAAA,UAAA;AAAA,QACX;AAAA,QAGF,GAAI,6BAA6B;AAAA,UAC/B,SAAS;AAAA,QAAA;AAAA,QAGX,GAAGG,0BAAsC;AAAA,UACvC,WAAW,GAAG,mBAAmB;AAAA,UACjC,mBAAmB;AAAA,UACnB;AAAA,UACA;AAAA,QAAA,CACD;AAAA,MAAA;AAAA,IACH;AAAA,EACF,CACD;AACH;AAEA,MAAM,aAAa,CAAC,UAA0B;AAC5C,QAAM,aAAa,MAAM,OAAO;AAChC,QAAM,SAAS,wBAAwB,UAAU;AAEjD,MAAI,CAAC,QAAQ;AACX,YAAQ,KAAK,8BAA8B,UAAU,WAAW;AAChE,WAAOD,UAAuB;AAAA,MAC5B,WAAW;AAAA,IAAA,CACZ;AAAA,EACH;AAEA,QAAM,YAAY,MAAM,OAAO,IAAI,CAAC,SAAS,UAAU;AACrD,UAAM,YAAY,OAAO,MAAM,KAAK;AACpC,WAAO,eAAe,SAAS,WAAW,KAAK;AAAA,EACjD,CAAC;AAED,SAAOA,UAAuB;AAAA,IAC5B,WAAW;AAAA,IACX,UAAU;AAAA,IACV,eAAe;AAAA,MACb,SAAS;AAAA,QACP,SAAS;AAAA,QACT,qBAAqB;AAAA,QACrB,kBAAkB;AAAA,QAClB,KAAK,OAAO,MAAM,QAAQ;AAAA,QAC1B,WAAW;AAAA,QAEX,CAAC,WAAW,OAAO,MAAM,MAAM,QAAQ,MAAM,GAAG,GAAG,GAAG;AAAA,UACpD,gDAAgD;AAAA,YAC9C,OAAO;AAAA,UAAA;AAAA,QACT;AAAA,QAGF,GAAGC,0BAAsC;AAAA,UACvC,qBAAqB,OAAO,OAAO;AAAA,UACnC,kBAAkB,OAAO,OAAO;AAAA,UAChC,WAAW;AAAA,QAAA,CACZ;AAAA,MAAA;AAAA,IACH;AAAA,EACF,CACD;AACH;AAEA,MAAM,iBAAiB,CACrB,SACA,UACA,eACG;AACH,QAAM,WAA4B,CAAA;AAClC,MAAI;AAEJ,MAAI,QAAQ,YAAY,OAAO;AAC7B,aAAS;AAAA,MACPF,eAAwB;AAAA,QACtB;AAAA,QACA,UAAU;AAAA,MAAA,CACX;AAAA,IAAA;AAAA,EAEL;AAEA,MAAI,QAAQ,YAAY,SAAS;AAC/B,YAAQ,aAAa,SAAS,MAAM;AACpC,YAAQ,aAAa,eAAe,MAAM;AAC1C,YAAQ,aAAa,QAAQ,MAAM;AAEnC,YAAQG,OAAoB;AAAA,MAC1B,OAAO;AAAA,MACP,UAAU;AAAA,IAAA,CACX;AACD,aAAS,KAAK,KAAK;AAAA,EACrB;AAEA,QAAM,EAAE,OAAO,iBAAiB,QAAQ,SAAA,IAAa,mBAAA;AAErD,QAAM,kBAAkBF,UAAuB;AAAA,IAC7C,WAAW,GAAG,mBAAmB;AAAA,IACjC;AAAA,IACA,eAAe;AAAA,MACb,SAAS;AAAA,QACP,UAAU;AAAA,QACV,KAAK;AAAA,QACL,MAAM;AAAA,QACN,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,OAAO,GAAG,kBAAkB,GAAG;AAAA,QAC/B,QAAQ,GAAG,WAAW,GAAG;AAAA,QAEzB,GAAI,6BAA6B;AAAA,UAC/B,KAAK;AAAA,QAAA;AAAA,QAGP,CAAC,WAAW,OAAO,MAAM,MAAM,QAAQ,MAAM,GAAG,GAAG,GAAG;AAAA,UACpD,8CAA8C;AAAA,YAC5C,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,KAAK;AAAA,UAAA;AAAA,QACP;AAAA,QAGF,GAAI,YAAY;AAAA,UACd,GAAGC,0BAAsC;AAAA,YACvC,KAAK;AAAA,YACL,WAAW,GAAG,uBAAuB;AAAA,YACrC,mBAAmB;AAAA,YACnB,qBAAqB,GAAG,OAAO,aAAa,KAAK,EAAE;AAAA,YACnD,mBAAmB;AAAA,UAAA,CACpB;AAAA,QAAA;AAAA,MACH;AAAA,IACF;AAAA,EACF,CACD;AAED,MAAI,YAAY,gBAAgB,mBAAmB,aAAa;AAC9D,UAAM,WAAW,IAAI;AAAA,MACnB,CAAC,YAAY;AACX,gBAAQ,QAAQ,CAAC,UAAU;AACzB,cAAI,MAAM,gBAAgB;AACxB,gBAAI,MAAO,OAAM,OAAO,QAAA;AACxB,qBAAS,WAAA;AAAA,UACX;AAAA,QACF,CAAC;AAAA,MACH;AAAA,MACA;AAAA,QACE,YAAY,IAAI,OAAO,aAAa,KAAK,EAAE;AAAA,QAC3C,WAAW;AAAA,MAAA;AAAA,IACb;AAGF,aAAS,QAAQ,gBAAgB,OAAO;AAAA,EAC1C;AAEA,SAAO;AACT;AAEA,MAAM,eAAe,CAAC,UAA0B;AAC9C,QAAM,UAAUD,UAAuB;AAAA,IACrC,WAAW,GAAG,qBAAqB;AAAA,IACnC,UAAU;AAAA,MACR,WAAW,KAAK;AAAA,MAChB;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM,OAAO;AAAA,MAAA;AAAA,IACf;AAAA,IAEF,eAAe;AAAA,MACb,SAAS;AAAA,QACP,UAAU;AAAA,QAEV,GAAGC,0BAAsC;AAAA,UACvC,UAAU;AAAA,UACV,KAAK;AAAA,QAAA,CACN;AAAA,MAAA;AAAA,IACH;AAAA,EACF,CACD;AAED,SAAOD,UAAuB;AAAA,IAC5B,WAAW,GAAG,qBAAqB;AAAA,IACnC,UAAU,CAAC,OAAO;AAAA,IAClB,eAAe;AAAA,MACb,SAAS;AAAA,QACP,GAAGC,0BAAsC;AAAA,UACvC,QAAQ;AAAA,UAER,GAAI,MAAM,mBAAmB;AAAA,YAC3B,QAAQ;AAAA,UAAA;AAAA,QACV,CACD;AAAA,MAAA;AAAA,IACH;AAAA,EACF,CACD;AACH;AAEA,MAAA,YAAe,CAAC,UAA0B;AACxC,QAAM,YAAYD,UAAuB;AAAA,IACvC,WAAW;AAAA,IACX,UAAU,CAAC,aAAa,KAAK,CAAC;AAAA,IAC9B,eAAe;AAAA,MACb,SAAS;AAAA,QACP,eAAe;AAAA,QACf,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA,IACZ;AAAA,EACF,CACD;AAED,QAAM,gBAAgB,YAAY;AAChC,UAAM,aAAa,MAAM,OAAO;AAChC,UAAM,SAAS,wBAAwB,UAAU;AACjD,UAAM,gBAAgB,UAAU,QAAQ;AAAA,MACtC,IAAI,gBAAgB;AAAA,IAAA;AAEtB,UAAM,kBAAkB,UAAU,QAAQ;AAAA,MACxC,IAAI,mBAAmB;AAAA,IAAA;AAEzB,QAAI,oBAAoB;AAExB,QAAI,CAAC,0BAA0B,eAAe,MAAM,GAAG;AACrD;AAAA,IACF;AAEA,UAAM,kBAAkB,MAAM;AAC5B,UAAI,kBAAmB;AAEvB,6BAAuB,iBAAiB,aAAa;AACrD,0BAAoB;AAEpB,iBAAW,MAAM;AACf,6BAAqB,MAAM,UAAU,eAAgB,MAAO;AAAA,MAC9D,GAAG,GAAG;AAAA,IACR;AAEA,QAAI;AACF,YAAM,iBAAiB,aAAc;AAAA,IACvC,SAAS,OAAO;AACd,cAAQ,KAAK,oDAAoD,KAAK;AAAA,IACxE;AAEA,yBAAqB,MAAM,UAAU,eAAgB,MAAO;AAC5D,sBAAkB,UAAU,SAAS,GAAG;AAExC,QAAI,CAAC,kBAAkB;AACrB,YAAM,gBAAgB,oBAAoB,MAAM;AAC9C,mBAAW,MAAM;AACf,+BAAqB,MAAM,UAAU,eAAgB,MAAO;AAC5D,qBAAW,MAAM;AACf,8BAAkB,UAAU,SAAS,GAAG;AACxC,gCAAoB;AAAA,UACtB,GAAG,GAAG;AAAA,QACR,GAAG,GAAG;AAAA,MACR,CAAC;AAED,aAAO,iBAAiB,UAAU,MAAM;AACtC,YAAI,kBAAkB;AACpB;AAAA,QACF;AAEA,YAAI,UAAU,QAAQ,MAAM,YAAY,KAAK;AAC3C,4BAAkB,UAAU,SAAS,KAAK,0BAA0B;AAAA,QACtE;AAEA,wBAAA;AACA,sBAAA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAEA,YAAU,UAAU;AACpB,YAAU,UAAU;AACpB,YAAU,UAAU;AAEpB,SAAO;AAAA,IACL,GAAG;AAAA,IACH,QAAQ;AAAA,MACN;AAAA,IAAA;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"card-stack.mjs","sources":["../../../../source/atomic/animations/brand/card-stack.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\nimport { isPreferredReducedMotion } from '@universityofmaryland/web-utilities-library/accessibility';\nimport { withViewTimelineAnimation } from '@universityofmaryland/web-utilities-library/styles';\nimport { ElementModel } from 'model';\nimport { assets } from 'atomic';\nimport { type ElementVisual } from '../../../_types';\n\ninterface CardStackProps {\n featured: HTMLImageElement | HTMLVideoElement;\n images: HTMLImageElement[];\n isExpandFeature: boolean;\n}\n\ninterface ConfigurationItem {\n column?: string;\n row?: string;\n zIndex?: number;\n featured?: boolean;\n matchWidth?: boolean;\n offset?: {\n top?: string;\n left?: string;\n right?: string;\n bottom?: string;\n };\n}\n\ninterface Configuration {\n count: number;\n layout: {\n gridTemplateColumns: string;\n gridTemplateRows: string;\n };\n items: ConfigurationItem[];\n}\n\nconst configuration: Configuration[] = [\n {\n count: 4,\n layout: {\n gridTemplateColumns: 'repeat(15, 10vw)',\n gridTemplateRows: 'repeat(15, 8vh)',\n },\n items: [\n {\n column: '3 / 8',\n row: '4 / 5',\n zIndex: 9,\n offset: {\n top: '-10%',\n left: '-5%',\n },\n },\n {\n column: '12 / 15',\n row: '2 / 6',\n offset: {\n top: '-1%',\n right: '-4%',\n },\n },\n {\n column: '4 / 7',\n row: '10 / 15',\n zIndex: 9,\n offset: {\n bottom: '-13%',\n left: '-4%',\n },\n },\n {\n column: '13 / 15',\n row: '10 / 14',\n offset: {\n right: '-8%',\n bottom: '-3%',\n },\n },\n ],\n },\n {\n count: 5,\n layout: {\n gridTemplateColumns: 'repeat(15, 10vw)',\n gridTemplateRows: 'repeat(15, 8vh)',\n },\n items: [\n {\n column: '2 / 6',\n row: '4 / 9',\n zIndex: 9,\n offset: {\n top: '-10%',\n left: '-6%',\n },\n },\n {\n column: '12 / 15',\n row: '2 / 5',\n offset: {\n top: '-3%',\n right: '-5%',\n },\n },\n {\n column: '10 / 12',\n row: '3 / 5',\n offset: {\n bottom: '-20%',\n right: '-1%',\n },\n },\n {\n column: '1 / 4',\n row: '8/ 13',\n zIndex: 9,\n offset: {\n bottom: '-10%',\n left: '-10%',\n },\n },\n {\n column: '12 / 15',\n row: '10 / 14',\n offset: {\n right: '-10%',\n bottom: '-7%',\n },\n },\n ],\n },\n {\n count: 6,\n layout: {\n gridTemplateColumns: 'repeat(15, 10vw)',\n gridTemplateRows: 'repeat(15, 8vh)',\n },\n items: [\n {\n column: '2 / 6',\n row: '4 / 9',\n zIndex: 9,\n offset: {\n top: '-10%',\n left: '-6%',\n },\n },\n {\n column: '12 / 15',\n row: '2 / 5',\n offset: {\n top: '-3%',\n right: '-5%',\n },\n },\n {\n column: '10 / 12',\n row: '3 / 5',\n offset: {\n bottom: '-20%',\n right: '-1%',\n },\n },\n {\n column: '12 / 15',\n row: '6 / 8',\n offset: {\n bottom: '-5%',\n right: '-20%',\n },\n },\n {\n column: '1 / 4',\n row: '8/ 13',\n zIndex: 9,\n offset: {\n bottom: '-10%',\n left: '-10%',\n },\n },\n {\n column: '12 / 15',\n row: '10 / 14',\n offset: {\n right: '-10%',\n bottom: '-7%',\n },\n },\n ],\n },\n {\n count: 7,\n layout: {\n gridTemplateColumns: 'repeat(15, 10vw)',\n gridTemplateRows: 'repeat(15, 8vh)',\n },\n items: [\n {\n column: '2 / 6',\n row: '4 / 9',\n zIndex: 9,\n offset: {\n top: '-10%',\n left: '-6%',\n },\n },\n {\n column: '12 / 15',\n row: '2 / 5',\n offset: {\n top: '-3%',\n right: '-5%',\n },\n },\n {\n column: '10 / 12',\n row: '3 / 5',\n offset: {\n bottom: '-20%',\n right: '-1%',\n },\n },\n {\n column: '12 / 15',\n row: '6 / 8',\n offset: {\n bottom: '-5%',\n right: '-20%',\n },\n },\n {\n column: '1 / 4',\n row: '8/ 13',\n zIndex: 9,\n offset: {\n bottom: '-10%',\n left: '-10%',\n },\n },\n {\n column: '12 / 15',\n row: '10 / 14',\n offset: {\n right: '-10%',\n bottom: '-7%',\n },\n },\n {\n column: '6 / 9',\n row: '10 / 15',\n offset: {\n right: '-10%',\n bottom: '-25%',\n },\n },\n ],\n },\n {\n count: 8,\n layout: {\n gridTemplateColumns: 'repeat(15, 10vw)',\n gridTemplateRows: 'repeat(15, 8vh)',\n },\n items: [\n {\n column: '2 / 6',\n row: '4 / 9',\n zIndex: 9,\n offset: {\n top: '-10%',\n left: '-6%',\n },\n },\n {\n column: '12 / 15',\n row: '2 / 5',\n offset: {\n top: '-3%',\n right: '-5%',\n },\n },\n {\n column: '10 / 12',\n row: '3 / 5',\n offset: {\n bottom: '-20%',\n right: '-1%',\n },\n },\n {\n column: '3 / 9',\n row: '1 / 3',\n offset: {\n right: '-10%',\n top: '-25%',\n },\n },\n {\n column: '12 / 15',\n row: '6 / 8',\n offset: {\n bottom: '-5%',\n right: '-20%',\n },\n },\n {\n column: '1 / 4',\n row: '8/ 13',\n zIndex: 9,\n offset: {\n bottom: '-10%',\n left: '-10%',\n },\n },\n {\n column: '12 / 15',\n row: '10 / 14',\n offset: {\n right: '-10%',\n bottom: '-7%',\n },\n },\n {\n column: '6 / 9',\n row: '10 / 15',\n offset: {\n right: '-10%',\n bottom: '-25%',\n },\n },\n ],\n },\n];\n\n// Class name constants\nconst STACK_CONTAINER_CLASS = 'brand-animations-card-stack';\nconst STACK_ELEMENT_CLASS = `${STACK_CONTAINER_CLASS}-element`;\nconst STACK_GRID_CLASS = `${STACK_CONTAINER_CLASS}-grid`;\nconst STACK_ITEM_CLASS = `${STACK_CONTAINER_CLASS}-item`;\nconst STACK_GRID_ERROR_CLASS = `${STACK_GRID_CLASS}-error`;\n\nconst KEY_FRAME_GRID_EXPAND = 'grid-expand';\nconst KEY_FRAME_GRID_ITEM = 'grid-item';\nconst KEY_FRAME_FEATURED_SIZE = 'featured-size';\n\nconst isPreferReducedMotion = isPreferredReducedMotion();\nconst isScrollTimelineSupported = () =>\n 'ScrollTimeline' in window || CSS.supports('animation-timeline', 'scroll()');\nconst isDisplayWithoutAnimation =\n isPreferReducedMotion || !isScrollTimelineSupported();\n\nconst getResponsiveSizes = () => {\n const windowWidth = window.innerWidth;\n\n if (windowWidth >= 1024) {\n return { width: 0.4, height: 0.4 };\n } else if (windowWidth >= 768) {\n return { width: 0.5, height: 0.5 };\n } else {\n return { width: 0.8, height: 0.5 };\n }\n};\n\nconst keyFrameGridExpand = `\n @keyframes ${KEY_FRAME_GRID_EXPAND} {\n to {\n transform: translate(0, 0);\n width: inherit;\n }\n }\n`;\n\nconst keyFrameGridItem = `\n @keyframes ${KEY_FRAME_GRID_ITEM} {\n to {\n opacity: 0;\n }\n }\n`;\n\nconst keyFrameFeaturedSize = `\n @keyframes ${KEY_FRAME_FEATURED_SIZE} {\n to {\n width: 100%;\n height: 100vh;\n top: 0%;\n }\n }\n`;\n\n/**\n * Waits for all media elements (images and videos) to load and render.\n *\n * @param container - The container element containing the media\n * @returns Promise that resolves when all media is loaded and rendered\n */\nconst waitForMediaLoad = async (container: HTMLElement): Promise<void> => {\n const images = Array.from(container.querySelectorAll('img'));\n const videos = Array.from(container.querySelectorAll('video'));\n\n const imagePromises = images.map((img) => {\n if (img.complete) {\n // Check if image loaded successfully or failed\n if (img.naturalWidth > 0) {\n return Promise.resolve();\n } else {\n // Image is complete but has no natural dimensions - it failed to load\n return Promise.reject(new Error(`Failed to load image: ${img.src}`));\n }\n }\n return new Promise<void>((resolve, reject) => {\n img.addEventListener('load', () => resolve(), { once: true });\n img.addEventListener(\n 'error',\n () => reject(new Error(`Failed to load image: ${img.src}`)),\n { once: true },\n );\n });\n });\n\n const videoPromises = videos.map((video) => {\n if (video.readyState >= 3) {\n return Promise.resolve();\n }\n return new Promise<void>((resolve, reject) => {\n video.addEventListener('loadeddata', () => resolve(), { once: true });\n video.addEventListener(\n 'error',\n () => reject(new Error(`Failed to load video: ${video.src}`)),\n { once: true },\n );\n });\n });\n\n await Promise.all([...imagePromises, ...videoPromises]);\n\n return new Promise<void>((resolve) => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n resolve();\n });\n });\n });\n};\n\n/**\n * Retrieves the configuration object for a specific element count.\n *\n * @param count - The number of elements to display\n * @returns The configuration object for the given count, or undefined if not found\n */\nconst getConfigurationByCount = (count: number) => {\n return configuration.find((c) => c.count === count);\n};\n\n/**\n * Gets the stack element from a grid item.\n *\n * @param gridItem - The grid item element\n * @param index - The index of the stack element\n * @returns The stack element or null if not found\n */\nconst getStackElementFromGridItem = (\n gridItem: HTMLElement,\n index: number,\n): HTMLElement | null => {\n return gridItem.querySelector(\n `.${STACK_ELEMENT_CLASS}-${index}`,\n ) as HTMLElement;\n};\n\n/**\n * Calculates the transform values (x, y) needed to center an element\n * relative to the brand-animations-card-stack-grid container with optional offset.\n *\n * @param element - The element to be centered\n * @param gridContainer - The grid container element\n * @param offset - Optional offset values in percentages\n * @returns Transform values {x, y} in pixels to center the element with offset\n */\nconst calculateCenterTransform = (\n element: HTMLElement,\n centerElement: HTMLElement,\n offset?: {\n top?: string;\n left?: string;\n right?: string;\n bottom?: string;\n },\n): { x: number; y: number } => {\n const elementRect = element.getBoundingClientRect();\n const centerRect = centerElement.getBoundingClientRect();\n\n const centerX = centerRect.left + centerRect.width / 2;\n const centerY = centerRect.top + centerRect.height / 2;\n\n const elementCenterX = elementRect.left + elementRect.width / 2;\n const elementCenterY = elementRect.top + elementRect.height / 2;\n\n let translateX = centerX - elementCenterX;\n let translateY = centerY - elementCenterY;\n\n if (offset) {\n const applyOffset = (\n value: string | undefined,\n dimension: number,\n ): number => {\n return value ? (parseFloat(value) / 100) * dimension : 0;\n };\n\n translateX += applyOffset(offset.left, centerRect.width);\n translateX -= applyOffset(offset.right, centerRect.width);\n translateY += applyOffset(offset.top, centerRect.height);\n translateY -= applyOffset(offset.bottom, centerRect.height);\n }\n\n return {\n x: translateX,\n y: translateY,\n };\n};\n\n/**\n * Clears animations from elements.\n *\n * @param featuredElement - The featured element\n * @param gridContainer - The grid container element\n */\nconst clearElementAnimations = (\n featuredElement: HTMLElement | null,\n gridContainer: HTMLElement | null,\n): void => {\n if (featuredElement) {\n featuredElement.style.animation = 'none';\n }\n if (gridContainer) {\n gridContainer.style.animation = 'none';\n }\n};\n\n/**\n * Checks if the current device is mobile based on viewport width.\n *\n * @returns True if device is mobile (width < 768px)\n */\nconst isMobileDevice = (): boolean => {\n return window.innerWidth < 768;\n};\n\n/**\n * Creates a resize handler function that only executes on actual window resizes.\n *\n * @param onResize - Callback to execute on resize\n * @param delay - Delay in milliseconds before executing callback\n * @returns Resize handler function\n */\nconst createResizeHandler = (\n onResize: () => void,\n delay: number = 300,\n): (() => void) => {\n let timeoutId: NodeJS.Timeout | null = null;\n let previousWidth = window.innerWidth;\n\n return () => {\n const currentWidth = window.innerWidth;\n\n // Only trigger on width changes (actual resize, not mobile scroll)\n if (currentWidth === previousWidth) {\n return;\n }\n\n previousWidth = currentWidth;\n\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n onResize();\n timeoutId = null;\n }, delay);\n };\n};\n\n/**\n * Sets opacity with optional transition.\n *\n * @param element - The element to modify\n * @param opacity - The opacity value\n * @param transition - Optional transition string\n */\nconst setElementOpacity = (\n element: HTMLElement,\n opacity: string,\n transition?: string,\n): void => {\n element.style.opacity = opacity;\n if (transition) {\n element.style.transition = transition;\n }\n};\n\n/**\n * Validates required elements for animation.\n *\n * @param gridContainer - The grid container element\n * @param config - Configuration object\n * @returns True if all required elements are present\n */\nconst validateAnimationElements = (\n gridContainer: HTMLElement | null,\n config: Configuration | undefined,\n): boolean => {\n return gridContainer !== null && config !== undefined;\n};\n\n/**\n * Applies dimension and position transforms to a grid element.\n *\n * @param element - The element to transform\n * @param itemConfig - Configuration for this specific item\n * @param featuredElement - The featured element for sizing reference\n * @param gridContainer - The grid container for position reference\n */\nconst applyElementTransforms = (\n element: HTMLElement,\n itemConfig: ConfigurationItem,\n featuredElement: HTMLElement,\n): void => {\n if (featuredElement) {\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const featuredWidth = featuredElement.offsetWidth;\n const featuredHeight = featuredElement.offsetHeight;\n const isLargerThan40Percent =\n featuredWidth > windowWidth * 0.41 ||\n featuredHeight > windowHeight * 0.41;\n\n if (!isLargerThan40Percent) {\n element.style.width = `${featuredWidth}px`;\n element.style.height = `${featuredHeight}px`;\n } else {\n const parentContainer = featuredElement.parentElement;\n const parentWidth = parentContainer\n ? parentContainer.offsetWidth\n : windowWidth;\n\n const { width: widthPercentage, height: heightVh } = getResponsiveSizes();\n const width = Math.round(parentWidth * widthPercentage);\n const height = Math.round(windowHeight * heightVh);\n\n element.style.width = `${width}px`;\n element.style.height = `${height}px`;\n }\n }\n\n const transform = calculateCenterTransform(\n element,\n featuredElement,\n itemConfig?.offset,\n );\n element.style.transform = `translate(${transform.x}px, ${transform.y}px)`;\n};\n\n/**\n * Processes all grid items for animation.\n *\n * @param gridContainer - The grid container element\n * @param config - Configuration object\n * @returns void\n */\nconst processGridAnimation = (\n featuredElement: HTMLElement,\n gridContainer: HTMLElement,\n config: Configuration,\n): void => {\n const gridItems = Array.from(gridContainer.children) as HTMLElement[];\n\n gridItems.forEach((gridItem, index) => {\n const element = getStackElementFromGridItem(gridItem, index);\n\n if (!element) {\n return;\n }\n\n const itemConfig = config.items[index];\n\n applyElementTransforms(element, itemConfig, featuredElement);\n });\n};\n\nconst createGridElement = (\n element: HTMLImageElement | HTMLVideoElement,\n index: number,\n placement: ConfigurationItem,\n) => {\n const children: ElementVisual[] = [];\n\n if (element.tagName === 'IMG') {\n children.push(\n assets.image.background({\n element: element as HTMLImageElement,\n isScaled: true,\n }),\n );\n }\n\n const rowStart = placement.row ? parseInt(placement.row.split(' / ')[0]) : 0;\n\n const getStartRange = (row: number): number => {\n if (row >= 13) return -70;\n if (row >= 10 && row <= 12) return -40;\n if (row >= 6 && row < 10) return 40;\n return 80;\n };\n\n const getEndRange = (row: number): number => {\n if (row >= 13) return 120;\n if (row >= 10 && row <= 12) return 140;\n if (row >= 6 && row < 10) return 160;\n return 170;\n };\n\n const startRange = getStartRange(rowStart);\n const endRange = getEndRange(rowStart);\n const animationRangeStart = `${startRange}vh`;\n const animationRangeEnd = `${endRange}vh`;\n\n return ElementModel.createDiv({\n className: `${STACK_ELEMENT_CLASS}-${index}`,\n children,\n elementStyles: {\n element: {\n overflow: 'clip',\n height: '100%',\n width: '100%',\n\n ...withViewTimelineAnimation({\n animation: `${KEY_FRAME_GRID_EXPAND} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart,\n animationRangeEnd,\n animationDuration: '1ms',\n }),\n },\n },\n });\n};\n\nconst createGridItem = (\n element: HTMLImageElement | HTMLVideoElement,\n placement: ConfigurationItem,\n index: number,\n) => {\n const rowStart = placement.row ? parseInt(placement.row.split(' / ')[0]) : 0;\n const startRange = rowStart > 8 ? 0 : 80;\n const endRange = rowStart > 8 ? 200 : 200;\n const animationRangeStart = `${startRange}vh`;\n const animationRangeEnd = `${endRange}vh`;\n\n return ElementModel.createDiv({\n className: `${STACK_ITEM_CLASS}-${index}`,\n children: [createGridElement(element, index, placement)],\n elementStyles: {\n element: {\n gridColumn: placement.column,\n gridRow: placement.row,\n zIndex: placement.zIndex || 1,\n width: '100%',\n height: '100%',\n\n [`@media (${token.media.queries.large.max})`]: {\n [`@supports not (animation-timeline: scroll())`]: {\n display: 'none',\n },\n },\n\n ...(isDisplayWithoutAnimation && {\n display: 'none',\n }),\n\n ...withViewTimelineAnimation({\n animation: `${KEY_FRAME_GRID_ITEM} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart,\n animationRangeEnd,\n }),\n },\n },\n });\n};\n\nconst createGrid = (props: CardStackProps) => {\n const totalCount = props.images.length;\n const config = getConfigurationByCount(totalCount);\n\n if (!config) {\n console.warn(`No configuration found for ${totalCount} elements`);\n return ElementModel.createDiv({\n className: STACK_GRID_ERROR_CLASS,\n });\n }\n\n const gridItems = props.images.map((element, index) => {\n const placement = config.items[index];\n return createGridItem(element, placement, index);\n });\n\n return ElementModel.createDiv({\n className: STACK_GRID_CLASS,\n children: gridItems,\n elementStyles: {\n element: {\n display: 'grid',\n gridTemplateColumns: 'repeat(16, 1fr)',\n gridTemplateRows: 'repeat(16, 2vh)',\n gap: token.spacing.min,\n minHeight: '300px',\n\n [`@media (${token.media.queries.large.max})`]: {\n '@supports not (animation-timeline: scroll())': {\n width: '100%',\n },\n },\n\n ...withViewTimelineAnimation({\n gridTemplateColumns: config.layout.gridTemplateColumns,\n gridTemplateRows: config.layout.gridTemplateRows,\n transform: 'translate(-50%, -25%)',\n }),\n },\n },\n });\n};\n\nconst createFeatured = (\n element: HTMLImageElement | HTMLVideoElement,\n isExpand: boolean,\n totalCount: number,\n) => {\n const children: ElementVisual[] = [];\n let video: (ElementVisual & { events: { setPlay: () => void } }) | undefined;\n\n if (element.tagName === 'IMG') {\n children.push(\n assets.image.background({\n element: element as HTMLImageElement,\n isScaled: true,\n }),\n );\n }\n\n if (element.tagName === 'VIDEO') {\n element.setAttribute('muted', 'true');\n element.setAttribute('playsinline', 'true');\n element.setAttribute('loop', 'true');\n\n video = assets.video.toggle({\n video: element as HTMLVideoElement,\n isScaled: true,\n });\n children.push(video);\n }\n\n const { width: widthPercentage, height: heightVh } = getResponsiveSizes();\n\n const featuredElement = ElementModel.createDiv({\n className: `${STACK_ELEMENT_CLASS}-featured`,\n children,\n elementStyles: {\n element: {\n position: 'absolute',\n top: '20vh',\n left: '50%',\n transform: 'translateX(-50%)',\n zIndex: 999,\n width: `${widthPercentage * 100}%`,\n height: `${heightVh * 100}vh`,\n\n ...(isDisplayWithoutAnimation && {\n top: '0',\n }),\n\n [`@media (${token.media.queries.large.max})`]: {\n '@supports not (animation-timeline: view())': {\n width: '100% !important',\n height: '100% !important',\n top: '0',\n },\n },\n\n ...(isExpand && {\n ...withViewTimelineAnimation({\n top: '30vh',\n animation: `${KEY_FRAME_FEATURED_SIZE} ease-in-out forwards`,\n animationTimeline: 'view()',\n animationRangeStart: `${100 + (totalCount - 4) * 10}vh`,\n animationRangeEnd: '250vh',\n }),\n }),\n },\n },\n });\n\n if (isExpand && featuredElement.element instanceof HTMLElement) {\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (video) video.events.setPlay();\n observer.disconnect();\n }\n });\n },\n {\n rootMargin: `-${100 + (totalCount - 4) * 10}px 0px 0px 0px`,\n threshold: 0,\n },\n );\n\n observer.observe(featuredElement.element);\n }\n\n return featuredElement;\n};\n\nconst createSticky = (props: CardStackProps) => {\n const wrapper = ElementModel.createDiv({\n className: `${STACK_CONTAINER_CLASS}-sticky-wrapper`,\n children: [\n createGrid(props),\n createFeatured(\n props.featured,\n props.isExpandFeature,\n props.images.length,\n ),\n ],\n elementStyles: {\n element: {\n position: 'relative',\n\n ...withViewTimelineAnimation({\n position: 'sticky',\n top: 0,\n }),\n },\n },\n });\n\n return ElementModel.createDiv({\n className: `${STACK_CONTAINER_CLASS}-sticky`,\n children: [wrapper],\n elementStyles: {\n element: {\n ...withViewTimelineAnimation({\n height: '200vh',\n\n ...(props.isExpandFeature && {\n height: '250vh',\n }),\n }),\n },\n },\n });\n};\n\nexport default (props: CardStackProps) => {\n const composite = ElementModel.createDiv({\n className: STACK_CONTAINER_CLASS,\n children: [createSticky(props)],\n elementStyles: {\n element: {\n containerType: 'inline-size',\n opacity: '0',\n overflow: 'clip',\n },\n },\n });\n\n const loadAnimation = async () => {\n const totalCount = props.images.length;\n const config = getConfigurationByCount(totalCount);\n const gridContainer = composite.element.querySelector(\n `.${STACK_GRID_CLASS}`,\n ) as HTMLElement;\n const featuredElement = composite.element.querySelector(\n `.${STACK_ELEMENT_CLASS}-featured`,\n ) as HTMLElement;\n let animationsCleared = false;\n\n if (!validateAnimationElements(gridContainer, config)) {\n return;\n }\n\n const clearAnimations = () => {\n if (animationsCleared) return;\n\n clearElementAnimations(featuredElement, gridContainer);\n animationsCleared = true;\n\n setTimeout(() => {\n processGridAnimation(props.featured, gridContainer!, config!);\n }, 100);\n };\n\n try {\n await waitForMediaLoad(gridContainer!);\n } catch (error) {\n console.warn('Media loading failed, proceeding with animation:', error);\n }\n\n processGridAnimation(props.featured, gridContainer!, config!);\n setElementOpacity(composite.element, '1');\n\n if (!isMobileDevice()) {\n const resizeHandler = createResizeHandler(() => {\n setTimeout(() => {\n processGridAnimation(props.featured, gridContainer!, config!);\n setTimeout(() => {\n setElementOpacity(composite.element, '1');\n animationsCleared = false;\n }, 100);\n }, 200);\n });\n\n window.addEventListener('resize', () => {\n if (isMobileDevice()) {\n return;\n }\n\n if (composite.element.style.opacity === '1') {\n setElementOpacity(composite.element, '0', 'opacity 0.3s ease-in-out');\n }\n\n clearAnimations();\n resizeHandler();\n });\n }\n };\n\n composite.styles += keyFrameGridExpand;\n composite.styles += keyFrameGridItem;\n composite.styles += keyFrameFeaturedSize;\n\n return {\n ...composite,\n events: {\n loadAnimation,\n },\n };\n};\n"],"names":["index","assets.image.background","ElementModel.createDiv","assets.video.toggle"],"mappings":"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"}
@@ -1,5 +1,22 @@
1
1
  "use strict";
2
- const Styles = require("@universityofmaryland/web-styles-library");
2
+ const token = require("@universityofmaryland/web-styles-library/token");
3
+ function _interopNamespaceDefault(e) {
4
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
5
+ if (e) {
6
+ for (const k in e) {
7
+ if (k !== "default") {
8
+ const d = Object.getOwnPropertyDescriptor(e, k);
9
+ Object.defineProperty(n, k, d.get ? d : {
10
+ enumerable: true,
11
+ get: () => e[k]
12
+ });
13
+ }
14
+ }
15
+ }
16
+ n.default = e;
17
+ return Object.freeze(n);
18
+ }
19
+ const token__namespace = /* @__PURE__ */ _interopNamespaceDefault(token);
3
20
  const ICON_CHEVRON_BIG = `<svg width="252" height="306" aria-hidden="true" viewBox="0 0 252 306" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M126 0H0L126 152.706L0 305.411H126L252 152.706L126 0Z" /></svg>`;
4
21
  const ICON_CHEVRON_SMALL = `<svg width="144" height="202" aria-hidden="true" viewBox="0 0 144 202" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M60.3972 0H0L83.6028 100.765L0 201.529H60.3972L144 100.765L60.3972 0Z" /></svg>`;
5
22
  const ELEMENT_ANIMATION_BRAND_LOGO = "brand-logo-container";
@@ -18,7 +35,7 @@ const FirstChevronStyles = `
18
35
  }
19
36
 
20
37
  .${ELEMENT_FIRST_CHEVRON} svg {
21
- fill: ${Styles.token.color.gold};
38
+ fill: ${token__namespace.color.gold};
22
39
  }
23
40
 
24
41
  @media (prefers-reduced-motion: no-preference) {
@@ -45,14 +62,14 @@ const SecondChevronStyles = `
45
62
  transform: translateX(-40%);
46
63
  }
47
64
 
48
- @media (${Styles.token.media.queries.highDef.min}) {
65
+ @media (${token__namespace.media.queries.highDef.min}) {
49
66
  .${ELEMENT_SECOND_CHEVRON} {
50
67
  top: 95px;
51
68
  }
52
69
  }
53
70
 
54
71
  .${ELEMENT_SECOND_CHEVRON} svg {
55
- fill: ${Styles.token.color.red};
72
+ fill: ${token__namespace.color.red};
56
73
  }
57
74
 
58
75
  @media (prefers-reduced-motion: no-preference) {
@@ -78,14 +95,14 @@ const ThirdChevronStyles = `
78
95
  transform: translateX(-30%);
79
96
  }
80
97
 
81
- @media (${Styles.token.media.queries.highDef.min}) {
98
+ @media (${token__namespace.media.queries.highDef.min}) {
82
99
  .${ELEMENT_THIRD_CHEVRON} {
83
100
  top: 195px;
84
101
  }
85
102
  }
86
103
 
87
104
  .${ELEMENT_THIRD_CHEVRON} svg {
88
- fill: ${Styles.token.color.black};
105
+ fill: ${token__namespace.color.black};
89
106
  }
90
107
 
91
108
  @media (prefers-reduced-motion: no-preference) {
@@ -120,7 +137,7 @@ const STYLES_ANIMATION_BRAND_LOGO = `
120
137
  width: 8.2vw;
121
138
  }
122
139
 
123
- @media (${Styles.token.media.queries.highDef.min}) {
140
+ @media (${token__namespace.media.queries.highDef.min}) {
124
141
  .${ELEMENT_SECOND_CHEVRON} svg,
125
142
  .${ELEMENT_THIRD_CHEVRON} svg {
126
143
  height: 306px;
@@ -133,7 +150,7 @@ const STYLES_ANIMATION_BRAND_LOGO = `
133
150
  width: 5vw;
134
151
  }
135
152
 
136
- @media (${Styles.token.media.queries.highDef.min}) {
153
+ @media (${token__namespace.media.queries.highDef.min}) {
137
154
  .${FirstChevronStyles} svg {
138
155
  height: 202px;
139
156
  width: 144px;
@@ -1 +1 @@
1
- {"version":3,"file":"chevron-scroll.js","sources":["../../../../source/atomic/animations/brand/chevron-scroll.ts"],"sourcesContent":["import { token } from '@universityofmaryland/web-styles-library';\n\nconst ICON_CHEVRON_BIG = `<svg width=\"252\" height=\"306\" aria-hidden=\"true\" viewBox=\"0 0 252 306\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M126 0H0L126 152.706L0 305.411H126L252 152.706L126 0Z\" /></svg>`;\nconst ICON_CHEVRON_SMALL = `<svg width=\"144\" height=\"202\" aria-hidden=\"true\" viewBox=\"0 0 144 202\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M60.3972 0H0L83.6028 100.765L0 201.529H60.3972L144 100.765L60.3972 0Z\" /></svg>`;\n\nconst ELEMENT_ANIMATION_BRAND_LOGO = 'brand-logo-container';\nconst ELEMENT_FIRST_CHEVRON = 'brand-logo-first-chevron';\nconst ELEMENT_SECOND_CHEVRON = 'brand-logo-second-chevron';\nconst ELEMENT_THIRD_CHEVRON = 'brand-logo-third-chevron';\n\nconst FirstChevronStyles = `\n @keyframes chevron-one {\n from { transform: translateX(-80%); }\n to { transform: translateX(40%); }\n }\n\n .${ELEMENT_FIRST_CHEVRON} {\n top: 0;\n transform: translateX(-80%);\n }\n\n .${ELEMENT_FIRST_CHEVRON} svg {\n fill: ${token.color.gold};\n }\n\n @media (prefers-reduced-motion: no-preference) {\n @supports (animation-timeline: scroll()) {\n .${ELEMENT_FIRST_CHEVRON} {\n transform: translateX(40%);\n animation: chevron-one forwards;\n animation-timeline: view();\n animation-range-start: cover;\n animation-range-end: contain;\n }\n }\n }\n`;\n\nconst SecondChevronStyles = `\n @keyframes chevron-two {\n from { transform: translateX(-40%); }\n to { transform: translateX(24%); }\n }\n\n .${ELEMENT_SECOND_CHEVRON} {\n top: 10%;\n z-index: 99;\n transform: translateX(-40%);\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${ELEMENT_SECOND_CHEVRON} {\n top: 95px;\n }\n }\n\n .${ELEMENT_SECOND_CHEVRON} svg {\n fill: ${token.color.red};\n }\n\n @media (prefers-reduced-motion: no-preference) {\n @supports (animation-timeline: scroll()) {\n .${ELEMENT_SECOND_CHEVRON} {\n transform: translateX(24%);\n animation: chevron-two forwards;\n animation-timeline: view();\n animation-range-start: cover;\n animation-range-end: contain;\n }\n }\n }\n`;\n\nconst ThirdChevronStyles = `\n @keyframes chevron-three {\n from { transform: translateX(-30%); }\n to { transform: translateX(60%); }\n }\n\n .${ELEMENT_THIRD_CHEVRON} {\n top: 25%;\n transform: translateX(-30%);\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${ELEMENT_THIRD_CHEVRON} {\n top: 195px;\n }\n }\n\n .${ELEMENT_THIRD_CHEVRON} svg {\n fill: ${token.color.black};\n }\n\n @media (prefers-reduced-motion: no-preference) {\n @supports (animation-timeline: scroll()) {\n .${ELEMENT_THIRD_CHEVRON} {\n transform: translateX(60%);\n animation: chevron-three forwards;\n animation-timeline: view();\n animation-range-start: 0;\n animation-range-end: 100vh;\n }\n }\n }\n`;\n\nconst STYLES_ANIMATION_BRAND_LOGO = `\n .${ELEMENT_ANIMATION_BRAND_LOGO} {\n position: relative;\n height: 50vw;\n width: 100vw;\n }\n\n .${ELEMENT_ANIMATION_BRAND_LOGO} > * {\n position: absolute;\n height: 100%;\n right: 0;\n transform: none;\n }\n\n .${ELEMENT_SECOND_CHEVRON} svg,\n .${ELEMENT_THIRD_CHEVRON} svg {\n height: 10vw;\n width: 8.2vw;\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${ELEMENT_SECOND_CHEVRON} svg,\n .${ELEMENT_THIRD_CHEVRON} svg {\n height: 306px;\n width: 252px;\n }\n }\n\n .${FirstChevronStyles} svg {\n height: 7vw;\n width: 5vw;\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${FirstChevronStyles} svg {\n height: 202px;\n width: 144px;\n }\n }\n\n ${FirstChevronStyles} \n ${SecondChevronStyles} \n ${ThirdChevronStyles} \n`;\n\nexport default () =>\n (() => {\n const container = document.createElement('div');\n const first = document.createElement('div');\n const second = document.createElement('div');\n const third = document.createElement('div');\n\n first.classList.add(ELEMENT_FIRST_CHEVRON);\n first.innerHTML = ICON_CHEVRON_SMALL;\n\n second.classList.add(ELEMENT_SECOND_CHEVRON);\n second.innerHTML = ICON_CHEVRON_BIG;\n\n third.classList.add(ELEMENT_THIRD_CHEVRON);\n third.innerHTML = ICON_CHEVRON_BIG;\n\n container.classList.add(ELEMENT_ANIMATION_BRAND_LOGO);\n container.appendChild(first);\n container.appendChild(second);\n container.appendChild(third);\n\n return {\n element: container,\n styles: STYLES_ANIMATION_BRAND_LOGO,\n };\n })();\n"],"names":["token"],"mappings":";;AAEA,MAAM,mBAAmB;AACzB,MAAM,qBAAqB;AAE3B,MAAM,+BAA+B;AACrC,MAAM,wBAAwB;AAC9B,MAAM,yBAAyB;AAC/B,MAAM,wBAAwB;AAE9B,MAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,KAKrB,qBAAqB;AAAA,YACdA,OAAAA,MAAM,MAAM,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,SAKnB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAW9B,MAAM,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMvB,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAMfA,OAAAA,MAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA,KAKxB,sBAAsB;AAAA,YACfA,OAAAA,MAAM,MAAM,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,SAKlB,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAW/B,MAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,YAKdA,OAAAA,MAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,KAKvB,qBAAqB;AAAA,YACdA,OAAAA,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,SAKpB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAW9B,MAAM,8BAA8B;AAAA,KAC/B,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAM5B,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAO5B,sBAAsB;AAAA,KACtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,YAKdA,OAAAA,MAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,sBAAsB;AAAA,OACtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMvB,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,YAKXA,OAAAA,MAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMrB,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,kBAAkB;AAAA;AAGtB,MAAA,gBAAe,OACZ,MAAM;AACL,QAAM,YAAY,SAAS,cAAc,KAAK;AAC9C,QAAM,QAAQ,SAAS,cAAc,KAAK;AAC1C,QAAM,SAAS,SAAS,cAAc,KAAK;AAC3C,QAAM,QAAQ,SAAS,cAAc,KAAK;AAE1C,QAAM,UAAU,IAAI,qBAAqB;AACzC,QAAM,YAAY;AAElB,SAAO,UAAU,IAAI,sBAAsB;AAC3C,SAAO,YAAY;AAEnB,QAAM,UAAU,IAAI,qBAAqB;AACzC,QAAM,YAAY;AAElB,YAAU,UAAU,IAAI,4BAA4B;AACpD,YAAU,YAAY,KAAK;AAC3B,YAAU,YAAY,MAAM;AAC5B,YAAU,YAAY,KAAK;AAE3B,SAAO;AAAA,IACL,SAAS;AAAA,IACT,QAAQ;AAAA,EAAA;AAEZ,GAAA;;"}
1
+ {"version":3,"file":"chevron-scroll.js","sources":["../../../../source/atomic/animations/brand/chevron-scroll.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\n\nconst ICON_CHEVRON_BIG = `<svg width=\"252\" height=\"306\" aria-hidden=\"true\" viewBox=\"0 0 252 306\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M126 0H0L126 152.706L0 305.411H126L252 152.706L126 0Z\" /></svg>`;\nconst ICON_CHEVRON_SMALL = `<svg width=\"144\" height=\"202\" aria-hidden=\"true\" viewBox=\"0 0 144 202\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M60.3972 0H0L83.6028 100.765L0 201.529H60.3972L144 100.765L60.3972 0Z\" /></svg>`;\n\nconst ELEMENT_ANIMATION_BRAND_LOGO = 'brand-logo-container';\nconst ELEMENT_FIRST_CHEVRON = 'brand-logo-first-chevron';\nconst ELEMENT_SECOND_CHEVRON = 'brand-logo-second-chevron';\nconst ELEMENT_THIRD_CHEVRON = 'brand-logo-third-chevron';\n\nconst FirstChevronStyles = `\n @keyframes chevron-one {\n from { transform: translateX(-80%); }\n to { transform: translateX(40%); }\n }\n\n .${ELEMENT_FIRST_CHEVRON} {\n top: 0;\n transform: translateX(-80%);\n }\n\n .${ELEMENT_FIRST_CHEVRON} svg {\n fill: ${token.color.gold};\n }\n\n @media (prefers-reduced-motion: no-preference) {\n @supports (animation-timeline: scroll()) {\n .${ELEMENT_FIRST_CHEVRON} {\n transform: translateX(40%);\n animation: chevron-one forwards;\n animation-timeline: view();\n animation-range-start: cover;\n animation-range-end: contain;\n }\n }\n }\n`;\n\nconst SecondChevronStyles = `\n @keyframes chevron-two {\n from { transform: translateX(-40%); }\n to { transform: translateX(24%); }\n }\n\n .${ELEMENT_SECOND_CHEVRON} {\n top: 10%;\n z-index: 99;\n transform: translateX(-40%);\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${ELEMENT_SECOND_CHEVRON} {\n top: 95px;\n }\n }\n\n .${ELEMENT_SECOND_CHEVRON} svg {\n fill: ${token.color.red};\n }\n\n @media (prefers-reduced-motion: no-preference) {\n @supports (animation-timeline: scroll()) {\n .${ELEMENT_SECOND_CHEVRON} {\n transform: translateX(24%);\n animation: chevron-two forwards;\n animation-timeline: view();\n animation-range-start: cover;\n animation-range-end: contain;\n }\n }\n }\n`;\n\nconst ThirdChevronStyles = `\n @keyframes chevron-three {\n from { transform: translateX(-30%); }\n to { transform: translateX(60%); }\n }\n\n .${ELEMENT_THIRD_CHEVRON} {\n top: 25%;\n transform: translateX(-30%);\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${ELEMENT_THIRD_CHEVRON} {\n top: 195px;\n }\n }\n\n .${ELEMENT_THIRD_CHEVRON} svg {\n fill: ${token.color.black};\n }\n\n @media (prefers-reduced-motion: no-preference) {\n @supports (animation-timeline: scroll()) {\n .${ELEMENT_THIRD_CHEVRON} {\n transform: translateX(60%);\n animation: chevron-three forwards;\n animation-timeline: view();\n animation-range-start: 0;\n animation-range-end: 100vh;\n }\n }\n }\n`;\n\nconst STYLES_ANIMATION_BRAND_LOGO = `\n .${ELEMENT_ANIMATION_BRAND_LOGO} {\n position: relative;\n height: 50vw;\n width: 100vw;\n }\n\n .${ELEMENT_ANIMATION_BRAND_LOGO} > * {\n position: absolute;\n height: 100%;\n right: 0;\n transform: none;\n }\n\n .${ELEMENT_SECOND_CHEVRON} svg,\n .${ELEMENT_THIRD_CHEVRON} svg {\n height: 10vw;\n width: 8.2vw;\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${ELEMENT_SECOND_CHEVRON} svg,\n .${ELEMENT_THIRD_CHEVRON} svg {\n height: 306px;\n width: 252px;\n }\n }\n\n .${FirstChevronStyles} svg {\n height: 7vw;\n width: 5vw;\n }\n\n @media (${token.media.queries.highDef.min}) {\n .${FirstChevronStyles} svg {\n height: 202px;\n width: 144px;\n }\n }\n\n ${FirstChevronStyles} \n ${SecondChevronStyles} \n ${ThirdChevronStyles} \n`;\n\nexport default () =>\n (() => {\n const container = document.createElement('div');\n const first = document.createElement('div');\n const second = document.createElement('div');\n const third = document.createElement('div');\n\n first.classList.add(ELEMENT_FIRST_CHEVRON);\n first.innerHTML = ICON_CHEVRON_SMALL;\n\n second.classList.add(ELEMENT_SECOND_CHEVRON);\n second.innerHTML = ICON_CHEVRON_BIG;\n\n third.classList.add(ELEMENT_THIRD_CHEVRON);\n third.innerHTML = ICON_CHEVRON_BIG;\n\n container.classList.add(ELEMENT_ANIMATION_BRAND_LOGO);\n container.appendChild(first);\n container.appendChild(second);\n container.appendChild(third);\n\n return {\n element: container,\n styles: STYLES_ANIMATION_BRAND_LOGO,\n };\n })();\n"],"names":["token"],"mappings":";;;;;;;;;;;;;;;;;;;AAEA,MAAM,mBAAmB;AACzB,MAAM,qBAAqB;AAE3B,MAAM,+BAA+B;AACrC,MAAM,wBAAwB;AAC9B,MAAM,yBAAyB;AAC/B,MAAM,wBAAwB;AAE9B,MAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,KAKrB,qBAAqB;AAAA,YACdA,iBAAM,MAAM,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,SAKnB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAW9B,MAAM,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMvB,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAMfA,iBAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA,KAKxB,sBAAsB;AAAA,YACfA,iBAAM,MAAM,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,SAKlB,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAW/B,MAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,YAKdA,iBAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,KAKvB,qBAAqB;AAAA,YACdA,iBAAM,MAAM,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,SAKpB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAW9B,MAAM,8BAA8B;AAAA,KAC/B,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAM5B,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAO5B,sBAAsB;AAAA,KACtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,YAKdA,iBAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,sBAAsB;AAAA,OACtB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMvB,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,YAKXA,iBAAM,MAAM,QAAQ,QAAQ,GAAG;AAAA,OACpC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMrB,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,kBAAkB;AAAA;AAGtB,MAAA,gBAAe,OACZ,MAAM;AACL,QAAM,YAAY,SAAS,cAAc,KAAK;AAC9C,QAAM,QAAQ,SAAS,cAAc,KAAK;AAC1C,QAAM,SAAS,SAAS,cAAc,KAAK;AAC3C,QAAM,QAAQ,SAAS,cAAc,KAAK;AAE1C,QAAM,UAAU,IAAI,qBAAqB;AACzC,QAAM,YAAY;AAElB,SAAO,UAAU,IAAI,sBAAsB;AAC3C,SAAO,YAAY;AAEnB,QAAM,UAAU,IAAI,qBAAqB;AACzC,QAAM,YAAY;AAElB,YAAU,UAAU,IAAI,4BAA4B;AACpD,YAAU,YAAY,KAAK;AAC3B,YAAU,YAAY,MAAM;AAC5B,YAAU,YAAY,KAAK;AAE3B,SAAO;AAAA,IACL,SAAS;AAAA,IACT,QAAQ;AAAA,EAAA;AAEZ,GAAA;;"}