@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.
- package/README.md +1 -1
- package/dist/_types.d.ts +2 -9
- package/dist/_types.d.ts.map +1 -1
- package/dist/atomic/_types.d.ts +2 -2
- package/dist/atomic/_types.d.ts.map +1 -1
- package/dist/atomic/actions/icon.d.ts +1 -5
- package/dist/atomic/actions/icon.d.ts.map +1 -1
- package/dist/atomic/actions/icon.js +43 -48
- package/dist/atomic/actions/icon.js.map +1 -1
- package/dist/atomic/actions/icon.mjs +43 -48
- package/dist/atomic/actions/icon.mjs.map +1 -1
- package/dist/atomic/actions/text.d.ts +4 -16
- package/dist/atomic/actions/text.d.ts.map +1 -1
- package/dist/atomic/actions/text.js +82 -104
- package/dist/atomic/actions/text.js.map +1 -1
- package/dist/atomic/actions/text.mjs +81 -106
- package/dist/atomic/actions/text.mjs.map +1 -1
- package/dist/atomic/animations/actions/indicator.js +1 -1
- package/dist/atomic/animations/actions/indicator.js.map +1 -1
- package/dist/atomic/animations/actions/indicator.mjs +1 -1
- package/dist/atomic/animations/actions/indicator.mjs.map +1 -1
- package/dist/atomic/animations/brand/card-stack.d.ts +2 -1
- package/dist/atomic/animations/brand/card-stack.d.ts.map +1 -1
- package/dist/atomic/animations/brand/card-stack.js +148 -172
- package/dist/atomic/animations/brand/card-stack.js.map +1 -1
- package/dist/atomic/animations/brand/card-stack.mjs +140 -164
- package/dist/atomic/animations/brand/card-stack.mjs.map +1 -1
- package/dist/atomic/animations/brand/chevron-scroll.js +1 -1
- package/dist/atomic/animations/brand/chevron-scroll.js.map +1 -1
- package/dist/atomic/animations/brand/chevron-scroll.mjs +1 -1
- package/dist/atomic/animations/brand/chevron-scroll.mjs.map +1 -1
- package/dist/atomic/assets/image/background.d.ts +1 -5
- package/dist/atomic/assets/image/background.d.ts.map +1 -1
- package/dist/atomic/assets/image/background.js +40 -40
- package/dist/atomic/assets/image/background.js.map +1 -1
- package/dist/atomic/assets/image/background.mjs +23 -40
- package/dist/atomic/assets/image/background.mjs.map +1 -1
- package/dist/atomic/assets/image/gif.d.ts +1 -5
- package/dist/atomic/assets/image/gif.d.ts.map +1 -1
- package/dist/atomic/assets/image/gif.js +28 -12
- package/dist/atomic/assets/image/gif.js.map +1 -1
- package/dist/atomic/assets/image/gif.mjs +11 -12
- package/dist/atomic/assets/image/gif.mjs.map +1 -1
- package/dist/atomic/assets/image/placeholder.d.ts +1 -5
- package/dist/atomic/assets/image/placeholder.d.ts.map +1 -1
- package/dist/atomic/assets/video/observed-auto-play.d.ts +1 -9
- package/dist/atomic/assets/video/observed-auto-play.d.ts.map +1 -1
- package/dist/atomic/assets/video/observed-auto-play.js +9 -5
- package/dist/atomic/assets/video/observed-auto-play.js.map +1 -1
- package/dist/atomic/assets/video/observed-auto-play.mjs +9 -5
- package/dist/atomic/assets/video/observed-auto-play.mjs.map +1 -1
- package/dist/atomic/assets/video/toggle.d.ts +1 -9
- package/dist/atomic/assets/video/toggle.d.ts.map +1 -1
- package/dist/atomic/assets/video/toggle.js +38 -40
- package/dist/atomic/assets/video/toggle.js.map +1 -1
- package/dist/atomic/assets/video/toggle.mjs +21 -40
- package/dist/atomic/assets/video/toggle.mjs.map +1 -1
- package/dist/atomic/buttons/fullscreen.d.ts +1 -5
- package/dist/atomic/buttons/fullscreen.d.ts.map +1 -1
- package/dist/atomic/buttons/fullscreen.js +21 -15
- package/dist/atomic/buttons/fullscreen.js.map +1 -1
- package/dist/atomic/buttons/fullscreen.mjs +4 -15
- package/dist/atomic/buttons/fullscreen.mjs.map +1 -1
- package/dist/atomic/events/meta.d.ts +1 -5
- package/dist/atomic/events/meta.d.ts.map +1 -1
- package/dist/atomic/events/meta.js +48 -48
- package/dist/atomic/events/meta.js.map +1 -1
- package/dist/atomic/events/meta.mjs +31 -48
- package/dist/atomic/events/meta.mjs.map +1 -1
- package/dist/atomic/events/sign.d.ts +1 -5
- package/dist/atomic/events/sign.d.ts.map +1 -1
- package/dist/atomic/events/sign.js +84 -93
- package/dist/atomic/events/sign.js.map +1 -1
- package/dist/atomic/events/sign.mjs +82 -93
- package/dist/atomic/events/sign.mjs.map +1 -1
- package/dist/atomic/layout/block/stacked.d.ts +7 -19
- package/dist/atomic/layout/block/stacked.d.ts.map +1 -1
- package/dist/atomic/layout/block/stacked.js +14 -20
- package/dist/atomic/layout/block/stacked.js.map +1 -1
- package/dist/atomic/layout/block/stacked.mjs +14 -20
- package/dist/atomic/layout/block/stacked.mjs.map +1 -1
- package/dist/atomic/layout/overlay/modal.js +1 -1
- package/dist/atomic/layout/overlay/modal.js.map +1 -1
- package/dist/atomic/layout/overlay/modal.mjs +1 -1
- package/dist/atomic/layout/overlay/modal.mjs.map +1 -1
- package/dist/atomic/layout/person/columns.d.ts +4 -20
- package/dist/atomic/layout/person/columns.d.ts.map +1 -1
- package/dist/atomic/layout/person/columns.js +56 -66
- package/dist/atomic/layout/person/columns.js.map +1 -1
- package/dist/atomic/layout/person/columns.mjs +56 -66
- package/dist/atomic/layout/person/columns.mjs.map +1 -1
- package/dist/atomic/text/stat.d.ts +2 -3
- package/dist/atomic/text/stat.d.ts.map +1 -1
- package/dist/atomic/text/stat.js +101 -119
- package/dist/atomic/text/stat.js.map +1 -1
- package/dist/atomic/text/stat.mjs +100 -119
- package/dist/atomic/text/stat.mjs.map +1 -1
- package/dist/atomic/text-lockup/contact.d.ts +1 -5
- package/dist/atomic/text-lockup/contact.d.ts.map +1 -1
- package/dist/atomic/text-lockup/contact.js +65 -105
- package/dist/atomic/text-lockup/contact.js.map +1 -1
- package/dist/atomic/text-lockup/contact.mjs +60 -103
- package/dist/atomic/text-lockup/contact.mjs.map +1 -1
- package/dist/atomic/text-lockup/date.d.ts.map +1 -1
- package/dist/atomic/text-lockup/date.js +6 -1
- package/dist/atomic/text-lockup/date.js.map +1 -1
- package/dist/atomic/text-lockup/date.mjs +6 -1
- package/dist/atomic/text-lockup/date.mjs.map +1 -1
- package/dist/atomic/text-lockup/large.d.ts +3 -7
- package/dist/atomic/text-lockup/large.d.ts.map +1 -1
- package/dist/atomic/text-lockup/large.js +62 -71
- package/dist/atomic/text-lockup/large.js.map +1 -1
- package/dist/atomic/text-lockup/large.mjs +59 -71
- package/dist/atomic/text-lockup/large.mjs.map +1 -1
- package/dist/atomic/text-lockup/medium.d.ts +5 -9
- package/dist/atomic/text-lockup/medium.d.ts.map +1 -1
- package/dist/atomic/text-lockup/medium.js +76 -84
- package/dist/atomic/text-lockup/medium.js.map +1 -1
- package/dist/atomic/text-lockup/medium.mjs +70 -82
- package/dist/atomic/text-lockup/medium.mjs.map +1 -1
- package/dist/atomic/text-lockup/person.d.ts +1 -5
- package/dist/atomic/text-lockup/person.d.ts.map +1 -1
- package/dist/atomic/text-lockup/person.js +102 -101
- package/dist/atomic/text-lockup/person.js.map +1 -1
- package/dist/atomic/text-lockup/person.mjs +99 -101
- package/dist/atomic/text-lockup/person.mjs.map +1 -1
- package/dist/atomic/text-lockup/small-scaling.d.ts +1 -5
- package/dist/atomic/text-lockup/small-scaling.d.ts.map +1 -1
- package/dist/atomic/text-lockup/small-scaling.js +64 -39
- package/dist/atomic/text-lockup/small-scaling.js.map +1 -1
- package/dist/atomic/text-lockup/small-scaling.mjs +44 -38
- package/dist/atomic/text-lockup/small-scaling.mjs.map +1 -1
- package/dist/atomic/text-lockup/small.d.ts +11 -25
- package/dist/atomic/text-lockup/small.d.ts.map +1 -1
- package/dist/atomic/text-lockup/small.js +70 -69
- package/dist/atomic/text-lockup/small.js.map +1 -1
- package/dist/atomic/text-lockup/small.mjs +64 -66
- package/dist/atomic/text-lockup/small.mjs.map +1 -1
- package/dist/composite/alert/elements/closeButton.d.ts +7 -0
- package/dist/composite/alert/elements/closeButton.d.ts.map +1 -0
- package/dist/composite/alert/elements/closeButton.js +51 -0
- package/dist/composite/alert/elements/closeButton.js.map +1 -0
- package/dist/composite/alert/elements/closeButton.mjs +34 -0
- package/dist/composite/alert/elements/closeButton.mjs.map +1 -0
- package/dist/composite/alert/elements/text.d.ts +3 -13
- package/dist/composite/alert/elements/text.d.ts.map +1 -1
- package/dist/composite/alert/elements/text.js +60 -81
- package/dist/composite/alert/elements/text.js.map +1 -1
- package/dist/composite/alert/elements/text.mjs +56 -80
- package/dist/composite/alert/elements/text.mjs.map +1 -1
- package/dist/composite/alert/globals.d.ts +4 -0
- package/dist/composite/alert/globals.d.ts.map +1 -0
- package/dist/composite/alert/globals.js +7 -0
- package/dist/composite/alert/globals.js.map +1 -0
- package/dist/composite/alert/globals.mjs +7 -0
- package/dist/composite/alert/globals.mjs.map +1 -0
- package/dist/composite/alert/index.d.ts +2 -2
- package/dist/composite/alert/index.d.ts.map +1 -1
- package/dist/composite/alert/index.js +2 -2
- package/dist/composite/alert/index.mjs +4 -4
- package/dist/composite/alert/page.d.ts +5 -12
- package/dist/composite/alert/page.d.ts.map +1 -1
- package/dist/composite/alert/page.js +44 -113
- package/dist/composite/alert/page.js.map +1 -1
- package/dist/composite/alert/page.mjs +44 -112
- package/dist/composite/alert/page.mjs.map +1 -1
- package/dist/composite/alert/site.d.ts +5 -11
- package/dist/composite/alert/site.d.ts.map +1 -1
- package/dist/composite/alert/site.js +60 -109
- package/dist/composite/alert/site.js.map +1 -1
- package/dist/composite/alert/site.mjs +61 -109
- package/dist/composite/alert/site.mjs.map +1 -1
- package/dist/composite/banner/promo.js +1 -1
- package/dist/composite/banner/promo.js.map +1 -1
- package/dist/composite/banner/promo.mjs +1 -1
- package/dist/composite/banner/promo.mjs.map +1 -1
- package/dist/composite/card/block.d.ts +1 -5
- package/dist/composite/card/block.d.ts.map +1 -1
- package/dist/composite/card/block.js +7 -5
- package/dist/composite/card/block.js.map +1 -1
- package/dist/composite/card/block.mjs +7 -5
- package/dist/composite/card/block.mjs.map +1 -1
- package/dist/composite/card/list.d.ts +1 -5
- package/dist/composite/card/list.d.ts.map +1 -1
- package/dist/composite/card/list.js +52 -64
- package/dist/composite/card/list.js.map +1 -1
- package/dist/composite/card/list.mjs +52 -64
- package/dist/composite/card/list.mjs.map +1 -1
- package/dist/composite/card/overlay/color.d.ts +1 -5
- package/dist/composite/card/overlay/color.d.ts.map +1 -1
- package/dist/composite/card/overlay/color.js +36 -41
- package/dist/composite/card/overlay/color.js.map +1 -1
- package/dist/composite/card/overlay/color.mjs +36 -41
- package/dist/composite/card/overlay/color.mjs.map +1 -1
- package/dist/composite/card/overlay/icon.d.ts +1 -5
- package/dist/composite/card/overlay/icon.d.ts.map +1 -1
- package/dist/composite/card/overlay/icon.js +27 -31
- package/dist/composite/card/overlay/icon.js.map +1 -1
- package/dist/composite/card/overlay/icon.mjs +27 -31
- package/dist/composite/card/overlay/icon.mjs.map +1 -1
- package/dist/composite/card/overlay/image.d.ts +2 -1
- package/dist/composite/card/overlay/image.d.ts.map +1 -1
- package/dist/composite/card/overlay/image.js +74 -93
- package/dist/composite/card/overlay/image.js.map +1 -1
- package/dist/composite/card/overlay/image.mjs +73 -93
- package/dist/composite/card/overlay/image.mjs.map +1 -1
- package/dist/composite/card/video/block.d.ts +1 -9
- package/dist/composite/card/video/block.d.ts.map +1 -1
- package/dist/composite/card/video/block.js +7 -5
- package/dist/composite/card/video/block.js.map +1 -1
- package/dist/composite/card/video/block.mjs +7 -5
- package/dist/composite/card/video/block.mjs.map +1 -1
- package/dist/composite/card/video/short.d.ts +1 -5
- package/dist/composite/card/video/short.d.ts.map +1 -1
- package/dist/composite/card/video/short.js +16 -21
- package/dist/composite/card/video/short.js.map +1 -1
- package/dist/composite/card/video/short.mjs +16 -21
- package/dist/composite/card/video/short.mjs.map +1 -1
- package/dist/composite/carousel/_types.d.ts.map +1 -1
- package/dist/composite/carousel/default/index.js +1 -1
- package/dist/composite/carousel/default/index.js.map +1 -1
- package/dist/composite/carousel/default/index.mjs +1 -1
- package/dist/composite/carousel/default/index.mjs.map +1 -1
- package/dist/composite/carousel/elements/blocks.js +2 -2
- package/dist/composite/carousel/elements/blocks.js.map +1 -1
- package/dist/composite/carousel/elements/blocks.mjs +2 -2
- package/dist/composite/carousel/elements/blocks.mjs.map +1 -1
- package/dist/composite/carousel/elements/full-screen.js +7 -5
- package/dist/composite/carousel/elements/full-screen.js.map +1 -1
- package/dist/composite/carousel/elements/full-screen.mjs +7 -5
- package/dist/composite/carousel/elements/full-screen.mjs.map +1 -1
- package/dist/composite/carousel/elements/image.js +2 -2
- package/dist/composite/carousel/elements/image.js.map +1 -1
- package/dist/composite/carousel/elements/image.mjs +2 -2
- package/dist/composite/carousel/elements/image.mjs.map +1 -1
- package/dist/composite/carousel/elements/overlay.js +2 -2
- package/dist/composite/carousel/elements/overlay.js.map +1 -1
- package/dist/composite/carousel/elements/overlay.mjs +2 -2
- package/dist/composite/carousel/elements/overlay.mjs.map +1 -1
- package/dist/composite/carousel/image/multiple.js +11 -9
- package/dist/composite/carousel/image/multiple.js.map +1 -1
- package/dist/composite/carousel/image/multiple.mjs +11 -9
- package/dist/composite/carousel/image/multiple.mjs.map +1 -1
- package/dist/composite/carousel/image/standard.js +10 -8
- package/dist/composite/carousel/image/standard.js.map +1 -1
- package/dist/composite/carousel/image/standard.mjs +10 -8
- package/dist/composite/carousel/image/standard.mjs.map +1 -1
- package/dist/composite/carousel/thumbnail/index.js +1 -1
- package/dist/composite/carousel/thumbnail/index.js.map +1 -1
- package/dist/composite/carousel/thumbnail/index.mjs +1 -1
- package/dist/composite/carousel/thumbnail/index.mjs.map +1 -1
- package/dist/composite/carousel/wide/_elementModel.d.ts +2 -2
- package/dist/composite/carousel/wide/_elementModel.d.ts.map +1 -1
- package/dist/composite/carousel/wide/_elementModel.js +20 -7
- package/dist/composite/carousel/wide/_elementModel.js.map +1 -1
- package/dist/composite/carousel/wide/_elementModel.mjs +20 -7
- package/dist/composite/carousel/wide/_elementModel.mjs.map +1 -1
- package/dist/composite/carousel/wide/container.d.ts.map +1 -1
- package/dist/composite/carousel/wide/container.js +9 -15
- package/dist/composite/carousel/wide/container.js.map +1 -1
- package/dist/composite/carousel/wide/container.mjs +9 -15
- package/dist/composite/carousel/wide/container.mjs.map +1 -1
- package/dist/composite/carousel/wide/controls.d.ts +1 -5
- package/dist/composite/carousel/wide/controls.d.ts.map +1 -1
- package/dist/composite/carousel/wide/controls.js +55 -56
- package/dist/composite/carousel/wide/controls.js.map +1 -1
- package/dist/composite/carousel/wide/controls.mjs +55 -56
- package/dist/composite/carousel/wide/controls.mjs.map +1 -1
- package/dist/composite/carousel/wide/frames.d.ts.map +1 -1
- package/dist/composite/carousel/wide/frames.js +156 -171
- package/dist/composite/carousel/wide/frames.js.map +1 -1
- package/dist/composite/carousel/wide/frames.mjs +153 -169
- package/dist/composite/carousel/wide/frames.mjs.map +1 -1
- package/dist/composite/carousel/wide/index.d.ts +1 -5
- package/dist/composite/carousel/wide/index.d.ts.map +1 -1
- package/dist/composite/carousel/wide/index.js +23 -17
- package/dist/composite/carousel/wide/index.js.map +1 -1
- package/dist/composite/carousel/wide/index.mjs +23 -17
- package/dist/composite/carousel/wide/index.mjs.map +1 -1
- package/dist/composite/footer/elements/main-section/call-to-action.d.ts +2 -2
- package/dist/composite/footer/elements/main-section/call-to-action.d.ts.map +1 -1
- package/dist/composite/footer/elements/main-section/call-to-action.js +19 -28
- package/dist/composite/footer/elements/main-section/call-to-action.js.map +1 -1
- package/dist/composite/footer/elements/main-section/call-to-action.mjs +18 -28
- package/dist/composite/footer/elements/main-section/call-to-action.mjs.map +1 -1
- package/dist/composite/footer/elements/main-section/campaign.d.ts +2 -2
- package/dist/composite/footer/elements/main-section/campaign.d.ts.map +1 -1
- package/dist/composite/footer/elements/main-section/campaign.js +27 -35
- package/dist/composite/footer/elements/main-section/campaign.js.map +1 -1
- package/dist/composite/footer/elements/main-section/campaign.mjs +27 -35
- package/dist/composite/footer/elements/main-section/campaign.mjs.map +1 -1
- package/dist/composite/footer/elements/main-section/index.d.ts +2 -2
- package/dist/composite/footer/elements/main-section/index.d.ts.map +1 -1
- package/dist/composite/footer/elements/main-section/index.js +38 -50
- package/dist/composite/footer/elements/main-section/index.js.map +1 -1
- package/dist/composite/footer/elements/main-section/index.mjs +38 -50
- package/dist/composite/footer/elements/main-section/index.mjs.map +1 -1
- package/dist/composite/footer/elements/main-section/row-links/index.d.ts +2 -2
- package/dist/composite/footer/elements/main-section/row-links/index.d.ts.map +1 -1
- package/dist/composite/footer/elements/main-section/row-links/index.js +24 -36
- package/dist/composite/footer/elements/main-section/row-links/index.js.map +1 -1
- package/dist/composite/footer/elements/main-section/row-links/index.mjs +24 -36
- package/dist/composite/footer/elements/main-section/row-links/index.mjs.map +1 -1
- package/dist/composite/footer/elements/main-section/row-links/link-columns.d.ts +2 -2
- package/dist/composite/footer/elements/main-section/row-links/link-columns.d.ts.map +1 -1
- package/dist/composite/footer/elements/main-section/row-links/link-columns.js +75 -95
- package/dist/composite/footer/elements/main-section/row-links/link-columns.js.map +1 -1
- package/dist/composite/footer/elements/main-section/row-links/link-columns.mjs +73 -93
- package/dist/composite/footer/elements/main-section/row-links/link-columns.mjs.map +1 -1
- package/dist/composite/footer/elements/main-section/row-logo/contact.d.ts +2 -2
- package/dist/composite/footer/elements/main-section/row-logo/contact.d.ts.map +1 -1
- package/dist/composite/footer/elements/main-section/row-logo/contact.js +88 -98
- package/dist/composite/footer/elements/main-section/row-logo/contact.js.map +1 -1
- package/dist/composite/footer/elements/main-section/row-logo/contact.mjs +88 -98
- package/dist/composite/footer/elements/main-section/row-logo/contact.mjs.map +1 -1
- package/dist/composite/footer/elements/main-section/row-logo/index.d.ts +2 -2
- package/dist/composite/footer/elements/main-section/row-logo/index.d.ts.map +1 -1
- package/dist/composite/footer/elements/main-section/row-logo/index.js +30 -43
- package/dist/composite/footer/elements/main-section/row-logo/index.js.map +1 -1
- package/dist/composite/footer/elements/main-section/row-logo/index.mjs +30 -43
- package/dist/composite/footer/elements/main-section/row-logo/index.mjs.map +1 -1
- package/dist/composite/footer/elements/main-section/row-logo/logo.d.ts +2 -2
- package/dist/composite/footer/elements/main-section/row-logo/logo.d.ts.map +1 -1
- package/dist/composite/footer/elements/main-section/row-logo/logo.js +24 -32
- package/dist/composite/footer/elements/main-section/row-logo/logo.js.map +1 -1
- package/dist/composite/footer/elements/main-section/row-logo/logo.mjs +24 -32
- package/dist/composite/footer/elements/main-section/row-logo/logo.mjs.map +1 -1
- package/dist/composite/footer/elements/main-section/social.d.ts +2 -2
- package/dist/composite/footer/elements/main-section/social.d.ts.map +1 -1
- package/dist/composite/footer/elements/main-section/social.js +74 -97
- package/dist/composite/footer/elements/main-section/social.js.map +1 -1
- package/dist/composite/footer/elements/main-section/social.mjs +74 -97
- package/dist/composite/footer/elements/main-section/social.mjs.map +1 -1
- package/dist/composite/footer/elements/utility-section/index.d.ts +1 -5
- package/dist/composite/footer/elements/utility-section/index.d.ts.map +1 -1
- package/dist/composite/footer/elements/utility-section/index.js +56 -83
- package/dist/composite/footer/elements/utility-section/index.js.map +1 -1
- package/dist/composite/footer/elements/utility-section/index.mjs +56 -83
- package/dist/composite/footer/elements/utility-section/index.mjs.map +1 -1
- package/dist/composite/footer/options.d.ts +1 -4
- package/dist/composite/footer/options.d.ts.map +1 -1
- package/dist/composite/footer/options.js +19 -27
- package/dist/composite/footer/options.js.map +1 -1
- package/dist/composite/footer/options.mjs +19 -27
- package/dist/composite/footer/options.mjs.map +1 -1
- package/dist/composite/hero/_types.d.ts.map +1 -1
- package/dist/composite/hero/custom/expand.d.ts +3 -2
- package/dist/composite/hero/custom/expand.d.ts.map +1 -1
- package/dist/composite/hero/custom/expand.js +151 -192
- package/dist/composite/hero/custom/expand.js.map +1 -1
- package/dist/composite/hero/custom/expand.mjs +145 -187
- package/dist/composite/hero/custom/expand.mjs.map +1 -1
- package/dist/composite/hero/custom/grid.d.ts +1 -5
- package/dist/composite/hero/custom/grid.d.ts.map +1 -1
- package/dist/composite/hero/custom/grid.js +122 -171
- package/dist/composite/hero/custom/grid.js.map +1 -1
- package/dist/composite/hero/custom/grid.mjs +116 -166
- package/dist/composite/hero/custom/grid.mjs.map +1 -1
- package/dist/composite/hero/custom/video-arrow.d.ts +2 -1
- package/dist/composite/hero/custom/video-arrow.d.ts.map +1 -1
- package/dist/composite/hero/custom/video-arrow.js +83 -105
- package/dist/composite/hero/custom/video-arrow.js.map +1 -1
- package/dist/composite/hero/custom/video-arrow.mjs +77 -99
- package/dist/composite/hero/custom/video-arrow.mjs.map +1 -1
- package/dist/composite/hero/logo.d.ts +1 -5
- package/dist/composite/hero/logo.d.ts.map +1 -1
- package/dist/composite/hero/logo.js +71 -89
- package/dist/composite/hero/logo.js.map +1 -1
- package/dist/composite/hero/logo.mjs +68 -87
- package/dist/composite/hero/logo.mjs.map +1 -1
- package/dist/composite/hero/minimal.d.ts +1 -5
- package/dist/composite/hero/minimal.d.ts.map +1 -1
- package/dist/composite/hero/minimal.js +67 -86
- package/dist/composite/hero/minimal.js.map +1 -1
- package/dist/composite/hero/minimal.mjs +63 -83
- package/dist/composite/hero/minimal.mjs.map +1 -1
- package/dist/composite/hero/overlay.d.ts +1 -5
- package/dist/composite/hero/overlay.d.ts.map +1 -1
- package/dist/composite/hero/overlay.js +107 -135
- package/dist/composite/hero/overlay.js.map +1 -1
- package/dist/composite/hero/overlay.mjs +103 -132
- package/dist/composite/hero/overlay.mjs.map +1 -1
- package/dist/composite/hero/stacked.d.ts +1 -5
- package/dist/composite/hero/stacked.d.ts.map +1 -1
- package/dist/composite/hero/stacked.js +114 -137
- package/dist/composite/hero/stacked.js.map +1 -1
- package/dist/composite/hero/stacked.mjs +110 -134
- package/dist/composite/hero/stacked.mjs.map +1 -1
- package/dist/composite/hero/standard.d.ts +1 -5
- package/dist/composite/hero/standard.d.ts.map +1 -1
- package/dist/composite/hero/standard.js +103 -116
- package/dist/composite/hero/standard.js.map +1 -1
- package/dist/composite/hero/standard.mjs +100 -114
- package/dist/composite/hero/standard.mjs.map +1 -1
- package/dist/composite/layout/box/logo.js +1 -1
- package/dist/composite/layout/box/logo.js.map +1 -1
- package/dist/composite/layout/box/logo.mjs +1 -1
- package/dist/composite/layout/box/logo.mjs.map +1 -1
- package/dist/composite/layout/image/expand.js +1 -1
- package/dist/composite/layout/image/expand.js.map +1 -1
- package/dist/composite/layout/image/expand.mjs +1 -1
- package/dist/composite/layout/image/expand.mjs.map +1 -1
- package/dist/composite/layout/scroll-top/index.js +1 -1
- package/dist/composite/layout/scroll-top/index.js.map +1 -1
- package/dist/composite/layout/scroll-top/index.mjs +1 -1
- package/dist/composite/layout/scroll-top/index.mjs.map +1 -1
- package/dist/composite/layout/section-intro/small.d.ts +2 -1
- package/dist/composite/layout/section-intro/small.d.ts.map +1 -1
- package/dist/composite/layout/section-intro/small.js +97 -107
- package/dist/composite/layout/section-intro/small.js.map +1 -1
- package/dist/composite/layout/section-intro/small.mjs +95 -106
- package/dist/composite/layout/section-intro/small.mjs.map +1 -1
- package/dist/composite/layout/section-intro/wide.d.ts +2 -2
- package/dist/composite/layout/section-intro/wide.d.ts.map +1 -1
- package/dist/composite/layout/section-intro/wide.js +40 -53
- package/dist/composite/layout/section-intro/wide.js.map +1 -1
- package/dist/composite/layout/section-intro/wide.mjs +39 -53
- package/dist/composite/layout/section-intro/wide.mjs.map +1 -1
- package/dist/composite/layout/sticky-columns/index.js +1 -1
- package/dist/composite/layout/sticky-columns/index.js.map +1 -1
- package/dist/composite/layout/sticky-columns/index.mjs +1 -1
- package/dist/composite/layout/sticky-columns/index.mjs.map +1 -1
- package/dist/composite/media/elements/caption.js +1 -1
- package/dist/composite/media/elements/caption.js.map +1 -1
- package/dist/composite/media/elements/caption.mjs +1 -1
- package/dist/composite/media/elements/caption.mjs.map +1 -1
- package/dist/composite/media/elements/gif.d.ts +3 -2
- package/dist/composite/media/elements/gif.d.ts.map +1 -1
- package/dist/composite/media/elements/gif.js +25 -27
- package/dist/composite/media/elements/gif.js.map +1 -1
- package/dist/composite/media/elements/gif.mjs +25 -27
- package/dist/composite/media/elements/gif.mjs.map +1 -1
- package/dist/composite/media/inline/caption.js +2 -2
- package/dist/composite/media/inline/caption.js.map +1 -1
- package/dist/composite/media/inline/caption.mjs +2 -2
- package/dist/composite/media/inline/caption.mjs.map +1 -1
- package/dist/composite/media/inline/wrapped.js +2 -2
- package/dist/composite/media/inline/wrapped.js.map +1 -1
- package/dist/composite/media/inline/wrapped.mjs +2 -2
- package/dist/composite/media/inline/wrapped.mjs.map +1 -1
- package/dist/composite/navigation/elements/breadcrumb/index.js +1 -1
- package/dist/composite/navigation/elements/breadcrumb/index.js.map +1 -1
- package/dist/composite/navigation/elements/breadcrumb/index.mjs +1 -1
- package/dist/composite/navigation/elements/breadcrumb/index.mjs.map +1 -1
- package/dist/composite/navigation/elements/drawer/index.js +1 -1
- package/dist/composite/navigation/elements/drawer/index.js.map +1 -1
- package/dist/composite/navigation/elements/drawer/index.mjs +1 -1
- package/dist/composite/navigation/elements/drawer/index.mjs.map +1 -1
- package/dist/composite/navigation/elements/item/index.js +1 -1
- package/dist/composite/navigation/elements/item/index.js.map +1 -1
- package/dist/composite/navigation/elements/item/index.mjs +1 -1
- package/dist/composite/navigation/elements/item/index.mjs.map +1 -1
- package/dist/composite/navigation/elements/menu-button/index.js +1 -1
- package/dist/composite/navigation/elements/menu-button/index.js.map +1 -1
- package/dist/composite/navigation/elements/menu-button/index.mjs +1 -1
- package/dist/composite/navigation/elements/menu-button/index.mjs.map +1 -1
- package/dist/composite/navigation/elements/slider/action.js +1 -1
- package/dist/composite/navigation/elements/slider/action.js.map +1 -1
- package/dist/composite/navigation/elements/slider/action.mjs +1 -1
- package/dist/composite/navigation/elements/slider/action.mjs.map +1 -1
- package/dist/composite/navigation/elements/slider/index.js +1 -1
- package/dist/composite/navigation/elements/slider/index.js.map +1 -1
- package/dist/composite/navigation/elements/slider/index.mjs +1 -1
- package/dist/composite/navigation/elements/slider/index.mjs.map +1 -1
- package/dist/composite/navigation/elements/slider/slide-first.js +1 -1
- package/dist/composite/navigation/elements/slider/slide-first.js.map +1 -1
- package/dist/composite/navigation/elements/slider/slide-first.mjs +1 -1
- package/dist/composite/navigation/elements/slider/slide-first.mjs.map +1 -1
- package/dist/composite/navigation/elements/slider/slides.js +1 -1
- package/dist/composite/navigation/elements/slider/slides.js.map +1 -1
- package/dist/composite/navigation/elements/slider/slides.mjs +1 -1
- package/dist/composite/navigation/elements/slider/slides.mjs.map +1 -1
- package/dist/composite/navigation/header.js +1 -1
- package/dist/composite/navigation/header.js.map +1 -1
- package/dist/composite/navigation/header.mjs +1 -1
- package/dist/composite/navigation/header.mjs.map +1 -1
- package/dist/composite/navigation/utility/alert.js +8 -4
- package/dist/composite/navigation/utility/alert.js.map +1 -1
- package/dist/composite/navigation/utility/alert.mjs +8 -4
- package/dist/composite/navigation/utility/alert.mjs.map +1 -1
- package/dist/composite/navigation/utility/index.d.ts.map +1 -1
- package/dist/composite/navigation/utility/index.js +90 -13
- package/dist/composite/navigation/utility/index.js.map +1 -1
- package/dist/composite/navigation/utility/index.mjs +90 -13
- package/dist/composite/navigation/utility/index.mjs.map +1 -1
- package/dist/composite/navigation/utility/search.js +1 -1
- package/dist/composite/navigation/utility/search.js.map +1 -1
- package/dist/composite/navigation/utility/search.mjs +1 -1
- package/dist/composite/navigation/utility/search.mjs.map +1 -1
- package/dist/composite/pathway/_common.d.ts +4 -20
- package/dist/composite/pathway/_common.d.ts.map +1 -1
- package/dist/composite/pathway/_common.js +62 -64
- package/dist/composite/pathway/_common.js.map +1 -1
- package/dist/composite/pathway/_common.mjs +56 -60
- package/dist/composite/pathway/_common.mjs.map +1 -1
- package/dist/composite/pathway/hero.d.ts +1 -5
- package/dist/composite/pathway/hero.d.ts.map +1 -1
- package/dist/composite/pathway/hero.js +119 -140
- package/dist/composite/pathway/hero.js.map +1 -1
- package/dist/composite/pathway/hero.mjs +113 -135
- package/dist/composite/pathway/hero.mjs.map +1 -1
- package/dist/composite/pathway/highlight.d.ts +1 -5
- package/dist/composite/pathway/highlight.d.ts.map +1 -1
- package/dist/composite/pathway/highlight.js +99 -129
- package/dist/composite/pathway/highlight.js.map +1 -1
- package/dist/composite/pathway/highlight.mjs +98 -129
- package/dist/composite/pathway/highlight.mjs.map +1 -1
- package/dist/composite/pathway/overlay.d.ts +2 -1
- package/dist/composite/pathway/overlay.d.ts.map +1 -1
- package/dist/composite/pathway/overlay.js +125 -153
- package/dist/composite/pathway/overlay.js.map +1 -1
- package/dist/composite/pathway/overlay.mjs +122 -151
- package/dist/composite/pathway/overlay.mjs.map +1 -1
- package/dist/composite/pathway/standard.d.ts +2 -1
- package/dist/composite/pathway/standard.d.ts.map +1 -1
- package/dist/composite/pathway/standard.js +96 -123
- package/dist/composite/pathway/standard.js.map +1 -1
- package/dist/composite/pathway/standard.mjs +95 -123
- package/dist/composite/pathway/standard.mjs.map +1 -1
- package/dist/composite/pathway/sticky.d.ts +1 -5
- package/dist/composite/pathway/sticky.d.ts.map +1 -1
- package/dist/composite/pathway/sticky.js +91 -116
- package/dist/composite/pathway/sticky.js.map +1 -1
- package/dist/composite/pathway/sticky.mjs +88 -114
- package/dist/composite/pathway/sticky.mjs.map +1 -1
- package/dist/composite/person/bio/full.d.ts +2 -5
- package/dist/composite/person/bio/full.d.ts.map +1 -1
- package/dist/composite/person/bio/full.js +53 -57
- package/dist/composite/person/bio/full.js.map +1 -1
- package/dist/composite/person/bio/full.mjs +52 -57
- package/dist/composite/person/bio/full.mjs.map +1 -1
- package/dist/composite/person/bio/small.d.ts +2 -5
- package/dist/composite/person/bio/small.d.ts.map +1 -1
- package/dist/composite/person/bio/small.js +85 -98
- package/dist/composite/person/bio/small.js.map +1 -1
- package/dist/composite/person/bio/small.mjs +84 -98
- package/dist/composite/person/bio/small.mjs.map +1 -1
- package/dist/composite/person/block.d.ts +2 -5
- package/dist/composite/person/block.d.ts.map +1 -1
- package/dist/composite/person/block.js +34 -42
- package/dist/composite/person/block.js.map +1 -1
- package/dist/composite/person/block.mjs +34 -42
- package/dist/composite/person/block.mjs.map +1 -1
- package/dist/composite/person/hero.d.ts +2 -5
- package/dist/composite/person/hero.d.ts.map +1 -1
- package/dist/composite/person/hero.js +160 -220
- package/dist/composite/person/hero.js.map +1 -1
- package/dist/composite/person/hero.mjs +159 -220
- package/dist/composite/person/hero.mjs.map +1 -1
- package/dist/composite/person/list.d.ts +2 -5
- package/dist/composite/person/list.d.ts.map +1 -1
- package/dist/composite/person/list.js +19 -19
- package/dist/composite/person/list.js.map +1 -1
- package/dist/composite/person/list.mjs +19 -19
- package/dist/composite/person/list.mjs.map +1 -1
- package/dist/composite/person/tabular.d.ts +2 -5
- package/dist/composite/person/tabular.d.ts.map +1 -1
- package/dist/composite/person/tabular.js +40 -36
- package/dist/composite/person/tabular.js.map +1 -1
- package/dist/composite/person/tabular.mjs +38 -36
- package/dist/composite/person/tabular.mjs.map +1 -1
- package/dist/composite/quote/elements/action.d.ts +1 -5
- package/dist/composite/quote/elements/action.d.ts.map +1 -1
- package/dist/composite/quote/elements/action.js +13 -17
- package/dist/composite/quote/elements/action.js.map +1 -1
- package/dist/composite/quote/elements/action.mjs +13 -17
- package/dist/composite/quote/elements/action.mjs.map +1 -1
- package/dist/composite/quote/elements/icon.d.ts +1 -5
- package/dist/composite/quote/elements/icon.d.ts.map +1 -1
- package/dist/composite/quote/elements/icon.js +37 -40
- package/dist/composite/quote/elements/icon.js.map +1 -1
- package/dist/composite/quote/elements/icon.mjs +37 -40
- package/dist/composite/quote/elements/icon.mjs.map +1 -1
- package/dist/composite/quote/elements/image.d.ts +1 -5
- package/dist/composite/quote/elements/image.d.ts.map +1 -1
- package/dist/composite/quote/elements/image.js +27 -35
- package/dist/composite/quote/elements/image.js.map +1 -1
- package/dist/composite/quote/elements/image.mjs +27 -35
- package/dist/composite/quote/elements/image.mjs.map +1 -1
- package/dist/composite/quote/elements/quote.d.ts +1 -5
- package/dist/composite/quote/elements/quote.d.ts.map +1 -1
- package/dist/composite/quote/elements/quote.js +37 -48
- package/dist/composite/quote/elements/quote.js.map +1 -1
- package/dist/composite/quote/elements/quote.mjs +35 -46
- package/dist/composite/quote/elements/quote.mjs.map +1 -1
- package/dist/composite/quote/elements/text.d.ts +1 -5
- package/dist/composite/quote/elements/text.d.ts.map +1 -1
- package/dist/composite/quote/elements/text.js +60 -73
- package/dist/composite/quote/elements/text.js.map +1 -1
- package/dist/composite/quote/elements/text.mjs +60 -73
- package/dist/composite/quote/elements/text.mjs.map +1 -1
- package/dist/composite/quote/featured.d.ts +2 -1
- package/dist/composite/quote/featured.d.ts.map +1 -1
- package/dist/composite/quote/featured.js +102 -135
- package/dist/composite/quote/featured.js.map +1 -1
- package/dist/composite/quote/featured.mjs +102 -135
- package/dist/composite/quote/featured.mjs.map +1 -1
- package/dist/composite/quote/helper/animation.d.ts +2 -2
- package/dist/composite/quote/helper/animation.d.ts.map +1 -1
- package/dist/composite/quote/helper/animation.js.map +1 -1
- package/dist/composite/quote/helper/animation.mjs.map +1 -1
- package/dist/composite/quote/inline.d.ts +2 -1
- package/dist/composite/quote/inline.d.ts.map +1 -1
- package/dist/composite/quote/inline.js +29 -45
- package/dist/composite/quote/inline.js.map +1 -1
- package/dist/composite/quote/inline.mjs +29 -45
- package/dist/composite/quote/inline.mjs.map +1 -1
- package/dist/composite/quote/statement.d.ts +1 -5
- package/dist/composite/quote/statement.d.ts.map +1 -1
- package/dist/composite/slider/events.js +1 -1
- package/dist/composite/slider/events.js.map +1 -1
- package/dist/composite/slider/events.mjs +1 -1
- package/dist/composite/slider/events.mjs.map +1 -1
- package/dist/composite/social/sharing.js +1 -1
- package/dist/composite/social/sharing.js.map +1 -1
- package/dist/composite/social/sharing.mjs +1 -1
- package/dist/composite/social/sharing.mjs.map +1 -1
- package/dist/composite/tabs/standard.d.ts.map +1 -1
- package/dist/composite/tabs/standard.js +3 -2
- package/dist/composite/tabs/standard.js.map +1 -1
- package/dist/composite/tabs/standard.mjs +3 -2
- package/dist/composite/tabs/standard.mjs.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -3
- package/dist/index.mjs.map +1 -1
- package/dist/layout/image.js +1 -1
- package/dist/layout/image.js.map +1 -1
- package/dist/layout/image.mjs +1 -1
- package/dist/layout/image.mjs.map +1 -1
- package/package.json +10 -9
- package/dist/model/elements/actions.d.ts +0 -62
- package/dist/model/elements/actions.d.ts.map +0 -1
- package/dist/model/elements/actions.js +0 -71
- package/dist/model/elements/actions.js.map +0 -1
- package/dist/model/elements/actions.mjs +0 -54
- package/dist/model/elements/actions.mjs.map +0 -1
- package/dist/model/elements/assets.d.ts +0 -30
- package/dist/model/elements/assets.d.ts.map +0 -1
- package/dist/model/elements/assets.js +0 -42
- package/dist/model/elements/assets.js.map +0 -1
- package/dist/model/elements/assets.mjs +0 -25
- package/dist/model/elements/assets.mjs.map +0 -1
- package/dist/model/elements/buttons.d.ts +0 -12
- package/dist/model/elements/buttons.d.ts.map +0 -1
- package/dist/model/elements/buttons.js +0 -26
- package/dist/model/elements/buttons.js.map +0 -1
- package/dist/model/elements/buttons.mjs +0 -9
- package/dist/model/elements/buttons.mjs.map +0 -1
- package/dist/model/elements/event.d.ts +0 -22
- package/dist/model/elements/event.d.ts.map +0 -1
- package/dist/model/elements/event.js +0 -30
- package/dist/model/elements/event.js.map +0 -1
- package/dist/model/elements/event.mjs +0 -13
- package/dist/model/elements/event.mjs.map +0 -1
- package/dist/model/elements/headline.d.ts +0 -67
- package/dist/model/elements/headline.d.ts.map +0 -1
- package/dist/model/elements/headline.js +0 -74
- package/dist/model/elements/headline.js.map +0 -1
- package/dist/model/elements/headline.mjs +0 -57
- package/dist/model/elements/headline.mjs.map +0 -1
- package/dist/model/elements/index.d.ts +0 -34
- package/dist/model/elements/index.d.ts.map +0 -1
- package/dist/model/elements/index.js +0 -37
- package/dist/model/elements/index.js.map +0 -1
- package/dist/model/elements/index.mjs +0 -37
- package/dist/model/elements/index.mjs.map +0 -1
- package/dist/model/elements/layout.d.ts +0 -64
- package/dist/model/elements/layout.d.ts.map +0 -1
- package/dist/model/elements/layout.js +0 -68
- package/dist/model/elements/layout.js.map +0 -1
- package/dist/model/elements/layout.mjs +0 -51
- package/dist/model/elements/layout.mjs.map +0 -1
- package/dist/model/elements/rich-text.d.ts +0 -27
- package/dist/model/elements/rich-text.d.ts.map +0 -1
- package/dist/model/elements/rich-text.js +0 -68
- package/dist/model/elements/rich-text.js.map +0 -1
- package/dist/model/elements/rich-text.mjs +0 -51
- package/dist/model/elements/rich-text.mjs.map +0 -1
- package/dist/model/elements/text.d.ts +0 -22
- package/dist/model/elements/text.d.ts.map +0 -1
- package/dist/model/elements/text.js +0 -30
- package/dist/model/elements/text.js.map +0 -1
- package/dist/model/elements/text.mjs +0 -13
- package/dist/model/elements/text.mjs.map +0 -1
- package/dist/model/index.d.ts +0 -2
- package/dist/model/index.d.ts.map +0 -1
- package/dist/model/modifiers/_types.d.ts +0 -41
- package/dist/model/modifiers/_types.d.ts.map +0 -1
- package/dist/model/modifiers/index.d.ts +0 -44
- package/dist/model/modifiers/index.d.ts.map +0 -1
- package/dist/model/modifiers/index.js +0 -136
- package/dist/model/modifiers/index.js.map +0 -1
- package/dist/model/modifiers/index.mjs +0 -136
- package/dist/model/modifiers/index.mjs.map +0 -1
- package/dist/model/modifiers/style.d.ts +0 -19
- package/dist/model/modifiers/style.d.ts.map +0 -1
- package/dist/model/modifiers/style.js +0 -122
- package/dist/model/modifiers/style.js.map +0 -1
- package/dist/model/modifiers/style.mjs +0 -105
- package/dist/model/modifiers/style.mjs.map +0 -1
- package/dist/model.d.ts +0 -2
- package/dist/model.js +0 -5
- package/dist/model.js.map +0 -1
- package/dist/model.mjs +0 -5
- 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
|
|
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
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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 = (
|
|
110
|
-
|
|
111
|
-
|
|
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
|
-
|
|
114
|
-
|
|
76
|
+
textDecoration: "underline",
|
|
77
|
+
...isTypeSecondary && {
|
|
78
|
+
marginLeft: `${token__namespace.spacing.lg}`,
|
|
79
|
+
alignSelf: "baseline"
|
|
80
|
+
}
|
|
115
81
|
}
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
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
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
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
|
-
|
|
139
|
-
let styles = "";
|
|
121
|
+
let actionModel;
|
|
140
122
|
if (isTypePrimary) {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
}
|
|
145
|
-
|
|
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 (
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
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
|
|
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
|
|
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
|
|
11
|
+
import { document } from "@universityofmaryland/web-icons-library/files";
|
|
8
12
|
import { fearless } from "@universityofmaryland/web-icons-library/brand";
|
|
9
|
-
|
|
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 = (
|
|
90
|
-
|
|
91
|
-
|
|
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
|
-
|
|
94
|
-
|
|
53
|
+
textDecoration: "underline",
|
|
54
|
+
...isTypeSecondary && {
|
|
55
|
+
marginLeft: `${token.spacing.lg}`,
|
|
56
|
+
alignSelf: "baseline"
|
|
57
|
+
}
|
|
95
58
|
}
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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
|
-
|
|
119
|
-
let styles = "";
|
|
98
|
+
let actionModel;
|
|
120
99
|
if (isTypePrimary) {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
}
|
|
125
|
-
|
|
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 (
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
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
|
|
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":"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"}
|
|
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-
|
|
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-
|
|
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-
|
|
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";
|