@universityofmaryland/web-elements-library 1.5.3 → 1.5.6

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":"events.mjs","sources":["../../../source/composite/slider/events.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport { jssToCSS } from '@universityofmaryland/web-utilities-library/styles';\nimport { setupSwipeDetection } from '@universityofmaryland/web-utilities-library/events';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport { parsePixelValue } from '@universityofmaryland/web-utilities-library/styles';\nimport {\n arrow_left as iconArrowLeft,\n arrow_right as iconArrowRight,\n} from '@universityofmaryland/web-icons-library/arrows';\n\ntype TypeSliderEventButtonProps = {\n SetCountForward: () => void;\n SetCountBackward: () => void;\n SetButtonVisibility: () => void;\n SetSlideDatesBackwards: () => void;\n SetSlideDatesForward: () => void;\n};\n\ntype TypeSliderEventIntroProps = {\n headline?: HTMLElement | null;\n actions?: HTMLElement | null;\n};\n\ntype TypeSliderEventSlideContentProps = {\n dataSlider: HTMLDivElement;\n};\n\ntype TypeSliderEventSlideProps = TypeSliderEventSlideContentProps &\n TypeSliderEventButtonProps;\n\ntype TypeSliderEventScrollerProps = TypeSliderEventSlideProps &\n TypeSliderEventIntroProps;\n\ntype TypeSliderEventProps = TypeSliderEventSlideContentProps &\n TypeSliderEventIntroProps & {\n isThemeDark?: boolean;\n };\n\nconst TABLET = 750;\nconst DESKTOP = 1000;\nconst LARGE = 1300;\n\nconst ANIMATION_DURATION = 500;\n\nconst ATTRIBUTE_THEME = 'theme';\nconst THEME_DARK = 'dark';\n\nconst IS_THEME_DARK = `[${ATTRIBUTE_THEME}=\"${THEME_DARK}\"]`;\n\nconst ELEMENT_NAME = 'umd-element-slider-events';\nconst ELEMENT_SLIDER_EVENT_DECLRATION = 'slider-events-declaration';\nconst ELEMENT_SLIDER_EVENT_CONTAINER = 'slider-events-container';\nconst ELEMENT_SLIDER_EVENT_CONTAINER_WRAPPER = 'slider-event-container-wrapper';\nconst ELEMENT_SLIDER_EVENT_COVER = 'slider-event-cover';\n\nconst ELEMENT_SLIDER_EVENT_INTRO = 'slider-event-intro-container';\nconst ELEMENT_SLIDER_EVENT_INTRO_HEADLINE = 'slider-event-intro-headline';\nconst ELEMENT_SLIDER_EVENT_INTRO_ACTIONS = 'slider-event-intro-actions';\n\nconst ELEMENT_SLIDER_EVENT_SLIDE_CONTAINTER = 'slider-event-slide-container';\nconst ELEMENT_SLIDER_EVENT_SLIDE_WRAPPER = 'slider-event-slide-wrapper';\nconst ELEMENT_SLIDER_EVENT_SLIDE_SCROLLER = 'slider-event-slide-scroller';\n\nconst ELEMENT_SLIDER_EVENT_SLIDE_BUTTON = 'slider-event-slide-button';\nconst ELEMENT_SLIDER_EVENT_SLIDE_BUTTON_FORWARD = 'slider-event-button-forward';\nconst ELEMENT_SLIDER_EVENT_SLIDE_BUTTON_BACK = 'slider-event-button-back';\n\nconst OVERWRITE_THEME_DARK_CONTAINER = `.${ELEMENT_SLIDER_EVENT_CONTAINER}${IS_THEME_DARK}`;\nconst OVERWRITE_THEME_DARK_CONTAINER_WRAPPER = `.${ELEMENT_SLIDER_EVENT_CONTAINER}${IS_THEME_DARK} .${ELEMENT_SLIDER_EVENT_CONTAINER_WRAPPER}`;\nconst OVERWRITE_THEME_DARK_INTRO_COVER = `.${ELEMENT_SLIDER_EVENT_CONTAINER}${IS_THEME_DARK} .${ELEMENT_SLIDER_EVENT_COVER}`;\nconst OVERWRITE_THEME_DARK_INTRO_HEADLINE = `.${ELEMENT_SLIDER_EVENT_CONTAINER}${IS_THEME_DARK} .${ELEMENT_SLIDER_EVENT_INTRO_HEADLINE}`;\nconst OVERWRITE_THEME_DARK_ARROW = `.${ELEMENT_SLIDER_EVENT_CONTAINER}${IS_THEME_DARK} .${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON}`;\n\n// prettier-ignore\nconst VariationThemeDark = `\n ${OVERWRITE_THEME_DARK_CONTAINER_WRAPPER} {\n background-color: ${token.color.gray.darker};\n }\n\n ${OVERWRITE_THEME_DARK_CONTAINER} * {\n color: #fff !important;\n }\n\n ${OVERWRITE_THEME_DARK_INTRO_COVER} {\n background-color: ${token.color.gray.darker};\n }\n\n ${OVERWRITE_THEME_DARK_INTRO_HEADLINE} {\n color: ${token.color.white};\n }\n\n ${OVERWRITE_THEME_DARK_ARROW} {\n background-color: ${token.color.gray.dark};\n }\n\n ${OVERWRITE_THEME_DARK_ARROW} svg {\n fill: ${token.color.white}\n }\n\n ${OVERWRITE_THEME_DARK_ARROW}:hover {\n background-color: ${token.color.white}\n }\n\n ${OVERWRITE_THEME_DARK_ARROW}:hover svg {\n fill: ${token.color.black}\n }\n`\n\nconst ButtonStyles = `\n .${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON} {\n border: none;\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${token.color.gray.light};\n transition: background-color ${ANIMATION_DURATION}ms;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n z-index: 99;\n }\n\n @container ${ELEMENT_NAME} (min-width: ${TABLET}px) {\n .${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON} {\n width: 48px;\n height: 48px;\n }\n }\n\n .${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON}:hover {\n background-color: ${token.color.black};\n }\n\n .${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON}:hover svg {\n fill: ${token.color.white};\n }\n\n .${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON} svg {\n transition: fill .5s;\n fill: ${token.color.black};\n width: 16px;\n height: 6px;\n }\n\n @container ${ELEMENT_NAME} (min-width: ${TABLET}px) {\n .${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON} svg {\n width: 24px;\n height: 8px;\n }\n }\n\n .${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON_BACK} {\n left: 0;\n }\n\n @container ${ELEMENT_NAME} (max-width: ${TABLET - 1}px) {\n .${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON_BACK} {\n left: -24px;\n top: ${token.spacing.xs};\n }\n }\n\n .${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON_FORWARD} {\n right: 0;\n }\n\n @container ${ELEMENT_NAME} (max-width: ${TABLET - 1}px) {\n .${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON_FORWARD} {\n right: -24px;\n top: ${token.spacing.xs};\n }\n }\n`;\n\nconst DatesStyles = `\n .${ELEMENT_SLIDER_EVENT_SLIDE_CONTAINTER} {\n display: flex;\n position: relative;\n padding: 0 36px;\n }\n \n @container ${ELEMENT_NAME} (min-width: ${TABLET}px) {\n .${ELEMENT_SLIDER_EVENT_SLIDE_CONTAINTER} {\n padding: 0 60px;\n width: calc(100% - 96px);\n }\n }\n \n .${ELEMENT_SLIDER_EVENT_SLIDE_WRAPPER} {\n position: relative;\n width: 100%;\n overflow: hidden;\n min-height: 44px;\n }\n\n .${ELEMENT_SLIDER_EVENT_SLIDE_WRAPPER} ::slotted(*) {\n margin-bottom: 0 !important;\n }\n`;\n\nconst IntroStyles = `\n .${ELEMENT_SLIDER_EVENT_INTRO} {\n padding: 0 ${token.spacing.lg};\n position: relative;\n }\n\n @container ${ELEMENT_NAME} (max-width: ${TABLET - 1}px) {\n .${ELEMENT_SLIDER_EVENT_INTRO} {\n text-align: center;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${TABLET}px) {\n .${ELEMENT_SLIDER_EVENT_INTRO} {\n padding: 0;\n padding-right: 24px;\n padding-left: 0;\n width: 200px;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n .${ELEMENT_SLIDER_EVENT_INTRO} {\n width: 320px;\n }\n }\n\n .${ELEMENT_SLIDER_EVENT_INTRO_HEADLINE} {\n color: ${token.color.black};\n font-weight: 700;\n }\n\n .${ELEMENT_SLIDER_EVENT_INTRO_HEADLINE} + * {\n margin-top: ${token.spacing.min};\n display: block;\n }\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_SLIDER_EVENT_INTRO_HEADLINE}`]: typography.sans.larger,\n },\n })}\n\n * + .${ELEMENT_SLIDER_EVENT_INTRO_ACTIONS} {\n text-decoration: none;\n }\n \n .${ELEMENT_SLIDER_EVENT_INTRO_ACTIONS} {\n margin-top: ${token.spacing.min};\n }\n \n\n`;\n\nconst ScrollerStyles = `\n .${ELEMENT_SLIDER_EVENT_SLIDE_SCROLLER} {\n position: relative;\n z-index: 99;\n }\n \n @container ${ELEMENT_NAME} (min-width: ${TABLET}px) {\n .${ELEMENT_SLIDER_EVENT_SLIDE_SCROLLER} {\n display: flex;\n align-items: center;\n }\n }\n`;\n\nconst CoverStyles = `\n .${ELEMENT_SLIDER_EVENT_COVER} {\n display: block;\n position: absolute;\n width: 200vw;\n height: 100%;\n top: 0;\n left: -100vw;\n background-color: ${token.color.gray.lighter};\n }\n \n @container ${ELEMENT_NAME} (min-width: ${TABLET}px) {\n .${ELEMENT_SLIDER_EVENT_COVER} {\n width: 40vw;\n left: calc(100% - 1px);\n }\n }\n`;\n\n// prettier-ignore\nconst STYLES_SLIDER_EVENTS_ELEMENT = `\n .${ELEMENT_SLIDER_EVENT_DECLRATION} {\n container: ${ELEMENT_NAME} / inline-size;\n }\n \n .${ELEMENT_SLIDER_EVENT_CONTAINER_WRAPPER} {\n padding: 24px 0;\n background-color: ${token.color.gray.lighter};\n position: relative;\n z-index: 99;\n }\n \n @container ${ELEMENT_NAME} (max-width: 260px) {\n .${ELEMENT_SLIDER_EVENT_CONTAINER_WRAPPER} {\n display: none\n }\n }\n \n @container ${ELEMENT_NAME} (min-width: ${TABLET}px) {\n .${ELEMENT_SLIDER_EVENT_CONTAINER_WRAPPER} {\n padding: 40px;\n }\n }\n \n ${CoverStyles}\n ${ScrollerStyles}\n ${IntroStyles}\n ${DatesStyles}\n ${ButtonStyles}\n ${VariationThemeDark}\n`;\n\nconst CreateBackButton = ({\n SetCountBackward,\n SetButtonVisibility,\n SetSlideDatesBackwards,\n}: TypeSliderEventButtonProps) => {\n const button = document.createElement('button');\n\n button.innerHTML = iconArrowLeft;\n button.classList.add(ELEMENT_SLIDER_EVENT_SLIDE_BUTTON);\n button.classList.add(ELEMENT_SLIDER_EVENT_SLIDE_BUTTON_BACK);\n button.style.display = 'none';\n button.setAttribute('type', 'button');\n button.setAttribute('aria-label', 'see previous date');\n\n const clickEvent = () => {\n if (button.hasAttribute('disabled')) return;\n SetCountBackward();\n SetButtonVisibility();\n SetSlideDatesBackwards();\n };\n\n button.addEventListener('click', clickEvent);\n button.addEventListener('touchstart', clickEvent);\n\n return button;\n};\n\nconst CreateForwardButton = ({\n SetCountForward,\n SetButtonVisibility,\n SetSlideDatesForward,\n}: TypeSliderEventButtonProps) => {\n const button = document.createElement('button');\n\n button.innerHTML = iconArrowRight;\n button.classList.add(ELEMENT_SLIDER_EVENT_SLIDE_BUTTON);\n button.classList.add(ELEMENT_SLIDER_EVENT_SLIDE_BUTTON_FORWARD);\n button.setAttribute('type', 'button');\n button.setAttribute('aria-label', 'see next date');\n\n const clickEvent = () => {\n if (button.hasAttribute('disabled')) return;\n SetCountForward();\n SetButtonVisibility();\n SetSlideDatesForward();\n };\n\n button.addEventListener('click', clickEvent);\n button.addEventListener('touchstart', clickEvent);\n\n return button;\n};\n\nconst CreateDatesContainer = (props: TypeSliderEventSlideProps) => {\n const { dataSlider } = props;\n const container = document.createElement('div');\n const datesWrapper = document.createElement('div');\n const backButton = CreateBackButton(props);\n const forwardButton = CreateForwardButton(props);\n\n datesWrapper.classList.add(ELEMENT_SLIDER_EVENT_SLIDE_WRAPPER);\n dataSlider.style.display = 'block';\n datesWrapper.appendChild(dataSlider);\n\n container.classList.add(ELEMENT_SLIDER_EVENT_SLIDE_CONTAINTER);\n container.appendChild(backButton);\n container.appendChild(datesWrapper);\n container.appendChild(forwardButton);\n\n return container;\n};\n\nconst CreateIntroWrapper = (props: TypeSliderEventIntroProps) => {\n const { headline, actions } = props;\n const introductionWrapper = document.createElement('div');\n if (headline) {\n headline.classList.add(ELEMENT_SLIDER_EVENT_INTRO_HEADLINE);\n introductionWrapper.appendChild(headline);\n }\n if (actions) {\n introductionWrapper.appendChild(actions);\n }\n\n introductionWrapper.classList.add(ELEMENT_SLIDER_EVENT_INTRO);\n\n return introductionWrapper;\n};\n\nconst CreateScrollerWrapper = (props: TypeSliderEventScrollerProps) => {\n const container = document.createElement('div');\n const introductionWrapper = CreateIntroWrapper(props);\n const datesContainer = CreateDatesContainer(props);\n\n container.classList.add(ELEMENT_SLIDER_EVENT_SLIDE_SCROLLER);\n\n container.appendChild(introductionWrapper);\n container.appendChild(datesContainer);\n\n return container;\n};\n\nconst ShowNumberOfDates = ({ container }: { container: HTMLElement }) => {\n let count = 1;\n\n if (container.offsetWidth > TABLET) count = 2;\n if (container.offsetWidth > DESKTOP) count = 3;\n if (container.offsetWidth > LARGE) count = 4;\n\n return count;\n};\n\nconst JumpToDate = ({\n dataSlider,\n currentPosition,\n}: {\n dataSlider: HTMLElement;\n currentPosition: number;\n}) => {\n const dateElements = Array.from(\n dataSlider.querySelectorAll(':scope > *'),\n ) as HTMLDivElement[];\n\n if (!dateElements) return;\n\n const firstElement = dateElements[0];\n const currentPositonAboveZero = currentPosition > 0;\n const currentElement = dateElements[currentPosition];\n let endPosition = 0;\n\n if (currentPositonAboveZero) {\n endPosition = currentElement.offsetLeft - firstElement.offsetLeft;\n }\n\n dataSlider.style.transform = `translateX(${-endPosition}px)`;\n};\n\nconst ButtonVisibilityLogic = ({\n container,\n dataSlider,\n currentPosition,\n}: {\n container: HTMLElement;\n dataSlider: HTMLElement;\n currentPosition: number;\n}) => {\n const dateElements = Array.from(\n dataSlider.querySelectorAll(':scope > *'),\n ) as HTMLDivElement[];\n const buttons = Array.from(\n container.querySelectorAll(`.${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON}`),\n ) as HTMLButtonElement[];\n const count = ShowNumberOfDates({ container });\n const length = dateElements.length;\n\n buttons.forEach((button) => {\n button.setAttribute('disabled', '');\n\n setTimeout(() => {\n button.removeAttribute('disabled');\n }, ANIMATION_DURATION + 100);\n });\n\n if (currentPosition === 0) {\n buttons[0].style.display = 'none';\n } else {\n buttons[0].style.display = 'flex';\n }\n\n if (currentPosition >= length - count) {\n buttons[1].style.display = 'none';\n } else {\n buttons[1].style.display = 'flex';\n }\n};\n\nconst SizeDatesElements = ({\n container,\n dataSlider,\n isThemeDark,\n SetButtonVisibility,\n}: {\n container: HTMLElement;\n dataSlider: HTMLElement;\n isThemeDark?: boolean;\n SetButtonVisibility: () => void;\n}) => {\n const sliderWrapper = container.querySelector(\n `.${ELEMENT_SLIDER_EVENT_SLIDE_WRAPPER}`,\n ) as HTMLDivElement;\n\n const sizing = ({ sliderWrapper }: { sliderWrapper: HTMLDivElement }) => {\n const dateElements = Array.from(\n dataSlider.querySelectorAll(':scope > *'),\n ) as HTMLDivElement[];\n\n const sliderVisibility = ({ show = true }: { show?: boolean }) => {\n dataSlider.style.visibility = show ? 'visible' : 'hidden';\n };\n\n const setHeight = () => {\n const maxHeightElement = dateElements.sort((a, b) => {\n return a.offsetHeight - b.offsetHeight;\n })[0];\n const height =\n maxHeightElement.offsetHeight +\n parsePixelValue(maxHeightElement.style.marginTop);\n\n sliderWrapper.style.height = `${height}px`;\n };\n\n const setWidthPerDate = () => {\n const count = ShowNumberOfDates({ container });\n const dateElementSize = sliderWrapper.offsetWidth / count;\n const elementWidth = container.offsetWidth;\n const isMobile = elementWidth < TABLET;\n\n if (elementWidth === 0) {\n setTimeout(() => {\n sizing({ sliderWrapper });\n }, 200);\n return;\n }\n\n dataSlider.style.width = `${dateElements.length * dateElementSize}px`;\n\n dateElements.forEach((dateElement) => {\n dateElement.style.width = `${dateElementSize}px`;\n\n if (isMobile) {\n const lineColor = isThemeDark\n ? token.color.gray.mediumAA\n : token.color.gray.light;\n\n dateElement.style.display = `flex`;\n dateElement.style.justifyContent = `center`;\n dateElement.style.paddingRight = `0`;\n dateElement.style.marginTop = `${token.spacing.xs}`;\n dateElement.style.paddingTop = `${token.spacing.xs}`;\n dateElement.style.borderTop = `1px solid ${lineColor}`;\n } else {\n dateElement.style.display = `flex`;\n dateElement.style.justifyContent = `inherit`;\n dateElement.style.paddingRight = `${token.spacing.lg}`;\n\n dateElement.style.marginTop = `0`;\n dateElement.style.paddingTop = `0`;\n dateElement.style.borderTop = `none`;\n }\n });\n };\n\n sliderVisibility({ show: false });\n setWidthPerDate();\n setHeight();\n sliderVisibility({ show: true });\n SetButtonVisibility();\n };\n\n sizing({ sliderWrapper });\n};\n\nconst EventSlideDates = ({\n forward,\n dataSlider,\n}: {\n forward: boolean;\n dataSlider: HTMLElement;\n}) => {\n const dateElements = Array.from(\n dataSlider.querySelectorAll(':scope > *'),\n ) as HTMLDivElement[];\n const width = dateElements[0].offsetWidth;\n const loop = 30;\n const sliderStyle = dataSlider.style.transform;\n const sliderPosition = sliderStyle\n ? parseInt(sliderStyle.replace(/[^\\d.]/g, ''))\n : 0;\n const endPosition = forward\n ? Math.floor(sliderPosition + width)\n : Math.floor(sliderPosition - width);\n const increment = width / loop;\n let index = 1;\n\n const slideFunction = () => {\n const incrementIncrease = increment * index;\n const postion = forward\n ? sliderPosition + incrementIncrease\n : sliderPosition - incrementIncrease;\n\n if (loop > index) {\n index++;\n window.requestAnimationFrame(slideFunction);\n dataSlider.style.transform = `translateX(${-postion}px)`;\n } else {\n dataSlider.style.transform = `translateX(${-endPosition}px)`;\n }\n };\n\n window.requestAnimationFrame(slideFunction);\n};\n\nconst EventSwipe = ({\n container,\n dataSlider,\n currentPosition,\n SetCountBackward,\n SetCountForward,\n SetSlideDatesBackwards,\n SetSlideDatesForward,\n SetButtonVisibility,\n}: {\n container: HTMLElement;\n dataSlider: HTMLElement;\n currentPosition: number;\n SetCountBackward: () => void;\n SetCountForward: () => void;\n SetSlideDatesBackwards: () => void;\n SetSlideDatesForward: () => void;\n SetButtonVisibility: () => void;\n}) => {\n const dateElements = Array.from(\n dataSlider.querySelectorAll(':scope > *'),\n ) as HTMLDivElement[];\n const count = ShowNumberOfDates({ container });\n const swipes = (isrightswipe: Boolean) => {\n if (isrightswipe) {\n if (currentPosition > 0) {\n SetCountBackward();\n SetSlideDatesBackwards();\n }\n } else {\n if (currentPosition <= dateElements.length - count) {\n SetCountForward();\n SetSlideDatesForward();\n }\n }\n\n SetButtonVisibility();\n };\n\n setupSwipeDetection({ container, callback: swipes });\n};\n\nconst OnLoadStyles = ({ dataSlider }: { dataSlider: HTMLElement }) => {\n dataSlider.style.display = 'flex';\n dataSlider.style.position = 'absolute';\n dataSlider.style.top = '0';\n dataSlider.style.left = '0';\n};\n\nexport default (props: TypeSliderEventProps) =>\n (() => {\n const { isThemeDark, dataSlider } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const wrapper = document.createElement('div');\n const coverElement = document.createElement('div');\n const CommonDomElements = {\n container,\n dataSlider,\n };\n\n const SetCountForward = () => (currentPosition = currentPosition + 1);\n const SetCountBackward = () => (currentPosition = currentPosition - 1);\n const SetButtonVisibility = () =>\n ButtonVisibilityLogic({ ...CommonDomElements, currentPosition });\n const size = () =>\n SizeDatesElements({\n ...CommonDomElements,\n isThemeDark,\n SetButtonVisibility,\n });\n const SetJumpToDate = () =>\n JumpToDate({ ...CommonDomElements, currentPosition });\n const SetSlideDatesForward = () =>\n EventSlideDates({ ...CommonDomElements, forward: true });\n const SetSlideDatesBackwards = () =>\n EventSlideDates({ ...CommonDomElements, forward: false });\n const SetEventSwipe = () =>\n EventSwipe({\n ...CommonDomElements,\n currentPosition,\n SetCountBackward,\n SetCountForward,\n SetSlideDatesBackwards,\n SetSlideDatesForward,\n SetButtonVisibility,\n });\n const EventResize = () => {\n size();\n SetJumpToDate();\n SetButtonVisibility();\n };\n const containerWrapper = CreateScrollerWrapper({\n ...props,\n SetCountForward,\n SetCountBackward,\n SetButtonVisibility,\n SetSlideDatesBackwards,\n SetSlideDatesForward,\n });\n const load = () => {\n OnLoadStyles({ dataSlider });\n EventResize();\n SetEventSwipe();\n };\n\n let currentPosition = 0;\n let styles = STYLES_SLIDER_EVENTS_ELEMENT;\n\n dataSlider.style.visibility = 'hidden';\n\n coverElement.classList.add(ELEMENT_SLIDER_EVENT_COVER);\n\n wrapper.classList.add(ELEMENT_SLIDER_EVENT_CONTAINER_WRAPPER);\n\n wrapper.appendChild(containerWrapper);\n wrapper.appendChild(coverElement);\n\n if (isThemeDark) container.setAttribute(ATTRIBUTE_THEME, THEME_DARK);\n container.classList.add(ELEMENT_SLIDER_EVENT_CONTAINER);\n container.appendChild(wrapper);\n\n declaration.classList.add(ELEMENT_SLIDER_EVENT_DECLRATION);\n declaration.appendChild(container);\n\n window.addEventListener('resize', debounce(EventResize, 20));\n\n return {\n element: declaration,\n styles,\n events: {\n load,\n size,\n },\n };\n })();\n"],"names":["iconArrowLeft","iconArrowRight","sliderWrapper"],"mappings":"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"}
1
+ {"version":3,"file":"events.mjs","sources":["../../../source/composite/slider/events.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport { jssToCSS } from '@universityofmaryland/web-utilities-library/styles';\nimport { setupSwipeDetection } from '@universityofmaryland/web-utilities-library/events';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport { parsePixelValue } from '@universityofmaryland/web-utilities-library/styles';\nimport {\n arrow_left as iconArrowLeft,\n arrow_right as iconArrowRight,\n} from '@universityofmaryland/web-icons-library/arrows';\n\ntype TypeSliderEventButtonProps = {\n SetCountForward: () => void;\n SetCountBackward: () => void;\n SetButtonVisibility: () => void;\n SetSlideDatesBackwards: () => void;\n SetSlideDatesForward: () => void;\n};\n\ntype TypeSliderEventIntroProps = {\n headline?: HTMLElement | null;\n actions?: HTMLElement | null;\n};\n\ntype TypeSliderEventSlideContentProps = {\n dataSlider: HTMLDivElement;\n};\n\ntype TypeSliderEventSlideProps = TypeSliderEventSlideContentProps &\n TypeSliderEventButtonProps;\n\ntype TypeSliderEventScrollerProps = TypeSliderEventSlideProps &\n TypeSliderEventIntroProps;\n\ntype TypeSliderEventProps = TypeSliderEventSlideContentProps &\n TypeSliderEventIntroProps & {\n isThemeDark?: boolean;\n };\n\nconst TABLET = 750;\nconst DESKTOP = 1000;\nconst LARGE = 1300;\n\nconst ANIMATION_DURATION = 500;\n\nconst ATTRIBUTE_THEME = 'theme';\nconst THEME_DARK = 'dark';\n\nconst IS_THEME_DARK = `[${ATTRIBUTE_THEME}=\"${THEME_DARK}\"]`;\n\nconst ELEMENT_NAME = 'umd-element-slider-events';\nconst ELEMENT_SLIDER_EVENT_DECLRATION = 'slider-events-declaration';\nconst ELEMENT_SLIDER_EVENT_CONTAINER = 'slider-events-container';\nconst ELEMENT_SLIDER_EVENT_CONTAINER_WRAPPER = 'slider-event-container-wrapper';\nconst ELEMENT_SLIDER_EVENT_COVER = 'slider-event-cover';\n\nconst ELEMENT_SLIDER_EVENT_INTRO = 'slider-event-intro-container';\nconst ELEMENT_SLIDER_EVENT_INTRO_HEADLINE = 'slider-event-intro-headline';\nconst ELEMENT_SLIDER_EVENT_INTRO_ACTIONS = 'slider-event-intro-actions';\n\nconst ELEMENT_SLIDER_EVENT_SLIDE_CONTAINTER = 'slider-event-slide-container';\nconst ELEMENT_SLIDER_EVENT_SLIDE_WRAPPER = 'slider-event-slide-wrapper';\nconst ELEMENT_SLIDER_EVENT_SLIDE_SCROLLER = 'slider-event-slide-scroller';\n\nconst ELEMENT_SLIDER_EVENT_SLIDE_BUTTON = 'slider-event-slide-button';\nconst ELEMENT_SLIDER_EVENT_SLIDE_BUTTON_FORWARD = 'slider-event-button-forward';\nconst ELEMENT_SLIDER_EVENT_SLIDE_BUTTON_BACK = 'slider-event-button-back';\n\nconst OVERWRITE_THEME_DARK_CONTAINER = `.${ELEMENT_SLIDER_EVENT_CONTAINER}${IS_THEME_DARK}`;\nconst OVERWRITE_THEME_DARK_CONTAINER_WRAPPER = `.${ELEMENT_SLIDER_EVENT_CONTAINER}${IS_THEME_DARK} .${ELEMENT_SLIDER_EVENT_CONTAINER_WRAPPER}`;\nconst OVERWRITE_THEME_DARK_INTRO_COVER = `.${ELEMENT_SLIDER_EVENT_CONTAINER}${IS_THEME_DARK} .${ELEMENT_SLIDER_EVENT_COVER}`;\nconst OVERWRITE_THEME_DARK_INTRO_HEADLINE = `.${ELEMENT_SLIDER_EVENT_CONTAINER}${IS_THEME_DARK} .${ELEMENT_SLIDER_EVENT_INTRO_HEADLINE}`;\nconst OVERWRITE_THEME_DARK_ARROW = `.${ELEMENT_SLIDER_EVENT_CONTAINER}${IS_THEME_DARK} .${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON}`;\n\n// prettier-ignore\nconst VariationThemeDark = `\n ${OVERWRITE_THEME_DARK_CONTAINER_WRAPPER} {\n background-color: ${token.color.gray.darker};\n }\n\n ${OVERWRITE_THEME_DARK_CONTAINER} * {\n color: #fff !important;\n }\n\n ${OVERWRITE_THEME_DARK_INTRO_COVER} {\n background-color: ${token.color.gray.darker};\n }\n\n ${OVERWRITE_THEME_DARK_INTRO_HEADLINE} {\n color: ${token.color.white};\n }\n\n ${OVERWRITE_THEME_DARK_ARROW} {\n background-color: ${token.color.gray.dark};\n }\n\n ${OVERWRITE_THEME_DARK_ARROW} svg {\n fill: ${token.color.white}\n }\n\n ${OVERWRITE_THEME_DARK_ARROW}:hover {\n background-color: ${token.color.white}\n }\n\n ${OVERWRITE_THEME_DARK_ARROW}:hover svg {\n fill: ${token.color.black}\n }\n`\n\nconst ButtonStyles = `\n .${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON} {\n border: none;\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${token.color.gray.light};\n transition: background-color ${ANIMATION_DURATION}ms;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n z-index: 99;\n }\n\n @container ${ELEMENT_NAME} (min-width: ${TABLET}px) {\n .${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON} {\n width: 48px;\n height: 48px;\n }\n }\n\n .${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON}:hover {\n background-color: ${token.color.black};\n }\n\n .${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON}:hover svg {\n fill: ${token.color.white};\n }\n\n .${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON} svg {\n transition: fill .5s;\n fill: ${token.color.black};\n width: 16px;\n height: 6px;\n }\n\n @container ${ELEMENT_NAME} (min-width: ${TABLET}px) {\n .${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON} svg {\n width: 24px;\n height: 8px;\n }\n }\n\n .${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON_BACK} {\n left: 0;\n }\n\n @container ${ELEMENT_NAME} (max-width: ${TABLET - 1}px) {\n .${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON_BACK} {\n left: -24px;\n top: ${token.spacing.xs};\n }\n }\n\n .${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON_FORWARD} {\n right: 0;\n }\n\n @container ${ELEMENT_NAME} (max-width: ${TABLET - 1}px) {\n .${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON_FORWARD} {\n right: -24px;\n top: ${token.spacing.xs};\n }\n }\n`;\n\nconst DatesStyles = `\n .${ELEMENT_SLIDER_EVENT_SLIDE_CONTAINTER} {\n display: flex;\n position: relative;\n padding: 0 36px;\n }\n \n @container ${ELEMENT_NAME} (min-width: ${TABLET}px) {\n .${ELEMENT_SLIDER_EVENT_SLIDE_CONTAINTER} {\n padding: 0 60px;\n width: calc(100% - 96px);\n }\n }\n \n .${ELEMENT_SLIDER_EVENT_SLIDE_WRAPPER} {\n position: relative;\n width: 100%;\n overflow: hidden;\n min-height: 44px;\n }\n\n .${ELEMENT_SLIDER_EVENT_SLIDE_WRAPPER} ::slotted(*) {\n margin-bottom: 0 !important;\n }\n`;\n\nconst IntroStyles = `\n .${ELEMENT_SLIDER_EVENT_INTRO} {\n padding: 0 ${token.spacing.lg};\n position: relative;\n }\n\n @container ${ELEMENT_NAME} (max-width: ${TABLET - 1}px) {\n .${ELEMENT_SLIDER_EVENT_INTRO} {\n text-align: center;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${TABLET}px) {\n .${ELEMENT_SLIDER_EVENT_INTRO} {\n padding: 0;\n padding-right: 24px;\n padding-left: 0;\n width: 200px;\n }\n }\n\n @container ${ELEMENT_NAME} (min-width: ${LARGE}px) {\n .${ELEMENT_SLIDER_EVENT_INTRO} {\n width: 320px;\n }\n }\n\n .${ELEMENT_SLIDER_EVENT_INTRO_HEADLINE} {\n color: ${token.color.black};\n font-weight: 700;\n }\n\n .${ELEMENT_SLIDER_EVENT_INTRO_HEADLINE} + * {\n margin-top: ${token.spacing.min};\n display: block;\n }\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_SLIDER_EVENT_INTRO_HEADLINE}`]: typography.sans.larger,\n },\n })}\n\n * + .${ELEMENT_SLIDER_EVENT_INTRO_ACTIONS} {\n text-decoration: none;\n }\n \n .${ELEMENT_SLIDER_EVENT_INTRO_ACTIONS} {\n margin-top: ${token.spacing.min};\n }\n \n\n`;\n\nconst ScrollerStyles = `\n .${ELEMENT_SLIDER_EVENT_SLIDE_SCROLLER} {\n position: relative;\n z-index: 99;\n }\n \n @container ${ELEMENT_NAME} (min-width: ${TABLET}px) {\n .${ELEMENT_SLIDER_EVENT_SLIDE_SCROLLER} {\n display: flex;\n align-items: center;\n }\n }\n`;\n\nconst CoverStyles = `\n .${ELEMENT_SLIDER_EVENT_COVER} {\n display: block;\n position: absolute;\n width: 200vw;\n height: 100%;\n top: 0;\n left: -100vw;\n background-color: ${token.color.gray.lighter};\n }\n \n @container ${ELEMENT_NAME} (min-width: ${TABLET}px) {\n .${ELEMENT_SLIDER_EVENT_COVER} {\n width: 40vw;\n left: calc(100% - 1px);\n }\n }\n`;\n\n// prettier-ignore\nconst STYLES_SLIDER_EVENTS_ELEMENT = `\n .${ELEMENT_SLIDER_EVENT_DECLRATION} {\n container: ${ELEMENT_NAME} / inline-size;\n }\n \n .${ELEMENT_SLIDER_EVENT_CONTAINER_WRAPPER} {\n padding: 24px 0;\n background-color: ${token.color.gray.lighter};\n position: relative;\n z-index: 99;\n }\n \n @container ${ELEMENT_NAME} (max-width: 260px) {\n .${ELEMENT_SLIDER_EVENT_CONTAINER_WRAPPER} {\n display: none\n }\n }\n \n @container ${ELEMENT_NAME} (min-width: ${TABLET}px) {\n .${ELEMENT_SLIDER_EVENT_CONTAINER_WRAPPER} {\n padding: 40px;\n }\n }\n \n ${CoverStyles}\n ${ScrollerStyles}\n ${IntroStyles}\n ${DatesStyles}\n ${ButtonStyles}\n ${VariationThemeDark}\n`;\n\nconst CreateBackButton = ({\n SetCountBackward,\n SetButtonVisibility,\n SetSlideDatesBackwards,\n}: TypeSliderEventButtonProps) => {\n const button = document.createElement('button');\n\n button.innerHTML = iconArrowLeft;\n button.classList.add(ELEMENT_SLIDER_EVENT_SLIDE_BUTTON);\n button.classList.add(ELEMENT_SLIDER_EVENT_SLIDE_BUTTON_BACK);\n button.style.display = 'none';\n button.setAttribute('type', 'button');\n button.setAttribute('aria-label', 'see previous date');\n\n const clickEvent = () => {\n if (button.hasAttribute('disabled')) return;\n SetCountBackward();\n SetButtonVisibility();\n SetSlideDatesBackwards();\n };\n\n button.addEventListener('click', clickEvent);\n button.addEventListener('touchstart', clickEvent);\n\n return button;\n};\n\nconst CreateForwardButton = ({\n SetCountForward,\n SetButtonVisibility,\n SetSlideDatesForward,\n}: TypeSliderEventButtonProps) => {\n const button = document.createElement('button');\n\n button.innerHTML = iconArrowRight;\n button.classList.add(ELEMENT_SLIDER_EVENT_SLIDE_BUTTON);\n button.classList.add(ELEMENT_SLIDER_EVENT_SLIDE_BUTTON_FORWARD);\n button.setAttribute('type', 'button');\n button.setAttribute('aria-label', 'see next date');\n\n const clickEvent = () => {\n if (button.hasAttribute('disabled')) return;\n SetCountForward();\n SetButtonVisibility();\n SetSlideDatesForward();\n };\n\n button.addEventListener('click', clickEvent);\n button.addEventListener('touchstart', clickEvent);\n\n return button;\n};\n\nconst CreateDatesContainer = (props: TypeSliderEventSlideProps) => {\n const { dataSlider } = props;\n const container = document.createElement('div');\n const datesWrapper = document.createElement('div');\n const backButton = CreateBackButton(props);\n const forwardButton = CreateForwardButton(props);\n\n datesWrapper.classList.add(ELEMENT_SLIDER_EVENT_SLIDE_WRAPPER);\n dataSlider.style.display = 'block';\n datesWrapper.appendChild(dataSlider);\n\n container.classList.add(ELEMENT_SLIDER_EVENT_SLIDE_CONTAINTER);\n container.appendChild(backButton);\n container.appendChild(datesWrapper);\n container.appendChild(forwardButton);\n\n return container;\n};\n\nconst CreateIntroWrapper = (props: TypeSliderEventIntroProps) => {\n const { headline, actions } = props;\n const introductionWrapper = document.createElement('div');\n if (headline) {\n headline.classList.add(ELEMENT_SLIDER_EVENT_INTRO_HEADLINE);\n introductionWrapper.appendChild(headline);\n }\n if (actions) {\n introductionWrapper.appendChild(actions);\n }\n\n introductionWrapper.classList.add(ELEMENT_SLIDER_EVENT_INTRO);\n\n return introductionWrapper;\n};\n\nconst CreateScrollerWrapper = (props: TypeSliderEventScrollerProps) => {\n const container = document.createElement('div');\n const introductionWrapper = CreateIntroWrapper(props);\n const datesContainer = CreateDatesContainer(props);\n\n container.classList.add(ELEMENT_SLIDER_EVENT_SLIDE_SCROLLER);\n\n container.appendChild(introductionWrapper);\n container.appendChild(datesContainer);\n\n return container;\n};\n\nconst ShowNumberOfDates = ({ container }: { container: HTMLElement }) => {\n let count = 1;\n\n if (container.offsetWidth > TABLET) count = 2;\n if (container.offsetWidth > DESKTOP) count = 3;\n if (container.offsetWidth > LARGE) count = 4;\n\n return count;\n};\n\nconst JumpToDate = ({\n dataSlider,\n currentPosition,\n}: {\n dataSlider: HTMLElement;\n currentPosition: number;\n}) => {\n const dateElements = Array.from(\n dataSlider.querySelectorAll(':scope > *'),\n ) as HTMLDivElement[];\n\n if (!dateElements) return;\n\n const firstElement = dateElements[0];\n const currentPositonAboveZero = currentPosition > 0;\n const currentElement = dateElements[currentPosition];\n let endPosition = 0;\n\n if (currentPositonAboveZero) {\n endPosition = currentElement.offsetLeft - firstElement.offsetLeft;\n }\n\n dataSlider.style.transform = `translateX(${-endPosition}px)`;\n};\n\nconst ButtonVisibilityLogic = ({\n container,\n dataSlider,\n currentPosition,\n}: {\n container: HTMLElement;\n dataSlider: HTMLElement;\n currentPosition: number;\n}) => {\n const dateElements = Array.from(\n dataSlider.querySelectorAll(':scope > *'),\n ) as HTMLDivElement[];\n const buttons = Array.from(\n container.querySelectorAll(`.${ELEMENT_SLIDER_EVENT_SLIDE_BUTTON}`),\n ) as HTMLButtonElement[];\n const count = ShowNumberOfDates({ container });\n const length = dateElements.length;\n\n buttons.forEach((button) => {\n button.setAttribute('disabled', '');\n\n setTimeout(() => {\n button.removeAttribute('disabled');\n }, ANIMATION_DURATION + 100);\n });\n\n if (currentPosition === 0) {\n buttons[0].style.display = 'none';\n } else {\n buttons[0].style.display = 'flex';\n }\n\n if (currentPosition >= length - count) {\n buttons[1].style.display = 'none';\n } else {\n buttons[1].style.display = 'flex';\n }\n};\n\nconst SizeDatesElements = ({\n container,\n dataSlider,\n isThemeDark,\n SetButtonVisibility,\n}: {\n container: HTMLElement;\n dataSlider: HTMLElement;\n isThemeDark?: boolean;\n SetButtonVisibility: () => void;\n}) => {\n const sliderWrapper = container.querySelector(\n `.${ELEMENT_SLIDER_EVENT_SLIDE_WRAPPER}`,\n ) as HTMLDivElement;\n\n const sizing = ({ sliderWrapper }: { sliderWrapper: HTMLDivElement }) => {\n const dateElements = Array.from(\n dataSlider.querySelectorAll(':scope > *'),\n ) as HTMLDivElement[];\n\n const sliderVisibility = ({ show = true }: { show?: boolean }) => {\n dataSlider.style.visibility = show ? 'visible' : 'hidden';\n };\n\n const setHeight = () => {\n const maxHeightElement = dateElements.sort((a, b) => {\n return a.offsetHeight - b.offsetHeight;\n })[0];\n const height =\n maxHeightElement.offsetHeight +\n parsePixelValue(maxHeightElement.style.marginTop);\n\n sliderWrapper.style.height = `${height}px`;\n };\n\n const setWidthPerDate = () => {\n const count = ShowNumberOfDates({ container });\n const dateElementSize = sliderWrapper.offsetWidth / count;\n const elementWidth = container.offsetWidth;\n const isMobile = elementWidth < TABLET;\n\n if (elementWidth === 0) {\n setTimeout(() => {\n sizing({ sliderWrapper });\n }, 200);\n return;\n }\n\n dataSlider.style.width = `${dateElements.length * dateElementSize}px`;\n\n dateElements.forEach((dateElement) => {\n dateElement.style.width = `${dateElementSize}px`;\n\n if (isMobile) {\n const lineColor = isThemeDark\n ? token.color.gray.mediumAA\n : token.color.gray.light;\n\n dateElement.style.display = `flex`;\n dateElement.style.justifyContent = `center`;\n dateElement.style.paddingRight = `0`;\n dateElement.style.marginTop = `${token.spacing.xs}`;\n dateElement.style.paddingTop = `${token.spacing.xs}`;\n dateElement.style.borderTop = `1px solid ${lineColor}`;\n } else {\n dateElement.style.display = `flex`;\n dateElement.style.justifyContent = `inherit`;\n dateElement.style.paddingRight = `${token.spacing.lg}`;\n\n dateElement.style.marginTop = `0`;\n dateElement.style.paddingTop = `0`;\n dateElement.style.borderTop = `none`;\n }\n });\n };\n\n sliderVisibility({ show: false });\n setWidthPerDate();\n setHeight();\n sliderVisibility({ show: true });\n SetButtonVisibility();\n };\n\n sizing({ sliderWrapper });\n};\n\nconst EventSlideDates = ({\n forward,\n dataSlider,\n}: {\n forward: boolean;\n dataSlider: HTMLElement;\n}) => {\n const dateElements = Array.from(\n dataSlider.querySelectorAll(':scope > *'),\n ) as HTMLDivElement[];\n const width = dateElements[0].offsetWidth;\n const loop = 30;\n const sliderStyle = dataSlider.style.transform;\n const sliderPosition = sliderStyle\n ? parseInt(sliderStyle.replace(/[^\\d.]/g, ''))\n : 0;\n const endPosition = forward\n ? Math.floor(sliderPosition + width)\n : Math.floor(sliderPosition - width);\n const increment = width / loop;\n let index = 1;\n\n const slideFunction = () => {\n const incrementIncrease = increment * index;\n const postion = forward\n ? sliderPosition + incrementIncrease\n : sliderPosition - incrementIncrease;\n\n if (loop > index) {\n index++;\n window.requestAnimationFrame(slideFunction);\n dataSlider.style.transform = `translateX(${-postion}px)`;\n } else {\n dataSlider.style.transform = `translateX(${-endPosition}px)`;\n }\n };\n\n window.requestAnimationFrame(slideFunction);\n};\n\nconst EventSwipe = ({\n container,\n dataSlider,\n currentPosition,\n SetCountBackward,\n SetCountForward,\n SetSlideDatesBackwards,\n SetSlideDatesForward,\n SetButtonVisibility,\n}: {\n container: HTMLElement;\n dataSlider: HTMLElement;\n currentPosition: number;\n SetCountBackward: () => void;\n SetCountForward: () => void;\n SetSlideDatesBackwards: () => void;\n SetSlideDatesForward: () => void;\n SetButtonVisibility: () => void;\n}) => {\n const dateElements = Array.from(\n dataSlider.querySelectorAll(':scope > *'),\n ) as HTMLDivElement[];\n const count = ShowNumberOfDates({ container });\n const swipes = (isrightswipe: Boolean) => {\n if (isrightswipe) {\n if (currentPosition > 0) {\n SetCountBackward();\n SetSlideDatesBackwards();\n }\n } else {\n if (currentPosition <= dateElements.length - count) {\n SetCountForward();\n SetSlideDatesForward();\n }\n }\n\n SetButtonVisibility();\n };\n\n setupSwipeDetection({ container, callback: swipes });\n};\n\nconst OnLoadStyles = ({ dataSlider }: { dataSlider: HTMLElement }) => {\n dataSlider.style.display = 'flex';\n dataSlider.style.position = 'absolute';\n dataSlider.style.top = '0';\n dataSlider.style.left = '0';\n};\n\nexport default (props: TypeSliderEventProps) =>\n (() => {\n const { isThemeDark, dataSlider } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const wrapper = document.createElement('div');\n const coverElement = document.createElement('div');\n const CommonDomElements = {\n container,\n dataSlider,\n };\n\n const SetCountForward = () => (currentPosition = currentPosition + 1);\n const SetCountBackward = () => (currentPosition = currentPosition - 1);\n const SetButtonVisibility = () =>\n ButtonVisibilityLogic({ ...CommonDomElements, currentPosition });\n const size = () =>\n SizeDatesElements({\n ...CommonDomElements,\n isThemeDark,\n SetButtonVisibility,\n });\n const SetJumpToDate = () =>\n JumpToDate({ ...CommonDomElements, currentPosition });\n const SetSlideDatesForward = () =>\n EventSlideDates({ ...CommonDomElements, forward: true });\n const SetSlideDatesBackwards = () =>\n EventSlideDates({ ...CommonDomElements, forward: false });\n const SetEventSwipe = () =>\n EventSwipe({\n ...CommonDomElements,\n currentPosition,\n SetCountBackward,\n SetCountForward,\n SetSlideDatesBackwards,\n SetSlideDatesForward,\n SetButtonVisibility,\n });\n const EventResize = () => {\n size();\n SetJumpToDate();\n SetButtonVisibility();\n };\n const containerWrapper = CreateScrollerWrapper({\n ...props,\n SetCountForward,\n SetCountBackward,\n SetButtonVisibility,\n SetSlideDatesBackwards,\n SetSlideDatesForward,\n });\n const load = () => {\n OnLoadStyles({ dataSlider });\n EventResize();\n SetEventSwipe();\n };\n\n let currentPosition = 0;\n let styles = STYLES_SLIDER_EVENTS_ELEMENT;\n\n dataSlider.style.visibility = 'hidden';\n\n coverElement.classList.add(ELEMENT_SLIDER_EVENT_COVER);\n\n wrapper.classList.add(ELEMENT_SLIDER_EVENT_CONTAINER_WRAPPER);\n\n wrapper.appendChild(containerWrapper);\n wrapper.appendChild(coverElement);\n\n if (isThemeDark) container.setAttribute(ATTRIBUTE_THEME, THEME_DARK);\n container.classList.add(ELEMENT_SLIDER_EVENT_CONTAINER);\n container.appendChild(wrapper);\n\n declaration.classList.add(ELEMENT_SLIDER_EVENT_DECLRATION);\n declaration.appendChild(container);\n\n window.addEventListener('resize', debounce(EventResize, 20));\n\n return {\n element: declaration,\n styles,\n events: {\n load,\n size,\n },\n };\n })();\n"],"names":["iconArrowLeft","iconArrowRight","sliderWrapper"],"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 performance = require("@universityofmaryland/web-utilities-library/performance");
4
4
  const social = require("@universityofmaryland/web-icons-library/social");
5
5
  const communication = require("@universityofmaryland/web-icons-library/communication");
@@ -1 +1 @@
1
- {"version":3,"file":"sharing.js","sources":["../../../source/composite/social/sharing.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport { facebook as iconFacebook, x as iconX } from '@universityofmaryland/web-icons-library/social';\nimport { email as iconEmail } from '@universityofmaryland/web-icons-library/communication';\nimport { print as iconPrint } from '@universityofmaryland/web-icons-library/controls';\n\ntype TypeSocialSharingProps = {\n isFixed?: boolean;\n includeFacebook?: boolean;\n includeTwitter?: boolean;\n includeEmail?: boolean;\n includePrint?: boolean;\n title?: string | null;\n url?: string | null;\n};\n\nconst ATTRIBUTE_FIXED = 'fixed';\n\nconst IS_FIXED = `[${ATTRIBUTE_FIXED}]`;\n\nconst ELEMENT_NAME = 'umd-element-social-sharing';\nconst ELEMENT_SOCIAL_SHARING_DECLARATION = 'social-sharing-declarion';\nconst ELEMENT_SOCIAL_SHARING_CONTAINER = 'social-sharing-container';\n\nconst OVERWRITE_FIXED_CONTAINER = `.${ELEMENT_SOCIAL_SHARING_CONTAINER}${IS_FIXED}`;\n\n// prettier-ignore\nconst OverwriteFixed = `\n @media (${token.media.queries.tablet.min}) {\n ${OVERWRITE_FIXED_CONTAINER} {\n flex-direction: column;\n }\n }\n\n @media (${token.media.queries.tablet.min}) {\n ${OVERWRITE_FIXED_CONTAINER} > *:not(:last-child) {\n border-right: 1px solid ${token.color.gray.light};\n border-bottom: none;\n }\n }\n`\n\n// prettier-ignore\nconst ContainerStyles = `\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} {\n display: flex;\n transition: transform 250ms ease-in-out;\n }\n \n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > * {\n height: ${token.spacing['2xl']};\n width: ${token.spacing['2xl']};\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid ${token.color.gray.light};\n background-color: ${token.color.white};\n transition: background-color 250ms ease-in-out;\n }\n\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > button:hover,\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > button:focus,\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > a:hover,\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > a:focus {\n background-color: ${token.color.gray.dark};\n\n & svg path {\n fill: ${token.color.white};\n }\n }\n\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > *:not(:last-child) {\n border-right: none;\n }\n \n .${ELEMENT_SOCIAL_SHARING_CONTAINER} svg {\n display: block;\n transition: fill 250ms ease-in-out;\n }\n \n .${ELEMENT_SOCIAL_SHARING_CONTAINER} svg path {\n fill: ${token.color.black};\n }\n\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} svg#icon_facebook {\n width: 34px;\n height: 30px;\n }\n\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} svg#icon_email {\n width: 21px;\n height: 20px;\n }\n`\n\n// prettier-ignore\nconst STYLES_SOCIAL_SHARING_ELEMENT = `\n .${ELEMENT_SOCIAL_SHARING_DECLARATION} {\n container: ${ELEMENT_NAME} / inline-size;\n }\n\n ${ContainerStyles}\n ${OverwriteFixed}\n`;\n\nconst CreateFacebook = () => {\n const button = document.createElement('button');\n\n button.innerHTML = iconFacebook;\n button.setAttribute('aria-label', 'share this page on facebook');\n\n button.addEventListener('click', () => {\n const shareURL = `http://www.facebook.com/share.php?u=${encodeURIComponent(\n window.location.toString(),\n )}`;\n\n window.open(\n shareURL,\n 'Facebook',\n 'toolbar=0,status=0,width=626,height=436',\n );\n });\n\n return button;\n};\n\nconst CreateTwitter = ({ url, title }: { url: string; title: string }) => {\n const button = document.createElement('button');\n\n button.innerHTML = iconX;\n button.setAttribute('aria-label', 'share this page on twitter');\n\n button.addEventListener('click', () => {\n const shareURL = `http://twitter.com/share?url=${url}&text=${title}`;\n\n window.open(shareURL, 'sharer', 'toolbar=0,status=0,width=626,height=436');\n });\n\n return button;\n};\n\nconst CreateEmail = ({ url, title }: { url: string; title: string }) => {\n const link = document.createElement('a');\n\n link.href = `mailto:?subject=${title}&body=${url}`;\n link.setAttribute('aria-label', 'email this page');\n link.setAttribute('target', '_blank');\n\n link.innerHTML = iconEmail;\n\n return link;\n};\n\nconst CreatePrint = () => {\n const button = document.createElement('button');\n\n button.innerHTML = iconPrint;\n button.setAttribute('aria-label', 'print this page');\n button.addEventListener('click', () => window.print());\n\n return button;\n};\n\nconst CreateSocialSharingElement = (props: TypeSocialSharingProps) =>\n (() => {\n const {\n includeFacebook = true,\n includeTwitter = true,\n includeEmail = false,\n includePrint = false,\n title: defaultTitle,\n url: defaultUrl,\n isFixed = false,\n } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const defaultStartingPosition = `translateX(-100vh)`;\n const title = defaultTitle || document.title;\n const url = defaultUrl || window.location.toString();\n\n const getSpacing = () => (window.innerWidth > 768 ? 40 : 8);\n let startingPosition: null | number = null;\n let isShowing = false;\n\n const eventResize = () => {\n startingPosition = declaration.getBoundingClientRect().left;\n };\n\n const eventScroll = () => {\n const windowHeight = window.innerHeight;\n const pagePosition = window.scrollY;\n const isNearBottom =\n pagePosition + windowHeight >=\n document.body.scrollHeight - windowHeight / 2;\n const showWindow = !isNearBottom;\n\n if (showWindow) {\n setVisiblePosition();\n } else {\n setHiddenPosition();\n }\n };\n\n const setVisiblePosition = () => {\n if (!isShowing) {\n container.style.transform = 'translateX(0)';\n isShowing = true;\n }\n };\n\n const setHiddenPosition = () => {\n if (isShowing) {\n isShowing = false;\n\n if (startingPosition) {\n const spacing = getSpacing();\n const translateAmount = window.innerWidth - startingPosition;\n const position = translateAmount + spacing + container.offsetWidth;\n\n container.style.transform = `translateX(-${position}px)`;\n } else {\n container.style.transform = defaultStartingPosition;\n }\n }\n };\n\n const load = () => {\n startingPosition = declaration.getBoundingClientRect().left;\n container.style.transition = 'none';\n setHiddenPosition();\n\n setTimeout(() => {\n container.style.transition = 'transform 250ms ease-in-out';\n }, 100);\n };\n\n container.classList.add(ELEMENT_SOCIAL_SHARING_CONTAINER);\n\n if (includeFacebook) {\n container.appendChild(CreateFacebook());\n }\n\n if (includeTwitter) {\n container.appendChild(\n CreateTwitter({\n title,\n url,\n }),\n );\n }\n\n if (includeEmail) {\n container.appendChild(\n CreateEmail({\n title,\n url,\n }),\n );\n }\n\n if (includePrint) {\n container.appendChild(CreatePrint());\n }\n\n declaration.appendChild(container);\n declaration.classList.add(ELEMENT_SOCIAL_SHARING_DECLARATION);\n\n if (isFixed) {\n container.setAttribute(ATTRIBUTE_FIXED, '');\n window.addEventListener(\n 'scroll',\n debounce(() => eventScroll(), 20),\n );\n\n window.addEventListener(\n 'resize',\n debounce(() => eventResize(), 20),\n );\n }\n\n return {\n element: declaration,\n events: {\n load,\n },\n styles: STYLES_SOCIAL_SHARING_ELEMENT,\n };\n })();\n\nexport default CreateSocialSharingElement;\n"],"names":["token","iconFacebook","iconX","iconEmail","iconPrint","debounce"],"mappings":"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"}
1
+ {"version":3,"file":"sharing.js","sources":["../../../source/composite/social/sharing.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport { facebook as iconFacebook, x as iconX } from '@universityofmaryland/web-icons-library/social';\nimport { email as iconEmail } from '@universityofmaryland/web-icons-library/communication';\nimport { print as iconPrint } from '@universityofmaryland/web-icons-library/controls';\n\ntype TypeSocialSharingProps = {\n isFixed?: boolean;\n includeFacebook?: boolean;\n includeTwitter?: boolean;\n includeEmail?: boolean;\n includePrint?: boolean;\n title?: string | null;\n url?: string | null;\n};\n\nconst ATTRIBUTE_FIXED = 'fixed';\n\nconst IS_FIXED = `[${ATTRIBUTE_FIXED}]`;\n\nconst ELEMENT_NAME = 'umd-element-social-sharing';\nconst ELEMENT_SOCIAL_SHARING_DECLARATION = 'social-sharing-declarion';\nconst ELEMENT_SOCIAL_SHARING_CONTAINER = 'social-sharing-container';\n\nconst OVERWRITE_FIXED_CONTAINER = `.${ELEMENT_SOCIAL_SHARING_CONTAINER}${IS_FIXED}`;\n\n// prettier-ignore\nconst OverwriteFixed = `\n @media (${token.media.queries.tablet.min}) {\n ${OVERWRITE_FIXED_CONTAINER} {\n flex-direction: column;\n }\n }\n\n @media (${token.media.queries.tablet.min}) {\n ${OVERWRITE_FIXED_CONTAINER} > *:not(:last-child) {\n border-right: 1px solid ${token.color.gray.light};\n border-bottom: none;\n }\n }\n`\n\n// prettier-ignore\nconst ContainerStyles = `\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} {\n display: flex;\n transition: transform 250ms ease-in-out;\n }\n \n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > * {\n height: ${token.spacing['2xl']};\n width: ${token.spacing['2xl']};\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid ${token.color.gray.light};\n background-color: ${token.color.white};\n transition: background-color 250ms ease-in-out;\n }\n\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > button:hover,\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > button:focus,\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > a:hover,\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > a:focus {\n background-color: ${token.color.gray.dark};\n\n & svg path {\n fill: ${token.color.white};\n }\n }\n\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > *:not(:last-child) {\n border-right: none;\n }\n \n .${ELEMENT_SOCIAL_SHARING_CONTAINER} svg {\n display: block;\n transition: fill 250ms ease-in-out;\n }\n \n .${ELEMENT_SOCIAL_SHARING_CONTAINER} svg path {\n fill: ${token.color.black};\n }\n\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} svg#icon_facebook {\n width: 34px;\n height: 30px;\n }\n\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} svg#icon_email {\n width: 21px;\n height: 20px;\n }\n`\n\n// prettier-ignore\nconst STYLES_SOCIAL_SHARING_ELEMENT = `\n .${ELEMENT_SOCIAL_SHARING_DECLARATION} {\n container: ${ELEMENT_NAME} / inline-size;\n }\n\n ${ContainerStyles}\n ${OverwriteFixed}\n`;\n\nconst CreateFacebook = () => {\n const button = document.createElement('button');\n\n button.innerHTML = iconFacebook;\n button.setAttribute('aria-label', 'share this page on facebook');\n\n button.addEventListener('click', () => {\n const shareURL = `http://www.facebook.com/share.php?u=${encodeURIComponent(\n window.location.toString(),\n )}`;\n\n window.open(\n shareURL,\n 'Facebook',\n 'toolbar=0,status=0,width=626,height=436',\n );\n });\n\n return button;\n};\n\nconst CreateTwitter = ({ url, title }: { url: string; title: string }) => {\n const button = document.createElement('button');\n\n button.innerHTML = iconX;\n button.setAttribute('aria-label', 'share this page on twitter');\n\n button.addEventListener('click', () => {\n const shareURL = `http://twitter.com/share?url=${url}&text=${title}`;\n\n window.open(shareURL, 'sharer', 'toolbar=0,status=0,width=626,height=436');\n });\n\n return button;\n};\n\nconst CreateEmail = ({ url, title }: { url: string; title: string }) => {\n const link = document.createElement('a');\n\n link.href = `mailto:?subject=${title}&body=${url}`;\n link.setAttribute('aria-label', 'email this page');\n link.setAttribute('target', '_blank');\n\n link.innerHTML = iconEmail;\n\n return link;\n};\n\nconst CreatePrint = () => {\n const button = document.createElement('button');\n\n button.innerHTML = iconPrint;\n button.setAttribute('aria-label', 'print this page');\n button.addEventListener('click', () => window.print());\n\n return button;\n};\n\nconst CreateSocialSharingElement = (props: TypeSocialSharingProps) =>\n (() => {\n const {\n includeFacebook = true,\n includeTwitter = true,\n includeEmail = false,\n includePrint = false,\n title: defaultTitle,\n url: defaultUrl,\n isFixed = false,\n } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const defaultStartingPosition = `translateX(-100vh)`;\n const title = defaultTitle || document.title;\n const url = defaultUrl || window.location.toString();\n\n const getSpacing = () => (window.innerWidth > 768 ? 40 : 8);\n let startingPosition: null | number = null;\n let isShowing = false;\n\n const eventResize = () => {\n startingPosition = declaration.getBoundingClientRect().left;\n };\n\n const eventScroll = () => {\n const windowHeight = window.innerHeight;\n const pagePosition = window.scrollY;\n const isNearBottom =\n pagePosition + windowHeight >=\n document.body.scrollHeight - windowHeight / 2;\n const showWindow = !isNearBottom;\n\n if (showWindow) {\n setVisiblePosition();\n } else {\n setHiddenPosition();\n }\n };\n\n const setVisiblePosition = () => {\n if (!isShowing) {\n container.style.transform = 'translateX(0)';\n isShowing = true;\n }\n };\n\n const setHiddenPosition = () => {\n if (isShowing) {\n isShowing = false;\n\n if (startingPosition) {\n const spacing = getSpacing();\n const translateAmount = window.innerWidth - startingPosition;\n const position = translateAmount + spacing + container.offsetWidth;\n\n container.style.transform = `translateX(-${position}px)`;\n } else {\n container.style.transform = defaultStartingPosition;\n }\n }\n };\n\n const load = () => {\n startingPosition = declaration.getBoundingClientRect().left;\n container.style.transition = 'none';\n setHiddenPosition();\n\n setTimeout(() => {\n container.style.transition = 'transform 250ms ease-in-out';\n }, 100);\n };\n\n container.classList.add(ELEMENT_SOCIAL_SHARING_CONTAINER);\n\n if (includeFacebook) {\n container.appendChild(CreateFacebook());\n }\n\n if (includeTwitter) {\n container.appendChild(\n CreateTwitter({\n title,\n url,\n }),\n );\n }\n\n if (includeEmail) {\n container.appendChild(\n CreateEmail({\n title,\n url,\n }),\n );\n }\n\n if (includePrint) {\n container.appendChild(CreatePrint());\n }\n\n declaration.appendChild(container);\n declaration.classList.add(ELEMENT_SOCIAL_SHARING_DECLARATION);\n\n if (isFixed) {\n container.setAttribute(ATTRIBUTE_FIXED, '');\n window.addEventListener(\n 'scroll',\n debounce(() => eventScroll(), 20),\n );\n\n window.addEventListener(\n 'resize',\n debounce(() => eventResize(), 20),\n );\n }\n\n return {\n element: declaration,\n events: {\n load,\n },\n styles: STYLES_SOCIAL_SHARING_ELEMENT,\n };\n })();\n\nexport default CreateSocialSharingElement;\n"],"names":["token","iconFacebook","iconX","iconEmail","iconPrint","debounce"],"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 { debounce } from "@universityofmaryland/web-utilities-library/performance";
3
3
  import { facebook, x } from "@universityofmaryland/web-icons-library/social";
4
4
  import { email } from "@universityofmaryland/web-icons-library/communication";
@@ -1 +1 @@
1
- {"version":3,"file":"sharing.mjs","sources":["../../../source/composite/social/sharing.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport { facebook as iconFacebook, x as iconX } from '@universityofmaryland/web-icons-library/social';\nimport { email as iconEmail } from '@universityofmaryland/web-icons-library/communication';\nimport { print as iconPrint } from '@universityofmaryland/web-icons-library/controls';\n\ntype TypeSocialSharingProps = {\n isFixed?: boolean;\n includeFacebook?: boolean;\n includeTwitter?: boolean;\n includeEmail?: boolean;\n includePrint?: boolean;\n title?: string | null;\n url?: string | null;\n};\n\nconst ATTRIBUTE_FIXED = 'fixed';\n\nconst IS_FIXED = `[${ATTRIBUTE_FIXED}]`;\n\nconst ELEMENT_NAME = 'umd-element-social-sharing';\nconst ELEMENT_SOCIAL_SHARING_DECLARATION = 'social-sharing-declarion';\nconst ELEMENT_SOCIAL_SHARING_CONTAINER = 'social-sharing-container';\n\nconst OVERWRITE_FIXED_CONTAINER = `.${ELEMENT_SOCIAL_SHARING_CONTAINER}${IS_FIXED}`;\n\n// prettier-ignore\nconst OverwriteFixed = `\n @media (${token.media.queries.tablet.min}) {\n ${OVERWRITE_FIXED_CONTAINER} {\n flex-direction: column;\n }\n }\n\n @media (${token.media.queries.tablet.min}) {\n ${OVERWRITE_FIXED_CONTAINER} > *:not(:last-child) {\n border-right: 1px solid ${token.color.gray.light};\n border-bottom: none;\n }\n }\n`\n\n// prettier-ignore\nconst ContainerStyles = `\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} {\n display: flex;\n transition: transform 250ms ease-in-out;\n }\n \n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > * {\n height: ${token.spacing['2xl']};\n width: ${token.spacing['2xl']};\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid ${token.color.gray.light};\n background-color: ${token.color.white};\n transition: background-color 250ms ease-in-out;\n }\n\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > button:hover,\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > button:focus,\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > a:hover,\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > a:focus {\n background-color: ${token.color.gray.dark};\n\n & svg path {\n fill: ${token.color.white};\n }\n }\n\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > *:not(:last-child) {\n border-right: none;\n }\n \n .${ELEMENT_SOCIAL_SHARING_CONTAINER} svg {\n display: block;\n transition: fill 250ms ease-in-out;\n }\n \n .${ELEMENT_SOCIAL_SHARING_CONTAINER} svg path {\n fill: ${token.color.black};\n }\n\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} svg#icon_facebook {\n width: 34px;\n height: 30px;\n }\n\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} svg#icon_email {\n width: 21px;\n height: 20px;\n }\n`\n\n// prettier-ignore\nconst STYLES_SOCIAL_SHARING_ELEMENT = `\n .${ELEMENT_SOCIAL_SHARING_DECLARATION} {\n container: ${ELEMENT_NAME} / inline-size;\n }\n\n ${ContainerStyles}\n ${OverwriteFixed}\n`;\n\nconst CreateFacebook = () => {\n const button = document.createElement('button');\n\n button.innerHTML = iconFacebook;\n button.setAttribute('aria-label', 'share this page on facebook');\n\n button.addEventListener('click', () => {\n const shareURL = `http://www.facebook.com/share.php?u=${encodeURIComponent(\n window.location.toString(),\n )}`;\n\n window.open(\n shareURL,\n 'Facebook',\n 'toolbar=0,status=0,width=626,height=436',\n );\n });\n\n return button;\n};\n\nconst CreateTwitter = ({ url, title }: { url: string; title: string }) => {\n const button = document.createElement('button');\n\n button.innerHTML = iconX;\n button.setAttribute('aria-label', 'share this page on twitter');\n\n button.addEventListener('click', () => {\n const shareURL = `http://twitter.com/share?url=${url}&text=${title}`;\n\n window.open(shareURL, 'sharer', 'toolbar=0,status=0,width=626,height=436');\n });\n\n return button;\n};\n\nconst CreateEmail = ({ url, title }: { url: string; title: string }) => {\n const link = document.createElement('a');\n\n link.href = `mailto:?subject=${title}&body=${url}`;\n link.setAttribute('aria-label', 'email this page');\n link.setAttribute('target', '_blank');\n\n link.innerHTML = iconEmail;\n\n return link;\n};\n\nconst CreatePrint = () => {\n const button = document.createElement('button');\n\n button.innerHTML = iconPrint;\n button.setAttribute('aria-label', 'print this page');\n button.addEventListener('click', () => window.print());\n\n return button;\n};\n\nconst CreateSocialSharingElement = (props: TypeSocialSharingProps) =>\n (() => {\n const {\n includeFacebook = true,\n includeTwitter = true,\n includeEmail = false,\n includePrint = false,\n title: defaultTitle,\n url: defaultUrl,\n isFixed = false,\n } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const defaultStartingPosition = `translateX(-100vh)`;\n const title = defaultTitle || document.title;\n const url = defaultUrl || window.location.toString();\n\n const getSpacing = () => (window.innerWidth > 768 ? 40 : 8);\n let startingPosition: null | number = null;\n let isShowing = false;\n\n const eventResize = () => {\n startingPosition = declaration.getBoundingClientRect().left;\n };\n\n const eventScroll = () => {\n const windowHeight = window.innerHeight;\n const pagePosition = window.scrollY;\n const isNearBottom =\n pagePosition + windowHeight >=\n document.body.scrollHeight - windowHeight / 2;\n const showWindow = !isNearBottom;\n\n if (showWindow) {\n setVisiblePosition();\n } else {\n setHiddenPosition();\n }\n };\n\n const setVisiblePosition = () => {\n if (!isShowing) {\n container.style.transform = 'translateX(0)';\n isShowing = true;\n }\n };\n\n const setHiddenPosition = () => {\n if (isShowing) {\n isShowing = false;\n\n if (startingPosition) {\n const spacing = getSpacing();\n const translateAmount = window.innerWidth - startingPosition;\n const position = translateAmount + spacing + container.offsetWidth;\n\n container.style.transform = `translateX(-${position}px)`;\n } else {\n container.style.transform = defaultStartingPosition;\n }\n }\n };\n\n const load = () => {\n startingPosition = declaration.getBoundingClientRect().left;\n container.style.transition = 'none';\n setHiddenPosition();\n\n setTimeout(() => {\n container.style.transition = 'transform 250ms ease-in-out';\n }, 100);\n };\n\n container.classList.add(ELEMENT_SOCIAL_SHARING_CONTAINER);\n\n if (includeFacebook) {\n container.appendChild(CreateFacebook());\n }\n\n if (includeTwitter) {\n container.appendChild(\n CreateTwitter({\n title,\n url,\n }),\n );\n }\n\n if (includeEmail) {\n container.appendChild(\n CreateEmail({\n title,\n url,\n }),\n );\n }\n\n if (includePrint) {\n container.appendChild(CreatePrint());\n }\n\n declaration.appendChild(container);\n declaration.classList.add(ELEMENT_SOCIAL_SHARING_DECLARATION);\n\n if (isFixed) {\n container.setAttribute(ATTRIBUTE_FIXED, '');\n window.addEventListener(\n 'scroll',\n debounce(() => eventScroll(), 20),\n );\n\n window.addEventListener(\n 'resize',\n debounce(() => eventResize(), 20),\n );\n }\n\n return {\n element: declaration,\n events: {\n load,\n },\n styles: STYLES_SOCIAL_SHARING_ELEMENT,\n };\n })();\n\nexport default CreateSocialSharingElement;\n"],"names":["iconFacebook","iconX","iconEmail","iconPrint"],"mappings":"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"}
1
+ {"version":3,"file":"sharing.mjs","sources":["../../../source/composite/social/sharing.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport { facebook as iconFacebook, x as iconX } from '@universityofmaryland/web-icons-library/social';\nimport { email as iconEmail } from '@universityofmaryland/web-icons-library/communication';\nimport { print as iconPrint } from '@universityofmaryland/web-icons-library/controls';\n\ntype TypeSocialSharingProps = {\n isFixed?: boolean;\n includeFacebook?: boolean;\n includeTwitter?: boolean;\n includeEmail?: boolean;\n includePrint?: boolean;\n title?: string | null;\n url?: string | null;\n};\n\nconst ATTRIBUTE_FIXED = 'fixed';\n\nconst IS_FIXED = `[${ATTRIBUTE_FIXED}]`;\n\nconst ELEMENT_NAME = 'umd-element-social-sharing';\nconst ELEMENT_SOCIAL_SHARING_DECLARATION = 'social-sharing-declarion';\nconst ELEMENT_SOCIAL_SHARING_CONTAINER = 'social-sharing-container';\n\nconst OVERWRITE_FIXED_CONTAINER = `.${ELEMENT_SOCIAL_SHARING_CONTAINER}${IS_FIXED}`;\n\n// prettier-ignore\nconst OverwriteFixed = `\n @media (${token.media.queries.tablet.min}) {\n ${OVERWRITE_FIXED_CONTAINER} {\n flex-direction: column;\n }\n }\n\n @media (${token.media.queries.tablet.min}) {\n ${OVERWRITE_FIXED_CONTAINER} > *:not(:last-child) {\n border-right: 1px solid ${token.color.gray.light};\n border-bottom: none;\n }\n }\n`\n\n// prettier-ignore\nconst ContainerStyles = `\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} {\n display: flex;\n transition: transform 250ms ease-in-out;\n }\n \n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > * {\n height: ${token.spacing['2xl']};\n width: ${token.spacing['2xl']};\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid ${token.color.gray.light};\n background-color: ${token.color.white};\n transition: background-color 250ms ease-in-out;\n }\n\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > button:hover,\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > button:focus,\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > a:hover,\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > a:focus {\n background-color: ${token.color.gray.dark};\n\n & svg path {\n fill: ${token.color.white};\n }\n }\n\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} > *:not(:last-child) {\n border-right: none;\n }\n \n .${ELEMENT_SOCIAL_SHARING_CONTAINER} svg {\n display: block;\n transition: fill 250ms ease-in-out;\n }\n \n .${ELEMENT_SOCIAL_SHARING_CONTAINER} svg path {\n fill: ${token.color.black};\n }\n\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} svg#icon_facebook {\n width: 34px;\n height: 30px;\n }\n\n .${ELEMENT_SOCIAL_SHARING_CONTAINER} svg#icon_email {\n width: 21px;\n height: 20px;\n }\n`\n\n// prettier-ignore\nconst STYLES_SOCIAL_SHARING_ELEMENT = `\n .${ELEMENT_SOCIAL_SHARING_DECLARATION} {\n container: ${ELEMENT_NAME} / inline-size;\n }\n\n ${ContainerStyles}\n ${OverwriteFixed}\n`;\n\nconst CreateFacebook = () => {\n const button = document.createElement('button');\n\n button.innerHTML = iconFacebook;\n button.setAttribute('aria-label', 'share this page on facebook');\n\n button.addEventListener('click', () => {\n const shareURL = `http://www.facebook.com/share.php?u=${encodeURIComponent(\n window.location.toString(),\n )}`;\n\n window.open(\n shareURL,\n 'Facebook',\n 'toolbar=0,status=0,width=626,height=436',\n );\n });\n\n return button;\n};\n\nconst CreateTwitter = ({ url, title }: { url: string; title: string }) => {\n const button = document.createElement('button');\n\n button.innerHTML = iconX;\n button.setAttribute('aria-label', 'share this page on twitter');\n\n button.addEventListener('click', () => {\n const shareURL = `http://twitter.com/share?url=${url}&text=${title}`;\n\n window.open(shareURL, 'sharer', 'toolbar=0,status=0,width=626,height=436');\n });\n\n return button;\n};\n\nconst CreateEmail = ({ url, title }: { url: string; title: string }) => {\n const link = document.createElement('a');\n\n link.href = `mailto:?subject=${title}&body=${url}`;\n link.setAttribute('aria-label', 'email this page');\n link.setAttribute('target', '_blank');\n\n link.innerHTML = iconEmail;\n\n return link;\n};\n\nconst CreatePrint = () => {\n const button = document.createElement('button');\n\n button.innerHTML = iconPrint;\n button.setAttribute('aria-label', 'print this page');\n button.addEventListener('click', () => window.print());\n\n return button;\n};\n\nconst CreateSocialSharingElement = (props: TypeSocialSharingProps) =>\n (() => {\n const {\n includeFacebook = true,\n includeTwitter = true,\n includeEmail = false,\n includePrint = false,\n title: defaultTitle,\n url: defaultUrl,\n isFixed = false,\n } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const defaultStartingPosition = `translateX(-100vh)`;\n const title = defaultTitle || document.title;\n const url = defaultUrl || window.location.toString();\n\n const getSpacing = () => (window.innerWidth > 768 ? 40 : 8);\n let startingPosition: null | number = null;\n let isShowing = false;\n\n const eventResize = () => {\n startingPosition = declaration.getBoundingClientRect().left;\n };\n\n const eventScroll = () => {\n const windowHeight = window.innerHeight;\n const pagePosition = window.scrollY;\n const isNearBottom =\n pagePosition + windowHeight >=\n document.body.scrollHeight - windowHeight / 2;\n const showWindow = !isNearBottom;\n\n if (showWindow) {\n setVisiblePosition();\n } else {\n setHiddenPosition();\n }\n };\n\n const setVisiblePosition = () => {\n if (!isShowing) {\n container.style.transform = 'translateX(0)';\n isShowing = true;\n }\n };\n\n const setHiddenPosition = () => {\n if (isShowing) {\n isShowing = false;\n\n if (startingPosition) {\n const spacing = getSpacing();\n const translateAmount = window.innerWidth - startingPosition;\n const position = translateAmount + spacing + container.offsetWidth;\n\n container.style.transform = `translateX(-${position}px)`;\n } else {\n container.style.transform = defaultStartingPosition;\n }\n }\n };\n\n const load = () => {\n startingPosition = declaration.getBoundingClientRect().left;\n container.style.transition = 'none';\n setHiddenPosition();\n\n setTimeout(() => {\n container.style.transition = 'transform 250ms ease-in-out';\n }, 100);\n };\n\n container.classList.add(ELEMENT_SOCIAL_SHARING_CONTAINER);\n\n if (includeFacebook) {\n container.appendChild(CreateFacebook());\n }\n\n if (includeTwitter) {\n container.appendChild(\n CreateTwitter({\n title,\n url,\n }),\n );\n }\n\n if (includeEmail) {\n container.appendChild(\n CreateEmail({\n title,\n url,\n }),\n );\n }\n\n if (includePrint) {\n container.appendChild(CreatePrint());\n }\n\n declaration.appendChild(container);\n declaration.classList.add(ELEMENT_SOCIAL_SHARING_DECLARATION);\n\n if (isFixed) {\n container.setAttribute(ATTRIBUTE_FIXED, '');\n window.addEventListener(\n 'scroll',\n debounce(() => eventScroll(), 20),\n );\n\n window.addEventListener(\n 'resize',\n debounce(() => eventResize(), 20),\n );\n }\n\n return {\n element: declaration,\n events: {\n load,\n },\n styles: STYLES_SOCIAL_SHARING_ELEMENT,\n };\n })();\n\nexport default CreateSocialSharingElement;\n"],"names":["iconFacebook","iconX","iconEmail","iconPrint"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"standard.d.ts","sourceRoot":"","sources":["../../../source/composite/tabs/standard.ts"],"names":[],"mappings":"AAMA,KAAK,aAAa,GAAG;IACnB,aAAa,EAAE,WAAW,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;yBAyPc,OAAO,aAAa;;;;;;;;AAApC,wBA6HO"}
1
+ {"version":3,"file":"standard.d.ts","sourceRoot":"","sources":["../../../source/composite/tabs/standard.ts"],"names":[],"mappings":"AAMA,KAAK,aAAa,GAAG;IACnB,aAAa,EAAE,WAAW,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;yBA0Pc,OAAO,aAAa;;;;;;;;AAApC,wBA6HO"}
@@ -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 typography = require("@universityofmaryland/web-styles-library/typography");
4
4
  const animation = require("@universityofmaryland/web-utilities-library/animation");
5
5
  const performance = require("@universityofmaryland/web-utilities-library/performance");
@@ -51,7 +51,7 @@ const DisplayLineStyles = `
51
51
  left: -2px;
52
52
  width: 2px;
53
53
  background-color: ${token__namespace.color.gray.light};
54
- z-index: -1;
54
+ z-index: 9;
55
55
  }
56
56
 
57
57
  ${OVERWRITE_VERTICAL_LAYOUT_LINE} {
@@ -67,6 +67,7 @@ const DisplayLineStyles = `
67
67
  display: block;
68
68
  background-color: ${token__namespace.color.red};
69
69
  transform: translate(0);
70
+ z-index: 99;
70
71
  }
71
72
  `;
72
73
  const STYLES_TABS_ELEMENT = `
@@ -1 +1 @@
1
- {"version":3,"file":"standard.js","sources":["../../../source/composite/tabs/standard.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport { smoothScrollToElement } from '@universityofmaryland/web-utilities-library/animation';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport { parsePixelValue } from '@universityofmaryland/web-utilities-library/styles';\n\ntype TypeTabsProps = {\n tabsContainer: HTMLElement;\n isThemeDark?: boolean;\n shadowContent?: HTMLSlotElement;\n topPosition?: string | null;\n};\n\ntype TypeGetElements = {\n getContainer: () => HTMLElement;\n getTabsContainer: () => HTMLElement;\n getDisplayLineStrip: () => HTMLElement;\n getDisplayLine: () => HTMLElement;\n getContentStrip: () => HTMLElement;\n getButtons: () => HTMLElement[];\n getContents: () => HTMLElement[];\n};\n\ntype TypeGetState = {\n getActiveTab: () => number;\n getIsFlexLayout: () => boolean;\n getButtonWidths: () => number;\n getButtonHeights: () => number;\n getIsThemeDark: boolean;\n};\n\nconst ATTRIBUTE_LAYOUT_HORIZONTAL = 'data-layout-horizontal';\nconst ATTRIBUTE_ARIA_EXPANDED = 'aria-expanded';\nconst ATTRIBUTE_THEME = 'theme';\nconst THEME_DARK = 'dark';\n\nconst ELEMENT_NAME = 'umd-element-tabs';\nconst ELEMENT_DECLARATION = 'tabs-declaration';\nconst ELEMENT_CONTAINER = 'tabs-container';\nconst ELEMENT_CONTENT_STRIP = 'tabs-content-strip';\nconst ELEMENT_ACTIVE_LINE_STRIP = 'tab-active-line-strip';\nconst ELEMENT_ACTIVE_LINE = 'tab-active-line';\n\nconst IS_LAYOUT_HORIZONTAL = `[${ATTRIBUTE_LAYOUT_HORIZONTAL}]`;\nconst IS_THEME_DARK = `[${ATTRIBUTE_THEME}=\"${THEME_DARK}\"]`;\n\nconst OVERWRITE_VERTICAL_LAYOUT_CONTAINER = `.${ELEMENT_CONTAINER}${IS_LAYOUT_HORIZONTAL}`;\nconst OVERWRITE_VERTICAL_LAYOUT_LINE = `${OVERWRITE_VERTICAL_LAYOUT_CONTAINER} .${ELEMENT_ACTIVE_LINE_STRIP}`;\n\nconst OVERWRITE_THEME_DARK_CONTAINER = `.${ELEMENT_CONTAINER}${IS_THEME_DARK}`;\nconst OVERWRITE_THEME_DARK_LINE = `${OVERWRITE_THEME_DARK_CONTAINER} .${ELEMENT_ACTIVE_LINE_STRIP}`;\n\n// prettier-ignore\nconst OverwriteThemeStyles = `\n ${OVERWRITE_THEME_DARK_LINE} {\n background-color: ${token.color.gray.dark};\n }\n`;\n\n// prettier-ignore\nconst DisplayLineStyles = `\n .${ELEMENT_ACTIVE_LINE_STRIP} {\n position: absolute;\n height: 100%;\n top: 0;\n left: -2px;\n width: 2px;\n background-color: ${token.color.gray.light};\n z-index: -1;\n }\n\n ${OVERWRITE_VERTICAL_LAYOUT_LINE} {\n height: 2px;\n left: 0;\n top: inherit;\n }\n\n .${ELEMENT_ACTIVE_LINE} {\n position: absolute;\n width: 0;\n height: 0;\n display: block;\n background-color: ${token.color.red};\n transform: translate(0);\n }\n`;\n\n// prettier-ignore\nconst STYLES_TABS_ELEMENT = `\n .${ELEMENT_DECLARATION} {\n container: ${ELEMENT_NAME} / inline-size;\n position: relative;\n }\n\n ${DisplayLineStyles}\n ${OverwriteThemeStyles}\n`;\n\nconst SetDisplay = ({\n GetElements,\n GetState,\n transition = true,\n additionalSpread,\n}: {\n GetElements: TypeGetElements;\n GetState: TypeGetState;\n transition?: boolean;\n additionalSpread?: number | null;\n}) => {\n const {\n getContainer,\n getTabsContainer,\n getDisplayLineStrip,\n getDisplayLine,\n getContentStrip,\n getButtons,\n getContents,\n } = GetElements;\n const {\n getActiveTab,\n getIsFlexLayout,\n getButtonWidths,\n getButtonHeights,\n getIsThemeDark,\n } = GetState;\n\n const container = getContainer();\n const tabsContainer = getTabsContainer();\n const displayLineStrip = getDisplayLineStrip();\n const displayLine = getDisplayLine();\n const strip = getContentStrip();\n const buttons = getButtons();\n const contents = getContents();\n const isFlexLayout = getIsFlexLayout();\n const activeTab = getActiveTab();\n const buttonWidths = getButtonWidths();\n const buttonHeights = getButtonHeights();\n\n const SetActiveContent = () =>\n contents.map((content, index) => {\n if (!content) return;\n\n if (index === activeTab) {\n content.style.display = 'block';\n } else {\n content.style.display = 'none';\n }\n });\n\n const SetActiveButton = () =>\n buttons.map((button, index) => {\n if (index === activeTab) {\n button.setAttribute(ATTRIBUTE_ARIA_EXPANDED, 'true');\n if (getIsThemeDark) button.style.color = `${token.color.white}`;\n } else {\n button.setAttribute(ATTRIBUTE_ARIA_EXPANDED, 'false');\n if (getIsThemeDark) button.style.color = `${token.color.gray.light}`;\n }\n });\n\n const SetContentPosition = () => {\n const activeContent = contents[activeTab];\n const space = isFlexLayout\n ? parsePixelValue(token.spacing.xl)\n : parsePixelValue(token.spacing.md);\n\n if (activeContent) {\n if (transition) {\n strip.style.transition = 'height 0.5s';\n } else {\n strip.style.transition = 'none';\n }\n\n strip.style.height = `${activeContent.offsetHeight + space}px`;\n activeContent.style.top = `${tabsContainer.offsetHeight + space}px`;\n activeContent.style.width = '100%';\n\n if (!isFlexLayout && transition) {\n const convertedSpace = parsePixelValue(token.spacing.md);\n const spread = additionalSpread\n ? convertedSpace + additionalSpread\n : convertedSpace;\n\n smoothScrollToElement({\n element: activeContent,\n spread,\n });\n }\n }\n };\n\n const SetContainerStyles = () => {\n if (isFlexLayout) {\n container.setAttribute(ATTRIBUTE_LAYOUT_HORIZONTAL, '');\n } else {\n container.removeAttribute(ATTRIBUTE_LAYOUT_HORIZONTAL);\n }\n };\n\n const StyleWrapperStyles = () => {\n if (isFlexLayout) {\n tabsContainer.style.display = 'flex';\n } else {\n tabsContainer.style.display = 'block';\n }\n };\n\n const SetLineStyles = () => {\n const activeButton = buttons[activeTab];\n\n if (transition) {\n displayLine.style.transition =\n 'width 0.5s ease-in-out, height 0.5s ease-in-out, transform 0.5s ease-in-out';\n } else {\n displayLine.style.transition = 'none';\n }\n\n if (isFlexLayout) {\n let offset = 0;\n\n if (activeTab > 0) {\n for (let i = 0; i < activeTab; i++) {\n offset += buttons[i].offsetWidth;\n }\n }\n\n displayLineStrip.style.width = `${buttonWidths}px`;\n displayLineStrip.style.height = `2px`;\n displayLine.style.top = `inherit`;\n displayLine.style.left = `0`;\n displayLine.style.width = `${activeButton.offsetWidth}px`;\n displayLine.style.height = `2px`;\n displayLine.style.transform = `translate(${offset}px, 0)`;\n } else {\n let offset = 0;\n\n if (activeTab > 0) {\n for (let i = 0; i < activeTab; i++) {\n offset += buttons[i].offsetHeight;\n }\n }\n\n displayLineStrip.style.width = `2px`;\n displayLineStrip.style.height = `${buttonHeights}px`;\n displayLine.style.top = `0`;\n displayLine.style.left = `-2px`;\n displayLine.style.width = `2px`;\n displayLine.style.height = `${activeButton.offsetHeight}px`;\n displayLine.style.transform = `translate(0, ${offset}px)`;\n }\n };\n\n SetActiveContent();\n SetActiveButton();\n SetContainerStyles();\n StyleWrapperStyles();\n SetLineStyles();\n SetContentPosition();\n};\n\nexport default (props: TypeTabsProps) =>\n (() => {\n const { isThemeDark, tabsContainer, shadowContent, topPosition } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const contentStrip = document.createElement('div');\n const displayLineStrip = document.createElement('div');\n const displayLine = document.createElement('span');\n const children = Array.from(tabsContainer.children);\n const buttons = Array.from(tabsContainer.querySelectorAll('button'));\n const additionalSpread = topPosition ? parseInt(topPosition) : null;\n const contents = children.filter((child) =>\n buttons.find(\n (button) =>\n button.getAttribute('aria-controls') === child.getAttribute('id'),\n ),\n ) as HTMLElement[];\n const GetElements = {\n getContainer: () => container,\n getTabsContainer: () => tabsContainer,\n getDisplayLineStrip: () => displayLineStrip,\n getDisplayLine: () => displayLine,\n getContentStrip: () => contentStrip,\n getButtons: () => buttons,\n getContents: () => contents,\n };\n const GetState = {\n getActiveTab: () => activeTab,\n getIsFlexLayout: () => isFlexLayout,\n getButtonWidths: () => buttonWidths,\n getButtonHeights: () => buttonHeights,\n getIsThemeDark: isThemeDark || false,\n };\n const GetContext = { GetElements, GetState };\n const SetActiveTab = (index: number) => {\n activeTab = index;\n SetDisplay({ ...GetContext, additionalSpread });\n };\n const SetDisplayLayout = () => {\n buttonWidths = buttons.reduce(\n (acc, button) => acc + button.offsetWidth,\n 0,\n );\n\n buttonHeights = buttons.reduce(\n (acc, button) => acc + button.offsetHeight,\n 0,\n );\n\n isFlexLayout = buttonWidths < container.offsetWidth;\n };\n const SetLoadStyles = () => {\n buttons.forEach((button, index) => {\n button.addEventListener('click', () => SetActiveTab(index));\n button.style.position = 'relative';\n button.style.textAlign = 'left';\n button.style.display = 'inline-block';\n button.style.padding = `${token.spacing.sm} ${token.spacing.md}`;\n button.style.border = 'none';\n button.style.background = 'transparent';\n\n Object.keys(typography.sans.large).forEach((key) => {\n const keyRef = key as keyof typeof typography.sans.large;\n (button.style as any)[keyRef] = typography.sans.large[keyRef];\n });\n\n if (isThemeDark) {\n button.style.color = token.color.white;\n }\n });\n\n contents.forEach((content) => {\n if (!content) return;\n content.style.display = 'none';\n content.style.position = 'absolute';\n content.style.top = '0';\n content.style.left = '0';\n });\n };\n let activeTab = 0;\n let isFlexLayout = false;\n let buttonWidths = 0;\n let buttonHeights = 0;\n\n const EventResize = () => {\n SetDisplayLayout();\n SetDisplay({ ...GetContext, transition: false });\n };\n const EventLoad = () => {\n SetLoadStyles();\n SetDisplay({ ...GetContext, transition: false });\n SetDisplayLayout();\n SetDisplay({ ...GetContext, transition: false });\n };\n\n contentStrip.classList.add(ELEMENT_CONTENT_STRIP);\n\n if (shadowContent) {\n container.appendChild(shadowContent);\n } else {\n container.appendChild(tabsContainer);\n }\n\n displayLineStrip.classList.add(ELEMENT_ACTIVE_LINE_STRIP);\n container.appendChild(displayLineStrip);\n displayLine.classList.add(ELEMENT_ACTIVE_LINE);\n container.appendChild(displayLine);\n\n container.appendChild(contentStrip);\n container.classList.add(ELEMENT_CONTAINER);\n if (isThemeDark) container.setAttribute(ATTRIBUTE_THEME, THEME_DARK);\n\n declaration.classList.add(ELEMENT_DECLARATION);\n declaration.appendChild(container);\n\n window.addEventListener('resize', debounce(EventResize, 10));\n\n return {\n element: declaration,\n styles: STYLES_TABS_ELEMENT,\n events: {\n resize: EventResize,\n load: EventLoad,\n },\n };\n })();\n"],"names":["token","parsePixelValue","smoothScrollToElement","typography","debounce"],"mappings":"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"}
1
+ {"version":3,"file":"standard.js","sources":["../../../source/composite/tabs/standard.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport { smoothScrollToElement } from '@universityofmaryland/web-utilities-library/animation';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport { parsePixelValue } from '@universityofmaryland/web-utilities-library/styles';\n\ntype TypeTabsProps = {\n tabsContainer: HTMLElement;\n isThemeDark?: boolean;\n shadowContent?: HTMLSlotElement;\n topPosition?: string | null;\n};\n\ntype TypeGetElements = {\n getContainer: () => HTMLElement;\n getTabsContainer: () => HTMLElement;\n getDisplayLineStrip: () => HTMLElement;\n getDisplayLine: () => HTMLElement;\n getContentStrip: () => HTMLElement;\n getButtons: () => HTMLElement[];\n getContents: () => HTMLElement[];\n};\n\ntype TypeGetState = {\n getActiveTab: () => number;\n getIsFlexLayout: () => boolean;\n getButtonWidths: () => number;\n getButtonHeights: () => number;\n getIsThemeDark: boolean;\n};\n\nconst ATTRIBUTE_LAYOUT_HORIZONTAL = 'data-layout-horizontal';\nconst ATTRIBUTE_ARIA_EXPANDED = 'aria-expanded';\nconst ATTRIBUTE_THEME = 'theme';\nconst THEME_DARK = 'dark';\n\nconst ELEMENT_NAME = 'umd-element-tabs';\nconst ELEMENT_DECLARATION = 'tabs-declaration';\nconst ELEMENT_CONTAINER = 'tabs-container';\nconst ELEMENT_CONTENT_STRIP = 'tabs-content-strip';\nconst ELEMENT_ACTIVE_LINE_STRIP = 'tab-active-line-strip';\nconst ELEMENT_ACTIVE_LINE = 'tab-active-line';\n\nconst IS_LAYOUT_HORIZONTAL = `[${ATTRIBUTE_LAYOUT_HORIZONTAL}]`;\nconst IS_THEME_DARK = `[${ATTRIBUTE_THEME}=\"${THEME_DARK}\"]`;\n\nconst OVERWRITE_VERTICAL_LAYOUT_CONTAINER = `.${ELEMENT_CONTAINER}${IS_LAYOUT_HORIZONTAL}`;\nconst OVERWRITE_VERTICAL_LAYOUT_LINE = `${OVERWRITE_VERTICAL_LAYOUT_CONTAINER} .${ELEMENT_ACTIVE_LINE_STRIP}`;\n\nconst OVERWRITE_THEME_DARK_CONTAINER = `.${ELEMENT_CONTAINER}${IS_THEME_DARK}`;\nconst OVERWRITE_THEME_DARK_LINE = `${OVERWRITE_THEME_DARK_CONTAINER} .${ELEMENT_ACTIVE_LINE_STRIP}`;\n\n// prettier-ignore\nconst OverwriteThemeStyles = `\n ${OVERWRITE_THEME_DARK_LINE} {\n background-color: ${token.color.gray.dark};\n }\n`;\n\n// prettier-ignore\nconst DisplayLineStyles = `\n .${ELEMENT_ACTIVE_LINE_STRIP} {\n position: absolute;\n height: 100%;\n top: 0;\n left: -2px;\n width: 2px;\n background-color: ${token.color.gray.light};\n z-index: 9;\n }\n\n ${OVERWRITE_VERTICAL_LAYOUT_LINE} {\n height: 2px;\n left: 0;\n top: inherit;\n }\n\n .${ELEMENT_ACTIVE_LINE} {\n position: absolute;\n width: 0;\n height: 0;\n display: block;\n background-color: ${token.color.red};\n transform: translate(0);\n z-index: 99;\n }\n`;\n\n// prettier-ignore\nconst STYLES_TABS_ELEMENT = `\n .${ELEMENT_DECLARATION} {\n container: ${ELEMENT_NAME} / inline-size;\n position: relative;\n }\n\n ${DisplayLineStyles}\n ${OverwriteThemeStyles}\n`;\n\nconst SetDisplay = ({\n GetElements,\n GetState,\n transition = true,\n additionalSpread,\n}: {\n GetElements: TypeGetElements;\n GetState: TypeGetState;\n transition?: boolean;\n additionalSpread?: number | null;\n}) => {\n const {\n getContainer,\n getTabsContainer,\n getDisplayLineStrip,\n getDisplayLine,\n getContentStrip,\n getButtons,\n getContents,\n } = GetElements;\n const {\n getActiveTab,\n getIsFlexLayout,\n getButtonWidths,\n getButtonHeights,\n getIsThemeDark,\n } = GetState;\n\n const container = getContainer();\n const tabsContainer = getTabsContainer();\n const displayLineStrip = getDisplayLineStrip();\n const displayLine = getDisplayLine();\n const strip = getContentStrip();\n const buttons = getButtons();\n const contents = getContents();\n const isFlexLayout = getIsFlexLayout();\n const activeTab = getActiveTab();\n const buttonWidths = getButtonWidths();\n const buttonHeights = getButtonHeights();\n\n const SetActiveContent = () =>\n contents.map((content, index) => {\n if (!content) return;\n\n if (index === activeTab) {\n content.style.display = 'block';\n } else {\n content.style.display = 'none';\n }\n });\n\n const SetActiveButton = () =>\n buttons.map((button, index) => {\n if (index === activeTab) {\n button.setAttribute(ATTRIBUTE_ARIA_EXPANDED, 'true');\n if (getIsThemeDark) button.style.color = `${token.color.white}`;\n } else {\n button.setAttribute(ATTRIBUTE_ARIA_EXPANDED, 'false');\n if (getIsThemeDark) button.style.color = `${token.color.gray.light}`;\n }\n });\n\n const SetContentPosition = () => {\n const activeContent = contents[activeTab];\n const space = isFlexLayout\n ? parsePixelValue(token.spacing.xl)\n : parsePixelValue(token.spacing.md);\n\n if (activeContent) {\n if (transition) {\n strip.style.transition = 'height 0.5s';\n } else {\n strip.style.transition = 'none';\n }\n\n strip.style.height = `${activeContent.offsetHeight + space}px`;\n activeContent.style.top = `${tabsContainer.offsetHeight + space}px`;\n activeContent.style.width = '100%';\n\n if (!isFlexLayout && transition) {\n const convertedSpace = parsePixelValue(token.spacing.md);\n const spread = additionalSpread\n ? convertedSpace + additionalSpread\n : convertedSpace;\n\n smoothScrollToElement({\n element: activeContent,\n spread,\n });\n }\n }\n };\n\n const SetContainerStyles = () => {\n if (isFlexLayout) {\n container.setAttribute(ATTRIBUTE_LAYOUT_HORIZONTAL, '');\n } else {\n container.removeAttribute(ATTRIBUTE_LAYOUT_HORIZONTAL);\n }\n };\n\n const StyleWrapperStyles = () => {\n if (isFlexLayout) {\n tabsContainer.style.display = 'flex';\n } else {\n tabsContainer.style.display = 'block';\n }\n };\n\n const SetLineStyles = () => {\n const activeButton = buttons[activeTab];\n\n if (transition) {\n displayLine.style.transition =\n 'width 0.5s ease-in-out, height 0.5s ease-in-out, transform 0.5s ease-in-out';\n } else {\n displayLine.style.transition = 'none';\n }\n\n if (isFlexLayout) {\n let offset = 0;\n\n if (activeTab > 0) {\n for (let i = 0; i < activeTab; i++) {\n offset += buttons[i].offsetWidth;\n }\n }\n\n displayLineStrip.style.width = `${buttonWidths}px`;\n displayLineStrip.style.height = `2px`;\n displayLine.style.top = `inherit`;\n displayLine.style.left = `0`;\n displayLine.style.width = `${activeButton.offsetWidth}px`;\n displayLine.style.height = `2px`;\n displayLine.style.transform = `translate(${offset}px, 0)`;\n } else {\n let offset = 0;\n\n if (activeTab > 0) {\n for (let i = 0; i < activeTab; i++) {\n offset += buttons[i].offsetHeight;\n }\n }\n\n displayLineStrip.style.width = `2px`;\n displayLineStrip.style.height = `${buttonHeights}px`;\n displayLine.style.top = `0`;\n displayLine.style.left = `-2px`;\n displayLine.style.width = `2px`;\n displayLine.style.height = `${activeButton.offsetHeight}px`;\n displayLine.style.transform = `translate(0, ${offset}px)`;\n }\n };\n\n SetActiveContent();\n SetActiveButton();\n SetContainerStyles();\n StyleWrapperStyles();\n SetLineStyles();\n SetContentPosition();\n};\n\nexport default (props: TypeTabsProps) =>\n (() => {\n const { isThemeDark, tabsContainer, shadowContent, topPosition } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const contentStrip = document.createElement('div');\n const displayLineStrip = document.createElement('div');\n const displayLine = document.createElement('span');\n const children = Array.from(tabsContainer.children);\n const buttons = Array.from(tabsContainer.querySelectorAll('button'));\n const additionalSpread = topPosition ? parseInt(topPosition) : null;\n const contents = children.filter((child) =>\n buttons.find(\n (button) =>\n button.getAttribute('aria-controls') === child.getAttribute('id'),\n ),\n ) as HTMLElement[];\n const GetElements = {\n getContainer: () => container,\n getTabsContainer: () => tabsContainer,\n getDisplayLineStrip: () => displayLineStrip,\n getDisplayLine: () => displayLine,\n getContentStrip: () => contentStrip,\n getButtons: () => buttons,\n getContents: () => contents,\n };\n const GetState = {\n getActiveTab: () => activeTab,\n getIsFlexLayout: () => isFlexLayout,\n getButtonWidths: () => buttonWidths,\n getButtonHeights: () => buttonHeights,\n getIsThemeDark: isThemeDark || false,\n };\n const GetContext = { GetElements, GetState };\n const SetActiveTab = (index: number) => {\n activeTab = index;\n SetDisplay({ ...GetContext, additionalSpread });\n };\n const SetDisplayLayout = () => {\n buttonWidths = buttons.reduce(\n (acc, button) => acc + button.offsetWidth,\n 0,\n );\n\n buttonHeights = buttons.reduce(\n (acc, button) => acc + button.offsetHeight,\n 0,\n );\n\n isFlexLayout = buttonWidths < container.offsetWidth;\n };\n const SetLoadStyles = () => {\n buttons.forEach((button, index) => {\n button.addEventListener('click', () => SetActiveTab(index));\n button.style.position = 'relative';\n button.style.textAlign = 'left';\n button.style.display = 'inline-block';\n button.style.padding = `${token.spacing.sm} ${token.spacing.md}`;\n button.style.border = 'none';\n button.style.background = 'transparent';\n\n Object.keys(typography.sans.large).forEach((key) => {\n const keyRef = key as keyof typeof typography.sans.large;\n (button.style as any)[keyRef] = typography.sans.large[keyRef];\n });\n\n if (isThemeDark) {\n button.style.color = token.color.white;\n }\n });\n\n contents.forEach((content) => {\n if (!content) return;\n content.style.display = 'none';\n content.style.position = 'absolute';\n content.style.top = '0';\n content.style.left = '0';\n });\n };\n let activeTab = 0;\n let isFlexLayout = false;\n let buttonWidths = 0;\n let buttonHeights = 0;\n\n const EventResize = () => {\n SetDisplayLayout();\n SetDisplay({ ...GetContext, transition: false });\n };\n const EventLoad = () => {\n SetLoadStyles();\n SetDisplay({ ...GetContext, transition: false });\n SetDisplayLayout();\n SetDisplay({ ...GetContext, transition: false });\n };\n\n contentStrip.classList.add(ELEMENT_CONTENT_STRIP);\n\n if (shadowContent) {\n container.appendChild(shadowContent);\n } else {\n container.appendChild(tabsContainer);\n }\n\n displayLineStrip.classList.add(ELEMENT_ACTIVE_LINE_STRIP);\n container.appendChild(displayLineStrip);\n displayLine.classList.add(ELEMENT_ACTIVE_LINE);\n container.appendChild(displayLine);\n\n container.appendChild(contentStrip);\n container.classList.add(ELEMENT_CONTAINER);\n if (isThemeDark) container.setAttribute(ATTRIBUTE_THEME, THEME_DARK);\n\n declaration.classList.add(ELEMENT_DECLARATION);\n declaration.appendChild(container);\n\n window.addEventListener('resize', debounce(EventResize, 10));\n\n return {\n element: declaration,\n styles: STYLES_TABS_ELEMENT,\n events: {\n resize: EventResize,\n load: EventLoad,\n },\n };\n })();\n"],"names":["token","parsePixelValue","smoothScrollToElement","typography","debounce"],"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 typography from "@universityofmaryland/web-styles-library/typography";
3
3
  import { smoothScrollToElement } from "@universityofmaryland/web-utilities-library/animation";
4
4
  import { debounce } from "@universityofmaryland/web-utilities-library/performance";
@@ -32,7 +32,7 @@ const DisplayLineStyles = `
32
32
  left: -2px;
33
33
  width: 2px;
34
34
  background-color: ${token.color.gray.light};
35
- z-index: -1;
35
+ z-index: 9;
36
36
  }
37
37
 
38
38
  ${OVERWRITE_VERTICAL_LAYOUT_LINE} {
@@ -48,6 +48,7 @@ const DisplayLineStyles = `
48
48
  display: block;
49
49
  background-color: ${token.color.red};
50
50
  transform: translate(0);
51
+ z-index: 99;
51
52
  }
52
53
  `;
53
54
  const STYLES_TABS_ELEMENT = `
@@ -1 +1 @@
1
- {"version":3,"file":"standard.mjs","sources":["../../../source/composite/tabs/standard.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport { smoothScrollToElement } from '@universityofmaryland/web-utilities-library/animation';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport { parsePixelValue } from '@universityofmaryland/web-utilities-library/styles';\n\ntype TypeTabsProps = {\n tabsContainer: HTMLElement;\n isThemeDark?: boolean;\n shadowContent?: HTMLSlotElement;\n topPosition?: string | null;\n};\n\ntype TypeGetElements = {\n getContainer: () => HTMLElement;\n getTabsContainer: () => HTMLElement;\n getDisplayLineStrip: () => HTMLElement;\n getDisplayLine: () => HTMLElement;\n getContentStrip: () => HTMLElement;\n getButtons: () => HTMLElement[];\n getContents: () => HTMLElement[];\n};\n\ntype TypeGetState = {\n getActiveTab: () => number;\n getIsFlexLayout: () => boolean;\n getButtonWidths: () => number;\n getButtonHeights: () => number;\n getIsThemeDark: boolean;\n};\n\nconst ATTRIBUTE_LAYOUT_HORIZONTAL = 'data-layout-horizontal';\nconst ATTRIBUTE_ARIA_EXPANDED = 'aria-expanded';\nconst ATTRIBUTE_THEME = 'theme';\nconst THEME_DARK = 'dark';\n\nconst ELEMENT_NAME = 'umd-element-tabs';\nconst ELEMENT_DECLARATION = 'tabs-declaration';\nconst ELEMENT_CONTAINER = 'tabs-container';\nconst ELEMENT_CONTENT_STRIP = 'tabs-content-strip';\nconst ELEMENT_ACTIVE_LINE_STRIP = 'tab-active-line-strip';\nconst ELEMENT_ACTIVE_LINE = 'tab-active-line';\n\nconst IS_LAYOUT_HORIZONTAL = `[${ATTRIBUTE_LAYOUT_HORIZONTAL}]`;\nconst IS_THEME_DARK = `[${ATTRIBUTE_THEME}=\"${THEME_DARK}\"]`;\n\nconst OVERWRITE_VERTICAL_LAYOUT_CONTAINER = `.${ELEMENT_CONTAINER}${IS_LAYOUT_HORIZONTAL}`;\nconst OVERWRITE_VERTICAL_LAYOUT_LINE = `${OVERWRITE_VERTICAL_LAYOUT_CONTAINER} .${ELEMENT_ACTIVE_LINE_STRIP}`;\n\nconst OVERWRITE_THEME_DARK_CONTAINER = `.${ELEMENT_CONTAINER}${IS_THEME_DARK}`;\nconst OVERWRITE_THEME_DARK_LINE = `${OVERWRITE_THEME_DARK_CONTAINER} .${ELEMENT_ACTIVE_LINE_STRIP}`;\n\n// prettier-ignore\nconst OverwriteThemeStyles = `\n ${OVERWRITE_THEME_DARK_LINE} {\n background-color: ${token.color.gray.dark};\n }\n`;\n\n// prettier-ignore\nconst DisplayLineStyles = `\n .${ELEMENT_ACTIVE_LINE_STRIP} {\n position: absolute;\n height: 100%;\n top: 0;\n left: -2px;\n width: 2px;\n background-color: ${token.color.gray.light};\n z-index: -1;\n }\n\n ${OVERWRITE_VERTICAL_LAYOUT_LINE} {\n height: 2px;\n left: 0;\n top: inherit;\n }\n\n .${ELEMENT_ACTIVE_LINE} {\n position: absolute;\n width: 0;\n height: 0;\n display: block;\n background-color: ${token.color.red};\n transform: translate(0);\n }\n`;\n\n// prettier-ignore\nconst STYLES_TABS_ELEMENT = `\n .${ELEMENT_DECLARATION} {\n container: ${ELEMENT_NAME} / inline-size;\n position: relative;\n }\n\n ${DisplayLineStyles}\n ${OverwriteThemeStyles}\n`;\n\nconst SetDisplay = ({\n GetElements,\n GetState,\n transition = true,\n additionalSpread,\n}: {\n GetElements: TypeGetElements;\n GetState: TypeGetState;\n transition?: boolean;\n additionalSpread?: number | null;\n}) => {\n const {\n getContainer,\n getTabsContainer,\n getDisplayLineStrip,\n getDisplayLine,\n getContentStrip,\n getButtons,\n getContents,\n } = GetElements;\n const {\n getActiveTab,\n getIsFlexLayout,\n getButtonWidths,\n getButtonHeights,\n getIsThemeDark,\n } = GetState;\n\n const container = getContainer();\n const tabsContainer = getTabsContainer();\n const displayLineStrip = getDisplayLineStrip();\n const displayLine = getDisplayLine();\n const strip = getContentStrip();\n const buttons = getButtons();\n const contents = getContents();\n const isFlexLayout = getIsFlexLayout();\n const activeTab = getActiveTab();\n const buttonWidths = getButtonWidths();\n const buttonHeights = getButtonHeights();\n\n const SetActiveContent = () =>\n contents.map((content, index) => {\n if (!content) return;\n\n if (index === activeTab) {\n content.style.display = 'block';\n } else {\n content.style.display = 'none';\n }\n });\n\n const SetActiveButton = () =>\n buttons.map((button, index) => {\n if (index === activeTab) {\n button.setAttribute(ATTRIBUTE_ARIA_EXPANDED, 'true');\n if (getIsThemeDark) button.style.color = `${token.color.white}`;\n } else {\n button.setAttribute(ATTRIBUTE_ARIA_EXPANDED, 'false');\n if (getIsThemeDark) button.style.color = `${token.color.gray.light}`;\n }\n });\n\n const SetContentPosition = () => {\n const activeContent = contents[activeTab];\n const space = isFlexLayout\n ? parsePixelValue(token.spacing.xl)\n : parsePixelValue(token.spacing.md);\n\n if (activeContent) {\n if (transition) {\n strip.style.transition = 'height 0.5s';\n } else {\n strip.style.transition = 'none';\n }\n\n strip.style.height = `${activeContent.offsetHeight + space}px`;\n activeContent.style.top = `${tabsContainer.offsetHeight + space}px`;\n activeContent.style.width = '100%';\n\n if (!isFlexLayout && transition) {\n const convertedSpace = parsePixelValue(token.spacing.md);\n const spread = additionalSpread\n ? convertedSpace + additionalSpread\n : convertedSpace;\n\n smoothScrollToElement({\n element: activeContent,\n spread,\n });\n }\n }\n };\n\n const SetContainerStyles = () => {\n if (isFlexLayout) {\n container.setAttribute(ATTRIBUTE_LAYOUT_HORIZONTAL, '');\n } else {\n container.removeAttribute(ATTRIBUTE_LAYOUT_HORIZONTAL);\n }\n };\n\n const StyleWrapperStyles = () => {\n if (isFlexLayout) {\n tabsContainer.style.display = 'flex';\n } else {\n tabsContainer.style.display = 'block';\n }\n };\n\n const SetLineStyles = () => {\n const activeButton = buttons[activeTab];\n\n if (transition) {\n displayLine.style.transition =\n 'width 0.5s ease-in-out, height 0.5s ease-in-out, transform 0.5s ease-in-out';\n } else {\n displayLine.style.transition = 'none';\n }\n\n if (isFlexLayout) {\n let offset = 0;\n\n if (activeTab > 0) {\n for (let i = 0; i < activeTab; i++) {\n offset += buttons[i].offsetWidth;\n }\n }\n\n displayLineStrip.style.width = `${buttonWidths}px`;\n displayLineStrip.style.height = `2px`;\n displayLine.style.top = `inherit`;\n displayLine.style.left = `0`;\n displayLine.style.width = `${activeButton.offsetWidth}px`;\n displayLine.style.height = `2px`;\n displayLine.style.transform = `translate(${offset}px, 0)`;\n } else {\n let offset = 0;\n\n if (activeTab > 0) {\n for (let i = 0; i < activeTab; i++) {\n offset += buttons[i].offsetHeight;\n }\n }\n\n displayLineStrip.style.width = `2px`;\n displayLineStrip.style.height = `${buttonHeights}px`;\n displayLine.style.top = `0`;\n displayLine.style.left = `-2px`;\n displayLine.style.width = `2px`;\n displayLine.style.height = `${activeButton.offsetHeight}px`;\n displayLine.style.transform = `translate(0, ${offset}px)`;\n }\n };\n\n SetActiveContent();\n SetActiveButton();\n SetContainerStyles();\n StyleWrapperStyles();\n SetLineStyles();\n SetContentPosition();\n};\n\nexport default (props: TypeTabsProps) =>\n (() => {\n const { isThemeDark, tabsContainer, shadowContent, topPosition } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const contentStrip = document.createElement('div');\n const displayLineStrip = document.createElement('div');\n const displayLine = document.createElement('span');\n const children = Array.from(tabsContainer.children);\n const buttons = Array.from(tabsContainer.querySelectorAll('button'));\n const additionalSpread = topPosition ? parseInt(topPosition) : null;\n const contents = children.filter((child) =>\n buttons.find(\n (button) =>\n button.getAttribute('aria-controls') === child.getAttribute('id'),\n ),\n ) as HTMLElement[];\n const GetElements = {\n getContainer: () => container,\n getTabsContainer: () => tabsContainer,\n getDisplayLineStrip: () => displayLineStrip,\n getDisplayLine: () => displayLine,\n getContentStrip: () => contentStrip,\n getButtons: () => buttons,\n getContents: () => contents,\n };\n const GetState = {\n getActiveTab: () => activeTab,\n getIsFlexLayout: () => isFlexLayout,\n getButtonWidths: () => buttonWidths,\n getButtonHeights: () => buttonHeights,\n getIsThemeDark: isThemeDark || false,\n };\n const GetContext = { GetElements, GetState };\n const SetActiveTab = (index: number) => {\n activeTab = index;\n SetDisplay({ ...GetContext, additionalSpread });\n };\n const SetDisplayLayout = () => {\n buttonWidths = buttons.reduce(\n (acc, button) => acc + button.offsetWidth,\n 0,\n );\n\n buttonHeights = buttons.reduce(\n (acc, button) => acc + button.offsetHeight,\n 0,\n );\n\n isFlexLayout = buttonWidths < container.offsetWidth;\n };\n const SetLoadStyles = () => {\n buttons.forEach((button, index) => {\n button.addEventListener('click', () => SetActiveTab(index));\n button.style.position = 'relative';\n button.style.textAlign = 'left';\n button.style.display = 'inline-block';\n button.style.padding = `${token.spacing.sm} ${token.spacing.md}`;\n button.style.border = 'none';\n button.style.background = 'transparent';\n\n Object.keys(typography.sans.large).forEach((key) => {\n const keyRef = key as keyof typeof typography.sans.large;\n (button.style as any)[keyRef] = typography.sans.large[keyRef];\n });\n\n if (isThemeDark) {\n button.style.color = token.color.white;\n }\n });\n\n contents.forEach((content) => {\n if (!content) return;\n content.style.display = 'none';\n content.style.position = 'absolute';\n content.style.top = '0';\n content.style.left = '0';\n });\n };\n let activeTab = 0;\n let isFlexLayout = false;\n let buttonWidths = 0;\n let buttonHeights = 0;\n\n const EventResize = () => {\n SetDisplayLayout();\n SetDisplay({ ...GetContext, transition: false });\n };\n const EventLoad = () => {\n SetLoadStyles();\n SetDisplay({ ...GetContext, transition: false });\n SetDisplayLayout();\n SetDisplay({ ...GetContext, transition: false });\n };\n\n contentStrip.classList.add(ELEMENT_CONTENT_STRIP);\n\n if (shadowContent) {\n container.appendChild(shadowContent);\n } else {\n container.appendChild(tabsContainer);\n }\n\n displayLineStrip.classList.add(ELEMENT_ACTIVE_LINE_STRIP);\n container.appendChild(displayLineStrip);\n displayLine.classList.add(ELEMENT_ACTIVE_LINE);\n container.appendChild(displayLine);\n\n container.appendChild(contentStrip);\n container.classList.add(ELEMENT_CONTAINER);\n if (isThemeDark) container.setAttribute(ATTRIBUTE_THEME, THEME_DARK);\n\n declaration.classList.add(ELEMENT_DECLARATION);\n declaration.appendChild(container);\n\n window.addEventListener('resize', debounce(EventResize, 10));\n\n return {\n element: declaration,\n styles: STYLES_TABS_ELEMENT,\n events: {\n resize: EventResize,\n load: EventLoad,\n },\n };\n })();\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standard.mjs","sources":["../../../source/composite/tabs/standard.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport { smoothScrollToElement } from '@universityofmaryland/web-utilities-library/animation';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport { parsePixelValue } from '@universityofmaryland/web-utilities-library/styles';\n\ntype TypeTabsProps = {\n tabsContainer: HTMLElement;\n isThemeDark?: boolean;\n shadowContent?: HTMLSlotElement;\n topPosition?: string | null;\n};\n\ntype TypeGetElements = {\n getContainer: () => HTMLElement;\n getTabsContainer: () => HTMLElement;\n getDisplayLineStrip: () => HTMLElement;\n getDisplayLine: () => HTMLElement;\n getContentStrip: () => HTMLElement;\n getButtons: () => HTMLElement[];\n getContents: () => HTMLElement[];\n};\n\ntype TypeGetState = {\n getActiveTab: () => number;\n getIsFlexLayout: () => boolean;\n getButtonWidths: () => number;\n getButtonHeights: () => number;\n getIsThemeDark: boolean;\n};\n\nconst ATTRIBUTE_LAYOUT_HORIZONTAL = 'data-layout-horizontal';\nconst ATTRIBUTE_ARIA_EXPANDED = 'aria-expanded';\nconst ATTRIBUTE_THEME = 'theme';\nconst THEME_DARK = 'dark';\n\nconst ELEMENT_NAME = 'umd-element-tabs';\nconst ELEMENT_DECLARATION = 'tabs-declaration';\nconst ELEMENT_CONTAINER = 'tabs-container';\nconst ELEMENT_CONTENT_STRIP = 'tabs-content-strip';\nconst ELEMENT_ACTIVE_LINE_STRIP = 'tab-active-line-strip';\nconst ELEMENT_ACTIVE_LINE = 'tab-active-line';\n\nconst IS_LAYOUT_HORIZONTAL = `[${ATTRIBUTE_LAYOUT_HORIZONTAL}]`;\nconst IS_THEME_DARK = `[${ATTRIBUTE_THEME}=\"${THEME_DARK}\"]`;\n\nconst OVERWRITE_VERTICAL_LAYOUT_CONTAINER = `.${ELEMENT_CONTAINER}${IS_LAYOUT_HORIZONTAL}`;\nconst OVERWRITE_VERTICAL_LAYOUT_LINE = `${OVERWRITE_VERTICAL_LAYOUT_CONTAINER} .${ELEMENT_ACTIVE_LINE_STRIP}`;\n\nconst OVERWRITE_THEME_DARK_CONTAINER = `.${ELEMENT_CONTAINER}${IS_THEME_DARK}`;\nconst OVERWRITE_THEME_DARK_LINE = `${OVERWRITE_THEME_DARK_CONTAINER} .${ELEMENT_ACTIVE_LINE_STRIP}`;\n\n// prettier-ignore\nconst OverwriteThemeStyles = `\n ${OVERWRITE_THEME_DARK_LINE} {\n background-color: ${token.color.gray.dark};\n }\n`;\n\n// prettier-ignore\nconst DisplayLineStyles = `\n .${ELEMENT_ACTIVE_LINE_STRIP} {\n position: absolute;\n height: 100%;\n top: 0;\n left: -2px;\n width: 2px;\n background-color: ${token.color.gray.light};\n z-index: 9;\n }\n\n ${OVERWRITE_VERTICAL_LAYOUT_LINE} {\n height: 2px;\n left: 0;\n top: inherit;\n }\n\n .${ELEMENT_ACTIVE_LINE} {\n position: absolute;\n width: 0;\n height: 0;\n display: block;\n background-color: ${token.color.red};\n transform: translate(0);\n z-index: 99;\n }\n`;\n\n// prettier-ignore\nconst STYLES_TABS_ELEMENT = `\n .${ELEMENT_DECLARATION} {\n container: ${ELEMENT_NAME} / inline-size;\n position: relative;\n }\n\n ${DisplayLineStyles}\n ${OverwriteThemeStyles}\n`;\n\nconst SetDisplay = ({\n GetElements,\n GetState,\n transition = true,\n additionalSpread,\n}: {\n GetElements: TypeGetElements;\n GetState: TypeGetState;\n transition?: boolean;\n additionalSpread?: number | null;\n}) => {\n const {\n getContainer,\n getTabsContainer,\n getDisplayLineStrip,\n getDisplayLine,\n getContentStrip,\n getButtons,\n getContents,\n } = GetElements;\n const {\n getActiveTab,\n getIsFlexLayout,\n getButtonWidths,\n getButtonHeights,\n getIsThemeDark,\n } = GetState;\n\n const container = getContainer();\n const tabsContainer = getTabsContainer();\n const displayLineStrip = getDisplayLineStrip();\n const displayLine = getDisplayLine();\n const strip = getContentStrip();\n const buttons = getButtons();\n const contents = getContents();\n const isFlexLayout = getIsFlexLayout();\n const activeTab = getActiveTab();\n const buttonWidths = getButtonWidths();\n const buttonHeights = getButtonHeights();\n\n const SetActiveContent = () =>\n contents.map((content, index) => {\n if (!content) return;\n\n if (index === activeTab) {\n content.style.display = 'block';\n } else {\n content.style.display = 'none';\n }\n });\n\n const SetActiveButton = () =>\n buttons.map((button, index) => {\n if (index === activeTab) {\n button.setAttribute(ATTRIBUTE_ARIA_EXPANDED, 'true');\n if (getIsThemeDark) button.style.color = `${token.color.white}`;\n } else {\n button.setAttribute(ATTRIBUTE_ARIA_EXPANDED, 'false');\n if (getIsThemeDark) button.style.color = `${token.color.gray.light}`;\n }\n });\n\n const SetContentPosition = () => {\n const activeContent = contents[activeTab];\n const space = isFlexLayout\n ? parsePixelValue(token.spacing.xl)\n : parsePixelValue(token.spacing.md);\n\n if (activeContent) {\n if (transition) {\n strip.style.transition = 'height 0.5s';\n } else {\n strip.style.transition = 'none';\n }\n\n strip.style.height = `${activeContent.offsetHeight + space}px`;\n activeContent.style.top = `${tabsContainer.offsetHeight + space}px`;\n activeContent.style.width = '100%';\n\n if (!isFlexLayout && transition) {\n const convertedSpace = parsePixelValue(token.spacing.md);\n const spread = additionalSpread\n ? convertedSpace + additionalSpread\n : convertedSpace;\n\n smoothScrollToElement({\n element: activeContent,\n spread,\n });\n }\n }\n };\n\n const SetContainerStyles = () => {\n if (isFlexLayout) {\n container.setAttribute(ATTRIBUTE_LAYOUT_HORIZONTAL, '');\n } else {\n container.removeAttribute(ATTRIBUTE_LAYOUT_HORIZONTAL);\n }\n };\n\n const StyleWrapperStyles = () => {\n if (isFlexLayout) {\n tabsContainer.style.display = 'flex';\n } else {\n tabsContainer.style.display = 'block';\n }\n };\n\n const SetLineStyles = () => {\n const activeButton = buttons[activeTab];\n\n if (transition) {\n displayLine.style.transition =\n 'width 0.5s ease-in-out, height 0.5s ease-in-out, transform 0.5s ease-in-out';\n } else {\n displayLine.style.transition = 'none';\n }\n\n if (isFlexLayout) {\n let offset = 0;\n\n if (activeTab > 0) {\n for (let i = 0; i < activeTab; i++) {\n offset += buttons[i].offsetWidth;\n }\n }\n\n displayLineStrip.style.width = `${buttonWidths}px`;\n displayLineStrip.style.height = `2px`;\n displayLine.style.top = `inherit`;\n displayLine.style.left = `0`;\n displayLine.style.width = `${activeButton.offsetWidth}px`;\n displayLine.style.height = `2px`;\n displayLine.style.transform = `translate(${offset}px, 0)`;\n } else {\n let offset = 0;\n\n if (activeTab > 0) {\n for (let i = 0; i < activeTab; i++) {\n offset += buttons[i].offsetHeight;\n }\n }\n\n displayLineStrip.style.width = `2px`;\n displayLineStrip.style.height = `${buttonHeights}px`;\n displayLine.style.top = `0`;\n displayLine.style.left = `-2px`;\n displayLine.style.width = `2px`;\n displayLine.style.height = `${activeButton.offsetHeight}px`;\n displayLine.style.transform = `translate(0, ${offset}px)`;\n }\n };\n\n SetActiveContent();\n SetActiveButton();\n SetContainerStyles();\n StyleWrapperStyles();\n SetLineStyles();\n SetContentPosition();\n};\n\nexport default (props: TypeTabsProps) =>\n (() => {\n const { isThemeDark, tabsContainer, shadowContent, topPosition } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const contentStrip = document.createElement('div');\n const displayLineStrip = document.createElement('div');\n const displayLine = document.createElement('span');\n const children = Array.from(tabsContainer.children);\n const buttons = Array.from(tabsContainer.querySelectorAll('button'));\n const additionalSpread = topPosition ? parseInt(topPosition) : null;\n const contents = children.filter((child) =>\n buttons.find(\n (button) =>\n button.getAttribute('aria-controls') === child.getAttribute('id'),\n ),\n ) as HTMLElement[];\n const GetElements = {\n getContainer: () => container,\n getTabsContainer: () => tabsContainer,\n getDisplayLineStrip: () => displayLineStrip,\n getDisplayLine: () => displayLine,\n getContentStrip: () => contentStrip,\n getButtons: () => buttons,\n getContents: () => contents,\n };\n const GetState = {\n getActiveTab: () => activeTab,\n getIsFlexLayout: () => isFlexLayout,\n getButtonWidths: () => buttonWidths,\n getButtonHeights: () => buttonHeights,\n getIsThemeDark: isThemeDark || false,\n };\n const GetContext = { GetElements, GetState };\n const SetActiveTab = (index: number) => {\n activeTab = index;\n SetDisplay({ ...GetContext, additionalSpread });\n };\n const SetDisplayLayout = () => {\n buttonWidths = buttons.reduce(\n (acc, button) => acc + button.offsetWidth,\n 0,\n );\n\n buttonHeights = buttons.reduce(\n (acc, button) => acc + button.offsetHeight,\n 0,\n );\n\n isFlexLayout = buttonWidths < container.offsetWidth;\n };\n const SetLoadStyles = () => {\n buttons.forEach((button, index) => {\n button.addEventListener('click', () => SetActiveTab(index));\n button.style.position = 'relative';\n button.style.textAlign = 'left';\n button.style.display = 'inline-block';\n button.style.padding = `${token.spacing.sm} ${token.spacing.md}`;\n button.style.border = 'none';\n button.style.background = 'transparent';\n\n Object.keys(typography.sans.large).forEach((key) => {\n const keyRef = key as keyof typeof typography.sans.large;\n (button.style as any)[keyRef] = typography.sans.large[keyRef];\n });\n\n if (isThemeDark) {\n button.style.color = token.color.white;\n }\n });\n\n contents.forEach((content) => {\n if (!content) return;\n content.style.display = 'none';\n content.style.position = 'absolute';\n content.style.top = '0';\n content.style.left = '0';\n });\n };\n let activeTab = 0;\n let isFlexLayout = false;\n let buttonWidths = 0;\n let buttonHeights = 0;\n\n const EventResize = () => {\n SetDisplayLayout();\n SetDisplay({ ...GetContext, transition: false });\n };\n const EventLoad = () => {\n SetLoadStyles();\n SetDisplay({ ...GetContext, transition: false });\n SetDisplayLayout();\n SetDisplay({ ...GetContext, transition: false });\n };\n\n contentStrip.classList.add(ELEMENT_CONTENT_STRIP);\n\n if (shadowContent) {\n container.appendChild(shadowContent);\n } else {\n container.appendChild(tabsContainer);\n }\n\n displayLineStrip.classList.add(ELEMENT_ACTIVE_LINE_STRIP);\n container.appendChild(displayLineStrip);\n displayLine.classList.add(ELEMENT_ACTIVE_LINE);\n container.appendChild(displayLine);\n\n container.appendChild(contentStrip);\n container.classList.add(ELEMENT_CONTAINER);\n if (isThemeDark) container.setAttribute(ATTRIBUTE_THEME, THEME_DARK);\n\n declaration.classList.add(ELEMENT_DECLARATION);\n declaration.appendChild(container);\n\n window.addEventListener('resize', debounce(EventResize, 10));\n\n return {\n element: declaration,\n styles: STYLES_TABS_ELEMENT,\n events: {\n resize: EventResize,\n load: EventLoad,\n },\n };\n })();\n"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  export * as Atomic from './atomic';
2
2
  export * as Composite from './composite';
3
3
  export * as Layout from './layout';
4
- export * as Model from './model';
5
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC"}
package/dist/index.js CHANGED
@@ -3,9 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const atomic = require("./atomic.js");
4
4
  const composite = require("./composite.js");
5
5
  const layout = require("./layout.js");
6
- const model = require("./model.js");
7
6
  exports.Atomic = atomic;
8
7
  exports.Composite = composite;
9
8
  exports.Layout = layout;
10
- exports.Model = model;
11
9
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
package/dist/index.mjs CHANGED
@@ -1,11 +1,9 @@
1
1
  import * as atomic from "./atomic.mjs";
2
2
  import * as composite from "./composite.mjs";
3
3
  import * as layout from "./layout.mjs";
4
- import * as model from "./model.mjs";
5
4
  export {
6
5
  atomic as Atomic,
7
6
  composite as Composite,
8
- layout as Layout,
9
- model as Model
7
+ layout as Layout
10
8
  };
11
9
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -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 typography = require("@universityofmaryland/web-styles-library/typography");
4
4
  const styles = require("@universityofmaryland/web-utilities-library/styles");
5
5
  function _interopNamespaceDefault(e) {