@universityofmaryland/web-elements-library 1.4.8 → 1.5.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 (1145) 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 +12 -10
  122. package/dist/composite/banner/promo.js.map +1 -1
  123. package/dist/composite/banner/promo.mjs +12 -10
  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 +11 -0
  494. package/dist/composite/quote/elements/icon.d.ts.map +1 -0
  495. package/dist/composite/quote/elements/icon.js +74 -0
  496. package/dist/composite/quote/elements/icon.js.map +1 -0
  497. package/dist/composite/quote/elements/icon.mjs +58 -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 +5 -24
  506. package/dist/composite/quote/elements/index.d.ts.map +1 -1
  507. package/dist/composite/quote/elements/index.js +9 -5
  508. package/dist/composite/quote/elements/index.js.map +1 -1
  509. package/dist/composite/quote/elements/index.mjs +10 -7
  510. package/dist/composite/quote/elements/index.mjs.map +1 -1
  511. package/dist/composite/quote/elements/quote.d.ts +13 -0
  512. package/dist/composite/quote/elements/quote.d.ts.map +1 -0
  513. package/dist/composite/quote/elements/quote.js +114 -0
  514. package/dist/composite/quote/elements/quote.js.map +1 -0
  515. package/dist/composite/quote/elements/quote.mjs +97 -0
  516. package/dist/composite/quote/elements/quote.mjs.map +1 -0
  517. package/dist/composite/quote/elements/text.d.ts +5 -20
  518. package/dist/composite/quote/elements/text.d.ts.map +1 -1
  519. package/dist/composite/quote/elements/text.js +143 -189
  520. package/dist/composite/quote/elements/text.js.map +1 -1
  521. package/dist/composite/quote/elements/text.mjs +121 -185
  522. package/dist/composite/quote/elements/text.mjs.map +1 -1
  523. package/dist/composite/quote/featured.d.ts +7 -8
  524. package/dist/composite/quote/featured.d.ts.map +1 -1
  525. package/dist/composite/quote/featured.js +202 -243
  526. package/dist/composite/quote/featured.js.map +1 -1
  527. package/dist/composite/quote/featured.mjs +184 -242
  528. package/dist/composite/quote/featured.mjs.map +1 -1
  529. package/dist/composite/quote/helper/animation.d.ts +8 -0
  530. package/dist/composite/quote/helper/animation.d.ts.map +1 -0
  531. package/dist/composite/quote/helper/animation.js +105 -0
  532. package/dist/composite/quote/helper/animation.js.map +1 -0
  533. package/dist/composite/quote/helper/animation.mjs +105 -0
  534. package/dist/composite/quote/helper/animation.mjs.map +1 -0
  535. package/dist/composite/quote/index.d.ts +1 -1
  536. package/dist/composite/quote/index.d.ts.map +1 -1
  537. package/dist/composite/quote/index.mjs +6 -6
  538. package/dist/composite/quote/inline.d.ts +7 -9
  539. package/dist/composite/quote/inline.d.ts.map +1 -1
  540. package/dist/composite/quote/inline.js +79 -270
  541. package/dist/composite/quote/inline.js.map +1 -1
  542. package/dist/composite/quote/inline.mjs +63 -271
  543. package/dist/composite/quote/inline.mjs.map +1 -1
  544. package/dist/composite/quote/statement.d.ts +5 -7
  545. package/dist/composite/quote/statement.d.ts.map +1 -1
  546. package/dist/composite/slider/events.d.ts.map +1 -1
  547. package/dist/composite/slider/events.js +60 -46
  548. package/dist/composite/slider/events.js.map +1 -1
  549. package/dist/composite/slider/events.mjs +12 -16
  550. package/dist/composite/slider/events.mjs.map +1 -1
  551. package/dist/composite/social/sharing.d.ts.map +1 -1
  552. package/dist/composite/social/sharing.js +38 -23
  553. package/dist/composite/social/sharing.js.map +1 -1
  554. package/dist/composite/social/sharing.mjs +9 -11
  555. package/dist/composite/social/sharing.mjs.map +1 -1
  556. package/dist/composite/tabs/standard.d.ts.map +1 -1
  557. package/dist/composite/tabs/standard.js +44 -30
  558. package/dist/composite/tabs/standard.js.map +1 -1
  559. package/dist/composite/tabs/standard.mjs +9 -13
  560. package/dist/composite/tabs/standard.mjs.map +1 -1
  561. package/dist/index.d.ts +0 -1
  562. package/dist/index.d.ts.map +1 -1
  563. package/dist/index.js +0 -2
  564. package/dist/index.js.map +1 -1
  565. package/dist/index.mjs +1 -3
  566. package/dist/index.mjs.map +1 -1
  567. package/dist/layout/image.d.ts.map +1 -1
  568. package/dist/layout/image.js +25 -6
  569. package/dist/layout/image.js.map +1 -1
  570. package/dist/layout/image.mjs +4 -3
  571. package/dist/layout/image.mjs.map +1 -1
  572. package/dist/model/modifiers/index.d.ts +1 -1
  573. package/dist/model/modifiers/index.d.ts.map +1 -1
  574. package/dist/model/modifiers/index.js +12 -12
  575. package/dist/model/modifiers/index.js.map +1 -1
  576. package/dist/model/modifiers/index.mjs +2 -2
  577. package/dist/model/modifiers/index.mjs.map +1 -1
  578. package/dist/model/modifiers/style.js +7 -7
  579. package/dist/model/modifiers/style.js.map +1 -1
  580. package/dist/model/modifiers/style.mjs +2 -2
  581. package/dist/model/modifiers/style.mjs.map +1 -1
  582. package/package.json +17 -18
  583. package/dist/_virtual/___vite-browser-external.js +0 -8
  584. package/dist/_virtual/___vite-browser-external.js.map +0 -1
  585. package/dist/_virtual/___vite-browser-external.mjs +0 -7
  586. package/dist/_virtual/___vite-browser-external.mjs.map +0 -1
  587. package/dist/_virtual/__vite-browser-external.js +0 -4
  588. package/dist/_virtual/__vite-browser-external.js.map +0 -1
  589. package/dist/_virtual/__vite-browser-external.mjs +0 -5
  590. package/dist/_virtual/__vite-browser-external.mjs.map +0 -1
  591. package/dist/_virtual/_commonjsHelpers.js +0 -39
  592. package/dist/_virtual/_commonjsHelpers.js.map +0 -1
  593. package/dist/_virtual/_commonjsHelpers.mjs +0 -39
  594. package/dist/_virtual/_commonjsHelpers.mjs.map +0 -1
  595. package/dist/_virtual/attribute.js +0 -5
  596. package/dist/_virtual/attribute.js.map +0 -1
  597. package/dist/_virtual/attribute.mjs +0 -5
  598. package/dist/_virtual/attribute.mjs.map +0 -1
  599. package/dist/_virtual/className.js +0 -5
  600. package/dist/_virtual/className.js.map +0 -1
  601. package/dist/_virtual/className.mjs +0 -5
  602. package/dist/_virtual/className.mjs.map +0 -1
  603. package/dist/_virtual/combinator.js +0 -5
  604. package/dist/_virtual/combinator.js.map +0 -1
  605. package/dist/_virtual/combinator.mjs +0 -5
  606. package/dist/_virtual/combinator.mjs.map +0 -1
  607. package/dist/_virtual/comment.js +0 -5
  608. package/dist/_virtual/comment.js.map +0 -1
  609. package/dist/_virtual/comment.mjs +0 -5
  610. package/dist/_virtual/comment.mjs.map +0 -1
  611. package/dist/_virtual/constructors.js +0 -5
  612. package/dist/_virtual/constructors.js.map +0 -1
  613. package/dist/_virtual/constructors.mjs +0 -5
  614. package/dist/_virtual/constructors.mjs.map +0 -1
  615. package/dist/_virtual/container.js +0 -5
  616. package/dist/_virtual/container.js.map +0 -1
  617. package/dist/_virtual/container.mjs +0 -5
  618. package/dist/_virtual/container.mjs.map +0 -1
  619. package/dist/_virtual/ensureObject.js +0 -5
  620. package/dist/_virtual/ensureObject.js.map +0 -1
  621. package/dist/_virtual/ensureObject.mjs +0 -5
  622. package/dist/_virtual/ensureObject.mjs.map +0 -1
  623. package/dist/_virtual/getProp.js +0 -5
  624. package/dist/_virtual/getProp.js.map +0 -1
  625. package/dist/_virtual/getProp.mjs +0 -5
  626. package/dist/_virtual/getProp.mjs.map +0 -1
  627. package/dist/_virtual/guards.js +0 -5
  628. package/dist/_virtual/guards.js.map +0 -1
  629. package/dist/_virtual/guards.mjs +0 -5
  630. package/dist/_virtual/guards.mjs.map +0 -1
  631. package/dist/_virtual/id.js +0 -5
  632. package/dist/_virtual/id.js.map +0 -1
  633. package/dist/_virtual/id.mjs +0 -5
  634. package/dist/_virtual/id.mjs.map +0 -1
  635. package/dist/_virtual/index.js +0 -7
  636. package/dist/_virtual/index.js.map +0 -1
  637. package/dist/_virtual/index.mjs +0 -8
  638. package/dist/_virtual/index.mjs.map +0 -1
  639. package/dist/_virtual/index2.js +0 -7
  640. package/dist/_virtual/index2.js.map +0 -1
  641. package/dist/_virtual/index2.mjs +0 -8
  642. package/dist/_virtual/index2.mjs.map +0 -1
  643. package/dist/_virtual/index3.js +0 -5
  644. package/dist/_virtual/index3.js.map +0 -1
  645. package/dist/_virtual/index3.mjs +0 -5
  646. package/dist/_virtual/index3.mjs.map +0 -1
  647. package/dist/_virtual/index4.js +0 -5
  648. package/dist/_virtual/index4.js.map +0 -1
  649. package/dist/_virtual/index4.mjs +0 -5
  650. package/dist/_virtual/index4.mjs.map +0 -1
  651. package/dist/_virtual/index5.js +0 -5
  652. package/dist/_virtual/index5.js.map +0 -1
  653. package/dist/_virtual/index5.mjs +0 -5
  654. package/dist/_virtual/index5.mjs.map +0 -1
  655. package/dist/_virtual/namespace.js +0 -5
  656. package/dist/_virtual/namespace.js.map +0 -1
  657. package/dist/_virtual/namespace.mjs +0 -5
  658. package/dist/_virtual/namespace.mjs.map +0 -1
  659. package/dist/_virtual/nesting.js +0 -5
  660. package/dist/_virtual/nesting.js.map +0 -1
  661. package/dist/_virtual/nesting.mjs +0 -5
  662. package/dist/_virtual/nesting.mjs.map +0 -1
  663. package/dist/_virtual/node.js +0 -5
  664. package/dist/_virtual/node.js.map +0 -1
  665. package/dist/_virtual/node.mjs +0 -5
  666. package/dist/_virtual/node.mjs.map +0 -1
  667. package/dist/_virtual/parser.js +0 -5
  668. package/dist/_virtual/parser.js.map +0 -1
  669. package/dist/_virtual/parser.mjs +0 -5
  670. package/dist/_virtual/parser.mjs.map +0 -1
  671. package/dist/_virtual/picocolors.browser.js +0 -5
  672. package/dist/_virtual/picocolors.browser.js.map +0 -1
  673. package/dist/_virtual/picocolors.browser.mjs +0 -5
  674. package/dist/_virtual/picocolors.browser.mjs.map +0 -1
  675. package/dist/_virtual/postcss.js +0 -7
  676. package/dist/_virtual/postcss.js.map +0 -1
  677. package/dist/_virtual/postcss.mjs +0 -8
  678. package/dist/_virtual/postcss.mjs.map +0 -1
  679. package/dist/_virtual/processor.js +0 -5
  680. package/dist/_virtual/processor.js.map +0 -1
  681. package/dist/_virtual/processor.mjs +0 -5
  682. package/dist/_virtual/processor.mjs.map +0 -1
  683. package/dist/_virtual/pseudo.js +0 -5
  684. package/dist/_virtual/pseudo.js.map +0 -1
  685. package/dist/_virtual/pseudo.mjs +0 -5
  686. package/dist/_virtual/pseudo.mjs.map +0 -1
  687. package/dist/_virtual/root.js +0 -5
  688. package/dist/_virtual/root.js.map +0 -1
  689. package/dist/_virtual/root.mjs +0 -5
  690. package/dist/_virtual/root.mjs.map +0 -1
  691. package/dist/_virtual/selector.js +0 -5
  692. package/dist/_virtual/selector.js.map +0 -1
  693. package/dist/_virtual/selector.mjs +0 -5
  694. package/dist/_virtual/selector.mjs.map +0 -1
  695. package/dist/_virtual/sortAscending.js +0 -5
  696. package/dist/_virtual/sortAscending.js.map +0 -1
  697. package/dist/_virtual/sortAscending.mjs +0 -5
  698. package/dist/_virtual/sortAscending.mjs.map +0 -1
  699. package/dist/_virtual/string.js +0 -5
  700. package/dist/_virtual/string.js.map +0 -1
  701. package/dist/_virtual/string.mjs +0 -5
  702. package/dist/_virtual/string.mjs.map +0 -1
  703. package/dist/_virtual/stripComments.js +0 -5
  704. package/dist/_virtual/stripComments.js.map +0 -1
  705. package/dist/_virtual/stripComments.mjs +0 -5
  706. package/dist/_virtual/stripComments.mjs.map +0 -1
  707. package/dist/_virtual/symbols.js +0 -5
  708. package/dist/_virtual/symbols.js.map +0 -1
  709. package/dist/_virtual/symbols.mjs +0 -5
  710. package/dist/_virtual/symbols.mjs.map +0 -1
  711. package/dist/_virtual/tag.js +0 -5
  712. package/dist/_virtual/tag.js.map +0 -1
  713. package/dist/_virtual/tag.mjs +0 -5
  714. package/dist/_virtual/tag.mjs.map +0 -1
  715. package/dist/_virtual/tokenTypes.js +0 -5
  716. package/dist/_virtual/tokenTypes.js.map +0 -1
  717. package/dist/_virtual/tokenTypes.mjs +0 -5
  718. package/dist/_virtual/tokenTypes.mjs.map +0 -1
  719. package/dist/_virtual/tokenize.js +0 -5
  720. package/dist/_virtual/tokenize.js.map +0 -1
  721. package/dist/_virtual/tokenize.mjs +0 -5
  722. package/dist/_virtual/tokenize.mjs.map +0 -1
  723. package/dist/_virtual/types.js +0 -5
  724. package/dist/_virtual/types.js.map +0 -1
  725. package/dist/_virtual/types.mjs +0 -5
  726. package/dist/_virtual/types.mjs.map +0 -1
  727. package/dist/_virtual/unesc.js +0 -5
  728. package/dist/_virtual/unesc.js.map +0 -1
  729. package/dist/_virtual/unesc.mjs +0 -5
  730. package/dist/_virtual/unesc.mjs.map +0 -1
  731. package/dist/_virtual/universal.js +0 -5
  732. package/dist/_virtual/universal.js.map +0 -1
  733. package/dist/_virtual/universal.mjs +0 -5
  734. package/dist/_virtual/universal.mjs.map +0 -1
  735. package/dist/node_modules/@csstools/selector-specificity/dist/index.js +0 -96
  736. package/dist/node_modules/@csstools/selector-specificity/dist/index.js.map +0 -1
  737. package/dist/node_modules/@csstools/selector-specificity/dist/index.mjs +0 -96
  738. package/dist/node_modules/@csstools/selector-specificity/dist/index.mjs.map +0 -1
  739. package/dist/node_modules/camelcase-css/index-es5.js +0 -26
  740. package/dist/node_modules/camelcase-css/index-es5.js.map +0 -1
  741. package/dist/node_modules/camelcase-css/index-es5.mjs +0 -26
  742. package/dist/node_modules/camelcase-css/index-es5.mjs.map +0 -1
  743. package/dist/node_modules/cssesc/cssesc.js +0 -95
  744. package/dist/node_modules/cssesc/cssesc.js.map +0 -1
  745. package/dist/node_modules/cssesc/cssesc.mjs +0 -95
  746. package/dist/node_modules/cssesc/cssesc.mjs.map +0 -1
  747. package/dist/node_modules/nanoid/non-secure/index.js +0 -31
  748. package/dist/node_modules/nanoid/non-secure/index.js.map +0 -1
  749. package/dist/node_modules/nanoid/non-secure/index.mjs +0 -31
  750. package/dist/node_modules/nanoid/non-secure/index.mjs.map +0 -1
  751. package/dist/node_modules/picocolors/picocolors.browser.js +0 -17
  752. package/dist/node_modules/picocolors/picocolors.browser.js.map +0 -1
  753. package/dist/node_modules/picocolors/picocolors.browser.mjs +0 -17
  754. package/dist/node_modules/picocolors/picocolors.browser.mjs.map +0 -1
  755. package/dist/node_modules/postcss/lib/at-rule.js +0 -30
  756. package/dist/node_modules/postcss/lib/at-rule.js.map +0 -1
  757. package/dist/node_modules/postcss/lib/at-rule.mjs +0 -30
  758. package/dist/node_modules/postcss/lib/at-rule.mjs.map +0 -1
  759. package/dist/node_modules/postcss/lib/comment.js +0 -21
  760. package/dist/node_modules/postcss/lib/comment.js.map +0 -1
  761. package/dist/node_modules/postcss/lib/comment.mjs +0 -21
  762. package/dist/node_modules/postcss/lib/comment.mjs.map +0 -1
  763. package/dist/node_modules/postcss/lib/container.js +0 -383
  764. package/dist/node_modules/postcss/lib/container.js.map +0 -1
  765. package/dist/node_modules/postcss/lib/container.mjs +0 -383
  766. package/dist/node_modules/postcss/lib/container.mjs.map +0 -1
  767. package/dist/node_modules/postcss/lib/css-syntax-error.js +0 -92
  768. package/dist/node_modules/postcss/lib/css-syntax-error.js.map +0 -1
  769. package/dist/node_modules/postcss/lib/css-syntax-error.mjs +0 -92
  770. package/dist/node_modules/postcss/lib/css-syntax-error.mjs.map +0 -1
  771. package/dist/node_modules/postcss/lib/declaration.js +0 -27
  772. package/dist/node_modules/postcss/lib/declaration.js.map +0 -1
  773. package/dist/node_modules/postcss/lib/declaration.mjs +0 -27
  774. package/dist/node_modules/postcss/lib/declaration.mjs.map +0 -1
  775. package/dist/node_modules/postcss/lib/document.js +0 -34
  776. package/dist/node_modules/postcss/lib/document.js.map +0 -1
  777. package/dist/node_modules/postcss/lib/document.mjs +0 -34
  778. package/dist/node_modules/postcss/lib/document.mjs.map +0 -1
  779. package/dist/node_modules/postcss/lib/fromJSON.js +0 -67
  780. package/dist/node_modules/postcss/lib/fromJSON.js.map +0 -1
  781. package/dist/node_modules/postcss/lib/fromJSON.mjs +0 -67
  782. package/dist/node_modules/postcss/lib/fromJSON.mjs.map +0 -1
  783. package/dist/node_modules/postcss/lib/input.js +0 -216
  784. package/dist/node_modules/postcss/lib/input.js.map +0 -1
  785. package/dist/node_modules/postcss/lib/input.mjs +0 -216
  786. package/dist/node_modules/postcss/lib/input.mjs.map +0 -1
  787. package/dist/node_modules/postcss/lib/lazy-result.js +0 -467
  788. package/dist/node_modules/postcss/lib/lazy-result.js.map +0 -1
  789. package/dist/node_modules/postcss/lib/lazy-result.mjs +0 -467
  790. package/dist/node_modules/postcss/lib/lazy-result.mjs.map +0 -1
  791. package/dist/node_modules/postcss/lib/list.js +0 -60
  792. package/dist/node_modules/postcss/lib/list.js.map +0 -1
  793. package/dist/node_modules/postcss/lib/list.mjs +0 -60
  794. package/dist/node_modules/postcss/lib/list.mjs.map +0 -1
  795. package/dist/node_modules/postcss/lib/map-generator.js +0 -314
  796. package/dist/node_modules/postcss/lib/map-generator.js.map +0 -1
  797. package/dist/node_modules/postcss/lib/map-generator.mjs +0 -314
  798. package/dist/node_modules/postcss/lib/map-generator.mjs.map +0 -1
  799. package/dist/node_modules/postcss/lib/no-work-result.js +0 -113
  800. package/dist/node_modules/postcss/lib/no-work-result.js.map +0 -1
  801. package/dist/node_modules/postcss/lib/no-work-result.mjs +0 -113
  802. package/dist/node_modules/postcss/lib/no-work-result.mjs.map +0 -1
  803. package/dist/node_modules/postcss/lib/node.js +0 -335
  804. package/dist/node_modules/postcss/lib/node.js.map +0 -1
  805. package/dist/node_modules/postcss/lib/node.mjs +0 -335
  806. package/dist/node_modules/postcss/lib/node.mjs.map +0 -1
  807. package/dist/node_modules/postcss/lib/parse.js +0 -30
  808. package/dist/node_modules/postcss/lib/parse.js.map +0 -1
  809. package/dist/node_modules/postcss/lib/parse.mjs +0 -30
  810. package/dist/node_modules/postcss/lib/parse.mjs.map +0 -1
  811. package/dist/node_modules/postcss/lib/parser.js +0 -543
  812. package/dist/node_modules/postcss/lib/parser.js.map +0 -1
  813. package/dist/node_modules/postcss/lib/parser.mjs +0 -543
  814. package/dist/node_modules/postcss/lib/parser.mjs.map +0 -1
  815. package/dist/node_modules/postcss/lib/postcss.js +0 -28
  816. package/dist/node_modules/postcss/lib/postcss.js.map +0 -1
  817. package/dist/node_modules/postcss/lib/postcss.mjs +0 -29
  818. package/dist/node_modules/postcss/lib/postcss.mjs.map +0 -1
  819. package/dist/node_modules/postcss/lib/postcss2.js +0 -110
  820. package/dist/node_modules/postcss/lib/postcss2.js.map +0 -1
  821. package/dist/node_modules/postcss/lib/postcss2.mjs +0 -110
  822. package/dist/node_modules/postcss/lib/postcss2.mjs.map +0 -1
  823. package/dist/node_modules/postcss/lib/previous-map.js +0 -123
  824. package/dist/node_modules/postcss/lib/previous-map.js.map +0 -1
  825. package/dist/node_modules/postcss/lib/previous-map.mjs +0 -123
  826. package/dist/node_modules/postcss/lib/previous-map.mjs.map +0 -1
  827. package/dist/node_modules/postcss/lib/processor.js +0 -61
  828. package/dist/node_modules/postcss/lib/processor.js.map +0 -1
  829. package/dist/node_modules/postcss/lib/processor.mjs +0 -61
  830. package/dist/node_modules/postcss/lib/processor.mjs.map +0 -1
  831. package/dist/node_modules/postcss/lib/result.js +0 -44
  832. package/dist/node_modules/postcss/lib/result.js.map +0 -1
  833. package/dist/node_modules/postcss/lib/result.mjs +0 -44
  834. package/dist/node_modules/postcss/lib/result.mjs.map +0 -1
  835. package/dist/node_modules/postcss/lib/root.js +0 -58
  836. package/dist/node_modules/postcss/lib/root.js.map +0 -1
  837. package/dist/node_modules/postcss/lib/root.mjs +0 -58
  838. package/dist/node_modules/postcss/lib/root.mjs.map +0 -1
  839. package/dist/node_modules/postcss/lib/rule.js +0 -33
  840. package/dist/node_modules/postcss/lib/rule.js.map +0 -1
  841. package/dist/node_modules/postcss/lib/rule.mjs +0 -33
  842. package/dist/node_modules/postcss/lib/rule.mjs.map +0 -1
  843. package/dist/node_modules/postcss/lib/stringifier.js +0 -308
  844. package/dist/node_modules/postcss/lib/stringifier.js.map +0 -1
  845. package/dist/node_modules/postcss/lib/stringifier.mjs +0 -308
  846. package/dist/node_modules/postcss/lib/stringifier.mjs.map +0 -1
  847. package/dist/node_modules/postcss/lib/stringify.js +0 -19
  848. package/dist/node_modules/postcss/lib/stringify.js.map +0 -1
  849. package/dist/node_modules/postcss/lib/stringify.mjs +0 -19
  850. package/dist/node_modules/postcss/lib/stringify.mjs.map +0 -1
  851. package/dist/node_modules/postcss/lib/symbols.js +0 -13
  852. package/dist/node_modules/postcss/lib/symbols.js.map +0 -1
  853. package/dist/node_modules/postcss/lib/symbols.mjs +0 -13
  854. package/dist/node_modules/postcss/lib/symbols.mjs.map +0 -1
  855. package/dist/node_modules/postcss/lib/tokenize.js +0 -219
  856. package/dist/node_modules/postcss/lib/tokenize.js.map +0 -1
  857. package/dist/node_modules/postcss/lib/tokenize.mjs +0 -219
  858. package/dist/node_modules/postcss/lib/tokenize.mjs.map +0 -1
  859. package/dist/node_modules/postcss/lib/warning.js +0 -40
  860. package/dist/node_modules/postcss/lib/warning.js.map +0 -1
  861. package/dist/node_modules/postcss/lib/warning.mjs +0 -40
  862. package/dist/node_modules/postcss/lib/warning.mjs.map +0 -1
  863. package/dist/node_modules/postcss-js/async.js +0 -27
  864. package/dist/node_modules/postcss-js/async.js.map +0 -1
  865. package/dist/node_modules/postcss-js/async.mjs +0 -27
  866. package/dist/node_modules/postcss-js/async.mjs.map +0 -1
  867. package/dist/node_modules/postcss-js/index.js +0 -8
  868. package/dist/node_modules/postcss-js/index.js.map +0 -1
  869. package/dist/node_modules/postcss-js/index.mjs +0 -9
  870. package/dist/node_modules/postcss-js/index.mjs.map +0 -1
  871. package/dist/node_modules/postcss-js/index2.js +0 -25
  872. package/dist/node_modules/postcss-js/index2.js.map +0 -1
  873. package/dist/node_modules/postcss-js/index2.mjs +0 -25
  874. package/dist/node_modules/postcss-js/index2.mjs.map +0 -1
  875. package/dist/node_modules/postcss-js/objectifier.js +0 -92
  876. package/dist/node_modules/postcss-js/objectifier.js.map +0 -1
  877. package/dist/node_modules/postcss-js/objectifier.mjs +0 -92
  878. package/dist/node_modules/postcss-js/objectifier.mjs.map +0 -1
  879. package/dist/node_modules/postcss-js/parser.js +0 -102
  880. package/dist/node_modules/postcss-js/parser.js.map +0 -1
  881. package/dist/node_modules/postcss-js/parser.mjs +0 -102
  882. package/dist/node_modules/postcss-js/parser.mjs.map +0 -1
  883. package/dist/node_modules/postcss-js/process-result.js +0 -22
  884. package/dist/node_modules/postcss-js/process-result.js.map +0 -1
  885. package/dist/node_modules/postcss-js/process-result.mjs +0 -22
  886. package/dist/node_modules/postcss-js/process-result.mjs.map +0 -1
  887. package/dist/node_modules/postcss-js/sync.js +0 -24
  888. package/dist/node_modules/postcss-js/sync.js.map +0 -1
  889. package/dist/node_modules/postcss-js/sync.mjs +0 -24
  890. package/dist/node_modules/postcss-js/sync.mjs.map +0 -1
  891. package/dist/node_modules/postcss-nesting/dist/index.js +0 -267
  892. package/dist/node_modules/postcss-nesting/dist/index.js.map +0 -1
  893. package/dist/node_modules/postcss-nesting/dist/index.mjs +0 -268
  894. package/dist/node_modules/postcss-nesting/dist/index.mjs.map +0 -1
  895. package/dist/node_modules/postcss-selector-parser/dist/index.js +0 -67
  896. package/dist/node_modules/postcss-selector-parser/dist/index.js.map +0 -1
  897. package/dist/node_modules/postcss-selector-parser/dist/index.mjs +0 -67
  898. package/dist/node_modules/postcss-selector-parser/dist/index.mjs.map +0 -1
  899. package/dist/node_modules/postcss-selector-parser/dist/parser.js +0 -1038
  900. package/dist/node_modules/postcss-selector-parser/dist/parser.js.map +0 -1
  901. package/dist/node_modules/postcss-selector-parser/dist/parser.mjs +0 -1038
  902. package/dist/node_modules/postcss-selector-parser/dist/parser.mjs.map +0 -1
  903. package/dist/node_modules/postcss-selector-parser/dist/processor.js +0 -137
  904. package/dist/node_modules/postcss-selector-parser/dist/processor.js.map +0 -1
  905. package/dist/node_modules/postcss-selector-parser/dist/processor.mjs +0 -137
  906. package/dist/node_modules/postcss-selector-parser/dist/processor.mjs.map +0 -1
  907. package/dist/node_modules/postcss-selector-parser/dist/selectors/attribute.js +0 -404
  908. package/dist/node_modules/postcss-selector-parser/dist/selectors/attribute.js.map +0 -1
  909. package/dist/node_modules/postcss-selector-parser/dist/selectors/attribute.mjs +0 -404
  910. package/dist/node_modules/postcss-selector-parser/dist/selectors/attribute.mjs.map +0 -1
  911. package/dist/node_modules/postcss-selector-parser/dist/selectors/className.js +0 -89
  912. package/dist/node_modules/postcss-selector-parser/dist/selectors/className.js.map +0 -1
  913. package/dist/node_modules/postcss-selector-parser/dist/selectors/className.mjs +0 -89
  914. package/dist/node_modules/postcss-selector-parser/dist/selectors/className.mjs.map +0 -1
  915. package/dist/node_modules/postcss-selector-parser/dist/selectors/combinator.js +0 -46
  916. package/dist/node_modules/postcss-selector-parser/dist/selectors/combinator.js.map +0 -1
  917. package/dist/node_modules/postcss-selector-parser/dist/selectors/combinator.mjs +0 -46
  918. package/dist/node_modules/postcss-selector-parser/dist/selectors/combinator.mjs.map +0 -1
  919. package/dist/node_modules/postcss-selector-parser/dist/selectors/comment.js +0 -46
  920. package/dist/node_modules/postcss-selector-parser/dist/selectors/comment.js.map +0 -1
  921. package/dist/node_modules/postcss-selector-parser/dist/selectors/comment.mjs +0 -46
  922. package/dist/node_modules/postcss-selector-parser/dist/selectors/comment.mjs.map +0 -1
  923. package/dist/node_modules/postcss-selector-parser/dist/selectors/constructors.js +0 -88
  924. package/dist/node_modules/postcss-selector-parser/dist/selectors/constructors.js.map +0 -1
  925. package/dist/node_modules/postcss-selector-parser/dist/selectors/constructors.mjs +0 -88
  926. package/dist/node_modules/postcss-selector-parser/dist/selectors/constructors.mjs.map +0 -1
  927. package/dist/node_modules/postcss-selector-parser/dist/selectors/container.js +0 -391
  928. package/dist/node_modules/postcss-selector-parser/dist/selectors/container.js.map +0 -1
  929. package/dist/node_modules/postcss-selector-parser/dist/selectors/container.mjs +0 -391
  930. package/dist/node_modules/postcss-selector-parser/dist/selectors/container.mjs.map +0 -1
  931. package/dist/node_modules/postcss-selector-parser/dist/selectors/guards.js +0 -68
  932. package/dist/node_modules/postcss-selector-parser/dist/selectors/guards.js.map +0 -1
  933. package/dist/node_modules/postcss-selector-parser/dist/selectors/guards.mjs +0 -68
  934. package/dist/node_modules/postcss-selector-parser/dist/selectors/guards.mjs.map +0 -1
  935. package/dist/node_modules/postcss-selector-parser/dist/selectors/id.js +0 -50
  936. package/dist/node_modules/postcss-selector-parser/dist/selectors/id.js.map +0 -1
  937. package/dist/node_modules/postcss-selector-parser/dist/selectors/id.mjs +0 -50
  938. package/dist/node_modules/postcss-selector-parser/dist/selectors/id.mjs.map +0 -1
  939. package/dist/node_modules/postcss-selector-parser/dist/selectors/index.js +0 -35
  940. package/dist/node_modules/postcss-selector-parser/dist/selectors/index.js.map +0 -1
  941. package/dist/node_modules/postcss-selector-parser/dist/selectors/index.mjs +0 -35
  942. package/dist/node_modules/postcss-selector-parser/dist/selectors/index.mjs.map +0 -1
  943. package/dist/node_modules/postcss-selector-parser/dist/selectors/namespace.js +0 -117
  944. package/dist/node_modules/postcss-selector-parser/dist/selectors/namespace.js.map +0 -1
  945. package/dist/node_modules/postcss-selector-parser/dist/selectors/namespace.mjs +0 -117
  946. package/dist/node_modules/postcss-selector-parser/dist/selectors/namespace.mjs.map +0 -1
  947. package/dist/node_modules/postcss-selector-parser/dist/selectors/nesting.js +0 -47
  948. package/dist/node_modules/postcss-selector-parser/dist/selectors/nesting.js.map +0 -1
  949. package/dist/node_modules/postcss-selector-parser/dist/selectors/nesting.mjs +0 -47
  950. package/dist/node_modules/postcss-selector-parser/dist/selectors/nesting.mjs.map +0 -1
  951. package/dist/node_modules/postcss-selector-parser/dist/selectors/node.js +0 -183
  952. package/dist/node_modules/postcss-selector-parser/dist/selectors/node.js.map +0 -1
  953. package/dist/node_modules/postcss-selector-parser/dist/selectors/node.mjs +0 -183
  954. package/dist/node_modules/postcss-selector-parser/dist/selectors/node.mjs.map +0 -1
  955. package/dist/node_modules/postcss-selector-parser/dist/selectors/pseudo.js +0 -51
  956. package/dist/node_modules/postcss-selector-parser/dist/selectors/pseudo.js.map +0 -1
  957. package/dist/node_modules/postcss-selector-parser/dist/selectors/pseudo.mjs +0 -51
  958. package/dist/node_modules/postcss-selector-parser/dist/selectors/pseudo.mjs.map +0 -1
  959. package/dist/node_modules/postcss-selector-parser/dist/selectors/root.js +0 -81
  960. package/dist/node_modules/postcss-selector-parser/dist/selectors/root.js.map +0 -1
  961. package/dist/node_modules/postcss-selector-parser/dist/selectors/root.mjs +0 -81
  962. package/dist/node_modules/postcss-selector-parser/dist/selectors/root.mjs.map +0 -1
  963. package/dist/node_modules/postcss-selector-parser/dist/selectors/selector.js +0 -46
  964. package/dist/node_modules/postcss-selector-parser/dist/selectors/selector.js.map +0 -1
  965. package/dist/node_modules/postcss-selector-parser/dist/selectors/selector.mjs +0 -46
  966. package/dist/node_modules/postcss-selector-parser/dist/selectors/selector.mjs.map +0 -1
  967. package/dist/node_modules/postcss-selector-parser/dist/selectors/string.js +0 -46
  968. package/dist/node_modules/postcss-selector-parser/dist/selectors/string.js.map +0 -1
  969. package/dist/node_modules/postcss-selector-parser/dist/selectors/string.mjs +0 -46
  970. package/dist/node_modules/postcss-selector-parser/dist/selectors/string.mjs.map +0 -1
  971. package/dist/node_modules/postcss-selector-parser/dist/selectors/tag.js +0 -46
  972. package/dist/node_modules/postcss-selector-parser/dist/selectors/tag.js.map +0 -1
  973. package/dist/node_modules/postcss-selector-parser/dist/selectors/tag.mjs +0 -46
  974. package/dist/node_modules/postcss-selector-parser/dist/selectors/tag.mjs.map +0 -1
  975. package/dist/node_modules/postcss-selector-parser/dist/selectors/types.js +0 -37
  976. package/dist/node_modules/postcss-selector-parser/dist/selectors/types.js.map +0 -1
  977. package/dist/node_modules/postcss-selector-parser/dist/selectors/types.mjs +0 -37
  978. package/dist/node_modules/postcss-selector-parser/dist/selectors/types.mjs.map +0 -1
  979. package/dist/node_modules/postcss-selector-parser/dist/selectors/universal.js +0 -47
  980. package/dist/node_modules/postcss-selector-parser/dist/selectors/universal.js.map +0 -1
  981. package/dist/node_modules/postcss-selector-parser/dist/selectors/universal.mjs +0 -47
  982. package/dist/node_modules/postcss-selector-parser/dist/selectors/universal.mjs.map +0 -1
  983. package/dist/node_modules/postcss-selector-parser/dist/sortAscending.js +0 -21
  984. package/dist/node_modules/postcss-selector-parser/dist/sortAscending.js.map +0 -1
  985. package/dist/node_modules/postcss-selector-parser/dist/sortAscending.mjs +0 -21
  986. package/dist/node_modules/postcss-selector-parser/dist/sortAscending.mjs.map +0 -1
  987. package/dist/node_modules/postcss-selector-parser/dist/tokenTypes.js +0 -75
  988. package/dist/node_modules/postcss-selector-parser/dist/tokenTypes.js.map +0 -1
  989. package/dist/node_modules/postcss-selector-parser/dist/tokenTypes.mjs +0 -75
  990. package/dist/node_modules/postcss-selector-parser/dist/tokenTypes.mjs.map +0 -1
  991. package/dist/node_modules/postcss-selector-parser/dist/tokenize.js +0 -264
  992. package/dist/node_modules/postcss-selector-parser/dist/tokenize.js.map +0 -1
  993. package/dist/node_modules/postcss-selector-parser/dist/tokenize.mjs +0 -264
  994. package/dist/node_modules/postcss-selector-parser/dist/tokenize.mjs.map +0 -1
  995. package/dist/node_modules/postcss-selector-parser/dist/util/ensureObject.js +0 -28
  996. package/dist/node_modules/postcss-selector-parser/dist/util/ensureObject.js.map +0 -1
  997. package/dist/node_modules/postcss-selector-parser/dist/util/ensureObject.mjs +0 -28
  998. package/dist/node_modules/postcss-selector-parser/dist/util/ensureObject.mjs.map +0 -1
  999. package/dist/node_modules/postcss-selector-parser/dist/util/getProp.js +0 -29
  1000. package/dist/node_modules/postcss-selector-parser/dist/util/getProp.js.map +0 -1
  1001. package/dist/node_modules/postcss-selector-parser/dist/util/getProp.mjs +0 -29
  1002. package/dist/node_modules/postcss-selector-parser/dist/util/getProp.mjs.map +0 -1
  1003. package/dist/node_modules/postcss-selector-parser/dist/util/index.js +0 -28
  1004. package/dist/node_modules/postcss-selector-parser/dist/util/index.js.map +0 -1
  1005. package/dist/node_modules/postcss-selector-parser/dist/util/index.mjs +0 -28
  1006. package/dist/node_modules/postcss-selector-parser/dist/util/index.mjs.map +0 -1
  1007. package/dist/node_modules/postcss-selector-parser/dist/util/stripComments.js +0 -32
  1008. package/dist/node_modules/postcss-selector-parser/dist/util/stripComments.js.map +0 -1
  1009. package/dist/node_modules/postcss-selector-parser/dist/util/stripComments.mjs +0 -32
  1010. package/dist/node_modules/postcss-selector-parser/dist/util/stripComments.mjs.map +0 -1
  1011. package/dist/node_modules/postcss-selector-parser/dist/util/unesc.js +0 -68
  1012. package/dist/node_modules/postcss-selector-parser/dist/util/unesc.js.map +0 -1
  1013. package/dist/node_modules/postcss-selector-parser/dist/util/unesc.mjs +0 -68
  1014. package/dist/node_modules/postcss-selector-parser/dist/util/unesc.mjs.map +0 -1
  1015. package/dist/node_modules/util-deprecate/browser.js +0 -43
  1016. package/dist/node_modules/util-deprecate/browser.js.map +0 -1
  1017. package/dist/node_modules/util-deprecate/browser.mjs +0 -43
  1018. package/dist/node_modules/util-deprecate/browser.mjs.map +0 -1
  1019. package/dist/utilities/accessibility/index.d.ts +0 -13
  1020. package/dist/utilities/accessibility/index.d.ts.map +0 -1
  1021. package/dist/utilities/accessibility/index.js +0 -89
  1022. package/dist/utilities/accessibility/index.js.map +0 -1
  1023. package/dist/utilities/accessibility/index.mjs +0 -89
  1024. package/dist/utilities/accessibility/index.mjs.map +0 -1
  1025. package/dist/utilities/assets/icons.d.ts +0 -26
  1026. package/dist/utilities/assets/icons.d.ts.map +0 -1
  1027. package/dist/utilities/assets/icons.js +0 -53
  1028. package/dist/utilities/assets/icons.js.map +0 -1
  1029. package/dist/utilities/assets/icons.mjs +0 -53
  1030. package/dist/utilities/assets/icons.mjs.map +0 -1
  1031. package/dist/utilities/assets/index.d.ts +0 -4
  1032. package/dist/utilities/assets/index.d.ts.map +0 -1
  1033. package/dist/utilities/assets/index.js +0 -9
  1034. package/dist/utilities/assets/index.js.map +0 -1
  1035. package/dist/utilities/assets/index.mjs +0 -9
  1036. package/dist/utilities/assets/index.mjs.map +0 -1
  1037. package/dist/utilities/assets/logos.d.ts +0 -6
  1038. package/dist/utilities/assets/logos.d.ts.map +0 -1
  1039. package/dist/utilities/assets/logos.js +0 -14
  1040. package/dist/utilities/assets/logos.js.map +0 -1
  1041. package/dist/utilities/assets/logos.mjs +0 -14
  1042. package/dist/utilities/assets/logos.mjs.map +0 -1
  1043. package/dist/utilities/assets/social.d.ts +0 -8
  1044. package/dist/utilities/assets/social.d.ts.map +0 -1
  1045. package/dist/utilities/assets/social.js +0 -17
  1046. package/dist/utilities/assets/social.js.map +0 -1
  1047. package/dist/utilities/assets/social.mjs +0 -17
  1048. package/dist/utilities/assets/social.mjs.map +0 -1
  1049. package/dist/utilities/date.d.ts +0 -12
  1050. package/dist/utilities/date.d.ts.map +0 -1
  1051. package/dist/utilities/date.js +0 -36
  1052. package/dist/utilities/date.js.map +0 -1
  1053. package/dist/utilities/date.mjs +0 -36
  1054. package/dist/utilities/date.mjs.map +0 -1
  1055. package/dist/utilities/index.d.ts +0 -10
  1056. package/dist/utilities/index.d.ts.map +0 -1
  1057. package/dist/utilities/js-events/index.d.ts +0 -5
  1058. package/dist/utilities/js-events/index.d.ts.map +0 -1
  1059. package/dist/utilities/js-events/index.js +0 -37
  1060. package/dist/utilities/js-events/index.js.map +0 -1
  1061. package/dist/utilities/js-events/index.mjs +0 -37
  1062. package/dist/utilities/js-events/index.mjs.map +0 -1
  1063. package/dist/utilities/markup/create.d.ts +0 -13
  1064. package/dist/utilities/markup/create.d.ts.map +0 -1
  1065. package/dist/utilities/markup/create.js +0 -95
  1066. package/dist/utilities/markup/create.js.map +0 -1
  1067. package/dist/utilities/markup/create.mjs +0 -95
  1068. package/dist/utilities/markup/create.mjs.map +0 -1
  1069. package/dist/utilities/markup/get.d.ts +0 -4
  1070. package/dist/utilities/markup/get.d.ts.map +0 -1
  1071. package/dist/utilities/markup/get.js +0 -18
  1072. package/dist/utilities/markup/get.js.map +0 -1
  1073. package/dist/utilities/markup/get.mjs +0 -18
  1074. package/dist/utilities/markup/get.mjs.map +0 -1
  1075. package/dist/utilities/markup/index.d.ts +0 -5
  1076. package/dist/utilities/markup/index.d.ts.map +0 -1
  1077. package/dist/utilities/markup/index.js +0 -11
  1078. package/dist/utilities/markup/index.js.map +0 -1
  1079. package/dist/utilities/markup/index.mjs +0 -11
  1080. package/dist/utilities/markup/index.mjs.map +0 -1
  1081. package/dist/utilities/markup/locate.d.ts +0 -5
  1082. package/dist/utilities/markup/locate.d.ts.map +0 -1
  1083. package/dist/utilities/markup/locate.js +0 -26
  1084. package/dist/utilities/markup/locate.js.map +0 -1
  1085. package/dist/utilities/markup/locate.mjs +0 -26
  1086. package/dist/utilities/markup/locate.mjs.map +0 -1
  1087. package/dist/utilities/markup/modify.d.ts +0 -21
  1088. package/dist/utilities/markup/modify.d.ts.map +0 -1
  1089. package/dist/utilities/markup/modify.js +0 -93
  1090. package/dist/utilities/markup/modify.js.map +0 -1
  1091. package/dist/utilities/markup/modify.mjs +0 -93
  1092. package/dist/utilities/markup/modify.mjs.map +0 -1
  1093. package/dist/utilities/network/index.d.ts +0 -10
  1094. package/dist/utilities/network/index.d.ts.map +0 -1
  1095. package/dist/utilities/network/index.js +0 -35
  1096. package/dist/utilities/network/index.js.map +0 -1
  1097. package/dist/utilities/network/index.mjs +0 -35
  1098. package/dist/utilities/network/index.mjs.map +0 -1
  1099. package/dist/utilities/performance/index.d.ts +0 -2
  1100. package/dist/utilities/performance/index.d.ts.map +0 -1
  1101. package/dist/utilities/performance/index.js +0 -12
  1102. package/dist/utilities/performance/index.js.map +0 -1
  1103. package/dist/utilities/performance/index.mjs +0 -12
  1104. package/dist/utilities/performance/index.mjs.map +0 -1
  1105. package/dist/utilities/storage/index.d.ts +0 -2
  1106. package/dist/utilities/storage/index.d.ts.map +0 -1
  1107. package/dist/utilities/storage/index.js +0 -5
  1108. package/dist/utilities/storage/index.js.map +0 -1
  1109. package/dist/utilities/storage/index.mjs +0 -5
  1110. package/dist/utilities/storage/index.mjs.map +0 -1
  1111. package/dist/utilities/storage/local.d.ts +0 -7
  1112. package/dist/utilities/storage/local.d.ts.map +0 -1
  1113. package/dist/utilities/storage/local.js +0 -14
  1114. package/dist/utilities/storage/local.js.map +0 -1
  1115. package/dist/utilities/storage/local.mjs +0 -14
  1116. package/dist/utilities/storage/local.mjs.map +0 -1
  1117. package/dist/utilities/theme/animations.d.ts +0 -9
  1118. package/dist/utilities/theme/animations.d.ts.map +0 -1
  1119. package/dist/utilities/theme/animations.js +0 -70
  1120. package/dist/utilities/theme/animations.js.map +0 -1
  1121. package/dist/utilities/theme/animations.mjs +0 -70
  1122. package/dist/utilities/theme/animations.mjs.map +0 -1
  1123. package/dist/utilities/theme/assets.d.ts +0 -6
  1124. package/dist/utilities/theme/assets.d.ts.map +0 -1
  1125. package/dist/utilities/theme/assets.js +0 -17
  1126. package/dist/utilities/theme/assets.js.map +0 -1
  1127. package/dist/utilities/theme/assets.mjs +0 -17
  1128. package/dist/utilities/theme/assets.mjs.map +0 -1
  1129. package/dist/utilities/theme/index.d.ts +0 -11
  1130. package/dist/utilities/theme/index.d.ts.map +0 -1
  1131. package/dist/utilities/theme/index.js +0 -28
  1132. package/dist/utilities/theme/index.js.map +0 -1
  1133. package/dist/utilities/theme/index.mjs +0 -28
  1134. package/dist/utilities/theme/index.mjs.map +0 -1
  1135. package/dist/utilities/theme/media.d.ts +0 -12
  1136. package/dist/utilities/theme/media.d.ts.map +0 -1
  1137. package/dist/utilities/theme/media.js +0 -21
  1138. package/dist/utilities/theme/media.js.map +0 -1
  1139. package/dist/utilities/theme/media.mjs +0 -21
  1140. package/dist/utilities/theme/media.mjs.map +0 -1
  1141. package/dist/utilities.d.ts +0 -2
  1142. package/dist/utilities.js +0 -21
  1143. package/dist/utilities.js.map +0 -1
  1144. package/dist/utilities.mjs +0 -21
  1145. package/dist/utilities.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"header.js","sources":["../../../source/composite/navigation/header.ts"],"sourcesContent":["import { token, typography } from '@universityofmaryland/web-styles-library';\nimport * as Utility from 'utilities';\nimport MenuButton from './elements/menu-button';\nimport NavigationItem from './elements/item';\n\ntype TypeLogoRequirments = {\n logo?: HTMLElement | null;\n eventOpen?: () => void;\n};\n\ntype TypeSearchLink = {\n searchUrl: string | null;\n};\n\ntype TypeCtaLink = {\n ctaUrl: string | null;\n ctaText: string | null;\n};\n\ntype TypeNavRow = TypeSearchLink &\n TypeCtaLink & {\n utilityRow?: HTMLElement | null;\n navItems?: HTMLElement[];\n };\n\ntype TypeHeaderRequirements = TypeLogoRequirments & TypeNavRow;\n\nconst ANIMATION_TIME = 500;\n\nconst ATTRIBUTE_STICKY = 'data-sticky';\nconst ATTRIBUTE_CTA = 'data-cta';\n\nconst IS_STICKY = `[${ATTRIBUTE_STICKY}=\"true\"]`;\nconst IS_CTA = `[${ATTRIBUTE_CTA}=\"true\"]`;\n\nconst ELEMENT_HEADER_DECLARATION = 'element-header-declaration';\nconst ELEMENT_HEADER_CONTAINTER = 'element-header-container';\nconst ELEMENT_HEADER_WRAPPER = 'element-header-wrapper';\nconst ELEMENT_HEADER_LOGO_COLUMN = 'element-header-logo-column';\nconst ELEMENT_HEADER_NAVIGATION_COLUMN = 'element-header-navigation-column';\nconst ELEMENT_HEADER_LOGO = 'element-header-logo';\nconst ELEMENT_HEADER_MENU_BUTTON = 'element-header-menu-button';\nconst ELEMENT_HEADER_MENU_CTA = 'element-header-menu-cta';\nconst ELEMENT_HEADER_MENU_SEARCH = 'element-header-menu-search';\nconst ELEMENT_HEADER_NAVIGATION_ROW = 'element-header-navigation-row';\nconst ELEMENT_HEADER_UTILITY_ROW = 'element-header-utility-row';\n\nconst OVERWRITE_STICKY_CONTAINER = `.${ELEMENT_HEADER_CONTAINTER}${IS_STICKY}`;\nconst OVERWRITE_STICKY_LOGO = `${OVERWRITE_STICKY_CONTAINER} .${ELEMENT_HEADER_LOGO}`;\nconst OVERWRITE_CTA_WRAPPER = `.${ELEMENT_HEADER_WRAPPER}${IS_CTA}`;\nconst OVERWRITE_CTA_WRAPPER_NAV_ROW = `${OVERWRITE_CTA_WRAPPER} .${ELEMENT_HEADER_NAVIGATION_ROW}`;\nconst OVERWRITE_CTA_WRAPPER_CTA = `${OVERWRITE_CTA_WRAPPER} .${ELEMENT_HEADER_MENU_CTA}`;\n\nconst OverwriteStickyStyles = `\n ${OVERWRITE_STICKY_CONTAINER} {\n padding: ${token.spacing.xs} 0;\n }\n\n .${ELEMENT_HEADER_WRAPPER} {\n align-items: center;\n }\n\n ${OVERWRITE_STICKY_LOGO} img {\n max-height: 30px;\n }\n`;\n\nconst CtaStyles = `\n .${ELEMENT_HEADER_MENU_CTA} {\n color: ${token.color.white};\n font-weight: ${token.font.weight.bold};\n font-size: ${token.font.size.sm};\n padding: ${token.spacing.xs};\n background-color: ${token.color.red};\n transition: background .5s;\n white-space: nowrap;\n }\n\n .${ELEMENT_HEADER_MENU_CTA}:hover,\n .${ELEMENT_HEADER_MENU_CTA}:focus {\n background-color: ${token.color.redDark};\n }\n\n ${OVERWRITE_CTA_WRAPPER_CTA} {\n margin-top: -${token.spacing.min};\n }\n`;\n\nconst NavigationColumnStyles = `\n @media (max-width: 1240px) {\n .${ELEMENT_HEADER_NAVIGATION_COLUMN} {\n display: none;\n }\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} {\n display: grid;\n grid-auto-flow: column;\n }\n\n ${OVERWRITE_CTA_WRAPPER_NAV_ROW} {\n padding-top: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} > * {\n display: block;\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} > *:not(:first-child) {\n margin-left: ${token.spacing.md};\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} svg {\n width: 24px;\n height: 24px;\n fill: ${token.color.black};\n }\n\n .${ELEMENT_HEADER_UTILITY_ROW} {\n display: flex;\n justify-content: flex-end;\n margin-bottom: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_UTILITY_ROW} ::slotted(*) {\n display: flex;\n justify-content: flex-end;\n gap: ${token.spacing.md};\n }\n`;\n\nconst LogoColumnStyles = `\n .${ELEMENT_HEADER_LOGO_COLUMN} {\n align-items: center;\n display: flex;\n justify-content: flex-start;\n position: relative;\n width: 100%;\n max-width: 400px;\n }\n\n .${ELEMENT_HEADER_MENU_BUTTON} {\n border-right: 1px solid ${token.color.gray.light};\n padding-right: ${token.spacing.min};\n margin-right: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_LOGO} {\n display: grid;\n justify-content: flex-start;\n max-width: 350px;\n }\n\n .${ELEMENT_HEADER_LOGO}:has(img[src*=\".svg\"]) img {\n height: 240px;\n }\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}`]: typography.sans.larger,\n },\n })}\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO} *`]: typography.sans.larger,\n },\n })}\n\n .${ELEMENT_HEADER_LOGO},\n .${ELEMENT_HEADER_LOGO} * {\n line-height: 1.05em;\n width: 100%;\n }\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}[size=\"large\"]`]: typography.sans.extraLarge,\n },\n })}\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}[size=\"large\"] *`]: typography.sans.extraLarge,\n },\n })}\n\n .${ELEMENT_HEADER_LOGO},\n .${ELEMENT_HEADER_LOGO} * {\n font-weight: 700;\n }\n\n .${ELEMENT_HEADER_LOGO} img {\n width: 100%;\n max-height: 48px;\n max-width: 190px;\n }\n\n @media (min-width: ${token.media.breakpoints.tablet.min}) {\n .${ELEMENT_HEADER_LOGO} img {\n max-width: 240px;\n }\n }\n`;\n\nconst WrapperStyles = `\n .${ELEMENT_HEADER_WRAPPER} {\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n gap: ${token.spacing.lg};\n z-index: 999;\n }\n`;\n\nconst STYLES_NAVIGATION_HEADER = `\n .${ELEMENT_HEADER_CONTAINTER} {\n background-color: ${token.color.white};\n display: block;\n padding: ${token.spacing.md} 0;\n position: relative;\n transition: padding ${ANIMATION_TIME}ms;\n }\n\n ${WrapperStyles}\n ${LogoColumnStyles}\n ${NavigationColumnStyles}\n ${CtaStyles}\n ${OverwriteStickyStyles}\n ${NavigationItem.Styles}\n ${MenuButton.Styles}\n`;\n\nconst CreateSearchLink = ({ searchUrl }: TypeSearchLink) => {\n if (!searchUrl) return null;\n\n const searchLink = document.createElement('a');\n\n searchLink.href = searchUrl;\n searchLink.ariaLabel = 'Visit the search page';\n searchLink.innerHTML = Utility.asset.icon.MAGNIFY_GLASS;\n searchLink.classList.add(ELEMENT_HEADER_MENU_SEARCH);\n\n return searchLink;\n};\n\nconst CreateCtaLink = ({ ctaUrl, ctaText }: TypeCtaLink) => {\n if (!ctaUrl || !ctaText) return null;\n\n const cta = document.createElement('a');\n\n cta.innerHTML = ctaText;\n cta.setAttribute('target', '_blank');\n cta.setAttribute('href', ctaUrl);\n cta.classList.add(ELEMENT_HEADER_MENU_CTA);\n\n return cta;\n};\n\nconst CreateNavigationColumn = ({\n utilityRow,\n navItems,\n searchUrl,\n ctaText,\n ctaUrl,\n}: TypeNavRow) => {\n if (!navItems) return;\n\n const navColumnContainer = document.createElement('div');\n const utilityRowContainer = document.createElement('div');\n const navRowContainer = document.createElement('div');\n const searchLink = CreateSearchLink({\n searchUrl,\n });\n const ctaLink = CreateCtaLink({ ctaText, ctaUrl });\n\n if (utilityRow) {\n utilityRowContainer.classList.add(ELEMENT_HEADER_UTILITY_ROW);\n utilityRowContainer.appendChild(utilityRow);\n navColumnContainer.appendChild(utilityRowContainer);\n }\n\n navRowContainer.classList.add(ELEMENT_HEADER_NAVIGATION_ROW);\n\n navItems.forEach((item) => {\n navRowContainer.appendChild(item);\n });\n if (searchLink) navRowContainer.appendChild(searchLink);\n if (ctaLink) navRowContainer.appendChild(ctaLink);\n\n navColumnContainer.classList.add(ELEMENT_HEADER_NAVIGATION_COLUMN);\n navColumnContainer.appendChild(navRowContainer);\n\n return navColumnContainer;\n};\n\nconst CreateLogoColumn = ({ logo, eventOpen }: TypeLogoRequirments) => {\n const container = document.createElement('div');\n\n if (eventOpen) {\n const menuButton = MenuButton.CreateElement({ eventOpen });\n menuButton.classList.add(ELEMENT_HEADER_MENU_BUTTON);\n container.appendChild(menuButton);\n }\n\n if (logo) {\n const childrenText = Array.from(logo.children).reduce((acc, child) => {\n if (child.nodeName === 'IMG') return acc;\n\n if (child.textContent) {\n return acc + child.textContent.length;\n }\n\n return acc;\n }, 0);\n logo.classList.add(ELEMENT_HEADER_LOGO);\n\n if (childrenText < 30) {\n logo.setAttribute('size', 'large');\n }\n\n container.appendChild(logo);\n }\n container.classList.add(ELEMENT_HEADER_LOGO_COLUMN);\n return container;\n};\n\nconst CreateNavigationHeader = (props: TypeHeaderRequirements) => {\n const { ctaUrl, ctaText } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const wrapper = document.createElement('div');\n const logoColumn = CreateLogoColumn(props);\n const navigationColumn = CreateNavigationColumn(props);\n const eventSticky = ({ isSticky }: { isSticky: boolean }) => {\n const utility = container.querySelector(\n `.${ELEMENT_HEADER_UTILITY_ROW}`,\n ) as HTMLDivElement;\n\n if (isSticky && isElementSticky) return;\n\n if (isSticky) {\n isElementSticky = true;\n container.setAttribute(ATTRIBUTE_STICKY, 'true');\n\n if (utility) {\n utility.style.display = 'none';\n }\n }\n if (!isSticky) {\n isElementSticky = false;\n container.removeAttribute(ATTRIBUTE_STICKY);\n\n if (utility) {\n utility.style.display = 'block';\n }\n }\n };\n let isElementSticky = false;\n\n wrapper.classList.add(ELEMENT_HEADER_WRAPPER);\n wrapper.appendChild(logoColumn);\n\n if (navigationColumn) wrapper.appendChild(navigationColumn);\n if (ctaUrl && ctaText) wrapper.setAttribute(ATTRIBUTE_CTA, 'true');\n\n container.appendChild(wrapper);\n container.classList.add(ELEMENT_HEADER_CONTAINTER);\n\n declaration.classList.add(ELEMENT_HEADER_DECLARATION);\n declaration.appendChild(container);\n\n return {\n element: declaration,\n events: {\n sticky: eventSticky,\n },\n };\n};\n\nexport default {\n CreateElement: CreateNavigationHeader,\n Styles: STYLES_NAVIGATION_HEADER,\n};\n"],"names":["token","Utility.theme.convertJSSObjectToStyles","typography","NavigationItem","MenuButton","Utility.asset.icon.MAGNIFY_GLASS"],"mappings":"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"}
1
+ {"version":3,"file":"header.js","sources":["../../../source/composite/navigation/header.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport { jssToCSS } from '@universityofmaryland/web-utilities-library/styles';\nimport { search as iconSearch } from '@universityofmaryland/web-icons-library/search';\nimport MenuButton from './elements/menu-button';\nimport NavigationItem from './elements/item';\n\ntype TypeLogoRequirments = {\n logo?: HTMLElement | null;\n eventOpen?: () => void;\n};\n\ntype TypeSearchLink = {\n searchUrl: string | null;\n};\n\ntype TypeCtaLink = {\n ctaUrl: string | null;\n ctaText: string | null;\n};\n\ntype TypeNavRow = TypeSearchLink &\n TypeCtaLink & {\n utilityRow?: HTMLElement | null;\n navItems?: HTMLElement[];\n };\n\ntype TypeHeaderRequirements = TypeLogoRequirments & TypeNavRow;\n\nconst ANIMATION_TIME = 500;\n\nconst ATTRIBUTE_STICKY = 'data-sticky';\nconst ATTRIBUTE_CTA = 'data-cta';\n\nconst IS_STICKY = `[${ATTRIBUTE_STICKY}=\"true\"]`;\nconst IS_CTA = `[${ATTRIBUTE_CTA}=\"true\"]`;\n\nconst ELEMENT_HEADER_DECLARATION = 'element-header-declaration';\nconst ELEMENT_HEADER_CONTAINTER = 'element-header-container';\nconst ELEMENT_HEADER_WRAPPER = 'element-header-wrapper';\nconst ELEMENT_HEADER_LOGO_COLUMN = 'element-header-logo-column';\nconst ELEMENT_HEADER_NAVIGATION_COLUMN = 'element-header-navigation-column';\nconst ELEMENT_HEADER_LOGO = 'element-header-logo';\nconst ELEMENT_HEADER_MENU_BUTTON = 'element-header-menu-button';\nconst ELEMENT_HEADER_MENU_CTA = 'element-header-menu-cta';\nconst ELEMENT_HEADER_MENU_SEARCH = 'element-header-menu-search';\nconst ELEMENT_HEADER_NAVIGATION_ROW = 'element-header-navigation-row';\nconst ELEMENT_HEADER_UTILITY_ROW = 'element-header-utility-row';\n\nconst OVERWRITE_STICKY_CONTAINER = `.${ELEMENT_HEADER_CONTAINTER}${IS_STICKY}`;\nconst OVERWRITE_STICKY_LOGO = `${OVERWRITE_STICKY_CONTAINER} .${ELEMENT_HEADER_LOGO}`;\nconst OVERWRITE_CTA_WRAPPER = `.${ELEMENT_HEADER_WRAPPER}${IS_CTA}`;\nconst OVERWRITE_CTA_WRAPPER_NAV_ROW = `${OVERWRITE_CTA_WRAPPER} .${ELEMENT_HEADER_NAVIGATION_ROW}`;\nconst OVERWRITE_CTA_WRAPPER_CTA = `${OVERWRITE_CTA_WRAPPER} .${ELEMENT_HEADER_MENU_CTA}`;\n\nconst OverwriteStickyStyles = `\n ${OVERWRITE_STICKY_CONTAINER} {\n padding: ${token.spacing.xs} 0;\n }\n\n .${ELEMENT_HEADER_WRAPPER} {\n align-items: center;\n }\n\n ${OVERWRITE_STICKY_LOGO} img {\n max-height: 30px;\n }\n`;\n\nconst CtaStyles = `\n .${ELEMENT_HEADER_MENU_CTA} {\n color: ${token.color.white};\n font-weight: ${token.font.weight.bold};\n font-size: ${token.font.size.sm};\n padding: ${token.spacing.xs};\n background-color: ${token.color.red};\n transition: background .5s;\n white-space: nowrap;\n }\n\n .${ELEMENT_HEADER_MENU_CTA}:hover,\n .${ELEMENT_HEADER_MENU_CTA}:focus {\n background-color: ${token.color.redDark};\n }\n\n ${OVERWRITE_CTA_WRAPPER_CTA} {\n margin-top: -${token.spacing.min};\n }\n`;\n\nconst NavigationColumnStyles = `\n @media (max-width: 1240px) {\n .${ELEMENT_HEADER_NAVIGATION_COLUMN} {\n display: none;\n }\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} {\n display: grid;\n grid-auto-flow: column;\n }\n\n ${OVERWRITE_CTA_WRAPPER_NAV_ROW} {\n padding-top: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} > * {\n display: block;\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} > *:not(:first-child) {\n margin-left: ${token.spacing.md};\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} svg {\n width: 24px;\n height: 24px;\n fill: ${token.color.black};\n }\n\n .${ELEMENT_HEADER_UTILITY_ROW} {\n display: flex;\n justify-content: flex-end;\n margin-bottom: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_UTILITY_ROW} ::slotted(*) {\n display: flex;\n justify-content: flex-end;\n gap: ${token.spacing.md};\n }\n`;\n\nconst LogoColumnStyles = `\n .${ELEMENT_HEADER_LOGO_COLUMN} {\n align-items: center;\n display: flex;\n justify-content: flex-start;\n position: relative;\n width: 100%;\n max-width: 400px;\n }\n\n .${ELEMENT_HEADER_MENU_BUTTON} {\n border-right: 1px solid ${token.color.gray.light};\n padding-right: ${token.spacing.min};\n margin-right: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_LOGO} {\n display: grid;\n justify-content: flex-start;\n max-width: 350px;\n }\n\n .${ELEMENT_HEADER_LOGO}:has(img[src*=\".svg\"]) img {\n height: 240px;\n }\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}`]: typography.sans.larger,\n },\n })}\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO} *`]: typography.sans.larger,\n },\n })}\n\n .${ELEMENT_HEADER_LOGO},\n .${ELEMENT_HEADER_LOGO} * {\n line-height: 1.05em;\n width: 100%;\n }\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}[size=\"large\"]`]: typography.sans.extraLarge,\n },\n })}\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}[size=\"large\"] *`]: typography.sans.extraLarge,\n },\n })}\n\n .${ELEMENT_HEADER_LOGO},\n .${ELEMENT_HEADER_LOGO} * {\n font-weight: 700;\n }\n\n .${ELEMENT_HEADER_LOGO} img {\n width: 100%;\n max-height: 48px;\n max-width: 190px;\n }\n\n @media (min-width: ${token.media.breakpoints.tablet.min}) {\n .${ELEMENT_HEADER_LOGO} img {\n max-width: 240px;\n }\n }\n`;\n\nconst WrapperStyles = `\n .${ELEMENT_HEADER_WRAPPER} {\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n gap: ${token.spacing.lg};\n z-index: 999;\n }\n`;\n\nconst STYLES_NAVIGATION_HEADER = `\n .${ELEMENT_HEADER_CONTAINTER} {\n background-color: ${token.color.white};\n display: block;\n padding: ${token.spacing.md} 0;\n position: relative;\n transition: padding ${ANIMATION_TIME}ms;\n }\n\n ${WrapperStyles}\n ${LogoColumnStyles}\n ${NavigationColumnStyles}\n ${CtaStyles}\n ${OverwriteStickyStyles}\n ${NavigationItem.Styles}\n ${MenuButton.Styles}\n`;\n\nconst CreateSearchLink = ({ searchUrl }: TypeSearchLink) => {\n if (!searchUrl) return null;\n\n const searchLink = document.createElement('a');\n\n searchLink.href = searchUrl;\n searchLink.ariaLabel = 'Visit the search page';\n searchLink.innerHTML = iconSearch;\n searchLink.classList.add(ELEMENT_HEADER_MENU_SEARCH);\n\n return searchLink;\n};\n\nconst CreateCtaLink = ({ ctaUrl, ctaText }: TypeCtaLink) => {\n if (!ctaUrl || !ctaText) return null;\n\n const cta = document.createElement('a');\n\n cta.innerHTML = ctaText;\n cta.setAttribute('target', '_blank');\n cta.setAttribute('href', ctaUrl);\n cta.classList.add(ELEMENT_HEADER_MENU_CTA);\n\n return cta;\n};\n\nconst CreateNavigationColumn = ({\n utilityRow,\n navItems,\n searchUrl,\n ctaText,\n ctaUrl,\n}: TypeNavRow) => {\n if (!navItems) return;\n\n const navColumnContainer = document.createElement('div');\n const utilityRowContainer = document.createElement('div');\n const navRowContainer = document.createElement('div');\n const searchLink = CreateSearchLink({\n searchUrl,\n });\n const ctaLink = CreateCtaLink({ ctaText, ctaUrl });\n\n if (utilityRow) {\n utilityRowContainer.classList.add(ELEMENT_HEADER_UTILITY_ROW);\n utilityRowContainer.appendChild(utilityRow);\n navColumnContainer.appendChild(utilityRowContainer);\n }\n\n navRowContainer.classList.add(ELEMENT_HEADER_NAVIGATION_ROW);\n\n navItems.forEach((item) => {\n navRowContainer.appendChild(item);\n });\n if (searchLink) navRowContainer.appendChild(searchLink);\n if (ctaLink) navRowContainer.appendChild(ctaLink);\n\n navColumnContainer.classList.add(ELEMENT_HEADER_NAVIGATION_COLUMN);\n navColumnContainer.appendChild(navRowContainer);\n\n return navColumnContainer;\n};\n\nconst CreateLogoColumn = ({ logo, eventOpen }: TypeLogoRequirments) => {\n const container = document.createElement('div');\n\n if (eventOpen) {\n const menuButton = MenuButton.CreateElement({ eventOpen });\n menuButton.classList.add(ELEMENT_HEADER_MENU_BUTTON);\n container.appendChild(menuButton);\n }\n\n if (logo) {\n const childrenText = Array.from(logo.children).reduce((acc, child) => {\n if (child.nodeName === 'IMG') return acc;\n\n if (child.textContent) {\n return acc + child.textContent.length;\n }\n\n return acc;\n }, 0);\n logo.classList.add(ELEMENT_HEADER_LOGO);\n\n if (childrenText < 30) {\n logo.setAttribute('size', 'large');\n }\n\n container.appendChild(logo);\n }\n container.classList.add(ELEMENT_HEADER_LOGO_COLUMN);\n return container;\n};\n\nconst CreateNavigationHeader = (props: TypeHeaderRequirements) => {\n const { ctaUrl, ctaText } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const wrapper = document.createElement('div');\n const logoColumn = CreateLogoColumn(props);\n const navigationColumn = CreateNavigationColumn(props);\n const eventSticky = ({ isSticky }: { isSticky: boolean }) => {\n const utility = container.querySelector(\n `.${ELEMENT_HEADER_UTILITY_ROW}`,\n ) as HTMLDivElement;\n\n if (isSticky && isElementSticky) return;\n\n if (isSticky) {\n isElementSticky = true;\n container.setAttribute(ATTRIBUTE_STICKY, 'true');\n\n if (utility) {\n utility.style.display = 'none';\n }\n }\n if (!isSticky) {\n isElementSticky = false;\n container.removeAttribute(ATTRIBUTE_STICKY);\n\n if (utility) {\n utility.style.display = 'block';\n }\n }\n };\n let isElementSticky = false;\n\n wrapper.classList.add(ELEMENT_HEADER_WRAPPER);\n wrapper.appendChild(logoColumn);\n\n if (navigationColumn) wrapper.appendChild(navigationColumn);\n if (ctaUrl && ctaText) wrapper.setAttribute(ATTRIBUTE_CTA, 'true');\n\n container.appendChild(wrapper);\n container.classList.add(ELEMENT_HEADER_CONTAINTER);\n\n declaration.classList.add(ELEMENT_HEADER_DECLARATION);\n declaration.appendChild(container);\n\n return {\n element: declaration,\n events: {\n sticky: eventSticky,\n },\n };\n};\n\nexport default {\n CreateElement: CreateNavigationHeader,\n Styles: STYLES_NAVIGATION_HEADER,\n};\n"],"names":["token","jssToCSS","typography","NavigationItem","MenuButton","iconSearch"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import { token, typography } from "@universityofmaryland/web-styles-library";
2
- import { MAGNIFY_GLASS } from "../../utilities/assets/icons.mjs";
3
- import { convertJSSObjectToStyles } from "../../utilities/theme/index.mjs";
1
+ import * as token from "@universityofmaryland/web-styles-library/token";
2
+ import * as typography from "@universityofmaryland/web-styles-library/typography";
3
+ import { jssToCSS } from "@universityofmaryland/web-utilities-library/styles";
4
+ import { search } from "@universityofmaryland/web-icons-library/search";
4
5
  import MenuButton from "./elements/menu-button/index.mjs";
5
6
  import NavigationItem from "./elements/item/index.mjs";
6
7
  const ANIMATION_TIME = 500;
@@ -125,13 +126,13 @@ const LogoColumnStyles = `
125
126
  height: 240px;
126
127
  }
127
128
 
128
- ${convertJSSObjectToStyles({
129
+ ${jssToCSS({
129
130
  styleObj: {
130
131
  [`.${ELEMENT_HEADER_LOGO}`]: typography.sans.larger
131
132
  }
132
133
  })}
133
134
 
134
- ${convertJSSObjectToStyles({
135
+ ${jssToCSS({
135
136
  styleObj: {
136
137
  [`.${ELEMENT_HEADER_LOGO} *`]: typography.sans.larger
137
138
  }
@@ -143,13 +144,13 @@ const LogoColumnStyles = `
143
144
  width: 100%;
144
145
  }
145
146
 
146
- ${convertJSSObjectToStyles({
147
+ ${jssToCSS({
147
148
  styleObj: {
148
149
  [`.${ELEMENT_HEADER_LOGO}[size="large"]`]: typography.sans.extraLarge
149
150
  }
150
151
  })}
151
152
 
152
- ${convertJSSObjectToStyles({
153
+ ${jssToCSS({
153
154
  styleObj: {
154
155
  [`.${ELEMENT_HEADER_LOGO}[size="large"] *`]: typography.sans.extraLarge
155
156
  }
@@ -203,7 +204,7 @@ const CreateSearchLink = ({ searchUrl }) => {
203
204
  const searchLink = document.createElement("a");
204
205
  searchLink.href = searchUrl;
205
206
  searchLink.ariaLabel = "Visit the search page";
206
- searchLink.innerHTML = MAGNIFY_GLASS;
207
+ searchLink.innerHTML = search;
207
208
  searchLink.classList.add(ELEMENT_HEADER_MENU_SEARCH);
208
209
  return searchLink;
209
210
  };
@@ -1 +1 @@
1
- {"version":3,"file":"header.mjs","sources":["../../../source/composite/navigation/header.ts"],"sourcesContent":["import { token, typography } from '@universityofmaryland/web-styles-library';\nimport * as Utility from 'utilities';\nimport MenuButton from './elements/menu-button';\nimport NavigationItem from './elements/item';\n\ntype TypeLogoRequirments = {\n logo?: HTMLElement | null;\n eventOpen?: () => void;\n};\n\ntype TypeSearchLink = {\n searchUrl: string | null;\n};\n\ntype TypeCtaLink = {\n ctaUrl: string | null;\n ctaText: string | null;\n};\n\ntype TypeNavRow = TypeSearchLink &\n TypeCtaLink & {\n utilityRow?: HTMLElement | null;\n navItems?: HTMLElement[];\n };\n\ntype TypeHeaderRequirements = TypeLogoRequirments & TypeNavRow;\n\nconst ANIMATION_TIME = 500;\n\nconst ATTRIBUTE_STICKY = 'data-sticky';\nconst ATTRIBUTE_CTA = 'data-cta';\n\nconst IS_STICKY = `[${ATTRIBUTE_STICKY}=\"true\"]`;\nconst IS_CTA = `[${ATTRIBUTE_CTA}=\"true\"]`;\n\nconst ELEMENT_HEADER_DECLARATION = 'element-header-declaration';\nconst ELEMENT_HEADER_CONTAINTER = 'element-header-container';\nconst ELEMENT_HEADER_WRAPPER = 'element-header-wrapper';\nconst ELEMENT_HEADER_LOGO_COLUMN = 'element-header-logo-column';\nconst ELEMENT_HEADER_NAVIGATION_COLUMN = 'element-header-navigation-column';\nconst ELEMENT_HEADER_LOGO = 'element-header-logo';\nconst ELEMENT_HEADER_MENU_BUTTON = 'element-header-menu-button';\nconst ELEMENT_HEADER_MENU_CTA = 'element-header-menu-cta';\nconst ELEMENT_HEADER_MENU_SEARCH = 'element-header-menu-search';\nconst ELEMENT_HEADER_NAVIGATION_ROW = 'element-header-navigation-row';\nconst ELEMENT_HEADER_UTILITY_ROW = 'element-header-utility-row';\n\nconst OVERWRITE_STICKY_CONTAINER = `.${ELEMENT_HEADER_CONTAINTER}${IS_STICKY}`;\nconst OVERWRITE_STICKY_LOGO = `${OVERWRITE_STICKY_CONTAINER} .${ELEMENT_HEADER_LOGO}`;\nconst OVERWRITE_CTA_WRAPPER = `.${ELEMENT_HEADER_WRAPPER}${IS_CTA}`;\nconst OVERWRITE_CTA_WRAPPER_NAV_ROW = `${OVERWRITE_CTA_WRAPPER} .${ELEMENT_HEADER_NAVIGATION_ROW}`;\nconst OVERWRITE_CTA_WRAPPER_CTA = `${OVERWRITE_CTA_WRAPPER} .${ELEMENT_HEADER_MENU_CTA}`;\n\nconst OverwriteStickyStyles = `\n ${OVERWRITE_STICKY_CONTAINER} {\n padding: ${token.spacing.xs} 0;\n }\n\n .${ELEMENT_HEADER_WRAPPER} {\n align-items: center;\n }\n\n ${OVERWRITE_STICKY_LOGO} img {\n max-height: 30px;\n }\n`;\n\nconst CtaStyles = `\n .${ELEMENT_HEADER_MENU_CTA} {\n color: ${token.color.white};\n font-weight: ${token.font.weight.bold};\n font-size: ${token.font.size.sm};\n padding: ${token.spacing.xs};\n background-color: ${token.color.red};\n transition: background .5s;\n white-space: nowrap;\n }\n\n .${ELEMENT_HEADER_MENU_CTA}:hover,\n .${ELEMENT_HEADER_MENU_CTA}:focus {\n background-color: ${token.color.redDark};\n }\n\n ${OVERWRITE_CTA_WRAPPER_CTA} {\n margin-top: -${token.spacing.min};\n }\n`;\n\nconst NavigationColumnStyles = `\n @media (max-width: 1240px) {\n .${ELEMENT_HEADER_NAVIGATION_COLUMN} {\n display: none;\n }\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} {\n display: grid;\n grid-auto-flow: column;\n }\n\n ${OVERWRITE_CTA_WRAPPER_NAV_ROW} {\n padding-top: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} > * {\n display: block;\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} > *:not(:first-child) {\n margin-left: ${token.spacing.md};\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} svg {\n width: 24px;\n height: 24px;\n fill: ${token.color.black};\n }\n\n .${ELEMENT_HEADER_UTILITY_ROW} {\n display: flex;\n justify-content: flex-end;\n margin-bottom: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_UTILITY_ROW} ::slotted(*) {\n display: flex;\n justify-content: flex-end;\n gap: ${token.spacing.md};\n }\n`;\n\nconst LogoColumnStyles = `\n .${ELEMENT_HEADER_LOGO_COLUMN} {\n align-items: center;\n display: flex;\n justify-content: flex-start;\n position: relative;\n width: 100%;\n max-width: 400px;\n }\n\n .${ELEMENT_HEADER_MENU_BUTTON} {\n border-right: 1px solid ${token.color.gray.light};\n padding-right: ${token.spacing.min};\n margin-right: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_LOGO} {\n display: grid;\n justify-content: flex-start;\n max-width: 350px;\n }\n\n .${ELEMENT_HEADER_LOGO}:has(img[src*=\".svg\"]) img {\n height: 240px;\n }\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}`]: typography.sans.larger,\n },\n })}\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO} *`]: typography.sans.larger,\n },\n })}\n\n .${ELEMENT_HEADER_LOGO},\n .${ELEMENT_HEADER_LOGO} * {\n line-height: 1.05em;\n width: 100%;\n }\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}[size=\"large\"]`]: typography.sans.extraLarge,\n },\n })}\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}[size=\"large\"] *`]: typography.sans.extraLarge,\n },\n })}\n\n .${ELEMENT_HEADER_LOGO},\n .${ELEMENT_HEADER_LOGO} * {\n font-weight: 700;\n }\n\n .${ELEMENT_HEADER_LOGO} img {\n width: 100%;\n max-height: 48px;\n max-width: 190px;\n }\n\n @media (min-width: ${token.media.breakpoints.tablet.min}) {\n .${ELEMENT_HEADER_LOGO} img {\n max-width: 240px;\n }\n }\n`;\n\nconst WrapperStyles = `\n .${ELEMENT_HEADER_WRAPPER} {\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n gap: ${token.spacing.lg};\n z-index: 999;\n }\n`;\n\nconst STYLES_NAVIGATION_HEADER = `\n .${ELEMENT_HEADER_CONTAINTER} {\n background-color: ${token.color.white};\n display: block;\n padding: ${token.spacing.md} 0;\n position: relative;\n transition: padding ${ANIMATION_TIME}ms;\n }\n\n ${WrapperStyles}\n ${LogoColumnStyles}\n ${NavigationColumnStyles}\n ${CtaStyles}\n ${OverwriteStickyStyles}\n ${NavigationItem.Styles}\n ${MenuButton.Styles}\n`;\n\nconst CreateSearchLink = ({ searchUrl }: TypeSearchLink) => {\n if (!searchUrl) return null;\n\n const searchLink = document.createElement('a');\n\n searchLink.href = searchUrl;\n searchLink.ariaLabel = 'Visit the search page';\n searchLink.innerHTML = Utility.asset.icon.MAGNIFY_GLASS;\n searchLink.classList.add(ELEMENT_HEADER_MENU_SEARCH);\n\n return searchLink;\n};\n\nconst CreateCtaLink = ({ ctaUrl, ctaText }: TypeCtaLink) => {\n if (!ctaUrl || !ctaText) return null;\n\n const cta = document.createElement('a');\n\n cta.innerHTML = ctaText;\n cta.setAttribute('target', '_blank');\n cta.setAttribute('href', ctaUrl);\n cta.classList.add(ELEMENT_HEADER_MENU_CTA);\n\n return cta;\n};\n\nconst CreateNavigationColumn = ({\n utilityRow,\n navItems,\n searchUrl,\n ctaText,\n ctaUrl,\n}: TypeNavRow) => {\n if (!navItems) return;\n\n const navColumnContainer = document.createElement('div');\n const utilityRowContainer = document.createElement('div');\n const navRowContainer = document.createElement('div');\n const searchLink = CreateSearchLink({\n searchUrl,\n });\n const ctaLink = CreateCtaLink({ ctaText, ctaUrl });\n\n if (utilityRow) {\n utilityRowContainer.classList.add(ELEMENT_HEADER_UTILITY_ROW);\n utilityRowContainer.appendChild(utilityRow);\n navColumnContainer.appendChild(utilityRowContainer);\n }\n\n navRowContainer.classList.add(ELEMENT_HEADER_NAVIGATION_ROW);\n\n navItems.forEach((item) => {\n navRowContainer.appendChild(item);\n });\n if (searchLink) navRowContainer.appendChild(searchLink);\n if (ctaLink) navRowContainer.appendChild(ctaLink);\n\n navColumnContainer.classList.add(ELEMENT_HEADER_NAVIGATION_COLUMN);\n navColumnContainer.appendChild(navRowContainer);\n\n return navColumnContainer;\n};\n\nconst CreateLogoColumn = ({ logo, eventOpen }: TypeLogoRequirments) => {\n const container = document.createElement('div');\n\n if (eventOpen) {\n const menuButton = MenuButton.CreateElement({ eventOpen });\n menuButton.classList.add(ELEMENT_HEADER_MENU_BUTTON);\n container.appendChild(menuButton);\n }\n\n if (logo) {\n const childrenText = Array.from(logo.children).reduce((acc, child) => {\n if (child.nodeName === 'IMG') return acc;\n\n if (child.textContent) {\n return acc + child.textContent.length;\n }\n\n return acc;\n }, 0);\n logo.classList.add(ELEMENT_HEADER_LOGO);\n\n if (childrenText < 30) {\n logo.setAttribute('size', 'large');\n }\n\n container.appendChild(logo);\n }\n container.classList.add(ELEMENT_HEADER_LOGO_COLUMN);\n return container;\n};\n\nconst CreateNavigationHeader = (props: TypeHeaderRequirements) => {\n const { ctaUrl, ctaText } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const wrapper = document.createElement('div');\n const logoColumn = CreateLogoColumn(props);\n const navigationColumn = CreateNavigationColumn(props);\n const eventSticky = ({ isSticky }: { isSticky: boolean }) => {\n const utility = container.querySelector(\n `.${ELEMENT_HEADER_UTILITY_ROW}`,\n ) as HTMLDivElement;\n\n if (isSticky && isElementSticky) return;\n\n if (isSticky) {\n isElementSticky = true;\n container.setAttribute(ATTRIBUTE_STICKY, 'true');\n\n if (utility) {\n utility.style.display = 'none';\n }\n }\n if (!isSticky) {\n isElementSticky = false;\n container.removeAttribute(ATTRIBUTE_STICKY);\n\n if (utility) {\n utility.style.display = 'block';\n }\n }\n };\n let isElementSticky = false;\n\n wrapper.classList.add(ELEMENT_HEADER_WRAPPER);\n wrapper.appendChild(logoColumn);\n\n if (navigationColumn) wrapper.appendChild(navigationColumn);\n if (ctaUrl && ctaText) wrapper.setAttribute(ATTRIBUTE_CTA, 'true');\n\n container.appendChild(wrapper);\n container.classList.add(ELEMENT_HEADER_CONTAINTER);\n\n declaration.classList.add(ELEMENT_HEADER_DECLARATION);\n declaration.appendChild(container);\n\n return {\n element: declaration,\n events: {\n sticky: eventSticky,\n },\n };\n};\n\nexport default {\n CreateElement: CreateNavigationHeader,\n Styles: STYLES_NAVIGATION_HEADER,\n};\n"],"names":["Utility.theme.convertJSSObjectToStyles","Utility.asset.icon.MAGNIFY_GLASS"],"mappings":"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"}
1
+ {"version":3,"file":"header.mjs","sources":["../../../source/composite/navigation/header.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport { jssToCSS } from '@universityofmaryland/web-utilities-library/styles';\nimport { search as iconSearch } from '@universityofmaryland/web-icons-library/search';\nimport MenuButton from './elements/menu-button';\nimport NavigationItem from './elements/item';\n\ntype TypeLogoRequirments = {\n logo?: HTMLElement | null;\n eventOpen?: () => void;\n};\n\ntype TypeSearchLink = {\n searchUrl: string | null;\n};\n\ntype TypeCtaLink = {\n ctaUrl: string | null;\n ctaText: string | null;\n};\n\ntype TypeNavRow = TypeSearchLink &\n TypeCtaLink & {\n utilityRow?: HTMLElement | null;\n navItems?: HTMLElement[];\n };\n\ntype TypeHeaderRequirements = TypeLogoRequirments & TypeNavRow;\n\nconst ANIMATION_TIME = 500;\n\nconst ATTRIBUTE_STICKY = 'data-sticky';\nconst ATTRIBUTE_CTA = 'data-cta';\n\nconst IS_STICKY = `[${ATTRIBUTE_STICKY}=\"true\"]`;\nconst IS_CTA = `[${ATTRIBUTE_CTA}=\"true\"]`;\n\nconst ELEMENT_HEADER_DECLARATION = 'element-header-declaration';\nconst ELEMENT_HEADER_CONTAINTER = 'element-header-container';\nconst ELEMENT_HEADER_WRAPPER = 'element-header-wrapper';\nconst ELEMENT_HEADER_LOGO_COLUMN = 'element-header-logo-column';\nconst ELEMENT_HEADER_NAVIGATION_COLUMN = 'element-header-navigation-column';\nconst ELEMENT_HEADER_LOGO = 'element-header-logo';\nconst ELEMENT_HEADER_MENU_BUTTON = 'element-header-menu-button';\nconst ELEMENT_HEADER_MENU_CTA = 'element-header-menu-cta';\nconst ELEMENT_HEADER_MENU_SEARCH = 'element-header-menu-search';\nconst ELEMENT_HEADER_NAVIGATION_ROW = 'element-header-navigation-row';\nconst ELEMENT_HEADER_UTILITY_ROW = 'element-header-utility-row';\n\nconst OVERWRITE_STICKY_CONTAINER = `.${ELEMENT_HEADER_CONTAINTER}${IS_STICKY}`;\nconst OVERWRITE_STICKY_LOGO = `${OVERWRITE_STICKY_CONTAINER} .${ELEMENT_HEADER_LOGO}`;\nconst OVERWRITE_CTA_WRAPPER = `.${ELEMENT_HEADER_WRAPPER}${IS_CTA}`;\nconst OVERWRITE_CTA_WRAPPER_NAV_ROW = `${OVERWRITE_CTA_WRAPPER} .${ELEMENT_HEADER_NAVIGATION_ROW}`;\nconst OVERWRITE_CTA_WRAPPER_CTA = `${OVERWRITE_CTA_WRAPPER} .${ELEMENT_HEADER_MENU_CTA}`;\n\nconst OverwriteStickyStyles = `\n ${OVERWRITE_STICKY_CONTAINER} {\n padding: ${token.spacing.xs} 0;\n }\n\n .${ELEMENT_HEADER_WRAPPER} {\n align-items: center;\n }\n\n ${OVERWRITE_STICKY_LOGO} img {\n max-height: 30px;\n }\n`;\n\nconst CtaStyles = `\n .${ELEMENT_HEADER_MENU_CTA} {\n color: ${token.color.white};\n font-weight: ${token.font.weight.bold};\n font-size: ${token.font.size.sm};\n padding: ${token.spacing.xs};\n background-color: ${token.color.red};\n transition: background .5s;\n white-space: nowrap;\n }\n\n .${ELEMENT_HEADER_MENU_CTA}:hover,\n .${ELEMENT_HEADER_MENU_CTA}:focus {\n background-color: ${token.color.redDark};\n }\n\n ${OVERWRITE_CTA_WRAPPER_CTA} {\n margin-top: -${token.spacing.min};\n }\n`;\n\nconst NavigationColumnStyles = `\n @media (max-width: 1240px) {\n .${ELEMENT_HEADER_NAVIGATION_COLUMN} {\n display: none;\n }\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} {\n display: grid;\n grid-auto-flow: column;\n }\n\n ${OVERWRITE_CTA_WRAPPER_NAV_ROW} {\n padding-top: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} > * {\n display: block;\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} > *:not(:first-child) {\n margin-left: ${token.spacing.md};\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} svg {\n width: 24px;\n height: 24px;\n fill: ${token.color.black};\n }\n\n .${ELEMENT_HEADER_UTILITY_ROW} {\n display: flex;\n justify-content: flex-end;\n margin-bottom: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_UTILITY_ROW} ::slotted(*) {\n display: flex;\n justify-content: flex-end;\n gap: ${token.spacing.md};\n }\n`;\n\nconst LogoColumnStyles = `\n .${ELEMENT_HEADER_LOGO_COLUMN} {\n align-items: center;\n display: flex;\n justify-content: flex-start;\n position: relative;\n width: 100%;\n max-width: 400px;\n }\n\n .${ELEMENT_HEADER_MENU_BUTTON} {\n border-right: 1px solid ${token.color.gray.light};\n padding-right: ${token.spacing.min};\n margin-right: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_LOGO} {\n display: grid;\n justify-content: flex-start;\n max-width: 350px;\n }\n\n .${ELEMENT_HEADER_LOGO}:has(img[src*=\".svg\"]) img {\n height: 240px;\n }\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}`]: typography.sans.larger,\n },\n })}\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO} *`]: typography.sans.larger,\n },\n })}\n\n .${ELEMENT_HEADER_LOGO},\n .${ELEMENT_HEADER_LOGO} * {\n line-height: 1.05em;\n width: 100%;\n }\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}[size=\"large\"]`]: typography.sans.extraLarge,\n },\n })}\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}[size=\"large\"] *`]: typography.sans.extraLarge,\n },\n })}\n\n .${ELEMENT_HEADER_LOGO},\n .${ELEMENT_HEADER_LOGO} * {\n font-weight: 700;\n }\n\n .${ELEMENT_HEADER_LOGO} img {\n width: 100%;\n max-height: 48px;\n max-width: 190px;\n }\n\n @media (min-width: ${token.media.breakpoints.tablet.min}) {\n .${ELEMENT_HEADER_LOGO} img {\n max-width: 240px;\n }\n }\n`;\n\nconst WrapperStyles = `\n .${ELEMENT_HEADER_WRAPPER} {\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n gap: ${token.spacing.lg};\n z-index: 999;\n }\n`;\n\nconst STYLES_NAVIGATION_HEADER = `\n .${ELEMENT_HEADER_CONTAINTER} {\n background-color: ${token.color.white};\n display: block;\n padding: ${token.spacing.md} 0;\n position: relative;\n transition: padding ${ANIMATION_TIME}ms;\n }\n\n ${WrapperStyles}\n ${LogoColumnStyles}\n ${NavigationColumnStyles}\n ${CtaStyles}\n ${OverwriteStickyStyles}\n ${NavigationItem.Styles}\n ${MenuButton.Styles}\n`;\n\nconst CreateSearchLink = ({ searchUrl }: TypeSearchLink) => {\n if (!searchUrl) return null;\n\n const searchLink = document.createElement('a');\n\n searchLink.href = searchUrl;\n searchLink.ariaLabel = 'Visit the search page';\n searchLink.innerHTML = iconSearch;\n searchLink.classList.add(ELEMENT_HEADER_MENU_SEARCH);\n\n return searchLink;\n};\n\nconst CreateCtaLink = ({ ctaUrl, ctaText }: TypeCtaLink) => {\n if (!ctaUrl || !ctaText) return null;\n\n const cta = document.createElement('a');\n\n cta.innerHTML = ctaText;\n cta.setAttribute('target', '_blank');\n cta.setAttribute('href', ctaUrl);\n cta.classList.add(ELEMENT_HEADER_MENU_CTA);\n\n return cta;\n};\n\nconst CreateNavigationColumn = ({\n utilityRow,\n navItems,\n searchUrl,\n ctaText,\n ctaUrl,\n}: TypeNavRow) => {\n if (!navItems) return;\n\n const navColumnContainer = document.createElement('div');\n const utilityRowContainer = document.createElement('div');\n const navRowContainer = document.createElement('div');\n const searchLink = CreateSearchLink({\n searchUrl,\n });\n const ctaLink = CreateCtaLink({ ctaText, ctaUrl });\n\n if (utilityRow) {\n utilityRowContainer.classList.add(ELEMENT_HEADER_UTILITY_ROW);\n utilityRowContainer.appendChild(utilityRow);\n navColumnContainer.appendChild(utilityRowContainer);\n }\n\n navRowContainer.classList.add(ELEMENT_HEADER_NAVIGATION_ROW);\n\n navItems.forEach((item) => {\n navRowContainer.appendChild(item);\n });\n if (searchLink) navRowContainer.appendChild(searchLink);\n if (ctaLink) navRowContainer.appendChild(ctaLink);\n\n navColumnContainer.classList.add(ELEMENT_HEADER_NAVIGATION_COLUMN);\n navColumnContainer.appendChild(navRowContainer);\n\n return navColumnContainer;\n};\n\nconst CreateLogoColumn = ({ logo, eventOpen }: TypeLogoRequirments) => {\n const container = document.createElement('div');\n\n if (eventOpen) {\n const menuButton = MenuButton.CreateElement({ eventOpen });\n menuButton.classList.add(ELEMENT_HEADER_MENU_BUTTON);\n container.appendChild(menuButton);\n }\n\n if (logo) {\n const childrenText = Array.from(logo.children).reduce((acc, child) => {\n if (child.nodeName === 'IMG') return acc;\n\n if (child.textContent) {\n return acc + child.textContent.length;\n }\n\n return acc;\n }, 0);\n logo.classList.add(ELEMENT_HEADER_LOGO);\n\n if (childrenText < 30) {\n logo.setAttribute('size', 'large');\n }\n\n container.appendChild(logo);\n }\n container.classList.add(ELEMENT_HEADER_LOGO_COLUMN);\n return container;\n};\n\nconst CreateNavigationHeader = (props: TypeHeaderRequirements) => {\n const { ctaUrl, ctaText } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const wrapper = document.createElement('div');\n const logoColumn = CreateLogoColumn(props);\n const navigationColumn = CreateNavigationColumn(props);\n const eventSticky = ({ isSticky }: { isSticky: boolean }) => {\n const utility = container.querySelector(\n `.${ELEMENT_HEADER_UTILITY_ROW}`,\n ) as HTMLDivElement;\n\n if (isSticky && isElementSticky) return;\n\n if (isSticky) {\n isElementSticky = true;\n container.setAttribute(ATTRIBUTE_STICKY, 'true');\n\n if (utility) {\n utility.style.display = 'none';\n }\n }\n if (!isSticky) {\n isElementSticky = false;\n container.removeAttribute(ATTRIBUTE_STICKY);\n\n if (utility) {\n utility.style.display = 'block';\n }\n }\n };\n let isElementSticky = false;\n\n wrapper.classList.add(ELEMENT_HEADER_WRAPPER);\n wrapper.appendChild(logoColumn);\n\n if (navigationColumn) wrapper.appendChild(navigationColumn);\n if (ctaUrl && ctaText) wrapper.setAttribute(ATTRIBUTE_CTA, 'true');\n\n container.appendChild(wrapper);\n container.classList.add(ELEMENT_HEADER_CONTAINTER);\n\n declaration.classList.add(ELEMENT_HEADER_DECLARATION);\n declaration.appendChild(container);\n\n return {\n element: declaration,\n events: {\n sticky: eventSticky,\n },\n };\n};\n\nexport default {\n CreateElement: CreateNavigationHeader,\n Styles: STYLES_NAVIGATION_HEADER,\n};\n"],"names":["iconSearch"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../../source/composite/navigation/utility/alert.ts"],"names":[],"mappings":"AA0BA,KAAK,UAAU,GAAG;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AA6BF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsClB,CAAC;AAgKX,eAAO,MAAM,gBAAgB,QAY5B,CAAC;AAuMF,eAAO,MAAM,cAAc,GAAU,cAAc,UAAU;;SAoC5D,CAAC"}
1
+ {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../../source/composite/navigation/utility/alert.ts"],"names":[],"mappings":"AA4BA,KAAK,UAAU,GAAG;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AA2BF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsClB,CAAC;AAgKX,eAAO,MAAM,gBAAgB,QAY5B,CAAC;AAuMF,eAAO,MAAM,cAAc,GAAU,cAAc,UAAU;;SAoC5D,CAAC"}
@@ -1,21 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const Styles = require("@universityofmaryland/web-styles-library");
4
+ const network = require("@universityofmaryland/web-utilities-library/network");
5
+ const styles = require("@universityofmaryland/web-utilities-library/styles");
6
+ const controls = require("@universityofmaryland/web-icons-library/controls");
4
7
  const text = require("../../../atomic/actions/text.js");
8
+ require("@universityofmaryland/web-styles-library/token");
9
+ require("@universityofmaryland/web-icons-library/files");
10
+ require("@universityofmaryland/web-icons-library/arrows");
5
11
  require("../../../model/modifiers/index.js");
6
12
  require("../../../model/elements/headline.js");
7
- const icons = require("../../../utilities/assets/icons.js");
8
- const index$1 = require("../../../utilities/network/index.js");
9
- const index = require("../../../utilities/theme/index.js");
10
13
  require("../../../atomic/animations/actions/indicator.js");
11
14
  require("../../../atomic/animations/brand/chevron-scroll.js");
12
15
  require("../../../atomic/animations/brand/card-stack.js");
16
+ require("@universityofmaryland/web-utilities-library/performance");
17
+ require("@universityofmaryland/web-utilities-library/accessibility");
18
+ require("@universityofmaryland/web-icons-library/location");
19
+ require("@universityofmaryland/web-icons-library/calendar");
13
20
  require("../../../atomic/layout/block/stacked.js");
14
21
  require("../../../atomic/layout/overlay/modal.js");
15
22
  require("../../../atomic/layout/person/columns.js");
23
+ require("@universityofmaryland/web-icons-library/communication");
24
+ require("@universityofmaryland/web-icons-library/social");
16
25
  require("../../../atomic/text-lockup/date.js");
17
26
  require("../../../atomic/text-lockup/small.js");
18
- const { FetchGraphQL } = index$1;
27
+ require("@universityofmaryland/web-styles-library/typography");
19
28
  const QUERY = `
20
29
  query CampusAlertsQuery {
21
30
  entries: entries(
@@ -142,7 +151,7 @@ const CloseButtonStyles = `
142
151
  }
143
152
  `;
144
153
  const TextStyles = `
145
- ${index.convertJSSObjectToStyles({
154
+ ${styles.jssToCSS({
146
155
  styleObj: {
147
156
  [`${ALERT_TITLE}`]: Styles.typography.sans.large
148
157
  }
@@ -156,7 +165,7 @@ const TextStyles = `
156
165
  margin-top: ${Styles.token.spacing.sm};
157
166
  }
158
167
 
159
- ${index.convertJSSObjectToStyles({
168
+ ${styles.jssToCSS({
160
169
  styleObj: {
161
170
  [`${ALERT_TEXT}`]: Styles.element.text.rich.advanced
162
171
  }
@@ -191,7 +200,7 @@ const WrapperStyles = `
191
200
  }
192
201
  `;
193
202
  const LockStyles = `
194
- ${index.convertJSSObjectToStyles({
203
+ ${styles.jssToCSS({
195
204
  styleObj: {
196
205
  [`${LOCK}`]: Styles.layout.space.horizontal.full
197
206
  }
@@ -290,7 +299,7 @@ const createCloseButton = (container) => {
290
299
  const button = createElement("button", ELEMENTS2.CLOSE_BUTTON, {
291
300
  "aria-label": "remove alert"
292
301
  });
293
- button.innerHTML = icons.X;
302
+ button.innerHTML = controls.close_large;
294
303
  button.addEventListener("click", () => {
295
304
  const cachedAlert = getStoredValue(
296
305
  ALERT_CONSTANTS.STORAGE_KEYS.ALERT
@@ -365,7 +374,7 @@ const fetchAlerts = async ({
365
374
  }) => {
366
375
  try {
367
376
  const url = alertUrl || ALERT_CONSTANTS.URLS.DEFAULT;
368
- return await FetchGraphQL({
377
+ return await network.fetchGraphQL({
369
378
  query: QUERY,
370
379
  url,
371
380
  token: "VIDnMeNYHTrLvWPtPpK5MNpjuv5WmmhU"
@@ -1 +1 @@
1
- {"version":3,"file":"alert.js","sources":["../../../../source/composite/navigation/utility/alert.ts"],"sourcesContent":["import {\n element,\n layout,\n token,\n typography,\n} from '@universityofmaryland/web-styles-library';\nimport { actions } from 'atomic';\nimport * as Utility from 'utilities';\n\ntype AlertData = {\n id: string;\n type: string;\n title: string;\n headline?: string;\n text: string;\n ctaUrl: string;\n ctaText?: string;\n hidden?: boolean;\n};\n\ntype AlertResponse = {\n data: {\n entries: AlertData[];\n };\n};\n\ntype AlertProps = {\n alertUrl?: string | null;\n};\n\nexport type TypeAlertProps = {\n alertUrl?: string | null;\n};\n\ntype ElementAttributes = Record<string, string>;\n\ntype CacheCheckResult = {\n shouldCheck: boolean;\n cachedData: AlertData | null;\n};\n\nconst { FetchGraphQL } = Utility.network;\n\nconst QUERY = `\n query CampusAlertsQuery {\n entries: entries(\n limit: 1\n type: \"mainElementsCampusAlert\"\n ) {\n id: uid\n type: optionsType\n headline\n title\n text\n ctaUrl: cta\n ctaText\n }\n }\n`;\n\nconst ELEMENT_NAME = 'umd-element-nav-alert';\nexport const ALERT_CONSTANTS = {\n URLS: {\n DEFAULT: 'https://umd.edu/api/v2',\n },\n STORAGE_KEYS: {\n ALERT_TIME: 'umd-utility-alert-time',\n ALERT: 'umd-utility-alert',\n ALERT_ID: 'umd-utility-alert-id',\n },\n ELEMENTS: {\n ALERT_ID: 'umd-global-alert',\n DECLARATION: 'umd-element-nav-alert-declaration',\n CONTAINER: 'umd-element-nav-alert-container',\n LOCK: 'umd-element-nav-alert-lock',\n WRAPPER: 'umd-element-nav-alert-wrapper',\n TITLE: 'umd-element-nav-alert-title',\n TEXT: 'umd-element-nav-alert-text',\n CTA: 'umd-element-nav-alert-cta',\n CLOSE_BUTTON: 'umd-element-nav-alert-close',\n },\n ATTRIBUTES: {\n TYPE: 'type',\n },\n TYPES: {\n GENERAL: 'general',\n CLOSED: 'closed',\n OPEN: 'open',\n },\n ANIMATION: {\n SPEED: 800,\n },\n BREAKPOINTS: {\n MEDIUM: 768,\n LARGE: 1024,\n },\n CACHE: {\n DURATION: 60 * 1000, // One minute in milliseconds\n },\n} as const;\n\nconst { ATTRIBUTES, ANIMATION, BREAKPOINTS, ELEMENTS, TYPES } = ALERT_CONSTANTS;\nconst IS_TYPE_GENERAL = `[${ATTRIBUTES.TYPE}=${TYPES.GENERAL}]`;\nconst IS_TYPE_CLOSED = `[${ATTRIBUTES.TYPE}=${TYPES.CLOSED}]`;\n\nconst DECLARATION = `.${ELEMENTS.DECLARATION}`;\nconst CONTAINER = `.${ELEMENTS.CONTAINER}`;\nconst WRAPPER = `.${ELEMENTS.WRAPPER}`;\nconst LOCK = `.${ELEMENTS.LOCK}`;\nconst ALERT_TITLE = `.${ELEMENTS.TITLE}`;\nconst ALERT_TEXT = `.${ELEMENTS.TEXT}`;\nconst CLOSE_BUTTON = `.${ELEMENTS.CLOSE_BUTTON}`;\nconst CTA = `.${ELEMENTS.CTA}`;\n\nconst OVERWRITE_CONTAINER_TYPE_GENERAL = `${CONTAINER}${IS_TYPE_GENERAL}`;\nconst OVERWRITE_CONTAINER_TYPE_CLOSED = `${CONTAINER}${IS_TYPE_CLOSED}`;\n\n// prettier-ignore\nconst OverwriteTypeGeneral = `\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} {\n background-color: ${token.color.black};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} * {\n color: ${token.color.white};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} a:hover,\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} a:focus {\n color: ${token.color.white} !important;\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} ${ALERT_TITLE} {\n color: ${token.color.gold};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} ${CLOSE_BUTTON} > svg {\n fill: ${token.color.white};\n }\n`\n\n// prettier-ignore\nconst OverwriteTypeClosed = `\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} {\n background-color: ${token.color.gold};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} * {\n color: ${token.color.black};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} .${CLOSE_BUTTON} > svg {\n fill: ${token.color.black};\n }\n`\n\n// prettier-ignore\nconst CloseButtonStyles = `\n ${CLOSE_BUTTON} {\n position: absolute;\n top: 30px;\n right: 10px;\n }\n \n @container (max-width: ${BREAKPOINTS.MEDIUM - 1}px) {\n ${CLOSE_BUTTON} {\n top: 25px;\n right: 5px;\n }\n }\n\n ${CLOSE_BUTTON} > svg {\n fill: ${token.color.black};\n width: 24px;\n height: 24px;\n }\n`\n\n// prettier-ignore\nconst TextStyles = `\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`${ALERT_TITLE}`]: typography.sans.large,\n },\n })}\n\n ${ALERT_TITLE} {\n text-transform: uppercase;\n }\n\n ${ALERT_TITLE} + * {\n margin-top: ${token.spacing.sm};\n }\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`${ALERT_TEXT}`]: element.text.rich.advanced,\n },\n })}\n\n ${ALERT_TEXT},\n ${ALERT_TEXT} * {\n font-size: 16px;;\n }\n\n ${ALERT_TEXT} + * {\n margin-top: ${token.spacing.lg};\n }\n\n ${CTA} {\n text-decoration: none;\n }\n`\n\n// prettier-ignore\nconst WrapperStyles = `\n ${WRAPPER} {\n position: relative;\n padding-top: ${token.spacing.md};\n padding-bottom: ${token.spacing.md};\n padding-right: ${token.spacing.lg};\n }\n\n @container (min-width: ${BREAKPOINTS.MEDIUM}px) {\n ${WRAPPER} {\n padding-top: ${token.spacing.lg};\n padding-bottom: ${token.spacing.lg};\n }\n }\n`\n\n// prettier-ignore\nconst LockStyles = `\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`${LOCK}`]: layout.space.horizontal.full,\n },\n })}\n`\n\n// prettier-ignore\nconst ContainerStyles = `\n ${CONTAINER} {\n container: ${ELEMENT_NAME} / inline-size;\n background-color: ${token.color.gray.lighter};\n border-left: 4px solid ${token.color.red};\n transition: height ${ANIMATION.SPEED}ms;\n overflow: hidden;\n position: relative;\n }\n\n @container (min-width: ${BREAKPOINTS.LARGE}px) {\n ${CONTAINER} {\n border-left: 8px solid ${token.color.red};\n }\n }\n`\n\n// prettier-ignore\nexport const STYLES_NAV_ALERT = `\n ${DECLARATION} {\n container: ${ELEMENT_NAME} / inline-size;\n }\n\n ${ContainerStyles}\n ${LockStyles}\n ${WrapperStyles}\n ${TextStyles}\n ${CloseButtonStyles}\n ${OverwriteTypeGeneral}\n ${OverwriteTypeClosed}\n`;\n\n// storage.ts\nconst logStorageError = (operation: string, error: Error): void => {\n console.error(`UMD Component - Alert Storage: ${operation} failed:`, error);\n};\n\nconst getStoredValue = <T>(key: string): T | null => {\n try {\n const value = window.localStorage.getItem(key);\n return value ? JSON.parse(value) : null;\n } catch (error) {\n logStorageError(`Reading ${key}`, error as Error);\n return null;\n }\n};\n\nconst setStoredValue = (key: string, value: unknown): void => {\n try {\n window.localStorage.setItem(key, JSON.stringify(value));\n } catch (error) {\n logStorageError('Saving value', error as Error);\n }\n};\n\nconst clearAlertStorage = (): void => {\n const { STORAGE_KEYS } = ALERT_CONSTANTS;\n window.localStorage.removeItem(STORAGE_KEYS.ALERT_TIME);\n window.localStorage.removeItem(STORAGE_KEYS.ALERT);\n};\n\nconst checkAlertCache = (): CacheCheckResult => {\n const currentTime = new Date().getTime();\n const { STORAGE_KEYS, CACHE } = ALERT_CONSTANTS;\n\n try {\n const alertTimeStr = getStoredValue<string>(STORAGE_KEYS.ALERT_TIME);\n const cachedResponse = getStoredValue<AlertData>(STORAGE_KEYS.ALERT);\n\n if (!alertTimeStr) {\n setStoredValue(STORAGE_KEYS.ALERT_TIME, currentTime.toString());\n return { shouldCheck: true, cachedData: null };\n }\n\n const alertTime = parseInt(alertTimeStr, 10);\n const timeElapsed = currentTime - alertTime;\n\n if (timeElapsed < CACHE.DURATION && cachedResponse) {\n return { shouldCheck: false, cachedData: cachedResponse };\n }\n\n setStoredValue(STORAGE_KEYS.ALERT_TIME, currentTime.toString());\n return { shouldCheck: true, cachedData: null };\n } catch (error) {\n console.error('Cache check failed:', error);\n return { shouldCheck: true, cachedData: null };\n }\n};\n\nconst updateAlertCache = (alert: AlertData): void => {\n setStoredValue(ALERT_CONSTANTS.STORAGE_KEYS.ALERT, alert);\n};\n\nconst createElement = (\n tag: string,\n className?: string,\n attributes?: ElementAttributes,\n): HTMLElement => {\n const element = document.createElement(tag);\n if (className) element.classList.add(className);\n if (attributes) {\n Object.entries(attributes).forEach(([key, value]) => {\n element.setAttribute(key, value);\n });\n }\n return element;\n};\n\nconst createCloseButton = (container: HTMLElement): HTMLButtonElement => {\n const { ELEMENTS, ANIMATION } = ALERT_CONSTANTS;\n const button = createElement('button', ELEMENTS.CLOSE_BUTTON, {\n 'aria-label': 'remove alert',\n }) as HTMLButtonElement;\n\n button.innerHTML = Utility.asset.icon.X;\n button.addEventListener('click', () => {\n const cachedAlert = getStoredValue<AlertData>(\n ALERT_CONSTANTS.STORAGE_KEYS.ALERT,\n );\n if (cachedAlert) {\n // Animate close\n container.style.height = `${container.offsetHeight}px`;\n container.style.transition = `height ${ANIMATION.SPEED}ms`;\n\n updateAlertCache({ ...cachedAlert, hidden: true });\n\n setTimeout(() => {\n container.style.height = '0px';\n }, 100);\n\n setTimeout(() => {\n container.remove();\n }, ANIMATION.SPEED + 100);\n }\n });\n\n return button;\n};\n\nconst createCTAElement = ({\n ctaText,\n ctaUrl,\n}: {\n ctaText: string;\n ctaUrl: string;\n}) => {\n const link = createElement('a', ALERT_CONSTANTS.ELEMENTS.CTA, {\n href: ctaUrl,\n rel: 'noopener noreferrer',\n target: '_blank',\n });\n link.innerHTML = ctaText;\n\n return actions.options({\n element: link,\n isTypeSecondary: true,\n });\n};\n\nconst createAlertContent = (\n alert: AlertData,\n container: HTMLElement,\n): HTMLElement => {\n const { ELEMENTS } = ALERT_CONSTANTS;\n const wrapper = createElement('div', ELEMENTS.WRAPPER);\n const lock = createElement('div', ELEMENTS.LOCK);\n const headlineText = alert.headline || alert.title;\n\n // Create elements\n const title = createElement('p', ELEMENTS.TITLE);\n title.innerHTML = headlineText;\n\n const closeButton = createCloseButton(container);\n\n wrapper.append(closeButton, title);\n\n if (alert.text) {\n const message = createElement('div', ELEMENTS.TEXT);\n message.innerHTML = alert.text;\n wrapper.append(closeButton, title, message);\n }\n\n // Add CTA if exists\n if (alert.ctaUrl) {\n const cta = createCTAElement({\n ctaText: alert.ctaText || headlineText,\n ctaUrl: alert.ctaUrl,\n });\n\n wrapper.appendChild(cta.element);\n }\n\n lock.appendChild(wrapper);\n return lock;\n};\n\nconst createAlertComponent = (alert: AlertData): HTMLElement => {\n const { ELEMENTS, ATTRIBUTES } = ALERT_CONSTANTS;\n\n const declaration = createElement('div', ELEMENTS.DECLARATION);\n const container = createElement('div', ELEMENTS.CONTAINER, {\n id: ELEMENTS.ALERT_ID,\n [ATTRIBUTES.TYPE]: alert.type,\n });\n\n const content = createAlertContent(alert, container);\n container.appendChild(content);\n declaration.appendChild(container);\n\n return declaration;\n};\n\nconst fetchAlerts = async ({\n alertUrl,\n}: AlertProps): Promise<AlertResponse | null> => {\n try {\n const url = alertUrl || ALERT_CONSTANTS.URLS.DEFAULT;\n\n return await FetchGraphQL({\n query: QUERY,\n url,\n token: 'VIDnMeNYHTrLvWPtPpK5MNpjuv5WmmhU',\n });\n } catch (error) {\n console.error('Failed to fetch alerts:', error);\n return null;\n }\n};\n\nexport const createNavAlert = async ({ alertUrl }: AlertProps) => {\n const alertCache = checkAlertCache();\n\n // Show cached alert if valid\n if (\n !alertCache.shouldCheck &&\n alertCache.cachedData &&\n !alertCache.cachedData.hidden\n ) {\n return { element: createAlertComponent(alertCache.cachedData) };\n }\n\n // Fetch new alerts\n const response = await fetchAlerts({ alertUrl });\n if (!response?.data?.entries[0]) {\n clearAlertStorage();\n return null;\n }\n\n const alert = response.data?.entries[0];\n const cachedAlert = getStoredValue<AlertData>(\n ALERT_CONSTANTS.STORAGE_KEYS.ALERT,\n );\n\n // Handle alert updates\n if (cachedAlert?.id === alert.id) {\n if (!cachedAlert.hidden && alertCache.shouldCheck) {\n return { element: createAlertComponent(cachedAlert) };\n }\n } else {\n clearAlertStorage();\n updateAlertCache(alert);\n return { element: createAlertComponent(alert) };\n }\n\n return null;\n};\n"],"names":["Utility.network","token","Utility.theme.convertJSSObjectToStyles","typography","element","layout","ELEMENTS","ANIMATION","Utility.asset.icon.X","actions.options","ATTRIBUTES"],"mappings":"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"}
1
+ {"version":3,"file":"alert.js","sources":["../../../../source/composite/navigation/utility/alert.ts"],"sourcesContent":["import {\n element,\n layout,\n token,\n typography,\n} from '@universityofmaryland/web-styles-library';\nimport { fetchGraphQL } from '@universityofmaryland/web-utilities-library/network';\nimport { jssToCSS } from '@universityofmaryland/web-utilities-library/styles';\nimport { close_large as iconCloseLarge } from '@universityofmaryland/web-icons-library/controls';\nimport { actions } from 'atomic';\n\ntype AlertData = {\n id: string;\n type: string;\n title: string;\n headline?: string;\n text: string;\n ctaUrl: string;\n ctaText?: string;\n hidden?: boolean;\n};\n\ntype AlertResponse = {\n data: {\n entries: AlertData[];\n };\n};\n\ntype AlertProps = {\n alertUrl?: string | null;\n};\n\nexport type TypeAlertProps = {\n alertUrl?: string | null;\n};\n\ntype ElementAttributes = Record<string, string>;\n\ntype CacheCheckResult = {\n shouldCheck: boolean;\n cachedData: AlertData | null;\n};\n\nconst QUERY = `\n query CampusAlertsQuery {\n entries: entries(\n limit: 1\n type: \"mainElementsCampusAlert\"\n ) {\n id: uid\n type: optionsType\n headline\n title\n text\n ctaUrl: cta\n ctaText\n }\n }\n`;\n\nconst ELEMENT_NAME = 'umd-element-nav-alert';\nexport const ALERT_CONSTANTS = {\n URLS: {\n DEFAULT: 'https://umd.edu/api/v2',\n },\n STORAGE_KEYS: {\n ALERT_TIME: 'umd-utility-alert-time',\n ALERT: 'umd-utility-alert',\n ALERT_ID: 'umd-utility-alert-id',\n },\n ELEMENTS: {\n ALERT_ID: 'umd-global-alert',\n DECLARATION: 'umd-element-nav-alert-declaration',\n CONTAINER: 'umd-element-nav-alert-container',\n LOCK: 'umd-element-nav-alert-lock',\n WRAPPER: 'umd-element-nav-alert-wrapper',\n TITLE: 'umd-element-nav-alert-title',\n TEXT: 'umd-element-nav-alert-text',\n CTA: 'umd-element-nav-alert-cta',\n CLOSE_BUTTON: 'umd-element-nav-alert-close',\n },\n ATTRIBUTES: {\n TYPE: 'type',\n },\n TYPES: {\n GENERAL: 'general',\n CLOSED: 'closed',\n OPEN: 'open',\n },\n ANIMATION: {\n SPEED: 800,\n },\n BREAKPOINTS: {\n MEDIUM: 768,\n LARGE: 1024,\n },\n CACHE: {\n DURATION: 60 * 1000, // One minute in milliseconds\n },\n} as const;\n\nconst { ATTRIBUTES, ANIMATION, BREAKPOINTS, ELEMENTS, TYPES } = ALERT_CONSTANTS;\nconst IS_TYPE_GENERAL = `[${ATTRIBUTES.TYPE}=${TYPES.GENERAL}]`;\nconst IS_TYPE_CLOSED = `[${ATTRIBUTES.TYPE}=${TYPES.CLOSED}]`;\n\nconst DECLARATION = `.${ELEMENTS.DECLARATION}`;\nconst CONTAINER = `.${ELEMENTS.CONTAINER}`;\nconst WRAPPER = `.${ELEMENTS.WRAPPER}`;\nconst LOCK = `.${ELEMENTS.LOCK}`;\nconst ALERT_TITLE = `.${ELEMENTS.TITLE}`;\nconst ALERT_TEXT = `.${ELEMENTS.TEXT}`;\nconst CLOSE_BUTTON = `.${ELEMENTS.CLOSE_BUTTON}`;\nconst CTA = `.${ELEMENTS.CTA}`;\n\nconst OVERWRITE_CONTAINER_TYPE_GENERAL = `${CONTAINER}${IS_TYPE_GENERAL}`;\nconst OVERWRITE_CONTAINER_TYPE_CLOSED = `${CONTAINER}${IS_TYPE_CLOSED}`;\n\n// prettier-ignore\nconst OverwriteTypeGeneral = `\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} {\n background-color: ${token.color.black};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} * {\n color: ${token.color.white};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} a:hover,\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} a:focus {\n color: ${token.color.white} !important;\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} ${ALERT_TITLE} {\n color: ${token.color.gold};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} ${CLOSE_BUTTON} > svg {\n fill: ${token.color.white};\n }\n`\n\n// prettier-ignore\nconst OverwriteTypeClosed = `\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} {\n background-color: ${token.color.gold};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} * {\n color: ${token.color.black};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} .${CLOSE_BUTTON} > svg {\n fill: ${token.color.black};\n }\n`\n\n// prettier-ignore\nconst CloseButtonStyles = `\n ${CLOSE_BUTTON} {\n position: absolute;\n top: 30px;\n right: 10px;\n }\n \n @container (max-width: ${BREAKPOINTS.MEDIUM - 1}px) {\n ${CLOSE_BUTTON} {\n top: 25px;\n right: 5px;\n }\n }\n\n ${CLOSE_BUTTON} > svg {\n fill: ${token.color.black};\n width: 24px;\n height: 24px;\n }\n`\n\n// prettier-ignore\nconst TextStyles = `\n ${jssToCSS({\n styleObj: {\n [`${ALERT_TITLE}`]: typography.sans.large,\n },\n })}\n\n ${ALERT_TITLE} {\n text-transform: uppercase;\n }\n\n ${ALERT_TITLE} + * {\n margin-top: ${token.spacing.sm};\n }\n\n ${jssToCSS({\n styleObj: {\n [`${ALERT_TEXT}`]: element.text.rich.advanced,\n },\n })}\n\n ${ALERT_TEXT},\n ${ALERT_TEXT} * {\n font-size: 16px;;\n }\n\n ${ALERT_TEXT} + * {\n margin-top: ${token.spacing.lg};\n }\n\n ${CTA} {\n text-decoration: none;\n }\n`\n\n// prettier-ignore\nconst WrapperStyles = `\n ${WRAPPER} {\n position: relative;\n padding-top: ${token.spacing.md};\n padding-bottom: ${token.spacing.md};\n padding-right: ${token.spacing.lg};\n }\n\n @container (min-width: ${BREAKPOINTS.MEDIUM}px) {\n ${WRAPPER} {\n padding-top: ${token.spacing.lg};\n padding-bottom: ${token.spacing.lg};\n }\n }\n`\n\n// prettier-ignore\nconst LockStyles = `\n ${jssToCSS({\n styleObj: {\n [`${LOCK}`]: layout.space.horizontal.full,\n },\n })}\n`\n\n// prettier-ignore\nconst ContainerStyles = `\n ${CONTAINER} {\n container: ${ELEMENT_NAME} / inline-size;\n background-color: ${token.color.gray.lighter};\n border-left: 4px solid ${token.color.red};\n transition: height ${ANIMATION.SPEED}ms;\n overflow: hidden;\n position: relative;\n }\n\n @container (min-width: ${BREAKPOINTS.LARGE}px) {\n ${CONTAINER} {\n border-left: 8px solid ${token.color.red};\n }\n }\n`\n\n// prettier-ignore\nexport const STYLES_NAV_ALERT = `\n ${DECLARATION} {\n container: ${ELEMENT_NAME} / inline-size;\n }\n\n ${ContainerStyles}\n ${LockStyles}\n ${WrapperStyles}\n ${TextStyles}\n ${CloseButtonStyles}\n ${OverwriteTypeGeneral}\n ${OverwriteTypeClosed}\n`;\n\n// storage.ts\nconst logStorageError = (operation: string, error: Error): void => {\n console.error(`UMD Component - Alert Storage: ${operation} failed:`, error);\n};\n\nconst getStoredValue = <T>(key: string): T | null => {\n try {\n const value = window.localStorage.getItem(key);\n return value ? JSON.parse(value) : null;\n } catch (error) {\n logStorageError(`Reading ${key}`, error as Error);\n return null;\n }\n};\n\nconst setStoredValue = (key: string, value: unknown): void => {\n try {\n window.localStorage.setItem(key, JSON.stringify(value));\n } catch (error) {\n logStorageError('Saving value', error as Error);\n }\n};\n\nconst clearAlertStorage = (): void => {\n const { STORAGE_KEYS } = ALERT_CONSTANTS;\n window.localStorage.removeItem(STORAGE_KEYS.ALERT_TIME);\n window.localStorage.removeItem(STORAGE_KEYS.ALERT);\n};\n\nconst checkAlertCache = (): CacheCheckResult => {\n const currentTime = new Date().getTime();\n const { STORAGE_KEYS, CACHE } = ALERT_CONSTANTS;\n\n try {\n const alertTimeStr = getStoredValue<string>(STORAGE_KEYS.ALERT_TIME);\n const cachedResponse = getStoredValue<AlertData>(STORAGE_KEYS.ALERT);\n\n if (!alertTimeStr) {\n setStoredValue(STORAGE_KEYS.ALERT_TIME, currentTime.toString());\n return { shouldCheck: true, cachedData: null };\n }\n\n const alertTime = parseInt(alertTimeStr, 10);\n const timeElapsed = currentTime - alertTime;\n\n if (timeElapsed < CACHE.DURATION && cachedResponse) {\n return { shouldCheck: false, cachedData: cachedResponse };\n }\n\n setStoredValue(STORAGE_KEYS.ALERT_TIME, currentTime.toString());\n return { shouldCheck: true, cachedData: null };\n } catch (error) {\n console.error('Cache check failed:', error);\n return { shouldCheck: true, cachedData: null };\n }\n};\n\nconst updateAlertCache = (alert: AlertData): void => {\n setStoredValue(ALERT_CONSTANTS.STORAGE_KEYS.ALERT, alert);\n};\n\nconst createElement = (\n tag: string,\n className?: string,\n attributes?: ElementAttributes,\n): HTMLElement => {\n const element = document.createElement(tag);\n if (className) element.classList.add(className);\n if (attributes) {\n Object.entries(attributes).forEach(([key, value]) => {\n element.setAttribute(key, value);\n });\n }\n return element;\n};\n\nconst createCloseButton = (container: HTMLElement): HTMLButtonElement => {\n const { ELEMENTS, ANIMATION } = ALERT_CONSTANTS;\n const button = createElement('button', ELEMENTS.CLOSE_BUTTON, {\n 'aria-label': 'remove alert',\n }) as HTMLButtonElement;\n\n button.innerHTML = iconCloseLarge;\n button.addEventListener('click', () => {\n const cachedAlert = getStoredValue<AlertData>(\n ALERT_CONSTANTS.STORAGE_KEYS.ALERT,\n );\n if (cachedAlert) {\n // Animate close\n container.style.height = `${container.offsetHeight}px`;\n container.style.transition = `height ${ANIMATION.SPEED}ms`;\n\n updateAlertCache({ ...cachedAlert, hidden: true });\n\n setTimeout(() => {\n container.style.height = '0px';\n }, 100);\n\n setTimeout(() => {\n container.remove();\n }, ANIMATION.SPEED + 100);\n }\n });\n\n return button;\n};\n\nconst createCTAElement = ({\n ctaText,\n ctaUrl,\n}: {\n ctaText: string;\n ctaUrl: string;\n}) => {\n const link = createElement('a', ALERT_CONSTANTS.ELEMENTS.CTA, {\n href: ctaUrl,\n rel: 'noopener noreferrer',\n target: '_blank',\n });\n link.innerHTML = ctaText;\n\n return actions.options({\n element: link,\n isTypeSecondary: true,\n });\n};\n\nconst createAlertContent = (\n alert: AlertData,\n container: HTMLElement,\n): HTMLElement => {\n const { ELEMENTS } = ALERT_CONSTANTS;\n const wrapper = createElement('div', ELEMENTS.WRAPPER);\n const lock = createElement('div', ELEMENTS.LOCK);\n const headlineText = alert.headline || alert.title;\n\n // Create elements\n const title = createElement('p', ELEMENTS.TITLE);\n title.innerHTML = headlineText;\n\n const closeButton = createCloseButton(container);\n\n wrapper.append(closeButton, title);\n\n if (alert.text) {\n const message = createElement('div', ELEMENTS.TEXT);\n message.innerHTML = alert.text;\n wrapper.append(closeButton, title, message);\n }\n\n // Add CTA if exists\n if (alert.ctaUrl) {\n const cta = createCTAElement({\n ctaText: alert.ctaText || headlineText,\n ctaUrl: alert.ctaUrl,\n });\n\n wrapper.appendChild(cta.element);\n }\n\n lock.appendChild(wrapper);\n return lock;\n};\n\nconst createAlertComponent = (alert: AlertData): HTMLElement => {\n const { ELEMENTS, ATTRIBUTES } = ALERT_CONSTANTS;\n\n const declaration = createElement('div', ELEMENTS.DECLARATION);\n const container = createElement('div', ELEMENTS.CONTAINER, {\n id: ELEMENTS.ALERT_ID,\n [ATTRIBUTES.TYPE]: alert.type,\n });\n\n const content = createAlertContent(alert, container);\n container.appendChild(content);\n declaration.appendChild(container);\n\n return declaration;\n};\n\nconst fetchAlerts = async ({\n alertUrl,\n}: AlertProps): Promise<AlertResponse | null> => {\n try {\n const url = alertUrl || ALERT_CONSTANTS.URLS.DEFAULT;\n\n return await fetchGraphQL({\n query: QUERY,\n url,\n token: 'VIDnMeNYHTrLvWPtPpK5MNpjuv5WmmhU',\n });\n } catch (error) {\n console.error('Failed to fetch alerts:', error);\n return null;\n }\n};\n\nexport const createNavAlert = async ({ alertUrl }: AlertProps) => {\n const alertCache = checkAlertCache();\n\n // Show cached alert if valid\n if (\n !alertCache.shouldCheck &&\n alertCache.cachedData &&\n !alertCache.cachedData.hidden\n ) {\n return { element: createAlertComponent(alertCache.cachedData) };\n }\n\n // Fetch new alerts\n const response = await fetchAlerts({ alertUrl });\n if (!response?.data?.entries[0]) {\n clearAlertStorage();\n return null;\n }\n\n const alert = response.data?.entries[0];\n const cachedAlert = getStoredValue<AlertData>(\n ALERT_CONSTANTS.STORAGE_KEYS.ALERT,\n );\n\n // Handle alert updates\n if (cachedAlert?.id === alert.id) {\n if (!cachedAlert.hidden && alertCache.shouldCheck) {\n return { element: createAlertComponent(cachedAlert) };\n }\n } else {\n clearAlertStorage();\n updateAlertCache(alert);\n return { element: createAlertComponent(alert) };\n }\n\n return null;\n};\n"],"names":["token","jssToCSS","typography","element","layout","ELEMENTS","ANIMATION","iconCloseLarge","actions.options","ATTRIBUTES","fetchGraphQL"],"mappings":"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"}
@@ -1,19 +1,28 @@
1
1
  import { token, typography, element, layout } from "@universityofmaryland/web-styles-library";
2
+ import { fetchGraphQL } from "@universityofmaryland/web-utilities-library/network";
3
+ import { jssToCSS } from "@universityofmaryland/web-utilities-library/styles";
4
+ import { close_large } from "@universityofmaryland/web-icons-library/controls";
2
5
  import { options } from "../../../atomic/actions/text.mjs";
6
+ import "@universityofmaryland/web-styles-library/token";
7
+ import "@universityofmaryland/web-icons-library/files";
8
+ import "@universityofmaryland/web-icons-library/arrows";
3
9
  import "../../../model/modifiers/index.mjs";
4
10
  import "../../../model/elements/headline.mjs";
5
- import { X } from "../../../utilities/assets/icons.mjs";
6
- import * as index from "../../../utilities/network/index.mjs";
7
- import { convertJSSObjectToStyles } from "../../../utilities/theme/index.mjs";
8
11
  import "../../../atomic/animations/actions/indicator.mjs";
9
12
  import "../../../atomic/animations/brand/chevron-scroll.mjs";
10
13
  import "../../../atomic/animations/brand/card-stack.mjs";
14
+ import "@universityofmaryland/web-utilities-library/performance";
15
+ import "@universityofmaryland/web-utilities-library/accessibility";
16
+ import "@universityofmaryland/web-icons-library/location";
17
+ import "@universityofmaryland/web-icons-library/calendar";
11
18
  import "../../../atomic/layout/block/stacked.mjs";
12
19
  import "../../../atomic/layout/overlay/modal.mjs";
13
20
  import "../../../atomic/layout/person/columns.mjs";
21
+ import "@universityofmaryland/web-icons-library/communication";
22
+ import "@universityofmaryland/web-icons-library/social";
14
23
  import "../../../atomic/text-lockup/date.mjs";
15
24
  import "../../../atomic/text-lockup/small.mjs";
16
- const { FetchGraphQL } = index;
25
+ import "@universityofmaryland/web-styles-library/typography";
17
26
  const QUERY = `
18
27
  query CampusAlertsQuery {
19
28
  entries: entries(
@@ -140,7 +149,7 @@ const CloseButtonStyles = `
140
149
  }
141
150
  `;
142
151
  const TextStyles = `
143
- ${convertJSSObjectToStyles({
152
+ ${jssToCSS({
144
153
  styleObj: {
145
154
  [`${ALERT_TITLE}`]: typography.sans.large
146
155
  }
@@ -154,7 +163,7 @@ const TextStyles = `
154
163
  margin-top: ${token.spacing.sm};
155
164
  }
156
165
 
157
- ${convertJSSObjectToStyles({
166
+ ${jssToCSS({
158
167
  styleObj: {
159
168
  [`${ALERT_TEXT}`]: element.text.rich.advanced
160
169
  }
@@ -189,7 +198,7 @@ const WrapperStyles = `
189
198
  }
190
199
  `;
191
200
  const LockStyles = `
192
- ${convertJSSObjectToStyles({
201
+ ${jssToCSS({
193
202
  styleObj: {
194
203
  [`${LOCK}`]: layout.space.horizontal.full
195
204
  }
@@ -288,7 +297,7 @@ const createCloseButton = (container) => {
288
297
  const button = createElement("button", ELEMENTS2.CLOSE_BUTTON, {
289
298
  "aria-label": "remove alert"
290
299
  });
291
- button.innerHTML = X;
300
+ button.innerHTML = close_large;
292
301
  button.addEventListener("click", () => {
293
302
  const cachedAlert = getStoredValue(
294
303
  ALERT_CONSTANTS.STORAGE_KEYS.ALERT
@@ -363,7 +372,7 @@ const fetchAlerts = async ({
363
372
  }) => {
364
373
  try {
365
374
  const url = alertUrl || ALERT_CONSTANTS.URLS.DEFAULT;
366
- return await FetchGraphQL({
375
+ return await fetchGraphQL({
367
376
  query: QUERY,
368
377
  url,
369
378
  token: "VIDnMeNYHTrLvWPtPpK5MNpjuv5WmmhU"
@@ -1 +1 @@
1
- {"version":3,"file":"alert.mjs","sources":["../../../../source/composite/navigation/utility/alert.ts"],"sourcesContent":["import {\n element,\n layout,\n token,\n typography,\n} from '@universityofmaryland/web-styles-library';\nimport { actions } from 'atomic';\nimport * as Utility from 'utilities';\n\ntype AlertData = {\n id: string;\n type: string;\n title: string;\n headline?: string;\n text: string;\n ctaUrl: string;\n ctaText?: string;\n hidden?: boolean;\n};\n\ntype AlertResponse = {\n data: {\n entries: AlertData[];\n };\n};\n\ntype AlertProps = {\n alertUrl?: string | null;\n};\n\nexport type TypeAlertProps = {\n alertUrl?: string | null;\n};\n\ntype ElementAttributes = Record<string, string>;\n\ntype CacheCheckResult = {\n shouldCheck: boolean;\n cachedData: AlertData | null;\n};\n\nconst { FetchGraphQL } = Utility.network;\n\nconst QUERY = `\n query CampusAlertsQuery {\n entries: entries(\n limit: 1\n type: \"mainElementsCampusAlert\"\n ) {\n id: uid\n type: optionsType\n headline\n title\n text\n ctaUrl: cta\n ctaText\n }\n }\n`;\n\nconst ELEMENT_NAME = 'umd-element-nav-alert';\nexport const ALERT_CONSTANTS = {\n URLS: {\n DEFAULT: 'https://umd.edu/api/v2',\n },\n STORAGE_KEYS: {\n ALERT_TIME: 'umd-utility-alert-time',\n ALERT: 'umd-utility-alert',\n ALERT_ID: 'umd-utility-alert-id',\n },\n ELEMENTS: {\n ALERT_ID: 'umd-global-alert',\n DECLARATION: 'umd-element-nav-alert-declaration',\n CONTAINER: 'umd-element-nav-alert-container',\n LOCK: 'umd-element-nav-alert-lock',\n WRAPPER: 'umd-element-nav-alert-wrapper',\n TITLE: 'umd-element-nav-alert-title',\n TEXT: 'umd-element-nav-alert-text',\n CTA: 'umd-element-nav-alert-cta',\n CLOSE_BUTTON: 'umd-element-nav-alert-close',\n },\n ATTRIBUTES: {\n TYPE: 'type',\n },\n TYPES: {\n GENERAL: 'general',\n CLOSED: 'closed',\n OPEN: 'open',\n },\n ANIMATION: {\n SPEED: 800,\n },\n BREAKPOINTS: {\n MEDIUM: 768,\n LARGE: 1024,\n },\n CACHE: {\n DURATION: 60 * 1000, // One minute in milliseconds\n },\n} as const;\n\nconst { ATTRIBUTES, ANIMATION, BREAKPOINTS, ELEMENTS, TYPES } = ALERT_CONSTANTS;\nconst IS_TYPE_GENERAL = `[${ATTRIBUTES.TYPE}=${TYPES.GENERAL}]`;\nconst IS_TYPE_CLOSED = `[${ATTRIBUTES.TYPE}=${TYPES.CLOSED}]`;\n\nconst DECLARATION = `.${ELEMENTS.DECLARATION}`;\nconst CONTAINER = `.${ELEMENTS.CONTAINER}`;\nconst WRAPPER = `.${ELEMENTS.WRAPPER}`;\nconst LOCK = `.${ELEMENTS.LOCK}`;\nconst ALERT_TITLE = `.${ELEMENTS.TITLE}`;\nconst ALERT_TEXT = `.${ELEMENTS.TEXT}`;\nconst CLOSE_BUTTON = `.${ELEMENTS.CLOSE_BUTTON}`;\nconst CTA = `.${ELEMENTS.CTA}`;\n\nconst OVERWRITE_CONTAINER_TYPE_GENERAL = `${CONTAINER}${IS_TYPE_GENERAL}`;\nconst OVERWRITE_CONTAINER_TYPE_CLOSED = `${CONTAINER}${IS_TYPE_CLOSED}`;\n\n// prettier-ignore\nconst OverwriteTypeGeneral = `\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} {\n background-color: ${token.color.black};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} * {\n color: ${token.color.white};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} a:hover,\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} a:focus {\n color: ${token.color.white} !important;\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} ${ALERT_TITLE} {\n color: ${token.color.gold};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} ${CLOSE_BUTTON} > svg {\n fill: ${token.color.white};\n }\n`\n\n// prettier-ignore\nconst OverwriteTypeClosed = `\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} {\n background-color: ${token.color.gold};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} * {\n color: ${token.color.black};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} .${CLOSE_BUTTON} > svg {\n fill: ${token.color.black};\n }\n`\n\n// prettier-ignore\nconst CloseButtonStyles = `\n ${CLOSE_BUTTON} {\n position: absolute;\n top: 30px;\n right: 10px;\n }\n \n @container (max-width: ${BREAKPOINTS.MEDIUM - 1}px) {\n ${CLOSE_BUTTON} {\n top: 25px;\n right: 5px;\n }\n }\n\n ${CLOSE_BUTTON} > svg {\n fill: ${token.color.black};\n width: 24px;\n height: 24px;\n }\n`\n\n// prettier-ignore\nconst TextStyles = `\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`${ALERT_TITLE}`]: typography.sans.large,\n },\n })}\n\n ${ALERT_TITLE} {\n text-transform: uppercase;\n }\n\n ${ALERT_TITLE} + * {\n margin-top: ${token.spacing.sm};\n }\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`${ALERT_TEXT}`]: element.text.rich.advanced,\n },\n })}\n\n ${ALERT_TEXT},\n ${ALERT_TEXT} * {\n font-size: 16px;;\n }\n\n ${ALERT_TEXT} + * {\n margin-top: ${token.spacing.lg};\n }\n\n ${CTA} {\n text-decoration: none;\n }\n`\n\n// prettier-ignore\nconst WrapperStyles = `\n ${WRAPPER} {\n position: relative;\n padding-top: ${token.spacing.md};\n padding-bottom: ${token.spacing.md};\n padding-right: ${token.spacing.lg};\n }\n\n @container (min-width: ${BREAKPOINTS.MEDIUM}px) {\n ${WRAPPER} {\n padding-top: ${token.spacing.lg};\n padding-bottom: ${token.spacing.lg};\n }\n }\n`\n\n// prettier-ignore\nconst LockStyles = `\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`${LOCK}`]: layout.space.horizontal.full,\n },\n })}\n`\n\n// prettier-ignore\nconst ContainerStyles = `\n ${CONTAINER} {\n container: ${ELEMENT_NAME} / inline-size;\n background-color: ${token.color.gray.lighter};\n border-left: 4px solid ${token.color.red};\n transition: height ${ANIMATION.SPEED}ms;\n overflow: hidden;\n position: relative;\n }\n\n @container (min-width: ${BREAKPOINTS.LARGE}px) {\n ${CONTAINER} {\n border-left: 8px solid ${token.color.red};\n }\n }\n`\n\n// prettier-ignore\nexport const STYLES_NAV_ALERT = `\n ${DECLARATION} {\n container: ${ELEMENT_NAME} / inline-size;\n }\n\n ${ContainerStyles}\n ${LockStyles}\n ${WrapperStyles}\n ${TextStyles}\n ${CloseButtonStyles}\n ${OverwriteTypeGeneral}\n ${OverwriteTypeClosed}\n`;\n\n// storage.ts\nconst logStorageError = (operation: string, error: Error): void => {\n console.error(`UMD Component - Alert Storage: ${operation} failed:`, error);\n};\n\nconst getStoredValue = <T>(key: string): T | null => {\n try {\n const value = window.localStorage.getItem(key);\n return value ? JSON.parse(value) : null;\n } catch (error) {\n logStorageError(`Reading ${key}`, error as Error);\n return null;\n }\n};\n\nconst setStoredValue = (key: string, value: unknown): void => {\n try {\n window.localStorage.setItem(key, JSON.stringify(value));\n } catch (error) {\n logStorageError('Saving value', error as Error);\n }\n};\n\nconst clearAlertStorage = (): void => {\n const { STORAGE_KEYS } = ALERT_CONSTANTS;\n window.localStorage.removeItem(STORAGE_KEYS.ALERT_TIME);\n window.localStorage.removeItem(STORAGE_KEYS.ALERT);\n};\n\nconst checkAlertCache = (): CacheCheckResult => {\n const currentTime = new Date().getTime();\n const { STORAGE_KEYS, CACHE } = ALERT_CONSTANTS;\n\n try {\n const alertTimeStr = getStoredValue<string>(STORAGE_KEYS.ALERT_TIME);\n const cachedResponse = getStoredValue<AlertData>(STORAGE_KEYS.ALERT);\n\n if (!alertTimeStr) {\n setStoredValue(STORAGE_KEYS.ALERT_TIME, currentTime.toString());\n return { shouldCheck: true, cachedData: null };\n }\n\n const alertTime = parseInt(alertTimeStr, 10);\n const timeElapsed = currentTime - alertTime;\n\n if (timeElapsed < CACHE.DURATION && cachedResponse) {\n return { shouldCheck: false, cachedData: cachedResponse };\n }\n\n setStoredValue(STORAGE_KEYS.ALERT_TIME, currentTime.toString());\n return { shouldCheck: true, cachedData: null };\n } catch (error) {\n console.error('Cache check failed:', error);\n return { shouldCheck: true, cachedData: null };\n }\n};\n\nconst updateAlertCache = (alert: AlertData): void => {\n setStoredValue(ALERT_CONSTANTS.STORAGE_KEYS.ALERT, alert);\n};\n\nconst createElement = (\n tag: string,\n className?: string,\n attributes?: ElementAttributes,\n): HTMLElement => {\n const element = document.createElement(tag);\n if (className) element.classList.add(className);\n if (attributes) {\n Object.entries(attributes).forEach(([key, value]) => {\n element.setAttribute(key, value);\n });\n }\n return element;\n};\n\nconst createCloseButton = (container: HTMLElement): HTMLButtonElement => {\n const { ELEMENTS, ANIMATION } = ALERT_CONSTANTS;\n const button = createElement('button', ELEMENTS.CLOSE_BUTTON, {\n 'aria-label': 'remove alert',\n }) as HTMLButtonElement;\n\n button.innerHTML = Utility.asset.icon.X;\n button.addEventListener('click', () => {\n const cachedAlert = getStoredValue<AlertData>(\n ALERT_CONSTANTS.STORAGE_KEYS.ALERT,\n );\n if (cachedAlert) {\n // Animate close\n container.style.height = `${container.offsetHeight}px`;\n container.style.transition = `height ${ANIMATION.SPEED}ms`;\n\n updateAlertCache({ ...cachedAlert, hidden: true });\n\n setTimeout(() => {\n container.style.height = '0px';\n }, 100);\n\n setTimeout(() => {\n container.remove();\n }, ANIMATION.SPEED + 100);\n }\n });\n\n return button;\n};\n\nconst createCTAElement = ({\n ctaText,\n ctaUrl,\n}: {\n ctaText: string;\n ctaUrl: string;\n}) => {\n const link = createElement('a', ALERT_CONSTANTS.ELEMENTS.CTA, {\n href: ctaUrl,\n rel: 'noopener noreferrer',\n target: '_blank',\n });\n link.innerHTML = ctaText;\n\n return actions.options({\n element: link,\n isTypeSecondary: true,\n });\n};\n\nconst createAlertContent = (\n alert: AlertData,\n container: HTMLElement,\n): HTMLElement => {\n const { ELEMENTS } = ALERT_CONSTANTS;\n const wrapper = createElement('div', ELEMENTS.WRAPPER);\n const lock = createElement('div', ELEMENTS.LOCK);\n const headlineText = alert.headline || alert.title;\n\n // Create elements\n const title = createElement('p', ELEMENTS.TITLE);\n title.innerHTML = headlineText;\n\n const closeButton = createCloseButton(container);\n\n wrapper.append(closeButton, title);\n\n if (alert.text) {\n const message = createElement('div', ELEMENTS.TEXT);\n message.innerHTML = alert.text;\n wrapper.append(closeButton, title, message);\n }\n\n // Add CTA if exists\n if (alert.ctaUrl) {\n const cta = createCTAElement({\n ctaText: alert.ctaText || headlineText,\n ctaUrl: alert.ctaUrl,\n });\n\n wrapper.appendChild(cta.element);\n }\n\n lock.appendChild(wrapper);\n return lock;\n};\n\nconst createAlertComponent = (alert: AlertData): HTMLElement => {\n const { ELEMENTS, ATTRIBUTES } = ALERT_CONSTANTS;\n\n const declaration = createElement('div', ELEMENTS.DECLARATION);\n const container = createElement('div', ELEMENTS.CONTAINER, {\n id: ELEMENTS.ALERT_ID,\n [ATTRIBUTES.TYPE]: alert.type,\n });\n\n const content = createAlertContent(alert, container);\n container.appendChild(content);\n declaration.appendChild(container);\n\n return declaration;\n};\n\nconst fetchAlerts = async ({\n alertUrl,\n}: AlertProps): Promise<AlertResponse | null> => {\n try {\n const url = alertUrl || ALERT_CONSTANTS.URLS.DEFAULT;\n\n return await FetchGraphQL({\n query: QUERY,\n url,\n token: 'VIDnMeNYHTrLvWPtPpK5MNpjuv5WmmhU',\n });\n } catch (error) {\n console.error('Failed to fetch alerts:', error);\n return null;\n }\n};\n\nexport const createNavAlert = async ({ alertUrl }: AlertProps) => {\n const alertCache = checkAlertCache();\n\n // Show cached alert if valid\n if (\n !alertCache.shouldCheck &&\n alertCache.cachedData &&\n !alertCache.cachedData.hidden\n ) {\n return { element: createAlertComponent(alertCache.cachedData) };\n }\n\n // Fetch new alerts\n const response = await fetchAlerts({ alertUrl });\n if (!response?.data?.entries[0]) {\n clearAlertStorage();\n return null;\n }\n\n const alert = response.data?.entries[0];\n const cachedAlert = getStoredValue<AlertData>(\n ALERT_CONSTANTS.STORAGE_KEYS.ALERT,\n );\n\n // Handle alert updates\n if (cachedAlert?.id === alert.id) {\n if (!cachedAlert.hidden && alertCache.shouldCheck) {\n return { element: createAlertComponent(cachedAlert) };\n }\n } else {\n clearAlertStorage();\n updateAlertCache(alert);\n return { element: createAlertComponent(alert) };\n }\n\n return null;\n};\n"],"names":["Utility.network","Utility.theme.convertJSSObjectToStyles","element","ELEMENTS","ANIMATION","Utility.asset.icon.X","actions.options","ATTRIBUTES"],"mappings":"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"}
1
+ {"version":3,"file":"alert.mjs","sources":["../../../../source/composite/navigation/utility/alert.ts"],"sourcesContent":["import {\n element,\n layout,\n token,\n typography,\n} from '@universityofmaryland/web-styles-library';\nimport { fetchGraphQL } from '@universityofmaryland/web-utilities-library/network';\nimport { jssToCSS } from '@universityofmaryland/web-utilities-library/styles';\nimport { close_large as iconCloseLarge } from '@universityofmaryland/web-icons-library/controls';\nimport { actions } from 'atomic';\n\ntype AlertData = {\n id: string;\n type: string;\n title: string;\n headline?: string;\n text: string;\n ctaUrl: string;\n ctaText?: string;\n hidden?: boolean;\n};\n\ntype AlertResponse = {\n data: {\n entries: AlertData[];\n };\n};\n\ntype AlertProps = {\n alertUrl?: string | null;\n};\n\nexport type TypeAlertProps = {\n alertUrl?: string | null;\n};\n\ntype ElementAttributes = Record<string, string>;\n\ntype CacheCheckResult = {\n shouldCheck: boolean;\n cachedData: AlertData | null;\n};\n\nconst QUERY = `\n query CampusAlertsQuery {\n entries: entries(\n limit: 1\n type: \"mainElementsCampusAlert\"\n ) {\n id: uid\n type: optionsType\n headline\n title\n text\n ctaUrl: cta\n ctaText\n }\n }\n`;\n\nconst ELEMENT_NAME = 'umd-element-nav-alert';\nexport const ALERT_CONSTANTS = {\n URLS: {\n DEFAULT: 'https://umd.edu/api/v2',\n },\n STORAGE_KEYS: {\n ALERT_TIME: 'umd-utility-alert-time',\n ALERT: 'umd-utility-alert',\n ALERT_ID: 'umd-utility-alert-id',\n },\n ELEMENTS: {\n ALERT_ID: 'umd-global-alert',\n DECLARATION: 'umd-element-nav-alert-declaration',\n CONTAINER: 'umd-element-nav-alert-container',\n LOCK: 'umd-element-nav-alert-lock',\n WRAPPER: 'umd-element-nav-alert-wrapper',\n TITLE: 'umd-element-nav-alert-title',\n TEXT: 'umd-element-nav-alert-text',\n CTA: 'umd-element-nav-alert-cta',\n CLOSE_BUTTON: 'umd-element-nav-alert-close',\n },\n ATTRIBUTES: {\n TYPE: 'type',\n },\n TYPES: {\n GENERAL: 'general',\n CLOSED: 'closed',\n OPEN: 'open',\n },\n ANIMATION: {\n SPEED: 800,\n },\n BREAKPOINTS: {\n MEDIUM: 768,\n LARGE: 1024,\n },\n CACHE: {\n DURATION: 60 * 1000, // One minute in milliseconds\n },\n} as const;\n\nconst { ATTRIBUTES, ANIMATION, BREAKPOINTS, ELEMENTS, TYPES } = ALERT_CONSTANTS;\nconst IS_TYPE_GENERAL = `[${ATTRIBUTES.TYPE}=${TYPES.GENERAL}]`;\nconst IS_TYPE_CLOSED = `[${ATTRIBUTES.TYPE}=${TYPES.CLOSED}]`;\n\nconst DECLARATION = `.${ELEMENTS.DECLARATION}`;\nconst CONTAINER = `.${ELEMENTS.CONTAINER}`;\nconst WRAPPER = `.${ELEMENTS.WRAPPER}`;\nconst LOCK = `.${ELEMENTS.LOCK}`;\nconst ALERT_TITLE = `.${ELEMENTS.TITLE}`;\nconst ALERT_TEXT = `.${ELEMENTS.TEXT}`;\nconst CLOSE_BUTTON = `.${ELEMENTS.CLOSE_BUTTON}`;\nconst CTA = `.${ELEMENTS.CTA}`;\n\nconst OVERWRITE_CONTAINER_TYPE_GENERAL = `${CONTAINER}${IS_TYPE_GENERAL}`;\nconst OVERWRITE_CONTAINER_TYPE_CLOSED = `${CONTAINER}${IS_TYPE_CLOSED}`;\n\n// prettier-ignore\nconst OverwriteTypeGeneral = `\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} {\n background-color: ${token.color.black};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} * {\n color: ${token.color.white};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} a:hover,\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} a:focus {\n color: ${token.color.white} !important;\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} ${ALERT_TITLE} {\n color: ${token.color.gold};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} ${CLOSE_BUTTON} > svg {\n fill: ${token.color.white};\n }\n`\n\n// prettier-ignore\nconst OverwriteTypeClosed = `\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} {\n background-color: ${token.color.gold};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} * {\n color: ${token.color.black};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} .${CLOSE_BUTTON} > svg {\n fill: ${token.color.black};\n }\n`\n\n// prettier-ignore\nconst CloseButtonStyles = `\n ${CLOSE_BUTTON} {\n position: absolute;\n top: 30px;\n right: 10px;\n }\n \n @container (max-width: ${BREAKPOINTS.MEDIUM - 1}px) {\n ${CLOSE_BUTTON} {\n top: 25px;\n right: 5px;\n }\n }\n\n ${CLOSE_BUTTON} > svg {\n fill: ${token.color.black};\n width: 24px;\n height: 24px;\n }\n`\n\n// prettier-ignore\nconst TextStyles = `\n ${jssToCSS({\n styleObj: {\n [`${ALERT_TITLE}`]: typography.sans.large,\n },\n })}\n\n ${ALERT_TITLE} {\n text-transform: uppercase;\n }\n\n ${ALERT_TITLE} + * {\n margin-top: ${token.spacing.sm};\n }\n\n ${jssToCSS({\n styleObj: {\n [`${ALERT_TEXT}`]: element.text.rich.advanced,\n },\n })}\n\n ${ALERT_TEXT},\n ${ALERT_TEXT} * {\n font-size: 16px;;\n }\n\n ${ALERT_TEXT} + * {\n margin-top: ${token.spacing.lg};\n }\n\n ${CTA} {\n text-decoration: none;\n }\n`\n\n// prettier-ignore\nconst WrapperStyles = `\n ${WRAPPER} {\n position: relative;\n padding-top: ${token.spacing.md};\n padding-bottom: ${token.spacing.md};\n padding-right: ${token.spacing.lg};\n }\n\n @container (min-width: ${BREAKPOINTS.MEDIUM}px) {\n ${WRAPPER} {\n padding-top: ${token.spacing.lg};\n padding-bottom: ${token.spacing.lg};\n }\n }\n`\n\n// prettier-ignore\nconst LockStyles = `\n ${jssToCSS({\n styleObj: {\n [`${LOCK}`]: layout.space.horizontal.full,\n },\n })}\n`\n\n// prettier-ignore\nconst ContainerStyles = `\n ${CONTAINER} {\n container: ${ELEMENT_NAME} / inline-size;\n background-color: ${token.color.gray.lighter};\n border-left: 4px solid ${token.color.red};\n transition: height ${ANIMATION.SPEED}ms;\n overflow: hidden;\n position: relative;\n }\n\n @container (min-width: ${BREAKPOINTS.LARGE}px) {\n ${CONTAINER} {\n border-left: 8px solid ${token.color.red};\n }\n }\n`\n\n// prettier-ignore\nexport const STYLES_NAV_ALERT = `\n ${DECLARATION} {\n container: ${ELEMENT_NAME} / inline-size;\n }\n\n ${ContainerStyles}\n ${LockStyles}\n ${WrapperStyles}\n ${TextStyles}\n ${CloseButtonStyles}\n ${OverwriteTypeGeneral}\n ${OverwriteTypeClosed}\n`;\n\n// storage.ts\nconst logStorageError = (operation: string, error: Error): void => {\n console.error(`UMD Component - Alert Storage: ${operation} failed:`, error);\n};\n\nconst getStoredValue = <T>(key: string): T | null => {\n try {\n const value = window.localStorage.getItem(key);\n return value ? JSON.parse(value) : null;\n } catch (error) {\n logStorageError(`Reading ${key}`, error as Error);\n return null;\n }\n};\n\nconst setStoredValue = (key: string, value: unknown): void => {\n try {\n window.localStorage.setItem(key, JSON.stringify(value));\n } catch (error) {\n logStorageError('Saving value', error as Error);\n }\n};\n\nconst clearAlertStorage = (): void => {\n const { STORAGE_KEYS } = ALERT_CONSTANTS;\n window.localStorage.removeItem(STORAGE_KEYS.ALERT_TIME);\n window.localStorage.removeItem(STORAGE_KEYS.ALERT);\n};\n\nconst checkAlertCache = (): CacheCheckResult => {\n const currentTime = new Date().getTime();\n const { STORAGE_KEYS, CACHE } = ALERT_CONSTANTS;\n\n try {\n const alertTimeStr = getStoredValue<string>(STORAGE_KEYS.ALERT_TIME);\n const cachedResponse = getStoredValue<AlertData>(STORAGE_KEYS.ALERT);\n\n if (!alertTimeStr) {\n setStoredValue(STORAGE_KEYS.ALERT_TIME, currentTime.toString());\n return { shouldCheck: true, cachedData: null };\n }\n\n const alertTime = parseInt(alertTimeStr, 10);\n const timeElapsed = currentTime - alertTime;\n\n if (timeElapsed < CACHE.DURATION && cachedResponse) {\n return { shouldCheck: false, cachedData: cachedResponse };\n }\n\n setStoredValue(STORAGE_KEYS.ALERT_TIME, currentTime.toString());\n return { shouldCheck: true, cachedData: null };\n } catch (error) {\n console.error('Cache check failed:', error);\n return { shouldCheck: true, cachedData: null };\n }\n};\n\nconst updateAlertCache = (alert: AlertData): void => {\n setStoredValue(ALERT_CONSTANTS.STORAGE_KEYS.ALERT, alert);\n};\n\nconst createElement = (\n tag: string,\n className?: string,\n attributes?: ElementAttributes,\n): HTMLElement => {\n const element = document.createElement(tag);\n if (className) element.classList.add(className);\n if (attributes) {\n Object.entries(attributes).forEach(([key, value]) => {\n element.setAttribute(key, value);\n });\n }\n return element;\n};\n\nconst createCloseButton = (container: HTMLElement): HTMLButtonElement => {\n const { ELEMENTS, ANIMATION } = ALERT_CONSTANTS;\n const button = createElement('button', ELEMENTS.CLOSE_BUTTON, {\n 'aria-label': 'remove alert',\n }) as HTMLButtonElement;\n\n button.innerHTML = iconCloseLarge;\n button.addEventListener('click', () => {\n const cachedAlert = getStoredValue<AlertData>(\n ALERT_CONSTANTS.STORAGE_KEYS.ALERT,\n );\n if (cachedAlert) {\n // Animate close\n container.style.height = `${container.offsetHeight}px`;\n container.style.transition = `height ${ANIMATION.SPEED}ms`;\n\n updateAlertCache({ ...cachedAlert, hidden: true });\n\n setTimeout(() => {\n container.style.height = '0px';\n }, 100);\n\n setTimeout(() => {\n container.remove();\n }, ANIMATION.SPEED + 100);\n }\n });\n\n return button;\n};\n\nconst createCTAElement = ({\n ctaText,\n ctaUrl,\n}: {\n ctaText: string;\n ctaUrl: string;\n}) => {\n const link = createElement('a', ALERT_CONSTANTS.ELEMENTS.CTA, {\n href: ctaUrl,\n rel: 'noopener noreferrer',\n target: '_blank',\n });\n link.innerHTML = ctaText;\n\n return actions.options({\n element: link,\n isTypeSecondary: true,\n });\n};\n\nconst createAlertContent = (\n alert: AlertData,\n container: HTMLElement,\n): HTMLElement => {\n const { ELEMENTS } = ALERT_CONSTANTS;\n const wrapper = createElement('div', ELEMENTS.WRAPPER);\n const lock = createElement('div', ELEMENTS.LOCK);\n const headlineText = alert.headline || alert.title;\n\n // Create elements\n const title = createElement('p', ELEMENTS.TITLE);\n title.innerHTML = headlineText;\n\n const closeButton = createCloseButton(container);\n\n wrapper.append(closeButton, title);\n\n if (alert.text) {\n const message = createElement('div', ELEMENTS.TEXT);\n message.innerHTML = alert.text;\n wrapper.append(closeButton, title, message);\n }\n\n // Add CTA if exists\n if (alert.ctaUrl) {\n const cta = createCTAElement({\n ctaText: alert.ctaText || headlineText,\n ctaUrl: alert.ctaUrl,\n });\n\n wrapper.appendChild(cta.element);\n }\n\n lock.appendChild(wrapper);\n return lock;\n};\n\nconst createAlertComponent = (alert: AlertData): HTMLElement => {\n const { ELEMENTS, ATTRIBUTES } = ALERT_CONSTANTS;\n\n const declaration = createElement('div', ELEMENTS.DECLARATION);\n const container = createElement('div', ELEMENTS.CONTAINER, {\n id: ELEMENTS.ALERT_ID,\n [ATTRIBUTES.TYPE]: alert.type,\n });\n\n const content = createAlertContent(alert, container);\n container.appendChild(content);\n declaration.appendChild(container);\n\n return declaration;\n};\n\nconst fetchAlerts = async ({\n alertUrl,\n}: AlertProps): Promise<AlertResponse | null> => {\n try {\n const url = alertUrl || ALERT_CONSTANTS.URLS.DEFAULT;\n\n return await fetchGraphQL({\n query: QUERY,\n url,\n token: 'VIDnMeNYHTrLvWPtPpK5MNpjuv5WmmhU',\n });\n } catch (error) {\n console.error('Failed to fetch alerts:', error);\n return null;\n }\n};\n\nexport const createNavAlert = async ({ alertUrl }: AlertProps) => {\n const alertCache = checkAlertCache();\n\n // Show cached alert if valid\n if (\n !alertCache.shouldCheck &&\n alertCache.cachedData &&\n !alertCache.cachedData.hidden\n ) {\n return { element: createAlertComponent(alertCache.cachedData) };\n }\n\n // Fetch new alerts\n const response = await fetchAlerts({ alertUrl });\n if (!response?.data?.entries[0]) {\n clearAlertStorage();\n return null;\n }\n\n const alert = response.data?.entries[0];\n const cachedAlert = getStoredValue<AlertData>(\n ALERT_CONSTANTS.STORAGE_KEYS.ALERT,\n );\n\n // Handle alert updates\n if (cachedAlert?.id === alert.id) {\n if (!cachedAlert.hidden && alertCache.shouldCheck) {\n return { element: createAlertComponent(cachedAlert) };\n }\n } else {\n clearAlertStorage();\n updateAlertCache(alert);\n return { element: createAlertComponent(alert) };\n }\n\n return null;\n};\n"],"names":["element","ELEMENTS","ANIMATION","iconCloseLarge","actions.options","ATTRIBUTES"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,MAAM,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBd,MAAM,eAAe;AACd,MAAM,kBAAkB;AAAA,EAC7B,MAAM;AAAA,IACJ,SAAS;AAAA,EAAA;AAAA,EAEX,cAAc;AAAA,IACZ,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,EAAA;AAAA,EAEZ,UAAU;AAAA,IACR,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,EAAA;AAAA,EAEhB,YAAY;AAAA,IACV,MAAM;AAAA,EAAA;AAAA,EAER,OAAO;AAAA,IACL,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,MAAM;AAAA,EAAA;AAAA,EAER,WAAW;AAAA,IACT,OAAO;AAAA,EAAA;AAAA,EAET,aAAa;AAAA,IACX,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,OAAO;AAAA,IACL,UAAU,KAAK;AAAA;AAAA,EAAA;AAEnB;AAEA,MAAM,EAAE,YAAY,WAAW,aAAa,UAAU,UAAU;AAChE,MAAM,kBAAkB,IAAI,WAAW,IAAI,IAAI,MAAM,OAAO;AAC5D,MAAM,iBAAiB,IAAI,WAAW,IAAI,IAAI,MAAM,MAAM;AAE1D,MAAM,cAAc,IAAI,SAAS,WAAW;AAC5C,MAAM,YAAY,IAAI,SAAS,SAAS;AACxC,MAAM,UAAU,IAAI,SAAS,OAAO;AACpC,MAAM,OAAO,IAAI,SAAS,IAAI;AAC9B,MAAM,cAAc,IAAI,SAAS,KAAK;AACtC,MAAM,aAAa,IAAI,SAAS,IAAI;AACpC,MAAM,eAAe,IAAI,SAAS,YAAY;AAC9C,MAAM,MAAM,IAAI,SAAS,GAAG;AAE5B,MAAM,mCAAmC,GAAG,SAAS,GAAG,eAAe;AACvE,MAAM,kCAAkC,GAAG,SAAS,GAAG,cAAc;AAGrE,MAAM,uBAAuB;AAAA,IACzB,gCAAgC;AAAA,wBACZ,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA,IAGrC,gCAAgC;AAAA,aACvB,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA,IAG1B,gCAAgC;AAAA,IAChC,gCAAgC;AAAA,aACvB,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA,IAG1B,gCAAgC,IAAI,WAAW;AAAA,aACtC,MAAM,MAAM,IAAI;AAAA;AAAA;AAAA,KAGxB,gCAAgC,IAAI,YAAY;AAAA,YACzC,MAAM,MAAM,KAAK;AAAA;AAAA;AAK7B,MAAM,sBAAsB;AAAA,IACxB,+BAA+B;AAAA,wBACX,MAAM,MAAM,IAAI;AAAA;AAAA;AAAA,IAGpC,+BAA+B;AAAA,aACtB,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA,KAGzB,+BAA+B,KAAK,YAAY;AAAA,YACzC,MAAM,MAAM,KAAK;AAAA;AAAA;AAK7B,MAAM,oBAAoB;AAAA,IACtB,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAMW,YAAY,SAAS,CAAC;AAAA,MAC3C,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMd,YAAY;AAAA,YACJ,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA;AAAA;AAO7B,MAAM,aAAa;AAAA,IACf,SAAS;AAAA,EACT,UAAU;AAAA,IACR,CAAC,GAAG,WAAW,EAAE,GAAG,WAAW,KAAK;AAAA,EAAA;AAExC,CAAC,CAAC;AAAA;AAAA,IAEA,WAAW;AAAA;AAAA;AAAA;AAAA,IAIX,WAAW;AAAA,kBACG,MAAM,QAAQ,EAAE;AAAA;AAAA;AAAA,IAG9B,SAAS;AAAA,EACT,UAAU;AAAA,IACR,CAAC,GAAG,UAAU,EAAE,GAAG,QAAQ,KAAK,KAAK;AAAA,EAAA;AAEzC,CAAC,CAAC;AAAA;AAAA,IAEA,UAAU;AAAA,IACV,UAAU;AAAA;AAAA;AAAA;AAAA,IAIV,UAAU;AAAA,kBACI,MAAM,QAAQ,EAAE;AAAA;AAAA;AAAA,IAG9B,GAAG;AAAA;AAAA;AAAA;AAMP,MAAM,gBAAgB;AAAA,IAClB,OAAO;AAAA;AAAA,mBAEQ,MAAM,QAAQ,EAAE;AAAA,sBACb,MAAM,QAAQ,EAAE;AAAA,qBACjB,MAAM,QAAQ,EAAE;AAAA;AAAA;AAAA,2BAGV,YAAY,MAAM;AAAA,MACvC,OAAO;AAAA,qBACQ,MAAM,QAAQ,EAAE;AAAA,wBACb,MAAM,QAAQ,EAAE;AAAA;AAAA;AAAA;AAMxC,MAAM,aAAa;AAAA,IACf,SAAS;AAAA,EACT,UAAU;AAAA,IACR,CAAC,GAAG,IAAI,EAAE,GAAG,OAAO,MAAM,WAAW;AAAA,EAAA;AAEzC,CAAC,CAAC;AAAA;AAIJ,MAAM,kBAAkB;AAAA,IACpB,SAAS;AAAA,iBACI,YAAY;AAAA,wBACL,MAAM,MAAM,KAAK,OAAO;AAAA,6BACnB,MAAM,MAAM,GAAG;AAAA,yBACnB,UAAU,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,2BAKb,YAAY,KAAK;AAAA,MACtC,SAAS;AAAA,+BACgB,MAAM,MAAM,GAAG;AAAA;AAAA;AAAA;AAMvC,MAAM,mBAAmB;AAAA,IAC5B,WAAW;AAAA,iBACE,YAAY;AAAA;AAAA;AAAA,IAGzB,eAAe;AAAA,IACf,UAAU;AAAA,IACV,aAAa;AAAA,IACb,UAAU;AAAA,IACV,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,mBAAmB;AAAA;AAIvB,MAAM,kBAAkB,CAAC,WAAmB,UAAuB;AACjE,UAAQ,MAAM,kCAAkC,SAAS,YAAY,KAAK;AAC5E;AAEA,MAAM,iBAAiB,CAAI,QAA0B;AACnD,MAAI;AACF,UAAM,QAAQ,OAAO,aAAa,QAAQ,GAAG;AAC7C,WAAO,QAAQ,KAAK,MAAM,KAAK,IAAI;AAAA,EACrC,SAAS,OAAO;AACd,oBAAgB,WAAW,GAAG,IAAI,KAAc;AAChD,WAAO;AAAA,EACT;AACF;AAEA,MAAM,iBAAiB,CAAC,KAAa,UAAyB;AAC5D,MAAI;AACF,WAAO,aAAa,QAAQ,KAAK,KAAK,UAAU,KAAK,CAAC;AAAA,EACxD,SAAS,OAAO;AACd,oBAAgB,gBAAgB,KAAc;AAAA,EAChD;AACF;AAEA,MAAM,oBAAoB,MAAY;AACpC,QAAM,EAAE,iBAAiB;AACzB,SAAO,aAAa,WAAW,aAAa,UAAU;AACtD,SAAO,aAAa,WAAW,aAAa,KAAK;AACnD;AAEA,MAAM,kBAAkB,MAAwB;AAC9C,QAAM,eAAc,oBAAI,KAAA,GAAO,QAAA;AAC/B,QAAM,EAAE,cAAc,MAAA,IAAU;AAEhC,MAAI;AACF,UAAM,eAAe,eAAuB,aAAa,UAAU;AACnE,UAAM,iBAAiB,eAA0B,aAAa,KAAK;AAEnE,QAAI,CAAC,cAAc;AACjB,qBAAe,aAAa,YAAY,YAAY,SAAA,CAAU;AAC9D,aAAO,EAAE,aAAa,MAAM,YAAY,KAAA;AAAA,IAC1C;AAEA,UAAM,YAAY,SAAS,cAAc,EAAE;AAC3C,UAAM,cAAc,cAAc;AAElC,QAAI,cAAc,MAAM,YAAY,gBAAgB;AAClD,aAAO,EAAE,aAAa,OAAO,YAAY,eAAA;AAAA,IAC3C;AAEA,mBAAe,aAAa,YAAY,YAAY,SAAA,CAAU;AAC9D,WAAO,EAAE,aAAa,MAAM,YAAY,KAAA;AAAA,EAC1C,SAAS,OAAO;AACd,YAAQ,MAAM,uBAAuB,KAAK;AAC1C,WAAO,EAAE,aAAa,MAAM,YAAY,KAAA;AAAA,EAC1C;AACF;AAEA,MAAM,mBAAmB,CAAC,UAA2B;AACnD,iBAAe,gBAAgB,aAAa,OAAO,KAAK;AAC1D;AAEA,MAAM,gBAAgB,CACpB,KACA,WACA,eACgB;AAChB,QAAMA,WAAU,SAAS,cAAc,GAAG;AAC1C,MAAI,UAAWA,UAAQ,UAAU,IAAI,SAAS;AAC9C,MAAI,YAAY;AACd,WAAO,QAAQ,UAAU,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACnDA,eAAQ,aAAa,KAAK,KAAK;AAAA,IACjC,CAAC;AAAA,EACH;AACA,SAAOA;AACT;AAEA,MAAM,oBAAoB,CAAC,cAA8C;AACvE,QAAM,EAAE,UAAAC,WAAU,WAAAC,eAAc;AAChC,QAAM,SAAS,cAAc,UAAUD,UAAS,cAAc;AAAA,IAC5D,cAAc;AAAA,EAAA,CACf;AAED,SAAO,YAAYE;AACnB,SAAO,iBAAiB,SAAS,MAAM;AACrC,UAAM,cAAc;AAAA,MAClB,gBAAgB,aAAa;AAAA,IAAA;AAE/B,QAAI,aAAa;AAEf,gBAAU,MAAM,SAAS,GAAG,UAAU,YAAY;AAClD,gBAAU,MAAM,aAAa,UAAUD,WAAU,KAAK;AAEtD,uBAAiB,EAAE,GAAG,aAAa,QAAQ,MAAM;AAEjD,iBAAW,MAAM;AACf,kBAAU,MAAM,SAAS;AAAA,MAC3B,GAAG,GAAG;AAEN,iBAAW,MAAM;AACf,kBAAU,OAAA;AAAA,MACZ,GAAGA,WAAU,QAAQ,GAAG;AAAA,IAC1B;AAAA,EACF,CAAC;AAED,SAAO;AACT;AAEA,MAAM,mBAAmB,CAAC;AAAA,EACxB;AAAA,EACA;AACF,MAGM;AACJ,QAAM,OAAO,cAAc,KAAK,gBAAgB,SAAS,KAAK;AAAA,IAC5D,MAAM;AAAA,IACN,KAAK;AAAA,IACL,QAAQ;AAAA,EAAA,CACT;AACD,OAAK,YAAY;AAEjB,SAAOE,QAAgB;AAAA,IACrB,SAAS;AAAA,IACT,iBAAiB;AAAA,EAAA,CAClB;AACH;AAEA,MAAM,qBAAqB,CACzB,OACA,cACgB;AAChB,QAAM,EAAE,UAAAH,UAAAA,IAAa;AACrB,QAAM,UAAU,cAAc,OAAOA,UAAS,OAAO;AACrD,QAAM,OAAO,cAAc,OAAOA,UAAS,IAAI;AAC/C,QAAM,eAAe,MAAM,YAAY,MAAM;AAG7C,QAAM,QAAQ,cAAc,KAAKA,UAAS,KAAK;AAC/C,QAAM,YAAY;AAElB,QAAM,cAAc,kBAAkB,SAAS;AAE/C,UAAQ,OAAO,aAAa,KAAK;AAEjC,MAAI,MAAM,MAAM;AACd,UAAM,UAAU,cAAc,OAAOA,UAAS,IAAI;AAClD,YAAQ,YAAY,MAAM;AAC1B,YAAQ,OAAO,aAAa,OAAO,OAAO;AAAA,EAC5C;AAGA,MAAI,MAAM,QAAQ;AAChB,UAAM,MAAM,iBAAiB;AAAA,MAC3B,SAAS,MAAM,WAAW;AAAA,MAC1B,QAAQ,MAAM;AAAA,IAAA,CACf;AAED,YAAQ,YAAY,IAAI,OAAO;AAAA,EACjC;AAEA,OAAK,YAAY,OAAO;AACxB,SAAO;AACT;AAEA,MAAM,uBAAuB,CAAC,UAAkC;AAC9D,QAAM,EAAE,UAAAA,WAAU,YAAAI,gBAAe;AAEjC,QAAM,cAAc,cAAc,OAAOJ,UAAS,WAAW;AAC7D,QAAM,YAAY,cAAc,OAAOA,UAAS,WAAW;AAAA,IACzD,IAAIA,UAAS;AAAA,IACb,CAACI,YAAW,IAAI,GAAG,MAAM;AAAA,EAAA,CAC1B;AAED,QAAM,UAAU,mBAAmB,OAAO,SAAS;AACnD,YAAU,YAAY,OAAO;AAC7B,cAAY,YAAY,SAAS;AAEjC,SAAO;AACT;AAEA,MAAM,cAAc,OAAO;AAAA,EACzB;AACF,MAAiD;AAC/C,MAAI;AACF,UAAM,MAAM,YAAY,gBAAgB,KAAK;AAE7C,WAAO,MAAM,aAAa;AAAA,MACxB,OAAO;AAAA,MACP;AAAA,MACA,OAAO;AAAA,IAAA,CACR;AAAA,EACH,SAAS,OAAO;AACd,YAAQ,MAAM,2BAA2B,KAAK;AAC9C,WAAO;AAAA,EACT;AACF;AAEO,MAAM,iBAAiB,OAAO,EAAE,eAA2B;AAChE,QAAM,aAAa,gBAAA;AAGnB,MACE,CAAC,WAAW,eACZ,WAAW,cACX,CAAC,WAAW,WAAW,QACvB;AACA,WAAO,EAAE,SAAS,qBAAqB,WAAW,UAAU,EAAA;AAAA,EAC9D;AAGA,QAAM,WAAW,MAAM,YAAY,EAAE,UAAU;AAC/C,MAAI,CAAC,UAAU,MAAM,QAAQ,CAAC,GAAG;AAC/B,sBAAA;AACA,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,SAAS,MAAM,QAAQ,CAAC;AACtC,QAAM,cAAc;AAAA,IAClB,gBAAgB,aAAa;AAAA,EAAA;AAI/B,MAAI,aAAa,OAAO,MAAM,IAAI;AAChC,QAAI,CAAC,YAAY,UAAU,WAAW,aAAa;AACjD,aAAO,EAAE,SAAS,qBAAqB,WAAW,EAAA;AAAA,IACpD;AAAA,EACF,OAAO;AACL,sBAAA;AACA,qBAAiB,KAAK;AACtB,WAAO,EAAE,SAAS,qBAAqB,KAAK,EAAA;AAAA,EAC9C;AAEA,SAAO;AACT;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../source/composite/navigation/utility/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,cAAc,EACf,MAAM,SAAS,CAAC;AAGjB,KAAK,yBAAyB,GAAG;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,KAAK,uBAAuB,GAAG,yBAAyB,GAAG,cAAc,CAAC;AAolB1E,QAAA,MAAM,uBAAuB,GAAI,OAAO,uBAAuB;;;;;;;CAsHzD,CAAC;AAEP,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../source/composite/navigation/utility/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAIL,cAAc,EACf,MAAM,SAAS,CAAC;AAGjB,KAAK,yBAAyB,GAAG;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,KAAK,uBAAuB,GAAG,yBAAyB,GAAG,cAAc,CAAC;AAklB1E,QAAA,MAAM,uBAAuB,GAAI,OAAO,uBAAuB;;;;;;;CAqHzD,CAAC;AAEP,eAAe,uBAAuB,CAAC"}