@universityofmaryland/web-components-library 1.16.4 → 1.17.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (508) hide show
  1. package/README.md +1 -1
  2. package/dist/_event-Duz7QGRD.js.map +1 -1
  3. package/dist/bundle.d.ts +4 -5
  4. package/dist/bundle.d.ts.map +1 -1
  5. package/dist/bundle.js +17486 -16232
  6. package/dist/bundle.js.map +1 -1
  7. package/dist/cdn.js +1409 -1433
  8. package/dist/cdn.js.map +1 -1
  9. package/dist/components/accordion.d.ts +1 -1
  10. package/dist/components/accordion.js +3 -2
  11. package/dist/components/actions.d.ts +1 -1
  12. package/dist/components/actions.js +2 -1
  13. package/dist/components/alert.d.ts +1 -1
  14. package/dist/components/alert.js +7 -4
  15. package/dist/components/brand.d.ts +1 -1
  16. package/dist/components/brand.js +5 -3
  17. package/dist/components/card.d.ts +1 -1
  18. package/dist/components/card.js +13 -7
  19. package/dist/components/carousel.d.ts +1 -1
  20. package/dist/components/carousel.js +13 -7
  21. package/dist/components/feed.d.ts +1 -1
  22. package/dist/components/feed.js +21 -7
  23. package/dist/components/footer.d.ts +1 -1
  24. package/dist/components/footer.js +3 -2
  25. package/dist/components/hero.d.ts +1 -1
  26. package/dist/components/hero.js +13 -7
  27. package/dist/components/layout.d.ts +1 -1
  28. package/dist/components/layout.js +15 -8
  29. package/dist/components/media.d.ts +1 -1
  30. package/dist/components/media.js +5 -3
  31. package/dist/components/navigation.d.ts +1 -1
  32. package/dist/components/navigation.js +13 -7
  33. package/dist/components/pathway.d.ts +1 -1
  34. package/dist/components/pathway.js +5 -3
  35. package/dist/components/person.d.ts +1 -1
  36. package/dist/components/person.js +6 -3
  37. package/dist/components/quote.d.ts +1 -1
  38. package/dist/components/quote.js +3 -2
  39. package/dist/components/slider.d.ts +1 -1
  40. package/dist/components/slider.js +5 -3
  41. package/dist/components/social.d.ts +1 -1
  42. package/dist/components/social.js +3 -2
  43. package/dist/components/stat.d.ts +1 -1
  44. package/dist/components/stat.js +3 -2
  45. package/dist/components/tab.d.ts +1 -1
  46. package/dist/components/tab.js +3 -2
  47. package/dist/components/text.d.ts +1 -1
  48. package/dist/components/text.js +2 -1
  49. package/dist/content.d.ts +0 -4
  50. package/dist/content.js +30 -14
  51. package/dist/content.js.map +1 -1
  52. package/dist/exports/bundle.d.ts +4 -5
  53. package/dist/exports/bundle.d.ts.map +1 -1
  54. package/dist/exports/cdn.d.ts +1 -1
  55. package/dist/exports/cdn.d.ts.map +1 -1
  56. package/dist/exports/content.d.ts +9 -1
  57. package/dist/exports/content.d.ts.map +1 -1
  58. package/dist/exports/feed.d.ts +4 -1
  59. package/dist/exports/feed.d.ts.map +1 -1
  60. package/dist/exports/interactive.d.ts +6 -1
  61. package/dist/exports/interactive.d.ts.map +1 -1
  62. package/dist/exports/loader.d.ts +1 -0
  63. package/dist/exports/loader.d.ts.map +1 -1
  64. package/dist/exports/structural.d.ts +5 -1
  65. package/dist/exports/structural.d.ts.map +1 -1
  66. package/dist/feed.d.ts +0 -4
  67. package/dist/feed.js +13 -9
  68. package/dist/feed.js.map +1 -1
  69. package/dist/{highlight-BAbE0FOj.js → index--j6GLFih.js} +35 -31
  70. package/dist/index--j6GLFih.js.map +1 -0
  71. package/dist/index-BIkAyrlD.js +224 -0
  72. package/dist/index-BIkAyrlD.js.map +1 -0
  73. package/dist/{video-C2XikZ0X.js → index-BPYb3H7i.js} +60 -56
  74. package/dist/index-BPYb3H7i.js.map +1 -0
  75. package/dist/index-BXNlNViX.js +45 -0
  76. package/dist/index-BXNlNViX.js.map +1 -0
  77. package/dist/{display-CLcyGpEO.js → index-BgXjsdgw.js} +20 -16
  78. package/dist/index-BgXjsdgw.js.map +1 -0
  79. package/dist/{chevron-scroll-sN9hWLoU.js → index-BqwGw7fw.js} +25 -21
  80. package/dist/index-BqwGw7fw.js.map +1 -0
  81. package/dist/index-BrpAs-2C.js +55 -0
  82. package/dist/index-BrpAs-2C.js.map +1 -0
  83. package/dist/{sticky-columns-CRvJYWgm.js → index-BuxmclJv.js} +76 -72
  84. package/dist/index-BuxmclJv.js.map +1 -0
  85. package/dist/{sticky-CU-Yvr4D.js → index-CGx0DywL.js} +356 -349
  86. package/dist/index-CGx0DywL.js.map +1 -0
  87. package/dist/{display-Dt1OomBK.js → index-CSEUxTcU.js} +17 -13
  88. package/dist/index-CSEUxTcU.js.map +1 -0
  89. package/dist/index-CoevyLaX.js +41 -0
  90. package/dist/index-CoevyLaX.js.map +1 -0
  91. package/dist/index-CwiTV8_N.js +63 -0
  92. package/dist/index-CwiTV8_N.js.map +1 -0
  93. package/dist/index-DOqPBmZz.js +53 -0
  94. package/dist/index-DOqPBmZz.js.map +1 -0
  95. package/dist/{hero-CJSHG7uN.js → index-Ddu-BAv9.js} +44 -41
  96. package/dist/index-Ddu-BAv9.js.map +1 -0
  97. package/dist/index-DvXDxhj1.js +39 -0
  98. package/dist/index-DvXDxhj1.js.map +1 -0
  99. package/dist/index-OptCax2o.js +66 -0
  100. package/dist/index-OptCax2o.js.map +1 -0
  101. package/dist/index-XkoJrs3Q.js +24 -0
  102. package/dist/index-XkoJrs3Q.js.map +1 -0
  103. package/dist/{minimal-lg-8HdqL.js → index-ZR5YJ3lO.js} +55 -51
  104. package/dist/index-ZR5YJ3lO.js.map +1 -0
  105. package/dist/index-iRIPq52d.js +245 -0
  106. package/dist/index-iRIPq52d.js.map +1 -0
  107. package/dist/index-kYufzuXV.js +65 -0
  108. package/dist/index-kYufzuXV.js.map +1 -0
  109. package/dist/index.d.ts +5 -4
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.js +109 -10
  112. package/dist/index.js.map +1 -1
  113. package/dist/interactive.d.ts +0 -4
  114. package/dist/interactive.js +21 -13
  115. package/dist/interactive.js.map +1 -1
  116. package/dist/loader-BppZi79o.js +124 -0
  117. package/dist/loader-BppZi79o.js.map +1 -0
  118. package/dist/structural.d.ts +0 -4
  119. package/dist/structural.js +18 -12
  120. package/dist/structural.js.map +1 -1
  121. package/dist/web-components/_event.d.ts.map +1 -0
  122. package/dist/{api → web-components}/_types.d.ts.map +1 -1
  123. package/dist/web-components/accordion/index.d.ts +2 -0
  124. package/dist/web-components/accordion/index.d.ts.map +1 -0
  125. package/dist/web-components/accordion/item.d.ts +3 -0
  126. package/dist/web-components/accordion/item.d.ts.map +1 -0
  127. package/dist/web-components/actions/display.d.ts +4 -0
  128. package/dist/web-components/actions/display.d.ts.map +1 -0
  129. package/dist/web-components/actions/index.d.ts +2 -0
  130. package/dist/web-components/actions/index.d.ts.map +1 -0
  131. package/dist/web-components/alert/_model.d.ts.map +1 -0
  132. package/dist/web-components/alert/index.d.ts +4 -0
  133. package/dist/web-components/alert/index.d.ts.map +1 -0
  134. package/dist/web-components/alert/page.d.ts +4 -0
  135. package/dist/web-components/alert/page.d.ts.map +1 -0
  136. package/dist/web-components/alert/promo.d.ts +4 -0
  137. package/dist/web-components/alert/promo.d.ts.map +1 -0
  138. package/dist/web-components/alert/site.d.ts +4 -0
  139. package/dist/web-components/alert/site.d.ts.map +1 -0
  140. package/dist/web-components/brand/chevron-scroll.d.ts +4 -0
  141. package/dist/web-components/brand/chevron-scroll.d.ts.map +1 -0
  142. package/dist/web-components/brand/index.d.ts +3 -0
  143. package/dist/web-components/brand/index.d.ts.map +1 -0
  144. package/dist/web-components/brand/stack.d.ts +4 -0
  145. package/dist/web-components/brand/stack.d.ts.map +1 -0
  146. package/dist/{api → web-components}/card/_model.d.ts +1 -1
  147. package/dist/web-components/card/_model.d.ts.map +1 -0
  148. package/dist/web-components/card/article.d.ts +4 -0
  149. package/dist/web-components/card/article.d.ts.map +1 -0
  150. package/dist/web-components/card/event.d.ts +4 -0
  151. package/dist/web-components/card/event.d.ts.map +1 -0
  152. package/dist/web-components/card/icon.d.ts +4 -0
  153. package/dist/web-components/card/icon.d.ts.map +1 -0
  154. package/dist/web-components/card/index.d.ts +7 -0
  155. package/dist/web-components/card/index.d.ts.map +1 -0
  156. package/dist/web-components/card/overlay.d.ts +4 -0
  157. package/dist/web-components/card/overlay.d.ts.map +1 -0
  158. package/dist/web-components/card/standard.d.ts +3 -0
  159. package/dist/web-components/card/standard.d.ts.map +1 -0
  160. package/dist/web-components/card/video.d.ts +4 -0
  161. package/dist/web-components/card/video.d.ts.map +1 -0
  162. package/dist/web-components/carousel/base.d.ts +4 -0
  163. package/dist/web-components/carousel/base.d.ts.map +1 -0
  164. package/dist/web-components/carousel/cards.d.ts +4 -0
  165. package/dist/web-components/carousel/cards.d.ts.map +1 -0
  166. package/dist/web-components/carousel/image/multiple.d.ts +4 -0
  167. package/dist/web-components/carousel/image/multiple.d.ts.map +1 -0
  168. package/dist/web-components/carousel/image/single.d.ts +4 -0
  169. package/dist/web-components/carousel/image/single.d.ts.map +1 -0
  170. package/dist/web-components/carousel/index.d.ts +7 -0
  171. package/dist/web-components/carousel/index.d.ts.map +1 -0
  172. package/dist/web-components/carousel/thumbnail.d.ts +4 -0
  173. package/dist/web-components/carousel/thumbnail.d.ts.map +1 -0
  174. package/dist/web-components/carousel/wide.d.ts +4 -0
  175. package/dist/web-components/carousel/wide.d.ts.map +1 -0
  176. package/dist/web-components/feed/_types.d.ts.map +1 -0
  177. package/dist/web-components/feed/alert/index.d.ts +3 -0
  178. package/dist/web-components/feed/alert/index.d.ts.map +1 -0
  179. package/dist/web-components/feed/events/common.d.ts.map +1 -0
  180. package/dist/web-components/feed/events/grid.d.ts +4 -0
  181. package/dist/web-components/feed/events/grid.d.ts.map +1 -0
  182. package/dist/web-components/feed/events/grouped.d.ts +4 -0
  183. package/dist/web-components/feed/events/grouped.d.ts.map +1 -0
  184. package/dist/web-components/feed/events/list.d.ts +4 -0
  185. package/dist/web-components/feed/events/list.d.ts.map +1 -0
  186. package/dist/web-components/feed/experts/bio.d.ts +4 -0
  187. package/dist/web-components/feed/experts/bio.d.ts.map +1 -0
  188. package/dist/web-components/feed/experts/grid.d.ts +4 -0
  189. package/dist/web-components/feed/experts/grid.d.ts.map +1 -0
  190. package/dist/web-components/feed/experts/list.d.ts +4 -0
  191. package/dist/web-components/feed/experts/list.d.ts.map +1 -0
  192. package/dist/web-components/feed/index.d.ts +11 -0
  193. package/dist/web-components/feed/index.d.ts.map +1 -0
  194. package/dist/web-components/feed/news/common.d.ts.map +1 -0
  195. package/dist/web-components/feed/news/featured.d.ts +4 -0
  196. package/dist/web-components/feed/news/featured.d.ts.map +1 -0
  197. package/dist/web-components/feed/news/grid.d.ts +4 -0
  198. package/dist/web-components/feed/news/grid.d.ts.map +1 -0
  199. package/dist/web-components/feed/news/list.d.ts +4 -0
  200. package/dist/web-components/feed/news/list.d.ts.map +1 -0
  201. package/dist/web-components/footer/index.d.ts +2 -0
  202. package/dist/web-components/footer/index.d.ts.map +1 -0
  203. package/dist/{api → web-components}/footer/options.d.ts +2 -2
  204. package/dist/web-components/footer/options.d.ts.map +1 -0
  205. package/dist/web-components/hero/base.d.ts +4 -0
  206. package/dist/web-components/hero/base.d.ts.map +1 -0
  207. package/dist/web-components/hero/custom/expand.d.ts +4 -0
  208. package/dist/web-components/hero/custom/expand.d.ts.map +1 -0
  209. package/dist/web-components/hero/custom/grid.d.ts +4 -0
  210. package/dist/web-components/hero/custom/grid.d.ts.map +1 -0
  211. package/dist/web-components/hero/custom/video.d.ts +4 -0
  212. package/dist/web-components/hero/custom/video.d.ts.map +1 -0
  213. package/dist/web-components/hero/index.d.ts +7 -0
  214. package/dist/web-components/hero/index.d.ts.map +1 -0
  215. package/dist/web-components/hero/logo.d.ts +4 -0
  216. package/dist/web-components/hero/logo.d.ts.map +1 -0
  217. package/dist/web-components/hero/minimal.d.ts +4 -0
  218. package/dist/web-components/hero/minimal.d.ts.map +1 -0
  219. package/dist/web-components/index.d.ts +41 -0
  220. package/dist/web-components/index.d.ts.map +1 -0
  221. package/dist/web-components/layout/box-logo.d.ts +4 -0
  222. package/dist/web-components/layout/box-logo.d.ts.map +1 -0
  223. package/dist/web-components/layout/image-expand.d.ts +4 -0
  224. package/dist/web-components/layout/image-expand.d.ts.map +1 -0
  225. package/dist/web-components/layout/index.d.ts +8 -0
  226. package/dist/web-components/layout/index.d.ts.map +1 -0
  227. package/dist/web-components/layout/modal.d.ts +4 -0
  228. package/dist/web-components/layout/modal.d.ts.map +1 -0
  229. package/dist/web-components/layout/scroll-top.d.ts +4 -0
  230. package/dist/web-components/layout/scroll-top.d.ts.map +1 -0
  231. package/dist/web-components/layout/section-intro/common.d.ts.map +1 -0
  232. package/dist/web-components/layout/section-intro/small.d.ts +4 -0
  233. package/dist/web-components/layout/section-intro/small.d.ts.map +1 -0
  234. package/dist/web-components/layout/section-intro/wide.d.ts +4 -0
  235. package/dist/web-components/layout/section-intro/wide.d.ts.map +1 -0
  236. package/dist/web-components/layout/sticky-columns.d.ts +4 -0
  237. package/dist/web-components/layout/sticky-columns.d.ts.map +1 -0
  238. package/dist/web-components/media/gif.d.ts +4 -0
  239. package/dist/web-components/media/gif.d.ts.map +1 -0
  240. package/dist/web-components/media/index.d.ts +3 -0
  241. package/dist/web-components/media/index.d.ts.map +1 -0
  242. package/dist/web-components/media/inline/index.d.ts +3 -0
  243. package/dist/web-components/media/inline/index.d.ts.map +1 -0
  244. package/dist/web-components/navigation/breadcrumb.d.ts +3 -0
  245. package/dist/web-components/navigation/breadcrumb.d.ts.map +1 -0
  246. package/dist/web-components/navigation/common.d.ts.map +1 -0
  247. package/dist/{api → web-components}/navigation/drawer.d.ts +2 -2
  248. package/dist/web-components/navigation/drawer.d.ts.map +1 -0
  249. package/dist/{api → web-components}/navigation/header.d.ts +2 -2
  250. package/dist/web-components/navigation/header.d.ts.map +1 -0
  251. package/dist/web-components/navigation/index.d.ts +7 -0
  252. package/dist/web-components/navigation/index.d.ts.map +1 -0
  253. package/dist/{api → web-components}/navigation/item.d.ts +2 -2
  254. package/dist/web-components/navigation/item.d.ts.map +1 -0
  255. package/dist/{api → web-components}/navigation/slider.d.ts +2 -2
  256. package/dist/web-components/navigation/slider.d.ts.map +1 -0
  257. package/dist/web-components/navigation/sticky.d.ts +3 -0
  258. package/dist/web-components/navigation/sticky.d.ts.map +1 -0
  259. package/dist/web-components/pathway/highlight.d.ts +4 -0
  260. package/dist/web-components/pathway/highlight.d.ts.map +1 -0
  261. package/dist/web-components/pathway/image.d.ts +4 -0
  262. package/dist/web-components/pathway/image.d.ts.map +1 -0
  263. package/dist/web-components/pathway/index.d.ts +3 -0
  264. package/dist/web-components/pathway/index.d.ts.map +1 -0
  265. package/dist/web-components/person/bio.d.ts +4 -0
  266. package/dist/web-components/person/bio.d.ts.map +1 -0
  267. package/dist/{api → web-components}/person/common.d.ts +1 -1
  268. package/dist/web-components/person/common.d.ts.map +1 -0
  269. package/dist/web-components/person/display.d.ts +4 -0
  270. package/dist/web-components/person/display.d.ts.map +1 -0
  271. package/dist/web-components/person/hero.d.ts +4 -0
  272. package/dist/web-components/person/hero.d.ts.map +1 -0
  273. package/dist/web-components/person/index.d.ts +4 -0
  274. package/dist/web-components/person/index.d.ts.map +1 -0
  275. package/dist/web-components/quote/display.d.ts +4 -0
  276. package/dist/web-components/quote/display.d.ts.map +1 -0
  277. package/dist/web-components/quote/index.d.ts +2 -0
  278. package/dist/web-components/quote/index.d.ts.map +1 -0
  279. package/dist/web-components/slider/event/display.d.ts +4 -0
  280. package/dist/web-components/slider/event/display.d.ts.map +1 -0
  281. package/dist/web-components/slider/event/feed.d.ts +4 -0
  282. package/dist/web-components/slider/event/feed.d.ts.map +1 -0
  283. package/dist/web-components/slider/index.d.ts +3 -0
  284. package/dist/web-components/slider/index.d.ts.map +1 -0
  285. package/dist/web-components/social/index.d.ts +2 -0
  286. package/dist/web-components/social/index.d.ts.map +1 -0
  287. package/dist/web-components/social/sharing.d.ts +4 -0
  288. package/dist/web-components/social/sharing.d.ts.map +1 -0
  289. package/dist/web-components/stat/display.d.ts +4 -0
  290. package/dist/web-components/stat/display.d.ts.map +1 -0
  291. package/dist/web-components/stat/index.d.ts +2 -0
  292. package/dist/web-components/stat/index.d.ts.map +1 -0
  293. package/dist/web-components/tab/display.d.ts +4 -0
  294. package/dist/web-components/tab/display.d.ts.map +1 -0
  295. package/dist/web-components/tab/index.d.ts +2 -0
  296. package/dist/web-components/tab/index.d.ts.map +1 -0
  297. package/dist/web-components/text/event-lockup.d.ts +4 -0
  298. package/dist/web-components/text/event-lockup.d.ts.map +1 -0
  299. package/dist/web-components/text/index.d.ts +2 -0
  300. package/dist/web-components/text/index.d.ts.map +1 -0
  301. package/package.json +10 -17
  302. package/dist/api/_event.d.ts.map +0 -1
  303. package/dist/api/accordion/index.d.ts +0 -2
  304. package/dist/api/accordion/index.d.ts.map +0 -1
  305. package/dist/api/accordion/item.d.ts +0 -3
  306. package/dist/api/accordion/item.d.ts.map +0 -1
  307. package/dist/api/actions/display.d.ts +0 -4
  308. package/dist/api/actions/display.d.ts.map +0 -1
  309. package/dist/api/actions/index.d.ts +0 -2
  310. package/dist/api/actions/index.d.ts.map +0 -1
  311. package/dist/api/alert/_model.d.ts.map +0 -1
  312. package/dist/api/alert/index.d.ts +0 -4
  313. package/dist/api/alert/index.d.ts.map +0 -1
  314. package/dist/api/alert/page.d.ts +0 -4
  315. package/dist/api/alert/page.d.ts.map +0 -1
  316. package/dist/api/alert/promo.d.ts +0 -4
  317. package/dist/api/alert/promo.d.ts.map +0 -1
  318. package/dist/api/alert/site.d.ts +0 -4
  319. package/dist/api/alert/site.d.ts.map +0 -1
  320. package/dist/api/brand/chevron-scroll.d.ts +0 -4
  321. package/dist/api/brand/chevron-scroll.d.ts.map +0 -1
  322. package/dist/api/brand/index.d.ts +0 -3
  323. package/dist/api/brand/index.d.ts.map +0 -1
  324. package/dist/api/brand/stack.d.ts +0 -4
  325. package/dist/api/brand/stack.d.ts.map +0 -1
  326. package/dist/api/card/_model.d.ts.map +0 -1
  327. package/dist/api/card/article.d.ts +0 -4
  328. package/dist/api/card/article.d.ts.map +0 -1
  329. package/dist/api/card/event.d.ts +0 -4
  330. package/dist/api/card/event.d.ts.map +0 -1
  331. package/dist/api/card/icon.d.ts +0 -4
  332. package/dist/api/card/icon.d.ts.map +0 -1
  333. package/dist/api/card/index.d.ts +0 -7
  334. package/dist/api/card/index.d.ts.map +0 -1
  335. package/dist/api/card/overlay.d.ts +0 -4
  336. package/dist/api/card/overlay.d.ts.map +0 -1
  337. package/dist/api/card/standard.d.ts +0 -3
  338. package/dist/api/card/standard.d.ts.map +0 -1
  339. package/dist/api/card/video.d.ts +0 -4
  340. package/dist/api/card/video.d.ts.map +0 -1
  341. package/dist/api/carousel/base.d.ts +0 -4
  342. package/dist/api/carousel/base.d.ts.map +0 -1
  343. package/dist/api/carousel/cards.d.ts +0 -4
  344. package/dist/api/carousel/cards.d.ts.map +0 -1
  345. package/dist/api/carousel/image/multiple.d.ts +0 -4
  346. package/dist/api/carousel/image/multiple.d.ts.map +0 -1
  347. package/dist/api/carousel/image/single.d.ts +0 -4
  348. package/dist/api/carousel/image/single.d.ts.map +0 -1
  349. package/dist/api/carousel/index.d.ts +0 -7
  350. package/dist/api/carousel/index.d.ts.map +0 -1
  351. package/dist/api/carousel/thumbnail.d.ts +0 -4
  352. package/dist/api/carousel/thumbnail.d.ts.map +0 -1
  353. package/dist/api/carousel/wide.d.ts +0 -4
  354. package/dist/api/carousel/wide.d.ts.map +0 -1
  355. package/dist/api/feed/_types.d.ts.map +0 -1
  356. package/dist/api/feed/alert/index.d.ts +0 -3
  357. package/dist/api/feed/alert/index.d.ts.map +0 -1
  358. package/dist/api/feed/events/common.d.ts.map +0 -1
  359. package/dist/api/feed/events/grid.d.ts +0 -4
  360. package/dist/api/feed/events/grid.d.ts.map +0 -1
  361. package/dist/api/feed/events/grouped.d.ts +0 -4
  362. package/dist/api/feed/events/grouped.d.ts.map +0 -1
  363. package/dist/api/feed/events/list.d.ts +0 -4
  364. package/dist/api/feed/events/list.d.ts.map +0 -1
  365. package/dist/api/feed/index.d.ts +0 -7
  366. package/dist/api/feed/index.d.ts.map +0 -1
  367. package/dist/api/feed/news/common.d.ts.map +0 -1
  368. package/dist/api/feed/news/featured.d.ts +0 -4
  369. package/dist/api/feed/news/featured.d.ts.map +0 -1
  370. package/dist/api/feed/news/grid.d.ts +0 -4
  371. package/dist/api/feed/news/grid.d.ts.map +0 -1
  372. package/dist/api/feed/news/list.d.ts +0 -4
  373. package/dist/api/feed/news/list.d.ts.map +0 -1
  374. package/dist/api/footer/index.d.ts +0 -2
  375. package/dist/api/footer/index.d.ts.map +0 -1
  376. package/dist/api/footer/options.d.ts.map +0 -1
  377. package/dist/api/hero/base.d.ts +0 -4
  378. package/dist/api/hero/base.d.ts.map +0 -1
  379. package/dist/api/hero/custom/expand.d.ts +0 -4
  380. package/dist/api/hero/custom/expand.d.ts.map +0 -1
  381. package/dist/api/hero/custom/grid.d.ts +0 -4
  382. package/dist/api/hero/custom/grid.d.ts.map +0 -1
  383. package/dist/api/hero/custom/video.d.ts +0 -4
  384. package/dist/api/hero/custom/video.d.ts.map +0 -1
  385. package/dist/api/hero/index.d.ts +0 -7
  386. package/dist/api/hero/index.d.ts.map +0 -1
  387. package/dist/api/hero/logo.d.ts +0 -4
  388. package/dist/api/hero/logo.d.ts.map +0 -1
  389. package/dist/api/hero/minimal.d.ts +0 -4
  390. package/dist/api/hero/minimal.d.ts.map +0 -1
  391. package/dist/api/index.d.ts +0 -161
  392. package/dist/api/index.d.ts.map +0 -1
  393. package/dist/api/layout/box-logo.d.ts +0 -4
  394. package/dist/api/layout/box-logo.d.ts.map +0 -1
  395. package/dist/api/layout/image-expand.d.ts +0 -4
  396. package/dist/api/layout/image-expand.d.ts.map +0 -1
  397. package/dist/api/layout/index.d.ts +0 -8
  398. package/dist/api/layout/index.d.ts.map +0 -1
  399. package/dist/api/layout/modal.d.ts +0 -3
  400. package/dist/api/layout/modal.d.ts.map +0 -1
  401. package/dist/api/layout/scroll-top.d.ts +0 -3
  402. package/dist/api/layout/scroll-top.d.ts.map +0 -1
  403. package/dist/api/layout/section-intro/common.d.ts.map +0 -1
  404. package/dist/api/layout/section-intro/small.d.ts +0 -4
  405. package/dist/api/layout/section-intro/small.d.ts.map +0 -1
  406. package/dist/api/layout/section-intro/wide.d.ts +0 -4
  407. package/dist/api/layout/section-intro/wide.d.ts.map +0 -1
  408. package/dist/api/layout/sticky-columns.d.ts +0 -4
  409. package/dist/api/layout/sticky-columns.d.ts.map +0 -1
  410. package/dist/api/media/gif.d.ts +0 -3
  411. package/dist/api/media/gif.d.ts.map +0 -1
  412. package/dist/api/media/index.d.ts +0 -3
  413. package/dist/api/media/index.d.ts.map +0 -1
  414. package/dist/api/media/inline/index.d.ts +0 -3
  415. package/dist/api/media/inline/index.d.ts.map +0 -1
  416. package/dist/api/navigation/breadcrumb.d.ts +0 -3
  417. package/dist/api/navigation/breadcrumb.d.ts.map +0 -1
  418. package/dist/api/navigation/common.d.ts.map +0 -1
  419. package/dist/api/navigation/drawer.d.ts.map +0 -1
  420. package/dist/api/navigation/header.d.ts.map +0 -1
  421. package/dist/api/navigation/index.d.ts +0 -7
  422. package/dist/api/navigation/index.d.ts.map +0 -1
  423. package/dist/api/navigation/item.d.ts.map +0 -1
  424. package/dist/api/navigation/slider.d.ts.map +0 -1
  425. package/dist/api/navigation/sticky.d.ts +0 -3
  426. package/dist/api/navigation/sticky.d.ts.map +0 -1
  427. package/dist/api/pathway/highlight.d.ts +0 -3
  428. package/dist/api/pathway/highlight.d.ts.map +0 -1
  429. package/dist/api/pathway/image.d.ts +0 -3
  430. package/dist/api/pathway/image.d.ts.map +0 -1
  431. package/dist/api/pathway/index.d.ts +0 -3
  432. package/dist/api/pathway/index.d.ts.map +0 -1
  433. package/dist/api/person/bio.d.ts +0 -4
  434. package/dist/api/person/bio.d.ts.map +0 -1
  435. package/dist/api/person/common.d.ts.map +0 -1
  436. package/dist/api/person/display.d.ts +0 -4
  437. package/dist/api/person/display.d.ts.map +0 -1
  438. package/dist/api/person/hero.d.ts +0 -4
  439. package/dist/api/person/hero.d.ts.map +0 -1
  440. package/dist/api/person/index.d.ts +0 -4
  441. package/dist/api/person/index.d.ts.map +0 -1
  442. package/dist/api/quote/display.d.ts +0 -4
  443. package/dist/api/quote/display.d.ts.map +0 -1
  444. package/dist/api/quote/index.d.ts +0 -2
  445. package/dist/api/quote/index.d.ts.map +0 -1
  446. package/dist/api/slider/event/display.d.ts +0 -4
  447. package/dist/api/slider/event/display.d.ts.map +0 -1
  448. package/dist/api/slider/event/feed.d.ts +0 -4
  449. package/dist/api/slider/event/feed.d.ts.map +0 -1
  450. package/dist/api/slider/index.d.ts +0 -3
  451. package/dist/api/slider/index.d.ts.map +0 -1
  452. package/dist/api/social/index.d.ts +0 -2
  453. package/dist/api/social/index.d.ts.map +0 -1
  454. package/dist/api/social/sharing.d.ts +0 -4
  455. package/dist/api/social/sharing.d.ts.map +0 -1
  456. package/dist/api/stat/display.d.ts +0 -4
  457. package/dist/api/stat/display.d.ts.map +0 -1
  458. package/dist/api/stat/index.d.ts +0 -2
  459. package/dist/api/stat/index.d.ts.map +0 -1
  460. package/dist/api/tab/display.d.ts +0 -4
  461. package/dist/api/tab/display.d.ts.map +0 -1
  462. package/dist/api/tab/index.d.ts +0 -2
  463. package/dist/api/tab/index.d.ts.map +0 -1
  464. package/dist/api/text/event-lockup.d.ts +0 -4
  465. package/dist/api/text/event-lockup.d.ts.map +0 -1
  466. package/dist/api/text/index.d.ts +0 -2
  467. package/dist/api/text/index.d.ts.map +0 -1
  468. package/dist/chevron-scroll-sN9hWLoU.js.map +0 -1
  469. package/dist/display-BCuspULn.js +0 -37
  470. package/dist/display-BCuspULn.js.map +0 -1
  471. package/dist/display-BURSSsTh.js +0 -62
  472. package/dist/display-BURSSsTh.js.map +0 -1
  473. package/dist/display-CLcyGpEO.js.map +0 -1
  474. package/dist/display-Dt1OomBK.js.map +0 -1
  475. package/dist/event-lockup-DYOdwoC5.js +0 -41
  476. package/dist/event-lockup-DYOdwoC5.js.map +0 -1
  477. package/dist/feed-DbSsTiki.js +0 -51
  478. package/dist/feed-DbSsTiki.js.map +0 -1
  479. package/dist/gif-Bv0nF1ip.js +0 -49
  480. package/dist/gif-Bv0nF1ip.js.map +0 -1
  481. package/dist/hero-CJSHG7uN.js.map +0 -1
  482. package/dist/highlight-BAbE0FOj.js.map +0 -1
  483. package/dist/item-CmgWZBOy.js +0 -35
  484. package/dist/item-CmgWZBOy.js.map +0 -1
  485. package/dist/list--1BnmUBS.js +0 -153
  486. package/dist/list--1BnmUBS.js.map +0 -1
  487. package/dist/loader-DMOMf4KN.js +0 -235
  488. package/dist/loader-DMOMf4KN.js.map +0 -1
  489. package/dist/minimal-lg-8HdqL.js.map +0 -1
  490. package/dist/options-CK6woa0h.js +0 -61
  491. package/dist/options-CK6woa0h.js.map +0 -1
  492. package/dist/sharing-BdbhS9ui.js +0 -20
  493. package/dist/sharing-BdbhS9ui.js.map +0 -1
  494. package/dist/site-BhZ-sVOW.js +0 -59
  495. package/dist/site-BhZ-sVOW.js.map +0 -1
  496. package/dist/sticky-CU-Yvr4D.js.map +0 -1
  497. package/dist/sticky-columns-CRvJYWgm.js.map +0 -1
  498. package/dist/video-C2XikZ0X.js.map +0 -1
  499. package/dist/wide-B08z0PJj.js +0 -220
  500. package/dist/wide-B08z0PJj.js.map +0 -1
  501. /package/dist/{api → web-components}/_event.d.ts +0 -0
  502. /package/dist/{api → web-components}/_types.d.ts +0 -0
  503. /package/dist/{api → web-components}/alert/_model.d.ts +0 -0
  504. /package/dist/{api → web-components}/feed/_types.d.ts +0 -0
  505. /package/dist/{api → web-components}/feed/events/common.d.ts +0 -0
  506. /package/dist/{api → web-components}/feed/news/common.d.ts +0 -0
  507. /package/dist/{api → web-components}/layout/section-intro/common.d.ts +0 -0
  508. /package/dist/{api → web-components}/navigation/common.d.ts +0 -0
@@ -1,10 +1,10 @@
1
1
  import { card as r } from "@universityofmaryland/web-elements-library/composite";
2
+ import * as b from "@universityofmaryland/web-utilities-library/validation";
3
+ import { Slots as t, Register as l, Model as T, Attributes as a, Lifecycle as D } from "@universityofmaryland/web-model-library";
2
4
  import { toUMDElement as n } from "@universityofmaryland/web-utilities-library/adapters";
3
- import { Slots as t, Register as l, Model as w, Attributes as a, Lifecycle as y } from "@universityofmaryland/web-model-library";
4
5
  import { e as c } from "./_event-Duz7QGRD.js";
5
- import * as f from "@universityofmaryland/web-utilities-library/validation";
6
- import { createStyledSlotOrClone as b } from "@universityofmaryland/web-utilities-library/elements";
7
- const k = ({ tagName: e }) => {
6
+ import { createStyledSlotOrClone as S } from "@universityofmaryland/web-utilities-library/elements";
7
+ const C = ({ tagName: e }) => {
8
8
  const i = {
9
9
  headline: {
10
10
  required: !0,
@@ -12,7 +12,7 @@ const k = ({ tagName: e }) => {
12
12
  },
13
13
  body: t.element.allowed.text
14
14
  }, d = (o) => ({
15
- image: f.getValidatedSlotImage({
15
+ image: b.getValidatedSlotImage({
16
16
  element: o,
17
17
  slotName: t.name.assets.image
18
18
  }),
@@ -24,31 +24,27 @@ const k = ({ tagName: e }) => {
24
24
  isTransparent: a.isVisual.transparent({ element: o }),
25
25
  isThemeDark: a.isTheme.dark({ element: o })
26
26
  }), s = (o) => {
27
- const u = a.isVisual.aligned({ element: o }), v = a.isVisual.bordered({ element: o }), p = a.isDisplay.list({ element: o }), m = d(o);
28
- return p ? r.list({
27
+ const u = a.isVisual.aligned({ element: o }), k = a.isVisual.bordered({ element: o }), x = a.isDisplay.list({ element: o }), m = d(o);
28
+ return x ? r.list({
29
29
  ...m,
30
30
  isAligned: u
31
31
  }) : r.block({
32
32
  ...m,
33
33
  isAligned: u,
34
- hasBorder: v
34
+ hasBorder: k
35
35
  });
36
36
  };
37
37
  return () => {
38
38
  l.registerWebComponent({
39
39
  name: e,
40
- element: w.createCustomElement({
40
+ element: T.createCustomElement({
41
41
  tagName: e,
42
42
  slots: i,
43
43
  createComponent: s
44
44
  })
45
45
  });
46
46
  };
47
- };
48
- var h = k;
49
- const x = "umd-element-article", C = h({ tagName: x });
50
- var j = C;
51
- const D = "umd-element-event", T = {
47
+ }, M = "umd-element-article", g = C({ tagName: M }), N = "umd-element-event", E = {
52
48
  headline: {
53
49
  ...t.element.allowed.headline,
54
50
  required: !0
@@ -60,7 +56,7 @@ const D = "umd-element-event", T = {
60
56
  image: t.element.allowed.imageLink,
61
57
  eyebrow: t.element.allowed.eyebrow,
62
58
  actions: t.element.allowed.actions
63
- }, S = (e) => {
59
+ }, V = (e) => {
64
60
  const i = c(e);
65
61
  if (!i)
66
62
  return { element: document.createElement("div"), styles: "" };
@@ -122,34 +118,30 @@ const D = "umd-element-event", T = {
122
118
  isTransparent: a.isVisual.transparent({ element: e }),
123
119
  text: t.text.default({ element: e })
124
120
  });
125
- }, $ = l.webComponent({
126
- tagName: D,
127
- slots: T,
128
- createComponent: S
129
- });
130
- var F = $;
131
- const N = "umd-element-card-icon", M = {
121
+ }, f = l.webComponent({
122
+ tagName: N,
123
+ slots: E,
124
+ createComponent: V
125
+ }), $ = "umd-element-card-icon", I = {
132
126
  headline: {
133
127
  ...t.element.allowed.headline,
134
128
  required: !0
135
129
  },
136
130
  text: t.element.allowed.text,
137
131
  image: t.element.allowed.image
138
- }, E = (e) => r.overlay.icon({
139
- image: f.getValidatedSlotImage({
132
+ }, O = (e) => r.overlay.icon({
133
+ image: b.getValidatedSlotImage({
140
134
  element: e,
141
135
  slotName: t.name.assets.image
142
136
  }),
143
137
  headline: t.headline.default({ element: e }),
144
138
  text: t.text.default({ element: e }),
145
139
  isThemeDark: a.isTheme.dark({ element: e })
146
- }), V = l.webComponent({
147
- tagName: N,
148
- slots: M,
149
- createComponent: E
150
- });
151
- var G = V;
152
- const _ = "umd-element-card-overlay", q = {
140
+ }), h = l.webComponent({
141
+ tagName: $,
142
+ slots: I,
143
+ createComponent: O
144
+ }), q = "umd-element-card-overlay", L = {
153
145
  headline: {
154
146
  ...t.element.allowed.headline,
155
147
  required: !0
@@ -162,37 +154,35 @@ const _ = "umd-element-card-overlay", q = {
162
154
  "cta-icon": {
163
155
  allowedElements: ["a"]
164
156
  }
165
- }, g = ({ element: e }) => ({
157
+ }, p = ({ element: e }) => ({
166
158
  eyebrow: t.eyebrow.default({ element: e }),
167
159
  headline: t.headline.default({ element: e }),
168
160
  text: t.text.default({ element: e }),
169
161
  date: t.date.default({ element: e }),
170
162
  actions: t.actions.default({ element: e }),
171
- ctaIcon: b({
163
+ ctaIcon: S({
172
164
  element: e,
173
165
  slotRef: t.name.CTA_ICON
174
166
  }),
175
167
  isQuote: a.isVisual.quote({ element: e }),
176
168
  isThemeDark: a.isTheme.dark({ element: e }),
177
169
  isThemeLight: a.isTheme.light({ element: e })
178
- }), I = (e) => {
170
+ }), A = (e) => {
179
171
  if (a.isLayout.image({ element: e })) {
180
172
  const i = r.overlay.image({
181
- ...g({ element: e }),
173
+ ...p({ element: e }),
182
174
  backgroundImage: t.assets.image({ element: e })
183
175
  });
184
176
  if (i)
185
177
  return i;
186
178
  }
187
- return r.overlay.color({ ...g({ element: e }) });
188
- }, L = l.webComponent({
189
- tagName: _,
190
- slots: q,
191
- createComponent: I,
192
- afterConnect: y.hooks.loadOnConnect
193
- });
194
- var J = L, K = h({ tagName: "umd-element-card" });
195
- const O = "umd-element-card-video", A = {
179
+ return r.overlay.color({ ...p({ element: e }) });
180
+ }, v = l.webComponent({
181
+ tagName: q,
182
+ slots: L,
183
+ createComponent: A,
184
+ afterConnect: D.hooks.loadOnConnect
185
+ }), y = C({ tagName: "umd-element-card" }), _ = "umd-element-card-video", z = {
196
186
  video: {
197
187
  ...t.element.allowed.video,
198
188
  required: !0
@@ -205,18 +195,32 @@ const O = "umd-element-card-video", A = {
205
195
  video: i,
206
196
  isAutoplay: s
207
197
  }) : (console.error("Video slot is required for umd-element-card-video"), { element: document.createElement("div"), styles: "" });
208
- }, z = l.webComponent({
209
- tagName: O,
210
- slots: A,
198
+ }, w = l.webComponent({
199
+ tagName: _,
200
+ slots: z,
211
201
  createComponent: R
212
- });
213
- var P = z;
202
+ }), U = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
203
+ __proto__: null,
204
+ CardArticle: g,
205
+ CardEvent: f,
206
+ CardIcon: h,
207
+ CardOverlay: v,
208
+ CardStandard: y,
209
+ CardVideo: w,
210
+ article: g,
211
+ event: f,
212
+ icon: h,
213
+ overlay: v,
214
+ standard: y,
215
+ video: w
216
+ }, Symbol.toStringTag, { value: "Module" }));
214
217
  export {
215
- j as a,
216
- F as e,
217
- G as i,
218
- J as o,
219
- K as s,
220
- P as v
218
+ g as C,
219
+ f as a,
220
+ h as b,
221
+ v as c,
222
+ y as d,
223
+ w as e,
224
+ U as f
221
225
  };
222
- //# sourceMappingURL=video-C2XikZ0X.js.map
226
+ //# sourceMappingURL=index-BPYb3H7i.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BPYb3H7i.js","sources":["../source/web-components/card/_model.ts","../source/web-components/card/article.ts","../source/web-components/card/event.ts","../source/web-components/card/icon.ts","../source/web-components/card/overlay.ts","../source/web-components/card/standard.ts","../source/web-components/card/video.ts"],"sourcesContent":["import { card } from '@universityofmaryland/web-elements-library/composite';\nimport * as validation from '@universityofmaryland/web-utilities-library/validation';\nimport { Attributes, Model, Register, Slots } from '@universityofmaryland/web-model-library';\n\ninterface CardData {\n image: HTMLImageElement | null;\n eyebrow: HTMLElement | null;\n headline: HTMLElement | null;\n text: HTMLElement | null;\n date: HTMLElement | null;\n actions: HTMLElement | null;\n isTransparent: boolean;\n isThemeDark: boolean;\n isAligned?: boolean;\n isBordered?: boolean;\n}\n\ninterface CardConfig {\n tagName: string;\n}\n\nconst createCardComponent = ({ tagName }: CardConfig) => {\n const slots = {\n headline: {\n required: true,\n ...Slots.element.allowed.subHeadline,\n },\n body: Slots.element.allowed.text,\n };\n\n const createComponentData = (element: HTMLElement): CardData => ({\n image: validation.getValidatedSlotImage({\n element,\n slotName: Slots.name.assets.image,\n }),\n eyebrow: Slots.eyebrow.default({ element }),\n headline: Slots.headline.default({ element }),\n text: Slots.text.default({ element }),\n date: Slots.date.default({ element }),\n actions: Slots.actions.default({ element }),\n isTransparent: Attributes.isVisual.transparent({ element }),\n isThemeDark: Attributes.isTheme.dark({ element }),\n });\n\n const createComponent = (element: HTMLElement) => {\n const isAligned = Attributes.isVisual.aligned({ element });\n const hasBorder = Attributes.isVisual.bordered({ element });\n const isDisplayList = Attributes.isDisplay.list({ element });\n const cardData = createComponentData(element);\n\n if (isDisplayList) {\n return card.list({\n ...cardData,\n isAligned,\n });\n }\n\n return card.block({\n ...cardData,\n isAligned,\n hasBorder,\n });\n };\n\n return () => {\n Register.registerWebComponent({\n name: tagName,\n element: Model.createCustomElement({\n tagName,\n slots,\n createComponent,\n }),\n });\n };\n};\n\nexport { createCardComponent };\n","import { createCardComponent as CardModel } from './_model';\nimport type { ComponentRegistration } from '../../_types';\n\nconst tagName = 'umd-element-article';\n\n/**\n * Article Card\n *\n * A specialized card component optimized for displaying article and news content.\n * Inherits all features from the standard card with article-specific semantics.\n *\n * ## Custom Element\n * `<umd-element-article>`\n *\n * ## Slots\n * - `headline` - Article title (required, accepts: h2-h6, p)\n * - `text` - Article excerpt or summary (accepts: p)\n * - `eyebrow` - Category or section label\n * - `image` - Article featured image\n * - `actions` - Read more links or sharing options\n * - `date` - Publication date\n *\n * ## Attributes\n * - `data-theme` - Theme styling options:\n * - `dark` - Dark theme styling\n * - `light` - Light theme styling\n * - `data-display` - Display mode options:\n * - `list` - List display format\n * - `data-visual` - Visual display options:\n * - `transparent` - Transparent background\n * - `aligned` - Aligned content layout\n * - `bordered` - Add border styling\n *\n *\n * @example\n * ```html\n * <!-- Basic article card -->\n * <umd-element-article>\n * <p slot=\"eyebrow\">Faculty Research</p>\n * <h3 slot=\"headline\">Professor Wins Nobel Prize in Physics</h3>\n * <p slot=\"text\">Groundbreaking work in quantum computing recognized.</p>\n * <p slot=\"date\">December 10, 2023</p>\n * </umd-element-article>\n * ```\n *\n * @example\n * ```html\n * <!-- Article with image and actions -->\n * <umd-element-article>\n * <img slot=\"image\" src=\"research-lab.jpg\" alt=\"Research laboratory\">\n * <p slot=\"eyebrow\">Science & Technology</p>\n * <h2 slot=\"headline\">New Climate Research Center Opens</h2>\n * <p slot=\"text\">\n * The facility will advance understanding of climate change impacts\n * and develop sustainable solutions.\n * </p>\n * <p slot=\"date\">November 15, 2023</p>\n * <div slot=\"actions\">\n * <a href=\"/full-article\">Read Full Article</a>\n * <a href=\"/share\">Share</a>\n * </div>\n * </umd-element-article>\n * ```\n *\n * @example\n * ```html\n * <!-- List layout article -->\n * <umd-element-article data-display=\"list\" data-theme=\"light\">\n * <h4 slot=\"headline\">Campus Sustainability Initiative</h4>\n * <p slot=\"text\">New programs reduce carbon footprint by 30%.</p>\n * <p slot=\"date\">October 5, 2023</p>\n * </umd-element-article>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const CardArticle: ComponentRegistration = CardModel({ tagName });\n\n/** Backwards compatibility alias for grouped exports */\nexport { CardArticle as article };\n","import { card } from '@universityofmaryland/web-elements-library/composite';\nimport { toUMDElement } from '@universityofmaryland/web-utilities-library/adapters';\nimport { Attributes, Slots, Register } from '@universityofmaryland/web-model-library';\nimport { extractEventData } from '../_event';\nimport type {\n CreateComponentFunction,\n ComponentRegistration,\n SlotConfiguration,\n} from '../../_types';\n\nconst tagName = 'umd-element-event';\n\nconst slots: SlotConfiguration = {\n headline: {\n ...Slots.element.allowed.headline,\n required: true,\n },\n text: Slots.element.allowed.text,\n 'date-start-iso': Slots.element.allowed.time,\n 'date-end-iso': Slots.element.allowed.time,\n location: Slots.element.allowed.text,\n image: Slots.element.allowed.imageLink,\n eyebrow: Slots.element.allowed.eyebrow,\n actions: Slots.element.allowed.actions,\n};\n\n/**\n * Creates an event card component with date, time, and location information\n * @param element - The host HTML element\n * @returns Configured event card component\n * @internal\n */\nconst createComponent: CreateComponentFunction = (element) => {\n const eventComponents = extractEventData(element);\n\n // Start date is missing - required field\n if (!eventComponents) {\n return { element: document.createElement('div'), styles: '' };\n }\n\n // Feature layout: large date sign, eyebrow ribbon\n\n if (Attributes.isDisplay.feature({ element })) {\n const featureEvents = extractEventData(element, {\n isLargeSize: true,\n isDateSignDark: false,\n });\n\n return card.block({\n actions: Slots.actions.default({ element }),\n dateSign: toUMDElement(featureEvents?.dateSign),\n eventMeta: toUMDElement(featureEvents?.eventMeta),\n eyebrow: Slots.eyebrow.default({ element }),\n hasEyebrowRibbon: true,\n headline: Slots.headline.default({ element }),\n image: Slots.assets.image({ element }) as HTMLImageElement,\n isThemeDark: Attributes.isTheme.dark({ element }),\n isTransparent: Attributes.isVisual.transparent({ element }),\n text: Slots.text.default({ element }),\n });\n }\n\n // Promo layout: overlay style with forced dark theme for meta\n\n if (Attributes.isDisplay.promo({ element })) {\n const promoEvents = extractEventData(element, {\n isThemeDark: true, // Force dark theme for meta in overlay\n isDateSignDark: false,\n });\n\n return card.overlay.image({\n actions: Slots.actions.default({ element }),\n backgroundImage: Slots.assets.image({ element }) as HTMLImageElement,\n dateSign: toUMDElement(promoEvents?.dateSign),\n eventMeta: toUMDElement(promoEvents?.eventMeta),\n headline: Slots.headline.default({ element }),\n isThemeDark: Attributes.isTheme.dark({ element }),\n text: Slots.text.default({ element }),\n });\n }\n\n // List layout: large date sign, uses element's theme\n\n if (Attributes.isDisplay.list({ element })) {\n const listEvents = extractEventData(element, {\n isLargeSize: true,\n });\n\n return card.list({\n actions: Slots.actions.default({ element }),\n dateSign: toUMDElement(listEvents?.dateSign),\n eventMeta: toUMDElement(listEvents?.eventMeta),\n headline: Slots.headline.default({ element }),\n image: Slots.assets.image({ element }) as HTMLImageElement,\n isThemeDark: Attributes.isTheme.dark({ element }),\n text: Slots.text.default({ element }),\n });\n }\n\n // Default: block layout with standard configuration\n\n const { eventMeta } = eventComponents;\n return card.block({\n actions: Slots.actions.default({ element }),\n eventMeta: toUMDElement(eventMeta) as any,\n headline: Slots.headline.default({ element }),\n image: Slots.assets.image({ element }) as HTMLImageElement,\n isThemeDark: Attributes.isTheme.dark({ element }),\n isTransparent: Attributes.isVisual.transparent({ element }),\n text: Slots.text.default({ element }),\n });\n};\n\n/**\n * Event Card\n *\n * A specialized card for displaying event information with date, time, and location.\n * Supports multiple display formats including feature, promo, and list layouts.\n *\n * ## Custom Element\n * `<umd-element-event>`\n *\n * ## Slots\n * - `headline` - Event title (required, accepts: h2-h6, p)\n * - `text` - Event description (accepts: p)\n * - `date-start-iso` - Event start date/time (required, time element)\n * - `date-end-iso` - Event end date/time (optional, time element)\n * - `location` - Event location\n * - `image` - Event image\n * - `eyebrow` - Category or type label\n * - `actions` - Registration or info links\n *\n * ## Attributes\n * - `data-display` - Display layout options:\n * - `feature` - Featured event layout with prominent date\n * - `promo` - Promotional layout with image overlay\n * - `list` - Compact list layout\n * - `data-visual-time` - Time display options:\n * - `true` - Show time in event details\n * - `data-theme` - Theme styling options:\n * - `dark` - Dark theme styling\n * - `data-visual-transparent` - Visual display options:\n * - `true` - Transparent background\n *\n * @example\n * ```html\n * <!-- Basic event card -->\n * <umd-element-event>\n * <h3 slot=\"headline\">Annual Research Symposium</h3>\n * <p slot=\"text\">Join us for presentations from leading researchers.</p>\n * <time slot=\"date-start-iso\" datetime=\"2024-03-15T09:00:00\">March 15, 2024 at 9:00 AM</time>\n * <time slot=\"date-end-iso\" datetime=\"2024-03-15T17:00:00\">March 15, 2024 at 5:00 PM</time>\n * <p slot=\"location\">Stamp Student Union</p>\n * </umd-element-event>\n * ```\n *\n * @example\n * ```html\n * <!-- Featured event with image -->\n * <umd-element-event data-display=\"feature\" data-feature=\"visual-time\">\n * <img slot=\"image\" src=\"symposium.jpg\" alt=\"Research symposium\">\n * <p slot=\"eyebrow\">Featured Event</p>\n * <h2 slot=\"headline\">Maryland Day 2024</h2>\n * <p slot=\"text\">Experience the university through hands-on activities and demonstrations.</p>\n * <time slot=\"date-start-iso\" datetime=\"2024-04-27T10:00:00\">April 27, 2024</time>\n * <p slot=\"location\">Campus-wide</p>\n * <div slot=\"actions\">\n * <a href=\"/register\">Register Now</a>\n * </div>\n * </umd-element-event>\n * ```\n *\n * @example\n * ```html\n * <!-- Promo event with overlay -->\n * <umd-element-event data-display=\"promo\">\n * <img slot=\"image\" src=\"concert.jpg\" alt=\"Concert venue\">\n * <h3 slot=\"headline\">Spring Concert Series</h3>\n * <p slot=\"text\">Featuring the UMD Symphony Orchestra</p>\n * <time slot=\"date-start-iso\" datetime=\"2024-05-10T19:30:00\">May 10, 2024 at 7:30 PM</time>\n * <p slot=\"location\">Clarice Smith Performing Arts Center</p>\n * </umd-element-event>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const CardEvent: ComponentRegistration = Register.webComponent({\n tagName,\n slots,\n createComponent,\n});\n\n/** Backwards compatibility alias for grouped exports */\nexport { CardEvent as event };\n","import { card } from '@universityofmaryland/web-elements-library/composite';\nimport * as validation from '@universityofmaryland/web-utilities-library/validation';\nimport { Attributes, Slots, Register } from '@universityofmaryland/web-model-library';\nimport type {\n CreateComponentFunction,\n ComponentRegistration,\n SlotConfiguration,\n} from '../../_types';\n\nconst tagName = 'umd-element-card-icon';\n\nconst slots: SlotConfiguration = {\n headline: {\n ...Slots.element.allowed.headline,\n required: true,\n },\n text: Slots.element.allowed.text,\n image: Slots.element.allowed.image,\n};\n\n/**\n * Creates an icon card component with overlay styling\n * @param element - The host HTML element\n * @returns Configured icon card component\n * @internal\n */\nconst createComponent: CreateComponentFunction = (element) =>\n card.overlay.icon({\n image: validation.getValidatedSlotImage({\n element,\n slotName: Slots.name.assets.image,\n }),\n headline: Slots.headline.default({ element }),\n text: Slots.text.default({ element }),\n isThemeDark: Attributes.isTheme.dark({ element }),\n });\n\n/**\n * Icon Card\n *\n * A card component with an icon overlay design, perfect for highlighting\n * services, features, or categories with visual emphasis.\n *\n * ## Custom Element\n * `<umd-element-card-icon>`\n *\n * ## Slots\n * - `headline` - Card title (required, accepts: h2-h6, p)\n * - `text` - Card description (optional, accepts: p)\n * - `image` - Icon or image (required)\n *\n * ## Attributes\n * - `data-theme` - Theme styling options:\n * - `dark` - Dark theme styling\n *\n * @example\n * ```html\n * <!-- Basic icon card -->\n * <umd-element-card-icon>\n * <img slot=\"image\" src=\"/icons/research.svg\" alt=\"Research icon\">\n * <h3 slot=\"headline\">Research Excellence</h3>\n * <p slot=\"text\">Cutting-edge research across disciplines</p>\n * </umd-element-card-icon>\n * ```\n *\n * @example\n * ```html\n * <!-- Dark theme icon card -->\n * <umd-element-card-icon data-theme=\"dark\">\n * <img slot=\"image\" src=\"/icons/education.svg\" alt=\"Education icon\">\n * <h3 slot=\"headline\">Academic Programs</h3>\n * <p slot=\"text\">Over 200 degree programs to choose from</p>\n * </umd-element-card-icon>\n * ```\n *\n * @example\n * ```html\n * <!-- Service highlight cards -->\n * <div class=\"services-grid\">\n * <umd-element-card-icon>\n * <img slot=\"image\" src=\"/icons/library.svg\" alt=\"Library\">\n * <h4 slot=\"headline\">Libraries</h4>\n * <p slot=\"text\">Access to millions of resources</p>\n * </umd-element-card-icon>\n * <umd-element-card-icon>\n * <img slot=\"image\" src=\"/icons/support.svg\" alt=\"Support\">\n * <h4 slot=\"headline\">Student Support</h4>\n * <p slot=\"text\">Comprehensive academic assistance</p>\n * </umd-element-card-icon>\n * </div>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const CardIcon: ComponentRegistration = Register.webComponent({\n tagName,\n slots,\n createComponent,\n});\n\n/** Backwards compatibility alias for grouped exports */\nexport { CardIcon as icon };\n","import { card } from '@universityofmaryland/web-elements-library/composite';\nimport { createStyledSlotOrClone } from '@universityofmaryland/web-utilities-library/elements';\nimport { Attributes, Slots, Register, Lifecycle } from '@universityofmaryland/web-model-library';\nimport type {\n CreateComponentFunction,\n ComponentRegistration,\n SlotConfiguration,\n} from '../../_types';\n\nconst tagName = 'umd-element-card-overlay';\n\nconst slots: SlotConfiguration = {\n headline: {\n ...Slots.element.allowed.headline,\n required: true,\n },\n text: Slots.element.allowed.text,\n eyebrow: Slots.element.allowed.eyebrow,\n image: Slots.element.allowed.image,\n actions: Slots.element.allowed.actions,\n date: Slots.element.allowed.time,\n 'cta-icon': {\n allowedElements: ['a'],\n },\n};\n\n/**\n * Extracts overlay content from element slots\n * @internal\n */\nconst MakeOverlayContent = ({ element }: { element: HTMLElement }) => ({\n eyebrow: Slots.eyebrow.default({ element }),\n headline: Slots.headline.default({ element }),\n text: Slots.text.default({ element }),\n date: Slots.date.default({ element }),\n actions: Slots.actions.default({ element }),\n ctaIcon: createStyledSlotOrClone({\n element,\n slotRef: Slots.name.CTA_ICON,\n }),\n isQuote: Attributes.isVisual.quote({ element }),\n isThemeDark: Attributes.isTheme.dark({ element }),\n isThemeLight: Attributes.isTheme.light({ element }),\n});\n\n/**\n * Creates an overlay card component with image or color background\n * @param element - The host HTML element\n * @returns Configured overlay card component\n * @internal\n */\nconst createComponent: CreateComponentFunction = (element) => {\n if (Attributes.isLayout.image({ element })) {\n const ImageOverlay = card.overlay.image({\n ...MakeOverlayContent({ element }),\n backgroundImage: Slots.assets.image({ element }) as HTMLImageElement,\n });\n\n if (ImageOverlay) {\n return ImageOverlay;\n }\n }\n\n return card.overlay.color({ ...MakeOverlayContent({ element }) });\n};\n\n/**\n * Overlay Card\n *\n * A dramatic card component with overlay styling, supporting both image\n * and color backgrounds. Perfect for hero sections and featured content.\n *\n * ## Custom Element\n * `<umd-element-card-overlay>`\n *\n * ## Slots\n * - `headline` - Card title (required, accepts: h2-h6, p)\n * - `text` - Card content (optional, accepts: p)\n * - `eyebrow` - Small text above headline\n * - `image` - Background image (required for layout-image)\n * - `actions` - Action buttons or links\n * - `date` - Date information\n * - `cta-icon` - Call-to-action icon\n *\n * ## Attributes\n * - `data-layout` - Layout options:\n * - `image` - Use image as background\n * - `data-visual` - Visual display options:\n * - `quote` - Quote styling\n * - `data-theme` - Theme styling options:\n * - `dark` - Dark overlay theme\n * - `light` - Light overlay theme\n *\n * @example\n * ```html\n * <!-- Image overlay card -->\n * <umd-element-card-overlay data-layout=\"image\">\n * <img slot=\"image\" src=\"campus-hero.jpg\" alt=\"Campus view\">\n * <p slot=\"eyebrow\">Welcome</p>\n * <h2 slot=\"headline\">Discover Maryland</h2>\n * <p slot=\"text\">Join a community of innovators and leaders</p>\n * <div slot=\"actions\">\n * <a href=\"/apply\">Apply Now</a>\n * </div>\n * </umd-element-card-overlay>\n * ```\n *\n * @example\n * ```html\n * <!-- Color overlay with quote -->\n * <umd-element-card-overlay data-visual=\"quote\" data-theme=\"dark\">\n * <h3 slot=\"headline\">\"The best investment in our future is education.\"</h3>\n * <p slot=\"text\">- President Darryll J. Pines</p>\n * </umd-element-card-overlay>\n * ```\n *\n * @example\n * ```html\n * <!-- Feature card with CTA icon -->\n * <umd-element-card-overlay data-layout=\"image\" data-theme=\"light\">\n * <img slot=\"image\" src=\"research-bg.jpg\" alt=\"Research lab\">\n * <p slot=\"eyebrow\">Innovation</p>\n * <h2 slot=\"headline\">Breakthrough Research</h2>\n * <p slot=\"text\">Solving tomorrow's challenges today</p>\n * <span slot=\"cta-icon\">→</span>\n * <div slot=\"actions\">\n * <a href=\"/research\">Explore Research</a>\n * </div>\n * </umd-element-card-overlay>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const CardOverlay: ComponentRegistration = Register.webComponent({\n tagName,\n slots,\n createComponent,\n afterConnect: Lifecycle.hooks.loadOnConnect,\n});\n\n/** Backwards compatibility alias for grouped exports */\nexport { CardOverlay as overlay };\n","import { createCardComponent as CardModel } from './_model';\n\n/**\n * Standard Card\n *\n * A versatile card component for displaying content with optional images, actions, and themes.\n * Supports multiple display modes including block, list, and transparent variations.\n *\n * ## Custom Element\n * `<umd-element-card>`\n *\n * ## Slots\n * - `headline` - Card title (required, accepts: h2-h6, p)\n * - `text` - Card content (accepts: p)\n * - `eyebrow` - Small text above headline\n * - `image` - Card image\n * - `actions` - Action buttons or links\n * - `date` - Date information\n *\n * ## Attributes\n * - `data-theme` - Theme styling options:\n * - `dark` - Dark theme styling\n * - `light` - Light theme styling\n * - `data-visual-transparent` - Visual display options:\n * - `true` - Transparent background\n * - `data-visual-image-aligned` - Visual display options:\n * - `true` - Aligned content layout\n * - `data-visual-bordered` - Visual display options:\n * - `true` - Add border styling\n * - `data-display` - Display options:\n * - `list` - List display format\n *\n * @example\n * ```html\n * <!-- Basic card -->\n * <umd-element-card>\n * <h3 slot=\"headline\">Research Breakthrough</h3>\n * <p slot=\"text\">Scientists discover new method for sustainable energy.</p>\n * </umd-element-card>\n * ```\n *\n * @example\n * ```html\n * <!-- Card with image and actions -->\n * <umd-element-card>\n * <img slot=\"image\" src=\"campus.jpg\" alt=\"Campus view\">\n * <p slot=\"eyebrow\">Campus News</p>\n * <h3 slot=\"headline\">New Student Center Opens</h3>\n * <p slot=\"text\">State-of-the-art facility welcomes students.</p>\n * <div slot=\"actions\">\n * <a href=\"/read-more\">Read More</a>\n * </div>\n * </umd-element-card>\n * ```\n *\n * @example\n * ```html\n * <!-- List layout with dark theme -->\n * <umd-element-card data-theme=\"dark\" data-display=\"list\">\n * <h4 slot=\"headline\">Quick Links</h4>\n * <p slot=\"text\">Access important resources and tools.</p>\n * </umd-element-card>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const CardStandard = CardModel({ tagName: 'umd-element-card' });\n\n/** Backwards compatibility alias for grouped exports */\nexport { CardStandard as standard };\n","import { card } from '@universityofmaryland/web-elements-library/composite';\nimport { Attributes, Slots, Register } from '@universityofmaryland/web-model-library';\nimport type {\n CreateComponentFunction,\n ComponentRegistration,\n SlotConfiguration,\n} from '../../_types';\n\nconst tagName = 'umd-element-card-video';\n\nconst slots: SlotConfiguration = {\n video: {\n ...Slots.element.allowed.video,\n required: true,\n },\n};\n\n/**\n * Creates an overlay card component with image or color background\n * @param element - The host HTML element\n * @returns Configured overlay card component\n * @internal\n */\nconst createComponent: CreateComponentFunction = (element) => {\n const video = Slots.assets.video({ element }) as HTMLVideoElement;\n const isTypeShort = Attributes.isDisplay.short({ element });\n const isAutoplay = Attributes.isVisual.play({ element });\n\n if (!video) {\n console.error('Video slot is required for umd-element-card-video');\n return { element: document.createElement('div'), styles: '' };\n }\n\n if (isTypeShort) {\n return card.video.short({\n video,\n });\n }\n\n return card.video.block({\n video,\n isAutoplay,\n });\n};\n\n/**\n * Video Card\n *\n * A card component for displaying video content with configurable display formats\n * and autoplay behavior. Supports both short-form (9:16) and block (1:1) aspect ratios.\n *\n * ## Custom Element\n * `<umd-element-card-video>`\n *\n * ## Slots\n * - `video` - Video element (required, accepts: video element)\n *\n * ## Attributes\n * - `data-display` - Display format:\n * - `short` - 9:16 aspect ratio (vertical video format) with hover/focus controls\n * - Default - 1:1 aspect ratio (square format) with optional autoplay\n * - `data-visual-play` - Autoplay behavior (only for default display):\n * - `true` - Video autoplays when 25% visible in viewport\n * - Default - No autoplay behavior\n *\n * ## Visual Behavior\n * ### Short Display (data-display=\"short\")\n * - Maintains 9:16 aspect ratio (vertical video format)\n * - Auto-plays (muted) on hover or focus\n * - Auto-pauses when user moves away\n * - Shows video controls with restricted features (no download, fullscreen, etc.)\n * - Video covers entire card area with object-fit: cover\n *\n * ### Default Display\n * - Maintains 1:1 aspect ratio (square format)\n * - Optional autoplay when visible in viewport (data-visual-play=\"true\")\n * - No visible controls\n * - Video loops continuously when playing\n *\n * @example\n * ```html\n * <!-- Basic video card (square format) -->\n * <umd-element-card-video>\n * <video slot=\"video\" src=\"campus-tour.mp4\" poster=\"tour-thumb.jpg\">\n * <source src=\"campus-tour.mp4\" type=\"video/mp4\">\n * </video>\n * </umd-element-card-video>\n * ```\n *\n * @example\n * ```html\n * <!-- Short-form video card with hover controls -->\n * <umd-element-card-video data-display=\"short\">\n * <video slot=\"video\" poster=\"preview.jpg\">\n * <source src=\"student-life.webm\" type=\"video/webm\">\n * <source src=\"student-life.mp4\" type=\"video/mp4\">\n * Your browser does not support the video tag.\n * </video>\n * </umd-element-card-video>\n * ```\n *\n * @example\n * ```html\n * <!-- Video card with autoplay when visible -->\n * <umd-element-card-video data-visual-play=\"true\">\n * <video slot=\"video\" poster=\"athletics.jpg\">\n * <source src=\"athletics-highlight.mp4\" type=\"video/mp4\">\n * <track kind=\"captions\" src=\"captions.vtt\" srclang=\"en\" label=\"English\">\n * </video>\n * </umd-element-card-video>\n * ```\n *\n * @category Components\n * @since 1.12.0\n */\nexport const CardVideo: ComponentRegistration = Register.webComponent({\n tagName,\n slots,\n createComponent,\n});\n\n/** Backwards compatibility alias for grouped exports */\nexport { CardVideo as video };\n"],"names":["createCardComponent","tagName","slots","Slots","createComponentData","element","validation","Attributes","createComponent","isAligned","hasBorder","isDisplayList","cardData","card","Register","Model","CardArticle","CardModel","eventComponents","extractEventData","featureEvents","toUMDElement","promoEvents","listEvents","eventMeta","CardEvent","CardIcon","MakeOverlayContent","createStyledSlotOrClone","ImageOverlay","CardOverlay","Lifecycle","CardStandard","video","isTypeShort","isAutoplay","CardVideo"],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { textLockup as r, events as S } from "@universityofmaryland/web-elements-library/atomic";
2
+ import { parseDateFromElement as s, createEventDetails as D } from "@universityofmaryland/web-utilities-library/date";
3
+ import { Attributes as i, Register as f, Lifecycle as T, Slots as o } from "@universityofmaryland/web-model-library";
4
+ const v = "umd-element-events-date", _ = i.handler.common.resize(
5
+ (e) => e.events?.size()
6
+ ), b = (e) => {
7
+ const t = i.isTheme.dark({ element: e }), n = o.headline.default({ element: e }), l = e.querySelector(
8
+ `[slot="${o.name.DATE_START_ISO}"]`
9
+ ), m = e.querySelector(
10
+ `[slot="${o.name.DATE_END_ISO}"]`
11
+ ), a = s({
12
+ element: l
13
+ }), d = s({ element: m });
14
+ if (!a)
15
+ return r.date({
16
+ headline: n,
17
+ isThemeDark: t
18
+ });
19
+ const u = D({
20
+ startDate: a,
21
+ endDate: d
22
+ }), p = S.sign({
23
+ ...u,
24
+ isThemeDark: t
25
+ });
26
+ return r.date({
27
+ headline: n,
28
+ dateSign: p,
29
+ isThemeDark: t
30
+ });
31
+ }, c = f.webComponent({
32
+ tagName: v,
33
+ createComponent: b,
34
+ attributes: [_],
35
+ afterConnect: T.hooks.loadOnConnect
36
+ }), k = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
37
+ __proto__: null,
38
+ TextEventLockup: c,
39
+ eventLockup: c
40
+ }, Symbol.toStringTag, { value: "Module" }));
41
+ export {
42
+ c as T,
43
+ k as t
44
+ };
45
+ //# sourceMappingURL=index-BXNlNViX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BXNlNViX.js","sources":["../source/web-components/text/event-lockup.ts"],"sourcesContent":["import {\n events,\n textLockup,\n} from '@universityofmaryland/web-elements-library/atomic';\nimport {\n parseDateFromElement,\n createEventDetails,\n} from '@universityofmaryland/web-utilities-library/date';\nimport { Attributes, Register, Slots, Lifecycle } from '@universityofmaryland/web-model-library';\nimport { CreateComponentFunction, ComponentRegistration } from '../../_types';\n\nconst tagName = 'umd-element-events-date';\n\nconst attributes = Attributes.handler.common.resize((element) =>\n element.events?.size(),\n);\n\nconst createComponent: CreateComponentFunction = (element) => {\n const isThemeDark = Attributes.isTheme.dark({ element });\n\n const headline = Slots.headline.default({ element });\n const startDateSlot = element.querySelector(\n `[slot=\"${Slots.name.DATE_START_ISO}\"]`,\n );\n const endDateSlot = element.querySelector(\n `[slot=\"${Slots.name.DATE_END_ISO}\"]`,\n );\n const startDate = parseDateFromElement({\n element: startDateSlot,\n });\n const endDate = parseDateFromElement({ element: endDateSlot });\n\n if (!startDate) {\n return textLockup.date({\n headline,\n isThemeDark,\n });\n }\n\n const EventSignData = createEventDetails({\n startDate,\n endDate,\n });\n const dateSign = events.sign({\n ...EventSignData,\n isThemeDark,\n });\n\n return textLockup.date({\n headline,\n dateSign,\n isThemeDark,\n });\n};\n\n/**\n * Event Date Lockup\n *\n * A text component that displays event information with a formatted date sign.\n * Automatically creates a visual date display from ISO date strings and pairs it\n * with event headlines. Responsive sizing adjusts based on viewport.\n *\n * ## Custom Element\n * `<umd-element-events-date>`\n *\n * ## Slots\n * - `headline` - Event title or headline (optional, accepts: heading elements)\n * - `date-start-iso` - Event start date in ISO format (optional, accepts: time element)\n * - `date-end-iso` - Event end date in ISO format (optional, accepts: time element)\n *\n * ## Attributes\n * - `data-theme` - Color theme of the component:\n * - `dark` - Dark background with light text\n *\n * ## Observed Attributes\n * - `resize` - Triggers recalculation of date element sizes\n *\n * @example\n * ```html\n * <!-- Basic event with date -->\n * <umd-element-events-date>\n * <h3 slot=\"headline\">Spring Commencement</h3>\n * <time slot=\"date-start-iso\" datetime=\"2024-05-22\">May 22, 2024</time>\n * </umd-element-events-date>\n * ```\n *\n * @example\n * ```html\n * <!-- Multi-day event -->\n * <umd-element-events-date>\n * <h2 slot=\"headline\">Orientation Week</h2>\n * <time slot=\"date-start-iso\" datetime=\"2024-08-26\">August 26, 2024</time>\n * <time slot=\"date-end-iso\" datetime=\"2024-08-30\">August 30, 2024</time>\n * </umd-element-events-date>\n * ```\n *\n * @example\n * ```html\n * <!-- Dark theme event -->\n * <umd-element-events-date data-theme=\"dark\">\n * <h3 slot=\"headline\">Guest Lecture: Future of AI</h3>\n * <time slot=\"date-start-iso\" datetime=\"2024-04-15T18:00:00\">April 15, 2024 6:00 PM</time>\n * <time slot=\"date-end-iso\" datetime=\"2024-04-15T20:00:00\">April 15, 2024 8:00 PM</time>\n * </umd-element-events-date>\n * ```\n *\n * @example\n * ```html\n * <!-- Event without date (text only) -->\n * <umd-element-events-date>\n * <h3 slot=\"headline\">Ongoing Exhibition: Art of the Americas</h3>\n * </umd-element-events-date>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const TextEventLockup: ComponentRegistration = Register.webComponent({\n tagName,\n createComponent,\n attributes: [attributes],\n afterConnect: Lifecycle.hooks.loadOnConnect,\n});\n\n/** Backwards compatibility alias for grouped exports */\nexport { TextEventLockup as eventLockup };\n"],"names":["tagName","attributes","Attributes","element","createComponent","isThemeDark","headline","Slots","startDateSlot","endDateSlot","startDate","parseDateFromElement","endDate","textLockup","EventSignData","createEventDetails","dateSign","events","TextEventLockup","Register","Lifecycle"],"mappings":";;;AAWA,MAAMA,IAAU,2BAEVC,IAAaC,EAAW,QAAQ,OAAO;AAAA,EAAO,CAACC,MACnDA,EAAQ,QAAQ,KAAA;AAClB,GAEMC,IAA2C,CAACD,MAAY;AAC5D,QAAME,IAAcH,EAAW,QAAQ,KAAK,EAAE,SAAAC,GAAS,GAEjDG,IAAWC,EAAM,SAAS,QAAQ,EAAE,SAAAJ,GAAS,GAC7CK,IAAgBL,EAAQ;AAAA,IAC5B,UAAUI,EAAM,KAAK,cAAc;AAAA,EAAA,GAE/BE,IAAcN,EAAQ;AAAA,IAC1B,UAAUI,EAAM,KAAK,YAAY;AAAA,EAAA,GAE7BG,IAAYC,EAAqB;AAAA,IACrC,SAASH;AAAA,EAAA,CACV,GACKI,IAAUD,EAAqB,EAAE,SAASF,GAAa;AAE7D,MAAI,CAACC;AACH,WAAOG,EAAW,KAAK;AAAA,MACrB,UAAAP;AAAA,MACA,aAAAD;AAAA,IAAA,CACD;AAGH,QAAMS,IAAgBC,EAAmB;AAAA,IACvC,WAAAL;AAAA,IACA,SAAAE;AAAA,EAAA,CACD,GACKI,IAAWC,EAAO,KAAK;AAAA,IAC3B,GAAGH;AAAA,IACH,aAAAT;AAAA,EAAA,CACD;AAED,SAAOQ,EAAW,KAAK;AAAA,IACrB,UAAAP;AAAA,IACA,UAAAU;AAAA,IACA,aAAAX;AAAA,EAAA,CACD;AACH,GAgEaa,IAAyCC,EAAS,aAAa;AAAA,EAC1E,SAAAnB;AAAA,EACA,iBAAAI;AAAA,EACA,YAAY,CAACH,CAAU;AAAA,EACvB,cAAcmB,EAAU,MAAM;AAChC,CAAC;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { actions as i } from "@universityofmaryland/web-elements-library/atomic";
2
- import { Register as p, Attributes as e, Slots as r } from "@universityofmaryland/web-model-library";
3
- const c = "umd-element-call-to-action", u = {
2
+ import { Register as c, Attributes as e, Slots as r } from "@universityofmaryland/web-model-library";
3
+ const u = "umd-element-call-to-action", d = {
4
4
  text: {
5
5
  allowedElements: ["a", "button"]
6
6
  },
@@ -8,10 +8,10 @@ const c = "umd-element-call-to-action", u = {
8
8
  deprecated: 'Use "text" instead. This attribute will be removed in version 2.0.',
9
9
  allowedElements: ["a", "button"]
10
10
  }
11
- }, d = (t) => {
12
- const o = t.querySelector("button, a:not([slot])"), a = t.querySelector(
11
+ }, y = (t) => {
12
+ const o = t.querySelector("button, a:not([slot])"), n = t.querySelector(
13
13
  '[slot="plain-text"]'
14
- ), n = t.querySelector('[slot="text"]');
14
+ ), l = t.querySelector('[slot="text"]');
15
15
  if (!o)
16
16
  throw new Error("Component requires a button or link");
17
17
  const s = {
@@ -24,23 +24,27 @@ const c = "umd-element-call-to-action", u = {
24
24
  isThemeGold: e.isTheme.gold({ element: t }),
25
25
  elementStyles: e.getValue.styleProps({ element: t })
26
26
  };
27
- if (a || n) {
28
- const l = r.deprecated.plainText({ element: t }) || r.text.default({ element: t });
27
+ if (n || l) {
28
+ const p = r.deprecated.plainText({ element: t }) || r.text.default({ element: t });
29
29
  return i.options({
30
30
  ...s,
31
- plainText: l
31
+ plainText: p
32
32
  });
33
33
  }
34
34
  return i.options({
35
35
  ...s
36
36
  });
37
- }, y = p.webComponent({
38
- tagName: c,
39
- slots: u,
40
- createComponent: d
41
- });
42
- var x = y;
37
+ }, a = c.webComponent({
38
+ tagName: u,
39
+ slots: d,
40
+ createComponent: y
41
+ }), b = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
42
+ __proto__: null,
43
+ ActionsDisplay: a,
44
+ display: a
45
+ }, Symbol.toStringTag, { value: "Module" }));
43
46
  export {
44
- x as d
47
+ a as A,
48
+ b as a
45
49
  };
46
- //# sourceMappingURL=display-CLcyGpEO.js.map
50
+ //# sourceMappingURL=index-BgXjsdgw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BgXjsdgw.js","sources":["../source/web-components/actions/display.ts"],"sourcesContent":["import { actions } from '@universityofmaryland/web-elements-library/atomic';\nimport { Attributes, Register, Slots } from '@universityofmaryland/web-model-library';\nimport {\n CreateComponentFunction,\n ComponentRegistration,\n SlotConfiguration,\n} from '../../_types';\n\nconst tagName = 'umd-element-call-to-action';\n\nconst slots: SlotConfiguration = {\n text: {\n allowedElements: ['a', 'button'],\n },\n plainText: {\n deprecated:\n 'Use \"text\" instead. This attribute will be removed in version 2.0.',\n allowedElements: ['a', 'button'],\n },\n};\n\nconst createComponent: CreateComponentFunction = (element) => {\n const interactiveElement = element.querySelector('button, a:not([slot])');\n const plainTextSlot = element.querySelector(\n `[slot=\"plain-text\"]`,\n ) as HTMLElement;\n const textSlot = element.querySelector(`[slot=\"text\"]`) as HTMLElement;\n\n if (!interactiveElement) {\n throw new Error('Component requires a button or link');\n }\n\n const optionProps = {\n element: interactiveElement.cloneNode(true) as HTMLElement,\n isTypeOutline: Attributes.isDisplay.outline({ element }),\n isTypePrimary: Attributes.isDisplay.primary({ element }),\n isTypeSecondary: Attributes.isDisplay.secondary({ element }),\n isSizeLarge: Attributes.isVisual.sizeLarge({ element }),\n isThemeDark: Attributes.isTheme.dark({ element }),\n isThemeGold: Attributes.isTheme.gold({ element }),\n elementStyles: Attributes.getValue.styleProps({ element }),\n };\n\n if (plainTextSlot || textSlot) {\n const plainText =\n Slots.deprecated.plainText({ element }) ||\n Slots.text.default({ element });\n\n return actions.options({\n ...optionProps,\n plainText,\n });\n }\n\n return actions.options({\n ...optionProps,\n });\n};\n\n/**\n * Call-to-Action\n *\n * A web component that enhances buttons and links with consistent UMD styling.\n *\n * ## Custom Element\n * `<umd-element-call-to-action>`\n *\n * ## Slots\n * - `text` - Additional text content for links (optional, accepts: a)\n * - `plainText` - Deprecated: Use `text` slot instead\n *\n * ## Attributes\n * - `data-display` - Display style options:\n * - `primary` - Primary button style (red background)\n * - `secondary` - Secondary button style\n * - `outline` - Outline button style\n * - `data-visual-size` - Size options:\n * - `large` - Larger button size\n * - `data-theme` - Theme options:\n * - `dark` - Dark theme variant\n * - `gold` - Gold theme variant\n *\n * @example\n * ```html\n * <!-- Primary button -->\n * <umd-element-call-to-action data-display=\"primary\">\n * <button>Apply Now</button>\n * </umd-element-call-to-action>\n * ```\n *\n * @example\n * ```html\n * <!-- Large secondary link -->\n * <umd-element-call-to-action data-display=\"secondary\" data-visual-size=\"large\">\n * <a href=\"/learn-more\">Learn More</a>\n * </umd-element-call-to-action>\n * ```\n *\n * @example\n * ```html\n * <!-- Outline button with dark theme -->\n * <umd-element-call-to-action data-display=\"outline\" data-theme=\"dark\">\n * <button>Contact Us</button>\n * </umd-element-call-to-action>\n * ```\n *\n * @example\n * ```html\n * <!-- Link with additional text -->\n * <umd-element-call-to-action>\n * <a href=\"/admissions\" slot=\"text\">View admission requirements</a>\n * </umd-element-call-to-action>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const ActionsDisplay: ComponentRegistration = Register.webComponent({\n tagName,\n slots,\n createComponent,\n});\n\n/** Backwards compatibility alias for grouped exports */\nexport { ActionsDisplay as display };\n"],"names":["tagName","slots","createComponent","element","interactiveElement","plainTextSlot","textSlot","optionProps","Attributes","plainText","Slots","actions","ActionsDisplay","Register"],"mappings":";;AAQA,MAAMA,IAAU,8BAEVC,IAA2B;AAAA,EAC/B,MAAM;AAAA,IACJ,iBAAiB,CAAC,KAAK,QAAQ;AAAA,EAAA;AAAA,EAEjC,WAAW;AAAA,IACT,YACE;AAAA,IACF,iBAAiB,CAAC,KAAK,QAAQ;AAAA,EAAA;AAEnC,GAEMC,IAA2C,CAACC,MAAY;AAC5D,QAAMC,IAAqBD,EAAQ,cAAc,uBAAuB,GAClEE,IAAgBF,EAAQ;AAAA,IAC5B;AAAA,EAAA,GAEIG,IAAWH,EAAQ,cAAc,eAAe;AAEtD,MAAI,CAACC;AACH,UAAM,IAAI,MAAM,qCAAqC;AAGvD,QAAMG,IAAc;AAAA,IAClB,SAASH,EAAmB,UAAU,EAAI;AAAA,IAC1C,eAAeI,EAAW,UAAU,QAAQ,EAAE,SAAAL,GAAS;AAAA,IACvD,eAAeK,EAAW,UAAU,QAAQ,EAAE,SAAAL,GAAS;AAAA,IACvD,iBAAiBK,EAAW,UAAU,UAAU,EAAE,SAAAL,GAAS;AAAA,IAC3D,aAAaK,EAAW,SAAS,UAAU,EAAE,SAAAL,GAAS;AAAA,IACtD,aAAaK,EAAW,QAAQ,KAAK,EAAE,SAAAL,GAAS;AAAA,IAChD,aAAaK,EAAW,QAAQ,KAAK,EAAE,SAAAL,GAAS;AAAA,IAChD,eAAeK,EAAW,SAAS,WAAW,EAAE,SAAAL,GAAS;AAAA,EAAA;AAG3D,MAAIE,KAAiBC,GAAU;AAC7B,UAAMG,IACJC,EAAM,WAAW,UAAU,EAAE,SAAAP,GAAS,KACtCO,EAAM,KAAK,QAAQ,EAAE,SAAAP,GAAS;AAEhC,WAAOQ,EAAQ,QAAQ;AAAA,MACrB,GAAGJ;AAAA,MACH,WAAAE;AAAA,IAAA,CACD;AAAA,EACH;AAEA,SAAOE,EAAQ,QAAQ;AAAA,IACrB,GAAGJ;AAAA,EAAA,CACJ;AACH,GA4DaK,IAAwCC,EAAS,aAAa;AAAA,EACzE,SAAAb;AAAA,EACA,OAAAC;AAAA,EACA,iBAAAC;AACF,CAAC;;;;;"}
@@ -1,40 +1,44 @@
1
- import { animations as o } from "@universityofmaryland/web-elements-library/atomic";
2
- import { Register as m, Lifecycle as s, Attributes as c } from "@universityofmaryland/web-model-library";
3
- const r = "umd-element-brand-card-stack", l = (n) => {
1
+ import { animations as l } from "@universityofmaryland/web-elements-library/atomic";
2
+ import { Register as m, Lifecycle as d, Attributes as s } from "@universityofmaryland/web-model-library";
3
+ const r = "umd-element-brand-card-stack", u = (n) => {
4
4
  const t = Array.from(
5
5
  n.querySelectorAll('[slot="cards"] > *')
6
- ), a = t.find(
6
+ ), o = t.find(
7
7
  (e) => e.getAttribute("data-featured") === "true"
8
8
  );
9
9
  if (t.length < 5)
10
10
  return console.log(`${r}: The minimum number of for the card stack is 5.`), { element: document.createElement("div"), styles: "" };
11
11
  if (t.length > 9)
12
12
  return console.log(`${r}: The maximum number of for the card stack is 10.`), { element: document.createElement("div"), styles: "" };
13
- if (!a)
13
+ if (!o)
14
14
  return console.log(
15
15
  `${r}: A featured element is required. Please add the attribute data-featured to one of the elements`
16
16
  ), { element: document.createElement("div"), styles: "" };
17
17
  const i = t.filter((e) => e.getAttribute("data-featured") !== "true").map((e) => e.tagName === "IMG" ? e : e.querySelector("img")).filter((e) => e !== null);
18
- return o.brand.cardStack({
19
- featured: a,
18
+ return l.brand.cardStack({
19
+ featured: o,
20
20
  images: i,
21
- isExpandFeature: c.includesFeature.imageExpand({
21
+ isExpandFeature: s.includesFeature.imageExpand({
22
22
  element: n
23
23
  })
24
24
  });
25
- }, d = m.webComponent({
25
+ }, a = m.webComponent({
26
26
  tagName: r,
27
- createComponent: l,
28
- afterConnect: s.hooks.loadAnimation
29
- });
30
- var C = d;
31
- const u = "umd-element-brand-logo-animation", f = () => o.brand.chevronScroll(), g = m.webComponent({
32
- tagName: u,
33
- createComponent: f
34
- });
35
- var v = g;
27
+ createComponent: u,
28
+ afterConnect: d.hooks.loadAnimation
29
+ }), f = "umd-element-brand-logo-animation", g = () => l.brand.chevronScroll(), c = m.webComponent({
30
+ tagName: f,
31
+ createComponent: g
32
+ }), C = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
33
+ __proto__: null,
34
+ BrandCardStack: a,
35
+ BrandChevronScroll: c,
36
+ cardStack: a,
37
+ chevronScroll: c
38
+ }, Symbol.toStringTag, { value: "Module" }));
36
39
  export {
37
- v as c,
38
- C as s
40
+ a as B,
41
+ c as a,
42
+ C as b
39
43
  };
40
- //# sourceMappingURL=chevron-scroll-sN9hWLoU.js.map
44
+ //# sourceMappingURL=index-BqwGw7fw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BqwGw7fw.js","sources":["../source/web-components/brand/stack.ts","../source/web-components/brand/chevron-scroll.ts"],"sourcesContent":["import { animations } from '@universityofmaryland/web-elements-library/atomic';\nimport { Attributes, Lifecycle, Register } from '@universityofmaryland/web-model-library';\nimport { CreateComponentFunction, ComponentRegistration } from '../../_types';\n\nconst tagName = 'umd-element-brand-card-stack';\n\n/**\n * Creates a card fireworks component with a featured element and accompanying images\n * @param element - The host HTML element\n * @returns Configured card fireworks component\n * @internal\n */\nconst createComponent: CreateComponentFunction = (element) => {\n const cards = Array.from(\n element.querySelectorAll(`[slot=\"cards\"] > *`),\n ) as Array<HTMLImageElement | HTMLVideoElement>;\n const featured = cards.find(\n (card) => card.getAttribute('data-featured') === 'true',\n );\n\n if (cards.length < 5) {\n console.log(`${tagName}: The minimum number of for the card stack is 5.`);\n return { element: document.createElement('div'), styles: '' };\n }\n\n if (cards.length > 9) {\n console.log(`${tagName}: The maximum number of for the card stack is 10.`);\n return { element: document.createElement('div'), styles: '' };\n }\n\n if (!featured) {\n console.log(\n `${tagName}: A featured element is required. Please add the attribute data-featured to one of the elements`,\n );\n return { element: document.createElement('div'), styles: '' };\n }\n\n const images = cards\n .filter((card) => card.getAttribute('data-featured') !== 'true')\n .map((card) => {\n if (card.tagName === 'IMG') {\n return card as HTMLImageElement;\n }\n const imgChild = card.querySelector('img');\n return imgChild as HTMLImageElement;\n })\n .filter((img) => img !== null) as HTMLImageElement[];\n\n return animations.brand.cardStack({\n featured,\n images,\n isExpandFeature: Attributes.includesFeature.imageExpand({\n element,\n }),\n });\n};\n\n/**\n * Card Stack\n *\n * A dynamic component featuring a central \"featured\" image or video\n * and a supporting set of 5-9 assets that pops into a grid layout in a \"stack\" style.\n * By default, the featured element expands full screen.\n * Designed for brand storytelling and visual highlights.\n *\n * ## Custom Element\n * `<umd-element-brand-card-stack>`\n *\n * ## Slots\n * - `cards` - Container for 5 - 8 supporting elements (required, accepts: img, video, and element containing img)\n *\n * ## Attributes\n * - `data-featured` - Indicates the featured element (required, accepts: `\"true\"` or `\"false\"`)\n * - `data-image-expand` - Expands the Stack layout for interactive or animated display (optional, accepts: `\"true\"` or `\"false\"`)\n *\n * @example\n * ```html\n * <!-- 3 images, featured video -->\n * <umd-element-brand-card-stack>\n * <div slot=\"cards\">\n * <img src=\"/library.jpg\" alt=\"McKeldin Library Exterior\" />\n * <img src=\"/mall-spring.jpg\" alt=\"McKeldin Mall in Spring\" />\n * <img src=\"/student-center.jpg\" alt=\"Student Center Activities\" />\n * <video data-featured=\"true\" aria-label=\"UMD Campus Tour\">\n * <source src=\"/campus-tour.mp4\" />\n * </video>\n * </div>\n * </umd-element-brand-card-stack>\n * ```\n *\n * @example\n * ```html\n * <!-- 5 images, featured image, expand feature off -->\n * <umd-element-brand-card-stack data-image-expand=\"false\">\n * <div slot=\"cards\">\n * <img data-featured=\"true\" src=\"./media/testudo.jpg\" alt=\"Testudo the Mascot\" />\n * <img src=\"/engineering.jpg\" alt=\"Engineering Building\" />\n * <img src=\"/arts.jpg\" alt=\"Arts and Humanities Building\" />\n * <img src=\"/science-hall.jpg\" alt=\"Science Lecture Hall\" />\n * <img src=\"/athletics.jpg\" alt=\"Athletics Stadium\" />\n * <img src=\"/dorm.jpg\" alt=\"Student Dormitory\" />\n * </div>\n * </umd-element-brand-card-stack>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\n\nexport const BrandCardStack: ComponentRegistration = Register.webComponent({\n tagName,\n createComponent,\n afterConnect: Lifecycle.hooks.loadAnimation,\n});\n\n/** Backwards compatibility alias for grouped exports */\nexport { BrandCardStack as cardStack };\n","import { animations } from '@universityofmaryland/web-elements-library/atomic';\nimport { Register } from '@universityofmaryland/web-model-library';\nimport { CreateComponentFunction, ComponentRegistration } from '../../_types';\n\nconst tagName = 'umd-element-brand-logo-animation';\n\nconst createComponent: CreateComponentFunction = () =>\n animations.brand.chevronScroll();\n\n/**\n * Brand Chevron Scroll Animation\n *\n * Creates an animated University of Maryland brand chevron logo.\n * The animation provides a dynamic visual element for brand presence.\n *\n * ## Custom Element\n * `<umd-element-brand-logo-animation>`\n *\n * ## Notes\n * - Uses the University of Maryland's atomic animations library\n * - Animation runs continuously\n * - Purely decorative element\n *\n * @example\n * ```html\n * <!-- Basic chevron animation -->\n * <umd-element-brand-logo-animation></umd-element-brand-logo-animation>\n * ```\n *\n * @example\n * ```html\n * <!-- In a hero section -->\n * <div class=\"hero-section\">\n * <h1>Welcome to UMD</h1>\n * <umd-element-brand-logo-animation></umd-element-brand-logo-animation>\n * </div>\n * ```\n *\n * @example\n * ```html\n * <!-- As a loading indicator -->\n * <div class=\"loading-container\" aria-busy=\"true\">\n * <umd-element-brand-logo-animation></umd-element-brand-logo-animation>\n * <p>Loading...</p>\n * </div>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const BrandChevronScroll: ComponentRegistration = Register.webComponent({\n tagName,\n createComponent,\n});\n\n/** Backwards compatibility alias for grouped exports */\nexport { BrandChevronScroll as chevronScroll };\n"],"names":["tagName","createComponent","element","cards","featured","card","images","img","animations","Attributes","BrandCardStack","Register","Lifecycle","BrandChevronScroll"],"mappings":";;AAIA,MAAMA,IAAU,gCAQVC,IAA2C,CAACC,MAAY;AAC5D,QAAMC,IAAQ,MAAM;AAAA,IAClBD,EAAQ,iBAAiB,oBAAoB;AAAA,EAAA,GAEzCE,IAAWD,EAAM;AAAA,IACrB,CAACE,MAASA,EAAK,aAAa,eAAe,MAAM;AAAA,EAAA;AAGnD,MAAIF,EAAM,SAAS;AACjB,mBAAQ,IAAI,GAAGH,CAAO,kDAAkD,GACjE,EAAE,SAAS,SAAS,cAAc,KAAK,GAAG,QAAQ,GAAA;AAG3D,MAAIG,EAAM,SAAS;AACjB,mBAAQ,IAAI,GAAGH,CAAO,mDAAmD,GAClE,EAAE,SAAS,SAAS,cAAc,KAAK,GAAG,QAAQ,GAAA;AAG3D,MAAI,CAACI;AACH,mBAAQ;AAAA,MACN,GAAGJ,CAAO;AAAA,IAAA,GAEL,EAAE,SAAS,SAAS,cAAc,KAAK,GAAG,QAAQ,GAAA;AAG3D,QAAMM,IAASH,EACZ,OAAO,CAACE,MAASA,EAAK,aAAa,eAAe,MAAM,MAAM,EAC9D,IAAI,CAACA,MACAA,EAAK,YAAY,QACZA,IAEQA,EAAK,cAAc,KAAK,CAE1C,EACA,OAAO,CAACE,MAAQA,MAAQ,IAAI;AAE/B,SAAOC,EAAW,MAAM,UAAU;AAAA,IAChC,UAAAJ;AAAA,IACA,QAAAE;AAAA,IACA,iBAAiBG,EAAW,gBAAgB,YAAY;AAAA,MACtD,SAAAP;AAAA,IAAA,CACD;AAAA,EAAA,CACF;AACH,GAsDaQ,IAAwCC,EAAS,aAAa;AAAA,EAAA,SACzEX;AAAAA,EAAA,iBACAC;AAAAA,EACA,cAAcW,EAAU,MAAM;AAChC,CAAC,GC7GKZ,IAAU,oCAEVC,IAA2C,MAC/CO,EAAW,MAAM,cAAA,GA2CNK,IAA4CF,EAAS,aAAa;AAAA,EAC7E,SAAAX;AAAA,EACA,iBAAAC;AACF,CAAC;;;;;;;"}
@@ -0,0 +1,55 @@
1
+ import { slider as m } from "@universityofmaryland/web-elements-library/composite";
2
+ import { Attributes as r, Register as c, Lifecycle as u, Slots as n } from "@universityofmaryland/web-model-library";
3
+ import { slider as f } from "@universityofmaryland/web-feeds-library/academic";
4
+ import { slider as p } from "@universityofmaryland/web-feeds-library/events";
5
+ const T = "umd-element-slider-events", v = r.handler.common.resize(
6
+ (e) => e.events?.size()
7
+ ), S = (e) => {
8
+ const t = document.createElement("div"), o = e.querySelector(
9
+ `[slot=${n.name.EVENT_LIST}]`
10
+ );
11
+ return o ? (t.innerHTML = o.innerHTML, m.events({
12
+ isThemeDark: r.isTheme.dark({ element: e }),
13
+ dataSlider: t,
14
+ headline: n.headline.default({ element: e }),
15
+ actions: n.actions.default({ element: e })
16
+ })) : (console.error(`Slot ${n.name.EVENT_LIST} is required`), { element: t, styles: "" });
17
+ }, a = c.webComponent({
18
+ tagName: T,
19
+ createComponent: S,
20
+ attributes: [v],
21
+ afterConnect: u.hooks.loadOnConnect
22
+ }), h = "umd-element-slider-events-feed", b = r.handler.common.resize(
23
+ (e) => e.events?.size()
24
+ ), y = (e) => {
25
+ const t = r.isTheme.dark({ element: e }), o = r.getValue.feedToken({ element: e }), d = r.getValue.feedFilterIds({ element: e }), l = r.isData.type.academic({
26
+ element: e
27
+ });
28
+ if (!o)
29
+ return console.error("Token is required for this component"), { element: document.createElement("div"), styles: "" };
30
+ const s = {
31
+ token: o,
32
+ categories: d,
33
+ isThemeDark: t,
34
+ headline: n.headline.default({ element: e }),
35
+ actions: n.actions.default({ element: e })
36
+ };
37
+ return l ? f(s) : p(s);
38
+ }, i = c.webComponent({
39
+ tagName: h,
40
+ createComponent: y,
41
+ attributes: [b],
42
+ afterConnect: (e, t) => e?.events?.callback?.(t)
43
+ }), $ = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
44
+ __proto__: null,
45
+ SliderEventDisplay: a,
46
+ SliderEventFeed: i,
47
+ eventDisplay: a,
48
+ eventFeed: i
49
+ }, Symbol.toStringTag, { value: "Module" }));
50
+ export {
51
+ a as S,
52
+ i as a,
53
+ $ as s
54
+ };
55
+ //# sourceMappingURL=index-BrpAs-2C.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BrpAs-2C.js","sources":["../source/web-components/slider/event/display.ts","../source/web-components/slider/event/feed.ts"],"sourcesContent":["import { slider } from '@universityofmaryland/web-elements-library/composite';\nimport { Attributes, Register, Slots, Lifecycle } from '@universityofmaryland/web-model-library';\nimport {\n CreateComponentFunction,\n ComponentRegistration,\n} from '../../../_types';\n\nconst tagName = 'umd-element-slider-events';\n\n/**\n * Event Slider Display\n *\n * A slider component for displaying a collection of events in a horizontal scrollable format.\n * Ideal for showcasing upcoming events, workshops, or activities with interactive navigation.\n * Automatically adjusts date element sizes based on viewport.\n *\n * ## Custom Element\n * `<umd-element-slider-events>`\n *\n * ## Slots\n * - `event-list` - Container with event items (required, accepts: div with event markup)\n * - `headline` - Section headline (optional, accepts: heading elements)\n * - `actions` - Call-to-action links (optional, accepts: a, button)\n *\n * ## Attributes\n * - `data-theme` - Color theme of the component:\n * - `dark` - Dark background with light text\n *\n * ## Observed Attributes\n * - `resize` - Triggers recalculation of date element sizes\n *\n * @example\n * ```html\n * <!-- Basic event slider -->\n * <umd-element-slider-events>\n * <h2 slot=\"headline\">Upcoming Events</h2>\n * <div slot=\"event-list\">\n * <div class=\"event\">\n * <time datetime=\"2024-04-15\">April 15</time>\n * <h3>Spring Concert</h3>\n * <p>Annual spring concert featuring student performances</p>\n * </div>\n * <div class=\"event\">\n * <time datetime=\"2024-04-20\">April 20</time>\n * <h3>Research Symposium</h3>\n * <p>Undergraduate research presentations</p>\n * </div>\n * <div class=\"event\">\n * <time datetime=\"2024-04-25\">April 25</time>\n * <h3>Career Fair</h3>\n * <p>Connect with employers and explore opportunities</p>\n * </div>\n * </div>\n * <a slot=\"actions\" href=\"/events\">View All Events</a>\n * </umd-element-slider-events>\n * ```\n *\n * @example\n * ```html\n * <!-- Dark theme with multiple actions -->\n * <umd-element-slider-events data-theme=\"dark\">\n * <h2 slot=\"headline\">This Week on Campus</h2>\n * <div slot=\"event-list\">\n * <div class=\"event\">\n * <time datetime=\"2024-03-10T14:00\">Mar 10, 2:00 PM</time>\n * <h3>Guest Lecture: AI Ethics</h3>\n * <p>Dr. Smith discusses ethical considerations in AI</p>\n * <a href=\"/event/ai-ethics\">Learn More</a>\n * </div>\n * <div class=\"event\">\n * <time datetime=\"2024-03-12T18:00\">Mar 12, 6:00 PM</time>\n * <h3>Film Screening</h3>\n * <p>Documentary screening and discussion</p>\n * <a href=\"/event/film\">RSVP</a>\n * </div>\n * </div>\n * <div slot=\"actions\">\n * <a href=\"/events/calendar\">Full Calendar</a>\n * <a href=\"/events/subscribe\">Subscribe</a>\n * </div>\n * </umd-element-slider-events>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nconst attributes = Attributes.handler.common.resize((element) =>\n element.events?.size(),\n);\n\nconst createComponent: CreateComponentFunction = (element) => {\n const dataSlider = document.createElement('div');\n const dataSliderSlot = element.querySelector(\n `[slot=${Slots.name.EVENT_LIST}]`,\n );\n\n if (!dataSliderSlot) {\n console.error(`Slot ${Slots.name.EVENT_LIST} is required`);\n return { element: dataSlider, styles: '' };\n }\n\n dataSlider.innerHTML = dataSliderSlot.innerHTML;\n\n return slider.events({\n isThemeDark: Attributes.isTheme.dark({ element }),\n dataSlider,\n headline: Slots.headline.default({ element }),\n actions: Slots.actions.default({ element }),\n });\n};\n\n/**\n * Event Slider Display\n *\n * A slider component for displaying a collection of events in a horizontal scrollable format.\n * Ideal for showcasing upcoming events, workshops, or activities with interactive navigation.\n * Automatically adjusts date element sizes based on viewport.\n *\n * ## Custom Element\n * `<umd-element-slider-events>`\n *\n * ## Slots\n * - `event-list` - Container with event items (required, accepts: div with event markup)\n * - `headline` - Section headline (optional, accepts: heading elements)\n * - `actions` - Call-to-action links (optional, accepts: a, button)\n *\n * ## Attributes\n * - `data-theme` - Color theme of the component:\n * - `dark` - Dark background with light text\n *\n * ## Observed Attributes\n * - `resize` - Triggers recalculation of date element sizes\n *\n * @example\n * ```html\n * <!-- Basic event slider -->\n * <umd-element-slider-events>\n * <h2 slot=\"headline\">Upcoming Events</h2>\n * <div slot=\"event-list\">\n * <div class=\"event\">\n * <time datetime=\"2024-04-15\">April 15</time>\n * <h3>Spring Concert</h3>\n * <p>Annual spring concert featuring student performances</p>\n * </div>\n * <div class=\"event\">\n * <time datetime=\"2024-04-20\">April 20</time>\n * <h3>Research Symposium</h3>\n * <p>Undergraduate research presentations</p>\n * </div>\n * <div class=\"event\">\n * <time datetime=\"2024-04-25\">April 25</time>\n * <h3>Career Fair</h3>\n * <p>Connect with employers and explore opportunities</p>\n * </div>\n * </div>\n * <a slot=\"actions\" href=\"/events\">View All Events</a>\n * </umd-element-slider-events>\n * ```\n *\n * @example\n * ```html\n * <!-- Dark theme with multiple actions -->\n * <umd-element-slider-events data-theme=\"dark\">\n * <h2 slot=\"headline\">This Week on Campus</h2>\n * <div slot=\"event-list\">\n * <div class=\"event\">\n * <time datetime=\"2024-03-10T14:00\">Mar 10, 2:00 PM</time>\n * <h3>Guest Lecture: AI Ethics</h3>\n * <p>Dr. Smith discusses ethical considerations in AI</p>\n * <a href=\"/event/ai-ethics\">Learn More</a>\n * </div>\n * <div class=\"event\">\n * <time datetime=\"2024-03-12T18:00\">Mar 12, 6:00 PM</time>\n * <h3>Film Screening</h3>\n * <p>Documentary screening and discussion</p>\n * <a href=\"/event/film\">RSVP</a>\n * </div>\n * </div>\n * <div slot=\"actions\">\n * <a href=\"/events/calendar\">Full Calendar</a>\n * <a href=\"/events/subscribe\">Subscribe</a>\n * </div>\n * </umd-element-slider-events>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const SliderEventDisplay: ComponentRegistration = Register.webComponent({\n tagName,\n createComponent,\n attributes: [attributes],\n afterConnect: Lifecycle.hooks.loadOnConnect,\n});\n\n/** Backwards compatibility alias for grouped exports */\nexport { SliderEventDisplay as eventDisplay };\n","import { slider as academicSlider } from '@universityofmaryland/web-feeds-library/academic';\nimport { slider as eventSlider } from '@universityofmaryland/web-feeds-library/events';\nimport { Attributes, Register, Slots } from '@universityofmaryland/web-model-library';\nimport {\n CreateComponentFunction,\n ComponentRegistration,\n TypedComponentRef,\n} from '../../../_types';\n\nconst tagName = 'umd-element-slider-events-feed';\n\n/**\n * Event Slider Feed\n *\n * A dynamic slider component that automatically fetches and displays events from a feed.\n * Supports both general events and academic calendar feeds with category filtering.\n * Provides real-time event updates with automatic date formatting and responsive layout.\n *\n * ## Custom Element\n * `<umd-element-slider-events-feed>`\n *\n * ## Slots\n * - `headline` - Section headline (optional, accepts: heading elements)\n * - `actions` - Call-to-action links (optional, accepts: a, button)\n *\n * ## Attributes\n * - `data-theme` - Color theme of the component:\n * - `dark` - Dark background with light text\n * - `data-token` - API token for fetching events (required)\n * - `data-feed-type` - Feed type:\n * - `academic` - Academic calendar events\n * - Default - General events feed\n * - `data-filter-group-ids` - Comma-separated list of event categories to filter\n *\n * ## Observed Attributes\n * - `resize` - Triggers recalculation of date element sizes\n *\n * @example\n * ```html\n * <!-- Basic events feed slider -->\n * <umd-element-slider-events-feed data-token=\"events-api-key\">\n * <h2 slot=\"headline\">Upcoming Events</h2>\n * <a slot=\"actions\" href=\"/events\">All Events</a>\n * </umd-element-slider-events-feed>\n * ```\n *\n * @example\n * ```html\n * <!-- Academic calendar feed -->\n * <umd-element-slider-events-feed\n * data-token=\"academic-api-key\"\n * data-feed-type=\"academic\">\n * <h2 slot=\"headline\">Academic Calendar</h2>\n * <div slot=\"actions\">\n * <a href=\"/academic-calendar\">Full Calendar</a>\n * <a href=\"/academic-calendar/deadlines\">Important Deadlines</a>\n * </div>\n * </umd-element-slider-events-feed>\n * ```\n *\n * @example\n * ```html\n * <!-- Filtered events with dark theme -->\n * <umd-element-slider-events-feed\n * data-token=\"events-api-key\"\n * data-theme=\"dark\"\n * data-filter-group-ids=\"athletics,recreation\">\n * <h2 slot=\"headline\">Sports & Recreation</h2>\n * <a slot=\"actions\" href=\"/athletics\">Athletics Home</a>\n * </umd-element-slider-events-feed>\n * ```\n *\n * @example\n * ```html\n * <!-- Multiple category filters -->\n * <umd-element-slider-events-feed\n * data-token=\"events-api-key\"\n * data-filter-group-ids=\"workshop,seminar,lecture\">\n * <h2 slot=\"headline\">Learning Opportunities</h2>\n * <div slot=\"actions\">\n * <a href=\"/workshops\">All Workshops</a>\n * <a href=\"/seminars\">Seminar Series</a>\n * </div>\n * </umd-element-slider-events-feed>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nconst attributes = Attributes.handler.common.resize((element) =>\n element.events?.size(),\n);\n\nconst createComponent: CreateComponentFunction = (element) => {\n const isThemeDark = Attributes.isTheme.dark({ element });\n const token = Attributes.getValue.feedToken({ element });\n const categories = Attributes.getValue.feedFilterIds({ element });\n const isTypeAcademic = Attributes.isData.type.academic({\n element,\n });\n\n if (!token) {\n console.error('Token is required for this component');\n return { element: document.createElement('div'), styles: '' };\n }\n\n const sliderProps = {\n token,\n categories,\n isThemeDark,\n headline: Slots.headline.default({ element }),\n actions: Slots.actions.default({ element }),\n };\n\n if (isTypeAcademic) return academicSlider(sliderProps);\n\n return eventSlider(sliderProps);\n};\n\n/**\n * Event Slider Feed\n *\n * A dynamic slider component that automatically fetches and displays events from a feed.\n * Supports both general events and academic calendar feeds with category filtering.\n * Provides real-time event updates with automatic date formatting and responsive layout.\n *\n * ## Custom Element\n * `<umd-element-slider-events-feed>`\n *\n * ## Slots\n * - `headline` - Section headline (optional, accepts: heading elements)\n * - `actions` - Call-to-action links (optional, accepts: a, button)\n *\n * ## Attributes\n * - `data-theme` - Color theme of the component:\n * - `dark` - Dark background with light text\n * - `data-token` - API token for fetching events (required)\n * - `data-feed-type` - Feed type:\n * - `academic` - Academic calendar events\n * - Default - General events feed\n * - `data-filter-group-ids` - Comma-separated list of event categories to filter\n *\n * ## Observed Attributes\n * - `resize` - Triggers recalculation of date element sizes\n *\n * @example\n * ```html\n * <!-- Basic events feed slider -->\n * <umd-element-slider-events-feed data-token=\"events-api-key\">\n * <h2 slot=\"headline\">Upcoming Events</h2>\n * <a slot=\"actions\" href=\"/events\">All Events</a>\n * </umd-element-slider-events-feed>\n * ```\n *\n * @example\n * ```html\n * <!-- Academic calendar feed -->\n * <umd-element-slider-events-feed\n * data-token=\"academic-api-key\"\n * data-feed-type=\"academic\">\n * <h2 slot=\"headline\">Academic Calendar</h2>\n * <div slot=\"actions\">\n * <a href=\"/academic-calendar\">Full Calendar</a>\n * <a href=\"/academic-calendar/deadlines\">Important Deadlines</a>\n * </div>\n * </umd-element-slider-events-feed>\n * ```\n *\n * @example\n * ```html\n * <!-- Filtered events with dark theme -->\n * <umd-element-slider-events-feed\n * data-token=\"events-api-key\"\n * data-theme=\"dark\"\n * data-filter-group-ids=\"athletics,recreation\">\n * <h2 slot=\"headline\">Sports & Recreation</h2>\n * <a slot=\"actions\" href=\"/athletics\">Athletics Home</a>\n * </umd-element-slider-events-feed>\n * ```\n *\n * @example\n * ```html\n * <!-- Multiple category filters -->\n * <umd-element-slider-events-feed\n * data-token=\"events-api-key\"\n * data-filter-group-ids=\"workshop,seminar,lecture\">\n * <h2 slot=\"headline\">Learning Opportunities</h2>\n * <div slot=\"actions\">\n * <a href=\"/workshops\">All Workshops</a>\n * <a href=\"/seminars\">Seminar Series</a>\n * </div>\n * </umd-element-slider-events-feed>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const SliderEventFeed: ComponentRegistration = Register.webComponent({\n tagName,\n createComponent,\n attributes: [attributes],\n afterConnect: (ref: TypedComponentRef, shadow?: ShadowRoot) =>\n ref?.events?.callback?.(shadow),\n});\n\n/** Backwards compatibility alias for grouped exports */\nexport { SliderEventFeed as eventFeed };\n"],"names":["tagName","attributes","Attributes","element","createComponent","dataSlider","dataSliderSlot","Slots","slider","SliderEventDisplay","Register","Lifecycle","isThemeDark","token","categories","isTypeAcademic","sliderProps","academicSlider","eventSlider","SliderEventFeed","ref","shadow"],"mappings":";;;;AAOA,MAAMA,IAAU,6BA+EVC,IAAaC,EAAW,QAAQ,OAAO;AAAA,EAAO,CAACC,MACnDA,EAAQ,QAAQ,KAAA;AAClB,GAEMC,IAA2C,CAACD,MAAY;AAC5D,QAAME,IAAa,SAAS,cAAc,KAAK,GACzCC,IAAiBH,EAAQ;AAAA,IAC7B,SAASI,EAAM,KAAK,UAAU;AAAA,EAAA;AAGhC,SAAKD,KAKLD,EAAW,YAAYC,EAAe,WAE/BE,EAAO,OAAO;AAAA,IACnB,aAAaN,EAAW,QAAQ,KAAK,EAAE,SAAAC,GAAS;AAAA,IAChD,YAAAE;AAAA,IACA,UAAUE,EAAM,SAAS,QAAQ,EAAE,SAAAJ,GAAS;AAAA,IAC5C,SAASI,EAAM,QAAQ,QAAQ,EAAE,SAAAJ,GAAS;AAAA,EAAA,CAC3C,MAXC,QAAQ,MAAM,QAAQI,EAAM,KAAK,UAAU,cAAc,GAClD,EAAE,SAASF,GAAY,QAAQ,GAAA;AAW1C,GA+EaI,IAA4CC,EAAS,aAAa;AAAA,EAAA,SAC7EV;AAAAA,EAAA,iBACAI;AAAAA,EACA,YAAY,CAACH,CAAU;AAAA,EACvB,cAAcU,EAAU,MAAM;AAChC,CAAC,GCxLKX,IAAU,kCAgFVC,IAAaC,EAAW,QAAQ,OAAO;AAAA,EAAO,CAACC,MACnDA,EAAQ,QAAQ,KAAA;AAClB,GAEMC,IAA2C,CAACD,MAAY;AAC5D,QAAMS,IAAcV,EAAW,QAAQ,KAAK,EAAE,SAAAC,GAAS,GACjDU,IAAQX,EAAW,SAAS,UAAU,EAAE,SAAAC,GAAS,GACjDW,IAAaZ,EAAW,SAAS,cAAc,EAAE,SAAAC,GAAS,GAC1DY,IAAiBb,EAAW,OAAO,KAAK,SAAS;AAAA,IACrD,SAAAC;AAAA,EAAA,CACD;AAED,MAAI,CAACU;AACH,mBAAQ,MAAM,sCAAsC,GAC7C,EAAE,SAAS,SAAS,cAAc,KAAK,GAAG,QAAQ,GAAA;AAG3D,QAAMG,IAAc;AAAA,IAClB,OAAAH;AAAA,IACA,YAAAC;AAAA,IACA,aAAAF;AAAA,IACA,UAAUL,EAAM,SAAS,QAAQ,EAAE,SAAAJ,GAAS;AAAA,IAC5C,SAASI,EAAM,QAAQ,QAAQ,EAAE,SAAAJ,GAAS;AAAA,EAAA;AAG5C,SAAIY,IAAuBE,EAAeD,CAAW,IAE9CE,EAAYF,CAAW;AAChC,GAgFaG,IAAyCT,EAAS,aAAa;AAAA,EAC1E,SAAAV;AAAA,EACA,iBAAAI;AAAA,EACA,YAAY,CAACH,CAAU;AAAA,EACvB,cAAc,CAACmB,GAAwBC,MACrCD,GAAK,QAAQ,WAAWC,CAAM;AAClC,CAAC;;;;;;;"}