@universityofmaryland/web-elements-library 1.5.3 → 1.5.5

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 (708) hide show
  1. package/README.md +1 -1
  2. package/dist/_types.d.ts +2 -9
  3. package/dist/_types.d.ts.map +1 -1
  4. package/dist/atomic/_types.d.ts +2 -2
  5. package/dist/atomic/_types.d.ts.map +1 -1
  6. package/dist/atomic/actions/icon.d.ts +1 -5
  7. package/dist/atomic/actions/icon.d.ts.map +1 -1
  8. package/dist/atomic/actions/icon.js +43 -48
  9. package/dist/atomic/actions/icon.js.map +1 -1
  10. package/dist/atomic/actions/icon.mjs +43 -48
  11. package/dist/atomic/actions/icon.mjs.map +1 -1
  12. package/dist/atomic/actions/text.d.ts +4 -16
  13. package/dist/atomic/actions/text.d.ts.map +1 -1
  14. package/dist/atomic/actions/text.js +82 -104
  15. package/dist/atomic/actions/text.js.map +1 -1
  16. package/dist/atomic/actions/text.mjs +81 -106
  17. package/dist/atomic/actions/text.mjs.map +1 -1
  18. package/dist/atomic/animations/actions/indicator.js +1 -1
  19. package/dist/atomic/animations/actions/indicator.js.map +1 -1
  20. package/dist/atomic/animations/actions/indicator.mjs +1 -1
  21. package/dist/atomic/animations/actions/indicator.mjs.map +1 -1
  22. package/dist/atomic/animations/brand/card-stack.d.ts +2 -1
  23. package/dist/atomic/animations/brand/card-stack.d.ts.map +1 -1
  24. package/dist/atomic/animations/brand/card-stack.js +148 -172
  25. package/dist/atomic/animations/brand/card-stack.js.map +1 -1
  26. package/dist/atomic/animations/brand/card-stack.mjs +140 -164
  27. package/dist/atomic/animations/brand/card-stack.mjs.map +1 -1
  28. package/dist/atomic/animations/brand/chevron-scroll.js +1 -1
  29. package/dist/atomic/animations/brand/chevron-scroll.js.map +1 -1
  30. package/dist/atomic/animations/brand/chevron-scroll.mjs +1 -1
  31. package/dist/atomic/animations/brand/chevron-scroll.mjs.map +1 -1
  32. package/dist/atomic/assets/image/background.d.ts +1 -5
  33. package/dist/atomic/assets/image/background.d.ts.map +1 -1
  34. package/dist/atomic/assets/image/background.js +40 -40
  35. package/dist/atomic/assets/image/background.js.map +1 -1
  36. package/dist/atomic/assets/image/background.mjs +23 -40
  37. package/dist/atomic/assets/image/background.mjs.map +1 -1
  38. package/dist/atomic/assets/image/gif.d.ts +1 -5
  39. package/dist/atomic/assets/image/gif.d.ts.map +1 -1
  40. package/dist/atomic/assets/image/gif.js +28 -12
  41. package/dist/atomic/assets/image/gif.js.map +1 -1
  42. package/dist/atomic/assets/image/gif.mjs +11 -12
  43. package/dist/atomic/assets/image/gif.mjs.map +1 -1
  44. package/dist/atomic/assets/image/placeholder.d.ts +1 -5
  45. package/dist/atomic/assets/image/placeholder.d.ts.map +1 -1
  46. package/dist/atomic/assets/video/observed-auto-play.d.ts +1 -9
  47. package/dist/atomic/assets/video/observed-auto-play.d.ts.map +1 -1
  48. package/dist/atomic/assets/video/observed-auto-play.js +9 -5
  49. package/dist/atomic/assets/video/observed-auto-play.js.map +1 -1
  50. package/dist/atomic/assets/video/observed-auto-play.mjs +9 -5
  51. package/dist/atomic/assets/video/observed-auto-play.mjs.map +1 -1
  52. package/dist/atomic/assets/video/toggle.d.ts +1 -9
  53. package/dist/atomic/assets/video/toggle.d.ts.map +1 -1
  54. package/dist/atomic/assets/video/toggle.js +38 -40
  55. package/dist/atomic/assets/video/toggle.js.map +1 -1
  56. package/dist/atomic/assets/video/toggle.mjs +21 -40
  57. package/dist/atomic/assets/video/toggle.mjs.map +1 -1
  58. package/dist/atomic/buttons/fullscreen.d.ts +1 -5
  59. package/dist/atomic/buttons/fullscreen.d.ts.map +1 -1
  60. package/dist/atomic/buttons/fullscreen.js +21 -15
  61. package/dist/atomic/buttons/fullscreen.js.map +1 -1
  62. package/dist/atomic/buttons/fullscreen.mjs +4 -15
  63. package/dist/atomic/buttons/fullscreen.mjs.map +1 -1
  64. package/dist/atomic/events/meta.d.ts +1 -5
  65. package/dist/atomic/events/meta.d.ts.map +1 -1
  66. package/dist/atomic/events/meta.js +48 -48
  67. package/dist/atomic/events/meta.js.map +1 -1
  68. package/dist/atomic/events/meta.mjs +31 -48
  69. package/dist/atomic/events/meta.mjs.map +1 -1
  70. package/dist/atomic/events/sign.d.ts +1 -5
  71. package/dist/atomic/events/sign.d.ts.map +1 -1
  72. package/dist/atomic/events/sign.js +84 -93
  73. package/dist/atomic/events/sign.js.map +1 -1
  74. package/dist/atomic/events/sign.mjs +82 -93
  75. package/dist/atomic/events/sign.mjs.map +1 -1
  76. package/dist/atomic/layout/block/stacked.d.ts +7 -19
  77. package/dist/atomic/layout/block/stacked.d.ts.map +1 -1
  78. package/dist/atomic/layout/block/stacked.js +14 -20
  79. package/dist/atomic/layout/block/stacked.js.map +1 -1
  80. package/dist/atomic/layout/block/stacked.mjs +14 -20
  81. package/dist/atomic/layout/block/stacked.mjs.map +1 -1
  82. package/dist/atomic/layout/overlay/modal.js +1 -1
  83. package/dist/atomic/layout/overlay/modal.js.map +1 -1
  84. package/dist/atomic/layout/overlay/modal.mjs +1 -1
  85. package/dist/atomic/layout/overlay/modal.mjs.map +1 -1
  86. package/dist/atomic/layout/person/columns.d.ts +4 -20
  87. package/dist/atomic/layout/person/columns.d.ts.map +1 -1
  88. package/dist/atomic/layout/person/columns.js +56 -66
  89. package/dist/atomic/layout/person/columns.js.map +1 -1
  90. package/dist/atomic/layout/person/columns.mjs +56 -66
  91. package/dist/atomic/layout/person/columns.mjs.map +1 -1
  92. package/dist/atomic/text/stat.d.ts +2 -3
  93. package/dist/atomic/text/stat.d.ts.map +1 -1
  94. package/dist/atomic/text/stat.js +101 -119
  95. package/dist/atomic/text/stat.js.map +1 -1
  96. package/dist/atomic/text/stat.mjs +100 -119
  97. package/dist/atomic/text/stat.mjs.map +1 -1
  98. package/dist/atomic/text-lockup/contact.d.ts +1 -5
  99. package/dist/atomic/text-lockup/contact.d.ts.map +1 -1
  100. package/dist/atomic/text-lockup/contact.js +65 -105
  101. package/dist/atomic/text-lockup/contact.js.map +1 -1
  102. package/dist/atomic/text-lockup/contact.mjs +60 -103
  103. package/dist/atomic/text-lockup/contact.mjs.map +1 -1
  104. package/dist/atomic/text-lockup/date.d.ts.map +1 -1
  105. package/dist/atomic/text-lockup/date.js +6 -1
  106. package/dist/atomic/text-lockup/date.js.map +1 -1
  107. package/dist/atomic/text-lockup/date.mjs +6 -1
  108. package/dist/atomic/text-lockup/date.mjs.map +1 -1
  109. package/dist/atomic/text-lockup/large.d.ts +3 -7
  110. package/dist/atomic/text-lockup/large.d.ts.map +1 -1
  111. package/dist/atomic/text-lockup/large.js +62 -71
  112. package/dist/atomic/text-lockup/large.js.map +1 -1
  113. package/dist/atomic/text-lockup/large.mjs +59 -71
  114. package/dist/atomic/text-lockup/large.mjs.map +1 -1
  115. package/dist/atomic/text-lockup/medium.d.ts +5 -9
  116. package/dist/atomic/text-lockup/medium.d.ts.map +1 -1
  117. package/dist/atomic/text-lockup/medium.js +76 -84
  118. package/dist/atomic/text-lockup/medium.js.map +1 -1
  119. package/dist/atomic/text-lockup/medium.mjs +70 -82
  120. package/dist/atomic/text-lockup/medium.mjs.map +1 -1
  121. package/dist/atomic/text-lockup/person.d.ts +1 -5
  122. package/dist/atomic/text-lockup/person.d.ts.map +1 -1
  123. package/dist/atomic/text-lockup/person.js +102 -101
  124. package/dist/atomic/text-lockup/person.js.map +1 -1
  125. package/dist/atomic/text-lockup/person.mjs +99 -101
  126. package/dist/atomic/text-lockup/person.mjs.map +1 -1
  127. package/dist/atomic/text-lockup/small-scaling.d.ts +1 -5
  128. package/dist/atomic/text-lockup/small-scaling.d.ts.map +1 -1
  129. package/dist/atomic/text-lockup/small-scaling.js +64 -39
  130. package/dist/atomic/text-lockup/small-scaling.js.map +1 -1
  131. package/dist/atomic/text-lockup/small-scaling.mjs +44 -38
  132. package/dist/atomic/text-lockup/small-scaling.mjs.map +1 -1
  133. package/dist/atomic/text-lockup/small.d.ts +11 -25
  134. package/dist/atomic/text-lockup/small.d.ts.map +1 -1
  135. package/dist/atomic/text-lockup/small.js +70 -69
  136. package/dist/atomic/text-lockup/small.js.map +1 -1
  137. package/dist/atomic/text-lockup/small.mjs +64 -66
  138. package/dist/atomic/text-lockup/small.mjs.map +1 -1
  139. package/dist/composite/alert/elements/closeButton.d.ts +7 -0
  140. package/dist/composite/alert/elements/closeButton.d.ts.map +1 -0
  141. package/dist/composite/alert/elements/closeButton.js +51 -0
  142. package/dist/composite/alert/elements/closeButton.js.map +1 -0
  143. package/dist/composite/alert/elements/closeButton.mjs +34 -0
  144. package/dist/composite/alert/elements/closeButton.mjs.map +1 -0
  145. package/dist/composite/alert/elements/text.d.ts +3 -13
  146. package/dist/composite/alert/elements/text.d.ts.map +1 -1
  147. package/dist/composite/alert/elements/text.js +60 -81
  148. package/dist/composite/alert/elements/text.js.map +1 -1
  149. package/dist/composite/alert/elements/text.mjs +56 -80
  150. package/dist/composite/alert/elements/text.mjs.map +1 -1
  151. package/dist/composite/alert/globals.d.ts +4 -0
  152. package/dist/composite/alert/globals.d.ts.map +1 -0
  153. package/dist/composite/alert/globals.js +7 -0
  154. package/dist/composite/alert/globals.js.map +1 -0
  155. package/dist/composite/alert/globals.mjs +7 -0
  156. package/dist/composite/alert/globals.mjs.map +1 -0
  157. package/dist/composite/alert/index.d.ts +2 -2
  158. package/dist/composite/alert/index.d.ts.map +1 -1
  159. package/dist/composite/alert/index.js +2 -2
  160. package/dist/composite/alert/index.mjs +4 -4
  161. package/dist/composite/alert/page.d.ts +5 -12
  162. package/dist/composite/alert/page.d.ts.map +1 -1
  163. package/dist/composite/alert/page.js +44 -113
  164. package/dist/composite/alert/page.js.map +1 -1
  165. package/dist/composite/alert/page.mjs +44 -112
  166. package/dist/composite/alert/page.mjs.map +1 -1
  167. package/dist/composite/alert/site.d.ts +5 -11
  168. package/dist/composite/alert/site.d.ts.map +1 -1
  169. package/dist/composite/alert/site.js +60 -109
  170. package/dist/composite/alert/site.js.map +1 -1
  171. package/dist/composite/alert/site.mjs +61 -109
  172. package/dist/composite/alert/site.mjs.map +1 -1
  173. package/dist/composite/banner/promo.js +1 -1
  174. package/dist/composite/banner/promo.js.map +1 -1
  175. package/dist/composite/banner/promo.mjs +1 -1
  176. package/dist/composite/banner/promo.mjs.map +1 -1
  177. package/dist/composite/card/block.d.ts +1 -5
  178. package/dist/composite/card/block.d.ts.map +1 -1
  179. package/dist/composite/card/block.js +7 -5
  180. package/dist/composite/card/block.js.map +1 -1
  181. package/dist/composite/card/block.mjs +7 -5
  182. package/dist/composite/card/block.mjs.map +1 -1
  183. package/dist/composite/card/list.d.ts +1 -5
  184. package/dist/composite/card/list.d.ts.map +1 -1
  185. package/dist/composite/card/list.js +52 -64
  186. package/dist/composite/card/list.js.map +1 -1
  187. package/dist/composite/card/list.mjs +52 -64
  188. package/dist/composite/card/list.mjs.map +1 -1
  189. package/dist/composite/card/overlay/color.d.ts +1 -5
  190. package/dist/composite/card/overlay/color.d.ts.map +1 -1
  191. package/dist/composite/card/overlay/color.js +36 -41
  192. package/dist/composite/card/overlay/color.js.map +1 -1
  193. package/dist/composite/card/overlay/color.mjs +36 -41
  194. package/dist/composite/card/overlay/color.mjs.map +1 -1
  195. package/dist/composite/card/overlay/icon.d.ts +1 -5
  196. package/dist/composite/card/overlay/icon.d.ts.map +1 -1
  197. package/dist/composite/card/overlay/icon.js +27 -31
  198. package/dist/composite/card/overlay/icon.js.map +1 -1
  199. package/dist/composite/card/overlay/icon.mjs +27 -31
  200. package/dist/composite/card/overlay/icon.mjs.map +1 -1
  201. package/dist/composite/card/overlay/image.d.ts +2 -1
  202. package/dist/composite/card/overlay/image.d.ts.map +1 -1
  203. package/dist/composite/card/overlay/image.js +74 -93
  204. package/dist/composite/card/overlay/image.js.map +1 -1
  205. package/dist/composite/card/overlay/image.mjs +73 -93
  206. package/dist/composite/card/overlay/image.mjs.map +1 -1
  207. package/dist/composite/card/video/block.d.ts +1 -9
  208. package/dist/composite/card/video/block.d.ts.map +1 -1
  209. package/dist/composite/card/video/block.js +7 -5
  210. package/dist/composite/card/video/block.js.map +1 -1
  211. package/dist/composite/card/video/block.mjs +7 -5
  212. package/dist/composite/card/video/block.mjs.map +1 -1
  213. package/dist/composite/card/video/short.d.ts +1 -5
  214. package/dist/composite/card/video/short.d.ts.map +1 -1
  215. package/dist/composite/card/video/short.js +16 -21
  216. package/dist/composite/card/video/short.js.map +1 -1
  217. package/dist/composite/card/video/short.mjs +16 -21
  218. package/dist/composite/card/video/short.mjs.map +1 -1
  219. package/dist/composite/carousel/_types.d.ts.map +1 -1
  220. package/dist/composite/carousel/default/index.js +1 -1
  221. package/dist/composite/carousel/default/index.js.map +1 -1
  222. package/dist/composite/carousel/default/index.mjs +1 -1
  223. package/dist/composite/carousel/default/index.mjs.map +1 -1
  224. package/dist/composite/carousel/elements/blocks.js +2 -2
  225. package/dist/composite/carousel/elements/blocks.js.map +1 -1
  226. package/dist/composite/carousel/elements/blocks.mjs +2 -2
  227. package/dist/composite/carousel/elements/blocks.mjs.map +1 -1
  228. package/dist/composite/carousel/elements/full-screen.js +7 -5
  229. package/dist/composite/carousel/elements/full-screen.js.map +1 -1
  230. package/dist/composite/carousel/elements/full-screen.mjs +7 -5
  231. package/dist/composite/carousel/elements/full-screen.mjs.map +1 -1
  232. package/dist/composite/carousel/elements/image.js +2 -2
  233. package/dist/composite/carousel/elements/image.js.map +1 -1
  234. package/dist/composite/carousel/elements/image.mjs +2 -2
  235. package/dist/composite/carousel/elements/image.mjs.map +1 -1
  236. package/dist/composite/carousel/elements/overlay.js +2 -2
  237. package/dist/composite/carousel/elements/overlay.js.map +1 -1
  238. package/dist/composite/carousel/elements/overlay.mjs +2 -2
  239. package/dist/composite/carousel/elements/overlay.mjs.map +1 -1
  240. package/dist/composite/carousel/image/multiple.js +11 -9
  241. package/dist/composite/carousel/image/multiple.js.map +1 -1
  242. package/dist/composite/carousel/image/multiple.mjs +11 -9
  243. package/dist/composite/carousel/image/multiple.mjs.map +1 -1
  244. package/dist/composite/carousel/image/standard.js +10 -8
  245. package/dist/composite/carousel/image/standard.js.map +1 -1
  246. package/dist/composite/carousel/image/standard.mjs +10 -8
  247. package/dist/composite/carousel/image/standard.mjs.map +1 -1
  248. package/dist/composite/carousel/thumbnail/index.js +1 -1
  249. package/dist/composite/carousel/thumbnail/index.js.map +1 -1
  250. package/dist/composite/carousel/thumbnail/index.mjs +1 -1
  251. package/dist/composite/carousel/thumbnail/index.mjs.map +1 -1
  252. package/dist/composite/carousel/wide/_elementModel.d.ts +2 -2
  253. package/dist/composite/carousel/wide/_elementModel.d.ts.map +1 -1
  254. package/dist/composite/carousel/wide/_elementModel.js +20 -7
  255. package/dist/composite/carousel/wide/_elementModel.js.map +1 -1
  256. package/dist/composite/carousel/wide/_elementModel.mjs +20 -7
  257. package/dist/composite/carousel/wide/_elementModel.mjs.map +1 -1
  258. package/dist/composite/carousel/wide/container.d.ts.map +1 -1
  259. package/dist/composite/carousel/wide/container.js +9 -15
  260. package/dist/composite/carousel/wide/container.js.map +1 -1
  261. package/dist/composite/carousel/wide/container.mjs +9 -15
  262. package/dist/composite/carousel/wide/container.mjs.map +1 -1
  263. package/dist/composite/carousel/wide/controls.d.ts +1 -5
  264. package/dist/composite/carousel/wide/controls.d.ts.map +1 -1
  265. package/dist/composite/carousel/wide/controls.js +55 -56
  266. package/dist/composite/carousel/wide/controls.js.map +1 -1
  267. package/dist/composite/carousel/wide/controls.mjs +55 -56
  268. package/dist/composite/carousel/wide/controls.mjs.map +1 -1
  269. package/dist/composite/carousel/wide/frames.d.ts.map +1 -1
  270. package/dist/composite/carousel/wide/frames.js +156 -171
  271. package/dist/composite/carousel/wide/frames.js.map +1 -1
  272. package/dist/composite/carousel/wide/frames.mjs +153 -169
  273. package/dist/composite/carousel/wide/frames.mjs.map +1 -1
  274. package/dist/composite/carousel/wide/index.d.ts +1 -5
  275. package/dist/composite/carousel/wide/index.d.ts.map +1 -1
  276. package/dist/composite/carousel/wide/index.js +23 -17
  277. package/dist/composite/carousel/wide/index.js.map +1 -1
  278. package/dist/composite/carousel/wide/index.mjs +23 -17
  279. package/dist/composite/carousel/wide/index.mjs.map +1 -1
  280. package/dist/composite/footer/elements/main-section/call-to-action.d.ts +2 -2
  281. package/dist/composite/footer/elements/main-section/call-to-action.d.ts.map +1 -1
  282. package/dist/composite/footer/elements/main-section/call-to-action.js +19 -28
  283. package/dist/composite/footer/elements/main-section/call-to-action.js.map +1 -1
  284. package/dist/composite/footer/elements/main-section/call-to-action.mjs +18 -28
  285. package/dist/composite/footer/elements/main-section/call-to-action.mjs.map +1 -1
  286. package/dist/composite/footer/elements/main-section/campaign.d.ts +2 -2
  287. package/dist/composite/footer/elements/main-section/campaign.d.ts.map +1 -1
  288. package/dist/composite/footer/elements/main-section/campaign.js +27 -35
  289. package/dist/composite/footer/elements/main-section/campaign.js.map +1 -1
  290. package/dist/composite/footer/elements/main-section/campaign.mjs +27 -35
  291. package/dist/composite/footer/elements/main-section/campaign.mjs.map +1 -1
  292. package/dist/composite/footer/elements/main-section/index.d.ts +2 -2
  293. package/dist/composite/footer/elements/main-section/index.d.ts.map +1 -1
  294. package/dist/composite/footer/elements/main-section/index.js +38 -50
  295. package/dist/composite/footer/elements/main-section/index.js.map +1 -1
  296. package/dist/composite/footer/elements/main-section/index.mjs +38 -50
  297. package/dist/composite/footer/elements/main-section/index.mjs.map +1 -1
  298. package/dist/composite/footer/elements/main-section/row-links/index.d.ts +2 -2
  299. package/dist/composite/footer/elements/main-section/row-links/index.d.ts.map +1 -1
  300. package/dist/composite/footer/elements/main-section/row-links/index.js +24 -36
  301. package/dist/composite/footer/elements/main-section/row-links/index.js.map +1 -1
  302. package/dist/composite/footer/elements/main-section/row-links/index.mjs +24 -36
  303. package/dist/composite/footer/elements/main-section/row-links/index.mjs.map +1 -1
  304. package/dist/composite/footer/elements/main-section/row-links/link-columns.d.ts +2 -2
  305. package/dist/composite/footer/elements/main-section/row-links/link-columns.d.ts.map +1 -1
  306. package/dist/composite/footer/elements/main-section/row-links/link-columns.js +75 -95
  307. package/dist/composite/footer/elements/main-section/row-links/link-columns.js.map +1 -1
  308. package/dist/composite/footer/elements/main-section/row-links/link-columns.mjs +73 -93
  309. package/dist/composite/footer/elements/main-section/row-links/link-columns.mjs.map +1 -1
  310. package/dist/composite/footer/elements/main-section/row-logo/contact.d.ts +2 -2
  311. package/dist/composite/footer/elements/main-section/row-logo/contact.d.ts.map +1 -1
  312. package/dist/composite/footer/elements/main-section/row-logo/contact.js +88 -98
  313. package/dist/composite/footer/elements/main-section/row-logo/contact.js.map +1 -1
  314. package/dist/composite/footer/elements/main-section/row-logo/contact.mjs +88 -98
  315. package/dist/composite/footer/elements/main-section/row-logo/contact.mjs.map +1 -1
  316. package/dist/composite/footer/elements/main-section/row-logo/index.d.ts +2 -2
  317. package/dist/composite/footer/elements/main-section/row-logo/index.d.ts.map +1 -1
  318. package/dist/composite/footer/elements/main-section/row-logo/index.js +30 -43
  319. package/dist/composite/footer/elements/main-section/row-logo/index.js.map +1 -1
  320. package/dist/composite/footer/elements/main-section/row-logo/index.mjs +30 -43
  321. package/dist/composite/footer/elements/main-section/row-logo/index.mjs.map +1 -1
  322. package/dist/composite/footer/elements/main-section/row-logo/logo.d.ts +2 -2
  323. package/dist/composite/footer/elements/main-section/row-logo/logo.d.ts.map +1 -1
  324. package/dist/composite/footer/elements/main-section/row-logo/logo.js +24 -32
  325. package/dist/composite/footer/elements/main-section/row-logo/logo.js.map +1 -1
  326. package/dist/composite/footer/elements/main-section/row-logo/logo.mjs +24 -32
  327. package/dist/composite/footer/elements/main-section/row-logo/logo.mjs.map +1 -1
  328. package/dist/composite/footer/elements/main-section/social.d.ts +2 -2
  329. package/dist/composite/footer/elements/main-section/social.d.ts.map +1 -1
  330. package/dist/composite/footer/elements/main-section/social.js +74 -97
  331. package/dist/composite/footer/elements/main-section/social.js.map +1 -1
  332. package/dist/composite/footer/elements/main-section/social.mjs +74 -97
  333. package/dist/composite/footer/elements/main-section/social.mjs.map +1 -1
  334. package/dist/composite/footer/elements/utility-section/index.d.ts +1 -5
  335. package/dist/composite/footer/elements/utility-section/index.d.ts.map +1 -1
  336. package/dist/composite/footer/elements/utility-section/index.js +56 -83
  337. package/dist/composite/footer/elements/utility-section/index.js.map +1 -1
  338. package/dist/composite/footer/elements/utility-section/index.mjs +56 -83
  339. package/dist/composite/footer/elements/utility-section/index.mjs.map +1 -1
  340. package/dist/composite/footer/options.d.ts +1 -4
  341. package/dist/composite/footer/options.d.ts.map +1 -1
  342. package/dist/composite/footer/options.js +19 -27
  343. package/dist/composite/footer/options.js.map +1 -1
  344. package/dist/composite/footer/options.mjs +19 -27
  345. package/dist/composite/footer/options.mjs.map +1 -1
  346. package/dist/composite/hero/_types.d.ts.map +1 -1
  347. package/dist/composite/hero/custom/expand.d.ts +3 -2
  348. package/dist/composite/hero/custom/expand.d.ts.map +1 -1
  349. package/dist/composite/hero/custom/expand.js +151 -192
  350. package/dist/composite/hero/custom/expand.js.map +1 -1
  351. package/dist/composite/hero/custom/expand.mjs +145 -187
  352. package/dist/composite/hero/custom/expand.mjs.map +1 -1
  353. package/dist/composite/hero/custom/grid.d.ts +1 -5
  354. package/dist/composite/hero/custom/grid.d.ts.map +1 -1
  355. package/dist/composite/hero/custom/grid.js +122 -171
  356. package/dist/composite/hero/custom/grid.js.map +1 -1
  357. package/dist/composite/hero/custom/grid.mjs +116 -166
  358. package/dist/composite/hero/custom/grid.mjs.map +1 -1
  359. package/dist/composite/hero/custom/video-arrow.d.ts +2 -1
  360. package/dist/composite/hero/custom/video-arrow.d.ts.map +1 -1
  361. package/dist/composite/hero/custom/video-arrow.js +83 -105
  362. package/dist/composite/hero/custom/video-arrow.js.map +1 -1
  363. package/dist/composite/hero/custom/video-arrow.mjs +77 -99
  364. package/dist/composite/hero/custom/video-arrow.mjs.map +1 -1
  365. package/dist/composite/hero/logo.d.ts +1 -5
  366. package/dist/composite/hero/logo.d.ts.map +1 -1
  367. package/dist/composite/hero/logo.js +71 -89
  368. package/dist/composite/hero/logo.js.map +1 -1
  369. package/dist/composite/hero/logo.mjs +68 -87
  370. package/dist/composite/hero/logo.mjs.map +1 -1
  371. package/dist/composite/hero/minimal.d.ts +1 -5
  372. package/dist/composite/hero/minimal.d.ts.map +1 -1
  373. package/dist/composite/hero/minimal.js +67 -86
  374. package/dist/composite/hero/minimal.js.map +1 -1
  375. package/dist/composite/hero/minimal.mjs +63 -83
  376. package/dist/composite/hero/minimal.mjs.map +1 -1
  377. package/dist/composite/hero/overlay.d.ts +1 -5
  378. package/dist/composite/hero/overlay.d.ts.map +1 -1
  379. package/dist/composite/hero/overlay.js +107 -135
  380. package/dist/composite/hero/overlay.js.map +1 -1
  381. package/dist/composite/hero/overlay.mjs +103 -132
  382. package/dist/composite/hero/overlay.mjs.map +1 -1
  383. package/dist/composite/hero/stacked.d.ts +1 -5
  384. package/dist/composite/hero/stacked.d.ts.map +1 -1
  385. package/dist/composite/hero/stacked.js +114 -137
  386. package/dist/composite/hero/stacked.js.map +1 -1
  387. package/dist/composite/hero/stacked.mjs +110 -134
  388. package/dist/composite/hero/stacked.mjs.map +1 -1
  389. package/dist/composite/hero/standard.d.ts +1 -5
  390. package/dist/composite/hero/standard.d.ts.map +1 -1
  391. package/dist/composite/hero/standard.js +103 -116
  392. package/dist/composite/hero/standard.js.map +1 -1
  393. package/dist/composite/hero/standard.mjs +100 -114
  394. package/dist/composite/hero/standard.mjs.map +1 -1
  395. package/dist/composite/layout/box/logo.js +1 -1
  396. package/dist/composite/layout/box/logo.js.map +1 -1
  397. package/dist/composite/layout/box/logo.mjs +1 -1
  398. package/dist/composite/layout/box/logo.mjs.map +1 -1
  399. package/dist/composite/layout/image/expand.js +1 -1
  400. package/dist/composite/layout/image/expand.js.map +1 -1
  401. package/dist/composite/layout/image/expand.mjs +1 -1
  402. package/dist/composite/layout/image/expand.mjs.map +1 -1
  403. package/dist/composite/layout/scroll-top/index.js +1 -1
  404. package/dist/composite/layout/scroll-top/index.js.map +1 -1
  405. package/dist/composite/layout/scroll-top/index.mjs +1 -1
  406. package/dist/composite/layout/scroll-top/index.mjs.map +1 -1
  407. package/dist/composite/layout/section-intro/small.d.ts +2 -1
  408. package/dist/composite/layout/section-intro/small.d.ts.map +1 -1
  409. package/dist/composite/layout/section-intro/small.js +97 -107
  410. package/dist/composite/layout/section-intro/small.js.map +1 -1
  411. package/dist/composite/layout/section-intro/small.mjs +95 -106
  412. package/dist/composite/layout/section-intro/small.mjs.map +1 -1
  413. package/dist/composite/layout/section-intro/wide.d.ts +2 -2
  414. package/dist/composite/layout/section-intro/wide.d.ts.map +1 -1
  415. package/dist/composite/layout/section-intro/wide.js +40 -53
  416. package/dist/composite/layout/section-intro/wide.js.map +1 -1
  417. package/dist/composite/layout/section-intro/wide.mjs +39 -53
  418. package/dist/composite/layout/section-intro/wide.mjs.map +1 -1
  419. package/dist/composite/layout/sticky-columns/index.js +1 -1
  420. package/dist/composite/layout/sticky-columns/index.js.map +1 -1
  421. package/dist/composite/layout/sticky-columns/index.mjs +1 -1
  422. package/dist/composite/layout/sticky-columns/index.mjs.map +1 -1
  423. package/dist/composite/media/elements/caption.js +1 -1
  424. package/dist/composite/media/elements/caption.js.map +1 -1
  425. package/dist/composite/media/elements/caption.mjs +1 -1
  426. package/dist/composite/media/elements/caption.mjs.map +1 -1
  427. package/dist/composite/media/elements/gif.d.ts +3 -2
  428. package/dist/composite/media/elements/gif.d.ts.map +1 -1
  429. package/dist/composite/media/elements/gif.js +25 -27
  430. package/dist/composite/media/elements/gif.js.map +1 -1
  431. package/dist/composite/media/elements/gif.mjs +25 -27
  432. package/dist/composite/media/elements/gif.mjs.map +1 -1
  433. package/dist/composite/media/inline/caption.js +2 -2
  434. package/dist/composite/media/inline/caption.js.map +1 -1
  435. package/dist/composite/media/inline/caption.mjs +2 -2
  436. package/dist/composite/media/inline/caption.mjs.map +1 -1
  437. package/dist/composite/media/inline/wrapped.js +2 -2
  438. package/dist/composite/media/inline/wrapped.js.map +1 -1
  439. package/dist/composite/media/inline/wrapped.mjs +2 -2
  440. package/dist/composite/media/inline/wrapped.mjs.map +1 -1
  441. package/dist/composite/navigation/elements/breadcrumb/index.js +1 -1
  442. package/dist/composite/navigation/elements/breadcrumb/index.js.map +1 -1
  443. package/dist/composite/navigation/elements/breadcrumb/index.mjs +1 -1
  444. package/dist/composite/navigation/elements/breadcrumb/index.mjs.map +1 -1
  445. package/dist/composite/navigation/elements/drawer/index.js +1 -1
  446. package/dist/composite/navigation/elements/drawer/index.js.map +1 -1
  447. package/dist/composite/navigation/elements/drawer/index.mjs +1 -1
  448. package/dist/composite/navigation/elements/drawer/index.mjs.map +1 -1
  449. package/dist/composite/navigation/elements/item/index.js +1 -1
  450. package/dist/composite/navigation/elements/item/index.js.map +1 -1
  451. package/dist/composite/navigation/elements/item/index.mjs +1 -1
  452. package/dist/composite/navigation/elements/item/index.mjs.map +1 -1
  453. package/dist/composite/navigation/elements/menu-button/index.js +1 -1
  454. package/dist/composite/navigation/elements/menu-button/index.js.map +1 -1
  455. package/dist/composite/navigation/elements/menu-button/index.mjs +1 -1
  456. package/dist/composite/navigation/elements/menu-button/index.mjs.map +1 -1
  457. package/dist/composite/navigation/elements/slider/action.js +1 -1
  458. package/dist/composite/navigation/elements/slider/action.js.map +1 -1
  459. package/dist/composite/navigation/elements/slider/action.mjs +1 -1
  460. package/dist/composite/navigation/elements/slider/action.mjs.map +1 -1
  461. package/dist/composite/navigation/elements/slider/index.js +1 -1
  462. package/dist/composite/navigation/elements/slider/index.js.map +1 -1
  463. package/dist/composite/navigation/elements/slider/index.mjs +1 -1
  464. package/dist/composite/navigation/elements/slider/index.mjs.map +1 -1
  465. package/dist/composite/navigation/elements/slider/slide-first.js +1 -1
  466. package/dist/composite/navigation/elements/slider/slide-first.js.map +1 -1
  467. package/dist/composite/navigation/elements/slider/slide-first.mjs +1 -1
  468. package/dist/composite/navigation/elements/slider/slide-first.mjs.map +1 -1
  469. package/dist/composite/navigation/elements/slider/slides.js +1 -1
  470. package/dist/composite/navigation/elements/slider/slides.js.map +1 -1
  471. package/dist/composite/navigation/elements/slider/slides.mjs +1 -1
  472. package/dist/composite/navigation/elements/slider/slides.mjs.map +1 -1
  473. package/dist/composite/navigation/header.js +1 -1
  474. package/dist/composite/navigation/header.js.map +1 -1
  475. package/dist/composite/navigation/header.mjs +1 -1
  476. package/dist/composite/navigation/header.mjs.map +1 -1
  477. package/dist/composite/navigation/utility/alert.js +8 -4
  478. package/dist/composite/navigation/utility/alert.js.map +1 -1
  479. package/dist/composite/navigation/utility/alert.mjs +8 -4
  480. package/dist/composite/navigation/utility/alert.mjs.map +1 -1
  481. package/dist/composite/navigation/utility/index.d.ts.map +1 -1
  482. package/dist/composite/navigation/utility/index.js +90 -13
  483. package/dist/composite/navigation/utility/index.js.map +1 -1
  484. package/dist/composite/navigation/utility/index.mjs +90 -13
  485. package/dist/composite/navigation/utility/index.mjs.map +1 -1
  486. package/dist/composite/navigation/utility/search.js +1 -1
  487. package/dist/composite/navigation/utility/search.js.map +1 -1
  488. package/dist/composite/navigation/utility/search.mjs +1 -1
  489. package/dist/composite/navigation/utility/search.mjs.map +1 -1
  490. package/dist/composite/pathway/_common.d.ts +4 -20
  491. package/dist/composite/pathway/_common.d.ts.map +1 -1
  492. package/dist/composite/pathway/_common.js +62 -64
  493. package/dist/composite/pathway/_common.js.map +1 -1
  494. package/dist/composite/pathway/_common.mjs +56 -60
  495. package/dist/composite/pathway/_common.mjs.map +1 -1
  496. package/dist/composite/pathway/hero.d.ts +1 -5
  497. package/dist/composite/pathway/hero.d.ts.map +1 -1
  498. package/dist/composite/pathway/hero.js +119 -140
  499. package/dist/composite/pathway/hero.js.map +1 -1
  500. package/dist/composite/pathway/hero.mjs +113 -135
  501. package/dist/composite/pathway/hero.mjs.map +1 -1
  502. package/dist/composite/pathway/highlight.d.ts +1 -5
  503. package/dist/composite/pathway/highlight.d.ts.map +1 -1
  504. package/dist/composite/pathway/highlight.js +99 -129
  505. package/dist/composite/pathway/highlight.js.map +1 -1
  506. package/dist/composite/pathway/highlight.mjs +98 -129
  507. package/dist/composite/pathway/highlight.mjs.map +1 -1
  508. package/dist/composite/pathway/overlay.d.ts +2 -1
  509. package/dist/composite/pathway/overlay.d.ts.map +1 -1
  510. package/dist/composite/pathway/overlay.js +125 -153
  511. package/dist/composite/pathway/overlay.js.map +1 -1
  512. package/dist/composite/pathway/overlay.mjs +122 -151
  513. package/dist/composite/pathway/overlay.mjs.map +1 -1
  514. package/dist/composite/pathway/standard.d.ts +2 -1
  515. package/dist/composite/pathway/standard.d.ts.map +1 -1
  516. package/dist/composite/pathway/standard.js +96 -123
  517. package/dist/composite/pathway/standard.js.map +1 -1
  518. package/dist/composite/pathway/standard.mjs +95 -123
  519. package/dist/composite/pathway/standard.mjs.map +1 -1
  520. package/dist/composite/pathway/sticky.d.ts +1 -5
  521. package/dist/composite/pathway/sticky.d.ts.map +1 -1
  522. package/dist/composite/pathway/sticky.js +91 -116
  523. package/dist/composite/pathway/sticky.js.map +1 -1
  524. package/dist/composite/pathway/sticky.mjs +88 -114
  525. package/dist/composite/pathway/sticky.mjs.map +1 -1
  526. package/dist/composite/person/bio/full.d.ts +2 -5
  527. package/dist/composite/person/bio/full.d.ts.map +1 -1
  528. package/dist/composite/person/bio/full.js +53 -57
  529. package/dist/composite/person/bio/full.js.map +1 -1
  530. package/dist/composite/person/bio/full.mjs +52 -57
  531. package/dist/composite/person/bio/full.mjs.map +1 -1
  532. package/dist/composite/person/bio/small.d.ts +2 -5
  533. package/dist/composite/person/bio/small.d.ts.map +1 -1
  534. package/dist/composite/person/bio/small.js +85 -98
  535. package/dist/composite/person/bio/small.js.map +1 -1
  536. package/dist/composite/person/bio/small.mjs +84 -98
  537. package/dist/composite/person/bio/small.mjs.map +1 -1
  538. package/dist/composite/person/block.d.ts +2 -5
  539. package/dist/composite/person/block.d.ts.map +1 -1
  540. package/dist/composite/person/block.js +34 -42
  541. package/dist/composite/person/block.js.map +1 -1
  542. package/dist/composite/person/block.mjs +34 -42
  543. package/dist/composite/person/block.mjs.map +1 -1
  544. package/dist/composite/person/hero.d.ts +2 -5
  545. package/dist/composite/person/hero.d.ts.map +1 -1
  546. package/dist/composite/person/hero.js +160 -220
  547. package/dist/composite/person/hero.js.map +1 -1
  548. package/dist/composite/person/hero.mjs +159 -220
  549. package/dist/composite/person/hero.mjs.map +1 -1
  550. package/dist/composite/person/list.d.ts +2 -5
  551. package/dist/composite/person/list.d.ts.map +1 -1
  552. package/dist/composite/person/list.js +19 -19
  553. package/dist/composite/person/list.js.map +1 -1
  554. package/dist/composite/person/list.mjs +19 -19
  555. package/dist/composite/person/list.mjs.map +1 -1
  556. package/dist/composite/person/tabular.d.ts +2 -5
  557. package/dist/composite/person/tabular.d.ts.map +1 -1
  558. package/dist/composite/person/tabular.js +40 -36
  559. package/dist/composite/person/tabular.js.map +1 -1
  560. package/dist/composite/person/tabular.mjs +38 -36
  561. package/dist/composite/person/tabular.mjs.map +1 -1
  562. package/dist/composite/quote/elements/action.d.ts +1 -5
  563. package/dist/composite/quote/elements/action.d.ts.map +1 -1
  564. package/dist/composite/quote/elements/action.js +13 -17
  565. package/dist/composite/quote/elements/action.js.map +1 -1
  566. package/dist/composite/quote/elements/action.mjs +13 -17
  567. package/dist/composite/quote/elements/action.mjs.map +1 -1
  568. package/dist/composite/quote/elements/icon.d.ts +1 -5
  569. package/dist/composite/quote/elements/icon.d.ts.map +1 -1
  570. package/dist/composite/quote/elements/icon.js +37 -40
  571. package/dist/composite/quote/elements/icon.js.map +1 -1
  572. package/dist/composite/quote/elements/icon.mjs +37 -40
  573. package/dist/composite/quote/elements/icon.mjs.map +1 -1
  574. package/dist/composite/quote/elements/image.d.ts +1 -5
  575. package/dist/composite/quote/elements/image.d.ts.map +1 -1
  576. package/dist/composite/quote/elements/image.js +27 -35
  577. package/dist/composite/quote/elements/image.js.map +1 -1
  578. package/dist/composite/quote/elements/image.mjs +27 -35
  579. package/dist/composite/quote/elements/image.mjs.map +1 -1
  580. package/dist/composite/quote/elements/quote.d.ts +1 -5
  581. package/dist/composite/quote/elements/quote.d.ts.map +1 -1
  582. package/dist/composite/quote/elements/quote.js +37 -48
  583. package/dist/composite/quote/elements/quote.js.map +1 -1
  584. package/dist/composite/quote/elements/quote.mjs +35 -46
  585. package/dist/composite/quote/elements/quote.mjs.map +1 -1
  586. package/dist/composite/quote/elements/text.d.ts +1 -5
  587. package/dist/composite/quote/elements/text.d.ts.map +1 -1
  588. package/dist/composite/quote/elements/text.js +60 -73
  589. package/dist/composite/quote/elements/text.js.map +1 -1
  590. package/dist/composite/quote/elements/text.mjs +60 -73
  591. package/dist/composite/quote/elements/text.mjs.map +1 -1
  592. package/dist/composite/quote/featured.d.ts +2 -1
  593. package/dist/composite/quote/featured.d.ts.map +1 -1
  594. package/dist/composite/quote/featured.js +102 -135
  595. package/dist/composite/quote/featured.js.map +1 -1
  596. package/dist/composite/quote/featured.mjs +102 -135
  597. package/dist/composite/quote/featured.mjs.map +1 -1
  598. package/dist/composite/quote/helper/animation.d.ts +2 -2
  599. package/dist/composite/quote/helper/animation.d.ts.map +1 -1
  600. package/dist/composite/quote/helper/animation.js.map +1 -1
  601. package/dist/composite/quote/helper/animation.mjs.map +1 -1
  602. package/dist/composite/quote/inline.d.ts +2 -1
  603. package/dist/composite/quote/inline.d.ts.map +1 -1
  604. package/dist/composite/quote/inline.js +29 -45
  605. package/dist/composite/quote/inline.js.map +1 -1
  606. package/dist/composite/quote/inline.mjs +29 -45
  607. package/dist/composite/quote/inline.mjs.map +1 -1
  608. package/dist/composite/quote/statement.d.ts +1 -5
  609. package/dist/composite/quote/statement.d.ts.map +1 -1
  610. package/dist/composite/slider/events.js +1 -1
  611. package/dist/composite/slider/events.js.map +1 -1
  612. package/dist/composite/slider/events.mjs +1 -1
  613. package/dist/composite/slider/events.mjs.map +1 -1
  614. package/dist/composite/social/sharing.js +1 -1
  615. package/dist/composite/social/sharing.js.map +1 -1
  616. package/dist/composite/social/sharing.mjs +1 -1
  617. package/dist/composite/social/sharing.mjs.map +1 -1
  618. package/dist/composite/tabs/standard.d.ts.map +1 -1
  619. package/dist/composite/tabs/standard.js +3 -2
  620. package/dist/composite/tabs/standard.js.map +1 -1
  621. package/dist/composite/tabs/standard.mjs +3 -2
  622. package/dist/composite/tabs/standard.mjs.map +1 -1
  623. package/dist/index.d.ts +0 -1
  624. package/dist/index.d.ts.map +1 -1
  625. package/dist/index.js +0 -2
  626. package/dist/index.js.map +1 -1
  627. package/dist/index.mjs +1 -3
  628. package/dist/index.mjs.map +1 -1
  629. package/dist/layout/image.js +1 -1
  630. package/dist/layout/image.js.map +1 -1
  631. package/dist/layout/image.mjs +1 -1
  632. package/dist/layout/image.mjs.map +1 -1
  633. package/package.json +10 -9
  634. package/dist/model/elements/actions.d.ts +0 -62
  635. package/dist/model/elements/actions.d.ts.map +0 -1
  636. package/dist/model/elements/actions.js +0 -71
  637. package/dist/model/elements/actions.js.map +0 -1
  638. package/dist/model/elements/actions.mjs +0 -54
  639. package/dist/model/elements/actions.mjs.map +0 -1
  640. package/dist/model/elements/assets.d.ts +0 -30
  641. package/dist/model/elements/assets.d.ts.map +0 -1
  642. package/dist/model/elements/assets.js +0 -42
  643. package/dist/model/elements/assets.js.map +0 -1
  644. package/dist/model/elements/assets.mjs +0 -25
  645. package/dist/model/elements/assets.mjs.map +0 -1
  646. package/dist/model/elements/buttons.d.ts +0 -12
  647. package/dist/model/elements/buttons.d.ts.map +0 -1
  648. package/dist/model/elements/buttons.js +0 -26
  649. package/dist/model/elements/buttons.js.map +0 -1
  650. package/dist/model/elements/buttons.mjs +0 -9
  651. package/dist/model/elements/buttons.mjs.map +0 -1
  652. package/dist/model/elements/event.d.ts +0 -22
  653. package/dist/model/elements/event.d.ts.map +0 -1
  654. package/dist/model/elements/event.js +0 -30
  655. package/dist/model/elements/event.js.map +0 -1
  656. package/dist/model/elements/event.mjs +0 -13
  657. package/dist/model/elements/event.mjs.map +0 -1
  658. package/dist/model/elements/headline.d.ts +0 -67
  659. package/dist/model/elements/headline.d.ts.map +0 -1
  660. package/dist/model/elements/headline.js +0 -74
  661. package/dist/model/elements/headline.js.map +0 -1
  662. package/dist/model/elements/headline.mjs +0 -57
  663. package/dist/model/elements/headline.mjs.map +0 -1
  664. package/dist/model/elements/index.d.ts +0 -34
  665. package/dist/model/elements/index.d.ts.map +0 -1
  666. package/dist/model/elements/index.js +0 -37
  667. package/dist/model/elements/index.js.map +0 -1
  668. package/dist/model/elements/index.mjs +0 -37
  669. package/dist/model/elements/index.mjs.map +0 -1
  670. package/dist/model/elements/layout.d.ts +0 -64
  671. package/dist/model/elements/layout.d.ts.map +0 -1
  672. package/dist/model/elements/layout.js +0 -68
  673. package/dist/model/elements/layout.js.map +0 -1
  674. package/dist/model/elements/layout.mjs +0 -51
  675. package/dist/model/elements/layout.mjs.map +0 -1
  676. package/dist/model/elements/rich-text.d.ts +0 -27
  677. package/dist/model/elements/rich-text.d.ts.map +0 -1
  678. package/dist/model/elements/rich-text.js +0 -68
  679. package/dist/model/elements/rich-text.js.map +0 -1
  680. package/dist/model/elements/rich-text.mjs +0 -51
  681. package/dist/model/elements/rich-text.mjs.map +0 -1
  682. package/dist/model/elements/text.d.ts +0 -22
  683. package/dist/model/elements/text.d.ts.map +0 -1
  684. package/dist/model/elements/text.js +0 -30
  685. package/dist/model/elements/text.js.map +0 -1
  686. package/dist/model/elements/text.mjs +0 -13
  687. package/dist/model/elements/text.mjs.map +0 -1
  688. package/dist/model/index.d.ts +0 -2
  689. package/dist/model/index.d.ts.map +0 -1
  690. package/dist/model/modifiers/_types.d.ts +0 -41
  691. package/dist/model/modifiers/_types.d.ts.map +0 -1
  692. package/dist/model/modifiers/index.d.ts +0 -44
  693. package/dist/model/modifiers/index.d.ts.map +0 -1
  694. package/dist/model/modifiers/index.js +0 -136
  695. package/dist/model/modifiers/index.js.map +0 -1
  696. package/dist/model/modifiers/index.mjs +0 -136
  697. package/dist/model/modifiers/index.mjs.map +0 -1
  698. package/dist/model/modifiers/style.d.ts +0 -19
  699. package/dist/model/modifiers/style.d.ts.map +0 -1
  700. package/dist/model/modifiers/style.js +0 -122
  701. package/dist/model/modifiers/style.js.map +0 -1
  702. package/dist/model/modifiers/style.mjs +0 -105
  703. package/dist/model/modifiers/style.mjs.map +0 -1
  704. package/dist/model.d.ts +0 -2
  705. package/dist/model.js +0 -5
  706. package/dist/model.js.map +0 -1
  707. package/dist/model.mjs +0 -5
  708. package/dist/model.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"gif.mjs","sources":["../../../../source/composite/media/elements/gif.ts"],"sourcesContent":["import { ElementModel } from 'model';\nimport { assets } from 'atomic';\n\nexport default ({ image }: { image: HTMLImageElement }) => {\n const container = document.createElement('div');\n\n const calculateHeight = () => {\n if (!image.naturalWidth || !image.naturalHeight) return;\n\n const aspectRatio = image.naturalHeight / image.naturalWidth;\n const containerWidth = container.offsetWidth;\n\n if (containerWidth > 0) {\n const calculatedHeight = Math.round(containerWidth * aspectRatio);\n container.style.height = `${calculatedHeight}px`;\n } else {\n container.style.width = `${image.naturalWidth}px`;\n\n setTimeout(() => {\n const containerWidth = container.offsetWidth;\n const calculatedHeight = Math.round(containerWidth * aspectRatio);\n container.style.height = `${calculatedHeight}px`;\n }, 100);\n }\n };\n\n const resizeObserver = new ResizeObserver(() => {\n container.style.width = `${image.naturalWidth}px`;\n setTimeout(() => {\n calculateHeight();\n }, 10);\n });\n\n if (image.complete && image.naturalWidth) {\n container.style.width = `${image.naturalWidth}px`;\n setTimeout(() => {\n calculateHeight();\n }, 10);\n } else {\n image.addEventListener('load', calculateHeight);\n }\n\n setTimeout(() => {\n resizeObserver.observe(container);\n }, 0);\n\n const elementModel = ElementModel.create({\n element: container,\n className: 'media-gif',\n children: [\n assets.image.background({\n element: image,\n isShowCaption: true,\n isScaled: false,\n isGifAllowed: true,\n customStyles: {\n width: 'auto',\n height: '100%',\n display: 'block',\n },\n }),\n ],\n elementStyles: {\n element: {\n maxHeight: '100%',\n maxWidth: '100%',\n position: 'relative',\n display: 'block',\n overflow: 'hidden',\n },\n },\n });\n\n return {\n ...elementModel,\n destroy: () => {\n resizeObserver.disconnect();\n image.removeEventListener('load', calculateHeight);\n },\n };\n};\n"],"names":["containerWidth","ElementModel.create","assets.image.background"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAGA,MAAA,MAAe,CAAC,EAAE,MAAA,MAAyC;AACzD,QAAM,YAAY,SAAS,cAAc,KAAK;AAE9C,QAAM,kBAAkB,MAAM;AAC5B,QAAI,CAAC,MAAM,gBAAgB,CAAC,MAAM,cAAe;AAEjD,UAAM,cAAc,MAAM,gBAAgB,MAAM;AAChD,UAAM,iBAAiB,UAAU;AAEjC,QAAI,iBAAiB,GAAG;AACtB,YAAM,mBAAmB,KAAK,MAAM,iBAAiB,WAAW;AAChE,gBAAU,MAAM,SAAS,GAAG,gBAAgB;AAAA,IAC9C,OAAO;AACL,gBAAU,MAAM,QAAQ,GAAG,MAAM,YAAY;AAE7C,iBAAW,MAAM;AACf,cAAMA,kBAAiB,UAAU;AACjC,cAAM,mBAAmB,KAAK,MAAMA,kBAAiB,WAAW;AAChE,kBAAU,MAAM,SAAS,GAAG,gBAAgB;AAAA,MAC9C,GAAG,GAAG;AAAA,IACR;AAAA,EACF;AAEA,QAAM,iBAAiB,IAAI,eAAe,MAAM;AAC9C,cAAU,MAAM,QAAQ,GAAG,MAAM,YAAY;AAC7C,eAAW,MAAM;AACf,sBAAA;AAAA,IACF,GAAG,EAAE;AAAA,EACP,CAAC;AAED,MAAI,MAAM,YAAY,MAAM,cAAc;AACxC,cAAU,MAAM,QAAQ,GAAG,MAAM,YAAY;AAC7C,eAAW,MAAM;AACf,sBAAA;AAAA,IACF,GAAG,EAAE;AAAA,EACP,OAAO;AACL,UAAM,iBAAiB,QAAQ,eAAe;AAAA,EAChD;AAEA,aAAW,MAAM;AACf,mBAAe,QAAQ,SAAS;AAAA,EAClC,GAAG,CAAC;AAEJ,QAAM,eAAeC,OAAoB;AAAA,IACvC,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,MACRC,eAAwB;AAAA,QACtB,SAAS;AAAA,QACT,eAAe;AAAA,QACf,UAAU;AAAA,QACV,cAAc;AAAA,QACd,cAAc;AAAA,UACZ,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,SAAS;AAAA,QAAA;AAAA,MACX,CACD;AAAA,IAAA;AAAA,IAEH,eAAe;AAAA,MACb,SAAS;AAAA,QACP,WAAW;AAAA,QACX,UAAU;AAAA,QACV,UAAU;AAAA,QACV,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA,IACZ;AAAA,EACF,CACD;AAED,SAAO;AAAA,IACL,GAAG;AAAA,IACH,SAAS,MAAM;AACb,qBAAe,WAAA;AACf,YAAM,oBAAoB,QAAQ,eAAe;AAAA,IACnD;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"gif.mjs","sources":["../../../../source/composite/media/elements/gif.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport { assets } from 'atomic';\n\nexport default ({ image }: { image: HTMLImageElement }) => {\n const container = document.createElement('div');\n\n const calculateHeight = () => {\n if (!image.naturalWidth || !image.naturalHeight) return;\n\n const aspectRatio = image.naturalHeight / image.naturalWidth;\n const containerWidth = container.offsetWidth;\n\n if (containerWidth > 0) {\n const calculatedHeight = Math.round(containerWidth * aspectRatio);\n container.style.height = `${calculatedHeight}px`;\n } else {\n container.style.width = `${image.naturalWidth}px`;\n\n setTimeout(() => {\n const containerWidth = container.offsetWidth;\n const calculatedHeight = Math.round(containerWidth * aspectRatio);\n container.style.height = `${calculatedHeight}px`;\n }, 100);\n }\n };\n\n const resizeObserver = new ResizeObserver(() => {\n container.style.width = `${image.naturalWidth}px`;\n setTimeout(() => {\n calculateHeight();\n }, 10);\n });\n\n if (image.complete && image.naturalWidth) {\n container.style.width = `${image.naturalWidth}px`;\n setTimeout(() => {\n calculateHeight();\n }, 10);\n } else {\n image.addEventListener('load', calculateHeight);\n }\n\n setTimeout(() => {\n resizeObserver.observe(container);\n }, 0);\n\n const imageElement = assets.image.background({\n element: image,\n isShowCaption: true,\n isScaled: false,\n isGifAllowed: true,\n customStyles: {\n width: 'auto',\n height: '100%',\n display: 'block',\n },\n });\n\n const elementModel = new ElementBuilder(container)\n .withClassName('media-gif')\n .withChild(imageElement)\n .withStyles({\n element: {\n maxHeight: '100%',\n maxWidth: '100%',\n position: 'relative',\n display: 'block',\n overflow: 'hidden',\n },\n })\n .build();\n\n return {\n ...elementModel,\n destroy: () => {\n resizeObserver.disconnect();\n image.removeEventListener('load', calculateHeight);\n },\n };\n};\n"],"names":["containerWidth","assets.image.background"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,MAAA,MAAe,CAAC,EAAE,MAAA,MAAyC;AACzD,QAAM,YAAY,SAAS,cAAc,KAAK;AAE9C,QAAM,kBAAkB,MAAM;AAC5B,QAAI,CAAC,MAAM,gBAAgB,CAAC,MAAM,cAAe;AAEjD,UAAM,cAAc,MAAM,gBAAgB,MAAM;AAChD,UAAM,iBAAiB,UAAU;AAEjC,QAAI,iBAAiB,GAAG;AACtB,YAAM,mBAAmB,KAAK,MAAM,iBAAiB,WAAW;AAChE,gBAAU,MAAM,SAAS,GAAG,gBAAgB;AAAA,IAC9C,OAAO;AACL,gBAAU,MAAM,QAAQ,GAAG,MAAM,YAAY;AAE7C,iBAAW,MAAM;AACf,cAAMA,kBAAiB,UAAU;AACjC,cAAM,mBAAmB,KAAK,MAAMA,kBAAiB,WAAW;AAChE,kBAAU,MAAM,SAAS,GAAG,gBAAgB;AAAA,MAC9C,GAAG,GAAG;AAAA,IACR;AAAA,EACF;AAEA,QAAM,iBAAiB,IAAI,eAAe,MAAM;AAC9C,cAAU,MAAM,QAAQ,GAAG,MAAM,YAAY;AAC7C,eAAW,MAAM;AACf,sBAAA;AAAA,IACF,GAAG,EAAE;AAAA,EACP,CAAC;AAED,MAAI,MAAM,YAAY,MAAM,cAAc;AACxC,cAAU,MAAM,QAAQ,GAAG,MAAM,YAAY;AAC7C,eAAW,MAAM;AACf,sBAAA;AAAA,IACF,GAAG,EAAE;AAAA,EACP,OAAO;AACL,UAAM,iBAAiB,QAAQ,eAAe;AAAA,EAChD;AAEA,aAAW,MAAM;AACf,mBAAe,QAAQ,SAAS;AAAA,EAClC,GAAG,CAAC;AAEJ,QAAM,eAAeC,eAAwB;AAAA,IAC3C,SAAS;AAAA,IACT,eAAe;AAAA,IACf,UAAU;AAAA,IACV,cAAc;AAAA,IACd,cAAc;AAAA,MACZ,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,IAAA;AAAA,EACX,CACD;AAED,QAAM,eAAe,IAAI,eAAe,SAAS,EAC9C,cAAc,WAAW,EACzB,UAAU,YAAY,EACtB,WAAW;AAAA,IACV,SAAS;AAAA,MACP,WAAW;AAAA,MACX,UAAU;AAAA,MACV,UAAU;AAAA,MACV,SAAS;AAAA,MACT,UAAU;AAAA,IAAA;AAAA,EACZ,CACD,EACA,MAAA;AAEH,SAAO;AAAA,IACL,GAAG;AAAA,IACH,SAAS,MAAM;AACb,qBAAe,WAAA;AACf,YAAM,oBAAoB,QAAQ,eAAe;AAAA,IACnD;AAAA,EAAA;AAEJ;"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
- const token = require("@universityofmaryland/web-styles-library/token");
2
+ const token = require("@universityofmaryland/web-token-library");
3
3
  const performance = require("@universityofmaryland/web-utilities-library/performance");
4
- const image = require("../../../layout/image.js");
5
4
  const caption = require("../elements/caption.js");
5
+ const image = require("../../../layout/image.js");
6
6
  function _interopNamespaceDefault(e) {
7
7
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
8
8
  if (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"caption.js","sources":["../../../../source/composite/media/inline/caption.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport { Image as LayoutImage } from 'layout';\nimport CaptionContainer from '../elements/caption';\n\nexport type TypeMediaInlineRequirements = {\n image?: HTMLImageElement | null;\n caption?: HTMLElement | null;\n isThemeDark?: boolean;\n};\n\nconst { spacing } = token;\n\nconst ELEMENT_MEDIA_INLINE_CONTAINER = 'element-media-with-caption-container';\nconst ELEMENT_OBJECT_CAPTION_CONTAINER = 'element-media-caption-container';\n\n// prettier-ignore\nconst ObjectContainer = `\n .${ELEMENT_OBJECT_CAPTION_CONTAINER} {\n display: flex;\n flex-direction: column;\n padding-bottom: ${token.spacing.sm};\n max-width: 100%;\n }\n`;\n\n// prettier-ignore\nconst STYLES_MEDIA_INLINE_ELEMENT = `\n .${ELEMENT_MEDIA_INLINE_CONTAINER} {\n display: inline-block;\n max-width: 100%;\n }\n\n ${LayoutImage.Styles}\n ${CaptionContainer.Styles}\n ${ObjectContainer}\n`;\n\nconst CreateMediaWithCaption = (props: TypeMediaInlineRequirements) =>\n (() => {\n const { caption, image, isThemeDark } = props;\n const hasCaption = caption && caption !== null;\n const elementContainer = document.createElement('div');\n const objectContainer = document.createElement('div');\n const sizeCaption = () => {\n const imageContainer = elementContainer.querySelector(\n `.${LayoutImage.Elements.container}`,\n ) as HTMLElement;\n const caption = elementContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.width = `${imageContainer.offsetWidth}px`;\n caption.style.display = `block`;\n }\n };\n const eventResize = () => {\n sizeCaption();\n };\n\n if (image) {\n objectContainer.appendChild(\n LayoutImage.CreateElement({\n image,\n showCaption: true,\n }),\n );\n }\n\n const load = () => {\n const checkSizing = () => {\n const caption = objectContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.opacity = `1`;\n }\n };\n\n image?.addEventListener('load', () => {\n checkSizing();\n\n setTimeout(() => {\n checkSizing();\n }, 500);\n });\n };\n\n if (hasCaption) {\n const captionElement = CaptionContainer.CreateElement({\n caption,\n isThemeDark,\n });\n captionElement.style.display = `none`;\n objectContainer.appendChild(captionElement);\n }\n\n if (objectContainer.children.length > 0) {\n elementContainer.appendChild(objectContainer);\n }\n\n objectContainer.classList.add(ELEMENT_OBJECT_CAPTION_CONTAINER);\n elementContainer.classList.add(ELEMENT_MEDIA_INLINE_CONTAINER);\n\n window.addEventListener(\n 'resize',\n debounce(() => {\n eventResize();\n }, 20),\n );\n\n setTimeout(() => {\n eventResize();\n }, 100);\n\n return {\n element: elementContainer,\n events: {\n load,\n },\n styles: STYLES_MEDIA_INLINE_ELEMENT,\n };\n })();\n\nexport default CreateMediaWithCaption;\n"],"names":["token","LayoutImage","CaptionContainer","caption","image","debounce"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAaA,MAAM,iCAAiC;AACvC,MAAM,mCAAmC;AAGzC,MAAM,kBAAkB;AAAA,KACnB,gCAAgC;AAAA;AAAA;AAAA,sBAGfA,iBAAM,QAAQ,EAAE;AAAA;AAAA;AAAA;AAMtC,MAAM,8BAA8B;AAAA,KAC/B,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA,IAK/BC,MAAY,MAAM;AAAA,IAClBC,QAAiB,MAAM;AAAA,IACvB,eAAe;AAAA;AAGnB,MAAM,yBAAyB,CAAC,WAC7B,MAAM;AACL,QAAM,WAAEC,WAAA,OAASC,SAAO,YAAA,IAAgB;AACxC,QAAM,aAAaD,aAAWA,cAAY;AAC1C,QAAM,mBAAmB,SAAS,cAAc,KAAK;AACrD,QAAM,kBAAkB,SAAS,cAAc,KAAK;AACpD,QAAM,cAAc,MAAM;AACxB,UAAM,iBAAiB,iBAAiB;AAAA,MACtC,IAAIF,MAAY,SAAS,SAAS;AAAA,IAAA;AAEpC,UAAME,WAAU,iBAAiB;AAAA,MAC/B,IAAID,QAAiB,SAAS,SAAS;AAAA,IAAA;AAGzC,QAAIC,UAAS;AACXA,eAAQ,MAAM,QAAQ,GAAG,eAAe,WAAW;AACnDA,eAAQ,MAAM,UAAU;AAAA,IAC1B;AAAA,EACF;AACA,QAAM,cAAc,MAAM;AACxB,gBAAA;AAAA,EACF;AAEA,MAAIC,SAAO;AACT,oBAAgB;AAAA,MACdH,MAAY,cAAc;AAAA,QAAA,OACxBG;AAAAA,QACA,aAAa;AAAA,MAAA,CACd;AAAA,IAAA;AAAA,EAEL;AAEA,QAAM,OAAO,MAAM;AACjB,UAAM,cAAc,MAAM;AACxB,YAAMD,WAAU,gBAAgB;AAAA,QAC9B,IAAID,QAAiB,SAAS,SAAS;AAAA,MAAA;AAGzC,UAAIC,UAAS;AACXA,iBAAQ,MAAM,UAAU;AAAA,MAC1B;AAAA,IACF;AAEAC,aAAO,iBAAiB,QAAQ,MAAM;AACpC,kBAAA;AAEA,iBAAW,MAAM;AACf,oBAAA;AAAA,MACF,GAAG,GAAG;AAAA,IACR,CAAC;AAAA,EACH;AAEA,MAAI,YAAY;AACd,UAAM,iBAAiBF,QAAiB,cAAc;AAAA,MAAA,SACpDC;AAAAA,MACA;AAAA,IAAA,CACD;AACD,mBAAe,MAAM,UAAU;AAC/B,oBAAgB,YAAY,cAAc;AAAA,EAC5C;AAEA,MAAI,gBAAgB,SAAS,SAAS,GAAG;AACvC,qBAAiB,YAAY,eAAe;AAAA,EAC9C;AAEA,kBAAgB,UAAU,IAAI,gCAAgC;AAC9D,mBAAiB,UAAU,IAAI,8BAA8B;AAE7D,SAAO;AAAA,IACL;AAAA,IACAE,YAAAA,SAAS,MAAM;AACb,kBAAA;AAAA,IACF,GAAG,EAAE;AAAA,EAAA;AAGP,aAAW,MAAM;AACf,gBAAA;AAAA,EACF,GAAG,GAAG;AAEN,SAAO;AAAA,IACL,SAAS;AAAA,IACT,QAAQ;AAAA,MACN;AAAA,IAAA;AAAA,IAEF,QAAQ;AAAA,EAAA;AAEZ,GAAA;;"}
1
+ {"version":3,"file":"caption.js","sources":["../../../../source/composite/media/inline/caption.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport CaptionContainer from '../elements/caption';\nimport { Image as LayoutImage } from 'layout';\n\nexport type TypeMediaInlineRequirements = {\n image?: HTMLImageElement | null;\n caption?: HTMLElement | null;\n isThemeDark?: boolean;\n};\n\nconst { spacing } = token;\n\nconst ELEMENT_MEDIA_INLINE_CONTAINER = 'element-media-with-caption-container';\nconst ELEMENT_OBJECT_CAPTION_CONTAINER = 'element-media-caption-container';\n\n// prettier-ignore\nconst ObjectContainer = `\n .${ELEMENT_OBJECT_CAPTION_CONTAINER} {\n display: flex;\n flex-direction: column;\n padding-bottom: ${token.spacing.sm};\n max-width: 100%;\n }\n`;\n\n// prettier-ignore\nconst STYLES_MEDIA_INLINE_ELEMENT = `\n .${ELEMENT_MEDIA_INLINE_CONTAINER} {\n display: inline-block;\n max-width: 100%;\n }\n\n ${LayoutImage.Styles}\n ${CaptionContainer.Styles}\n ${ObjectContainer}\n`;\n\nconst CreateMediaWithCaption = (props: TypeMediaInlineRequirements) =>\n (() => {\n const { caption, image, isThemeDark } = props;\n const hasCaption = caption && caption !== null;\n const elementContainer = document.createElement('div');\n const objectContainer = document.createElement('div');\n const sizeCaption = () => {\n const imageContainer = elementContainer.querySelector(\n `.${LayoutImage.Elements.container}`,\n ) as HTMLElement;\n const caption = elementContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.width = `${imageContainer.offsetWidth}px`;\n caption.style.display = `block`;\n }\n };\n const eventResize = () => {\n sizeCaption();\n };\n\n if (image) {\n objectContainer.appendChild(\n LayoutImage.CreateElement({\n image,\n showCaption: true,\n }),\n );\n }\n\n const load = () => {\n const checkSizing = () => {\n const caption = objectContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.opacity = `1`;\n }\n };\n\n image?.addEventListener('load', () => {\n checkSizing();\n\n setTimeout(() => {\n checkSizing();\n }, 500);\n });\n };\n\n if (hasCaption) {\n const captionElement = CaptionContainer.CreateElement({\n caption,\n isThemeDark,\n });\n captionElement.style.display = `none`;\n objectContainer.appendChild(captionElement);\n }\n\n if (objectContainer.children.length > 0) {\n elementContainer.appendChild(objectContainer);\n }\n\n objectContainer.classList.add(ELEMENT_OBJECT_CAPTION_CONTAINER);\n elementContainer.classList.add(ELEMENT_MEDIA_INLINE_CONTAINER);\n\n window.addEventListener(\n 'resize',\n debounce(() => {\n eventResize();\n }, 20),\n );\n\n setTimeout(() => {\n eventResize();\n }, 100);\n\n return {\n element: elementContainer,\n events: {\n load,\n },\n styles: STYLES_MEDIA_INLINE_ELEMENT,\n };\n })();\n\nexport default CreateMediaWithCaption;\n"],"names":["token","LayoutImage","CaptionContainer","caption","image","debounce"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAaA,MAAM,iCAAiC;AACvC,MAAM,mCAAmC;AAGzC,MAAM,kBAAkB;AAAA,KACnB,gCAAgC;AAAA;AAAA;AAAA,sBAGfA,iBAAM,QAAQ,EAAE;AAAA;AAAA;AAAA;AAMtC,MAAM,8BAA8B;AAAA,KAC/B,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA,IAK/BC,MAAY,MAAM;AAAA,IAClBC,QAAiB,MAAM;AAAA,IACvB,eAAe;AAAA;AAGnB,MAAM,yBAAyB,CAAC,WAC7B,MAAM;AACL,QAAM,WAAEC,WAAA,OAASC,SAAO,YAAA,IAAgB;AACxC,QAAM,aAAaD,aAAWA,cAAY;AAC1C,QAAM,mBAAmB,SAAS,cAAc,KAAK;AACrD,QAAM,kBAAkB,SAAS,cAAc,KAAK;AACpD,QAAM,cAAc,MAAM;AACxB,UAAM,iBAAiB,iBAAiB;AAAA,MACtC,IAAIF,MAAY,SAAS,SAAS;AAAA,IAAA;AAEpC,UAAME,WAAU,iBAAiB;AAAA,MAC/B,IAAID,QAAiB,SAAS,SAAS;AAAA,IAAA;AAGzC,QAAIC,UAAS;AACXA,eAAQ,MAAM,QAAQ,GAAG,eAAe,WAAW;AACnDA,eAAQ,MAAM,UAAU;AAAA,IAC1B;AAAA,EACF;AACA,QAAM,cAAc,MAAM;AACxB,gBAAA;AAAA,EACF;AAEA,MAAIC,SAAO;AACT,oBAAgB;AAAA,MACdH,MAAY,cAAc;AAAA,QAAA,OACxBG;AAAAA,QACA,aAAa;AAAA,MAAA,CACd;AAAA,IAAA;AAAA,EAEL;AAEA,QAAM,OAAO,MAAM;AACjB,UAAM,cAAc,MAAM;AACxB,YAAMD,WAAU,gBAAgB;AAAA,QAC9B,IAAID,QAAiB,SAAS,SAAS;AAAA,MAAA;AAGzC,UAAIC,UAAS;AACXA,iBAAQ,MAAM,UAAU;AAAA,MAC1B;AAAA,IACF;AAEAC,aAAO,iBAAiB,QAAQ,MAAM;AACpC,kBAAA;AAEA,iBAAW,MAAM;AACf,oBAAA;AAAA,MACF,GAAG,GAAG;AAAA,IACR,CAAC;AAAA,EACH;AAEA,MAAI,YAAY;AACd,UAAM,iBAAiBF,QAAiB,cAAc;AAAA,MAAA,SACpDC;AAAAA,MACA;AAAA,IAAA,CACD;AACD,mBAAe,MAAM,UAAU;AAC/B,oBAAgB,YAAY,cAAc;AAAA,EAC5C;AAEA,MAAI,gBAAgB,SAAS,SAAS,GAAG;AACvC,qBAAiB,YAAY,eAAe;AAAA,EAC9C;AAEA,kBAAgB,UAAU,IAAI,gCAAgC;AAC9D,mBAAiB,UAAU,IAAI,8BAA8B;AAE7D,SAAO;AAAA,IACL;AAAA,IACAE,YAAAA,SAAS,MAAM;AACb,kBAAA;AAAA,IACF,GAAG,EAAE;AAAA,EAAA;AAGP,aAAW,MAAM;AACf,gBAAA;AAAA,EACF,GAAG,GAAG;AAEN,SAAO;AAAA,IACL,SAAS;AAAA,IACT,QAAQ;AAAA,MACN;AAAA,IAAA;AAAA,IAEF,QAAQ;AAAA,EAAA;AAEZ,GAAA;;"}
@@ -1,7 +1,7 @@
1
- import * as token from "@universityofmaryland/web-styles-library/token";
1
+ import * as token from "@universityofmaryland/web-token-library";
2
2
  import { debounce } from "@universityofmaryland/web-utilities-library/performance";
3
- import LayoutImage from "../../../layout/image.mjs";
4
3
  import CaptionContainer from "../elements/caption.mjs";
4
+ import LayoutImage from "../../../layout/image.mjs";
5
5
  const ELEMENT_MEDIA_INLINE_CONTAINER = "element-media-with-caption-container";
6
6
  const ELEMENT_OBJECT_CAPTION_CONTAINER = "element-media-caption-container";
7
7
  const ObjectContainer = `
@@ -1 +1 @@
1
- {"version":3,"file":"caption.mjs","sources":["../../../../source/composite/media/inline/caption.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport { Image as LayoutImage } from 'layout';\nimport CaptionContainer from '../elements/caption';\n\nexport type TypeMediaInlineRequirements = {\n image?: HTMLImageElement | null;\n caption?: HTMLElement | null;\n isThemeDark?: boolean;\n};\n\nconst { spacing } = token;\n\nconst ELEMENT_MEDIA_INLINE_CONTAINER = 'element-media-with-caption-container';\nconst ELEMENT_OBJECT_CAPTION_CONTAINER = 'element-media-caption-container';\n\n// prettier-ignore\nconst ObjectContainer = `\n .${ELEMENT_OBJECT_CAPTION_CONTAINER} {\n display: flex;\n flex-direction: column;\n padding-bottom: ${token.spacing.sm};\n max-width: 100%;\n }\n`;\n\n// prettier-ignore\nconst STYLES_MEDIA_INLINE_ELEMENT = `\n .${ELEMENT_MEDIA_INLINE_CONTAINER} {\n display: inline-block;\n max-width: 100%;\n }\n\n ${LayoutImage.Styles}\n ${CaptionContainer.Styles}\n ${ObjectContainer}\n`;\n\nconst CreateMediaWithCaption = (props: TypeMediaInlineRequirements) =>\n (() => {\n const { caption, image, isThemeDark } = props;\n const hasCaption = caption && caption !== null;\n const elementContainer = document.createElement('div');\n const objectContainer = document.createElement('div');\n const sizeCaption = () => {\n const imageContainer = elementContainer.querySelector(\n `.${LayoutImage.Elements.container}`,\n ) as HTMLElement;\n const caption = elementContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.width = `${imageContainer.offsetWidth}px`;\n caption.style.display = `block`;\n }\n };\n const eventResize = () => {\n sizeCaption();\n };\n\n if (image) {\n objectContainer.appendChild(\n LayoutImage.CreateElement({\n image,\n showCaption: true,\n }),\n );\n }\n\n const load = () => {\n const checkSizing = () => {\n const caption = objectContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.opacity = `1`;\n }\n };\n\n image?.addEventListener('load', () => {\n checkSizing();\n\n setTimeout(() => {\n checkSizing();\n }, 500);\n });\n };\n\n if (hasCaption) {\n const captionElement = CaptionContainer.CreateElement({\n caption,\n isThemeDark,\n });\n captionElement.style.display = `none`;\n objectContainer.appendChild(captionElement);\n }\n\n if (objectContainer.children.length > 0) {\n elementContainer.appendChild(objectContainer);\n }\n\n objectContainer.classList.add(ELEMENT_OBJECT_CAPTION_CONTAINER);\n elementContainer.classList.add(ELEMENT_MEDIA_INLINE_CONTAINER);\n\n window.addEventListener(\n 'resize',\n debounce(() => {\n eventResize();\n }, 20),\n );\n\n setTimeout(() => {\n eventResize();\n }, 100);\n\n return {\n element: elementContainer,\n events: {\n load,\n },\n styles: STYLES_MEDIA_INLINE_ELEMENT,\n };\n })();\n\nexport default CreateMediaWithCaption;\n"],"names":["caption"],"mappings":";;;;AAaA,MAAM,iCAAiC;AACvC,MAAM,mCAAmC;AAGzC,MAAM,kBAAkB;AAAA,KACnB,gCAAgC;AAAA;AAAA;AAAA,sBAGf,MAAM,QAAQ,EAAE;AAAA;AAAA;AAAA;AAMtC,MAAM,8BAA8B;AAAA,KAC/B,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA,IAK/B,YAAY,MAAM;AAAA,IAClB,iBAAiB,MAAM;AAAA,IACvB,eAAe;AAAA;AAGnB,MAAM,yBAAyB,CAAC,WAC7B,MAAM;AACL,QAAM,EAAE,SAAS,OAAO,YAAA,IAAgB;AACxC,QAAM,aAAa,WAAW,YAAY;AAC1C,QAAM,mBAAmB,SAAS,cAAc,KAAK;AACrD,QAAM,kBAAkB,SAAS,cAAc,KAAK;AACpD,QAAM,cAAc,MAAM;AACxB,UAAM,iBAAiB,iBAAiB;AAAA,MACtC,IAAI,YAAY,SAAS,SAAS;AAAA,IAAA;AAEpC,UAAMA,WAAU,iBAAiB;AAAA,MAC/B,IAAI,iBAAiB,SAAS,SAAS;AAAA,IAAA;AAGzC,QAAIA,UAAS;AACXA,eAAQ,MAAM,QAAQ,GAAG,eAAe,WAAW;AACnDA,eAAQ,MAAM,UAAU;AAAA,IAC1B;AAAA,EACF;AACA,QAAM,cAAc,MAAM;AACxB,gBAAA;AAAA,EACF;AAEA,MAAI,OAAO;AACT,oBAAgB;AAAA,MACd,YAAY,cAAc;AAAA,QACxB;AAAA,QACA,aAAa;AAAA,MAAA,CACd;AAAA,IAAA;AAAA,EAEL;AAEA,QAAM,OAAO,MAAM;AACjB,UAAM,cAAc,MAAM;AACxB,YAAMA,WAAU,gBAAgB;AAAA,QAC9B,IAAI,iBAAiB,SAAS,SAAS;AAAA,MAAA;AAGzC,UAAIA,UAAS;AACXA,iBAAQ,MAAM,UAAU;AAAA,MAC1B;AAAA,IACF;AAEA,WAAO,iBAAiB,QAAQ,MAAM;AACpC,kBAAA;AAEA,iBAAW,MAAM;AACf,oBAAA;AAAA,MACF,GAAG,GAAG;AAAA,IACR,CAAC;AAAA,EACH;AAEA,MAAI,YAAY;AACd,UAAM,iBAAiB,iBAAiB,cAAc;AAAA,MACpD;AAAA,MACA;AAAA,IAAA,CACD;AACD,mBAAe,MAAM,UAAU;AAC/B,oBAAgB,YAAY,cAAc;AAAA,EAC5C;AAEA,MAAI,gBAAgB,SAAS,SAAS,GAAG;AACvC,qBAAiB,YAAY,eAAe;AAAA,EAC9C;AAEA,kBAAgB,UAAU,IAAI,gCAAgC;AAC9D,mBAAiB,UAAU,IAAI,8BAA8B;AAE7D,SAAO;AAAA,IACL;AAAA,IACA,SAAS,MAAM;AACb,kBAAA;AAAA,IACF,GAAG,EAAE;AAAA,EAAA;AAGP,aAAW,MAAM;AACf,gBAAA;AAAA,EACF,GAAG,GAAG;AAEN,SAAO;AAAA,IACL,SAAS;AAAA,IACT,QAAQ;AAAA,MACN;AAAA,IAAA;AAAA,IAEF,QAAQ;AAAA,EAAA;AAEZ,GAAA;"}
1
+ {"version":3,"file":"caption.mjs","sources":["../../../../source/composite/media/inline/caption.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport CaptionContainer from '../elements/caption';\nimport { Image as LayoutImage } from 'layout';\n\nexport type TypeMediaInlineRequirements = {\n image?: HTMLImageElement | null;\n caption?: HTMLElement | null;\n isThemeDark?: boolean;\n};\n\nconst { spacing } = token;\n\nconst ELEMENT_MEDIA_INLINE_CONTAINER = 'element-media-with-caption-container';\nconst ELEMENT_OBJECT_CAPTION_CONTAINER = 'element-media-caption-container';\n\n// prettier-ignore\nconst ObjectContainer = `\n .${ELEMENT_OBJECT_CAPTION_CONTAINER} {\n display: flex;\n flex-direction: column;\n padding-bottom: ${token.spacing.sm};\n max-width: 100%;\n }\n`;\n\n// prettier-ignore\nconst STYLES_MEDIA_INLINE_ELEMENT = `\n .${ELEMENT_MEDIA_INLINE_CONTAINER} {\n display: inline-block;\n max-width: 100%;\n }\n\n ${LayoutImage.Styles}\n ${CaptionContainer.Styles}\n ${ObjectContainer}\n`;\n\nconst CreateMediaWithCaption = (props: TypeMediaInlineRequirements) =>\n (() => {\n const { caption, image, isThemeDark } = props;\n const hasCaption = caption && caption !== null;\n const elementContainer = document.createElement('div');\n const objectContainer = document.createElement('div');\n const sizeCaption = () => {\n const imageContainer = elementContainer.querySelector(\n `.${LayoutImage.Elements.container}`,\n ) as HTMLElement;\n const caption = elementContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.width = `${imageContainer.offsetWidth}px`;\n caption.style.display = `block`;\n }\n };\n const eventResize = () => {\n sizeCaption();\n };\n\n if (image) {\n objectContainer.appendChild(\n LayoutImage.CreateElement({\n image,\n showCaption: true,\n }),\n );\n }\n\n const load = () => {\n const checkSizing = () => {\n const caption = objectContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.opacity = `1`;\n }\n };\n\n image?.addEventListener('load', () => {\n checkSizing();\n\n setTimeout(() => {\n checkSizing();\n }, 500);\n });\n };\n\n if (hasCaption) {\n const captionElement = CaptionContainer.CreateElement({\n caption,\n isThemeDark,\n });\n captionElement.style.display = `none`;\n objectContainer.appendChild(captionElement);\n }\n\n if (objectContainer.children.length > 0) {\n elementContainer.appendChild(objectContainer);\n }\n\n objectContainer.classList.add(ELEMENT_OBJECT_CAPTION_CONTAINER);\n elementContainer.classList.add(ELEMENT_MEDIA_INLINE_CONTAINER);\n\n window.addEventListener(\n 'resize',\n debounce(() => {\n eventResize();\n }, 20),\n );\n\n setTimeout(() => {\n eventResize();\n }, 100);\n\n return {\n element: elementContainer,\n events: {\n load,\n },\n styles: STYLES_MEDIA_INLINE_ELEMENT,\n };\n })();\n\nexport default CreateMediaWithCaption;\n"],"names":["caption"],"mappings":";;;;AAaA,MAAM,iCAAiC;AACvC,MAAM,mCAAmC;AAGzC,MAAM,kBAAkB;AAAA,KACnB,gCAAgC;AAAA;AAAA;AAAA,sBAGf,MAAM,QAAQ,EAAE;AAAA;AAAA;AAAA;AAMtC,MAAM,8BAA8B;AAAA,KAC/B,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA,IAK/B,YAAY,MAAM;AAAA,IAClB,iBAAiB,MAAM;AAAA,IACvB,eAAe;AAAA;AAGnB,MAAM,yBAAyB,CAAC,WAC7B,MAAM;AACL,QAAM,EAAE,SAAS,OAAO,YAAA,IAAgB;AACxC,QAAM,aAAa,WAAW,YAAY;AAC1C,QAAM,mBAAmB,SAAS,cAAc,KAAK;AACrD,QAAM,kBAAkB,SAAS,cAAc,KAAK;AACpD,QAAM,cAAc,MAAM;AACxB,UAAM,iBAAiB,iBAAiB;AAAA,MACtC,IAAI,YAAY,SAAS,SAAS;AAAA,IAAA;AAEpC,UAAMA,WAAU,iBAAiB;AAAA,MAC/B,IAAI,iBAAiB,SAAS,SAAS;AAAA,IAAA;AAGzC,QAAIA,UAAS;AACXA,eAAQ,MAAM,QAAQ,GAAG,eAAe,WAAW;AACnDA,eAAQ,MAAM,UAAU;AAAA,IAC1B;AAAA,EACF;AACA,QAAM,cAAc,MAAM;AACxB,gBAAA;AAAA,EACF;AAEA,MAAI,OAAO;AACT,oBAAgB;AAAA,MACd,YAAY,cAAc;AAAA,QACxB;AAAA,QACA,aAAa;AAAA,MAAA,CACd;AAAA,IAAA;AAAA,EAEL;AAEA,QAAM,OAAO,MAAM;AACjB,UAAM,cAAc,MAAM;AACxB,YAAMA,WAAU,gBAAgB;AAAA,QAC9B,IAAI,iBAAiB,SAAS,SAAS;AAAA,MAAA;AAGzC,UAAIA,UAAS;AACXA,iBAAQ,MAAM,UAAU;AAAA,MAC1B;AAAA,IACF;AAEA,WAAO,iBAAiB,QAAQ,MAAM;AACpC,kBAAA;AAEA,iBAAW,MAAM;AACf,oBAAA;AAAA,MACF,GAAG,GAAG;AAAA,IACR,CAAC;AAAA,EACH;AAEA,MAAI,YAAY;AACd,UAAM,iBAAiB,iBAAiB,cAAc;AAAA,MACpD;AAAA,MACA;AAAA,IAAA,CACD;AACD,mBAAe,MAAM,UAAU;AAC/B,oBAAgB,YAAY,cAAc;AAAA,EAC5C;AAEA,MAAI,gBAAgB,SAAS,SAAS,GAAG;AACvC,qBAAiB,YAAY,eAAe;AAAA,EAC9C;AAEA,kBAAgB,UAAU,IAAI,gCAAgC;AAC9D,mBAAiB,UAAU,IAAI,8BAA8B;AAE7D,SAAO;AAAA,IACL;AAAA,IACA,SAAS,MAAM;AACb,kBAAA;AAAA,IACF,GAAG,EAAE;AAAA,EAAA;AAGP,aAAW,MAAM;AACf,gBAAA;AAAA,EACF,GAAG,GAAG;AAEN,SAAO;AAAA,IACL,SAAS;AAAA,IACT,QAAQ;AAAA,MACN;AAAA,IAAA;AAAA,IAEF,QAAQ;AAAA,EAAA;AAEZ,GAAA;"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
- const token = require("@universityofmaryland/web-styles-library/token");
2
+ const token = require("@universityofmaryland/web-token-library");
3
3
  const performance = require("@universityofmaryland/web-utilities-library/performance");
4
- const image = require("../../../layout/image.js");
5
4
  const caption = require("../elements/caption.js");
5
+ const image = require("../../../layout/image.js");
6
6
  function _interopNamespaceDefault(e) {
7
7
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
8
8
  if (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"wrapped.js","sources":["../../../../source/composite/media/inline/wrapped.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport { Image as LayoutImage } from 'layout';\nimport CaptionContainer from '../elements/caption';\n\nexport type TypeMediaInlineWrappedRequirements = {\n image?: HTMLImageElement | null;\n caption?: HTMLElement | null;\n wrappingText?: HTMLElement | null;\n isAlignmentRight?: boolean;\n isThemeDark?: boolean;\n};\n\nconst { spacing } = token;\n\nconst BREAKPOINT = 400;\n\nconst ATTRIBUTE_IS_WRAPPING_TEXT = 'is-wrapping-text';\n\nconst ELEMENT_MEDIA_INLINE_CONTAINER = 'element-media-inline-wrapped-container';\nconst ELEMENT_OBJECT_WRAPPED_CONTAINER = 'element-object-wrapped-container';\n\n// prettier-ignore\nconst ObjectContainer = `\n .${ELEMENT_OBJECT_WRAPPED_CONTAINER} {\n display: inline-block;\n padding-bottom: ${token.spacing.sm};\n max-width: 100%;\n }\n`;\n\n// prettier-ignore\nconst STYLES_MEDIA_INLINE_WRAPPED_ELEMENT = `\n .${ELEMENT_MEDIA_INLINE_CONTAINER} {\n display: inline-block;\n max-width: 100%;\n }\n\n ${LayoutImage.Styles}\n ${CaptionContainer.Styles}\n ${ObjectContainer}\n`;\n\nconst GetObjectSize = ({\n elementContainer,\n image,\n}: {\n elementContainer: HTMLElement;\n image: HTMLImageElement;\n}) => {\n const containerSize = elementContainer.offsetWidth;\n const imageWidth = image.naturalWidth;\n const isMediumView = containerSize > BREAKPOINT;\n let width = imageWidth;\n\n if (isMediumView) {\n const shouldMaxSized = imageWidth > containerSize / 2;\n if (shouldMaxSized) width = containerSize / 2;\n }\n\n return width;\n};\n\nconst CreateMediaInlineWrapped = (props: TypeMediaInlineWrappedRequirements) =>\n (() => {\n const { image, isAlignmentRight, isThemeDark, caption, wrappingText } =\n props;\n\n const elementContainer = document.createElement('div');\n const objectContainer = document.createElement('div');\n const hasWrappingtext = wrappingText && wrappingText !== null;\n const hasCaption = caption && caption !== null;\n const sizeCaption = () => {\n const imageContainer = elementContainer.querySelector(\n `.${LayoutImage.Elements.container}`,\n ) as HTMLElement;\n const caption = elementContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.width = `${imageContainer.offsetWidth}px`;\n }\n };\n const sizeObject = () => {\n const isAboveBreakPoint = elementContainer.offsetWidth > BREAKPOINT;\n const objectContainer = elementContainer.querySelector(\n `.${ELEMENT_OBJECT_WRAPPED_CONTAINER}`,\n ) as HTMLElement;\n\n if (!image) return;\n\n if (isAboveBreakPoint) {\n const objectSize = GetObjectSize({ elementContainer, image });\n\n objectContainer.style.width = `${objectSize}px`;\n objectContainer.style.display = 'inline-block';\n objectContainer.style.textAlign = 'left';\n\n if (isAlignmentRight) {\n objectContainer.style.float = `right`;\n objectContainer.style.paddingLeft = `${token.spacing.md}`;\n } else {\n objectContainer.style.float = 'left';\n objectContainer.style.paddingRight = `${token.spacing.md}`;\n }\n } else {\n objectContainer.style.width = '100%';\n objectContainer.style.float = 'none';\n objectContainer.style.textAlign = 'center';\n objectContainer.style.paddingLeft = `0`;\n objectContainer.style.paddingRight = `0`;\n }\n\n setTimeout(() => {\n sizeCaption();\n }, 100);\n };\n const eventResize = () => {\n if (hasWrappingtext) {\n sizeObject();\n }\n if (hasCaption) {\n sizeCaption();\n }\n };\n\n const load = () => {\n const checkSizing = () => {\n const caption = objectContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.opacity = `1`;\n }\n };\n\n image?.addEventListener('load', () => {\n eventResize();\n\n setTimeout(() => {\n checkSizing();\n }, 100);\n\n setTimeout(() => {\n checkSizing();\n }, 500);\n });\n };\n\n objectContainer.classList.add(ELEMENT_OBJECT_WRAPPED_CONTAINER);\n\n if (image) {\n objectContainer.appendChild(\n LayoutImage.CreateElement({\n image,\n showCaption: true,\n }),\n );\n }\n\n if (hasCaption) {\n const captionElement = CaptionContainer.CreateElement({\n caption,\n isThemeDark,\n });\n captionElement.style.opacity = `0`;\n objectContainer.appendChild(captionElement);\n }\n\n if (objectContainer.children.length > 0) {\n elementContainer.appendChild(objectContainer);\n }\n\n if (hasWrappingtext) {\n elementContainer.appendChild(wrappingText);\n elementContainer.setAttribute(ATTRIBUTE_IS_WRAPPING_TEXT, '');\n setTimeout(() => {\n sizeObject();\n }, 100);\n }\n\n elementContainer.classList.add(ELEMENT_MEDIA_INLINE_CONTAINER);\n\n window.addEventListener(\n 'resize',\n debounce(() => {\n eventResize();\n }, 20),\n );\n\n setTimeout(() => {\n eventResize();\n }, 200);\n\n return {\n element: elementContainer,\n events: {\n load,\n },\n styles: STYLES_MEDIA_INLINE_WRAPPED_ELEMENT,\n };\n })();\n\nexport default CreateMediaInlineWrapped;\n"],"names":["token","LayoutImage","CaptionContainer","image","caption","objectContainer","debounce"],"mappings":"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"}
1
+ {"version":3,"file":"wrapped.js","sources":["../../../../source/composite/media/inline/wrapped.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport CaptionContainer from '../elements/caption';\nimport { Image as LayoutImage } from 'layout';\n\nexport type TypeMediaInlineWrappedRequirements = {\n image?: HTMLImageElement | null;\n caption?: HTMLElement | null;\n wrappingText?: HTMLElement | null;\n isAlignmentRight?: boolean;\n isThemeDark?: boolean;\n};\n\nconst { spacing } = token;\n\nconst BREAKPOINT = 400;\n\nconst ATTRIBUTE_IS_WRAPPING_TEXT = 'is-wrapping-text';\n\nconst ELEMENT_MEDIA_INLINE_CONTAINER = 'element-media-inline-wrapped-container';\nconst ELEMENT_OBJECT_WRAPPED_CONTAINER = 'element-object-wrapped-container';\n\n// prettier-ignore\nconst ObjectContainer = `\n .${ELEMENT_OBJECT_WRAPPED_CONTAINER} {\n display: inline-block;\n padding-bottom: ${token.spacing.sm};\n max-width: 100%;\n }\n`;\n\n// prettier-ignore\nconst STYLES_MEDIA_INLINE_WRAPPED_ELEMENT = `\n .${ELEMENT_MEDIA_INLINE_CONTAINER} {\n display: inline-block;\n max-width: 100%;\n }\n\n ${LayoutImage.Styles}\n ${CaptionContainer.Styles}\n ${ObjectContainer}\n`;\n\nconst GetObjectSize = ({\n elementContainer,\n image,\n}: {\n elementContainer: HTMLElement;\n image: HTMLImageElement;\n}) => {\n const containerSize = elementContainer.offsetWidth;\n const imageWidth = image.naturalWidth;\n const isMediumView = containerSize > BREAKPOINT;\n let width = imageWidth;\n\n if (isMediumView) {\n const shouldMaxSized = imageWidth > containerSize / 2;\n if (shouldMaxSized) width = containerSize / 2;\n }\n\n return width;\n};\n\nconst CreateMediaInlineWrapped = (props: TypeMediaInlineWrappedRequirements) =>\n (() => {\n const { image, isAlignmentRight, isThemeDark, caption, wrappingText } =\n props;\n\n const elementContainer = document.createElement('div');\n const objectContainer = document.createElement('div');\n const hasWrappingtext = wrappingText && wrappingText !== null;\n const hasCaption = caption && caption !== null;\n const sizeCaption = () => {\n const imageContainer = elementContainer.querySelector(\n `.${LayoutImage.Elements.container}`,\n ) as HTMLElement;\n const caption = elementContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.width = `${imageContainer.offsetWidth}px`;\n }\n };\n const sizeObject = () => {\n const isAboveBreakPoint = elementContainer.offsetWidth > BREAKPOINT;\n const objectContainer = elementContainer.querySelector(\n `.${ELEMENT_OBJECT_WRAPPED_CONTAINER}`,\n ) as HTMLElement;\n\n if (!image) return;\n\n if (isAboveBreakPoint) {\n const objectSize = GetObjectSize({ elementContainer, image });\n\n objectContainer.style.width = `${objectSize}px`;\n objectContainer.style.display = 'inline-block';\n objectContainer.style.textAlign = 'left';\n\n if (isAlignmentRight) {\n objectContainer.style.float = `right`;\n objectContainer.style.paddingLeft = `${token.spacing.md}`;\n } else {\n objectContainer.style.float = 'left';\n objectContainer.style.paddingRight = `${token.spacing.md}`;\n }\n } else {\n objectContainer.style.width = '100%';\n objectContainer.style.float = 'none';\n objectContainer.style.textAlign = 'center';\n objectContainer.style.paddingLeft = `0`;\n objectContainer.style.paddingRight = `0`;\n }\n\n setTimeout(() => {\n sizeCaption();\n }, 100);\n };\n const eventResize = () => {\n if (hasWrappingtext) {\n sizeObject();\n }\n if (hasCaption) {\n sizeCaption();\n }\n };\n\n const load = () => {\n const checkSizing = () => {\n const caption = objectContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.opacity = `1`;\n }\n };\n\n image?.addEventListener('load', () => {\n eventResize();\n\n setTimeout(() => {\n checkSizing();\n }, 100);\n\n setTimeout(() => {\n checkSizing();\n }, 500);\n });\n };\n\n objectContainer.classList.add(ELEMENT_OBJECT_WRAPPED_CONTAINER);\n\n if (image) {\n objectContainer.appendChild(\n LayoutImage.CreateElement({\n image,\n showCaption: true,\n }),\n );\n }\n\n if (hasCaption) {\n const captionElement = CaptionContainer.CreateElement({\n caption,\n isThemeDark,\n });\n captionElement.style.opacity = `0`;\n objectContainer.appendChild(captionElement);\n }\n\n if (objectContainer.children.length > 0) {\n elementContainer.appendChild(objectContainer);\n }\n\n if (hasWrappingtext) {\n elementContainer.appendChild(wrappingText);\n elementContainer.setAttribute(ATTRIBUTE_IS_WRAPPING_TEXT, '');\n setTimeout(() => {\n sizeObject();\n }, 100);\n }\n\n elementContainer.classList.add(ELEMENT_MEDIA_INLINE_CONTAINER);\n\n window.addEventListener(\n 'resize',\n debounce(() => {\n eventResize();\n }, 20),\n );\n\n setTimeout(() => {\n eventResize();\n }, 200);\n\n return {\n element: elementContainer,\n events: {\n load,\n },\n styles: STYLES_MEDIA_INLINE_WRAPPED_ELEMENT,\n };\n })();\n\nexport default CreateMediaInlineWrapped;\n"],"names":["token","LayoutImage","CaptionContainer","image","caption","objectContainer","debounce"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAeA,MAAM,aAAa;AAEnB,MAAM,6BAA6B;AAEnC,MAAM,iCAAiC;AACvC,MAAM,mCAAmC;AAGzC,MAAM,kBAAkB;AAAA,KACnB,gCAAgC;AAAA;AAAA,sBAEfA,iBAAM,QAAQ,EAAE;AAAA;AAAA;AAAA;AAMtC,MAAM,sCAAsC;AAAA,KACvC,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA,IAK/BC,MAAY,MAAM;AAAA,IAClBC,QAAiB,MAAM;AAAA,IACvB,eAAe;AAAA;AAGnB,MAAM,gBAAgB,CAAC;AAAA,EACrB;AAAA,EACA,OAAAC;AACF,MAGM;AACJ,QAAM,gBAAgB,iBAAiB;AACvC,QAAM,aAAaA,OAAM;AACzB,QAAM,eAAe,gBAAgB;AACrC,MAAI,QAAQ;AAEZ,MAAI,cAAc;AAChB,UAAM,iBAAiB,aAAa,gBAAgB;AACpD,QAAI,wBAAwB,gBAAgB;AAAA,EAC9C;AAEA,SAAO;AACT;AAEA,MAAM,2BAA2B,CAAC,WAC/B,MAAM;AACL,QAAM,EAAA,OAAEA,SAAO,kBAAkB,aAAA,SAAaC,WAAS,iBACrD;AAEF,QAAM,mBAAmB,SAAS,cAAc,KAAK;AACrD,QAAM,kBAAkB,SAAS,cAAc,KAAK;AACpD,QAAM,kBAAkB,gBAAgB,iBAAiB;AACzD,QAAM,aAAaA,aAAWA,cAAY;AAC1C,QAAM,cAAc,MAAM;AACxB,UAAM,iBAAiB,iBAAiB;AAAA,MACtC,IAAIH,MAAY,SAAS,SAAS;AAAA,IAAA;AAEpC,UAAMG,WAAU,iBAAiB;AAAA,MAC/B,IAAIF,QAAiB,SAAS,SAAS;AAAA,IAAA;AAGzC,QAAIE,UAAS;AACXA,eAAQ,MAAM,QAAQ,GAAG,eAAe,WAAW;AAAA,IACrD;AAAA,EACF;AACA,QAAM,aAAa,MAAM;AACvB,UAAM,oBAAoB,iBAAiB,cAAc;AACzD,UAAMC,mBAAkB,iBAAiB;AAAA,MACvC,IAAI,gCAAgC;AAAA,IAAA;AAGtC,QAAI,CAACF,QAAO;AAEZ,QAAI,mBAAmB;AACrB,YAAM,aAAa,cAAc,EAAE,kBAAA,OAAkBA,SAAO;AAE5DE,uBAAgB,MAAM,QAAQ,GAAG,UAAU;AAC3CA,uBAAgB,MAAM,UAAU;AAChCA,uBAAgB,MAAM,YAAY;AAElC,UAAI,kBAAkB;AACpBA,yBAAgB,MAAM,QAAQ;AAC9BA,yBAAgB,MAAM,cAAc,GAAGL,iBAAM,QAAQ,EAAE;AAAA,MACzD,OAAO;AACLK,yBAAgB,MAAM,QAAQ;AAC9BA,yBAAgB,MAAM,eAAe,GAAGL,iBAAM,QAAQ,EAAE;AAAA,MAC1D;AAAA,IACF,OAAO;AACLK,uBAAgB,MAAM,QAAQ;AAC9BA,uBAAgB,MAAM,QAAQ;AAC9BA,uBAAgB,MAAM,YAAY;AAClCA,uBAAgB,MAAM,cAAc;AACpCA,uBAAgB,MAAM,eAAe;AAAA,IACvC;AAEA,eAAW,MAAM;AACf,kBAAA;AAAA,IACF,GAAG,GAAG;AAAA,EACR;AACA,QAAM,cAAc,MAAM;AACxB,QAAI,iBAAiB;AACnB,iBAAA;AAAA,IACF;AACA,QAAI,YAAY;AACd,kBAAA;AAAA,IACF;AAAA,EACF;AAEA,QAAM,OAAO,MAAM;AACjB,UAAM,cAAc,MAAM;AACxB,YAAMD,WAAU,gBAAgB;AAAA,QAC9B,IAAIF,QAAiB,SAAS,SAAS;AAAA,MAAA;AAGzC,UAAIE,UAAS;AACXA,iBAAQ,MAAM,UAAU;AAAA,MAC1B;AAAA,IACF;AAEAD,aAAO,iBAAiB,QAAQ,MAAM;AACpC,kBAAA;AAEA,iBAAW,MAAM;AACf,oBAAA;AAAA,MACF,GAAG,GAAG;AAEN,iBAAW,MAAM;AACf,oBAAA;AAAA,MACF,GAAG,GAAG;AAAA,IACR,CAAC;AAAA,EACH;AAEA,kBAAgB,UAAU,IAAI,gCAAgC;AAE9D,MAAIA,SAAO;AACT,oBAAgB;AAAA,MACdF,MAAY,cAAc;AAAA,QAAA,OACxBE;AAAAA,QACA,aAAa;AAAA,MAAA,CACd;AAAA,IAAA;AAAA,EAEL;AAEA,MAAI,YAAY;AACd,UAAM,iBAAiBD,QAAiB,cAAc;AAAA,MAAA,SACpDE;AAAAA,MACA;AAAA,IAAA,CACD;AACD,mBAAe,MAAM,UAAU;AAC/B,oBAAgB,YAAY,cAAc;AAAA,EAC5C;AAEA,MAAI,gBAAgB,SAAS,SAAS,GAAG;AACvC,qBAAiB,YAAY,eAAe;AAAA,EAC9C;AAEA,MAAI,iBAAiB;AACnB,qBAAiB,YAAY,YAAY;AACzC,qBAAiB,aAAa,4BAA4B,EAAE;AAC5D,eAAW,MAAM;AACf,iBAAA;AAAA,IACF,GAAG,GAAG;AAAA,EACR;AAEA,mBAAiB,UAAU,IAAI,8BAA8B;AAE7D,SAAO;AAAA,IACL;AAAA,IACAE,YAAAA,SAAS,MAAM;AACb,kBAAA;AAAA,IACF,GAAG,EAAE;AAAA,EAAA;AAGP,aAAW,MAAM;AACf,gBAAA;AAAA,EACF,GAAG,GAAG;AAEN,SAAO;AAAA,IACL,SAAS;AAAA,IACT,QAAQ;AAAA,MACN;AAAA,IAAA;AAAA,IAEF,QAAQ;AAAA,EAAA;AAEZ,GAAA;;"}
@@ -1,7 +1,7 @@
1
- import * as token from "@universityofmaryland/web-styles-library/token";
1
+ import * as token from "@universityofmaryland/web-token-library";
2
2
  import { debounce } from "@universityofmaryland/web-utilities-library/performance";
3
- import LayoutImage from "../../../layout/image.mjs";
4
3
  import CaptionContainer from "../elements/caption.mjs";
4
+ import LayoutImage from "../../../layout/image.mjs";
5
5
  const BREAKPOINT = 400;
6
6
  const ATTRIBUTE_IS_WRAPPING_TEXT = "is-wrapping-text";
7
7
  const ELEMENT_MEDIA_INLINE_CONTAINER = "element-media-inline-wrapped-container";
@@ -1 +1 @@
1
- {"version":3,"file":"wrapped.mjs","sources":["../../../../source/composite/media/inline/wrapped.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport { Image as LayoutImage } from 'layout';\nimport CaptionContainer from '../elements/caption';\n\nexport type TypeMediaInlineWrappedRequirements = {\n image?: HTMLImageElement | null;\n caption?: HTMLElement | null;\n wrappingText?: HTMLElement | null;\n isAlignmentRight?: boolean;\n isThemeDark?: boolean;\n};\n\nconst { spacing } = token;\n\nconst BREAKPOINT = 400;\n\nconst ATTRIBUTE_IS_WRAPPING_TEXT = 'is-wrapping-text';\n\nconst ELEMENT_MEDIA_INLINE_CONTAINER = 'element-media-inline-wrapped-container';\nconst ELEMENT_OBJECT_WRAPPED_CONTAINER = 'element-object-wrapped-container';\n\n// prettier-ignore\nconst ObjectContainer = `\n .${ELEMENT_OBJECT_WRAPPED_CONTAINER} {\n display: inline-block;\n padding-bottom: ${token.spacing.sm};\n max-width: 100%;\n }\n`;\n\n// prettier-ignore\nconst STYLES_MEDIA_INLINE_WRAPPED_ELEMENT = `\n .${ELEMENT_MEDIA_INLINE_CONTAINER} {\n display: inline-block;\n max-width: 100%;\n }\n\n ${LayoutImage.Styles}\n ${CaptionContainer.Styles}\n ${ObjectContainer}\n`;\n\nconst GetObjectSize = ({\n elementContainer,\n image,\n}: {\n elementContainer: HTMLElement;\n image: HTMLImageElement;\n}) => {\n const containerSize = elementContainer.offsetWidth;\n const imageWidth = image.naturalWidth;\n const isMediumView = containerSize > BREAKPOINT;\n let width = imageWidth;\n\n if (isMediumView) {\n const shouldMaxSized = imageWidth > containerSize / 2;\n if (shouldMaxSized) width = containerSize / 2;\n }\n\n return width;\n};\n\nconst CreateMediaInlineWrapped = (props: TypeMediaInlineWrappedRequirements) =>\n (() => {\n const { image, isAlignmentRight, isThemeDark, caption, wrappingText } =\n props;\n\n const elementContainer = document.createElement('div');\n const objectContainer = document.createElement('div');\n const hasWrappingtext = wrappingText && wrappingText !== null;\n const hasCaption = caption && caption !== null;\n const sizeCaption = () => {\n const imageContainer = elementContainer.querySelector(\n `.${LayoutImage.Elements.container}`,\n ) as HTMLElement;\n const caption = elementContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.width = `${imageContainer.offsetWidth}px`;\n }\n };\n const sizeObject = () => {\n const isAboveBreakPoint = elementContainer.offsetWidth > BREAKPOINT;\n const objectContainer = elementContainer.querySelector(\n `.${ELEMENT_OBJECT_WRAPPED_CONTAINER}`,\n ) as HTMLElement;\n\n if (!image) return;\n\n if (isAboveBreakPoint) {\n const objectSize = GetObjectSize({ elementContainer, image });\n\n objectContainer.style.width = `${objectSize}px`;\n objectContainer.style.display = 'inline-block';\n objectContainer.style.textAlign = 'left';\n\n if (isAlignmentRight) {\n objectContainer.style.float = `right`;\n objectContainer.style.paddingLeft = `${token.spacing.md}`;\n } else {\n objectContainer.style.float = 'left';\n objectContainer.style.paddingRight = `${token.spacing.md}`;\n }\n } else {\n objectContainer.style.width = '100%';\n objectContainer.style.float = 'none';\n objectContainer.style.textAlign = 'center';\n objectContainer.style.paddingLeft = `0`;\n objectContainer.style.paddingRight = `0`;\n }\n\n setTimeout(() => {\n sizeCaption();\n }, 100);\n };\n const eventResize = () => {\n if (hasWrappingtext) {\n sizeObject();\n }\n if (hasCaption) {\n sizeCaption();\n }\n };\n\n const load = () => {\n const checkSizing = () => {\n const caption = objectContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.opacity = `1`;\n }\n };\n\n image?.addEventListener('load', () => {\n eventResize();\n\n setTimeout(() => {\n checkSizing();\n }, 100);\n\n setTimeout(() => {\n checkSizing();\n }, 500);\n });\n };\n\n objectContainer.classList.add(ELEMENT_OBJECT_WRAPPED_CONTAINER);\n\n if (image) {\n objectContainer.appendChild(\n LayoutImage.CreateElement({\n image,\n showCaption: true,\n }),\n );\n }\n\n if (hasCaption) {\n const captionElement = CaptionContainer.CreateElement({\n caption,\n isThemeDark,\n });\n captionElement.style.opacity = `0`;\n objectContainer.appendChild(captionElement);\n }\n\n if (objectContainer.children.length > 0) {\n elementContainer.appendChild(objectContainer);\n }\n\n if (hasWrappingtext) {\n elementContainer.appendChild(wrappingText);\n elementContainer.setAttribute(ATTRIBUTE_IS_WRAPPING_TEXT, '');\n setTimeout(() => {\n sizeObject();\n }, 100);\n }\n\n elementContainer.classList.add(ELEMENT_MEDIA_INLINE_CONTAINER);\n\n window.addEventListener(\n 'resize',\n debounce(() => {\n eventResize();\n }, 20),\n );\n\n setTimeout(() => {\n eventResize();\n }, 200);\n\n return {\n element: elementContainer,\n events: {\n load,\n },\n styles: STYLES_MEDIA_INLINE_WRAPPED_ELEMENT,\n };\n })();\n\nexport default CreateMediaInlineWrapped;\n"],"names":["caption","objectContainer"],"mappings":"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"}
1
+ {"version":3,"file":"wrapped.mjs","sources":["../../../../source/composite/media/inline/wrapped.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport CaptionContainer from '../elements/caption';\nimport { Image as LayoutImage } from 'layout';\n\nexport type TypeMediaInlineWrappedRequirements = {\n image?: HTMLImageElement | null;\n caption?: HTMLElement | null;\n wrappingText?: HTMLElement | null;\n isAlignmentRight?: boolean;\n isThemeDark?: boolean;\n};\n\nconst { spacing } = token;\n\nconst BREAKPOINT = 400;\n\nconst ATTRIBUTE_IS_WRAPPING_TEXT = 'is-wrapping-text';\n\nconst ELEMENT_MEDIA_INLINE_CONTAINER = 'element-media-inline-wrapped-container';\nconst ELEMENT_OBJECT_WRAPPED_CONTAINER = 'element-object-wrapped-container';\n\n// prettier-ignore\nconst ObjectContainer = `\n .${ELEMENT_OBJECT_WRAPPED_CONTAINER} {\n display: inline-block;\n padding-bottom: ${token.spacing.sm};\n max-width: 100%;\n }\n`;\n\n// prettier-ignore\nconst STYLES_MEDIA_INLINE_WRAPPED_ELEMENT = `\n .${ELEMENT_MEDIA_INLINE_CONTAINER} {\n display: inline-block;\n max-width: 100%;\n }\n\n ${LayoutImage.Styles}\n ${CaptionContainer.Styles}\n ${ObjectContainer}\n`;\n\nconst GetObjectSize = ({\n elementContainer,\n image,\n}: {\n elementContainer: HTMLElement;\n image: HTMLImageElement;\n}) => {\n const containerSize = elementContainer.offsetWidth;\n const imageWidth = image.naturalWidth;\n const isMediumView = containerSize > BREAKPOINT;\n let width = imageWidth;\n\n if (isMediumView) {\n const shouldMaxSized = imageWidth > containerSize / 2;\n if (shouldMaxSized) width = containerSize / 2;\n }\n\n return width;\n};\n\nconst CreateMediaInlineWrapped = (props: TypeMediaInlineWrappedRequirements) =>\n (() => {\n const { image, isAlignmentRight, isThemeDark, caption, wrappingText } =\n props;\n\n const elementContainer = document.createElement('div');\n const objectContainer = document.createElement('div');\n const hasWrappingtext = wrappingText && wrappingText !== null;\n const hasCaption = caption && caption !== null;\n const sizeCaption = () => {\n const imageContainer = elementContainer.querySelector(\n `.${LayoutImage.Elements.container}`,\n ) as HTMLElement;\n const caption = elementContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.width = `${imageContainer.offsetWidth}px`;\n }\n };\n const sizeObject = () => {\n const isAboveBreakPoint = elementContainer.offsetWidth > BREAKPOINT;\n const objectContainer = elementContainer.querySelector(\n `.${ELEMENT_OBJECT_WRAPPED_CONTAINER}`,\n ) as HTMLElement;\n\n if (!image) return;\n\n if (isAboveBreakPoint) {\n const objectSize = GetObjectSize({ elementContainer, image });\n\n objectContainer.style.width = `${objectSize}px`;\n objectContainer.style.display = 'inline-block';\n objectContainer.style.textAlign = 'left';\n\n if (isAlignmentRight) {\n objectContainer.style.float = `right`;\n objectContainer.style.paddingLeft = `${token.spacing.md}`;\n } else {\n objectContainer.style.float = 'left';\n objectContainer.style.paddingRight = `${token.spacing.md}`;\n }\n } else {\n objectContainer.style.width = '100%';\n objectContainer.style.float = 'none';\n objectContainer.style.textAlign = 'center';\n objectContainer.style.paddingLeft = `0`;\n objectContainer.style.paddingRight = `0`;\n }\n\n setTimeout(() => {\n sizeCaption();\n }, 100);\n };\n const eventResize = () => {\n if (hasWrappingtext) {\n sizeObject();\n }\n if (hasCaption) {\n sizeCaption();\n }\n };\n\n const load = () => {\n const checkSizing = () => {\n const caption = objectContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.opacity = `1`;\n }\n };\n\n image?.addEventListener('load', () => {\n eventResize();\n\n setTimeout(() => {\n checkSizing();\n }, 100);\n\n setTimeout(() => {\n checkSizing();\n }, 500);\n });\n };\n\n objectContainer.classList.add(ELEMENT_OBJECT_WRAPPED_CONTAINER);\n\n if (image) {\n objectContainer.appendChild(\n LayoutImage.CreateElement({\n image,\n showCaption: true,\n }),\n );\n }\n\n if (hasCaption) {\n const captionElement = CaptionContainer.CreateElement({\n caption,\n isThemeDark,\n });\n captionElement.style.opacity = `0`;\n objectContainer.appendChild(captionElement);\n }\n\n if (objectContainer.children.length > 0) {\n elementContainer.appendChild(objectContainer);\n }\n\n if (hasWrappingtext) {\n elementContainer.appendChild(wrappingText);\n elementContainer.setAttribute(ATTRIBUTE_IS_WRAPPING_TEXT, '');\n setTimeout(() => {\n sizeObject();\n }, 100);\n }\n\n elementContainer.classList.add(ELEMENT_MEDIA_INLINE_CONTAINER);\n\n window.addEventListener(\n 'resize',\n debounce(() => {\n eventResize();\n }, 20),\n );\n\n setTimeout(() => {\n eventResize();\n }, 200);\n\n return {\n element: elementContainer,\n events: {\n load,\n },\n styles: STYLES_MEDIA_INLINE_WRAPPED_ELEMENT,\n };\n })();\n\nexport default CreateMediaInlineWrapped;\n"],"names":["caption","objectContainer"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const token = require("@universityofmaryland/web-styles-library/token");
2
+ const token = require("@universityofmaryland/web-token-library");
3
3
  const animation = require("@universityofmaryland/web-styles-library/animation");
4
4
  const styles = require("@universityofmaryland/web-utilities-library/styles");
5
5
  const animation$1 = require("@universityofmaryland/web-utilities-library/animation");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../source/composite/navigation/elements/breadcrumb/index.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\nimport * as animation from '@universityofmaryland/web-styles-library/animation';\nimport { jssToCSS } from '@universityofmaryland/web-utilities-library/styles';\nimport { wrapLinkForAnimation } from '@universityofmaryland/web-utilities-library/animation';\n\nexport interface BreadcrumbProps {\n isThemeDark?: boolean;\n linkListSlot: HTMLElement;\n}\n\nconst Attributes = {\n names: {\n theme: 'theme',\n },\n values: {\n theme: {\n DARK: 'dark',\n },\n },\n};\n\nconst ELEMENT_NAME = 'umd-element-breadcrumb';\n\nconst IS_THEME_DARK = `[${Attributes.names.theme}=${Attributes.values.theme.DARK}]`;\n\nconst ELEMENT_CONTAINER = 'breadcrumb-container';\nconst ELEMENT_PATH = 'breadcrumb-path';\n\nconst OVERWRITE_THEME_DARK_CONTAINER = `.${ELEMENT_CONTAINER}${IS_THEME_DARK}`;\nconst OVERWRITE_THEME_DARK_PATH = `${OVERWRITE_THEME_DARK_CONTAINER} .${ELEMENT_PATH}`;\n\nconst OverwriteThemeStyles = `\n ${OVERWRITE_THEME_DARK_CONTAINER} * {\n color: ${token.color.white};\n }\n\n ${OVERWRITE_THEME_DARK_PATH} + *::before {\n background-color: ${token.color.gray.dark};\n }\n \n ${jssToCSS({\n styleObj: {\n [`${OVERWRITE_THEME_DARK_PATH}:not(:last-child)`]:\n animation.line.slideUnderGrayDarkRed,\n },\n })}\n`;\n\nconst PathStyles = `\n .${ELEMENT_PATH}::-webkit-scrollbar { \n display: none;\n }\n\n .${ELEMENT_PATH}:last-child {\n color: ${token.color.black};\n }\n\n .${ELEMENT_PATH}:not(:last-child) {\n margin-right: 14px;\n }\n\n .${ELEMENT_PATH} + *::before {\n content: '';\n display: inline-block;\n height: 14px;\n background-color: ${token.color.gray.dark};\n left: -8px;\n position: absolute;\n top: 50%;\n transform: translateY(-50%) rotate(15deg);\n width: 1px;\n }\n`;\n\nconst ContainerStyles = `\n .${ELEMENT_CONTAINER} {\n display: flex;\n padding-right: 24px;\n font-size: 12px;\n padding-bottom: 1px;\n overflow-x: auto;\n scrollbar-width: none;\n white-space: nowrap;\n mask-image: linear-gradient(90deg, ${\n token.color.white\n } calc(100% - 24px), transparent);\n }\n\n .${ELEMENT_CONTAINER} * {\n color: ${token.color.gray.mediumAA};\n position: relative;\n }\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_CONTAINER} a:not(:last-child)`]:\n animation.line.slideUnderGrayRed,\n },\n })}\n`;\n\nexport default ({ isThemeDark, linkListSlot }: BreadcrumbProps) => {\n const links = linkListSlot.querySelectorAll('a') as NodeListOf<HTMLElement>;\n let styles = `\n ${ContainerStyles}\n ${PathStyles}\n ${OverwriteThemeStyles}\n `;\n\n if (isThemeDark)\n linkListSlot.setAttribute(\n Attributes.names.theme,\n Attributes.values.theme.DARK,\n );\n linkListSlot.classList.add(ELEMENT_CONTAINER);\n\n for (const linkElement of links) {\n linkElement.classList.add(ELEMENT_PATH);\n wrapLinkForAnimation({\n element: linkElement,\n });\n }\n\n return { element: linkListSlot, styles };\n};\n"],"names":["token","jssToCSS","animation","styles","wrapLinkForAnimation"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAM,aAAa;AAAA,EACjB,OAAO;AAAA,IACL,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ;AAIA,MAAM,gBAAgB,IAAI,WAAW,MAAM,KAAK,IAAI,WAAW,OAAO,MAAM,IAAI;AAEhF,MAAM,oBAAoB;AAC1B,MAAM,eAAe;AAErB,MAAM,iCAAiC,IAAI,iBAAiB,GAAG,aAAa;AAC5E,MAAM,4BAA4B,GAAG,8BAA8B,KAAK,YAAY;AAEpF,MAAM,uBAAuB;AAAA,IACzB,8BAA8B;AAAA,aACrBA,iBAAM,MAAM,KAAK;AAAA;AAAA;AAAA,IAG1B,yBAAyB;AAAA,wBACLA,iBAAM,MAAM,KAAK,IAAI;AAAA;AAAA;AAAA,IAGzCC,gBAAS;AAAA,EACT,UAAU;AAAA,IACR,CAAC,GAAG,yBAAyB,mBAAmB,GAC9CC,qBAAU,KAAK;AAAA,EAAA;AAErB,CAAC,CAAC;AAAA;AAGJ,MAAM,aAAa;AAAA,KACd,YAAY;AAAA;AAAA;AAAA;AAAA,KAIZ,YAAY;AAAA,aACJF,iBAAM,MAAM,KAAK;AAAA;AAAA;AAAA,KAGzB,YAAY;AAAA;AAAA;AAAA;AAAA,KAIZ,YAAY;AAAA;AAAA;AAAA;AAAA,wBAIOA,iBAAM,MAAM,KAAK,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAS7C,MAAM,kBAAkB;AAAA,KACnB,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yCAShBA,iBAAM,MAAM,KACd;AAAA;AAAA;AAAA,KAGC,iBAAiB;AAAA,aACTA,iBAAM,MAAM,KAAK,QAAQ;AAAA;AAAA;AAAA;AAAA,IAIlCC,gBAAS;AAAA,EACT,UAAU;AAAA,IACR,CAAC,IAAI,iBAAiB,qBAAqB,GACzCC,qBAAU,KAAK;AAAA,EAAA;AAErB,CAAC,CAAC;AAAA;AAGJ,MAAA,QAAe,CAAC,EAAE,aAAa,mBAAoC;AACjE,QAAM,QAAQ,aAAa,iBAAiB,GAAG;AAC/C,MAAIC,UAAS;AAAA,MACT,eAAe;AAAA,MACf,UAAU;AAAA,MACV,oBAAoB;AAAA;AAGxB,MAAI;AACF,iBAAa;AAAA,MACX,WAAW,MAAM;AAAA,MACjB,WAAW,OAAO,MAAM;AAAA,IAAA;AAE5B,eAAa,UAAU,IAAI,iBAAiB;AAE5C,aAAW,eAAe,OAAO;AAC/B,gBAAY,UAAU,IAAI,YAAY;AACtCC,qCAAqB;AAAA,MACnB,SAAS;AAAA,IAAA,CACV;AAAA,EACH;AAEA,SAAO,EAAE,SAAS,cAAc,QAAAD,QAAA;AAClC;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../source/composite/navigation/elements/breadcrumb/index.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport * as animation from '@universityofmaryland/web-styles-library/animation';\nimport { jssToCSS } from '@universityofmaryland/web-utilities-library/styles';\nimport { wrapLinkForAnimation } from '@universityofmaryland/web-utilities-library/animation';\n\nexport interface BreadcrumbProps {\n isThemeDark?: boolean;\n linkListSlot: HTMLElement;\n}\n\nconst Attributes = {\n names: {\n theme: 'theme',\n },\n values: {\n theme: {\n DARK: 'dark',\n },\n },\n};\n\nconst ELEMENT_NAME = 'umd-element-breadcrumb';\n\nconst IS_THEME_DARK = `[${Attributes.names.theme}=${Attributes.values.theme.DARK}]`;\n\nconst ELEMENT_CONTAINER = 'breadcrumb-container';\nconst ELEMENT_PATH = 'breadcrumb-path';\n\nconst OVERWRITE_THEME_DARK_CONTAINER = `.${ELEMENT_CONTAINER}${IS_THEME_DARK}`;\nconst OVERWRITE_THEME_DARK_PATH = `${OVERWRITE_THEME_DARK_CONTAINER} .${ELEMENT_PATH}`;\n\nconst OverwriteThemeStyles = `\n ${OVERWRITE_THEME_DARK_CONTAINER} * {\n color: ${token.color.white};\n }\n\n ${OVERWRITE_THEME_DARK_PATH} + *::before {\n background-color: ${token.color.gray.dark};\n }\n \n ${jssToCSS({\n styleObj: {\n [`${OVERWRITE_THEME_DARK_PATH}:not(:last-child)`]:\n animation.line.slideUnderGrayDarkRed,\n },\n })}\n`;\n\nconst PathStyles = `\n .${ELEMENT_PATH}::-webkit-scrollbar { \n display: none;\n }\n\n .${ELEMENT_PATH}:last-child {\n color: ${token.color.black};\n }\n\n .${ELEMENT_PATH}:not(:last-child) {\n margin-right: 14px;\n }\n\n .${ELEMENT_PATH} + *::before {\n content: '';\n display: inline-block;\n height: 14px;\n background-color: ${token.color.gray.dark};\n left: -8px;\n position: absolute;\n top: 50%;\n transform: translateY(-50%) rotate(15deg);\n width: 1px;\n }\n`;\n\nconst ContainerStyles = `\n .${ELEMENT_CONTAINER} {\n display: flex;\n padding-right: 24px;\n font-size: 12px;\n padding-bottom: 1px;\n overflow-x: auto;\n scrollbar-width: none;\n white-space: nowrap;\n mask-image: linear-gradient(90deg, ${\n token.color.white\n } calc(100% - 24px), transparent);\n }\n\n .${ELEMENT_CONTAINER} * {\n color: ${token.color.gray.mediumAA};\n position: relative;\n }\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_CONTAINER} a:not(:last-child)`]:\n animation.line.slideUnderGrayRed,\n },\n })}\n`;\n\nexport default ({ isThemeDark, linkListSlot }: BreadcrumbProps) => {\n const links = linkListSlot.querySelectorAll('a') as NodeListOf<HTMLElement>;\n let styles = `\n ${ContainerStyles}\n ${PathStyles}\n ${OverwriteThemeStyles}\n `;\n\n if (isThemeDark)\n linkListSlot.setAttribute(\n Attributes.names.theme,\n Attributes.values.theme.DARK,\n );\n linkListSlot.classList.add(ELEMENT_CONTAINER);\n\n for (const linkElement of links) {\n linkElement.classList.add(ELEMENT_PATH);\n wrapLinkForAnimation({\n element: linkElement,\n });\n }\n\n return { element: linkListSlot, styles };\n};\n"],"names":["token","jssToCSS","animation","styles","wrapLinkForAnimation"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAM,aAAa;AAAA,EACjB,OAAO;AAAA,IACL,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ;AAIA,MAAM,gBAAgB,IAAI,WAAW,MAAM,KAAK,IAAI,WAAW,OAAO,MAAM,IAAI;AAEhF,MAAM,oBAAoB;AAC1B,MAAM,eAAe;AAErB,MAAM,iCAAiC,IAAI,iBAAiB,GAAG,aAAa;AAC5E,MAAM,4BAA4B,GAAG,8BAA8B,KAAK,YAAY;AAEpF,MAAM,uBAAuB;AAAA,IACzB,8BAA8B;AAAA,aACrBA,iBAAM,MAAM,KAAK;AAAA;AAAA;AAAA,IAG1B,yBAAyB;AAAA,wBACLA,iBAAM,MAAM,KAAK,IAAI;AAAA;AAAA;AAAA,IAGzCC,gBAAS;AAAA,EACT,UAAU;AAAA,IACR,CAAC,GAAG,yBAAyB,mBAAmB,GAC9CC,qBAAU,KAAK;AAAA,EAAA;AAErB,CAAC,CAAC;AAAA;AAGJ,MAAM,aAAa;AAAA,KACd,YAAY;AAAA;AAAA;AAAA;AAAA,KAIZ,YAAY;AAAA,aACJF,iBAAM,MAAM,KAAK;AAAA;AAAA;AAAA,KAGzB,YAAY;AAAA;AAAA;AAAA;AAAA,KAIZ,YAAY;AAAA;AAAA;AAAA;AAAA,wBAIOA,iBAAM,MAAM,KAAK,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAS7C,MAAM,kBAAkB;AAAA,KACnB,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yCAShBA,iBAAM,MAAM,KACd;AAAA;AAAA;AAAA,KAGC,iBAAiB;AAAA,aACTA,iBAAM,MAAM,KAAK,QAAQ;AAAA;AAAA;AAAA;AAAA,IAIlCC,gBAAS;AAAA,EACT,UAAU;AAAA,IACR,CAAC,IAAI,iBAAiB,qBAAqB,GACzCC,qBAAU,KAAK;AAAA,EAAA;AAErB,CAAC,CAAC;AAAA;AAGJ,MAAA,QAAe,CAAC,EAAE,aAAa,mBAAoC;AACjE,QAAM,QAAQ,aAAa,iBAAiB,GAAG;AAC/C,MAAIC,UAAS;AAAA,MACT,eAAe;AAAA,MACf,UAAU;AAAA,MACV,oBAAoB;AAAA;AAGxB,MAAI;AACF,iBAAa;AAAA,MACX,WAAW,MAAM;AAAA,MACjB,WAAW,OAAO,MAAM;AAAA,IAAA;AAE5B,eAAa,UAAU,IAAI,iBAAiB;AAE5C,aAAW,eAAe,OAAO;AAC/B,gBAAY,UAAU,IAAI,YAAY;AACtCC,qCAAqB;AAAA,MACnB,SAAS;AAAA,IAAA,CACV;AAAA,EACH;AAEA,SAAO,EAAE,SAAS,cAAc,QAAAD,QAAA;AAClC;;"}
@@ -1,4 +1,4 @@
1
- import * as token from "@universityofmaryland/web-styles-library/token";
1
+ import * as token from "@universityofmaryland/web-token-library";
2
2
  import * as animation from "@universityofmaryland/web-styles-library/animation";
3
3
  import { jssToCSS } from "@universityofmaryland/web-utilities-library/styles";
4
4
  import { wrapLinkForAnimation } from "@universityofmaryland/web-utilities-library/animation";
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../source/composite/navigation/elements/breadcrumb/index.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\nimport * as animation from '@universityofmaryland/web-styles-library/animation';\nimport { jssToCSS } from '@universityofmaryland/web-utilities-library/styles';\nimport { wrapLinkForAnimation } from '@universityofmaryland/web-utilities-library/animation';\n\nexport interface BreadcrumbProps {\n isThemeDark?: boolean;\n linkListSlot: HTMLElement;\n}\n\nconst Attributes = {\n names: {\n theme: 'theme',\n },\n values: {\n theme: {\n DARK: 'dark',\n },\n },\n};\n\nconst ELEMENT_NAME = 'umd-element-breadcrumb';\n\nconst IS_THEME_DARK = `[${Attributes.names.theme}=${Attributes.values.theme.DARK}]`;\n\nconst ELEMENT_CONTAINER = 'breadcrumb-container';\nconst ELEMENT_PATH = 'breadcrumb-path';\n\nconst OVERWRITE_THEME_DARK_CONTAINER = `.${ELEMENT_CONTAINER}${IS_THEME_DARK}`;\nconst OVERWRITE_THEME_DARK_PATH = `${OVERWRITE_THEME_DARK_CONTAINER} .${ELEMENT_PATH}`;\n\nconst OverwriteThemeStyles = `\n ${OVERWRITE_THEME_DARK_CONTAINER} * {\n color: ${token.color.white};\n }\n\n ${OVERWRITE_THEME_DARK_PATH} + *::before {\n background-color: ${token.color.gray.dark};\n }\n \n ${jssToCSS({\n styleObj: {\n [`${OVERWRITE_THEME_DARK_PATH}:not(:last-child)`]:\n animation.line.slideUnderGrayDarkRed,\n },\n })}\n`;\n\nconst PathStyles = `\n .${ELEMENT_PATH}::-webkit-scrollbar { \n display: none;\n }\n\n .${ELEMENT_PATH}:last-child {\n color: ${token.color.black};\n }\n\n .${ELEMENT_PATH}:not(:last-child) {\n margin-right: 14px;\n }\n\n .${ELEMENT_PATH} + *::before {\n content: '';\n display: inline-block;\n height: 14px;\n background-color: ${token.color.gray.dark};\n left: -8px;\n position: absolute;\n top: 50%;\n transform: translateY(-50%) rotate(15deg);\n width: 1px;\n }\n`;\n\nconst ContainerStyles = `\n .${ELEMENT_CONTAINER} {\n display: flex;\n padding-right: 24px;\n font-size: 12px;\n padding-bottom: 1px;\n overflow-x: auto;\n scrollbar-width: none;\n white-space: nowrap;\n mask-image: linear-gradient(90deg, ${\n token.color.white\n } calc(100% - 24px), transparent);\n }\n\n .${ELEMENT_CONTAINER} * {\n color: ${token.color.gray.mediumAA};\n position: relative;\n }\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_CONTAINER} a:not(:last-child)`]:\n animation.line.slideUnderGrayRed,\n },\n })}\n`;\n\nexport default ({ isThemeDark, linkListSlot }: BreadcrumbProps) => {\n const links = linkListSlot.querySelectorAll('a') as NodeListOf<HTMLElement>;\n let styles = `\n ${ContainerStyles}\n ${PathStyles}\n ${OverwriteThemeStyles}\n `;\n\n if (isThemeDark)\n linkListSlot.setAttribute(\n Attributes.names.theme,\n Attributes.values.theme.DARK,\n );\n linkListSlot.classList.add(ELEMENT_CONTAINER);\n\n for (const linkElement of links) {\n linkElement.classList.add(ELEMENT_PATH);\n wrapLinkForAnimation({\n element: linkElement,\n });\n }\n\n return { element: linkListSlot, styles };\n};\n"],"names":[],"mappings":";;;;AAUA,MAAM,aAAa;AAAA,EACjB,OAAO;AAAA,IACL,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ;AAIA,MAAM,gBAAgB,IAAI,WAAW,MAAM,KAAK,IAAI,WAAW,OAAO,MAAM,IAAI;AAEhF,MAAM,oBAAoB;AAC1B,MAAM,eAAe;AAErB,MAAM,iCAAiC,IAAI,iBAAiB,GAAG,aAAa;AAC5E,MAAM,4BAA4B,GAAG,8BAA8B,KAAK,YAAY;AAEpF,MAAM,uBAAuB;AAAA,IACzB,8BAA8B;AAAA,aACrB,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA,IAG1B,yBAAyB;AAAA,wBACL,MAAM,MAAM,KAAK,IAAI;AAAA;AAAA;AAAA,IAGzC,SAAS;AAAA,EACT,UAAU;AAAA,IACR,CAAC,GAAG,yBAAyB,mBAAmB,GAC9C,UAAU,KAAK;AAAA,EAAA;AAErB,CAAC,CAAC;AAAA;AAGJ,MAAM,aAAa;AAAA,KACd,YAAY;AAAA;AAAA;AAAA;AAAA,KAIZ,YAAY;AAAA,aACJ,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA,KAGzB,YAAY;AAAA;AAAA;AAAA;AAAA,KAIZ,YAAY;AAAA;AAAA;AAAA;AAAA,wBAIO,MAAM,MAAM,KAAK,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAS7C,MAAM,kBAAkB;AAAA,KACnB,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yCAShB,MAAM,MAAM,KACd;AAAA;AAAA;AAAA,KAGC,iBAAiB;AAAA,aACT,MAAM,MAAM,KAAK,QAAQ;AAAA;AAAA;AAAA;AAAA,IAIlC,SAAS;AAAA,EACT,UAAU;AAAA,IACR,CAAC,IAAI,iBAAiB,qBAAqB,GACzC,UAAU,KAAK;AAAA,EAAA;AAErB,CAAC,CAAC;AAAA;AAGJ,MAAA,QAAe,CAAC,EAAE,aAAa,mBAAoC;AACjE,QAAM,QAAQ,aAAa,iBAAiB,GAAG;AAC/C,MAAI,SAAS;AAAA,MACT,eAAe;AAAA,MACf,UAAU;AAAA,MACV,oBAAoB;AAAA;AAGxB,MAAI;AACF,iBAAa;AAAA,MACX,WAAW,MAAM;AAAA,MACjB,WAAW,OAAO,MAAM;AAAA,IAAA;AAE5B,eAAa,UAAU,IAAI,iBAAiB;AAE5C,aAAW,eAAe,OAAO;AAC/B,gBAAY,UAAU,IAAI,YAAY;AACtC,yBAAqB;AAAA,MACnB,SAAS;AAAA,IAAA,CACV;AAAA,EACH;AAEA,SAAO,EAAE,SAAS,cAAc,OAAA;AAClC;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../source/composite/navigation/elements/breadcrumb/index.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport * as animation from '@universityofmaryland/web-styles-library/animation';\nimport { jssToCSS } from '@universityofmaryland/web-utilities-library/styles';\nimport { wrapLinkForAnimation } from '@universityofmaryland/web-utilities-library/animation';\n\nexport interface BreadcrumbProps {\n isThemeDark?: boolean;\n linkListSlot: HTMLElement;\n}\n\nconst Attributes = {\n names: {\n theme: 'theme',\n },\n values: {\n theme: {\n DARK: 'dark',\n },\n },\n};\n\nconst ELEMENT_NAME = 'umd-element-breadcrumb';\n\nconst IS_THEME_DARK = `[${Attributes.names.theme}=${Attributes.values.theme.DARK}]`;\n\nconst ELEMENT_CONTAINER = 'breadcrumb-container';\nconst ELEMENT_PATH = 'breadcrumb-path';\n\nconst OVERWRITE_THEME_DARK_CONTAINER = `.${ELEMENT_CONTAINER}${IS_THEME_DARK}`;\nconst OVERWRITE_THEME_DARK_PATH = `${OVERWRITE_THEME_DARK_CONTAINER} .${ELEMENT_PATH}`;\n\nconst OverwriteThemeStyles = `\n ${OVERWRITE_THEME_DARK_CONTAINER} * {\n color: ${token.color.white};\n }\n\n ${OVERWRITE_THEME_DARK_PATH} + *::before {\n background-color: ${token.color.gray.dark};\n }\n \n ${jssToCSS({\n styleObj: {\n [`${OVERWRITE_THEME_DARK_PATH}:not(:last-child)`]:\n animation.line.slideUnderGrayDarkRed,\n },\n })}\n`;\n\nconst PathStyles = `\n .${ELEMENT_PATH}::-webkit-scrollbar { \n display: none;\n }\n\n .${ELEMENT_PATH}:last-child {\n color: ${token.color.black};\n }\n\n .${ELEMENT_PATH}:not(:last-child) {\n margin-right: 14px;\n }\n\n .${ELEMENT_PATH} + *::before {\n content: '';\n display: inline-block;\n height: 14px;\n background-color: ${token.color.gray.dark};\n left: -8px;\n position: absolute;\n top: 50%;\n transform: translateY(-50%) rotate(15deg);\n width: 1px;\n }\n`;\n\nconst ContainerStyles = `\n .${ELEMENT_CONTAINER} {\n display: flex;\n padding-right: 24px;\n font-size: 12px;\n padding-bottom: 1px;\n overflow-x: auto;\n scrollbar-width: none;\n white-space: nowrap;\n mask-image: linear-gradient(90deg, ${\n token.color.white\n } calc(100% - 24px), transparent);\n }\n\n .${ELEMENT_CONTAINER} * {\n color: ${token.color.gray.mediumAA};\n position: relative;\n }\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_CONTAINER} a:not(:last-child)`]:\n animation.line.slideUnderGrayRed,\n },\n })}\n`;\n\nexport default ({ isThemeDark, linkListSlot }: BreadcrumbProps) => {\n const links = linkListSlot.querySelectorAll('a') as NodeListOf<HTMLElement>;\n let styles = `\n ${ContainerStyles}\n ${PathStyles}\n ${OverwriteThemeStyles}\n `;\n\n if (isThemeDark)\n linkListSlot.setAttribute(\n Attributes.names.theme,\n Attributes.values.theme.DARK,\n );\n linkListSlot.classList.add(ELEMENT_CONTAINER);\n\n for (const linkElement of links) {\n linkElement.classList.add(ELEMENT_PATH);\n wrapLinkForAnimation({\n element: linkElement,\n });\n }\n\n return { element: linkListSlot, styles };\n};\n"],"names":[],"mappings":";;;;AAUA,MAAM,aAAa;AAAA,EACjB,OAAO;AAAA,IACL,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ;AAIA,MAAM,gBAAgB,IAAI,WAAW,MAAM,KAAK,IAAI,WAAW,OAAO,MAAM,IAAI;AAEhF,MAAM,oBAAoB;AAC1B,MAAM,eAAe;AAErB,MAAM,iCAAiC,IAAI,iBAAiB,GAAG,aAAa;AAC5E,MAAM,4BAA4B,GAAG,8BAA8B,KAAK,YAAY;AAEpF,MAAM,uBAAuB;AAAA,IACzB,8BAA8B;AAAA,aACrB,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA,IAG1B,yBAAyB;AAAA,wBACL,MAAM,MAAM,KAAK,IAAI;AAAA;AAAA;AAAA,IAGzC,SAAS;AAAA,EACT,UAAU;AAAA,IACR,CAAC,GAAG,yBAAyB,mBAAmB,GAC9C,UAAU,KAAK;AAAA,EAAA;AAErB,CAAC,CAAC;AAAA;AAGJ,MAAM,aAAa;AAAA,KACd,YAAY;AAAA;AAAA;AAAA;AAAA,KAIZ,YAAY;AAAA,aACJ,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA,KAGzB,YAAY;AAAA;AAAA;AAAA;AAAA,KAIZ,YAAY;AAAA;AAAA;AAAA;AAAA,wBAIO,MAAM,MAAM,KAAK,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAS7C,MAAM,kBAAkB;AAAA,KACnB,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yCAShB,MAAM,MAAM,KACd;AAAA;AAAA;AAAA,KAGC,iBAAiB;AAAA,aACT,MAAM,MAAM,KAAK,QAAQ;AAAA;AAAA;AAAA;AAAA,IAIlC,SAAS;AAAA,EACT,UAAU;AAAA,IACR,CAAC,IAAI,iBAAiB,qBAAqB,GACzC,UAAU,KAAK;AAAA,EAAA;AAErB,CAAC,CAAC;AAAA;AAGJ,MAAA,QAAe,CAAC,EAAE,aAAa,mBAAoC;AACjE,QAAM,QAAQ,aAAa,iBAAiB,GAAG;AAC/C,MAAI,SAAS;AAAA,MACT,eAAe;AAAA,MACf,UAAU;AAAA,MACV,oBAAoB;AAAA;AAGxB,MAAI;AACF,iBAAa;AAAA,MACX,WAAW,MAAM;AAAA,MACjB,WAAW,OAAO,MAAM;AAAA,IAAA;AAE5B,eAAa,UAAU,IAAI,iBAAiB;AAE5C,aAAW,eAAe,OAAO;AAC/B,gBAAY,UAAU,IAAI,YAAY;AACtC,yBAAqB;AAAA,MACnB,SAAS;AAAA,IAAA,CACV;AAAA,EACH;AAEA,SAAO,EAAE,SAAS,cAAc,OAAA;AAClC;"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const token = require("@universityofmaryland/web-styles-library/token");
2
+ const token = require("@universityofmaryland/web-token-library");
3
3
  const events = require("@universityofmaryland/web-utilities-library/events");
4
4
  const controls = require("@universityofmaryland/web-icons-library/controls");
5
5
  const index$1 = require("../slider/index.js");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../source/composite/navigation/elements/drawer/index.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\nimport { handleKeyboardNavigation } from '@universityofmaryland/web-utilities-library/events';\nimport { close_large as iconCloseLarge } from '@universityofmaryland/web-icons-library/controls';\nimport { TypeMenuDisplayButtonRequirements } from '../menu-button';\nimport NavDrawerSlider, { TypeNavSliderRequirements } from '../slider';\n\nexport type TypeNavDrawerRequirements = TypeNavSliderRequirements & {\n context?: HTMLElement;\n};\n\ntype TypeDrawerCloseButton = {\n eventClose: () => void;\n};\n\ntype CombinedNavDrawerProps = TypeNavDrawerRequirements &\n TypeDrawerCloseButton &\n TypeMenuDisplayButtonRequirements;\n\nexport type TypeDrawerProps = CombinedNavDrawerProps;\n\nconst ANIMATION_TIME = 300;\n\nconst ELEMENT_NAV_DRAWER_CONTAINER = 'nav-drawer-container';\nconst ELEMENT_NAV_DRAWER_OVERLAY = 'nav-drawer-overlay';\nconst ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER = 'nav-drawer-overlay-wrapper';\nconst ELEMENT_NAV_DRAWER_CLOSE_BUTTON = 'nav-drawer-close-button';\n\n// prettier-ignore\nconst DrawerButtonClose = `\n .${ELEMENT_NAV_DRAWER_CLOSE_BUTTON} {\n background-color: ${token.color.red};\n display: flex;\n align-items: center;\n justify-content: center;\n height: ${token.spacing['2xl']};\n width: ${token.spacing['2xl']};\n padding: 12px;\n transition: background .5s ease-in-out;\n order: 2;\n }\n\n .${ELEMENT_NAV_DRAWER_CLOSE_BUTTON}:hover,\n .${ELEMENT_NAV_DRAWER_CLOSE_BUTTON}:focus {\n background-color: ${token.color.redDark};\n }\n\n .${ELEMENT_NAV_DRAWER_CLOSE_BUTTON} svg {\n fill: ${token.color.white};\n }\n`;\n\n// prettier-ignore\nconst DrawerContainer = `\n .${ELEMENT_NAV_DRAWER_CONTAINER} {\n position: fixed;\n bottom: 0;\n left: 0;\n top: 0;\n display: none;\n z-index: 999999;\n }\n\n .${ELEMENT_NAV_DRAWER_OVERLAY} {\n position: fixed;\n top: 0;\n left: 0;\n height: 100vh;\n width: 100vw;\n background-color: rgba(0,0,0,0.5);\n transition: opacity ${ANIMATION_TIME}ms ease-in-out;\n cursor: pointer;\n opacity: 0;\n }\n\n .${ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER} {\n display: flex;\n height: 100%;\n transition: transform ${ANIMATION_TIME + 100}ms ease-in-out;\n transform: translateX(-100%);\n }\n\n .${ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER} > *:not(.${ELEMENT_NAV_DRAWER_CLOSE_BUTTON}) {\n height: 100% !important;\n }\n`;\n\nconst STYLES_NAV_DRAWER_ELEMENT = `\n ${NavDrawerSlider.Styles}\n ${DrawerButtonClose}\n ${DrawerContainer}\n`;\n\nconst CreateDrawerButton = (element: TypeDrawerCloseButton) => {\n const drawerCloseButton = document.createElement('button');\n\n drawerCloseButton.innerHTML = iconCloseLarge;\n drawerCloseButton.classList.add(ELEMENT_NAV_DRAWER_CLOSE_BUTTON);\n drawerCloseButton.setAttribute('aria-label', 'Close navigation drawer');\n drawerCloseButton.addEventListener('click', element.eventClose.bind(element));\n\n return drawerCloseButton;\n};\n\nconst CreateNavDrawerContainer = (props: TypeDrawerProps) => {\n const { eventClose } = props;\n const bodyOverlay = document.createElement('div');\n const bodyOverlayWrapper = document.createElement('div');\n const closeButton = CreateDrawerButton(props);\n const slider = NavDrawerSlider.CreateElement({\n ...props,\n displayType: 'drawer-nav',\n });\n\n bodyOverlayWrapper.classList.add(ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER);\n\n bodyOverlayWrapper.appendChild(closeButton);\n bodyOverlayWrapper.appendChild(slider.container);\n\n bodyOverlay.classList.add(ELEMENT_NAV_DRAWER_OVERLAY);\n bodyOverlay.addEventListener('click', eventClose.bind(props));\n bodyOverlay.appendChild(bodyOverlayWrapper);\n\n return bodyOverlay;\n};\n\nconst CreateNavDrawerElement = (props: TypeNavDrawerRequirements) =>\n (() => {\n const { context, primarySlideLinks } = props;\n const body = document.querySelector('body') as HTMLBodyElement;\n const elementContainer = document.createElement('div');\n\n if (!primarySlideLinks) return null;\n\n const eventClose = () => {\n const bodyOverlay = elementContainer.querySelector(\n `.${ELEMENT_NAV_DRAWER_OVERLAY}`,\n ) as HTMLDivElement;\n const bodyOverlayWrapper = bodyOverlay.querySelector(\n `.${ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER}`,\n ) as HTMLDivElement;\n const slider = bodyOverlay.querySelector(\n `.${NavDrawerSlider.Elements.slider}`,\n ) as HTMLDivElement;\n\n bodyOverlay.style.opacity = '0';\n bodyOverlayWrapper.style.transform = 'translateX(-100%)';\n\n setTimeout(() => {\n bodyOverlay.removeAttribute('style');\n bodyOverlayWrapper.removeAttribute('style');\n body.style.overflow = 'auto';\n elementContainer.style.display = 'none';\n }, ANIMATION_TIME + 100);\n\n if (slider) {\n slider.style.overflowY = `hidden`;\n }\n };\n\n const eventOpen = () => {\n const bodyOverlay = elementContainer.querySelector(\n `.${ELEMENT_NAV_DRAWER_OVERLAY}`,\n ) as HTMLDivElement;\n const bodyOverlayWrapper = bodyOverlay.querySelector(\n `.${ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER}`,\n ) as HTMLDivElement;\n const closeButton = bodyOverlayWrapper.querySelector(\n `.${ELEMENT_NAV_DRAWER_CLOSE_BUTTON}`,\n ) as HTMLButtonElement;\n const slider = bodyOverlayWrapper.querySelector(\n `.${NavDrawerSlider.Elements.slider}`,\n ) as HTMLDivElement;\n const activeSlide = bodyOverlayWrapper.querySelector(\n `.${NavDrawerSlider.Elements.slider} div[data-active]`,\n ) as HTMLDivElement;\n\n elementContainer.style.display = 'block';\n bodyOverlay.style.display = 'block';\n bodyOverlayWrapper.style.display = 'flex';\n\n setTimeout(() => {\n bodyOverlay.style.opacity = '1';\n bodyOverlayWrapper.style.transform = 'translateX(0)';\n body.style.overflow = 'hidden';\n closeButton.focus();\n\n handleKeyboardNavigation({\n element: elementContainer,\n action: () => eventClose(),\n shadowDomContext: context,\n });\n }, 100);\n\n setTimeout(() => {\n if (!activeSlide || !slider) return;\n if (activeSlide.offsetHeight > elementContainer.offsetHeight) {\n slider.style.overflowY = `scroll`;\n }\n }, 200);\n };\n\n const children = CreateNavDrawerContainer({\n ...props,\n eventOpen,\n eventClose,\n });\n\n elementContainer.classList.add(ELEMENT_NAV_DRAWER_CONTAINER);\n elementContainer.appendChild(children);\n\n return {\n element: elementContainer,\n events: {\n eventOpen,\n },\n };\n })();\n\nexport default {\n CreateElement: CreateNavDrawerElement,\n Styles: STYLES_NAV_DRAWER_ELEMENT,\n};\n"],"names":["token","NavDrawerSlider","iconCloseLarge","handleKeyboardNavigation"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../source/composite/navigation/elements/drawer/index.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport { handleKeyboardNavigation } from '@universityofmaryland/web-utilities-library/events';\nimport { close_large as iconCloseLarge } from '@universityofmaryland/web-icons-library/controls';\nimport { TypeMenuDisplayButtonRequirements } from '../menu-button';\nimport NavDrawerSlider, { TypeNavSliderRequirements } from '../slider';\n\nexport type TypeNavDrawerRequirements = TypeNavSliderRequirements & {\n context?: HTMLElement;\n};\n\ntype TypeDrawerCloseButton = {\n eventClose: () => void;\n};\n\ntype CombinedNavDrawerProps = TypeNavDrawerRequirements &\n TypeDrawerCloseButton &\n TypeMenuDisplayButtonRequirements;\n\nexport type TypeDrawerProps = CombinedNavDrawerProps;\n\nconst ANIMATION_TIME = 300;\n\nconst ELEMENT_NAV_DRAWER_CONTAINER = 'nav-drawer-container';\nconst ELEMENT_NAV_DRAWER_OVERLAY = 'nav-drawer-overlay';\nconst ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER = 'nav-drawer-overlay-wrapper';\nconst ELEMENT_NAV_DRAWER_CLOSE_BUTTON = 'nav-drawer-close-button';\n\n// prettier-ignore\nconst DrawerButtonClose = `\n .${ELEMENT_NAV_DRAWER_CLOSE_BUTTON} {\n background-color: ${token.color.red};\n display: flex;\n align-items: center;\n justify-content: center;\n height: ${token.spacing['2xl']};\n width: ${token.spacing['2xl']};\n padding: 12px;\n transition: background .5s ease-in-out;\n order: 2;\n }\n\n .${ELEMENT_NAV_DRAWER_CLOSE_BUTTON}:hover,\n .${ELEMENT_NAV_DRAWER_CLOSE_BUTTON}:focus {\n background-color: ${token.color.redDark};\n }\n\n .${ELEMENT_NAV_DRAWER_CLOSE_BUTTON} svg {\n fill: ${token.color.white};\n }\n`;\n\n// prettier-ignore\nconst DrawerContainer = `\n .${ELEMENT_NAV_DRAWER_CONTAINER} {\n position: fixed;\n bottom: 0;\n left: 0;\n top: 0;\n display: none;\n z-index: 999999;\n }\n\n .${ELEMENT_NAV_DRAWER_OVERLAY} {\n position: fixed;\n top: 0;\n left: 0;\n height: 100vh;\n width: 100vw;\n background-color: rgba(0,0,0,0.5);\n transition: opacity ${ANIMATION_TIME}ms ease-in-out;\n cursor: pointer;\n opacity: 0;\n }\n\n .${ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER} {\n display: flex;\n height: 100%;\n transition: transform ${ANIMATION_TIME + 100}ms ease-in-out;\n transform: translateX(-100%);\n }\n\n .${ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER} > *:not(.${ELEMENT_NAV_DRAWER_CLOSE_BUTTON}) {\n height: 100% !important;\n }\n`;\n\nconst STYLES_NAV_DRAWER_ELEMENT = `\n ${NavDrawerSlider.Styles}\n ${DrawerButtonClose}\n ${DrawerContainer}\n`;\n\nconst CreateDrawerButton = (element: TypeDrawerCloseButton) => {\n const drawerCloseButton = document.createElement('button');\n\n drawerCloseButton.innerHTML = iconCloseLarge;\n drawerCloseButton.classList.add(ELEMENT_NAV_DRAWER_CLOSE_BUTTON);\n drawerCloseButton.setAttribute('aria-label', 'Close navigation drawer');\n drawerCloseButton.addEventListener('click', element.eventClose.bind(element));\n\n return drawerCloseButton;\n};\n\nconst CreateNavDrawerContainer = (props: TypeDrawerProps) => {\n const { eventClose } = props;\n const bodyOverlay = document.createElement('div');\n const bodyOverlayWrapper = document.createElement('div');\n const closeButton = CreateDrawerButton(props);\n const slider = NavDrawerSlider.CreateElement({\n ...props,\n displayType: 'drawer-nav',\n });\n\n bodyOverlayWrapper.classList.add(ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER);\n\n bodyOverlayWrapper.appendChild(closeButton);\n bodyOverlayWrapper.appendChild(slider.container);\n\n bodyOverlay.classList.add(ELEMENT_NAV_DRAWER_OVERLAY);\n bodyOverlay.addEventListener('click', eventClose.bind(props));\n bodyOverlay.appendChild(bodyOverlayWrapper);\n\n return bodyOverlay;\n};\n\nconst CreateNavDrawerElement = (props: TypeNavDrawerRequirements) =>\n (() => {\n const { context, primarySlideLinks } = props;\n const body = document.querySelector('body') as HTMLBodyElement;\n const elementContainer = document.createElement('div');\n\n if (!primarySlideLinks) return null;\n\n const eventClose = () => {\n const bodyOverlay = elementContainer.querySelector(\n `.${ELEMENT_NAV_DRAWER_OVERLAY}`,\n ) as HTMLDivElement;\n const bodyOverlayWrapper = bodyOverlay.querySelector(\n `.${ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER}`,\n ) as HTMLDivElement;\n const slider = bodyOverlay.querySelector(\n `.${NavDrawerSlider.Elements.slider}`,\n ) as HTMLDivElement;\n\n bodyOverlay.style.opacity = '0';\n bodyOverlayWrapper.style.transform = 'translateX(-100%)';\n\n setTimeout(() => {\n bodyOverlay.removeAttribute('style');\n bodyOverlayWrapper.removeAttribute('style');\n body.style.overflow = 'auto';\n elementContainer.style.display = 'none';\n }, ANIMATION_TIME + 100);\n\n if (slider) {\n slider.style.overflowY = `hidden`;\n }\n };\n\n const eventOpen = () => {\n const bodyOverlay = elementContainer.querySelector(\n `.${ELEMENT_NAV_DRAWER_OVERLAY}`,\n ) as HTMLDivElement;\n const bodyOverlayWrapper = bodyOverlay.querySelector(\n `.${ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER}`,\n ) as HTMLDivElement;\n const closeButton = bodyOverlayWrapper.querySelector(\n `.${ELEMENT_NAV_DRAWER_CLOSE_BUTTON}`,\n ) as HTMLButtonElement;\n const slider = bodyOverlayWrapper.querySelector(\n `.${NavDrawerSlider.Elements.slider}`,\n ) as HTMLDivElement;\n const activeSlide = bodyOverlayWrapper.querySelector(\n `.${NavDrawerSlider.Elements.slider} div[data-active]`,\n ) as HTMLDivElement;\n\n elementContainer.style.display = 'block';\n bodyOverlay.style.display = 'block';\n bodyOverlayWrapper.style.display = 'flex';\n\n setTimeout(() => {\n bodyOverlay.style.opacity = '1';\n bodyOverlayWrapper.style.transform = 'translateX(0)';\n body.style.overflow = 'hidden';\n closeButton.focus();\n\n handleKeyboardNavigation({\n element: elementContainer,\n action: () => eventClose(),\n shadowDomContext: context,\n });\n }, 100);\n\n setTimeout(() => {\n if (!activeSlide || !slider) return;\n if (activeSlide.offsetHeight > elementContainer.offsetHeight) {\n slider.style.overflowY = `scroll`;\n }\n }, 200);\n };\n\n const children = CreateNavDrawerContainer({\n ...props,\n eventOpen,\n eventClose,\n });\n\n elementContainer.classList.add(ELEMENT_NAV_DRAWER_CONTAINER);\n elementContainer.appendChild(children);\n\n return {\n element: elementContainer,\n events: {\n eventOpen,\n },\n };\n })();\n\nexport default {\n CreateElement: CreateNavDrawerElement,\n Styles: STYLES_NAV_DRAWER_ELEMENT,\n};\n"],"names":["token","NavDrawerSlider","iconCloseLarge","handleKeyboardNavigation"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import * as token from "@universityofmaryland/web-styles-library/token";
1
+ import * as token from "@universityofmaryland/web-token-library";
2
2
  import { handleKeyboardNavigation } from "@universityofmaryland/web-utilities-library/events";
3
3
  import { close_large } from "@universityofmaryland/web-icons-library/controls";
4
4
  import NavDrawerSlider from "../slider/index.mjs";
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../source/composite/navigation/elements/drawer/index.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\nimport { handleKeyboardNavigation } from '@universityofmaryland/web-utilities-library/events';\nimport { close_large as iconCloseLarge } from '@universityofmaryland/web-icons-library/controls';\nimport { TypeMenuDisplayButtonRequirements } from '../menu-button';\nimport NavDrawerSlider, { TypeNavSliderRequirements } from '../slider';\n\nexport type TypeNavDrawerRequirements = TypeNavSliderRequirements & {\n context?: HTMLElement;\n};\n\ntype TypeDrawerCloseButton = {\n eventClose: () => void;\n};\n\ntype CombinedNavDrawerProps = TypeNavDrawerRequirements &\n TypeDrawerCloseButton &\n TypeMenuDisplayButtonRequirements;\n\nexport type TypeDrawerProps = CombinedNavDrawerProps;\n\nconst ANIMATION_TIME = 300;\n\nconst ELEMENT_NAV_DRAWER_CONTAINER = 'nav-drawer-container';\nconst ELEMENT_NAV_DRAWER_OVERLAY = 'nav-drawer-overlay';\nconst ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER = 'nav-drawer-overlay-wrapper';\nconst ELEMENT_NAV_DRAWER_CLOSE_BUTTON = 'nav-drawer-close-button';\n\n// prettier-ignore\nconst DrawerButtonClose = `\n .${ELEMENT_NAV_DRAWER_CLOSE_BUTTON} {\n background-color: ${token.color.red};\n display: flex;\n align-items: center;\n justify-content: center;\n height: ${token.spacing['2xl']};\n width: ${token.spacing['2xl']};\n padding: 12px;\n transition: background .5s ease-in-out;\n order: 2;\n }\n\n .${ELEMENT_NAV_DRAWER_CLOSE_BUTTON}:hover,\n .${ELEMENT_NAV_DRAWER_CLOSE_BUTTON}:focus {\n background-color: ${token.color.redDark};\n }\n\n .${ELEMENT_NAV_DRAWER_CLOSE_BUTTON} svg {\n fill: ${token.color.white};\n }\n`;\n\n// prettier-ignore\nconst DrawerContainer = `\n .${ELEMENT_NAV_DRAWER_CONTAINER} {\n position: fixed;\n bottom: 0;\n left: 0;\n top: 0;\n display: none;\n z-index: 999999;\n }\n\n .${ELEMENT_NAV_DRAWER_OVERLAY} {\n position: fixed;\n top: 0;\n left: 0;\n height: 100vh;\n width: 100vw;\n background-color: rgba(0,0,0,0.5);\n transition: opacity ${ANIMATION_TIME}ms ease-in-out;\n cursor: pointer;\n opacity: 0;\n }\n\n .${ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER} {\n display: flex;\n height: 100%;\n transition: transform ${ANIMATION_TIME + 100}ms ease-in-out;\n transform: translateX(-100%);\n }\n\n .${ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER} > *:not(.${ELEMENT_NAV_DRAWER_CLOSE_BUTTON}) {\n height: 100% !important;\n }\n`;\n\nconst STYLES_NAV_DRAWER_ELEMENT = `\n ${NavDrawerSlider.Styles}\n ${DrawerButtonClose}\n ${DrawerContainer}\n`;\n\nconst CreateDrawerButton = (element: TypeDrawerCloseButton) => {\n const drawerCloseButton = document.createElement('button');\n\n drawerCloseButton.innerHTML = iconCloseLarge;\n drawerCloseButton.classList.add(ELEMENT_NAV_DRAWER_CLOSE_BUTTON);\n drawerCloseButton.setAttribute('aria-label', 'Close navigation drawer');\n drawerCloseButton.addEventListener('click', element.eventClose.bind(element));\n\n return drawerCloseButton;\n};\n\nconst CreateNavDrawerContainer = (props: TypeDrawerProps) => {\n const { eventClose } = props;\n const bodyOverlay = document.createElement('div');\n const bodyOverlayWrapper = document.createElement('div');\n const closeButton = CreateDrawerButton(props);\n const slider = NavDrawerSlider.CreateElement({\n ...props,\n displayType: 'drawer-nav',\n });\n\n bodyOverlayWrapper.classList.add(ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER);\n\n bodyOverlayWrapper.appendChild(closeButton);\n bodyOverlayWrapper.appendChild(slider.container);\n\n bodyOverlay.classList.add(ELEMENT_NAV_DRAWER_OVERLAY);\n bodyOverlay.addEventListener('click', eventClose.bind(props));\n bodyOverlay.appendChild(bodyOverlayWrapper);\n\n return bodyOverlay;\n};\n\nconst CreateNavDrawerElement = (props: TypeNavDrawerRequirements) =>\n (() => {\n const { context, primarySlideLinks } = props;\n const body = document.querySelector('body') as HTMLBodyElement;\n const elementContainer = document.createElement('div');\n\n if (!primarySlideLinks) return null;\n\n const eventClose = () => {\n const bodyOverlay = elementContainer.querySelector(\n `.${ELEMENT_NAV_DRAWER_OVERLAY}`,\n ) as HTMLDivElement;\n const bodyOverlayWrapper = bodyOverlay.querySelector(\n `.${ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER}`,\n ) as HTMLDivElement;\n const slider = bodyOverlay.querySelector(\n `.${NavDrawerSlider.Elements.slider}`,\n ) as HTMLDivElement;\n\n bodyOverlay.style.opacity = '0';\n bodyOverlayWrapper.style.transform = 'translateX(-100%)';\n\n setTimeout(() => {\n bodyOverlay.removeAttribute('style');\n bodyOverlayWrapper.removeAttribute('style');\n body.style.overflow = 'auto';\n elementContainer.style.display = 'none';\n }, ANIMATION_TIME + 100);\n\n if (slider) {\n slider.style.overflowY = `hidden`;\n }\n };\n\n const eventOpen = () => {\n const bodyOverlay = elementContainer.querySelector(\n `.${ELEMENT_NAV_DRAWER_OVERLAY}`,\n ) as HTMLDivElement;\n const bodyOverlayWrapper = bodyOverlay.querySelector(\n `.${ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER}`,\n ) as HTMLDivElement;\n const closeButton = bodyOverlayWrapper.querySelector(\n `.${ELEMENT_NAV_DRAWER_CLOSE_BUTTON}`,\n ) as HTMLButtonElement;\n const slider = bodyOverlayWrapper.querySelector(\n `.${NavDrawerSlider.Elements.slider}`,\n ) as HTMLDivElement;\n const activeSlide = bodyOverlayWrapper.querySelector(\n `.${NavDrawerSlider.Elements.slider} div[data-active]`,\n ) as HTMLDivElement;\n\n elementContainer.style.display = 'block';\n bodyOverlay.style.display = 'block';\n bodyOverlayWrapper.style.display = 'flex';\n\n setTimeout(() => {\n bodyOverlay.style.opacity = '1';\n bodyOverlayWrapper.style.transform = 'translateX(0)';\n body.style.overflow = 'hidden';\n closeButton.focus();\n\n handleKeyboardNavigation({\n element: elementContainer,\n action: () => eventClose(),\n shadowDomContext: context,\n });\n }, 100);\n\n setTimeout(() => {\n if (!activeSlide || !slider) return;\n if (activeSlide.offsetHeight > elementContainer.offsetHeight) {\n slider.style.overflowY = `scroll`;\n }\n }, 200);\n };\n\n const children = CreateNavDrawerContainer({\n ...props,\n eventOpen,\n eventClose,\n });\n\n elementContainer.classList.add(ELEMENT_NAV_DRAWER_CONTAINER);\n elementContainer.appendChild(children);\n\n return {\n element: elementContainer,\n events: {\n eventOpen,\n },\n };\n })();\n\nexport default {\n CreateElement: CreateNavDrawerElement,\n Styles: STYLES_NAV_DRAWER_ELEMENT,\n};\n"],"names":["iconCloseLarge"],"mappings":";;;;AAoBA,MAAM,iBAAiB;AAEvB,MAAM,+BAA+B;AACrC,MAAM,6BAA6B;AACnC,MAAM,qCAAqC;AAC3C,MAAM,kCAAkC;AAGxC,MAAM,oBAAoB;AAAA,KACrB,+BAA+B;AAAA,wBACZ,MAAM,MAAM,GAAG;AAAA;AAAA;AAAA;AAAA,cAIzB,MAAM,QAAQ,KAAK,CAAC;AAAA,aACrB,MAAM,QAAQ,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAM5B,+BAA+B;AAAA,KAC/B,+BAA+B;AAAA,wBACZ,MAAM,MAAM,OAAO;AAAA;AAAA;AAAA,KAGtC,+BAA+B;AAAA,YACxB,MAAM,MAAM,KAAK;AAAA;AAAA;AAK7B,MAAM,kBAAkB;AAAA,KACnB,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAS5B,0BAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAOL,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,KAKnC,kCAAkC;AAAA;AAAA;AAAA,4BAGX,iBAAiB,GAAG;AAAA;AAAA;AAAA;AAAA,KAI3C,kCAAkC,aAAa,+BAA+B;AAAA;AAAA;AAAA;AAKnF,MAAM,4BAA4B;AAAA,IAC9B,gBAAgB,MAAM;AAAA,IACtB,iBAAiB;AAAA,IACjB,eAAe;AAAA;AAGnB,MAAM,qBAAqB,CAAC,YAAmC;AAC7D,QAAM,oBAAoB,SAAS,cAAc,QAAQ;AAEzD,oBAAkB,YAAYA;AAC9B,oBAAkB,UAAU,IAAI,+BAA+B;AAC/D,oBAAkB,aAAa,cAAc,yBAAyB;AACtE,oBAAkB,iBAAiB,SAAS,QAAQ,WAAW,KAAK,OAAO,CAAC;AAE5E,SAAO;AACT;AAEA,MAAM,2BAA2B,CAAC,UAA2B;AAC3D,QAAM,EAAE,eAAe;AACvB,QAAM,cAAc,SAAS,cAAc,KAAK;AAChD,QAAM,qBAAqB,SAAS,cAAc,KAAK;AACvD,QAAM,cAAc,mBAAmB,KAAK;AAC5C,QAAM,SAAS,gBAAgB,cAAc;AAAA,IAC3C,GAAG;AAAA,IACH,aAAa;AAAA,EAAA,CACd;AAED,qBAAmB,UAAU,IAAI,kCAAkC;AAEnE,qBAAmB,YAAY,WAAW;AAC1C,qBAAmB,YAAY,OAAO,SAAS;AAE/C,cAAY,UAAU,IAAI,0BAA0B;AACpD,cAAY,iBAAiB,SAAS,WAAW,KAAK,KAAK,CAAC;AAC5D,cAAY,YAAY,kBAAkB;AAE1C,SAAO;AACT;AAEA,MAAM,yBAAyB,CAAC,WAC7B,MAAM;AACL,QAAM,EAAE,SAAS,kBAAA,IAAsB;AACvC,QAAM,OAAO,SAAS,cAAc,MAAM;AAC1C,QAAM,mBAAmB,SAAS,cAAc,KAAK;AAErD,MAAI,CAAC,kBAAmB,QAAO;AAE/B,QAAM,aAAa,MAAM;AACvB,UAAM,cAAc,iBAAiB;AAAA,MACnC,IAAI,0BAA0B;AAAA,IAAA;AAEhC,UAAM,qBAAqB,YAAY;AAAA,MACrC,IAAI,kCAAkC;AAAA,IAAA;AAExC,UAAM,SAAS,YAAY;AAAA,MACzB,IAAI,gBAAgB,SAAS,MAAM;AAAA,IAAA;AAGrC,gBAAY,MAAM,UAAU;AAC5B,uBAAmB,MAAM,YAAY;AAErC,eAAW,MAAM;AACf,kBAAY,gBAAgB,OAAO;AACnC,yBAAmB,gBAAgB,OAAO;AAC1C,WAAK,MAAM,WAAW;AACtB,uBAAiB,MAAM,UAAU;AAAA,IACnC,GAAG,iBAAiB,GAAG;AAEvB,QAAI,QAAQ;AACV,aAAO,MAAM,YAAY;AAAA,IAC3B;AAAA,EACF;AAEA,QAAM,YAAY,MAAM;AACtB,UAAM,cAAc,iBAAiB;AAAA,MACnC,IAAI,0BAA0B;AAAA,IAAA;AAEhC,UAAM,qBAAqB,YAAY;AAAA,MACrC,IAAI,kCAAkC;AAAA,IAAA;AAExC,UAAM,cAAc,mBAAmB;AAAA,MACrC,IAAI,+BAA+B;AAAA,IAAA;AAErC,UAAM,SAAS,mBAAmB;AAAA,MAChC,IAAI,gBAAgB,SAAS,MAAM;AAAA,IAAA;AAErC,UAAM,cAAc,mBAAmB;AAAA,MACrC,IAAI,gBAAgB,SAAS,MAAM;AAAA,IAAA;AAGrC,qBAAiB,MAAM,UAAU;AACjC,gBAAY,MAAM,UAAU;AAC5B,uBAAmB,MAAM,UAAU;AAEnC,eAAW,MAAM;AACf,kBAAY,MAAM,UAAU;AAC5B,yBAAmB,MAAM,YAAY;AACrC,WAAK,MAAM,WAAW;AACtB,kBAAY,MAAA;AAEZ,+BAAyB;AAAA,QACvB,SAAS;AAAA,QACT,QAAQ,MAAM,WAAA;AAAA,QACd,kBAAkB;AAAA,MAAA,CACnB;AAAA,IACH,GAAG,GAAG;AAEN,eAAW,MAAM;AACf,UAAI,CAAC,eAAe,CAAC,OAAQ;AAC7B,UAAI,YAAY,eAAe,iBAAiB,cAAc;AAC5D,eAAO,MAAM,YAAY;AAAA,MAC3B;AAAA,IACF,GAAG,GAAG;AAAA,EACR;AAEA,QAAM,WAAW,yBAAyB;AAAA,IACxC,GAAG;AAAA,IACH;AAAA,IACA;AAAA,EAAA,CACD;AAED,mBAAiB,UAAU,IAAI,4BAA4B;AAC3D,mBAAiB,YAAY,QAAQ;AAErC,SAAO;AAAA,IACL,SAAS;AAAA,IACT,QAAQ;AAAA,MACN;AAAA,IAAA;AAAA,EACF;AAEJ,GAAA;AAEF,MAAA,QAAe;AAAA,EACb,eAAe;AAAA,EACf,QAAQ;AACV;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../source/composite/navigation/elements/drawer/index.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport { handleKeyboardNavigation } from '@universityofmaryland/web-utilities-library/events';\nimport { close_large as iconCloseLarge } from '@universityofmaryland/web-icons-library/controls';\nimport { TypeMenuDisplayButtonRequirements } from '../menu-button';\nimport NavDrawerSlider, { TypeNavSliderRequirements } from '../slider';\n\nexport type TypeNavDrawerRequirements = TypeNavSliderRequirements & {\n context?: HTMLElement;\n};\n\ntype TypeDrawerCloseButton = {\n eventClose: () => void;\n};\n\ntype CombinedNavDrawerProps = TypeNavDrawerRequirements &\n TypeDrawerCloseButton &\n TypeMenuDisplayButtonRequirements;\n\nexport type TypeDrawerProps = CombinedNavDrawerProps;\n\nconst ANIMATION_TIME = 300;\n\nconst ELEMENT_NAV_DRAWER_CONTAINER = 'nav-drawer-container';\nconst ELEMENT_NAV_DRAWER_OVERLAY = 'nav-drawer-overlay';\nconst ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER = 'nav-drawer-overlay-wrapper';\nconst ELEMENT_NAV_DRAWER_CLOSE_BUTTON = 'nav-drawer-close-button';\n\n// prettier-ignore\nconst DrawerButtonClose = `\n .${ELEMENT_NAV_DRAWER_CLOSE_BUTTON} {\n background-color: ${token.color.red};\n display: flex;\n align-items: center;\n justify-content: center;\n height: ${token.spacing['2xl']};\n width: ${token.spacing['2xl']};\n padding: 12px;\n transition: background .5s ease-in-out;\n order: 2;\n }\n\n .${ELEMENT_NAV_DRAWER_CLOSE_BUTTON}:hover,\n .${ELEMENT_NAV_DRAWER_CLOSE_BUTTON}:focus {\n background-color: ${token.color.redDark};\n }\n\n .${ELEMENT_NAV_DRAWER_CLOSE_BUTTON} svg {\n fill: ${token.color.white};\n }\n`;\n\n// prettier-ignore\nconst DrawerContainer = `\n .${ELEMENT_NAV_DRAWER_CONTAINER} {\n position: fixed;\n bottom: 0;\n left: 0;\n top: 0;\n display: none;\n z-index: 999999;\n }\n\n .${ELEMENT_NAV_DRAWER_OVERLAY} {\n position: fixed;\n top: 0;\n left: 0;\n height: 100vh;\n width: 100vw;\n background-color: rgba(0,0,0,0.5);\n transition: opacity ${ANIMATION_TIME}ms ease-in-out;\n cursor: pointer;\n opacity: 0;\n }\n\n .${ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER} {\n display: flex;\n height: 100%;\n transition: transform ${ANIMATION_TIME + 100}ms ease-in-out;\n transform: translateX(-100%);\n }\n\n .${ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER} > *:not(.${ELEMENT_NAV_DRAWER_CLOSE_BUTTON}) {\n height: 100% !important;\n }\n`;\n\nconst STYLES_NAV_DRAWER_ELEMENT = `\n ${NavDrawerSlider.Styles}\n ${DrawerButtonClose}\n ${DrawerContainer}\n`;\n\nconst CreateDrawerButton = (element: TypeDrawerCloseButton) => {\n const drawerCloseButton = document.createElement('button');\n\n drawerCloseButton.innerHTML = iconCloseLarge;\n drawerCloseButton.classList.add(ELEMENT_NAV_DRAWER_CLOSE_BUTTON);\n drawerCloseButton.setAttribute('aria-label', 'Close navigation drawer');\n drawerCloseButton.addEventListener('click', element.eventClose.bind(element));\n\n return drawerCloseButton;\n};\n\nconst CreateNavDrawerContainer = (props: TypeDrawerProps) => {\n const { eventClose } = props;\n const bodyOverlay = document.createElement('div');\n const bodyOverlayWrapper = document.createElement('div');\n const closeButton = CreateDrawerButton(props);\n const slider = NavDrawerSlider.CreateElement({\n ...props,\n displayType: 'drawer-nav',\n });\n\n bodyOverlayWrapper.classList.add(ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER);\n\n bodyOverlayWrapper.appendChild(closeButton);\n bodyOverlayWrapper.appendChild(slider.container);\n\n bodyOverlay.classList.add(ELEMENT_NAV_DRAWER_OVERLAY);\n bodyOverlay.addEventListener('click', eventClose.bind(props));\n bodyOverlay.appendChild(bodyOverlayWrapper);\n\n return bodyOverlay;\n};\n\nconst CreateNavDrawerElement = (props: TypeNavDrawerRequirements) =>\n (() => {\n const { context, primarySlideLinks } = props;\n const body = document.querySelector('body') as HTMLBodyElement;\n const elementContainer = document.createElement('div');\n\n if (!primarySlideLinks) return null;\n\n const eventClose = () => {\n const bodyOverlay = elementContainer.querySelector(\n `.${ELEMENT_NAV_DRAWER_OVERLAY}`,\n ) as HTMLDivElement;\n const bodyOverlayWrapper = bodyOverlay.querySelector(\n `.${ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER}`,\n ) as HTMLDivElement;\n const slider = bodyOverlay.querySelector(\n `.${NavDrawerSlider.Elements.slider}`,\n ) as HTMLDivElement;\n\n bodyOverlay.style.opacity = '0';\n bodyOverlayWrapper.style.transform = 'translateX(-100%)';\n\n setTimeout(() => {\n bodyOverlay.removeAttribute('style');\n bodyOverlayWrapper.removeAttribute('style');\n body.style.overflow = 'auto';\n elementContainer.style.display = 'none';\n }, ANIMATION_TIME + 100);\n\n if (slider) {\n slider.style.overflowY = `hidden`;\n }\n };\n\n const eventOpen = () => {\n const bodyOverlay = elementContainer.querySelector(\n `.${ELEMENT_NAV_DRAWER_OVERLAY}`,\n ) as HTMLDivElement;\n const bodyOverlayWrapper = bodyOverlay.querySelector(\n `.${ELEMENT_NAV_DRAWER_OVERLAY_WRAPPER}`,\n ) as HTMLDivElement;\n const closeButton = bodyOverlayWrapper.querySelector(\n `.${ELEMENT_NAV_DRAWER_CLOSE_BUTTON}`,\n ) as HTMLButtonElement;\n const slider = bodyOverlayWrapper.querySelector(\n `.${NavDrawerSlider.Elements.slider}`,\n ) as HTMLDivElement;\n const activeSlide = bodyOverlayWrapper.querySelector(\n `.${NavDrawerSlider.Elements.slider} div[data-active]`,\n ) as HTMLDivElement;\n\n elementContainer.style.display = 'block';\n bodyOverlay.style.display = 'block';\n bodyOverlayWrapper.style.display = 'flex';\n\n setTimeout(() => {\n bodyOverlay.style.opacity = '1';\n bodyOverlayWrapper.style.transform = 'translateX(0)';\n body.style.overflow = 'hidden';\n closeButton.focus();\n\n handleKeyboardNavigation({\n element: elementContainer,\n action: () => eventClose(),\n shadowDomContext: context,\n });\n }, 100);\n\n setTimeout(() => {\n if (!activeSlide || !slider) return;\n if (activeSlide.offsetHeight > elementContainer.offsetHeight) {\n slider.style.overflowY = `scroll`;\n }\n }, 200);\n };\n\n const children = CreateNavDrawerContainer({\n ...props,\n eventOpen,\n eventClose,\n });\n\n elementContainer.classList.add(ELEMENT_NAV_DRAWER_CONTAINER);\n elementContainer.appendChild(children);\n\n return {\n element: elementContainer,\n events: {\n eventOpen,\n },\n };\n })();\n\nexport default {\n CreateElement: CreateNavDrawerElement,\n Styles: STYLES_NAV_DRAWER_ELEMENT,\n};\n"],"names":["iconCloseLarge"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const token = require("@universityofmaryland/web-styles-library/token");
2
+ const token = require("@universityofmaryland/web-token-library");
3
3
  const animation = require("@universityofmaryland/web-styles-library/animation");
4
4
  const styles = require("@universityofmaryland/web-utilities-library/styles");
5
5
  const animation$1 = require("@universityofmaryland/web-utilities-library/animation");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../source/composite/navigation/elements/item/index.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\nimport * as animation from '@universityofmaryland/web-styles-library/animation';\nimport { jssToCSS } from '@universityofmaryland/web-utilities-library/styles';\nimport { wrapLinkForAnimation } from '@universityofmaryland/web-utilities-library/animation';\nimport { handleKeyboardNavigation } from '@universityofmaryland/web-utilities-library/events';\nimport { chevron_down as iconChevronDown } from '@universityofmaryland/web-icons-library/controls';\n\ntype TypePrimaryLinkRequirements = {\n primaryLinkContainer?: HTMLElement | null;\n context?: HTMLElement;\n};\n\ntype TypeDropdownProps = {\n dropdownLinksContainer?: HTMLElement | null;\n dropdownCalloutsSlot?: HTMLSlotElement | null;\n};\n\ntype TypePrimaryLinkButtonProps = {\n buttonClick: () => void;\n navItemName: string;\n};\n\ntype TypePrimaryLinkProps = TypePrimaryLinkRequirements &\n TypeDropdownProps &\n TypePrimaryLinkButtonProps & {\n hasDropdown: boolean;\n };\n\nexport type TypeNavItemRequirements = TypeDropdownProps &\n TypePrimaryLinkRequirements;\n\ntype TypeNavItem = TypeNavItemRequirements;\n\nconst ELEMENT_NAME = 'umd-element-nav-item';\nconst ATTRIBUTE_DROPDOWN = 'data-dropdown';\nconst ATTRIBUTE_SHOWING = 'data-showing';\nconst ATTRIBUTE_SELECTED = 'data-selected';\n\nconst BOUNDS_SHIFT = 140;\nconst MAX_COLUMN_ITEMS = 8;\n\nconst ELEMENT_NAV_ITEM_CONTAINER = `nav-item-container`;\nconst ELEMENT_PRIMARY_LINK_CONTAINER = 'nav-item-primary-link-container';\nconst ELEMENT_PRIMARLY_LINK_WRAPPER = `nav-item-primary-link-wrapper`;\nconst ELEMENT_PRIMARY_LINK_CONTAINER_BUTTON = `nav-item-primary-link-button`;\n\nconst ELEMENT_DROPDOWN_CONTAINER = `nav-item-dropdown-container`;\nconst ELEMENT_DROPDOWN_LIST_CONTAINER = 'nav-item-dropdown-list';\nconst ELEMENT_DROPDOWN_MULTIPLE_COLUMN = 'nav-item-dropdown-multiple-column';\nconst ELEMENT_DROPDOWN_CTA_COLUMN = 'nav-item-dropdown-cta-column';\n\nconst IS_SELECTED = `[${ATTRIBUTE_SELECTED}]`;\nconst IS_SHOWING = `[${ATTRIBUTE_SHOWING}]`;\nconst IS_DROPDOWN = `[${ATTRIBUTE_DROPDOWN}]`;\n\nconst OVERWRITE_DROPDOWN_CONTAINER = `.${ELEMENT_NAV_ITEM_CONTAINER}${IS_DROPDOWN}`;\nconst OVERWRITE_IS_SHOWING_DROPDOWN_CONTAINER = `${OVERWRITE_DROPDOWN_CONTAINER}${IS_SHOWING} .${ELEMENT_DROPDOWN_CONTAINER}`;\nconst OVERWRITE_IS_SHOWING_PRIMARY_LINK = `${OVERWRITE_DROPDOWN_CONTAINER} .${ELEMENT_PRIMARLY_LINK_WRAPPER}`;\nconst OVERWRITE_IS_SHOWING_PRIMARY_BUTTON = `${OVERWRITE_DROPDOWN_CONTAINER}${IS_SHOWING} .${ELEMENT_PRIMARY_LINK_CONTAINER_BUTTON}`;\n\n// prettier-ignore\nconst OverwriteDropdownStyles = `\n ${OVERWRITE_IS_SHOWING_DROPDOWN_CONTAINER} {\n display: block;\n }\n\n ${OVERWRITE_IS_SHOWING_PRIMARY_BUTTON} {\n transform: rotate(180deg) translateY(4px);\n }\n\n ${OVERWRITE_IS_SHOWING_PRIMARY_LINK} > a${IS_SELECTED}:before {\n bottom: 1px;\n right: 20px;\n }\n`\n\n// prettier-ignore\nconst PrimaryStyles = `\n .${ELEMENT_PRIMARY_LINK_CONTAINER} {\n position: relative;\n }\n\n .${ELEMENT_PRIMARLY_LINK_WRAPPER} {\n display: block;\n position: relative;\n }\n\n .${ELEMENT_PRIMARLY_LINK_WRAPPER} > a {\n color: ${token.color.black};\n font-size: ${token.font.size.base};\n transition: color 0.2s ease-in-out;\n line-height: 1.15em;\n font-weight: 700;\n text-wrap: pretty;\n display: block;\n display: flex;\n align-items: flex-end;\n text-align: right;\n }\n\n .${ELEMENT_PRIMARLY_LINK_WRAPPER} > a:hover,\n .${ELEMENT_PRIMARLY_LINK_WRAPPER} > a:focus {\n color: ${token.color.red};\n }\n\n .${ELEMENT_PRIMARLY_LINK_WRAPPER} > a[${ATTRIBUTE_SELECTED}] span {\n display: inline;\n position: relative;\n background-position: left calc(100% - 0px);\n background-repeat: no-repeat;\n background-size: 100% 2.5px;\n background-image: linear-gradient(${token.color.gold}, ${token.color.gold});\n }\n\n .${ELEMENT_PRIMARY_LINK_CONTAINER_BUTTON} {\n position: absolute;\n top: 2px;\n right: -20px;\n transition: transform .5s;\n }\n\n .${ELEMENT_PRIMARY_LINK_CONTAINER_BUTTON} svg {\n fill: ${token.color.red};\n height: 14px;\n width: 14px;\n transform: rotate(0deg) translateY(0);\n transition: fill .5s,transform .5s;\n }\n`;\n\n// prettier-ignore\nconst DropdownMultipleColumnStyles = `\n .${ELEMENT_DROPDOWN_MULTIPLE_COLUMN} {\n display: flex;\n justify-content: space-between;\n }\n\n .${ELEMENT_DROPDOWN_MULTIPLE_COLUMN} > * {\n min-width: 232px;\n }\n\n .${ELEMENT_DROPDOWN_MULTIPLE_COLUMN} > *:not(:first-child) {\n margin-left: 40px;\n }\n`\n\n// prettier-ignore\nconst DropdownListStyles = `\n .${ELEMENT_DROPDOWN_LIST_CONTAINER} {\n background-color: ${token.color.white};\n border-top: 2px solid ${token.color.red};\n padding: ${token.spacing.lg};\n box-shadow: -1px 9px 32px -10px rgba(0,0,0,0.19);\n }\n\n .${ELEMENT_DROPDOWN_LIST_CONTAINER} a {\n display: block;\n min-width: 120px;\n max-width: 230px;\n font-weight: 700;\n font-size: 14px;\n line-height: 1.5em;\n }\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_DROPDOWN_LIST_CONTAINER} a`]:\n animation.line.slideUnderRed,\n },\n })}\n\n .${ELEMENT_DROPDOWN_LIST_CONTAINER} a:hover,\n .${ELEMENT_DROPDOWN_LIST_CONTAINER} a:focus {\n color: ${token.color.red};\n }\n\n .${ELEMENT_DROPDOWN_LIST_CONTAINER} a + a {\n margin-top: ${token.spacing.md};\n display: block;\n }\n\n .${ELEMENT_DROPDOWN_LIST_CONTAINER} a${IS_SELECTED} span:not(.sr-only) {\n display: inline;\n position: relative;\n background-position: left calc(100% - 0px);\n background-repeat: no-repeat;\n background-size: 100% 2.5px;\n background-image: linear-gradient(${token.color.gold}, ${token.color.gold});\n }\n\n .${ELEMENT_DROPDOWN_LIST_CONTAINER} a${IS_SELECTED}:hover span,\n .${ELEMENT_DROPDOWN_LIST_CONTAINER} a${IS_SELECTED}:focus span {\n border-bottom: none;\n }\n`\n\n// prettier-ignore\nconst DropdownStyles = `\n .${ELEMENT_DROPDOWN_CONTAINER} {\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);v \n min-width: 200px;\n width: auto;\n padding-top: ${token.spacing.sm};\n display: none;\n }\n`;\n\nconst STYLES_NAV_ITEM_ELEMENT = `\n .${ELEMENT_NAV_ITEM_CONTAINER} {\n position: relative;\n z-index: 9999;\n }\n\n ${OVERWRITE_DROPDOWN_CONTAINER} {\n padding-right: 20px;\n }\n\n .${ELEMENT_NAV_ITEM_CONTAINER} a {\n font-family: ${token.font.family.sans};\n font-size: ${token.font.size.sm};\n font-weight: 700;\n color: ${token.color.black};\n text-decoration: none;\n }\n \n .${ELEMENT_NAV_ITEM_CONTAINER}:foucs-within .${ELEMENT_DROPDOWN_CONTAINER} {\n display: block;\n }\n\n ${PrimaryStyles}\n ${DropdownStyles}\n ${DropdownMultipleColumnStyles}\n ${DropdownListStyles}\n ${OverwriteDropdownStyles}\n`;\n\nconst CreateMultipleColumns = ({ links }: { links: HTMLAnchorElement[] }) => {\n const column1 = document.createElement('div');\n const column2 = document.createElement('div');\n const firstColumnLinks = links.splice(0, Math.ceil(links.length / 2));\n\n firstColumnLinks.forEach((link) => {\n wrapLinkForAnimation({ element: link });\n column1.appendChild(link);\n });\n links.forEach((link) => {\n wrapLinkForAnimation({ element: link });\n column2.appendChild(link);\n });\n\n return [column1, column2];\n};\n\nconst CreateSingleColumn = ({ links }: { links: HTMLAnchorElement[] }) => {\n const container = document.createElement('div');\n links.forEach((link) => {\n wrapLinkForAnimation({ element: link });\n container.appendChild(link);\n });\n\n return container;\n};\n\nconst CreateDropdown = ({\n dropdownLinksContainer,\n dropdownCalloutsSlot,\n}: TypeDropdownProps) => {\n if (!dropdownLinksContainer) return;\n\n const links = Array.from(\n dropdownLinksContainer.querySelectorAll('a'),\n ) as HTMLAnchorElement[];\n\n const container = document.createElement('div');\n const wrapper = document.createElement('div');\n\n wrapper.classList.add(ELEMENT_DROPDOWN_LIST_CONTAINER);\n container.classList.add(ELEMENT_DROPDOWN_CONTAINER);\n\n if (links.length > MAX_COLUMN_ITEMS) {\n const columns = CreateMultipleColumns({ links });\n columns.forEach((column) => {\n wrapper.appendChild(column);\n });\n wrapper.classList.add(ELEMENT_DROPDOWN_MULTIPLE_COLUMN);\n } else {\n wrapper.appendChild(CreateSingleColumn({ links }));\n\n if (dropdownCalloutsSlot) {\n wrapper.classList.add(ELEMENT_DROPDOWN_MULTIPLE_COLUMN);\n }\n }\n\n if (dropdownCalloutsSlot) {\n const dropdownWrapper = document.createElement('div');\n\n dropdownWrapper.classList.add(ELEMENT_DROPDOWN_CTA_COLUMN);\n dropdownWrapper.appendChild(dropdownCalloutsSlot);\n wrapper.appendChild(dropdownWrapper);\n }\n\n container.appendChild(wrapper);\n\n return container;\n};\n\nconst CreateButton = ({\n buttonClick,\n navItemName,\n}: TypePrimaryLinkButtonProps) => {\n const button = document.createElement('button');\n\n button.classList.add(ELEMENT_PRIMARY_LINK_CONTAINER_BUTTON);\n button.innerHTML = iconChevronDown;\n button.addEventListener('click', () => buttonClick());\n button.setAttribute('aria-expanded', 'false');\n button.setAttribute('aria-controls', `nav-links-`);\n button.setAttribute('aria-label', `List of menu items for ${navItemName}`);\n\n return button;\n};\n\nconst CreatePrimaryLink = (props: TypePrimaryLinkProps) => {\n const { hasDropdown, primaryLinkContainer } = props;\n const container = document.createElement('div');\n const wrapper = document.createElement('div');\n\n const dropdown = CreateDropdown(props);\n\n container.classList.add(ELEMENT_PRIMARY_LINK_CONTAINER);\n wrapper.classList.add(ELEMENT_PRIMARLY_LINK_WRAPPER);\n\n if (primaryLinkContainer) {\n const clonedPrimaryLink = primaryLinkContainer.cloneNode(\n true,\n ) as HTMLElement;\n wrapper.appendChild(clonedPrimaryLink);\n }\n\n if (hasDropdown) {\n const button = CreateButton(props);\n wrapper.appendChild(button);\n }\n\n if (dropdown) wrapper.appendChild(dropdown);\n\n container.appendChild(wrapper);\n return container;\n};\n\nconst CreateNavItemElement = (props: TypeNavItem) =>\n (() => {\n const { dropdownLinksContainer, primaryLinkContainer, context } = props;\n\n if (!primaryLinkContainer) {\n throw new Error('Primary link is required for a nav item');\n }\n\n const elementContainer = document.createElement('div');\n const dropDownContainerLinks = dropdownLinksContainer?.children;\n const hasDropdown =\n (dropDownContainerLinks && dropDownContainerLinks.length > 0) || false;\n\n const navItemName = primaryLinkContainer.innerHTML\n .replace(/(<([^>]+)>)/gi, '')\n .trim();\n let isShowing = false;\n let focusCallback = () => {};\n\n const OnLoadDropdownSpans = () => {\n if (!dropdownLinksContainer) return;\n\n const links = Array.from(\n dropdownLinksContainer.querySelectorAll('a'),\n ) as HTMLAnchorElement[];\n\n links.forEach((link) => {\n const hasSpan = link.querySelector('span');\n\n if (!hasSpan) {\n wrapLinkForAnimation({ element: link });\n link.appendChild(link);\n }\n });\n };\n\n const DropdownPositionPerViewPort = () => {\n const elementBounds = elementContainer.getBoundingClientRect();\n const dropdownContainer = elementContainer.querySelector(\n `.${ELEMENT_DROPDOWN_CONTAINER}`,\n ) as HTMLDivElement;\n const width = elementContainer.offsetWidth;\n\n if (!dropdownContainer) return;\n\n const size = dropdownContainer.offsetWidth + BOUNDS_SHIFT;\n\n if (elementBounds.left + width < size) {\n dropdownContainer.style.left = '0';\n dropdownContainer.style.transform = 'translateX(0)';\n }\n\n if (window.innerWidth - elementBounds.right < size / 2) {\n dropdownContainer.style.right = '0';\n dropdownContainer.style.left = 'inherit';\n dropdownContainer.style.transform = 'translateX(0)';\n }\n };\n\n const ShowDropdown = () => {\n elementContainer.setAttribute(ATTRIBUTE_SHOWING, '');\n DropdownPositionPerViewPort();\n };\n\n const HideDropdown = () => {\n elementContainer.removeAttribute(ATTRIBUTE_SHOWING);\n focusCallback();\n focusCallback = () => {};\n };\n\n const EventButtonClick = () => {\n if (isShowing && dropdownLinksContainer) {\n ShowDropdown();\n focusCallback = handleKeyboardNavigation({\n element: elementContainer,\n action: () => HideDropdown(),\n shadowDomContext: context,\n });\n\n setTimeout(() => {\n const firstElement = dropdownLinksContainer.querySelector(\n 'a',\n ) as HTMLAnchorElement;\n\n if (firstElement) firstElement.focus();\n }, 100);\n }\n\n if (!isShowing) HideDropdown();\n };\n\n const buttonClick = () => {\n isShowing = isShowing ? false : true;\n EventButtonClick();\n };\n\n // Load\n\n const linkContainer = CreatePrimaryLink({\n ...props,\n hasDropdown,\n buttonClick,\n navItemName,\n });\n\n elementContainer.addEventListener('mouseover', () => {\n isShowing = true;\n ShowDropdown();\n });\n\n elementContainer.addEventListener('mouseleave', () => {\n isShowing = false;\n HideDropdown();\n });\n\n setTimeout(() => {\n OnLoadDropdownSpans();\n }, 10);\n\n if (hasDropdown) elementContainer.setAttribute(ATTRIBUTE_DROPDOWN, '');\n elementContainer.classList.add(ELEMENT_NAV_ITEM_CONTAINER);\n elementContainer.appendChild(linkContainer);\n\n return elementContainer;\n })();\n\nexport default {\n CreateElement: CreateNavItemElement,\n Styles: STYLES_NAV_ITEM_ELEMENT,\n};\n"],"names":["token","jssToCSS","animation","wrapLinkForAnimation","iconChevronDown","handleKeyboardNavigation"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../source/composite/navigation/elements/item/index.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport * as animation from '@universityofmaryland/web-styles-library/animation';\nimport { jssToCSS } from '@universityofmaryland/web-utilities-library/styles';\nimport { wrapLinkForAnimation } from '@universityofmaryland/web-utilities-library/animation';\nimport { handleKeyboardNavigation } from '@universityofmaryland/web-utilities-library/events';\nimport { chevron_down as iconChevronDown } from '@universityofmaryland/web-icons-library/controls';\n\ntype TypePrimaryLinkRequirements = {\n primaryLinkContainer?: HTMLElement | null;\n context?: HTMLElement;\n};\n\ntype TypeDropdownProps = {\n dropdownLinksContainer?: HTMLElement | null;\n dropdownCalloutsSlot?: HTMLSlotElement | null;\n};\n\ntype TypePrimaryLinkButtonProps = {\n buttonClick: () => void;\n navItemName: string;\n};\n\ntype TypePrimaryLinkProps = TypePrimaryLinkRequirements &\n TypeDropdownProps &\n TypePrimaryLinkButtonProps & {\n hasDropdown: boolean;\n };\n\nexport type TypeNavItemRequirements = TypeDropdownProps &\n TypePrimaryLinkRequirements;\n\ntype TypeNavItem = TypeNavItemRequirements;\n\nconst ELEMENT_NAME = 'umd-element-nav-item';\nconst ATTRIBUTE_DROPDOWN = 'data-dropdown';\nconst ATTRIBUTE_SHOWING = 'data-showing';\nconst ATTRIBUTE_SELECTED = 'data-selected';\n\nconst BOUNDS_SHIFT = 140;\nconst MAX_COLUMN_ITEMS = 8;\n\nconst ELEMENT_NAV_ITEM_CONTAINER = `nav-item-container`;\nconst ELEMENT_PRIMARY_LINK_CONTAINER = 'nav-item-primary-link-container';\nconst ELEMENT_PRIMARLY_LINK_WRAPPER = `nav-item-primary-link-wrapper`;\nconst ELEMENT_PRIMARY_LINK_CONTAINER_BUTTON = `nav-item-primary-link-button`;\n\nconst ELEMENT_DROPDOWN_CONTAINER = `nav-item-dropdown-container`;\nconst ELEMENT_DROPDOWN_LIST_CONTAINER = 'nav-item-dropdown-list';\nconst ELEMENT_DROPDOWN_MULTIPLE_COLUMN = 'nav-item-dropdown-multiple-column';\nconst ELEMENT_DROPDOWN_CTA_COLUMN = 'nav-item-dropdown-cta-column';\n\nconst IS_SELECTED = `[${ATTRIBUTE_SELECTED}]`;\nconst IS_SHOWING = `[${ATTRIBUTE_SHOWING}]`;\nconst IS_DROPDOWN = `[${ATTRIBUTE_DROPDOWN}]`;\n\nconst OVERWRITE_DROPDOWN_CONTAINER = `.${ELEMENT_NAV_ITEM_CONTAINER}${IS_DROPDOWN}`;\nconst OVERWRITE_IS_SHOWING_DROPDOWN_CONTAINER = `${OVERWRITE_DROPDOWN_CONTAINER}${IS_SHOWING} .${ELEMENT_DROPDOWN_CONTAINER}`;\nconst OVERWRITE_IS_SHOWING_PRIMARY_LINK = `${OVERWRITE_DROPDOWN_CONTAINER} .${ELEMENT_PRIMARLY_LINK_WRAPPER}`;\nconst OVERWRITE_IS_SHOWING_PRIMARY_BUTTON = `${OVERWRITE_DROPDOWN_CONTAINER}${IS_SHOWING} .${ELEMENT_PRIMARY_LINK_CONTAINER_BUTTON}`;\n\n// prettier-ignore\nconst OverwriteDropdownStyles = `\n ${OVERWRITE_IS_SHOWING_DROPDOWN_CONTAINER} {\n display: block;\n }\n\n ${OVERWRITE_IS_SHOWING_PRIMARY_BUTTON} {\n transform: rotate(180deg) translateY(4px);\n }\n\n ${OVERWRITE_IS_SHOWING_PRIMARY_LINK} > a${IS_SELECTED}:before {\n bottom: 1px;\n right: 20px;\n }\n`\n\n// prettier-ignore\nconst PrimaryStyles = `\n .${ELEMENT_PRIMARY_LINK_CONTAINER} {\n position: relative;\n }\n\n .${ELEMENT_PRIMARLY_LINK_WRAPPER} {\n display: block;\n position: relative;\n }\n\n .${ELEMENT_PRIMARLY_LINK_WRAPPER} > a {\n color: ${token.color.black};\n font-size: ${token.font.size.base};\n transition: color 0.2s ease-in-out;\n line-height: 1.15em;\n font-weight: 700;\n text-wrap: pretty;\n display: block;\n display: flex;\n align-items: flex-end;\n text-align: right;\n }\n\n .${ELEMENT_PRIMARLY_LINK_WRAPPER} > a:hover,\n .${ELEMENT_PRIMARLY_LINK_WRAPPER} > a:focus {\n color: ${token.color.red};\n }\n\n .${ELEMENT_PRIMARLY_LINK_WRAPPER} > a[${ATTRIBUTE_SELECTED}] span {\n display: inline;\n position: relative;\n background-position: left calc(100% - 0px);\n background-repeat: no-repeat;\n background-size: 100% 2.5px;\n background-image: linear-gradient(${token.color.gold}, ${token.color.gold});\n }\n\n .${ELEMENT_PRIMARY_LINK_CONTAINER_BUTTON} {\n position: absolute;\n top: 2px;\n right: -20px;\n transition: transform .5s;\n }\n\n .${ELEMENT_PRIMARY_LINK_CONTAINER_BUTTON} svg {\n fill: ${token.color.red};\n height: 14px;\n width: 14px;\n transform: rotate(0deg) translateY(0);\n transition: fill .5s,transform .5s;\n }\n`;\n\n// prettier-ignore\nconst DropdownMultipleColumnStyles = `\n .${ELEMENT_DROPDOWN_MULTIPLE_COLUMN} {\n display: flex;\n justify-content: space-between;\n }\n\n .${ELEMENT_DROPDOWN_MULTIPLE_COLUMN} > * {\n min-width: 232px;\n }\n\n .${ELEMENT_DROPDOWN_MULTIPLE_COLUMN} > *:not(:first-child) {\n margin-left: 40px;\n }\n`\n\n// prettier-ignore\nconst DropdownListStyles = `\n .${ELEMENT_DROPDOWN_LIST_CONTAINER} {\n background-color: ${token.color.white};\n border-top: 2px solid ${token.color.red};\n padding: ${token.spacing.lg};\n box-shadow: -1px 9px 32px -10px rgba(0,0,0,0.19);\n }\n\n .${ELEMENT_DROPDOWN_LIST_CONTAINER} a {\n display: block;\n min-width: 120px;\n max-width: 230px;\n font-weight: 700;\n font-size: 14px;\n line-height: 1.5em;\n }\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_DROPDOWN_LIST_CONTAINER} a`]:\n animation.line.slideUnderRed,\n },\n })}\n\n .${ELEMENT_DROPDOWN_LIST_CONTAINER} a:hover,\n .${ELEMENT_DROPDOWN_LIST_CONTAINER} a:focus {\n color: ${token.color.red};\n }\n\n .${ELEMENT_DROPDOWN_LIST_CONTAINER} a + a {\n margin-top: ${token.spacing.md};\n display: block;\n }\n\n .${ELEMENT_DROPDOWN_LIST_CONTAINER} a${IS_SELECTED} span:not(.sr-only) {\n display: inline;\n position: relative;\n background-position: left calc(100% - 0px);\n background-repeat: no-repeat;\n background-size: 100% 2.5px;\n background-image: linear-gradient(${token.color.gold}, ${token.color.gold});\n }\n\n .${ELEMENT_DROPDOWN_LIST_CONTAINER} a${IS_SELECTED}:hover span,\n .${ELEMENT_DROPDOWN_LIST_CONTAINER} a${IS_SELECTED}:focus span {\n border-bottom: none;\n }\n`\n\n// prettier-ignore\nconst DropdownStyles = `\n .${ELEMENT_DROPDOWN_CONTAINER} {\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);v \n min-width: 200px;\n width: auto;\n padding-top: ${token.spacing.sm};\n display: none;\n }\n`;\n\nconst STYLES_NAV_ITEM_ELEMENT = `\n .${ELEMENT_NAV_ITEM_CONTAINER} {\n position: relative;\n z-index: 9999;\n }\n\n ${OVERWRITE_DROPDOWN_CONTAINER} {\n padding-right: 20px;\n }\n\n .${ELEMENT_NAV_ITEM_CONTAINER} a {\n font-family: ${token.font.family.sans};\n font-size: ${token.font.size.sm};\n font-weight: 700;\n color: ${token.color.black};\n text-decoration: none;\n }\n \n .${ELEMENT_NAV_ITEM_CONTAINER}:foucs-within .${ELEMENT_DROPDOWN_CONTAINER} {\n display: block;\n }\n\n ${PrimaryStyles}\n ${DropdownStyles}\n ${DropdownMultipleColumnStyles}\n ${DropdownListStyles}\n ${OverwriteDropdownStyles}\n`;\n\nconst CreateMultipleColumns = ({ links }: { links: HTMLAnchorElement[] }) => {\n const column1 = document.createElement('div');\n const column2 = document.createElement('div');\n const firstColumnLinks = links.splice(0, Math.ceil(links.length / 2));\n\n firstColumnLinks.forEach((link) => {\n wrapLinkForAnimation({ element: link });\n column1.appendChild(link);\n });\n links.forEach((link) => {\n wrapLinkForAnimation({ element: link });\n column2.appendChild(link);\n });\n\n return [column1, column2];\n};\n\nconst CreateSingleColumn = ({ links }: { links: HTMLAnchorElement[] }) => {\n const container = document.createElement('div');\n links.forEach((link) => {\n wrapLinkForAnimation({ element: link });\n container.appendChild(link);\n });\n\n return container;\n};\n\nconst CreateDropdown = ({\n dropdownLinksContainer,\n dropdownCalloutsSlot,\n}: TypeDropdownProps) => {\n if (!dropdownLinksContainer) return;\n\n const links = Array.from(\n dropdownLinksContainer.querySelectorAll('a'),\n ) as HTMLAnchorElement[];\n\n const container = document.createElement('div');\n const wrapper = document.createElement('div');\n\n wrapper.classList.add(ELEMENT_DROPDOWN_LIST_CONTAINER);\n container.classList.add(ELEMENT_DROPDOWN_CONTAINER);\n\n if (links.length > MAX_COLUMN_ITEMS) {\n const columns = CreateMultipleColumns({ links });\n columns.forEach((column) => {\n wrapper.appendChild(column);\n });\n wrapper.classList.add(ELEMENT_DROPDOWN_MULTIPLE_COLUMN);\n } else {\n wrapper.appendChild(CreateSingleColumn({ links }));\n\n if (dropdownCalloutsSlot) {\n wrapper.classList.add(ELEMENT_DROPDOWN_MULTIPLE_COLUMN);\n }\n }\n\n if (dropdownCalloutsSlot) {\n const dropdownWrapper = document.createElement('div');\n\n dropdownWrapper.classList.add(ELEMENT_DROPDOWN_CTA_COLUMN);\n dropdownWrapper.appendChild(dropdownCalloutsSlot);\n wrapper.appendChild(dropdownWrapper);\n }\n\n container.appendChild(wrapper);\n\n return container;\n};\n\nconst CreateButton = ({\n buttonClick,\n navItemName,\n}: TypePrimaryLinkButtonProps) => {\n const button = document.createElement('button');\n\n button.classList.add(ELEMENT_PRIMARY_LINK_CONTAINER_BUTTON);\n button.innerHTML = iconChevronDown;\n button.addEventListener('click', () => buttonClick());\n button.setAttribute('aria-expanded', 'false');\n button.setAttribute('aria-controls', `nav-links-`);\n button.setAttribute('aria-label', `List of menu items for ${navItemName}`);\n\n return button;\n};\n\nconst CreatePrimaryLink = (props: TypePrimaryLinkProps) => {\n const { hasDropdown, primaryLinkContainer } = props;\n const container = document.createElement('div');\n const wrapper = document.createElement('div');\n\n const dropdown = CreateDropdown(props);\n\n container.classList.add(ELEMENT_PRIMARY_LINK_CONTAINER);\n wrapper.classList.add(ELEMENT_PRIMARLY_LINK_WRAPPER);\n\n if (primaryLinkContainer) {\n const clonedPrimaryLink = primaryLinkContainer.cloneNode(\n true,\n ) as HTMLElement;\n wrapper.appendChild(clonedPrimaryLink);\n }\n\n if (hasDropdown) {\n const button = CreateButton(props);\n wrapper.appendChild(button);\n }\n\n if (dropdown) wrapper.appendChild(dropdown);\n\n container.appendChild(wrapper);\n return container;\n};\n\nconst CreateNavItemElement = (props: TypeNavItem) =>\n (() => {\n const { dropdownLinksContainer, primaryLinkContainer, context } = props;\n\n if (!primaryLinkContainer) {\n throw new Error('Primary link is required for a nav item');\n }\n\n const elementContainer = document.createElement('div');\n const dropDownContainerLinks = dropdownLinksContainer?.children;\n const hasDropdown =\n (dropDownContainerLinks && dropDownContainerLinks.length > 0) || false;\n\n const navItemName = primaryLinkContainer.innerHTML\n .replace(/(<([^>]+)>)/gi, '')\n .trim();\n let isShowing = false;\n let focusCallback = () => {};\n\n const OnLoadDropdownSpans = () => {\n if (!dropdownLinksContainer) return;\n\n const links = Array.from(\n dropdownLinksContainer.querySelectorAll('a'),\n ) as HTMLAnchorElement[];\n\n links.forEach((link) => {\n const hasSpan = link.querySelector('span');\n\n if (!hasSpan) {\n wrapLinkForAnimation({ element: link });\n link.appendChild(link);\n }\n });\n };\n\n const DropdownPositionPerViewPort = () => {\n const elementBounds = elementContainer.getBoundingClientRect();\n const dropdownContainer = elementContainer.querySelector(\n `.${ELEMENT_DROPDOWN_CONTAINER}`,\n ) as HTMLDivElement;\n const width = elementContainer.offsetWidth;\n\n if (!dropdownContainer) return;\n\n const size = dropdownContainer.offsetWidth + BOUNDS_SHIFT;\n\n if (elementBounds.left + width < size) {\n dropdownContainer.style.left = '0';\n dropdownContainer.style.transform = 'translateX(0)';\n }\n\n if (window.innerWidth - elementBounds.right < size / 2) {\n dropdownContainer.style.right = '0';\n dropdownContainer.style.left = 'inherit';\n dropdownContainer.style.transform = 'translateX(0)';\n }\n };\n\n const ShowDropdown = () => {\n elementContainer.setAttribute(ATTRIBUTE_SHOWING, '');\n DropdownPositionPerViewPort();\n };\n\n const HideDropdown = () => {\n elementContainer.removeAttribute(ATTRIBUTE_SHOWING);\n focusCallback();\n focusCallback = () => {};\n };\n\n const EventButtonClick = () => {\n if (isShowing && dropdownLinksContainer) {\n ShowDropdown();\n focusCallback = handleKeyboardNavigation({\n element: elementContainer,\n action: () => HideDropdown(),\n shadowDomContext: context,\n });\n\n setTimeout(() => {\n const firstElement = dropdownLinksContainer.querySelector(\n 'a',\n ) as HTMLAnchorElement;\n\n if (firstElement) firstElement.focus();\n }, 100);\n }\n\n if (!isShowing) HideDropdown();\n };\n\n const buttonClick = () => {\n isShowing = isShowing ? false : true;\n EventButtonClick();\n };\n\n // Load\n\n const linkContainer = CreatePrimaryLink({\n ...props,\n hasDropdown,\n buttonClick,\n navItemName,\n });\n\n elementContainer.addEventListener('mouseover', () => {\n isShowing = true;\n ShowDropdown();\n });\n\n elementContainer.addEventListener('mouseleave', () => {\n isShowing = false;\n HideDropdown();\n });\n\n setTimeout(() => {\n OnLoadDropdownSpans();\n }, 10);\n\n if (hasDropdown) elementContainer.setAttribute(ATTRIBUTE_DROPDOWN, '');\n elementContainer.classList.add(ELEMENT_NAV_ITEM_CONTAINER);\n elementContainer.appendChild(linkContainer);\n\n return elementContainer;\n })();\n\nexport default {\n CreateElement: CreateNavItemElement,\n Styles: STYLES_NAV_ITEM_ELEMENT,\n};\n"],"names":["token","jssToCSS","animation","wrapLinkForAnimation","iconChevronDown","handleKeyboardNavigation"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import * as token from "@universityofmaryland/web-styles-library/token";
1
+ import * as token from "@universityofmaryland/web-token-library";
2
2
  import * as animation from "@universityofmaryland/web-styles-library/animation";
3
3
  import { jssToCSS } from "@universityofmaryland/web-utilities-library/styles";
4
4
  import { wrapLinkForAnimation } from "@universityofmaryland/web-utilities-library/animation";