@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,18 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const token = require("@universityofmaryland/web-styles-library/token");
3
+ const webBuilderLibrary = require("@universityofmaryland/web-builder-library");
4
+ const token = require("@universityofmaryland/web-token-library");
4
5
  const elementStyles = require("@universityofmaryland/web-styles-library/element");
6
+ const layout = require("@universityofmaryland/web-styles-library/layout");
7
+ const animation = require("@universityofmaryland/web-styles-library/animation");
8
+ const typography = require("@universityofmaryland/web-styles-library/typography");
5
9
  const media = require("@universityofmaryland/web-utilities-library/media");
6
10
  const dom = require("@universityofmaryland/web-utilities-library/dom");
7
11
  const controls = require("@universityofmaryland/web-icons-library/controls");
8
12
  const communication = require("@universityofmaryland/web-icons-library/communication");
9
13
  const files = require("@universityofmaryland/web-icons-library/files");
10
14
  const brand = require("@universityofmaryland/web-icons-library/brand");
11
- require("../../model/modifiers/index.js");
12
- const actions = require("../../model/elements/actions.js");
13
- require("@universityofmaryland/web-styles-library");
14
- const headline = require("../../model/elements/headline.js");
15
- const layout = require("../../model/elements/layout.js");
16
15
  function _interopNamespaceDefault(e) {
17
16
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
18
17
  if (e) {
@@ -31,18 +30,17 @@ function _interopNamespaceDefault(e) {
31
30
  }
32
31
  const token__namespace = /* @__PURE__ */ _interopNamespaceDefault(token);
33
32
  const elementStyles__namespace = /* @__PURE__ */ _interopNamespaceDefault(elementStyles);
34
- const ICONS = {
35
- email: communication.email,
36
- newWindow: controls.external_link,
37
- document: files.document,
38
- fearless: brand.fearless
39
- };
40
- function insertIcon(element, svg) {
41
- const icon = media.parseSvgString(svg);
42
- if (icon) element.insertBefore(icon, element.firstChild);
43
- }
44
- function createLinkIcon(element, type) {
33
+ const layout__namespace = /* @__PURE__ */ _interopNamespaceDefault(layout);
34
+ const animation__namespace = /* @__PURE__ */ _interopNamespaceDefault(animation);
35
+ const typography__namespace = /* @__PURE__ */ _interopNamespaceDefault(typography);
36
+ const createLinkIcon = (element, type) => {
45
37
  const existingIcon = dom.extractIconElement({ element });
38
+ const ICONS = {
39
+ email: communication.email,
40
+ newWindow: controls.external_link,
41
+ document: files.document,
42
+ fearless: brand.fearless
43
+ };
46
44
  if (existingIcon) {
47
45
  element.insertBefore(existingIcon, element.firstChild);
48
46
  return;
@@ -51,6 +49,10 @@ function createLinkIcon(element, type) {
51
49
  const isExternalTab = element.getAttribute("target") === "_blank";
52
50
  const isDownload = element.getAttribute("download") !== null;
53
51
  const isMail = href?.includes("mailto:");
52
+ const insertIcon = (element2, svg) => {
53
+ const icon = media.parseSvgString(svg);
54
+ if (icon) element2.insertBefore(icon, element2.firstChild);
55
+ };
54
56
  if (isMail) {
55
57
  insertIcon(element, ICONS.email);
56
58
  } else if (isExternalTab) {
@@ -60,110 +62,86 @@ function createLinkIcon(element, type) {
60
62
  } else if (type === "secondary") {
61
63
  insertIcon(element, ICONS.fearless);
62
64
  }
63
- }
64
- function createElementWithStyle(actionFn, props) {
65
- const result = actionFn({
66
- element: props.element,
67
- elementStyles: props.elementStyles
68
- });
69
- return { element: result.element, styles: result.styles };
70
- }
71
- function createElement(type, props) {
72
- createLinkIcon(props.element, type);
73
- const actions$1 = {
74
- primary: {
75
- default: actions.primary,
76
- large: actions.primaryLarge
77
- },
78
- secondary: {
79
- default: actions.secondary,
80
- large: actions.secondaryLarge,
81
- dark: actions.secondaryWhite,
82
- gold: actions.secondaryGold
83
- },
84
- outline: {
85
- default: actions.outline,
86
- large: actions.outlineLarge,
87
- dark: actions.outlineWhite
88
- }
89
- };
90
- const typeActions = actions$1[type];
91
- if (props.isThemeGold && typeActions.gold) {
92
- return createElementWithStyle(typeActions.gold, props);
93
- }
94
- if (props.isThemeDark && typeActions.dark) {
95
- return createElementWithStyle(typeActions.dark, props);
96
- }
97
- if (props.isSizeLarge && typeActions.large) {
98
- return createElementWithStyle(typeActions.large, props);
99
- }
100
- return createElementWithStyle(typeActions.default, props);
101
- }
102
- const createPlainTextContainer = (props) => {
103
- const { isTypeSecondary } = props;
104
- return layout.gridStacked({
105
- element: document.createElement("div"),
106
- elementStyles: isTypeSecondary ? {} : { element: { alignItems: "center" } }
107
- });
108
65
  };
109
- const createPlainText = (props) => {
110
- const { isThemeDark, isTypeSecondary, plainText } = props;
111
- const plainTextStyles = {
66
+ const createPlainText = ({
67
+ isThemeDark,
68
+ isTypeSecondary,
69
+ plainText
70
+ }) => {
71
+ if (!plainText) return null;
72
+ return new webBuilderLibrary.ElementBuilder(plainText).styled(
73
+ typography__namespace.sans.compose("min", { theme: isThemeDark ? "dark" : "light" })
74
+ ).withStyles({
112
75
  element: {
113
- ...isThemeDark ? elementStyles__namespace.text.link.white : elementStyles__namespace.text.link.red,
114
- marginTop: `${token__namespace.spacing.min}`
76
+ textDecoration: "underline",
77
+ ...isTypeSecondary && {
78
+ marginLeft: `${token__namespace.spacing.lg}`,
79
+ alignSelf: "baseline"
80
+ }
115
81
  }
116
- };
117
- const plainTextSecondaryStyles = {
118
- element: {
119
- ...isThemeDark ? elementStyles__namespace.text.link.white : elementStyles__namespace.text.link.red,
120
- marginTop: `${token__namespace.spacing.min}`,
121
- marginLeft: `${token__namespace.spacing.lg}`,
122
- alignSelf: "baseline"
82
+ }).build();
83
+ };
84
+ const createElement = (type, props) => {
85
+ createLinkIcon(props.element, type);
86
+ const size = props.isSizeLarge ? "large" : "normal";
87
+ let styleObject;
88
+ if (type === "primary") {
89
+ styleObject = elementStyles__namespace.action.primary.composePrimary({ size });
90
+ } else if (type === "secondary") {
91
+ let color = "default";
92
+ if (props.isThemeGold) {
93
+ color = "gold";
94
+ } else if (props.isThemeDark) {
95
+ color = "white";
123
96
  }
124
- };
125
- if (plainText) {
126
- return headline.sansMin({
127
- element: plainText,
128
- isThemeDark,
129
- elementStyles: isTypeSecondary ? plainTextSecondaryStyles : plainTextStyles
97
+ styleObject = {
98
+ ...elementStyles__namespace.action.secondary.composeSecondary({
99
+ size,
100
+ color
101
+ }),
102
+ ...animation__namespace.line.slideUnderRed
103
+ };
104
+ } else if (type === "outline") {
105
+ const color = props.isThemeDark ? "white" : "default";
106
+ styleObject = elementStyles__namespace.action.outline.composeOutline({ size, color });
107
+ }
108
+ const element = new webBuilderLibrary.ElementBuilder(props.element).styled(styleObject).withStylesIf(!!props.elementStyles, props.elementStyles || {});
109
+ if (type === "secondary") {
110
+ element.withModifier((el) => {
111
+ dom.wrapTextNodeInSpan(el);
130
112
  });
131
113
  }
114
+ return element.build();
132
115
  };
133
116
  const primary = (props) => createElement("primary", props);
134
117
  const secondary = (props) => createElement("secondary", props);
135
118
  const outline = (props) => createElement("outline", props);
136
119
  const options = (props) => {
137
120
  const { plainText, isTypePrimary, isTypeSecondary, isTypeOutline } = props;
138
- const container = document.createElement("div");
139
- let styles = "";
121
+ let actionModel;
140
122
  if (isTypePrimary) {
141
- const result = primary(props);
142
- container.appendChild(result.element);
143
- styles = result.styles;
144
- }
145
- if (isTypeSecondary) {
146
- const result = secondary(props);
147
- container.appendChild(result.element);
148
- styles = result.styles;
149
- }
150
- if (isTypeOutline) {
151
- const result = outline(props);
152
- container.appendChild(result.element);
153
- styles = result.styles;
123
+ actionModel = primary(props);
124
+ } else if (isTypeSecondary) {
125
+ actionModel = secondary(props);
126
+ } else if (isTypeOutline) {
127
+ actionModel = outline(props);
154
128
  }
155
129
  if (plainText) {
156
- const plainTextContainer = createPlainTextContainer(props);
157
130
  const plainTextElement = createPlainText(props);
158
- if (!plainTextElement) return { element: container, styles };
159
- plainTextContainer.element.innerHTML = container.innerHTML;
160
- plainTextContainer.element.appendChild(plainTextElement.element);
161
- container.innerHTML = "";
162
- container.appendChild(plainTextContainer.element);
163
- styles += plainTextContainer.styles;
164
- styles += plainTextElement.styles;
131
+ if (plainTextElement) {
132
+ return new webBuilderLibrary.ElementBuilder().styled(layout__namespace.grid.stacked).withStyles({
133
+ element: {
134
+ display: "grid",
135
+ gap: token__namespace.spacing.sm,
136
+ ["& > *"]: {
137
+ marginBottom: "0 !important",
138
+ ...!isTypeSecondary && { justifySelf: "center" }
139
+ }
140
+ }
141
+ }).withChild(actionModel).withChild(plainTextElement).build();
142
+ }
165
143
  }
166
- return { element: container, styles };
144
+ return new webBuilderLibrary.ElementBuilder().withChild(actionModel).build();
167
145
  };
168
146
  exports.options = options;
169
147
  exports.outline = outline;
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sources":["../../../source/atomic/actions/text.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\nimport * as elementStyles from '@universityofmaryland/web-styles-library/element';\nimport { parseSvgString } from '@universityofmaryland/web-utilities-library/media';\nimport { extractIconElement } from '@universityofmaryland/web-utilities-library/dom';\nimport { external_link as iconExternalLink } from '@universityofmaryland/web-icons-library/controls';\nimport { email as iconEmail } from '@universityofmaryland/web-icons-library/communication';\nimport { document as iconDocument } from '@universityofmaryland/web-icons-library/files';\nimport { fearless as iconFearless } from '@universityofmaryland/web-icons-library/brand';\nimport { ElementModel } from 'model';\n\ninterface ElementProps {\n element: HTMLElement;\n isThemeDark?: boolean;\n isThemeGold?: boolean;\n isSizeLarge?: boolean;\n elementStyles?: Record<string, any>;\n}\n\ninterface OptionProps extends ElementProps {\n isTypePrimary?: boolean;\n isTypeSecondary?: boolean;\n isTypeOutline?: boolean;\n plainText?: HTMLElement | null;\n}\n\ntype ElementType = 'primary' | 'secondary' | 'outline';\ntype IconType = 'email' | 'newWindow' | 'document' | 'fearless';\n\ntype ActionFunction = (props: ElementProps) => {\n element: HTMLElement;\n styles: string;\n};\n\ntype ActionVariants = {\n default: ActionFunction;\n large?: ActionFunction;\n dark?: ActionFunction;\n gold?: ActionFunction;\n};\n\ntype Actions = Record<ElementType, ActionVariants>;\n\nconst ICONS: Record<IconType, string> = {\n email: iconEmail,\n newWindow: iconExternalLink,\n document: iconDocument,\n fearless: iconFearless,\n};\n\nfunction insertIcon(element: HTMLElement, svg: string): void {\n const icon = parseSvgString(svg);\n if (icon) element.insertBefore(icon, element.firstChild);\n}\n\nfunction createLinkIcon(element: HTMLElement, type: ElementType): void {\n const existingIcon = extractIconElement({ element });\n if (existingIcon) {\n element.insertBefore(existingIcon, element.firstChild);\n return;\n }\n\n const href = element.getAttribute('href');\n const isExternalTab = element.getAttribute('target') === '_blank';\n const isDownload = element.getAttribute('download') !== null;\n const isMail = href?.includes('mailto:');\n\n if (isMail) {\n insertIcon(element, ICONS.email);\n } else if (isExternalTab) {\n insertIcon(element, ICONS.newWindow);\n } else if (isDownload) {\n insertIcon(element, ICONS.document);\n } else if (type === 'secondary') {\n insertIcon(element, ICONS.fearless);\n }\n}\n\nfunction createElementWithStyle(\n actionFn: (props: ElementProps) => { element: HTMLElement; styles: string },\n props: ElementProps,\n) {\n const result = actionFn({\n element: props.element,\n elementStyles: props.elementStyles,\n });\n return { element: result.element, styles: result.styles };\n}\n\nfunction createElement(type: ElementType, props: ElementProps) {\n createLinkIcon(props.element, type);\n\n const actions: Actions = {\n primary: {\n default: ElementModel.actions.primary,\n large: ElementModel.actions.primaryLarge,\n },\n secondary: {\n default: ElementModel.actions.secondary,\n large: ElementModel.actions.secondaryLarge,\n dark: ElementModel.actions.secondaryWhite,\n gold: ElementModel.actions.secondaryGold,\n },\n outline: {\n default: ElementModel.actions.outline,\n large: ElementModel.actions.outlineLarge,\n dark: ElementModel.actions.outlineWhite,\n },\n };\n\n const typeActions = actions[type];\n\n if (props.isThemeGold && typeActions.gold) {\n return createElementWithStyle(typeActions.gold, props);\n }\n if (props.isThemeDark && typeActions.dark) {\n return createElementWithStyle(typeActions.dark, props);\n }\n if (props.isSizeLarge && typeActions.large) {\n return createElementWithStyle(typeActions.large, props);\n }\n return createElementWithStyle(typeActions.default, props);\n}\n\nconst createPlainTextContainer = (props: OptionProps) => {\n const { isTypeSecondary } = props;\n\n return ElementModel.layout.gridStacked({\n element: document.createElement('div'),\n elementStyles: isTypeSecondary ? {} : { element: { alignItems: 'center' } },\n });\n};\n\nconst createPlainText = (props: OptionProps) => {\n const { isThemeDark, isTypeSecondary, plainText } = props;\n const plainTextStyles = {\n element: {\n ...(isThemeDark\n ? elementStyles.text.link.white\n : elementStyles.text.link.red),\n marginTop: `${token.spacing.min}`,\n },\n };\n\n const plainTextSecondaryStyles = {\n element: {\n ...(isThemeDark\n ? elementStyles.text.link.white\n : elementStyles.text.link.red),\n marginTop: `${token.spacing.min}`,\n marginLeft: `${token.spacing.lg}`,\n alignSelf: 'baseline',\n },\n };\n\n if (plainText) {\n return ElementModel.headline.sansMin({\n element: plainText,\n isThemeDark,\n elementStyles: isTypeSecondary\n ? plainTextSecondaryStyles\n : plainTextStyles,\n });\n }\n};\n\nexport const primary = (props: ElementProps) => createElement('primary', props);\nexport const secondary = (props: ElementProps) =>\n createElement('secondary', props);\nexport const outline = (props: ElementProps) => createElement('outline', props);\n\nexport const options = (props: OptionProps) => {\n const { plainText, isTypePrimary, isTypeSecondary, isTypeOutline } = props;\n const container = document.createElement('div');\n let styles = '';\n\n if (isTypePrimary) {\n const result = primary(props);\n container.appendChild(result.element);\n styles = result.styles;\n }\n\n if (isTypeSecondary) {\n const result = secondary(props);\n container.appendChild(result.element);\n styles = result.styles;\n }\n\n if (isTypeOutline) {\n const result = outline(props);\n container.appendChild(result.element);\n styles = result.styles;\n }\n\n if (plainText) {\n const plainTextContainer = createPlainTextContainer(props);\n const plainTextElement = createPlainText(props);\n if (!plainTextElement) return { element: container, styles };\n\n plainTextContainer.element.innerHTML = container.innerHTML;\n plainTextContainer.element.appendChild(plainTextElement.element);\n container.innerHTML = '';\n\n container.appendChild(plainTextContainer.element);\n\n styles += plainTextContainer.styles;\n styles += plainTextElement.styles;\n }\n\n return { element: container, styles };\n};\n"],"names":["iconEmail","iconExternalLink","iconDocument","iconFearless","parseSvgString","extractIconElement","actions","ElementModel.actions.primary","ElementModel.actions.primaryLarge","ElementModel.actions.secondary","ElementModel.actions.secondaryLarge","ElementModel.actions.secondaryWhite","ElementModel.actions.secondaryGold","ElementModel.actions.outline","ElementModel.actions.outlineLarge","ElementModel.actions.outlineWhite","ElementModel.layout.gridStacked","elementStyles","token","ElementModel.headline.sansMin"],"mappings":"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"}
1
+ {"version":3,"file":"text.js","sources":["../../../source/atomic/actions/text.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport * as elementStyles from '@universityofmaryland/web-styles-library/element';\nimport * as layoutStyles from '@universityofmaryland/web-styles-library/layout';\nimport * as animation from '@universityofmaryland/web-styles-library/animation';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport { parseSvgString } from '@universityofmaryland/web-utilities-library/media';\nimport { theme } from '@universityofmaryland/web-utilities-library/theme';\nimport {\n extractIconElement,\n wrapTextNodeInSpan,\n} from '@universityofmaryland/web-utilities-library/dom';\nimport { external_link as iconExternalLink } from '@universityofmaryland/web-icons-library/controls';\nimport { email as iconEmail } from '@universityofmaryland/web-icons-library/communication';\nimport { document as iconDocument } from '@universityofmaryland/web-icons-library/files';\nimport { fearless as iconFearless } from '@universityofmaryland/web-icons-library/brand';\n\ninterface ElementProps {\n element: HTMLElement;\n isThemeDark?: boolean;\n isThemeGold?: boolean;\n isSizeLarge?: boolean;\n elementStyles?: Record<string, any>;\n}\n\ninterface OptionProps extends ElementProps {\n isTypePrimary?: boolean;\n isTypeSecondary?: boolean;\n isTypeOutline?: boolean;\n plainText?: HTMLElement | null;\n}\n\ntype ElementType = 'primary' | 'secondary' | 'outline';\ntype IconType = 'email' | 'newWindow' | 'document' | 'fearless';\n\nconst createLinkIcon = (element: HTMLElement, type: ElementType): void => {\n const existingIcon = extractIconElement({ element });\n const ICONS: Record<IconType, string> = {\n email: iconEmail,\n newWindow: iconExternalLink,\n document: iconDocument,\n fearless: iconFearless,\n };\n\n if (existingIcon) {\n element.insertBefore(existingIcon, element.firstChild);\n return;\n }\n\n const href = element.getAttribute('href');\n const isExternalTab = element.getAttribute('target') === '_blank';\n const isDownload = element.getAttribute('download') !== null;\n const isMail = href?.includes('mailto:');\n const insertIcon = (element: HTMLElement, svg: string): void => {\n const icon = parseSvgString(svg);\n if (icon) element.insertBefore(icon, element.firstChild);\n };\n\n if (isMail) {\n insertIcon(element, ICONS.email);\n } else if (isExternalTab) {\n insertIcon(element, ICONS.newWindow);\n } else if (isDownload) {\n insertIcon(element, ICONS.document);\n } else if (type === 'secondary') {\n insertIcon(element, ICONS.fearless);\n }\n};\n\nconst createPlainText = ({\n isThemeDark,\n isTypeSecondary,\n plainText,\n}: Pick<OptionProps, 'isThemeDark' | 'isTypeSecondary' | 'plainText'>) => {\n if (!plainText) return null;\n\n return new ElementBuilder(plainText)\n .styled(\n typography.sans.compose('min', { theme: isThemeDark ? 'dark' : 'light' }),\n )\n .withStyles({\n element: {\n textDecoration: 'underline',\n\n ...(isTypeSecondary && {\n marginLeft: `${token.spacing.lg}`,\n alignSelf: 'baseline',\n }),\n },\n })\n .build();\n};\n\nconst createElement = (type: ElementType, props: ElementProps) => {\n createLinkIcon(props.element, type);\n\n const size = props.isSizeLarge ? 'large' : 'normal';\n let styleObject;\n\n if (type === 'primary') {\n styleObject = elementStyles.action.primary.composePrimary({ size });\n } else if (type === 'secondary') {\n let color: 'default' | 'white' | 'gold' = 'default';\n if (props.isThemeGold) {\n color = 'gold';\n } else if (props.isThemeDark) {\n color = 'white';\n }\n styleObject = {\n ...elementStyles.action.secondary.composeSecondary({\n size,\n color,\n }),\n ...animation.line.slideUnderRed,\n };\n } else if (type === 'outline') {\n const color = props.isThemeDark ? 'white' : 'default';\n styleObject = elementStyles.action.outline.composeOutline({ size, color });\n }\n\n const element = new ElementBuilder(props.element)\n .styled(styleObject!)\n .withStylesIf(!!props.elementStyles, props.elementStyles || {});\n\n if (type === 'secondary') {\n element.withModifier((el) => {\n wrapTextNodeInSpan(el);\n });\n }\n\n return element.build();\n};\n\nexport const primary = (props: ElementProps) => createElement('primary', props);\nexport const secondary = (props: ElementProps) =>\n createElement('secondary', props);\nexport const outline = (props: ElementProps) => createElement('outline', props);\n\nexport const options = (props: OptionProps) => {\n const { plainText, isTypePrimary, isTypeSecondary, isTypeOutline } = props;\n\n let actionModel;\n\n if (isTypePrimary) {\n actionModel = primary(props);\n } else if (isTypeSecondary) {\n actionModel = secondary(props);\n } else if (isTypeOutline) {\n actionModel = outline(props);\n }\n\n if (plainText) {\n const plainTextElement = createPlainText(props);\n\n if (plainTextElement) {\n return new ElementBuilder()\n .styled(layoutStyles.grid.stacked)\n .withStyles({\n element: {\n display: 'grid',\n gap: token.spacing.sm,\n\n ['& > *']: {\n marginBottom: '0 !important',\n ...(!isTypeSecondary && { justifySelf: 'center' }),\n },\n },\n })\n .withChild(actionModel)\n .withChild(plainTextElement)\n .build();\n }\n }\n\n return new ElementBuilder().withChild(actionModel).build();\n};\n"],"names":["extractIconElement","iconEmail","iconExternalLink","iconDocument","iconFearless","element","parseSvgString","ElementBuilder","typography","token","elementStyles","animation","wrapTextNodeInSpan","layoutStyles"],"mappings":"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"}
@@ -1,28 +1,23 @@
1
- import * as token from "@universityofmaryland/web-styles-library/token";
1
+ import { ElementBuilder } from "@universityofmaryland/web-builder-library";
2
+ import * as token from "@universityofmaryland/web-token-library";
2
3
  import * as elementStyles from "@universityofmaryland/web-styles-library/element";
4
+ import * as layout from "@universityofmaryland/web-styles-library/layout";
5
+ import * as animation from "@universityofmaryland/web-styles-library/animation";
6
+ import * as typography from "@universityofmaryland/web-styles-library/typography";
3
7
  import { parseSvgString } from "@universityofmaryland/web-utilities-library/media";
4
- import { extractIconElement } from "@universityofmaryland/web-utilities-library/dom";
8
+ import { wrapTextNodeInSpan, extractIconElement } from "@universityofmaryland/web-utilities-library/dom";
5
9
  import { external_link } from "@universityofmaryland/web-icons-library/controls";
6
10
  import { email } from "@universityofmaryland/web-icons-library/communication";
7
- import { document as document$1 } from "@universityofmaryland/web-icons-library/files";
11
+ import { document } from "@universityofmaryland/web-icons-library/files";
8
12
  import { fearless } from "@universityofmaryland/web-icons-library/brand";
9
- import "../../model/modifiers/index.mjs";
10
- import { outlineWhite, outlineLarge, outline as outline$1, secondaryGold, secondaryWhite, secondaryLarge, secondary as secondary$1, primaryLarge, primary as primary$1 } from "../../model/elements/actions.mjs";
11
- import "@universityofmaryland/web-styles-library";
12
- import { sansMin } from "../../model/elements/headline.mjs";
13
- import { gridStacked } from "../../model/elements/layout.mjs";
14
- const ICONS = {
15
- email,
16
- newWindow: external_link,
17
- document: document$1,
18
- fearless
19
- };
20
- function insertIcon(element, svg) {
21
- const icon = parseSvgString(svg);
22
- if (icon) element.insertBefore(icon, element.firstChild);
23
- }
24
- function createLinkIcon(element, type) {
13
+ const createLinkIcon = (element, type) => {
25
14
  const existingIcon = extractIconElement({ element });
15
+ const ICONS = {
16
+ email,
17
+ newWindow: external_link,
18
+ document,
19
+ fearless
20
+ };
26
21
  if (existingIcon) {
27
22
  element.insertBefore(existingIcon, element.firstChild);
28
23
  return;
@@ -31,6 +26,10 @@ function createLinkIcon(element, type) {
31
26
  const isExternalTab = element.getAttribute("target") === "_blank";
32
27
  const isDownload = element.getAttribute("download") !== null;
33
28
  const isMail = href?.includes("mailto:");
29
+ const insertIcon = (element2, svg) => {
30
+ const icon = parseSvgString(svg);
31
+ if (icon) element2.insertBefore(icon, element2.firstChild);
32
+ };
34
33
  if (isMail) {
35
34
  insertIcon(element, ICONS.email);
36
35
  } else if (isExternalTab) {
@@ -40,110 +39,86 @@ function createLinkIcon(element, type) {
40
39
  } else if (type === "secondary") {
41
40
  insertIcon(element, ICONS.fearless);
42
41
  }
43
- }
44
- function createElementWithStyle(actionFn, props) {
45
- const result = actionFn({
46
- element: props.element,
47
- elementStyles: props.elementStyles
48
- });
49
- return { element: result.element, styles: result.styles };
50
- }
51
- function createElement(type, props) {
52
- createLinkIcon(props.element, type);
53
- const actions = {
54
- primary: {
55
- default: primary$1,
56
- large: primaryLarge
57
- },
58
- secondary: {
59
- default: secondary$1,
60
- large: secondaryLarge,
61
- dark: secondaryWhite,
62
- gold: secondaryGold
63
- },
64
- outline: {
65
- default: outline$1,
66
- large: outlineLarge,
67
- dark: outlineWhite
68
- }
69
- };
70
- const typeActions = actions[type];
71
- if (props.isThemeGold && typeActions.gold) {
72
- return createElementWithStyle(typeActions.gold, props);
73
- }
74
- if (props.isThemeDark && typeActions.dark) {
75
- return createElementWithStyle(typeActions.dark, props);
76
- }
77
- if (props.isSizeLarge && typeActions.large) {
78
- return createElementWithStyle(typeActions.large, props);
79
- }
80
- return createElementWithStyle(typeActions.default, props);
81
- }
82
- const createPlainTextContainer = (props) => {
83
- const { isTypeSecondary } = props;
84
- return gridStacked({
85
- element: document.createElement("div"),
86
- elementStyles: isTypeSecondary ? {} : { element: { alignItems: "center" } }
87
- });
88
42
  };
89
- const createPlainText = (props) => {
90
- const { isThemeDark, isTypeSecondary, plainText } = props;
91
- const plainTextStyles = {
43
+ const createPlainText = ({
44
+ isThemeDark,
45
+ isTypeSecondary,
46
+ plainText
47
+ }) => {
48
+ if (!plainText) return null;
49
+ return new ElementBuilder(plainText).styled(
50
+ typography.sans.compose("min", { theme: isThemeDark ? "dark" : "light" })
51
+ ).withStyles({
92
52
  element: {
93
- ...isThemeDark ? elementStyles.text.link.white : elementStyles.text.link.red,
94
- marginTop: `${token.spacing.min}`
53
+ textDecoration: "underline",
54
+ ...isTypeSecondary && {
55
+ marginLeft: `${token.spacing.lg}`,
56
+ alignSelf: "baseline"
57
+ }
95
58
  }
96
- };
97
- const plainTextSecondaryStyles = {
98
- element: {
99
- ...isThemeDark ? elementStyles.text.link.white : elementStyles.text.link.red,
100
- marginTop: `${token.spacing.min}`,
101
- marginLeft: `${token.spacing.lg}`,
102
- alignSelf: "baseline"
59
+ }).build();
60
+ };
61
+ const createElement = (type, props) => {
62
+ createLinkIcon(props.element, type);
63
+ const size = props.isSizeLarge ? "large" : "normal";
64
+ let styleObject;
65
+ if (type === "primary") {
66
+ styleObject = elementStyles.action.primary.composePrimary({ size });
67
+ } else if (type === "secondary") {
68
+ let color = "default";
69
+ if (props.isThemeGold) {
70
+ color = "gold";
71
+ } else if (props.isThemeDark) {
72
+ color = "white";
103
73
  }
104
- };
105
- if (plainText) {
106
- return sansMin({
107
- element: plainText,
108
- isThemeDark,
109
- elementStyles: isTypeSecondary ? plainTextSecondaryStyles : plainTextStyles
74
+ styleObject = {
75
+ ...elementStyles.action.secondary.composeSecondary({
76
+ size,
77
+ color
78
+ }),
79
+ ...animation.line.slideUnderRed
80
+ };
81
+ } else if (type === "outline") {
82
+ const color = props.isThemeDark ? "white" : "default";
83
+ styleObject = elementStyles.action.outline.composeOutline({ size, color });
84
+ }
85
+ const element = new ElementBuilder(props.element).styled(styleObject).withStylesIf(!!props.elementStyles, props.elementStyles || {});
86
+ if (type === "secondary") {
87
+ element.withModifier((el) => {
88
+ wrapTextNodeInSpan(el);
110
89
  });
111
90
  }
91
+ return element.build();
112
92
  };
113
93
  const primary = (props) => createElement("primary", props);
114
94
  const secondary = (props) => createElement("secondary", props);
115
95
  const outline = (props) => createElement("outline", props);
116
96
  const options = (props) => {
117
97
  const { plainText, isTypePrimary, isTypeSecondary, isTypeOutline } = props;
118
- const container = document.createElement("div");
119
- let styles = "";
98
+ let actionModel;
120
99
  if (isTypePrimary) {
121
- const result = primary(props);
122
- container.appendChild(result.element);
123
- styles = result.styles;
124
- }
125
- if (isTypeSecondary) {
126
- const result = secondary(props);
127
- container.appendChild(result.element);
128
- styles = result.styles;
129
- }
130
- if (isTypeOutline) {
131
- const result = outline(props);
132
- container.appendChild(result.element);
133
- styles = result.styles;
100
+ actionModel = primary(props);
101
+ } else if (isTypeSecondary) {
102
+ actionModel = secondary(props);
103
+ } else if (isTypeOutline) {
104
+ actionModel = outline(props);
134
105
  }
135
106
  if (plainText) {
136
- const plainTextContainer = createPlainTextContainer(props);
137
107
  const plainTextElement = createPlainText(props);
138
- if (!plainTextElement) return { element: container, styles };
139
- plainTextContainer.element.innerHTML = container.innerHTML;
140
- plainTextContainer.element.appendChild(plainTextElement.element);
141
- container.innerHTML = "";
142
- container.appendChild(plainTextContainer.element);
143
- styles += plainTextContainer.styles;
144
- styles += plainTextElement.styles;
108
+ if (plainTextElement) {
109
+ return new ElementBuilder().styled(layout.grid.stacked).withStyles({
110
+ element: {
111
+ display: "grid",
112
+ gap: token.spacing.sm,
113
+ ["& > *"]: {
114
+ marginBottom: "0 !important",
115
+ ...!isTypeSecondary && { justifySelf: "center" }
116
+ }
117
+ }
118
+ }).withChild(actionModel).withChild(plainTextElement).build();
119
+ }
145
120
  }
146
- return { element: container, styles };
121
+ return new ElementBuilder().withChild(actionModel).build();
147
122
  };
148
123
  export {
149
124
  options,
@@ -1 +1 @@
1
- {"version":3,"file":"text.mjs","sources":["../../../source/atomic/actions/text.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\nimport * as elementStyles from '@universityofmaryland/web-styles-library/element';\nimport { parseSvgString } from '@universityofmaryland/web-utilities-library/media';\nimport { extractIconElement } from '@universityofmaryland/web-utilities-library/dom';\nimport { external_link as iconExternalLink } from '@universityofmaryland/web-icons-library/controls';\nimport { email as iconEmail } from '@universityofmaryland/web-icons-library/communication';\nimport { document as iconDocument } from '@universityofmaryland/web-icons-library/files';\nimport { fearless as iconFearless } from '@universityofmaryland/web-icons-library/brand';\nimport { ElementModel } from 'model';\n\ninterface ElementProps {\n element: HTMLElement;\n isThemeDark?: boolean;\n isThemeGold?: boolean;\n isSizeLarge?: boolean;\n elementStyles?: Record<string, any>;\n}\n\ninterface OptionProps extends ElementProps {\n isTypePrimary?: boolean;\n isTypeSecondary?: boolean;\n isTypeOutline?: boolean;\n plainText?: HTMLElement | null;\n}\n\ntype ElementType = 'primary' | 'secondary' | 'outline';\ntype IconType = 'email' | 'newWindow' | 'document' | 'fearless';\n\ntype ActionFunction = (props: ElementProps) => {\n element: HTMLElement;\n styles: string;\n};\n\ntype ActionVariants = {\n default: ActionFunction;\n large?: ActionFunction;\n dark?: ActionFunction;\n gold?: ActionFunction;\n};\n\ntype Actions = Record<ElementType, ActionVariants>;\n\nconst ICONS: Record<IconType, string> = {\n email: iconEmail,\n newWindow: iconExternalLink,\n document: iconDocument,\n fearless: iconFearless,\n};\n\nfunction insertIcon(element: HTMLElement, svg: string): void {\n const icon = parseSvgString(svg);\n if (icon) element.insertBefore(icon, element.firstChild);\n}\n\nfunction createLinkIcon(element: HTMLElement, type: ElementType): void {\n const existingIcon = extractIconElement({ element });\n if (existingIcon) {\n element.insertBefore(existingIcon, element.firstChild);\n return;\n }\n\n const href = element.getAttribute('href');\n const isExternalTab = element.getAttribute('target') === '_blank';\n const isDownload = element.getAttribute('download') !== null;\n const isMail = href?.includes('mailto:');\n\n if (isMail) {\n insertIcon(element, ICONS.email);\n } else if (isExternalTab) {\n insertIcon(element, ICONS.newWindow);\n } else if (isDownload) {\n insertIcon(element, ICONS.document);\n } else if (type === 'secondary') {\n insertIcon(element, ICONS.fearless);\n }\n}\n\nfunction createElementWithStyle(\n actionFn: (props: ElementProps) => { element: HTMLElement; styles: string },\n props: ElementProps,\n) {\n const result = actionFn({\n element: props.element,\n elementStyles: props.elementStyles,\n });\n return { element: result.element, styles: result.styles };\n}\n\nfunction createElement(type: ElementType, props: ElementProps) {\n createLinkIcon(props.element, type);\n\n const actions: Actions = {\n primary: {\n default: ElementModel.actions.primary,\n large: ElementModel.actions.primaryLarge,\n },\n secondary: {\n default: ElementModel.actions.secondary,\n large: ElementModel.actions.secondaryLarge,\n dark: ElementModel.actions.secondaryWhite,\n gold: ElementModel.actions.secondaryGold,\n },\n outline: {\n default: ElementModel.actions.outline,\n large: ElementModel.actions.outlineLarge,\n dark: ElementModel.actions.outlineWhite,\n },\n };\n\n const typeActions = actions[type];\n\n if (props.isThemeGold && typeActions.gold) {\n return createElementWithStyle(typeActions.gold, props);\n }\n if (props.isThemeDark && typeActions.dark) {\n return createElementWithStyle(typeActions.dark, props);\n }\n if (props.isSizeLarge && typeActions.large) {\n return createElementWithStyle(typeActions.large, props);\n }\n return createElementWithStyle(typeActions.default, props);\n}\n\nconst createPlainTextContainer = (props: OptionProps) => {\n const { isTypeSecondary } = props;\n\n return ElementModel.layout.gridStacked({\n element: document.createElement('div'),\n elementStyles: isTypeSecondary ? {} : { element: { alignItems: 'center' } },\n });\n};\n\nconst createPlainText = (props: OptionProps) => {\n const { isThemeDark, isTypeSecondary, plainText } = props;\n const plainTextStyles = {\n element: {\n ...(isThemeDark\n ? elementStyles.text.link.white\n : elementStyles.text.link.red),\n marginTop: `${token.spacing.min}`,\n },\n };\n\n const plainTextSecondaryStyles = {\n element: {\n ...(isThemeDark\n ? elementStyles.text.link.white\n : elementStyles.text.link.red),\n marginTop: `${token.spacing.min}`,\n marginLeft: `${token.spacing.lg}`,\n alignSelf: 'baseline',\n },\n };\n\n if (plainText) {\n return ElementModel.headline.sansMin({\n element: plainText,\n isThemeDark,\n elementStyles: isTypeSecondary\n ? plainTextSecondaryStyles\n : plainTextStyles,\n });\n }\n};\n\nexport const primary = (props: ElementProps) => createElement('primary', props);\nexport const secondary = (props: ElementProps) =>\n createElement('secondary', props);\nexport const outline = (props: ElementProps) => createElement('outline', props);\n\nexport const options = (props: OptionProps) => {\n const { plainText, isTypePrimary, isTypeSecondary, isTypeOutline } = props;\n const container = document.createElement('div');\n let styles = '';\n\n if (isTypePrimary) {\n const result = primary(props);\n container.appendChild(result.element);\n styles = result.styles;\n }\n\n if (isTypeSecondary) {\n const result = secondary(props);\n container.appendChild(result.element);\n styles = result.styles;\n }\n\n if (isTypeOutline) {\n const result = outline(props);\n container.appendChild(result.element);\n styles = result.styles;\n }\n\n if (plainText) {\n const plainTextContainer = createPlainTextContainer(props);\n const plainTextElement = createPlainText(props);\n if (!plainTextElement) return { element: container, styles };\n\n plainTextContainer.element.innerHTML = container.innerHTML;\n plainTextContainer.element.appendChild(plainTextElement.element);\n container.innerHTML = '';\n\n container.appendChild(plainTextContainer.element);\n\n styles += plainTextContainer.styles;\n styles += plainTextElement.styles;\n }\n\n return { element: container, styles };\n};\n"],"names":["iconExternalLink","iconDocument","ElementModel.actions.primary","ElementModel.actions.primaryLarge","ElementModel.actions.secondary","ElementModel.actions.secondaryLarge","ElementModel.actions.secondaryWhite","ElementModel.actions.secondaryGold","ElementModel.actions.outline","ElementModel.actions.outlineLarge","ElementModel.actions.outlineWhite","ElementModel.layout.gridStacked","ElementModel.headline.sansMin"],"mappings":";;;;;;;;;;;;;AA0CA,MAAM,QAAkC;AAAA,EACtC;AAAA,EACA,WAAWA;AAAAA,EACX,UAAUC;AAAAA,EACV;AACF;AAEA,SAAS,WAAW,SAAsB,KAAmB;AAC3D,QAAM,OAAO,eAAe,GAAG;AAC/B,MAAI,KAAM,SAAQ,aAAa,MAAM,QAAQ,UAAU;AACzD;AAEA,SAAS,eAAe,SAAsB,MAAyB;AACrE,QAAM,eAAe,mBAAmB,EAAE,SAAS;AACnD,MAAI,cAAc;AAChB,YAAQ,aAAa,cAAc,QAAQ,UAAU;AACrD;AAAA,EACF;AAEA,QAAM,OAAO,QAAQ,aAAa,MAAM;AACxC,QAAM,gBAAgB,QAAQ,aAAa,QAAQ,MAAM;AACzD,QAAM,aAAa,QAAQ,aAAa,UAAU,MAAM;AACxD,QAAM,SAAS,MAAM,SAAS,SAAS;AAEvC,MAAI,QAAQ;AACV,eAAW,SAAS,MAAM,KAAK;AAAA,EACjC,WAAW,eAAe;AACxB,eAAW,SAAS,MAAM,SAAS;AAAA,EACrC,WAAW,YAAY;AACrB,eAAW,SAAS,MAAM,QAAQ;AAAA,EACpC,WAAW,SAAS,aAAa;AAC/B,eAAW,SAAS,MAAM,QAAQ;AAAA,EACpC;AACF;AAEA,SAAS,uBACP,UACA,OACA;AACA,QAAM,SAAS,SAAS;AAAA,IACtB,SAAS,MAAM;AAAA,IACf,eAAe,MAAM;AAAA,EAAA,CACtB;AACD,SAAO,EAAE,SAAS,OAAO,SAAS,QAAQ,OAAO,OAAA;AACnD;AAEA,SAAS,cAAc,MAAmB,OAAqB;AAC7D,iBAAe,MAAM,SAAS,IAAI;AAElC,QAAM,UAAmB;AAAA,IACvB,SAAS;AAAA,MACP,SAASC;AAAAA,MACT,OAAOC;AAAAA,IAAqB;AAAA,IAE9B,WAAW;AAAA,MACT,SAASC;AAAAA,MACT,OAAOC;AAAAA,MACP,MAAMC;AAAAA,MACN,MAAMC;AAAAA,IAAqB;AAAA,IAE7B,SAAS;AAAA,MACP,SAASC;AAAAA,MACT,OAAOC;AAAAA,MACP,MAAMC;AAAAA,IAAqB;AAAA,EAC7B;AAGF,QAAM,cAAc,QAAQ,IAAI;AAEhC,MAAI,MAAM,eAAe,YAAY,MAAM;AACzC,WAAO,uBAAuB,YAAY,MAAM,KAAK;AAAA,EACvD;AACA,MAAI,MAAM,eAAe,YAAY,MAAM;AACzC,WAAO,uBAAuB,YAAY,MAAM,KAAK;AAAA,EACvD;AACA,MAAI,MAAM,eAAe,YAAY,OAAO;AAC1C,WAAO,uBAAuB,YAAY,OAAO,KAAK;AAAA,EACxD;AACA,SAAO,uBAAuB,YAAY,SAAS,KAAK;AAC1D;AAEA,MAAM,2BAA2B,CAAC,UAAuB;AACvD,QAAM,EAAE,oBAAoB;AAE5B,SAAOC,YAAgC;AAAA,IACrC,SAAS,SAAS,cAAc,KAAK;AAAA,IACrC,eAAe,kBAAkB,CAAA,IAAK,EAAE,SAAS,EAAE,YAAY,SAAA,EAAS;AAAA,EAAE,CAC3E;AACH;AAEA,MAAM,kBAAkB,CAAC,UAAuB;AAC9C,QAAM,EAAE,aAAa,iBAAiB,UAAA,IAAc;AACpD,QAAM,kBAAkB;AAAA,IACtB,SAAS;AAAA,MACP,GAAI,cACA,cAAc,KAAK,KAAK,QACxB,cAAc,KAAK,KAAK;AAAA,MAC5B,WAAW,GAAG,MAAM,QAAQ,GAAG;AAAA,IAAA;AAAA,EACjC;AAGF,QAAM,2BAA2B;AAAA,IAC/B,SAAS;AAAA,MACP,GAAI,cACA,cAAc,KAAK,KAAK,QACxB,cAAc,KAAK,KAAK;AAAA,MAC5B,WAAW,GAAG,MAAM,QAAQ,GAAG;AAAA,MAC/B,YAAY,GAAG,MAAM,QAAQ,EAAE;AAAA,MAC/B,WAAW;AAAA,IAAA;AAAA,EACb;AAGF,MAAI,WAAW;AACb,WAAOC,QAA8B;AAAA,MACnC,SAAS;AAAA,MACT;AAAA,MACA,eAAe,kBACX,2BACA;AAAA,IAAA,CACL;AAAA,EACH;AACF;AAEO,MAAM,UAAU,CAAC,UAAwB,cAAc,WAAW,KAAK;AACvE,MAAM,YAAY,CAAC,UACxB,cAAc,aAAa,KAAK;AAC3B,MAAM,UAAU,CAAC,UAAwB,cAAc,WAAW,KAAK;AAEvE,MAAM,UAAU,CAAC,UAAuB;AAC7C,QAAM,EAAE,WAAW,eAAe,iBAAiB,kBAAkB;AACrE,QAAM,YAAY,SAAS,cAAc,KAAK;AAC9C,MAAI,SAAS;AAEb,MAAI,eAAe;AACjB,UAAM,SAAS,QAAQ,KAAK;AAC5B,cAAU,YAAY,OAAO,OAAO;AACpC,aAAS,OAAO;AAAA,EAClB;AAEA,MAAI,iBAAiB;AACnB,UAAM,SAAS,UAAU,KAAK;AAC9B,cAAU,YAAY,OAAO,OAAO;AACpC,aAAS,OAAO;AAAA,EAClB;AAEA,MAAI,eAAe;AACjB,UAAM,SAAS,QAAQ,KAAK;AAC5B,cAAU,YAAY,OAAO,OAAO;AACpC,aAAS,OAAO;AAAA,EAClB;AAEA,MAAI,WAAW;AACb,UAAM,qBAAqB,yBAAyB,KAAK;AACzD,UAAM,mBAAmB,gBAAgB,KAAK;AAC9C,QAAI,CAAC,iBAAkB,QAAO,EAAE,SAAS,WAAW,OAAA;AAEpD,uBAAmB,QAAQ,YAAY,UAAU;AACjD,uBAAmB,QAAQ,YAAY,iBAAiB,OAAO;AAC/D,cAAU,YAAY;AAEtB,cAAU,YAAY,mBAAmB,OAAO;AAEhD,cAAU,mBAAmB;AAC7B,cAAU,iBAAiB;AAAA,EAC7B;AAEA,SAAO,EAAE,SAAS,WAAW,OAAA;AAC/B;"}
1
+ {"version":3,"file":"text.mjs","sources":["../../../source/atomic/actions/text.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport * as elementStyles from '@universityofmaryland/web-styles-library/element';\nimport * as layoutStyles from '@universityofmaryland/web-styles-library/layout';\nimport * as animation from '@universityofmaryland/web-styles-library/animation';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport { parseSvgString } from '@universityofmaryland/web-utilities-library/media';\nimport { theme } from '@universityofmaryland/web-utilities-library/theme';\nimport {\n extractIconElement,\n wrapTextNodeInSpan,\n} from '@universityofmaryland/web-utilities-library/dom';\nimport { external_link as iconExternalLink } from '@universityofmaryland/web-icons-library/controls';\nimport { email as iconEmail } from '@universityofmaryland/web-icons-library/communication';\nimport { document as iconDocument } from '@universityofmaryland/web-icons-library/files';\nimport { fearless as iconFearless } from '@universityofmaryland/web-icons-library/brand';\n\ninterface ElementProps {\n element: HTMLElement;\n isThemeDark?: boolean;\n isThemeGold?: boolean;\n isSizeLarge?: boolean;\n elementStyles?: Record<string, any>;\n}\n\ninterface OptionProps extends ElementProps {\n isTypePrimary?: boolean;\n isTypeSecondary?: boolean;\n isTypeOutline?: boolean;\n plainText?: HTMLElement | null;\n}\n\ntype ElementType = 'primary' | 'secondary' | 'outline';\ntype IconType = 'email' | 'newWindow' | 'document' | 'fearless';\n\nconst createLinkIcon = (element: HTMLElement, type: ElementType): void => {\n const existingIcon = extractIconElement({ element });\n const ICONS: Record<IconType, string> = {\n email: iconEmail,\n newWindow: iconExternalLink,\n document: iconDocument,\n fearless: iconFearless,\n };\n\n if (existingIcon) {\n element.insertBefore(existingIcon, element.firstChild);\n return;\n }\n\n const href = element.getAttribute('href');\n const isExternalTab = element.getAttribute('target') === '_blank';\n const isDownload = element.getAttribute('download') !== null;\n const isMail = href?.includes('mailto:');\n const insertIcon = (element: HTMLElement, svg: string): void => {\n const icon = parseSvgString(svg);\n if (icon) element.insertBefore(icon, element.firstChild);\n };\n\n if (isMail) {\n insertIcon(element, ICONS.email);\n } else if (isExternalTab) {\n insertIcon(element, ICONS.newWindow);\n } else if (isDownload) {\n insertIcon(element, ICONS.document);\n } else if (type === 'secondary') {\n insertIcon(element, ICONS.fearless);\n }\n};\n\nconst createPlainText = ({\n isThemeDark,\n isTypeSecondary,\n plainText,\n}: Pick<OptionProps, 'isThemeDark' | 'isTypeSecondary' | 'plainText'>) => {\n if (!plainText) return null;\n\n return new ElementBuilder(plainText)\n .styled(\n typography.sans.compose('min', { theme: isThemeDark ? 'dark' : 'light' }),\n )\n .withStyles({\n element: {\n textDecoration: 'underline',\n\n ...(isTypeSecondary && {\n marginLeft: `${token.spacing.lg}`,\n alignSelf: 'baseline',\n }),\n },\n })\n .build();\n};\n\nconst createElement = (type: ElementType, props: ElementProps) => {\n createLinkIcon(props.element, type);\n\n const size = props.isSizeLarge ? 'large' : 'normal';\n let styleObject;\n\n if (type === 'primary') {\n styleObject = elementStyles.action.primary.composePrimary({ size });\n } else if (type === 'secondary') {\n let color: 'default' | 'white' | 'gold' = 'default';\n if (props.isThemeGold) {\n color = 'gold';\n } else if (props.isThemeDark) {\n color = 'white';\n }\n styleObject = {\n ...elementStyles.action.secondary.composeSecondary({\n size,\n color,\n }),\n ...animation.line.slideUnderRed,\n };\n } else if (type === 'outline') {\n const color = props.isThemeDark ? 'white' : 'default';\n styleObject = elementStyles.action.outline.composeOutline({ size, color });\n }\n\n const element = new ElementBuilder(props.element)\n .styled(styleObject!)\n .withStylesIf(!!props.elementStyles, props.elementStyles || {});\n\n if (type === 'secondary') {\n element.withModifier((el) => {\n wrapTextNodeInSpan(el);\n });\n }\n\n return element.build();\n};\n\nexport const primary = (props: ElementProps) => createElement('primary', props);\nexport const secondary = (props: ElementProps) =>\n createElement('secondary', props);\nexport const outline = (props: ElementProps) => createElement('outline', props);\n\nexport const options = (props: OptionProps) => {\n const { plainText, isTypePrimary, isTypeSecondary, isTypeOutline } = props;\n\n let actionModel;\n\n if (isTypePrimary) {\n actionModel = primary(props);\n } else if (isTypeSecondary) {\n actionModel = secondary(props);\n } else if (isTypeOutline) {\n actionModel = outline(props);\n }\n\n if (plainText) {\n const plainTextElement = createPlainText(props);\n\n if (plainTextElement) {\n return new ElementBuilder()\n .styled(layoutStyles.grid.stacked)\n .withStyles({\n element: {\n display: 'grid',\n gap: token.spacing.sm,\n\n ['& > *']: {\n marginBottom: '0 !important',\n ...(!isTypeSecondary && { justifySelf: 'center' }),\n },\n },\n })\n .withChild(actionModel)\n .withChild(plainTextElement)\n .build();\n }\n }\n\n return new ElementBuilder().withChild(actionModel).build();\n};\n"],"names":["iconExternalLink","element","layoutStyles"],"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
  function _interopNamespaceDefault(e) {
5
5
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
@@ -1 +1 @@
1
- {"version":3,"file":"indicator.js","sources":["../../../../source/atomic/animations/actions/indicator.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\n\nconst ELEMENT_SLIDE_INDICATOR_CONTAINER = 'slide-indicator-container';\nconst ELEMENT_SLIDE_INDICATOR_LINE = 'slide-indicator-line';\nconst ELEMENT_SLIDE_INDICATOR_BUTTON_WRAPPER = 'slide-indicator-button-wrapper';\n\n// prettier-ignore\nconst LineStyles = `\n .${ELEMENT_SLIDE_INDICATOR_LINE} {\n position: absolute;\n left: 0;\n top: 0;\n height: 24px;\n width: 80px;\n transition: left 500ms;\n background-color: ${token.color.red};\n z-index: 99;\n }\n`\n\n// prettier-ignore\nconst ButtonStyles = `\n .${ELEMENT_SLIDE_INDICATOR_BUTTON_WRAPPER} {\n width: 80px;\n height: 100%;\n background-color: ${token.color.gray.light};\n position: relative;\n }\n\n .${ELEMENT_SLIDE_INDICATOR_BUTTON_WRAPPER} > span {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 22px;\n display: block;\n background-color: ${token.color.gray.lightest};\n z-index: 99;\n }\n`\n\nconst STYLES_INDICATOR = `\n .${ELEMENT_SLIDE_INDICATOR_CONTAINER} {\n position: relative;\n height: 24px;\n display: flex;\n align-items: flex-start;\n max-width: 100%;\n overflow: hidden;\n }\n\n .${ELEMENT_SLIDE_INDICATOR_CONTAINER} > span {\n display: block;\n width: ${token.spacing.sm};\n height: 22px;\n z-index: 999;\n position: relative;\n }\n \n ${LineStyles}\n ${ButtonStyles}\n\n`;\n\nexport default ({\n count,\n overlayColor,\n isThemeDark,\n isThemeLight,\n callback,\n}: {\n count: number;\n overlayColor?: string;\n isThemeDark?: boolean;\n isThemeLight?: boolean;\n callback: (arg: number) => void;\n}) =>\n (() => {\n const container = document.createElement('div');\n const line = document.createElement('div');\n let styles = STYLES_INDICATOR;\n\n const buttons = Array.from({ length: count }).map((count, i) => {\n const button = document.createElement('button');\n\n button.classList.add(ELEMENT_SLIDE_INDICATOR_BUTTON_WRAPPER);\n button.addEventListener('click', () => callback(i));\n button.setAttribute('aria-label', `Slide ${i + 1}`);\n\n return button;\n });\n\n const positionLine = (index: number) => {\n const button = buttons[index];\n const buttonSize = button.clientWidth;\n const buttonPosition = button.offsetLeft;\n\n line.style.width = `${buttonSize}px`;\n line.style.left = `${buttonPosition}px`;\n };\n const sizeButtons = () => {\n const maxWidth = 80;\n const containerSize = container.clientWidth;\n let buttonSize = containerSize / count;\n\n if (buttonSize > maxWidth) buttonSize = maxWidth;\n\n buttons.forEach((button) => {\n button.style.width = `${buttonSize}px`;\n });\n };\n\n const eventResize = () => {\n sizeButtons();\n positionLine(position);\n };\n\n const eventPosition = (index: number) => {\n positionLine(index);\n position = index;\n };\n\n const load = () => {\n const reload = () => {\n setTimeout(() => {\n const isLoaded = container.clientWidth > 0;\n if (!isLoaded) {\n reload();\n } else {\n sizeButtons();\n positionLine(position);\n line.style.display = 'block';\n }\n }, 500);\n };\n\n line.style.display = 'none';\n reload();\n };\n\n let position = 0;\n\n line.classList.add(ELEMENT_SLIDE_INDICATOR_LINE);\n\n container.classList.add(ELEMENT_SLIDE_INDICATOR_CONTAINER);\n container.appendChild(line);\n buttons.forEach((button) => {\n const spacer = document.createElement('span');\n const overlay = document.createElement('span');\n let spacerColor: string = token.color.white;\n\n if (isThemeDark && !overlayColor) {\n spacerColor = token.color.black;\n }\n\n if (isThemeLight && !overlayColor) {\n spacerColor = token.color.gray.lightest;\n }\n\n spacer.style.backgroundColor = spacerColor;\n overlay.style.backgroundColor = spacerColor;\n\n button.appendChild(overlay);\n container.appendChild(button);\n container.appendChild(spacer);\n });\n\n load();\n\n window.addEventListener('resize', debounce(eventResize, 20));\n\n return {\n element: container,\n className: ELEMENT_SLIDE_INDICATOR_CONTAINER,\n styles,\n position: eventPosition,\n };\n })();\n"],"names":["token","count","debounce"],"mappings":";;;;;;;;;;;;;;;;;;;;AAGA,MAAM,oCAAoC;AAC1C,MAAM,+BAA+B;AACrC,MAAM,yCAAyC;AAG/C,MAAM,aAAa;AAAA,KACd,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAOTA,iBAAM,MAAM,GAAG;AAAA;AAAA;AAAA;AAMvC,MAAM,eAAe;AAAA,KAChB,sCAAsC;AAAA;AAAA;AAAA,wBAGnBA,iBAAM,MAAM,KAAK,KAAK;AAAA;AAAA;AAAA;AAAA,KAIzC,sCAAsC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAOnBA,iBAAM,MAAM,KAAK,QAAQ;AAAA;AAAA;AAAA;AAKjD,MAAM,mBAAmB;AAAA,KACpB,iCAAiC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KASjC,iCAAiC;AAAA;AAAA,aAEzBA,iBAAM,QAAQ,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMzB,UAAU;AAAA,IACV,YAAY;AAAA;AAAA;AAIhB,MAAA,YAAe,CAAC;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,OAOG,MAAM;AACL,QAAM,YAAY,SAAS,cAAc,KAAK;AAC9C,QAAM,OAAO,SAAS,cAAc,KAAK;AACzC,MAAI,SAAS;AAEb,QAAM,UAAU,MAAM,KAAK,EAAE,QAAQ,MAAA,CAAO,EAAE,IAAI,CAACC,QAAO,MAAM;AAC9D,UAAM,SAAS,SAAS,cAAc,QAAQ;AAE9C,WAAO,UAAU,IAAI,sCAAsC;AAC3D,WAAO,iBAAiB,SAAS,MAAM,SAAS,CAAC,CAAC;AAClD,WAAO,aAAa,cAAc,SAAS,IAAI,CAAC,EAAE;AAElD,WAAO;AAAA,EACT,CAAC;AAED,QAAM,eAAe,CAAC,UAAkB;AACtC,UAAM,SAAS,QAAQ,KAAK;AAC5B,UAAM,aAAa,OAAO;AAC1B,UAAM,iBAAiB,OAAO;AAE9B,SAAK,MAAM,QAAQ,GAAG,UAAU;AAChC,SAAK,MAAM,OAAO,GAAG,cAAc;AAAA,EACrC;AACA,QAAM,cAAc,MAAM;AACxB,UAAM,WAAW;AACjB,UAAM,gBAAgB,UAAU;AAChC,QAAI,aAAa,gBAAgB;AAEjC,QAAI,aAAa,SAAU,cAAa;AAExC,YAAQ,QAAQ,CAAC,WAAW;AAC1B,aAAO,MAAM,QAAQ,GAAG,UAAU;AAAA,IACpC,CAAC;AAAA,EACH;AAEA,QAAM,cAAc,MAAM;AACxB,gBAAA;AACA,iBAAa,QAAQ;AAAA,EACvB;AAEA,QAAM,gBAAgB,CAAC,UAAkB;AACvC,iBAAa,KAAK;AAClB,eAAW;AAAA,EACb;AAEA,QAAM,OAAO,MAAM;AACjB,UAAM,SAAS,MAAM;AACnB,iBAAW,MAAM;AACf,cAAM,WAAW,UAAU,cAAc;AACzC,YAAI,CAAC,UAAU;AACb,iBAAA;AAAA,QACF,OAAO;AACL,sBAAA;AACA,uBAAa,QAAQ;AACrB,eAAK,MAAM,UAAU;AAAA,QACvB;AAAA,MACF,GAAG,GAAG;AAAA,IACR;AAEA,SAAK,MAAM,UAAU;AACrB,WAAA;AAAA,EACF;AAEA,MAAI,WAAW;AAEf,OAAK,UAAU,IAAI,4BAA4B;AAE/C,YAAU,UAAU,IAAI,iCAAiC;AACzD,YAAU,YAAY,IAAI;AAC1B,UAAQ,QAAQ,CAAC,WAAW;AAC1B,UAAM,SAAS,SAAS,cAAc,MAAM;AAC5C,UAAM,UAAU,SAAS,cAAc,MAAM;AAC7C,QAAI,cAAsBD,iBAAM,MAAM;AAEtC,QAAI,eAAe,CAAC,cAAc;AAChC,oBAAcA,iBAAM,MAAM;AAAA,IAC5B;AAEA,QAAI,gBAAgB,CAAC,cAAc;AACjC,oBAAcA,iBAAM,MAAM,KAAK;AAAA,IACjC;AAEA,WAAO,MAAM,kBAAkB;AAC/B,YAAQ,MAAM,kBAAkB;AAEhC,WAAO,YAAY,OAAO;AAC1B,cAAU,YAAY,MAAM;AAC5B,cAAU,YAAY,MAAM;AAAA,EAC9B,CAAC;AAED,OAAA;AAEA,SAAO,iBAAiB,UAAUE,YAAAA,SAAS,aAAa,EAAE,CAAC;AAE3D,SAAO;AAAA,IACL,SAAS;AAAA,IACT,WAAW;AAAA,IACX;AAAA,IACA,UAAU;AAAA,EAAA;AAEd,GAAA;;"}
1
+ {"version":3,"file":"indicator.js","sources":["../../../../source/atomic/animations/actions/indicator.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\n\nconst ELEMENT_SLIDE_INDICATOR_CONTAINER = 'slide-indicator-container';\nconst ELEMENT_SLIDE_INDICATOR_LINE = 'slide-indicator-line';\nconst ELEMENT_SLIDE_INDICATOR_BUTTON_WRAPPER = 'slide-indicator-button-wrapper';\n\n// prettier-ignore\nconst LineStyles = `\n .${ELEMENT_SLIDE_INDICATOR_LINE} {\n position: absolute;\n left: 0;\n top: 0;\n height: 24px;\n width: 80px;\n transition: left 500ms;\n background-color: ${token.color.red};\n z-index: 99;\n }\n`\n\n// prettier-ignore\nconst ButtonStyles = `\n .${ELEMENT_SLIDE_INDICATOR_BUTTON_WRAPPER} {\n width: 80px;\n height: 100%;\n background-color: ${token.color.gray.light};\n position: relative;\n }\n\n .${ELEMENT_SLIDE_INDICATOR_BUTTON_WRAPPER} > span {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 22px;\n display: block;\n background-color: ${token.color.gray.lightest};\n z-index: 99;\n }\n`\n\nconst STYLES_INDICATOR = `\n .${ELEMENT_SLIDE_INDICATOR_CONTAINER} {\n position: relative;\n height: 24px;\n display: flex;\n align-items: flex-start;\n max-width: 100%;\n overflow: hidden;\n }\n\n .${ELEMENT_SLIDE_INDICATOR_CONTAINER} > span {\n display: block;\n width: ${token.spacing.sm};\n height: 22px;\n z-index: 999;\n position: relative;\n }\n \n ${LineStyles}\n ${ButtonStyles}\n\n`;\n\nexport default ({\n count,\n overlayColor,\n isThemeDark,\n isThemeLight,\n callback,\n}: {\n count: number;\n overlayColor?: string;\n isThemeDark?: boolean;\n isThemeLight?: boolean;\n callback: (arg: number) => void;\n}) =>\n (() => {\n const container = document.createElement('div');\n const line = document.createElement('div');\n let styles = STYLES_INDICATOR;\n\n const buttons = Array.from({ length: count }).map((count, i) => {\n const button = document.createElement('button');\n\n button.classList.add(ELEMENT_SLIDE_INDICATOR_BUTTON_WRAPPER);\n button.addEventListener('click', () => callback(i));\n button.setAttribute('aria-label', `Slide ${i + 1}`);\n\n return button;\n });\n\n const positionLine = (index: number) => {\n const button = buttons[index];\n const buttonSize = button.clientWidth;\n const buttonPosition = button.offsetLeft;\n\n line.style.width = `${buttonSize}px`;\n line.style.left = `${buttonPosition}px`;\n };\n const sizeButtons = () => {\n const maxWidth = 80;\n const containerSize = container.clientWidth;\n let buttonSize = containerSize / count;\n\n if (buttonSize > maxWidth) buttonSize = maxWidth;\n\n buttons.forEach((button) => {\n button.style.width = `${buttonSize}px`;\n });\n };\n\n const eventResize = () => {\n sizeButtons();\n positionLine(position);\n };\n\n const eventPosition = (index: number) => {\n positionLine(index);\n position = index;\n };\n\n const load = () => {\n const reload = () => {\n setTimeout(() => {\n const isLoaded = container.clientWidth > 0;\n if (!isLoaded) {\n reload();\n } else {\n sizeButtons();\n positionLine(position);\n line.style.display = 'block';\n }\n }, 500);\n };\n\n line.style.display = 'none';\n reload();\n };\n\n let position = 0;\n\n line.classList.add(ELEMENT_SLIDE_INDICATOR_LINE);\n\n container.classList.add(ELEMENT_SLIDE_INDICATOR_CONTAINER);\n container.appendChild(line);\n buttons.forEach((button) => {\n const spacer = document.createElement('span');\n const overlay = document.createElement('span');\n let spacerColor: string = token.color.white;\n\n if (isThemeDark && !overlayColor) {\n spacerColor = token.color.black;\n }\n\n if (isThemeLight && !overlayColor) {\n spacerColor = token.color.gray.lightest;\n }\n\n spacer.style.backgroundColor = spacerColor;\n overlay.style.backgroundColor = spacerColor;\n\n button.appendChild(overlay);\n container.appendChild(button);\n container.appendChild(spacer);\n });\n\n load();\n\n window.addEventListener('resize', debounce(eventResize, 20));\n\n return {\n element: container,\n className: ELEMENT_SLIDE_INDICATOR_CONTAINER,\n styles,\n position: eventPosition,\n };\n })();\n"],"names":["token","count","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
  const ELEMENT_SLIDE_INDICATOR_CONTAINER = "slide-indicator-container";
4
4
  const ELEMENT_SLIDE_INDICATOR_LINE = "slide-indicator-line";