@universityofmaryland/web-elements-library 1.4.8 → 1.5.0
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/atomic/actions/icon.d.ts.map +1 -1
- package/dist/atomic/actions/icon.js +21 -22
- package/dist/atomic/actions/icon.js.map +1 -1
- package/dist/atomic/actions/icon.mjs +20 -21
- package/dist/atomic/actions/icon.mjs.map +1 -1
- package/dist/atomic/actions/text.d.ts.map +1 -1
- package/dist/atomic/actions/text.js +22 -19
- package/dist/atomic/actions/text.js.map +1 -1
- package/dist/atomic/actions/text.mjs +21 -19
- package/dist/atomic/actions/text.mjs.map +1 -1
- package/dist/atomic/animations/actions/indicator.d.ts.map +1 -1
- package/dist/atomic/animations/actions/indicator.js +32 -21
- package/dist/atomic/animations/actions/indicator.js.map +1 -1
- package/dist/atomic/animations/actions/indicator.mjs +3 -9
- package/dist/atomic/animations/actions/indicator.mjs.map +1 -1
- package/dist/atomic/animations/brand/card-stack.d.ts.map +1 -1
- package/dist/atomic/animations/brand/card-stack.js +42 -32
- package/dist/atomic/animations/brand/card-stack.js.map +1 -1
- package/dist/atomic/animations/brand/card-stack.mjs +21 -11
- package/dist/atomic/animations/brand/card-stack.mjs.map +1 -1
- package/dist/atomic/animations/brand/chevron-scroll.js +25 -8
- 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/gif.d.ts.map +1 -1
- package/dist/atomic/assets/image/gif.js +5 -8
- package/dist/atomic/assets/image/gif.js.map +1 -1
- package/dist/atomic/assets/image/gif.mjs +4 -7
- package/dist/atomic/assets/image/gif.mjs.map +1 -1
- package/dist/atomic/assets/video/observed-auto-play.js +2 -5
- package/dist/atomic/assets/video/observed-auto-play.js.map +1 -1
- package/dist/atomic/assets/video/observed-auto-play.mjs +2 -5
- package/dist/atomic/assets/video/observed-auto-play.mjs.map +1 -1
- package/dist/atomic/assets/video/toggle.d.ts.map +1 -1
- package/dist/atomic/assets/video/toggle.js +4 -7
- package/dist/atomic/assets/video/toggle.js.map +1 -1
- package/dist/atomic/assets/video/toggle.mjs +4 -7
- package/dist/atomic/assets/video/toggle.mjs.map +1 -1
- package/dist/atomic/buttons/fullscreen.js +2 -5
- package/dist/atomic/buttons/fullscreen.js.map +1 -1
- package/dist/atomic/buttons/fullscreen.mjs +2 -5
- package/dist/atomic/buttons/fullscreen.mjs.map +1 -1
- package/dist/atomic/events/meta.d.ts.map +1 -1
- package/dist/atomic/events/meta.js +8 -10
- package/dist/atomic/events/meta.js.map +1 -1
- package/dist/atomic/events/meta.mjs +5 -7
- package/dist/atomic/events/meta.mjs.map +1 -1
- package/dist/atomic/events/sign.js +19 -2
- package/dist/atomic/events/sign.js.map +1 -1
- package/dist/atomic/events/sign.mjs +2 -2
- package/dist/atomic/events/sign.mjs.map +1 -1
- package/dist/atomic/layout/block/stacked.d.ts.map +1 -1
- package/dist/atomic/layout/block/stacked.js +37 -55
- package/dist/atomic/layout/block/stacked.js.map +1 -1
- package/dist/atomic/layout/block/stacked.mjs +36 -54
- package/dist/atomic/layout/block/stacked.mjs.map +1 -1
- package/dist/atomic/layout/overlay/modal.d.ts.map +1 -1
- package/dist/atomic/layout/overlay/modal.js +22 -8
- package/dist/atomic/layout/overlay/modal.js.map +1 -1
- package/dist/atomic/layout/overlay/modal.mjs +3 -6
- package/dist/atomic/layout/overlay/modal.mjs.map +1 -1
- package/dist/atomic/layout/person/columns.d.ts.map +1 -1
- package/dist/atomic/layout/person/columns.js +36 -34
- package/dist/atomic/layout/person/columns.js.map +1 -1
- package/dist/atomic/layout/person/columns.mjs +35 -33
- package/dist/atomic/layout/person/columns.mjs.map +1 -1
- package/dist/atomic/text/stat.d.ts.map +1 -1
- package/dist/atomic/text/stat.js +47 -29
- package/dist/atomic/text/stat.js.map +1 -1
- package/dist/atomic/text/stat.mjs +30 -29
- package/dist/atomic/text/stat.mjs.map +1 -1
- package/dist/atomic/text-lockup/contact.d.ts.map +1 -1
- package/dist/atomic/text-lockup/contact.js +13 -15
- package/dist/atomic/text-lockup/contact.js.map +1 -1
- package/dist/atomic/text-lockup/contact.mjs +18 -20
- 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 +24 -20
- package/dist/atomic/text-lockup/date.js.map +1 -1
- package/dist/atomic/text-lockup/date.mjs +11 -9
- package/dist/atomic/text-lockup/date.mjs.map +1 -1
- package/dist/atomic/text-lockup/large.js +7 -7
- package/dist/atomic/text-lockup/large.js.map +1 -1
- package/dist/atomic/text-lockup/large.mjs +6 -6
- package/dist/atomic/text-lockup/large.mjs.map +1 -1
- package/dist/atomic/text-lockup/medium.js +9 -9
- package/dist/atomic/text-lockup/medium.js.map +1 -1
- package/dist/atomic/text-lockup/medium.mjs +8 -8
- package/dist/atomic/text-lockup/medium.mjs.map +1 -1
- package/dist/atomic/text-lockup/person.js +5 -5
- package/dist/atomic/text-lockup/person.js.map +1 -1
- package/dist/atomic/text-lockup/person.mjs +4 -4
- package/dist/atomic/text-lockup/person.mjs.map +1 -1
- package/dist/atomic/text-lockup/small.d.ts.map +1 -1
- package/dist/atomic/text-lockup/small.js +15 -14
- package/dist/atomic/text-lockup/small.js.map +1 -1
- package/dist/atomic/text-lockup/small.mjs +3 -3
- package/dist/atomic/text-lockup/small.mjs.map +1 -1
- package/dist/composite/accordion/item.d.ts.map +1 -1
- package/dist/composite/accordion/item.js +5 -5
- package/dist/composite/accordion/item.js.map +1 -1
- package/dist/composite/accordion/item.mjs +4 -4
- package/dist/composite/accordion/item.mjs.map +1 -1
- package/dist/composite/alert/elements/text.d.ts.map +1 -1
- package/dist/composite/alert/elements/text.js +34 -14
- package/dist/composite/alert/elements/text.js.map +1 -1
- package/dist/composite/alert/elements/text.mjs +5 -3
- package/dist/composite/alert/elements/text.mjs.map +1 -1
- package/dist/composite/alert/page.d.ts.map +1 -1
- package/dist/composite/alert/page.js +37 -22
- package/dist/composite/alert/page.js.map +1 -1
- package/dist/composite/alert/page.mjs +6 -8
- package/dist/composite/alert/page.mjs.map +1 -1
- package/dist/composite/alert/site.d.ts.map +1 -1
- package/dist/composite/alert/site.js +46 -27
- package/dist/composite/alert/site.js.map +1 -1
- package/dist/composite/alert/site.mjs +10 -9
- package/dist/composite/alert/site.mjs.map +1 -1
- package/dist/composite/banner/promo.d.ts.map +1 -1
- package/dist/composite/banner/promo.js +12 -10
- package/dist/composite/banner/promo.js.map +1 -1
- package/dist/composite/banner/promo.mjs +12 -10
- package/dist/composite/banner/promo.mjs.map +1 -1
- package/dist/composite/card/block.js +21 -9
- package/dist/composite/card/block.js.map +1 -1
- package/dist/composite/card/block.mjs +20 -8
- package/dist/composite/card/block.mjs.map +1 -1
- package/dist/composite/card/list.d.ts.map +1 -1
- package/dist/composite/card/list.js +47 -48
- package/dist/composite/card/list.js.map +1 -1
- package/dist/composite/card/list.mjs +46 -47
- package/dist/composite/card/list.mjs.map +1 -1
- package/dist/composite/card/overlay/color.d.ts.map +1 -1
- package/dist/composite/card/overlay/color.js +24 -12
- package/dist/composite/card/overlay/color.js.map +1 -1
- package/dist/composite/card/overlay/color.mjs +22 -11
- package/dist/composite/card/overlay/color.mjs.map +1 -1
- package/dist/composite/card/overlay/icon.js +21 -10
- package/dist/composite/card/overlay/icon.js.map +1 -1
- package/dist/composite/card/overlay/icon.mjs +20 -9
- package/dist/composite/card/overlay/icon.mjs.map +1 -1
- package/dist/composite/card/overlay/image.d.ts.map +1 -1
- package/dist/composite/card/overlay/image.js +29 -20
- package/dist/composite/card/overlay/image.js.map +1 -1
- package/dist/composite/card/overlay/image.mjs +27 -18
- package/dist/composite/card/overlay/image.mjs.map +1 -1
- package/dist/composite/card/video/block.js +15 -4
- package/dist/composite/card/video/block.js.map +1 -1
- package/dist/composite/card/video/block.mjs +15 -4
- package/dist/composite/card/video/block.mjs.map +1 -1
- package/dist/composite/carousel/cards/index.js +6 -6
- package/dist/composite/carousel/cards/index.js.map +1 -1
- package/dist/composite/carousel/cards/index.mjs +6 -6
- package/dist/composite/carousel/cards/index.mjs.map +1 -1
- package/dist/composite/carousel/default/index.js +24 -7
- 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.d.ts.map +1 -1
- package/dist/composite/carousel/elements/blocks.js +20 -22
- package/dist/composite/carousel/elements/blocks.js.map +1 -1
- package/dist/composite/carousel/elements/blocks.mjs +11 -14
- package/dist/composite/carousel/elements/blocks.mjs.map +1 -1
- package/dist/composite/carousel/elements/full-screen.js +36 -8
- package/dist/composite/carousel/elements/full-screen.js.map +1 -1
- package/dist/composite/carousel/elements/full-screen.mjs +17 -6
- package/dist/composite/carousel/elements/full-screen.mjs.map +1 -1
- package/dist/composite/carousel/elements/image.d.ts.map +1 -1
- package/dist/composite/carousel/elements/image.js +32 -21
- package/dist/composite/carousel/elements/image.js.map +1 -1
- package/dist/composite/carousel/elements/image.mjs +8 -14
- package/dist/composite/carousel/elements/image.mjs.map +1 -1
- package/dist/composite/carousel/elements/overlay.js +19 -2
- package/dist/composite/carousel/elements/overlay.js.map +1 -1
- package/dist/composite/carousel/elements/overlay.mjs +1 -1
- package/dist/composite/carousel/elements/overlay.mjs.map +1 -1
- package/dist/composite/carousel/image/multiple.d.ts.map +1 -1
- package/dist/composite/carousel/image/multiple.js +24 -12
- package/dist/composite/carousel/image/multiple.js.map +1 -1
- package/dist/composite/carousel/image/multiple.mjs +17 -6
- package/dist/composite/carousel/image/multiple.mjs.map +1 -1
- package/dist/composite/carousel/image/standard.d.ts.map +1 -1
- package/dist/composite/carousel/image/standard.js +44 -47
- package/dist/composite/carousel/image/standard.js.map +1 -1
- package/dist/composite/carousel/image/standard.mjs +19 -5
- package/dist/composite/carousel/image/standard.mjs.map +1 -1
- package/dist/composite/carousel/thumbnail/index.js +29 -12
- 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/controls.d.ts.map +1 -1
- package/dist/composite/carousel/wide/controls.js +40 -30
- package/dist/composite/carousel/wide/controls.js.map +1 -1
- package/dist/composite/carousel/wide/controls.mjs +39 -29
- package/dist/composite/carousel/wide/controls.mjs.map +1 -1
- package/dist/composite/carousel/wide/frames.js +44 -33
- package/dist/composite/carousel/wide/frames.js.map +1 -1
- package/dist/composite/carousel/wide/frames.mjs +43 -32
- package/dist/composite/carousel/wide/frames.mjs.map +1 -1
- package/dist/composite/carousel/wide/index.d.ts.map +1 -1
- package/dist/composite/carousel/wide/index.js +17 -6
- package/dist/composite/carousel/wide/index.js.map +1 -1
- package/dist/composite/carousel/wide/index.mjs +16 -5
- package/dist/composite/carousel/wide/index.mjs.map +1 -1
- package/dist/composite/footer/elements/main-section/call-to-action.d.ts +5 -4
- 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 +56 -37
- 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 +40 -37
- package/dist/composite/footer/elements/main-section/call-to-action.mjs.map +1 -1
- package/dist/composite/footer/elements/main-section/campaign.d.ts +3 -3
- package/dist/composite/footer/elements/main-section/campaign.d.ts.map +1 -1
- package/dist/composite/footer/elements/main-section/campaign.js +57 -22
- package/dist/composite/footer/elements/main-section/campaign.js.map +1 -1
- package/dist/composite/footer/elements/main-section/campaign.mjs +40 -22
- package/dist/composite/footer/elements/main-section/campaign.mjs.map +1 -1
- package/dist/composite/footer/elements/main-section/index.d.ts +3 -2
- package/dist/composite/footer/elements/main-section/index.d.ts.map +1 -1
- package/dist/composite/footer/elements/main-section/index.js +81 -94
- package/dist/composite/footer/elements/main-section/index.js.map +1 -1
- package/dist/composite/footer/elements/main-section/index.mjs +82 -95
- package/dist/composite/footer/elements/main-section/index.mjs.map +1 -1
- package/dist/composite/footer/elements/main-section/row-links/index.d.ts +5 -5
- 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 +44 -72
- 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 +48 -75
- 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 +5 -3
- 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 +178 -223
- 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 +180 -224
- 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 +5 -4
- 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 +165 -199
- 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 +166 -199
- 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 +6 -3
- 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 +54 -95
- 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 +59 -99
- 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 +4 -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 +78 -71
- 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 +64 -74
- package/dist/composite/footer/elements/main-section/row-logo/logo.mjs.map +1 -1
- package/dist/composite/footer/elements/main-section/social.d.ts +5 -6
- package/dist/composite/footer/elements/main-section/social.d.ts.map +1 -1
- package/dist/composite/footer/elements/main-section/social.js +128 -202
- package/dist/composite/footer/elements/main-section/social.js.map +1 -1
- package/dist/composite/footer/elements/main-section/social.mjs +130 -203
- package/dist/composite/footer/elements/main-section/social.mjs.map +1 -1
- package/dist/composite/footer/elements/utility-section/index.d.ts +4 -2
- package/dist/composite/footer/elements/utility-section/index.d.ts.map +1 -1
- package/dist/composite/footer/elements/utility-section/index.js +107 -116
- package/dist/composite/footer/elements/utility-section/index.js.map +1 -1
- package/dist/composite/footer/elements/utility-section/index.mjs +109 -117
- package/dist/composite/footer/elements/utility-section/index.mjs.map +1 -1
- package/dist/composite/footer/globals.d.ts +0 -32
- package/dist/composite/footer/globals.d.ts.map +1 -1
- package/dist/composite/footer/globals.js +0 -19
- package/dist/composite/footer/globals.js.map +1 -1
- package/dist/composite/footer/globals.mjs +1 -20
- package/dist/composite/footer/globals.mjs.map +1 -1
- package/dist/composite/footer/options.d.ts +1 -1
- package/dist/composite/footer/options.d.ts.map +1 -1
- package/dist/composite/footer/options.js +52 -30
- package/dist/composite/footer/options.js.map +1 -1
- package/dist/composite/footer/options.mjs +37 -33
- package/dist/composite/footer/options.mjs.map +1 -1
- package/dist/composite/hero/custom/expand.d.ts.map +1 -1
- package/dist/composite/hero/custom/expand.js +36 -25
- package/dist/composite/hero/custom/expand.js.map +1 -1
- package/dist/composite/hero/custom/expand.mjs +30 -19
- package/dist/composite/hero/custom/expand.mjs.map +1 -1
- package/dist/composite/hero/custom/grid.d.ts.map +1 -1
- package/dist/composite/hero/custom/grid.js +48 -38
- package/dist/composite/hero/custom/grid.js.map +1 -1
- package/dist/composite/hero/custom/grid.mjs +35 -25
- package/dist/composite/hero/custom/grid.mjs.map +1 -1
- package/dist/composite/hero/custom/video-arrow.d.ts.map +1 -1
- package/dist/composite/hero/custom/video-arrow.js +23 -15
- package/dist/composite/hero/custom/video-arrow.js.map +1 -1
- package/dist/composite/hero/custom/video-arrow.mjs +20 -14
- package/dist/composite/hero/custom/video-arrow.mjs.map +1 -1
- package/dist/composite/hero/logo.d.ts.map +1 -1
- package/dist/composite/hero/logo.js +28 -16
- package/dist/composite/hero/logo.js.map +1 -1
- package/dist/composite/hero/logo.mjs +26 -15
- package/dist/composite/hero/logo.mjs.map +1 -1
- package/dist/composite/hero/minimal.d.ts.map +1 -1
- package/dist/composite/hero/minimal.js +33 -22
- package/dist/composite/hero/minimal.js.map +1 -1
- package/dist/composite/hero/minimal.mjs +32 -21
- package/dist/composite/hero/minimal.mjs.map +1 -1
- package/dist/composite/hero/overlay.d.ts.map +1 -1
- package/dist/composite/hero/overlay.js +32 -21
- package/dist/composite/hero/overlay.js.map +1 -1
- package/dist/composite/hero/overlay.mjs +30 -20
- package/dist/composite/hero/overlay.mjs.map +1 -1
- package/dist/composite/hero/stacked.d.ts.map +1 -1
- package/dist/composite/hero/stacked.js +45 -34
- package/dist/composite/hero/stacked.js.map +1 -1
- package/dist/composite/hero/stacked.mjs +40 -30
- package/dist/composite/hero/stacked.mjs.map +1 -1
- package/dist/composite/hero/standard.d.ts.map +1 -1
- package/dist/composite/hero/standard.js +38 -27
- package/dist/composite/hero/standard.js.map +1 -1
- package/dist/composite/hero/standard.mjs +36 -26
- package/dist/composite/hero/standard.mjs.map +1 -1
- package/dist/composite/layout/box/logo.d.ts.map +1 -1
- package/dist/composite/layout/box/logo.js +33 -14
- package/dist/composite/layout/box/logo.js.map +1 -1
- package/dist/composite/layout/box/logo.mjs +5 -4
- package/dist/composite/layout/box/logo.mjs.map +1 -1
- package/dist/composite/layout/image/expand.d.ts.map +1 -1
- package/dist/composite/layout/image/expand.js +32 -13
- package/dist/composite/layout/image/expand.js.map +1 -1
- package/dist/composite/layout/image/expand.mjs +7 -6
- package/dist/composite/layout/image/expand.mjs.map +1 -1
- package/dist/composite/layout/scroll-top/index.d.ts.map +1 -1
- package/dist/composite/layout/scroll-top/index.js +25 -11
- package/dist/composite/layout/scroll-top/index.js.map +1 -1
- package/dist/composite/layout/scroll-top/index.mjs +4 -7
- package/dist/composite/layout/scroll-top/index.mjs.map +1 -1
- package/dist/composite/layout/section-intro/small.d.ts.map +1 -1
- package/dist/composite/layout/section-intro/small.js +33 -14
- package/dist/composite/layout/section-intro/small.js.map +1 -1
- package/dist/composite/layout/section-intro/small.mjs +2 -1
- package/dist/composite/layout/section-intro/small.mjs.map +1 -1
- package/dist/composite/layout/section-intro/wide.js +20 -3
- package/dist/composite/layout/section-intro/wide.js.map +1 -1
- package/dist/composite/layout/section-intro/wide.mjs +1 -1
- package/dist/composite/layout/section-intro/wide.mjs.map +1 -1
- package/dist/composite/layout/sticky-columns/index.d.ts.map +1 -1
- package/dist/composite/layout/sticky-columns/index.js +26 -8
- package/dist/composite/layout/sticky-columns/index.js.map +1 -1
- package/dist/composite/layout/sticky-columns/index.mjs +4 -4
- package/dist/composite/layout/sticky-columns/index.mjs.map +1 -1
- package/dist/composite/media/elements/caption.d.ts.map +1 -1
- package/dist/composite/media/elements/caption.js +28 -9
- package/dist/composite/media/elements/caption.js.map +1 -1
- package/dist/composite/media/elements/caption.mjs +5 -4
- package/dist/composite/media/elements/caption.mjs.map +1 -1
- package/dist/composite/media/elements/gif.js +15 -4
- package/dist/composite/media/elements/gif.js.map +1 -1
- package/dist/composite/media/elements/gif.mjs +15 -4
- package/dist/composite/media/elements/gif.mjs.map +1 -1
- package/dist/composite/media/inline/caption.js +21 -8
- package/dist/composite/media/inline/caption.js.map +1 -1
- package/dist/composite/media/inline/caption.mjs +2 -6
- package/dist/composite/media/inline/caption.mjs.map +1 -1
- package/dist/composite/media/inline/wrapped.js +23 -10
- package/dist/composite/media/inline/wrapped.js.map +1 -1
- package/dist/composite/media/inline/wrapped.mjs +2 -6
- package/dist/composite/media/inline/wrapped.mjs.map +1 -1
- package/dist/composite/navigation/elements/breadcrumb/index.d.ts.map +1 -1
- package/dist/composite/navigation/elements/breadcrumb/index.js +35 -16
- package/dist/composite/navigation/elements/breadcrumb/index.js.map +1 -1
- package/dist/composite/navigation/elements/breadcrumb/index.mjs +7 -6
- package/dist/composite/navigation/elements/breadcrumb/index.mjs.map +1 -1
- package/dist/composite/navigation/elements/drawer/index.d.ts.map +1 -1
- package/dist/composite/navigation/elements/drawer/index.js +27 -13
- package/dist/composite/navigation/elements/drawer/index.js.map +1 -1
- package/dist/composite/navigation/elements/drawer/index.mjs +5 -8
- package/dist/composite/navigation/elements/drawer/index.mjs.map +1 -1
- package/dist/composite/navigation/elements/item/index.d.ts.map +1 -1
- package/dist/composite/navigation/elements/item/index.js +47 -28
- package/dist/composite/navigation/elements/item/index.js.map +1 -1
- package/dist/composite/navigation/elements/item/index.mjs +13 -12
- package/dist/composite/navigation/elements/item/index.mjs.map +1 -1
- package/dist/composite/navigation/elements/menu-button/index.js +20 -3
- 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.d.ts.map +1 -1
- package/dist/composite/navigation/elements/slider/action.js +32 -13
- package/dist/composite/navigation/elements/slider/action.js.map +1 -1
- package/dist/composite/navigation/elements/slider/action.mjs +6 -5
- package/dist/composite/navigation/elements/slider/action.mjs.map +1 -1
- package/dist/composite/navigation/elements/slider/index.d.ts.map +1 -1
- package/dist/composite/navigation/elements/slider/index.js +35 -21
- package/dist/composite/navigation/elements/slider/index.js.map +1 -1
- package/dist/composite/navigation/elements/slider/index.mjs +3 -6
- package/dist/composite/navigation/elements/slider/index.mjs.map +1 -1
- package/dist/composite/navigation/elements/slider/slide-first.d.ts.map +1 -1
- package/dist/composite/navigation/elements/slider/slide-first.js +29 -10
- package/dist/composite/navigation/elements/slider/slide-first.js.map +1 -1
- package/dist/composite/navigation/elements/slider/slide-first.mjs +4 -3
- package/dist/composite/navigation/elements/slider/slide-first.mjs.map +1 -1
- package/dist/composite/navigation/elements/slider/slides.d.ts.map +1 -1
- package/dist/composite/navigation/elements/slider/slides.js +38 -19
- package/dist/composite/navigation/elements/slider/slides.js.map +1 -1
- package/dist/composite/navigation/elements/slider/slides.mjs +8 -7
- package/dist/composite/navigation/elements/slider/slides.mjs.map +1 -1
- package/dist/composite/navigation/elements/sticky/index.js +2 -5
- package/dist/composite/navigation/elements/sticky/index.js.map +1 -1
- package/dist/composite/navigation/elements/sticky/index.mjs +1 -4
- package/dist/composite/navigation/elements/sticky/index.mjs.map +1 -1
- package/dist/composite/navigation/header.d.ts.map +1 -1
- package/dist/composite/navigation/header.js +55 -36
- package/dist/composite/navigation/header.js.map +1 -1
- package/dist/composite/navigation/header.mjs +9 -8
- package/dist/composite/navigation/header.mjs.map +1 -1
- package/dist/composite/navigation/utility/alert.d.ts.map +1 -1
- package/dist/composite/navigation/utility/alert.js +18 -9
- package/dist/composite/navigation/utility/alert.js.map +1 -1
- package/dist/composite/navigation/utility/alert.mjs +18 -9
- 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 +45 -41
- package/dist/composite/navigation/utility/index.js.map +1 -1
- package/dist/composite/navigation/utility/index.mjs +15 -13
- package/dist/composite/navigation/utility/index.mjs.map +1 -1
- package/dist/composite/navigation/utility/search.js +23 -6
- 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.js +14 -3
- package/dist/composite/pathway/_common.js.map +1 -1
- package/dist/composite/pathway/_common.mjs +14 -3
- package/dist/composite/pathway/_common.mjs.map +1 -1
- package/dist/composite/pathway/hero.js +29 -19
- package/dist/composite/pathway/hero.js.map +1 -1
- package/dist/composite/pathway/hero.mjs +26 -16
- package/dist/composite/pathway/hero.mjs.map +1 -1
- package/dist/composite/pathway/highlight.js +21 -21
- package/dist/composite/pathway/highlight.js.map +1 -1
- package/dist/composite/pathway/highlight.mjs +20 -20
- package/dist/composite/pathway/highlight.mjs.map +1 -1
- package/dist/composite/pathway/overlay.js +19 -20
- package/dist/composite/pathway/overlay.js.map +1 -1
- package/dist/composite/pathway/overlay.mjs +14 -16
- package/dist/composite/pathway/overlay.mjs.map +1 -1
- package/dist/composite/pathway/standard.js +12 -15
- package/dist/composite/pathway/standard.js.map +1 -1
- package/dist/composite/pathway/standard.mjs +9 -12
- package/dist/composite/pathway/standard.mjs.map +1 -1
- package/dist/composite/pathway/sticky.d.ts.map +1 -1
- package/dist/composite/pathway/sticky.js +12 -10
- package/dist/composite/pathway/sticky.js.map +1 -1
- package/dist/composite/pathway/sticky.mjs +10 -9
- package/dist/composite/pathway/sticky.mjs.map +1 -1
- package/dist/composite/person/bio/full.d.ts.map +1 -1
- package/dist/composite/person/bio/full.js +24 -13
- package/dist/composite/person/bio/full.js.map +1 -1
- package/dist/composite/person/bio/full.mjs +22 -12
- package/dist/composite/person/bio/full.mjs.map +1 -1
- package/dist/composite/person/bio/small.js +33 -23
- package/dist/composite/person/bio/small.js.map +1 -1
- package/dist/composite/person/bio/small.mjs +32 -22
- package/dist/composite/person/bio/small.mjs.map +1 -1
- package/dist/composite/person/block.d.ts.map +1 -1
- package/dist/composite/person/block.js +26 -21
- package/dist/composite/person/block.js.map +1 -1
- package/dist/composite/person/block.mjs +24 -19
- package/dist/composite/person/block.mjs.map +1 -1
- package/dist/composite/person/hero.d.ts.map +1 -1
- package/dist/composite/person/hero.js +70 -43
- package/dist/composite/person/hero.js.map +1 -1
- package/dist/composite/person/hero.mjs +14 -4
- package/dist/composite/person/hero.mjs.map +1 -1
- package/dist/composite/person/list.d.ts.map +1 -1
- package/dist/composite/person/list.js +28 -21
- package/dist/composite/person/list.js.map +1 -1
- package/dist/composite/person/list.mjs +27 -20
- package/dist/composite/person/list.mjs.map +1 -1
- package/dist/composite/person/tabular.js +22 -11
- package/dist/composite/person/tabular.js.map +1 -1
- package/dist/composite/person/tabular.mjs +21 -10
- package/dist/composite/person/tabular.mjs.map +1 -1
- package/dist/composite/quote/_constants.d.ts +3 -0
- package/dist/composite/quote/_constants.d.ts.map +1 -0
- package/dist/composite/quote/_constants.js +7 -0
- package/dist/composite/quote/_constants.js.map +1 -0
- package/dist/composite/quote/_constants.mjs +7 -0
- package/dist/composite/quote/_constants.mjs.map +1 -0
- package/dist/composite/quote/_types.d.ts +24 -0
- package/dist/composite/quote/_types.d.ts.map +1 -0
- package/dist/composite/quote/elements/action.d.ts +11 -0
- package/dist/composite/quote/elements/action.d.ts.map +1 -0
- package/dist/composite/quote/elements/action.js +46 -0
- package/dist/composite/quote/elements/action.js.map +1 -0
- package/dist/composite/quote/elements/action.mjs +29 -0
- package/dist/composite/quote/elements/action.mjs.map +1 -0
- package/dist/composite/quote/elements/icon.d.ts +11 -0
- package/dist/composite/quote/elements/icon.d.ts.map +1 -0
- package/dist/composite/quote/elements/icon.js +74 -0
- package/dist/composite/quote/elements/icon.js.map +1 -0
- package/dist/composite/quote/elements/icon.mjs +58 -0
- package/dist/composite/quote/elements/icon.mjs.map +1 -0
- package/dist/composite/quote/elements/image.d.ts +7 -10
- package/dist/composite/quote/elements/image.d.ts.map +1 -1
- package/dist/composite/quote/elements/image.js +71 -12
- package/dist/composite/quote/elements/image.js.map +1 -1
- package/dist/composite/quote/elements/image.mjs +54 -12
- package/dist/composite/quote/elements/image.mjs.map +1 -1
- package/dist/composite/quote/elements/index.d.ts +5 -24
- package/dist/composite/quote/elements/index.d.ts.map +1 -1
- package/dist/composite/quote/elements/index.js +9 -5
- package/dist/composite/quote/elements/index.js.map +1 -1
- package/dist/composite/quote/elements/index.mjs +10 -7
- package/dist/composite/quote/elements/index.mjs.map +1 -1
- package/dist/composite/quote/elements/quote.d.ts +13 -0
- package/dist/composite/quote/elements/quote.d.ts.map +1 -0
- package/dist/composite/quote/elements/quote.js +114 -0
- package/dist/composite/quote/elements/quote.js.map +1 -0
- package/dist/composite/quote/elements/quote.mjs +97 -0
- package/dist/composite/quote/elements/quote.mjs.map +1 -0
- package/dist/composite/quote/elements/text.d.ts +5 -20
- package/dist/composite/quote/elements/text.d.ts.map +1 -1
- package/dist/composite/quote/elements/text.js +143 -189
- package/dist/composite/quote/elements/text.js.map +1 -1
- package/dist/composite/quote/elements/text.mjs +121 -185
- package/dist/composite/quote/elements/text.mjs.map +1 -1
- package/dist/composite/quote/featured.d.ts +7 -8
- package/dist/composite/quote/featured.d.ts.map +1 -1
- package/dist/composite/quote/featured.js +202 -243
- package/dist/composite/quote/featured.js.map +1 -1
- package/dist/composite/quote/featured.mjs +184 -242
- package/dist/composite/quote/featured.mjs.map +1 -1
- package/dist/composite/quote/helper/animation.d.ts +8 -0
- package/dist/composite/quote/helper/animation.d.ts.map +1 -0
- package/dist/composite/quote/helper/animation.js +105 -0
- package/dist/composite/quote/helper/animation.js.map +1 -0
- package/dist/composite/quote/helper/animation.mjs +105 -0
- package/dist/composite/quote/helper/animation.mjs.map +1 -0
- package/dist/composite/quote/index.d.ts +1 -1
- package/dist/composite/quote/index.d.ts.map +1 -1
- package/dist/composite/quote/index.mjs +6 -6
- package/dist/composite/quote/inline.d.ts +7 -9
- package/dist/composite/quote/inline.d.ts.map +1 -1
- package/dist/composite/quote/inline.js +79 -270
- package/dist/composite/quote/inline.js.map +1 -1
- package/dist/composite/quote/inline.mjs +63 -271
- package/dist/composite/quote/inline.mjs.map +1 -1
- package/dist/composite/quote/statement.d.ts +5 -7
- package/dist/composite/quote/statement.d.ts.map +1 -1
- package/dist/composite/slider/events.d.ts.map +1 -1
- package/dist/composite/slider/events.js +60 -46
- package/dist/composite/slider/events.js.map +1 -1
- package/dist/composite/slider/events.mjs +12 -16
- package/dist/composite/slider/events.mjs.map +1 -1
- package/dist/composite/social/sharing.d.ts.map +1 -1
- package/dist/composite/social/sharing.js +38 -23
- package/dist/composite/social/sharing.js.map +1 -1
- package/dist/composite/social/sharing.mjs +9 -11
- 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 +44 -30
- package/dist/composite/tabs/standard.js.map +1 -1
- package/dist/composite/tabs/standard.mjs +9 -13
- 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.d.ts.map +1 -1
- package/dist/layout/image.js +25 -6
- package/dist/layout/image.js.map +1 -1
- package/dist/layout/image.mjs +4 -3
- package/dist/layout/image.mjs.map +1 -1
- package/dist/model/modifiers/index.d.ts +1 -1
- package/dist/model/modifiers/index.d.ts.map +1 -1
- package/dist/model/modifiers/index.js +12 -12
- package/dist/model/modifiers/index.js.map +1 -1
- package/dist/model/modifiers/index.mjs +2 -2
- package/dist/model/modifiers/index.mjs.map +1 -1
- package/dist/model/modifiers/style.js +7 -7
- package/dist/model/modifiers/style.js.map +1 -1
- package/dist/model/modifiers/style.mjs +2 -2
- package/dist/model/modifiers/style.mjs.map +1 -1
- package/package.json +17 -18
- package/dist/_virtual/___vite-browser-external.js +0 -8
- package/dist/_virtual/___vite-browser-external.js.map +0 -1
- package/dist/_virtual/___vite-browser-external.mjs +0 -7
- package/dist/_virtual/___vite-browser-external.mjs.map +0 -1
- package/dist/_virtual/__vite-browser-external.js +0 -4
- package/dist/_virtual/__vite-browser-external.js.map +0 -1
- package/dist/_virtual/__vite-browser-external.mjs +0 -5
- package/dist/_virtual/__vite-browser-external.mjs.map +0 -1
- package/dist/_virtual/_commonjsHelpers.js +0 -39
- package/dist/_virtual/_commonjsHelpers.js.map +0 -1
- package/dist/_virtual/_commonjsHelpers.mjs +0 -39
- package/dist/_virtual/_commonjsHelpers.mjs.map +0 -1
- package/dist/_virtual/attribute.js +0 -5
- package/dist/_virtual/attribute.js.map +0 -1
- package/dist/_virtual/attribute.mjs +0 -5
- package/dist/_virtual/attribute.mjs.map +0 -1
- package/dist/_virtual/className.js +0 -5
- package/dist/_virtual/className.js.map +0 -1
- package/dist/_virtual/className.mjs +0 -5
- package/dist/_virtual/className.mjs.map +0 -1
- package/dist/_virtual/combinator.js +0 -5
- package/dist/_virtual/combinator.js.map +0 -1
- package/dist/_virtual/combinator.mjs +0 -5
- package/dist/_virtual/combinator.mjs.map +0 -1
- package/dist/_virtual/comment.js +0 -5
- package/dist/_virtual/comment.js.map +0 -1
- package/dist/_virtual/comment.mjs +0 -5
- package/dist/_virtual/comment.mjs.map +0 -1
- package/dist/_virtual/constructors.js +0 -5
- package/dist/_virtual/constructors.js.map +0 -1
- package/dist/_virtual/constructors.mjs +0 -5
- package/dist/_virtual/constructors.mjs.map +0 -1
- package/dist/_virtual/container.js +0 -5
- package/dist/_virtual/container.js.map +0 -1
- package/dist/_virtual/container.mjs +0 -5
- package/dist/_virtual/container.mjs.map +0 -1
- package/dist/_virtual/ensureObject.js +0 -5
- package/dist/_virtual/ensureObject.js.map +0 -1
- package/dist/_virtual/ensureObject.mjs +0 -5
- package/dist/_virtual/ensureObject.mjs.map +0 -1
- package/dist/_virtual/getProp.js +0 -5
- package/dist/_virtual/getProp.js.map +0 -1
- package/dist/_virtual/getProp.mjs +0 -5
- package/dist/_virtual/getProp.mjs.map +0 -1
- package/dist/_virtual/guards.js +0 -5
- package/dist/_virtual/guards.js.map +0 -1
- package/dist/_virtual/guards.mjs +0 -5
- package/dist/_virtual/guards.mjs.map +0 -1
- package/dist/_virtual/id.js +0 -5
- package/dist/_virtual/id.js.map +0 -1
- package/dist/_virtual/id.mjs +0 -5
- package/dist/_virtual/id.mjs.map +0 -1
- package/dist/_virtual/index.js +0 -7
- package/dist/_virtual/index.js.map +0 -1
- package/dist/_virtual/index.mjs +0 -8
- package/dist/_virtual/index.mjs.map +0 -1
- package/dist/_virtual/index2.js +0 -7
- package/dist/_virtual/index2.js.map +0 -1
- package/dist/_virtual/index2.mjs +0 -8
- package/dist/_virtual/index2.mjs.map +0 -1
- package/dist/_virtual/index3.js +0 -5
- package/dist/_virtual/index3.js.map +0 -1
- package/dist/_virtual/index3.mjs +0 -5
- package/dist/_virtual/index3.mjs.map +0 -1
- package/dist/_virtual/index4.js +0 -5
- package/dist/_virtual/index4.js.map +0 -1
- package/dist/_virtual/index4.mjs +0 -5
- package/dist/_virtual/index4.mjs.map +0 -1
- package/dist/_virtual/index5.js +0 -5
- package/dist/_virtual/index5.js.map +0 -1
- package/dist/_virtual/index5.mjs +0 -5
- package/dist/_virtual/index5.mjs.map +0 -1
- package/dist/_virtual/namespace.js +0 -5
- package/dist/_virtual/namespace.js.map +0 -1
- package/dist/_virtual/namespace.mjs +0 -5
- package/dist/_virtual/namespace.mjs.map +0 -1
- package/dist/_virtual/nesting.js +0 -5
- package/dist/_virtual/nesting.js.map +0 -1
- package/dist/_virtual/nesting.mjs +0 -5
- package/dist/_virtual/nesting.mjs.map +0 -1
- package/dist/_virtual/node.js +0 -5
- package/dist/_virtual/node.js.map +0 -1
- package/dist/_virtual/node.mjs +0 -5
- package/dist/_virtual/node.mjs.map +0 -1
- package/dist/_virtual/parser.js +0 -5
- package/dist/_virtual/parser.js.map +0 -1
- package/dist/_virtual/parser.mjs +0 -5
- package/dist/_virtual/parser.mjs.map +0 -1
- package/dist/_virtual/picocolors.browser.js +0 -5
- package/dist/_virtual/picocolors.browser.js.map +0 -1
- package/dist/_virtual/picocolors.browser.mjs +0 -5
- package/dist/_virtual/picocolors.browser.mjs.map +0 -1
- package/dist/_virtual/postcss.js +0 -7
- package/dist/_virtual/postcss.js.map +0 -1
- package/dist/_virtual/postcss.mjs +0 -8
- package/dist/_virtual/postcss.mjs.map +0 -1
- package/dist/_virtual/processor.js +0 -5
- package/dist/_virtual/processor.js.map +0 -1
- package/dist/_virtual/processor.mjs +0 -5
- package/dist/_virtual/processor.mjs.map +0 -1
- package/dist/_virtual/pseudo.js +0 -5
- package/dist/_virtual/pseudo.js.map +0 -1
- package/dist/_virtual/pseudo.mjs +0 -5
- package/dist/_virtual/pseudo.mjs.map +0 -1
- package/dist/_virtual/root.js +0 -5
- package/dist/_virtual/root.js.map +0 -1
- package/dist/_virtual/root.mjs +0 -5
- package/dist/_virtual/root.mjs.map +0 -1
- package/dist/_virtual/selector.js +0 -5
- package/dist/_virtual/selector.js.map +0 -1
- package/dist/_virtual/selector.mjs +0 -5
- package/dist/_virtual/selector.mjs.map +0 -1
- package/dist/_virtual/sortAscending.js +0 -5
- package/dist/_virtual/sortAscending.js.map +0 -1
- package/dist/_virtual/sortAscending.mjs +0 -5
- package/dist/_virtual/sortAscending.mjs.map +0 -1
- package/dist/_virtual/string.js +0 -5
- package/dist/_virtual/string.js.map +0 -1
- package/dist/_virtual/string.mjs +0 -5
- package/dist/_virtual/string.mjs.map +0 -1
- package/dist/_virtual/stripComments.js +0 -5
- package/dist/_virtual/stripComments.js.map +0 -1
- package/dist/_virtual/stripComments.mjs +0 -5
- package/dist/_virtual/stripComments.mjs.map +0 -1
- package/dist/_virtual/symbols.js +0 -5
- package/dist/_virtual/symbols.js.map +0 -1
- package/dist/_virtual/symbols.mjs +0 -5
- package/dist/_virtual/symbols.mjs.map +0 -1
- package/dist/_virtual/tag.js +0 -5
- package/dist/_virtual/tag.js.map +0 -1
- package/dist/_virtual/tag.mjs +0 -5
- package/dist/_virtual/tag.mjs.map +0 -1
- package/dist/_virtual/tokenTypes.js +0 -5
- package/dist/_virtual/tokenTypes.js.map +0 -1
- package/dist/_virtual/tokenTypes.mjs +0 -5
- package/dist/_virtual/tokenTypes.mjs.map +0 -1
- package/dist/_virtual/tokenize.js +0 -5
- package/dist/_virtual/tokenize.js.map +0 -1
- package/dist/_virtual/tokenize.mjs +0 -5
- package/dist/_virtual/tokenize.mjs.map +0 -1
- package/dist/_virtual/types.js +0 -5
- package/dist/_virtual/types.js.map +0 -1
- package/dist/_virtual/types.mjs +0 -5
- package/dist/_virtual/types.mjs.map +0 -1
- package/dist/_virtual/unesc.js +0 -5
- package/dist/_virtual/unesc.js.map +0 -1
- package/dist/_virtual/unesc.mjs +0 -5
- package/dist/_virtual/unesc.mjs.map +0 -1
- package/dist/_virtual/universal.js +0 -5
- package/dist/_virtual/universal.js.map +0 -1
- package/dist/_virtual/universal.mjs +0 -5
- package/dist/_virtual/universal.mjs.map +0 -1
- package/dist/node_modules/@csstools/selector-specificity/dist/index.js +0 -96
- package/dist/node_modules/@csstools/selector-specificity/dist/index.js.map +0 -1
- package/dist/node_modules/@csstools/selector-specificity/dist/index.mjs +0 -96
- package/dist/node_modules/@csstools/selector-specificity/dist/index.mjs.map +0 -1
- package/dist/node_modules/camelcase-css/index-es5.js +0 -26
- package/dist/node_modules/camelcase-css/index-es5.js.map +0 -1
- package/dist/node_modules/camelcase-css/index-es5.mjs +0 -26
- package/dist/node_modules/camelcase-css/index-es5.mjs.map +0 -1
- package/dist/node_modules/cssesc/cssesc.js +0 -95
- package/dist/node_modules/cssesc/cssesc.js.map +0 -1
- package/dist/node_modules/cssesc/cssesc.mjs +0 -95
- package/dist/node_modules/cssesc/cssesc.mjs.map +0 -1
- package/dist/node_modules/nanoid/non-secure/index.js +0 -31
- package/dist/node_modules/nanoid/non-secure/index.js.map +0 -1
- package/dist/node_modules/nanoid/non-secure/index.mjs +0 -31
- package/dist/node_modules/nanoid/non-secure/index.mjs.map +0 -1
- package/dist/node_modules/picocolors/picocolors.browser.js +0 -17
- package/dist/node_modules/picocolors/picocolors.browser.js.map +0 -1
- package/dist/node_modules/picocolors/picocolors.browser.mjs +0 -17
- package/dist/node_modules/picocolors/picocolors.browser.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/at-rule.js +0 -30
- package/dist/node_modules/postcss/lib/at-rule.js.map +0 -1
- package/dist/node_modules/postcss/lib/at-rule.mjs +0 -30
- package/dist/node_modules/postcss/lib/at-rule.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/comment.js +0 -21
- package/dist/node_modules/postcss/lib/comment.js.map +0 -1
- package/dist/node_modules/postcss/lib/comment.mjs +0 -21
- package/dist/node_modules/postcss/lib/comment.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/container.js +0 -383
- package/dist/node_modules/postcss/lib/container.js.map +0 -1
- package/dist/node_modules/postcss/lib/container.mjs +0 -383
- package/dist/node_modules/postcss/lib/container.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/css-syntax-error.js +0 -92
- package/dist/node_modules/postcss/lib/css-syntax-error.js.map +0 -1
- package/dist/node_modules/postcss/lib/css-syntax-error.mjs +0 -92
- package/dist/node_modules/postcss/lib/css-syntax-error.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/declaration.js +0 -27
- package/dist/node_modules/postcss/lib/declaration.js.map +0 -1
- package/dist/node_modules/postcss/lib/declaration.mjs +0 -27
- package/dist/node_modules/postcss/lib/declaration.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/document.js +0 -34
- package/dist/node_modules/postcss/lib/document.js.map +0 -1
- package/dist/node_modules/postcss/lib/document.mjs +0 -34
- package/dist/node_modules/postcss/lib/document.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/fromJSON.js +0 -67
- package/dist/node_modules/postcss/lib/fromJSON.js.map +0 -1
- package/dist/node_modules/postcss/lib/fromJSON.mjs +0 -67
- package/dist/node_modules/postcss/lib/fromJSON.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/input.js +0 -216
- package/dist/node_modules/postcss/lib/input.js.map +0 -1
- package/dist/node_modules/postcss/lib/input.mjs +0 -216
- package/dist/node_modules/postcss/lib/input.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/lazy-result.js +0 -467
- package/dist/node_modules/postcss/lib/lazy-result.js.map +0 -1
- package/dist/node_modules/postcss/lib/lazy-result.mjs +0 -467
- package/dist/node_modules/postcss/lib/lazy-result.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/list.js +0 -60
- package/dist/node_modules/postcss/lib/list.js.map +0 -1
- package/dist/node_modules/postcss/lib/list.mjs +0 -60
- package/dist/node_modules/postcss/lib/list.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/map-generator.js +0 -314
- package/dist/node_modules/postcss/lib/map-generator.js.map +0 -1
- package/dist/node_modules/postcss/lib/map-generator.mjs +0 -314
- package/dist/node_modules/postcss/lib/map-generator.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/no-work-result.js +0 -113
- package/dist/node_modules/postcss/lib/no-work-result.js.map +0 -1
- package/dist/node_modules/postcss/lib/no-work-result.mjs +0 -113
- package/dist/node_modules/postcss/lib/no-work-result.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/node.js +0 -335
- package/dist/node_modules/postcss/lib/node.js.map +0 -1
- package/dist/node_modules/postcss/lib/node.mjs +0 -335
- package/dist/node_modules/postcss/lib/node.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/parse.js +0 -30
- package/dist/node_modules/postcss/lib/parse.js.map +0 -1
- package/dist/node_modules/postcss/lib/parse.mjs +0 -30
- package/dist/node_modules/postcss/lib/parse.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/parser.js +0 -543
- package/dist/node_modules/postcss/lib/parser.js.map +0 -1
- package/dist/node_modules/postcss/lib/parser.mjs +0 -543
- package/dist/node_modules/postcss/lib/parser.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/postcss.js +0 -28
- package/dist/node_modules/postcss/lib/postcss.js.map +0 -1
- package/dist/node_modules/postcss/lib/postcss.mjs +0 -29
- package/dist/node_modules/postcss/lib/postcss.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/postcss2.js +0 -110
- package/dist/node_modules/postcss/lib/postcss2.js.map +0 -1
- package/dist/node_modules/postcss/lib/postcss2.mjs +0 -110
- package/dist/node_modules/postcss/lib/postcss2.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/previous-map.js +0 -123
- package/dist/node_modules/postcss/lib/previous-map.js.map +0 -1
- package/dist/node_modules/postcss/lib/previous-map.mjs +0 -123
- package/dist/node_modules/postcss/lib/previous-map.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/processor.js +0 -61
- package/dist/node_modules/postcss/lib/processor.js.map +0 -1
- package/dist/node_modules/postcss/lib/processor.mjs +0 -61
- package/dist/node_modules/postcss/lib/processor.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/result.js +0 -44
- package/dist/node_modules/postcss/lib/result.js.map +0 -1
- package/dist/node_modules/postcss/lib/result.mjs +0 -44
- package/dist/node_modules/postcss/lib/result.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/root.js +0 -58
- package/dist/node_modules/postcss/lib/root.js.map +0 -1
- package/dist/node_modules/postcss/lib/root.mjs +0 -58
- package/dist/node_modules/postcss/lib/root.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/rule.js +0 -33
- package/dist/node_modules/postcss/lib/rule.js.map +0 -1
- package/dist/node_modules/postcss/lib/rule.mjs +0 -33
- package/dist/node_modules/postcss/lib/rule.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/stringifier.js +0 -308
- package/dist/node_modules/postcss/lib/stringifier.js.map +0 -1
- package/dist/node_modules/postcss/lib/stringifier.mjs +0 -308
- package/dist/node_modules/postcss/lib/stringifier.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/stringify.js +0 -19
- package/dist/node_modules/postcss/lib/stringify.js.map +0 -1
- package/dist/node_modules/postcss/lib/stringify.mjs +0 -19
- package/dist/node_modules/postcss/lib/stringify.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/symbols.js +0 -13
- package/dist/node_modules/postcss/lib/symbols.js.map +0 -1
- package/dist/node_modules/postcss/lib/symbols.mjs +0 -13
- package/dist/node_modules/postcss/lib/symbols.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/tokenize.js +0 -219
- package/dist/node_modules/postcss/lib/tokenize.js.map +0 -1
- package/dist/node_modules/postcss/lib/tokenize.mjs +0 -219
- package/dist/node_modules/postcss/lib/tokenize.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/warning.js +0 -40
- package/dist/node_modules/postcss/lib/warning.js.map +0 -1
- package/dist/node_modules/postcss/lib/warning.mjs +0 -40
- package/dist/node_modules/postcss/lib/warning.mjs.map +0 -1
- package/dist/node_modules/postcss-js/async.js +0 -27
- package/dist/node_modules/postcss-js/async.js.map +0 -1
- package/dist/node_modules/postcss-js/async.mjs +0 -27
- package/dist/node_modules/postcss-js/async.mjs.map +0 -1
- package/dist/node_modules/postcss-js/index.js +0 -8
- package/dist/node_modules/postcss-js/index.js.map +0 -1
- package/dist/node_modules/postcss-js/index.mjs +0 -9
- package/dist/node_modules/postcss-js/index.mjs.map +0 -1
- package/dist/node_modules/postcss-js/index2.js +0 -25
- package/dist/node_modules/postcss-js/index2.js.map +0 -1
- package/dist/node_modules/postcss-js/index2.mjs +0 -25
- package/dist/node_modules/postcss-js/index2.mjs.map +0 -1
- package/dist/node_modules/postcss-js/objectifier.js +0 -92
- package/dist/node_modules/postcss-js/objectifier.js.map +0 -1
- package/dist/node_modules/postcss-js/objectifier.mjs +0 -92
- package/dist/node_modules/postcss-js/objectifier.mjs.map +0 -1
- package/dist/node_modules/postcss-js/parser.js +0 -102
- package/dist/node_modules/postcss-js/parser.js.map +0 -1
- package/dist/node_modules/postcss-js/parser.mjs +0 -102
- package/dist/node_modules/postcss-js/parser.mjs.map +0 -1
- package/dist/node_modules/postcss-js/process-result.js +0 -22
- package/dist/node_modules/postcss-js/process-result.js.map +0 -1
- package/dist/node_modules/postcss-js/process-result.mjs +0 -22
- package/dist/node_modules/postcss-js/process-result.mjs.map +0 -1
- package/dist/node_modules/postcss-js/sync.js +0 -24
- package/dist/node_modules/postcss-js/sync.js.map +0 -1
- package/dist/node_modules/postcss-js/sync.mjs +0 -24
- package/dist/node_modules/postcss-js/sync.mjs.map +0 -1
- package/dist/node_modules/postcss-nesting/dist/index.js +0 -267
- package/dist/node_modules/postcss-nesting/dist/index.js.map +0 -1
- package/dist/node_modules/postcss-nesting/dist/index.mjs +0 -268
- package/dist/node_modules/postcss-nesting/dist/index.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/index.js +0 -67
- package/dist/node_modules/postcss-selector-parser/dist/index.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/index.mjs +0 -67
- package/dist/node_modules/postcss-selector-parser/dist/index.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/parser.js +0 -1038
- package/dist/node_modules/postcss-selector-parser/dist/parser.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/parser.mjs +0 -1038
- package/dist/node_modules/postcss-selector-parser/dist/parser.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/processor.js +0 -137
- package/dist/node_modules/postcss-selector-parser/dist/processor.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/processor.mjs +0 -137
- package/dist/node_modules/postcss-selector-parser/dist/processor.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/attribute.js +0 -404
- package/dist/node_modules/postcss-selector-parser/dist/selectors/attribute.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/attribute.mjs +0 -404
- package/dist/node_modules/postcss-selector-parser/dist/selectors/attribute.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/className.js +0 -89
- package/dist/node_modules/postcss-selector-parser/dist/selectors/className.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/className.mjs +0 -89
- package/dist/node_modules/postcss-selector-parser/dist/selectors/className.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/combinator.js +0 -46
- package/dist/node_modules/postcss-selector-parser/dist/selectors/combinator.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/combinator.mjs +0 -46
- package/dist/node_modules/postcss-selector-parser/dist/selectors/combinator.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/comment.js +0 -46
- package/dist/node_modules/postcss-selector-parser/dist/selectors/comment.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/comment.mjs +0 -46
- package/dist/node_modules/postcss-selector-parser/dist/selectors/comment.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/constructors.js +0 -88
- package/dist/node_modules/postcss-selector-parser/dist/selectors/constructors.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/constructors.mjs +0 -88
- package/dist/node_modules/postcss-selector-parser/dist/selectors/constructors.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/container.js +0 -391
- package/dist/node_modules/postcss-selector-parser/dist/selectors/container.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/container.mjs +0 -391
- package/dist/node_modules/postcss-selector-parser/dist/selectors/container.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/guards.js +0 -68
- package/dist/node_modules/postcss-selector-parser/dist/selectors/guards.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/guards.mjs +0 -68
- package/dist/node_modules/postcss-selector-parser/dist/selectors/guards.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/id.js +0 -50
- package/dist/node_modules/postcss-selector-parser/dist/selectors/id.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/id.mjs +0 -50
- package/dist/node_modules/postcss-selector-parser/dist/selectors/id.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/index.js +0 -35
- package/dist/node_modules/postcss-selector-parser/dist/selectors/index.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/index.mjs +0 -35
- package/dist/node_modules/postcss-selector-parser/dist/selectors/index.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/namespace.js +0 -117
- package/dist/node_modules/postcss-selector-parser/dist/selectors/namespace.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/namespace.mjs +0 -117
- package/dist/node_modules/postcss-selector-parser/dist/selectors/namespace.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/nesting.js +0 -47
- package/dist/node_modules/postcss-selector-parser/dist/selectors/nesting.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/nesting.mjs +0 -47
- package/dist/node_modules/postcss-selector-parser/dist/selectors/nesting.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/node.js +0 -183
- package/dist/node_modules/postcss-selector-parser/dist/selectors/node.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/node.mjs +0 -183
- package/dist/node_modules/postcss-selector-parser/dist/selectors/node.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/pseudo.js +0 -51
- package/dist/node_modules/postcss-selector-parser/dist/selectors/pseudo.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/pseudo.mjs +0 -51
- package/dist/node_modules/postcss-selector-parser/dist/selectors/pseudo.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/root.js +0 -81
- package/dist/node_modules/postcss-selector-parser/dist/selectors/root.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/root.mjs +0 -81
- package/dist/node_modules/postcss-selector-parser/dist/selectors/root.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/selector.js +0 -46
- package/dist/node_modules/postcss-selector-parser/dist/selectors/selector.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/selector.mjs +0 -46
- package/dist/node_modules/postcss-selector-parser/dist/selectors/selector.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/string.js +0 -46
- package/dist/node_modules/postcss-selector-parser/dist/selectors/string.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/string.mjs +0 -46
- package/dist/node_modules/postcss-selector-parser/dist/selectors/string.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/tag.js +0 -46
- package/dist/node_modules/postcss-selector-parser/dist/selectors/tag.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/tag.mjs +0 -46
- package/dist/node_modules/postcss-selector-parser/dist/selectors/tag.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/types.js +0 -37
- package/dist/node_modules/postcss-selector-parser/dist/selectors/types.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/types.mjs +0 -37
- package/dist/node_modules/postcss-selector-parser/dist/selectors/types.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/universal.js +0 -47
- package/dist/node_modules/postcss-selector-parser/dist/selectors/universal.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/selectors/universal.mjs +0 -47
- package/dist/node_modules/postcss-selector-parser/dist/selectors/universal.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/sortAscending.js +0 -21
- package/dist/node_modules/postcss-selector-parser/dist/sortAscending.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/sortAscending.mjs +0 -21
- package/dist/node_modules/postcss-selector-parser/dist/sortAscending.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/tokenTypes.js +0 -75
- package/dist/node_modules/postcss-selector-parser/dist/tokenTypes.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/tokenTypes.mjs +0 -75
- package/dist/node_modules/postcss-selector-parser/dist/tokenTypes.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/tokenize.js +0 -264
- package/dist/node_modules/postcss-selector-parser/dist/tokenize.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/tokenize.mjs +0 -264
- package/dist/node_modules/postcss-selector-parser/dist/tokenize.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/util/ensureObject.js +0 -28
- package/dist/node_modules/postcss-selector-parser/dist/util/ensureObject.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/util/ensureObject.mjs +0 -28
- package/dist/node_modules/postcss-selector-parser/dist/util/ensureObject.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/util/getProp.js +0 -29
- package/dist/node_modules/postcss-selector-parser/dist/util/getProp.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/util/getProp.mjs +0 -29
- package/dist/node_modules/postcss-selector-parser/dist/util/getProp.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/util/index.js +0 -28
- package/dist/node_modules/postcss-selector-parser/dist/util/index.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/util/index.mjs +0 -28
- package/dist/node_modules/postcss-selector-parser/dist/util/index.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/util/stripComments.js +0 -32
- package/dist/node_modules/postcss-selector-parser/dist/util/stripComments.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/util/stripComments.mjs +0 -32
- package/dist/node_modules/postcss-selector-parser/dist/util/stripComments.mjs.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/util/unesc.js +0 -68
- package/dist/node_modules/postcss-selector-parser/dist/util/unesc.js.map +0 -1
- package/dist/node_modules/postcss-selector-parser/dist/util/unesc.mjs +0 -68
- package/dist/node_modules/postcss-selector-parser/dist/util/unesc.mjs.map +0 -1
- package/dist/node_modules/util-deprecate/browser.js +0 -43
- package/dist/node_modules/util-deprecate/browser.js.map +0 -1
- package/dist/node_modules/util-deprecate/browser.mjs +0 -43
- package/dist/node_modules/util-deprecate/browser.mjs.map +0 -1
- package/dist/utilities/accessibility/index.d.ts +0 -13
- package/dist/utilities/accessibility/index.d.ts.map +0 -1
- package/dist/utilities/accessibility/index.js +0 -89
- package/dist/utilities/accessibility/index.js.map +0 -1
- package/dist/utilities/accessibility/index.mjs +0 -89
- package/dist/utilities/accessibility/index.mjs.map +0 -1
- package/dist/utilities/assets/icons.d.ts +0 -26
- package/dist/utilities/assets/icons.d.ts.map +0 -1
- package/dist/utilities/assets/icons.js +0 -53
- package/dist/utilities/assets/icons.js.map +0 -1
- package/dist/utilities/assets/icons.mjs +0 -53
- package/dist/utilities/assets/icons.mjs.map +0 -1
- package/dist/utilities/assets/index.d.ts +0 -4
- package/dist/utilities/assets/index.d.ts.map +0 -1
- package/dist/utilities/assets/index.js +0 -9
- package/dist/utilities/assets/index.js.map +0 -1
- package/dist/utilities/assets/index.mjs +0 -9
- package/dist/utilities/assets/index.mjs.map +0 -1
- package/dist/utilities/assets/logos.d.ts +0 -6
- package/dist/utilities/assets/logos.d.ts.map +0 -1
- package/dist/utilities/assets/logos.js +0 -14
- package/dist/utilities/assets/logos.js.map +0 -1
- package/dist/utilities/assets/logos.mjs +0 -14
- package/dist/utilities/assets/logos.mjs.map +0 -1
- package/dist/utilities/assets/social.d.ts +0 -8
- package/dist/utilities/assets/social.d.ts.map +0 -1
- package/dist/utilities/assets/social.js +0 -17
- package/dist/utilities/assets/social.js.map +0 -1
- package/dist/utilities/assets/social.mjs +0 -17
- package/dist/utilities/assets/social.mjs.map +0 -1
- package/dist/utilities/date.d.ts +0 -12
- package/dist/utilities/date.d.ts.map +0 -1
- package/dist/utilities/date.js +0 -36
- package/dist/utilities/date.js.map +0 -1
- package/dist/utilities/date.mjs +0 -36
- package/dist/utilities/date.mjs.map +0 -1
- package/dist/utilities/index.d.ts +0 -10
- package/dist/utilities/index.d.ts.map +0 -1
- package/dist/utilities/js-events/index.d.ts +0 -5
- package/dist/utilities/js-events/index.d.ts.map +0 -1
- package/dist/utilities/js-events/index.js +0 -37
- package/dist/utilities/js-events/index.js.map +0 -1
- package/dist/utilities/js-events/index.mjs +0 -37
- package/dist/utilities/js-events/index.mjs.map +0 -1
- package/dist/utilities/markup/create.d.ts +0 -13
- package/dist/utilities/markup/create.d.ts.map +0 -1
- package/dist/utilities/markup/create.js +0 -95
- package/dist/utilities/markup/create.js.map +0 -1
- package/dist/utilities/markup/create.mjs +0 -95
- package/dist/utilities/markup/create.mjs.map +0 -1
- package/dist/utilities/markup/get.d.ts +0 -4
- package/dist/utilities/markup/get.d.ts.map +0 -1
- package/dist/utilities/markup/get.js +0 -18
- package/dist/utilities/markup/get.js.map +0 -1
- package/dist/utilities/markup/get.mjs +0 -18
- package/dist/utilities/markup/get.mjs.map +0 -1
- package/dist/utilities/markup/index.d.ts +0 -5
- package/dist/utilities/markup/index.d.ts.map +0 -1
- package/dist/utilities/markup/index.js +0 -11
- package/dist/utilities/markup/index.js.map +0 -1
- package/dist/utilities/markup/index.mjs +0 -11
- package/dist/utilities/markup/index.mjs.map +0 -1
- package/dist/utilities/markup/locate.d.ts +0 -5
- package/dist/utilities/markup/locate.d.ts.map +0 -1
- package/dist/utilities/markup/locate.js +0 -26
- package/dist/utilities/markup/locate.js.map +0 -1
- package/dist/utilities/markup/locate.mjs +0 -26
- package/dist/utilities/markup/locate.mjs.map +0 -1
- package/dist/utilities/markup/modify.d.ts +0 -21
- package/dist/utilities/markup/modify.d.ts.map +0 -1
- package/dist/utilities/markup/modify.js +0 -93
- package/dist/utilities/markup/modify.js.map +0 -1
- package/dist/utilities/markup/modify.mjs +0 -93
- package/dist/utilities/markup/modify.mjs.map +0 -1
- package/dist/utilities/network/index.d.ts +0 -10
- package/dist/utilities/network/index.d.ts.map +0 -1
- package/dist/utilities/network/index.js +0 -35
- package/dist/utilities/network/index.js.map +0 -1
- package/dist/utilities/network/index.mjs +0 -35
- package/dist/utilities/network/index.mjs.map +0 -1
- package/dist/utilities/performance/index.d.ts +0 -2
- package/dist/utilities/performance/index.d.ts.map +0 -1
- package/dist/utilities/performance/index.js +0 -12
- package/dist/utilities/performance/index.js.map +0 -1
- package/dist/utilities/performance/index.mjs +0 -12
- package/dist/utilities/performance/index.mjs.map +0 -1
- package/dist/utilities/storage/index.d.ts +0 -2
- package/dist/utilities/storage/index.d.ts.map +0 -1
- package/dist/utilities/storage/index.js +0 -5
- package/dist/utilities/storage/index.js.map +0 -1
- package/dist/utilities/storage/index.mjs +0 -5
- package/dist/utilities/storage/index.mjs.map +0 -1
- package/dist/utilities/storage/local.d.ts +0 -7
- package/dist/utilities/storage/local.d.ts.map +0 -1
- package/dist/utilities/storage/local.js +0 -14
- package/dist/utilities/storage/local.js.map +0 -1
- package/dist/utilities/storage/local.mjs +0 -14
- package/dist/utilities/storage/local.mjs.map +0 -1
- package/dist/utilities/theme/animations.d.ts +0 -9
- package/dist/utilities/theme/animations.d.ts.map +0 -1
- package/dist/utilities/theme/animations.js +0 -70
- package/dist/utilities/theme/animations.js.map +0 -1
- package/dist/utilities/theme/animations.mjs +0 -70
- package/dist/utilities/theme/animations.mjs.map +0 -1
- package/dist/utilities/theme/assets.d.ts +0 -6
- package/dist/utilities/theme/assets.d.ts.map +0 -1
- package/dist/utilities/theme/assets.js +0 -17
- package/dist/utilities/theme/assets.js.map +0 -1
- package/dist/utilities/theme/assets.mjs +0 -17
- package/dist/utilities/theme/assets.mjs.map +0 -1
- package/dist/utilities/theme/index.d.ts +0 -11
- package/dist/utilities/theme/index.d.ts.map +0 -1
- package/dist/utilities/theme/index.js +0 -28
- package/dist/utilities/theme/index.js.map +0 -1
- package/dist/utilities/theme/index.mjs +0 -28
- package/dist/utilities/theme/index.mjs.map +0 -1
- package/dist/utilities/theme/media.d.ts +0 -12
- package/dist/utilities/theme/media.d.ts.map +0 -1
- package/dist/utilities/theme/media.js +0 -21
- package/dist/utilities/theme/media.js.map +0 -1
- package/dist/utilities/theme/media.mjs +0 -21
- package/dist/utilities/theme/media.mjs.map +0 -1
- package/dist/utilities.d.ts +0 -2
- package/dist/utilities.js +0 -21
- package/dist/utilities.js.map +0 -1
- package/dist/utilities.mjs +0 -21
- package/dist/utilities.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.js","sources":["../../../source/composite/navigation/header.ts"],"sourcesContent":["import { token, typography } from '@universityofmaryland/web-styles-library';\nimport * as Utility from 'utilities';\nimport MenuButton from './elements/menu-button';\nimport NavigationItem from './elements/item';\n\ntype TypeLogoRequirments = {\n logo?: HTMLElement | null;\n eventOpen?: () => void;\n};\n\ntype TypeSearchLink = {\n searchUrl: string | null;\n};\n\ntype TypeCtaLink = {\n ctaUrl: string | null;\n ctaText: string | null;\n};\n\ntype TypeNavRow = TypeSearchLink &\n TypeCtaLink & {\n utilityRow?: HTMLElement | null;\n navItems?: HTMLElement[];\n };\n\ntype TypeHeaderRequirements = TypeLogoRequirments & TypeNavRow;\n\nconst ANIMATION_TIME = 500;\n\nconst ATTRIBUTE_STICKY = 'data-sticky';\nconst ATTRIBUTE_CTA = 'data-cta';\n\nconst IS_STICKY = `[${ATTRIBUTE_STICKY}=\"true\"]`;\nconst IS_CTA = `[${ATTRIBUTE_CTA}=\"true\"]`;\n\nconst ELEMENT_HEADER_DECLARATION = 'element-header-declaration';\nconst ELEMENT_HEADER_CONTAINTER = 'element-header-container';\nconst ELEMENT_HEADER_WRAPPER = 'element-header-wrapper';\nconst ELEMENT_HEADER_LOGO_COLUMN = 'element-header-logo-column';\nconst ELEMENT_HEADER_NAVIGATION_COLUMN = 'element-header-navigation-column';\nconst ELEMENT_HEADER_LOGO = 'element-header-logo';\nconst ELEMENT_HEADER_MENU_BUTTON = 'element-header-menu-button';\nconst ELEMENT_HEADER_MENU_CTA = 'element-header-menu-cta';\nconst ELEMENT_HEADER_MENU_SEARCH = 'element-header-menu-search';\nconst ELEMENT_HEADER_NAVIGATION_ROW = 'element-header-navigation-row';\nconst ELEMENT_HEADER_UTILITY_ROW = 'element-header-utility-row';\n\nconst OVERWRITE_STICKY_CONTAINER = `.${ELEMENT_HEADER_CONTAINTER}${IS_STICKY}`;\nconst OVERWRITE_STICKY_LOGO = `${OVERWRITE_STICKY_CONTAINER} .${ELEMENT_HEADER_LOGO}`;\nconst OVERWRITE_CTA_WRAPPER = `.${ELEMENT_HEADER_WRAPPER}${IS_CTA}`;\nconst OVERWRITE_CTA_WRAPPER_NAV_ROW = `${OVERWRITE_CTA_WRAPPER} .${ELEMENT_HEADER_NAVIGATION_ROW}`;\nconst OVERWRITE_CTA_WRAPPER_CTA = `${OVERWRITE_CTA_WRAPPER} .${ELEMENT_HEADER_MENU_CTA}`;\n\nconst OverwriteStickyStyles = `\n ${OVERWRITE_STICKY_CONTAINER} {\n padding: ${token.spacing.xs} 0;\n }\n\n .${ELEMENT_HEADER_WRAPPER} {\n align-items: center;\n }\n\n ${OVERWRITE_STICKY_LOGO} img {\n max-height: 30px;\n }\n`;\n\nconst CtaStyles = `\n .${ELEMENT_HEADER_MENU_CTA} {\n color: ${token.color.white};\n font-weight: ${token.font.weight.bold};\n font-size: ${token.font.size.sm};\n padding: ${token.spacing.xs};\n background-color: ${token.color.red};\n transition: background .5s;\n white-space: nowrap;\n }\n\n .${ELEMENT_HEADER_MENU_CTA}:hover,\n .${ELEMENT_HEADER_MENU_CTA}:focus {\n background-color: ${token.color.redDark};\n }\n\n ${OVERWRITE_CTA_WRAPPER_CTA} {\n margin-top: -${token.spacing.min};\n }\n`;\n\nconst NavigationColumnStyles = `\n @media (max-width: 1240px) {\n .${ELEMENT_HEADER_NAVIGATION_COLUMN} {\n display: none;\n }\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} {\n display: grid;\n grid-auto-flow: column;\n }\n\n ${OVERWRITE_CTA_WRAPPER_NAV_ROW} {\n padding-top: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} > * {\n display: block;\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} > *:not(:first-child) {\n margin-left: ${token.spacing.md};\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} svg {\n width: 24px;\n height: 24px;\n fill: ${token.color.black};\n }\n\n .${ELEMENT_HEADER_UTILITY_ROW} {\n display: flex;\n justify-content: flex-end;\n margin-bottom: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_UTILITY_ROW} ::slotted(*) {\n display: flex;\n justify-content: flex-end;\n gap: ${token.spacing.md};\n }\n`;\n\nconst LogoColumnStyles = `\n .${ELEMENT_HEADER_LOGO_COLUMN} {\n align-items: center;\n display: flex;\n justify-content: flex-start;\n position: relative;\n width: 100%;\n max-width: 400px;\n }\n\n .${ELEMENT_HEADER_MENU_BUTTON} {\n border-right: 1px solid ${token.color.gray.light};\n padding-right: ${token.spacing.min};\n margin-right: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_LOGO} {\n display: grid;\n justify-content: flex-start;\n max-width: 350px;\n }\n\n .${ELEMENT_HEADER_LOGO}:has(img[src*=\".svg\"]) img {\n height: 240px;\n }\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}`]: typography.sans.larger,\n },\n })}\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO} *`]: typography.sans.larger,\n },\n })}\n\n .${ELEMENT_HEADER_LOGO},\n .${ELEMENT_HEADER_LOGO} * {\n line-height: 1.05em;\n width: 100%;\n }\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}[size=\"large\"]`]: typography.sans.extraLarge,\n },\n })}\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}[size=\"large\"] *`]: typography.sans.extraLarge,\n },\n })}\n\n .${ELEMENT_HEADER_LOGO},\n .${ELEMENT_HEADER_LOGO} * {\n font-weight: 700;\n }\n\n .${ELEMENT_HEADER_LOGO} img {\n width: 100%;\n max-height: 48px;\n max-width: 190px;\n }\n\n @media (min-width: ${token.media.breakpoints.tablet.min}) {\n .${ELEMENT_HEADER_LOGO} img {\n max-width: 240px;\n }\n }\n`;\n\nconst WrapperStyles = `\n .${ELEMENT_HEADER_WRAPPER} {\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n gap: ${token.spacing.lg};\n z-index: 999;\n }\n`;\n\nconst STYLES_NAVIGATION_HEADER = `\n .${ELEMENT_HEADER_CONTAINTER} {\n background-color: ${token.color.white};\n display: block;\n padding: ${token.spacing.md} 0;\n position: relative;\n transition: padding ${ANIMATION_TIME}ms;\n }\n\n ${WrapperStyles}\n ${LogoColumnStyles}\n ${NavigationColumnStyles}\n ${CtaStyles}\n ${OverwriteStickyStyles}\n ${NavigationItem.Styles}\n ${MenuButton.Styles}\n`;\n\nconst CreateSearchLink = ({ searchUrl }: TypeSearchLink) => {\n if (!searchUrl) return null;\n\n const searchLink = document.createElement('a');\n\n searchLink.href = searchUrl;\n searchLink.ariaLabel = 'Visit the search page';\n searchLink.innerHTML = Utility.asset.icon.MAGNIFY_GLASS;\n searchLink.classList.add(ELEMENT_HEADER_MENU_SEARCH);\n\n return searchLink;\n};\n\nconst CreateCtaLink = ({ ctaUrl, ctaText }: TypeCtaLink) => {\n if (!ctaUrl || !ctaText) return null;\n\n const cta = document.createElement('a');\n\n cta.innerHTML = ctaText;\n cta.setAttribute('target', '_blank');\n cta.setAttribute('href', ctaUrl);\n cta.classList.add(ELEMENT_HEADER_MENU_CTA);\n\n return cta;\n};\n\nconst CreateNavigationColumn = ({\n utilityRow,\n navItems,\n searchUrl,\n ctaText,\n ctaUrl,\n}: TypeNavRow) => {\n if (!navItems) return;\n\n const navColumnContainer = document.createElement('div');\n const utilityRowContainer = document.createElement('div');\n const navRowContainer = document.createElement('div');\n const searchLink = CreateSearchLink({\n searchUrl,\n });\n const ctaLink = CreateCtaLink({ ctaText, ctaUrl });\n\n if (utilityRow) {\n utilityRowContainer.classList.add(ELEMENT_HEADER_UTILITY_ROW);\n utilityRowContainer.appendChild(utilityRow);\n navColumnContainer.appendChild(utilityRowContainer);\n }\n\n navRowContainer.classList.add(ELEMENT_HEADER_NAVIGATION_ROW);\n\n navItems.forEach((item) => {\n navRowContainer.appendChild(item);\n });\n if (searchLink) navRowContainer.appendChild(searchLink);\n if (ctaLink) navRowContainer.appendChild(ctaLink);\n\n navColumnContainer.classList.add(ELEMENT_HEADER_NAVIGATION_COLUMN);\n navColumnContainer.appendChild(navRowContainer);\n\n return navColumnContainer;\n};\n\nconst CreateLogoColumn = ({ logo, eventOpen }: TypeLogoRequirments) => {\n const container = document.createElement('div');\n\n if (eventOpen) {\n const menuButton = MenuButton.CreateElement({ eventOpen });\n menuButton.classList.add(ELEMENT_HEADER_MENU_BUTTON);\n container.appendChild(menuButton);\n }\n\n if (logo) {\n const childrenText = Array.from(logo.children).reduce((acc, child) => {\n if (child.nodeName === 'IMG') return acc;\n\n if (child.textContent) {\n return acc + child.textContent.length;\n }\n\n return acc;\n }, 0);\n logo.classList.add(ELEMENT_HEADER_LOGO);\n\n if (childrenText < 30) {\n logo.setAttribute('size', 'large');\n }\n\n container.appendChild(logo);\n }\n container.classList.add(ELEMENT_HEADER_LOGO_COLUMN);\n return container;\n};\n\nconst CreateNavigationHeader = (props: TypeHeaderRequirements) => {\n const { ctaUrl, ctaText } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const wrapper = document.createElement('div');\n const logoColumn = CreateLogoColumn(props);\n const navigationColumn = CreateNavigationColumn(props);\n const eventSticky = ({ isSticky }: { isSticky: boolean }) => {\n const utility = container.querySelector(\n `.${ELEMENT_HEADER_UTILITY_ROW}`,\n ) as HTMLDivElement;\n\n if (isSticky && isElementSticky) return;\n\n if (isSticky) {\n isElementSticky = true;\n container.setAttribute(ATTRIBUTE_STICKY, 'true');\n\n if (utility) {\n utility.style.display = 'none';\n }\n }\n if (!isSticky) {\n isElementSticky = false;\n container.removeAttribute(ATTRIBUTE_STICKY);\n\n if (utility) {\n utility.style.display = 'block';\n }\n }\n };\n let isElementSticky = false;\n\n wrapper.classList.add(ELEMENT_HEADER_WRAPPER);\n wrapper.appendChild(logoColumn);\n\n if (navigationColumn) wrapper.appendChild(navigationColumn);\n if (ctaUrl && ctaText) wrapper.setAttribute(ATTRIBUTE_CTA, 'true');\n\n container.appendChild(wrapper);\n container.classList.add(ELEMENT_HEADER_CONTAINTER);\n\n declaration.classList.add(ELEMENT_HEADER_DECLARATION);\n declaration.appendChild(container);\n\n return {\n element: declaration,\n events: {\n sticky: eventSticky,\n },\n };\n};\n\nexport default {\n CreateElement: CreateNavigationHeader,\n Styles: STYLES_NAVIGATION_HEADER,\n};\n"],"names":["token","Utility.theme.convertJSSObjectToStyles","typography","NavigationItem","MenuButton","Utility.asset.icon.MAGNIFY_GLASS"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"header.js","sources":["../../../source/composite/navigation/header.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport { jssToCSS } from '@universityofmaryland/web-utilities-library/styles';\nimport { search as iconSearch } from '@universityofmaryland/web-icons-library/search';\nimport MenuButton from './elements/menu-button';\nimport NavigationItem from './elements/item';\n\ntype TypeLogoRequirments = {\n logo?: HTMLElement | null;\n eventOpen?: () => void;\n};\n\ntype TypeSearchLink = {\n searchUrl: string | null;\n};\n\ntype TypeCtaLink = {\n ctaUrl: string | null;\n ctaText: string | null;\n};\n\ntype TypeNavRow = TypeSearchLink &\n TypeCtaLink & {\n utilityRow?: HTMLElement | null;\n navItems?: HTMLElement[];\n };\n\ntype TypeHeaderRequirements = TypeLogoRequirments & TypeNavRow;\n\nconst ANIMATION_TIME = 500;\n\nconst ATTRIBUTE_STICKY = 'data-sticky';\nconst ATTRIBUTE_CTA = 'data-cta';\n\nconst IS_STICKY = `[${ATTRIBUTE_STICKY}=\"true\"]`;\nconst IS_CTA = `[${ATTRIBUTE_CTA}=\"true\"]`;\n\nconst ELEMENT_HEADER_DECLARATION = 'element-header-declaration';\nconst ELEMENT_HEADER_CONTAINTER = 'element-header-container';\nconst ELEMENT_HEADER_WRAPPER = 'element-header-wrapper';\nconst ELEMENT_HEADER_LOGO_COLUMN = 'element-header-logo-column';\nconst ELEMENT_HEADER_NAVIGATION_COLUMN = 'element-header-navigation-column';\nconst ELEMENT_HEADER_LOGO = 'element-header-logo';\nconst ELEMENT_HEADER_MENU_BUTTON = 'element-header-menu-button';\nconst ELEMENT_HEADER_MENU_CTA = 'element-header-menu-cta';\nconst ELEMENT_HEADER_MENU_SEARCH = 'element-header-menu-search';\nconst ELEMENT_HEADER_NAVIGATION_ROW = 'element-header-navigation-row';\nconst ELEMENT_HEADER_UTILITY_ROW = 'element-header-utility-row';\n\nconst OVERWRITE_STICKY_CONTAINER = `.${ELEMENT_HEADER_CONTAINTER}${IS_STICKY}`;\nconst OVERWRITE_STICKY_LOGO = `${OVERWRITE_STICKY_CONTAINER} .${ELEMENT_HEADER_LOGO}`;\nconst OVERWRITE_CTA_WRAPPER = `.${ELEMENT_HEADER_WRAPPER}${IS_CTA}`;\nconst OVERWRITE_CTA_WRAPPER_NAV_ROW = `${OVERWRITE_CTA_WRAPPER} .${ELEMENT_HEADER_NAVIGATION_ROW}`;\nconst OVERWRITE_CTA_WRAPPER_CTA = `${OVERWRITE_CTA_WRAPPER} .${ELEMENT_HEADER_MENU_CTA}`;\n\nconst OverwriteStickyStyles = `\n ${OVERWRITE_STICKY_CONTAINER} {\n padding: ${token.spacing.xs} 0;\n }\n\n .${ELEMENT_HEADER_WRAPPER} {\n align-items: center;\n }\n\n ${OVERWRITE_STICKY_LOGO} img {\n max-height: 30px;\n }\n`;\n\nconst CtaStyles = `\n .${ELEMENT_HEADER_MENU_CTA} {\n color: ${token.color.white};\n font-weight: ${token.font.weight.bold};\n font-size: ${token.font.size.sm};\n padding: ${token.spacing.xs};\n background-color: ${token.color.red};\n transition: background .5s;\n white-space: nowrap;\n }\n\n .${ELEMENT_HEADER_MENU_CTA}:hover,\n .${ELEMENT_HEADER_MENU_CTA}:focus {\n background-color: ${token.color.redDark};\n }\n\n ${OVERWRITE_CTA_WRAPPER_CTA} {\n margin-top: -${token.spacing.min};\n }\n`;\n\nconst NavigationColumnStyles = `\n @media (max-width: 1240px) {\n .${ELEMENT_HEADER_NAVIGATION_COLUMN} {\n display: none;\n }\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} {\n display: grid;\n grid-auto-flow: column;\n }\n\n ${OVERWRITE_CTA_WRAPPER_NAV_ROW} {\n padding-top: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} > * {\n display: block;\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} > *:not(:first-child) {\n margin-left: ${token.spacing.md};\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} svg {\n width: 24px;\n height: 24px;\n fill: ${token.color.black};\n }\n\n .${ELEMENT_HEADER_UTILITY_ROW} {\n display: flex;\n justify-content: flex-end;\n margin-bottom: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_UTILITY_ROW} ::slotted(*) {\n display: flex;\n justify-content: flex-end;\n gap: ${token.spacing.md};\n }\n`;\n\nconst LogoColumnStyles = `\n .${ELEMENT_HEADER_LOGO_COLUMN} {\n align-items: center;\n display: flex;\n justify-content: flex-start;\n position: relative;\n width: 100%;\n max-width: 400px;\n }\n\n .${ELEMENT_HEADER_MENU_BUTTON} {\n border-right: 1px solid ${token.color.gray.light};\n padding-right: ${token.spacing.min};\n margin-right: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_LOGO} {\n display: grid;\n justify-content: flex-start;\n max-width: 350px;\n }\n\n .${ELEMENT_HEADER_LOGO}:has(img[src*=\".svg\"]) img {\n height: 240px;\n }\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}`]: typography.sans.larger,\n },\n })}\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO} *`]: typography.sans.larger,\n },\n })}\n\n .${ELEMENT_HEADER_LOGO},\n .${ELEMENT_HEADER_LOGO} * {\n line-height: 1.05em;\n width: 100%;\n }\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}[size=\"large\"]`]: typography.sans.extraLarge,\n },\n })}\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}[size=\"large\"] *`]: typography.sans.extraLarge,\n },\n })}\n\n .${ELEMENT_HEADER_LOGO},\n .${ELEMENT_HEADER_LOGO} * {\n font-weight: 700;\n }\n\n .${ELEMENT_HEADER_LOGO} img {\n width: 100%;\n max-height: 48px;\n max-width: 190px;\n }\n\n @media (min-width: ${token.media.breakpoints.tablet.min}) {\n .${ELEMENT_HEADER_LOGO} img {\n max-width: 240px;\n }\n }\n`;\n\nconst WrapperStyles = `\n .${ELEMENT_HEADER_WRAPPER} {\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n gap: ${token.spacing.lg};\n z-index: 999;\n }\n`;\n\nconst STYLES_NAVIGATION_HEADER = `\n .${ELEMENT_HEADER_CONTAINTER} {\n background-color: ${token.color.white};\n display: block;\n padding: ${token.spacing.md} 0;\n position: relative;\n transition: padding ${ANIMATION_TIME}ms;\n }\n\n ${WrapperStyles}\n ${LogoColumnStyles}\n ${NavigationColumnStyles}\n ${CtaStyles}\n ${OverwriteStickyStyles}\n ${NavigationItem.Styles}\n ${MenuButton.Styles}\n`;\n\nconst CreateSearchLink = ({ searchUrl }: TypeSearchLink) => {\n if (!searchUrl) return null;\n\n const searchLink = document.createElement('a');\n\n searchLink.href = searchUrl;\n searchLink.ariaLabel = 'Visit the search page';\n searchLink.innerHTML = iconSearch;\n searchLink.classList.add(ELEMENT_HEADER_MENU_SEARCH);\n\n return searchLink;\n};\n\nconst CreateCtaLink = ({ ctaUrl, ctaText }: TypeCtaLink) => {\n if (!ctaUrl || !ctaText) return null;\n\n const cta = document.createElement('a');\n\n cta.innerHTML = ctaText;\n cta.setAttribute('target', '_blank');\n cta.setAttribute('href', ctaUrl);\n cta.classList.add(ELEMENT_HEADER_MENU_CTA);\n\n return cta;\n};\n\nconst CreateNavigationColumn = ({\n utilityRow,\n navItems,\n searchUrl,\n ctaText,\n ctaUrl,\n}: TypeNavRow) => {\n if (!navItems) return;\n\n const navColumnContainer = document.createElement('div');\n const utilityRowContainer = document.createElement('div');\n const navRowContainer = document.createElement('div');\n const searchLink = CreateSearchLink({\n searchUrl,\n });\n const ctaLink = CreateCtaLink({ ctaText, ctaUrl });\n\n if (utilityRow) {\n utilityRowContainer.classList.add(ELEMENT_HEADER_UTILITY_ROW);\n utilityRowContainer.appendChild(utilityRow);\n navColumnContainer.appendChild(utilityRowContainer);\n }\n\n navRowContainer.classList.add(ELEMENT_HEADER_NAVIGATION_ROW);\n\n navItems.forEach((item) => {\n navRowContainer.appendChild(item);\n });\n if (searchLink) navRowContainer.appendChild(searchLink);\n if (ctaLink) navRowContainer.appendChild(ctaLink);\n\n navColumnContainer.classList.add(ELEMENT_HEADER_NAVIGATION_COLUMN);\n navColumnContainer.appendChild(navRowContainer);\n\n return navColumnContainer;\n};\n\nconst CreateLogoColumn = ({ logo, eventOpen }: TypeLogoRequirments) => {\n const container = document.createElement('div');\n\n if (eventOpen) {\n const menuButton = MenuButton.CreateElement({ eventOpen });\n menuButton.classList.add(ELEMENT_HEADER_MENU_BUTTON);\n container.appendChild(menuButton);\n }\n\n if (logo) {\n const childrenText = Array.from(logo.children).reduce((acc, child) => {\n if (child.nodeName === 'IMG') return acc;\n\n if (child.textContent) {\n return acc + child.textContent.length;\n }\n\n return acc;\n }, 0);\n logo.classList.add(ELEMENT_HEADER_LOGO);\n\n if (childrenText < 30) {\n logo.setAttribute('size', 'large');\n }\n\n container.appendChild(logo);\n }\n container.classList.add(ELEMENT_HEADER_LOGO_COLUMN);\n return container;\n};\n\nconst CreateNavigationHeader = (props: TypeHeaderRequirements) => {\n const { ctaUrl, ctaText } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const wrapper = document.createElement('div');\n const logoColumn = CreateLogoColumn(props);\n const navigationColumn = CreateNavigationColumn(props);\n const eventSticky = ({ isSticky }: { isSticky: boolean }) => {\n const utility = container.querySelector(\n `.${ELEMENT_HEADER_UTILITY_ROW}`,\n ) as HTMLDivElement;\n\n if (isSticky && isElementSticky) return;\n\n if (isSticky) {\n isElementSticky = true;\n container.setAttribute(ATTRIBUTE_STICKY, 'true');\n\n if (utility) {\n utility.style.display = 'none';\n }\n }\n if (!isSticky) {\n isElementSticky = false;\n container.removeAttribute(ATTRIBUTE_STICKY);\n\n if (utility) {\n utility.style.display = 'block';\n }\n }\n };\n let isElementSticky = false;\n\n wrapper.classList.add(ELEMENT_HEADER_WRAPPER);\n wrapper.appendChild(logoColumn);\n\n if (navigationColumn) wrapper.appendChild(navigationColumn);\n if (ctaUrl && ctaText) wrapper.setAttribute(ATTRIBUTE_CTA, 'true');\n\n container.appendChild(wrapper);\n container.classList.add(ELEMENT_HEADER_CONTAINTER);\n\n declaration.classList.add(ELEMENT_HEADER_DECLARATION);\n declaration.appendChild(container);\n\n return {\n element: declaration,\n events: {\n sticky: eventSticky,\n },\n };\n};\n\nexport default {\n CreateElement: CreateNavigationHeader,\n Styles: STYLES_NAVIGATION_HEADER,\n};\n"],"names":["token","jssToCSS","typography","NavigationItem","MenuButton","iconSearch"],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
1
|
+
import * as token from "@universityofmaryland/web-styles-library/token";
|
|
2
|
+
import * as typography from "@universityofmaryland/web-styles-library/typography";
|
|
3
|
+
import { jssToCSS } from "@universityofmaryland/web-utilities-library/styles";
|
|
4
|
+
import { search } from "@universityofmaryland/web-icons-library/search";
|
|
4
5
|
import MenuButton from "./elements/menu-button/index.mjs";
|
|
5
6
|
import NavigationItem from "./elements/item/index.mjs";
|
|
6
7
|
const ANIMATION_TIME = 500;
|
|
@@ -125,13 +126,13 @@ const LogoColumnStyles = `
|
|
|
125
126
|
height: 240px;
|
|
126
127
|
}
|
|
127
128
|
|
|
128
|
-
${
|
|
129
|
+
${jssToCSS({
|
|
129
130
|
styleObj: {
|
|
130
131
|
[`.${ELEMENT_HEADER_LOGO}`]: typography.sans.larger
|
|
131
132
|
}
|
|
132
133
|
})}
|
|
133
134
|
|
|
134
|
-
${
|
|
135
|
+
${jssToCSS({
|
|
135
136
|
styleObj: {
|
|
136
137
|
[`.${ELEMENT_HEADER_LOGO} *`]: typography.sans.larger
|
|
137
138
|
}
|
|
@@ -143,13 +144,13 @@ const LogoColumnStyles = `
|
|
|
143
144
|
width: 100%;
|
|
144
145
|
}
|
|
145
146
|
|
|
146
|
-
${
|
|
147
|
+
${jssToCSS({
|
|
147
148
|
styleObj: {
|
|
148
149
|
[`.${ELEMENT_HEADER_LOGO}[size="large"]`]: typography.sans.extraLarge
|
|
149
150
|
}
|
|
150
151
|
})}
|
|
151
152
|
|
|
152
|
-
${
|
|
153
|
+
${jssToCSS({
|
|
153
154
|
styleObj: {
|
|
154
155
|
[`.${ELEMENT_HEADER_LOGO}[size="large"] *`]: typography.sans.extraLarge
|
|
155
156
|
}
|
|
@@ -203,7 +204,7 @@ const CreateSearchLink = ({ searchUrl }) => {
|
|
|
203
204
|
const searchLink = document.createElement("a");
|
|
204
205
|
searchLink.href = searchUrl;
|
|
205
206
|
searchLink.ariaLabel = "Visit the search page";
|
|
206
|
-
searchLink.innerHTML =
|
|
207
|
+
searchLink.innerHTML = search;
|
|
207
208
|
searchLink.classList.add(ELEMENT_HEADER_MENU_SEARCH);
|
|
208
209
|
return searchLink;
|
|
209
210
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.mjs","sources":["../../../source/composite/navigation/header.ts"],"sourcesContent":["import { token, typography } from '@universityofmaryland/web-styles-library';\nimport * as Utility from 'utilities';\nimport MenuButton from './elements/menu-button';\nimport NavigationItem from './elements/item';\n\ntype TypeLogoRequirments = {\n logo?: HTMLElement | null;\n eventOpen?: () => void;\n};\n\ntype TypeSearchLink = {\n searchUrl: string | null;\n};\n\ntype TypeCtaLink = {\n ctaUrl: string | null;\n ctaText: string | null;\n};\n\ntype TypeNavRow = TypeSearchLink &\n TypeCtaLink & {\n utilityRow?: HTMLElement | null;\n navItems?: HTMLElement[];\n };\n\ntype TypeHeaderRequirements = TypeLogoRequirments & TypeNavRow;\n\nconst ANIMATION_TIME = 500;\n\nconst ATTRIBUTE_STICKY = 'data-sticky';\nconst ATTRIBUTE_CTA = 'data-cta';\n\nconst IS_STICKY = `[${ATTRIBUTE_STICKY}=\"true\"]`;\nconst IS_CTA = `[${ATTRIBUTE_CTA}=\"true\"]`;\n\nconst ELEMENT_HEADER_DECLARATION = 'element-header-declaration';\nconst ELEMENT_HEADER_CONTAINTER = 'element-header-container';\nconst ELEMENT_HEADER_WRAPPER = 'element-header-wrapper';\nconst ELEMENT_HEADER_LOGO_COLUMN = 'element-header-logo-column';\nconst ELEMENT_HEADER_NAVIGATION_COLUMN = 'element-header-navigation-column';\nconst ELEMENT_HEADER_LOGO = 'element-header-logo';\nconst ELEMENT_HEADER_MENU_BUTTON = 'element-header-menu-button';\nconst ELEMENT_HEADER_MENU_CTA = 'element-header-menu-cta';\nconst ELEMENT_HEADER_MENU_SEARCH = 'element-header-menu-search';\nconst ELEMENT_HEADER_NAVIGATION_ROW = 'element-header-navigation-row';\nconst ELEMENT_HEADER_UTILITY_ROW = 'element-header-utility-row';\n\nconst OVERWRITE_STICKY_CONTAINER = `.${ELEMENT_HEADER_CONTAINTER}${IS_STICKY}`;\nconst OVERWRITE_STICKY_LOGO = `${OVERWRITE_STICKY_CONTAINER} .${ELEMENT_HEADER_LOGO}`;\nconst OVERWRITE_CTA_WRAPPER = `.${ELEMENT_HEADER_WRAPPER}${IS_CTA}`;\nconst OVERWRITE_CTA_WRAPPER_NAV_ROW = `${OVERWRITE_CTA_WRAPPER} .${ELEMENT_HEADER_NAVIGATION_ROW}`;\nconst OVERWRITE_CTA_WRAPPER_CTA = `${OVERWRITE_CTA_WRAPPER} .${ELEMENT_HEADER_MENU_CTA}`;\n\nconst OverwriteStickyStyles = `\n ${OVERWRITE_STICKY_CONTAINER} {\n padding: ${token.spacing.xs} 0;\n }\n\n .${ELEMENT_HEADER_WRAPPER} {\n align-items: center;\n }\n\n ${OVERWRITE_STICKY_LOGO} img {\n max-height: 30px;\n }\n`;\n\nconst CtaStyles = `\n .${ELEMENT_HEADER_MENU_CTA} {\n color: ${token.color.white};\n font-weight: ${token.font.weight.bold};\n font-size: ${token.font.size.sm};\n padding: ${token.spacing.xs};\n background-color: ${token.color.red};\n transition: background .5s;\n white-space: nowrap;\n }\n\n .${ELEMENT_HEADER_MENU_CTA}:hover,\n .${ELEMENT_HEADER_MENU_CTA}:focus {\n background-color: ${token.color.redDark};\n }\n\n ${OVERWRITE_CTA_WRAPPER_CTA} {\n margin-top: -${token.spacing.min};\n }\n`;\n\nconst NavigationColumnStyles = `\n @media (max-width: 1240px) {\n .${ELEMENT_HEADER_NAVIGATION_COLUMN} {\n display: none;\n }\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} {\n display: grid;\n grid-auto-flow: column;\n }\n\n ${OVERWRITE_CTA_WRAPPER_NAV_ROW} {\n padding-top: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} > * {\n display: block;\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} > *:not(:first-child) {\n margin-left: ${token.spacing.md};\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} svg {\n width: 24px;\n height: 24px;\n fill: ${token.color.black};\n }\n\n .${ELEMENT_HEADER_UTILITY_ROW} {\n display: flex;\n justify-content: flex-end;\n margin-bottom: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_UTILITY_ROW} ::slotted(*) {\n display: flex;\n justify-content: flex-end;\n gap: ${token.spacing.md};\n }\n`;\n\nconst LogoColumnStyles = `\n .${ELEMENT_HEADER_LOGO_COLUMN} {\n align-items: center;\n display: flex;\n justify-content: flex-start;\n position: relative;\n width: 100%;\n max-width: 400px;\n }\n\n .${ELEMENT_HEADER_MENU_BUTTON} {\n border-right: 1px solid ${token.color.gray.light};\n padding-right: ${token.spacing.min};\n margin-right: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_LOGO} {\n display: grid;\n justify-content: flex-start;\n max-width: 350px;\n }\n\n .${ELEMENT_HEADER_LOGO}:has(img[src*=\".svg\"]) img {\n height: 240px;\n }\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}`]: typography.sans.larger,\n },\n })}\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO} *`]: typography.sans.larger,\n },\n })}\n\n .${ELEMENT_HEADER_LOGO},\n .${ELEMENT_HEADER_LOGO} * {\n line-height: 1.05em;\n width: 100%;\n }\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}[size=\"large\"]`]: typography.sans.extraLarge,\n },\n })}\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}[size=\"large\"] *`]: typography.sans.extraLarge,\n },\n })}\n\n .${ELEMENT_HEADER_LOGO},\n .${ELEMENT_HEADER_LOGO} * {\n font-weight: 700;\n }\n\n .${ELEMENT_HEADER_LOGO} img {\n width: 100%;\n max-height: 48px;\n max-width: 190px;\n }\n\n @media (min-width: ${token.media.breakpoints.tablet.min}) {\n .${ELEMENT_HEADER_LOGO} img {\n max-width: 240px;\n }\n }\n`;\n\nconst WrapperStyles = `\n .${ELEMENT_HEADER_WRAPPER} {\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n gap: ${token.spacing.lg};\n z-index: 999;\n }\n`;\n\nconst STYLES_NAVIGATION_HEADER = `\n .${ELEMENT_HEADER_CONTAINTER} {\n background-color: ${token.color.white};\n display: block;\n padding: ${token.spacing.md} 0;\n position: relative;\n transition: padding ${ANIMATION_TIME}ms;\n }\n\n ${WrapperStyles}\n ${LogoColumnStyles}\n ${NavigationColumnStyles}\n ${CtaStyles}\n ${OverwriteStickyStyles}\n ${NavigationItem.Styles}\n ${MenuButton.Styles}\n`;\n\nconst CreateSearchLink = ({ searchUrl }: TypeSearchLink) => {\n if (!searchUrl) return null;\n\n const searchLink = document.createElement('a');\n\n searchLink.href = searchUrl;\n searchLink.ariaLabel = 'Visit the search page';\n searchLink.innerHTML = Utility.asset.icon.MAGNIFY_GLASS;\n searchLink.classList.add(ELEMENT_HEADER_MENU_SEARCH);\n\n return searchLink;\n};\n\nconst CreateCtaLink = ({ ctaUrl, ctaText }: TypeCtaLink) => {\n if (!ctaUrl || !ctaText) return null;\n\n const cta = document.createElement('a');\n\n cta.innerHTML = ctaText;\n cta.setAttribute('target', '_blank');\n cta.setAttribute('href', ctaUrl);\n cta.classList.add(ELEMENT_HEADER_MENU_CTA);\n\n return cta;\n};\n\nconst CreateNavigationColumn = ({\n utilityRow,\n navItems,\n searchUrl,\n ctaText,\n ctaUrl,\n}: TypeNavRow) => {\n if (!navItems) return;\n\n const navColumnContainer = document.createElement('div');\n const utilityRowContainer = document.createElement('div');\n const navRowContainer = document.createElement('div');\n const searchLink = CreateSearchLink({\n searchUrl,\n });\n const ctaLink = CreateCtaLink({ ctaText, ctaUrl });\n\n if (utilityRow) {\n utilityRowContainer.classList.add(ELEMENT_HEADER_UTILITY_ROW);\n utilityRowContainer.appendChild(utilityRow);\n navColumnContainer.appendChild(utilityRowContainer);\n }\n\n navRowContainer.classList.add(ELEMENT_HEADER_NAVIGATION_ROW);\n\n navItems.forEach((item) => {\n navRowContainer.appendChild(item);\n });\n if (searchLink) navRowContainer.appendChild(searchLink);\n if (ctaLink) navRowContainer.appendChild(ctaLink);\n\n navColumnContainer.classList.add(ELEMENT_HEADER_NAVIGATION_COLUMN);\n navColumnContainer.appendChild(navRowContainer);\n\n return navColumnContainer;\n};\n\nconst CreateLogoColumn = ({ logo, eventOpen }: TypeLogoRequirments) => {\n const container = document.createElement('div');\n\n if (eventOpen) {\n const menuButton = MenuButton.CreateElement({ eventOpen });\n menuButton.classList.add(ELEMENT_HEADER_MENU_BUTTON);\n container.appendChild(menuButton);\n }\n\n if (logo) {\n const childrenText = Array.from(logo.children).reduce((acc, child) => {\n if (child.nodeName === 'IMG') return acc;\n\n if (child.textContent) {\n return acc + child.textContent.length;\n }\n\n return acc;\n }, 0);\n logo.classList.add(ELEMENT_HEADER_LOGO);\n\n if (childrenText < 30) {\n logo.setAttribute('size', 'large');\n }\n\n container.appendChild(logo);\n }\n container.classList.add(ELEMENT_HEADER_LOGO_COLUMN);\n return container;\n};\n\nconst CreateNavigationHeader = (props: TypeHeaderRequirements) => {\n const { ctaUrl, ctaText } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const wrapper = document.createElement('div');\n const logoColumn = CreateLogoColumn(props);\n const navigationColumn = CreateNavigationColumn(props);\n const eventSticky = ({ isSticky }: { isSticky: boolean }) => {\n const utility = container.querySelector(\n `.${ELEMENT_HEADER_UTILITY_ROW}`,\n ) as HTMLDivElement;\n\n if (isSticky && isElementSticky) return;\n\n if (isSticky) {\n isElementSticky = true;\n container.setAttribute(ATTRIBUTE_STICKY, 'true');\n\n if (utility) {\n utility.style.display = 'none';\n }\n }\n if (!isSticky) {\n isElementSticky = false;\n container.removeAttribute(ATTRIBUTE_STICKY);\n\n if (utility) {\n utility.style.display = 'block';\n }\n }\n };\n let isElementSticky = false;\n\n wrapper.classList.add(ELEMENT_HEADER_WRAPPER);\n wrapper.appendChild(logoColumn);\n\n if (navigationColumn) wrapper.appendChild(navigationColumn);\n if (ctaUrl && ctaText) wrapper.setAttribute(ATTRIBUTE_CTA, 'true');\n\n container.appendChild(wrapper);\n container.classList.add(ELEMENT_HEADER_CONTAINTER);\n\n declaration.classList.add(ELEMENT_HEADER_DECLARATION);\n declaration.appendChild(container);\n\n return {\n element: declaration,\n events: {\n sticky: eventSticky,\n },\n };\n};\n\nexport default {\n CreateElement: CreateNavigationHeader,\n Styles: STYLES_NAVIGATION_HEADER,\n};\n"],"names":["Utility.theme.convertJSSObjectToStyles","Utility.asset.icon.MAGNIFY_GLASS"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"header.mjs","sources":["../../../source/composite/navigation/header.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-styles-library/token';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport { jssToCSS } from '@universityofmaryland/web-utilities-library/styles';\nimport { search as iconSearch } from '@universityofmaryland/web-icons-library/search';\nimport MenuButton from './elements/menu-button';\nimport NavigationItem from './elements/item';\n\ntype TypeLogoRequirments = {\n logo?: HTMLElement | null;\n eventOpen?: () => void;\n};\n\ntype TypeSearchLink = {\n searchUrl: string | null;\n};\n\ntype TypeCtaLink = {\n ctaUrl: string | null;\n ctaText: string | null;\n};\n\ntype TypeNavRow = TypeSearchLink &\n TypeCtaLink & {\n utilityRow?: HTMLElement | null;\n navItems?: HTMLElement[];\n };\n\ntype TypeHeaderRequirements = TypeLogoRequirments & TypeNavRow;\n\nconst ANIMATION_TIME = 500;\n\nconst ATTRIBUTE_STICKY = 'data-sticky';\nconst ATTRIBUTE_CTA = 'data-cta';\n\nconst IS_STICKY = `[${ATTRIBUTE_STICKY}=\"true\"]`;\nconst IS_CTA = `[${ATTRIBUTE_CTA}=\"true\"]`;\n\nconst ELEMENT_HEADER_DECLARATION = 'element-header-declaration';\nconst ELEMENT_HEADER_CONTAINTER = 'element-header-container';\nconst ELEMENT_HEADER_WRAPPER = 'element-header-wrapper';\nconst ELEMENT_HEADER_LOGO_COLUMN = 'element-header-logo-column';\nconst ELEMENT_HEADER_NAVIGATION_COLUMN = 'element-header-navigation-column';\nconst ELEMENT_HEADER_LOGO = 'element-header-logo';\nconst ELEMENT_HEADER_MENU_BUTTON = 'element-header-menu-button';\nconst ELEMENT_HEADER_MENU_CTA = 'element-header-menu-cta';\nconst ELEMENT_HEADER_MENU_SEARCH = 'element-header-menu-search';\nconst ELEMENT_HEADER_NAVIGATION_ROW = 'element-header-navigation-row';\nconst ELEMENT_HEADER_UTILITY_ROW = 'element-header-utility-row';\n\nconst OVERWRITE_STICKY_CONTAINER = `.${ELEMENT_HEADER_CONTAINTER}${IS_STICKY}`;\nconst OVERWRITE_STICKY_LOGO = `${OVERWRITE_STICKY_CONTAINER} .${ELEMENT_HEADER_LOGO}`;\nconst OVERWRITE_CTA_WRAPPER = `.${ELEMENT_HEADER_WRAPPER}${IS_CTA}`;\nconst OVERWRITE_CTA_WRAPPER_NAV_ROW = `${OVERWRITE_CTA_WRAPPER} .${ELEMENT_HEADER_NAVIGATION_ROW}`;\nconst OVERWRITE_CTA_WRAPPER_CTA = `${OVERWRITE_CTA_WRAPPER} .${ELEMENT_HEADER_MENU_CTA}`;\n\nconst OverwriteStickyStyles = `\n ${OVERWRITE_STICKY_CONTAINER} {\n padding: ${token.spacing.xs} 0;\n }\n\n .${ELEMENT_HEADER_WRAPPER} {\n align-items: center;\n }\n\n ${OVERWRITE_STICKY_LOGO} img {\n max-height: 30px;\n }\n`;\n\nconst CtaStyles = `\n .${ELEMENT_HEADER_MENU_CTA} {\n color: ${token.color.white};\n font-weight: ${token.font.weight.bold};\n font-size: ${token.font.size.sm};\n padding: ${token.spacing.xs};\n background-color: ${token.color.red};\n transition: background .5s;\n white-space: nowrap;\n }\n\n .${ELEMENT_HEADER_MENU_CTA}:hover,\n .${ELEMENT_HEADER_MENU_CTA}:focus {\n background-color: ${token.color.redDark};\n }\n\n ${OVERWRITE_CTA_WRAPPER_CTA} {\n margin-top: -${token.spacing.min};\n }\n`;\n\nconst NavigationColumnStyles = `\n @media (max-width: 1240px) {\n .${ELEMENT_HEADER_NAVIGATION_COLUMN} {\n display: none;\n }\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} {\n display: grid;\n grid-auto-flow: column;\n }\n\n ${OVERWRITE_CTA_WRAPPER_NAV_ROW} {\n padding-top: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} > * {\n display: block;\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} > *:not(:first-child) {\n margin-left: ${token.spacing.md};\n }\n\n .${ELEMENT_HEADER_NAVIGATION_ROW} svg {\n width: 24px;\n height: 24px;\n fill: ${token.color.black};\n }\n\n .${ELEMENT_HEADER_UTILITY_ROW} {\n display: flex;\n justify-content: flex-end;\n margin-bottom: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_UTILITY_ROW} ::slotted(*) {\n display: flex;\n justify-content: flex-end;\n gap: ${token.spacing.md};\n }\n`;\n\nconst LogoColumnStyles = `\n .${ELEMENT_HEADER_LOGO_COLUMN} {\n align-items: center;\n display: flex;\n justify-content: flex-start;\n position: relative;\n width: 100%;\n max-width: 400px;\n }\n\n .${ELEMENT_HEADER_MENU_BUTTON} {\n border-right: 1px solid ${token.color.gray.light};\n padding-right: ${token.spacing.min};\n margin-right: ${token.spacing.sm};\n }\n\n .${ELEMENT_HEADER_LOGO} {\n display: grid;\n justify-content: flex-start;\n max-width: 350px;\n }\n\n .${ELEMENT_HEADER_LOGO}:has(img[src*=\".svg\"]) img {\n height: 240px;\n }\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}`]: typography.sans.larger,\n },\n })}\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO} *`]: typography.sans.larger,\n },\n })}\n\n .${ELEMENT_HEADER_LOGO},\n .${ELEMENT_HEADER_LOGO} * {\n line-height: 1.05em;\n width: 100%;\n }\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}[size=\"large\"]`]: typography.sans.extraLarge,\n },\n })}\n\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_HEADER_LOGO}[size=\"large\"] *`]: typography.sans.extraLarge,\n },\n })}\n\n .${ELEMENT_HEADER_LOGO},\n .${ELEMENT_HEADER_LOGO} * {\n font-weight: 700;\n }\n\n .${ELEMENT_HEADER_LOGO} img {\n width: 100%;\n max-height: 48px;\n max-width: 190px;\n }\n\n @media (min-width: ${token.media.breakpoints.tablet.min}) {\n .${ELEMENT_HEADER_LOGO} img {\n max-width: 240px;\n }\n }\n`;\n\nconst WrapperStyles = `\n .${ELEMENT_HEADER_WRAPPER} {\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n gap: ${token.spacing.lg};\n z-index: 999;\n }\n`;\n\nconst STYLES_NAVIGATION_HEADER = `\n .${ELEMENT_HEADER_CONTAINTER} {\n background-color: ${token.color.white};\n display: block;\n padding: ${token.spacing.md} 0;\n position: relative;\n transition: padding ${ANIMATION_TIME}ms;\n }\n\n ${WrapperStyles}\n ${LogoColumnStyles}\n ${NavigationColumnStyles}\n ${CtaStyles}\n ${OverwriteStickyStyles}\n ${NavigationItem.Styles}\n ${MenuButton.Styles}\n`;\n\nconst CreateSearchLink = ({ searchUrl }: TypeSearchLink) => {\n if (!searchUrl) return null;\n\n const searchLink = document.createElement('a');\n\n searchLink.href = searchUrl;\n searchLink.ariaLabel = 'Visit the search page';\n searchLink.innerHTML = iconSearch;\n searchLink.classList.add(ELEMENT_HEADER_MENU_SEARCH);\n\n return searchLink;\n};\n\nconst CreateCtaLink = ({ ctaUrl, ctaText }: TypeCtaLink) => {\n if (!ctaUrl || !ctaText) return null;\n\n const cta = document.createElement('a');\n\n cta.innerHTML = ctaText;\n cta.setAttribute('target', '_blank');\n cta.setAttribute('href', ctaUrl);\n cta.classList.add(ELEMENT_HEADER_MENU_CTA);\n\n return cta;\n};\n\nconst CreateNavigationColumn = ({\n utilityRow,\n navItems,\n searchUrl,\n ctaText,\n ctaUrl,\n}: TypeNavRow) => {\n if (!navItems) return;\n\n const navColumnContainer = document.createElement('div');\n const utilityRowContainer = document.createElement('div');\n const navRowContainer = document.createElement('div');\n const searchLink = CreateSearchLink({\n searchUrl,\n });\n const ctaLink = CreateCtaLink({ ctaText, ctaUrl });\n\n if (utilityRow) {\n utilityRowContainer.classList.add(ELEMENT_HEADER_UTILITY_ROW);\n utilityRowContainer.appendChild(utilityRow);\n navColumnContainer.appendChild(utilityRowContainer);\n }\n\n navRowContainer.classList.add(ELEMENT_HEADER_NAVIGATION_ROW);\n\n navItems.forEach((item) => {\n navRowContainer.appendChild(item);\n });\n if (searchLink) navRowContainer.appendChild(searchLink);\n if (ctaLink) navRowContainer.appendChild(ctaLink);\n\n navColumnContainer.classList.add(ELEMENT_HEADER_NAVIGATION_COLUMN);\n navColumnContainer.appendChild(navRowContainer);\n\n return navColumnContainer;\n};\n\nconst CreateLogoColumn = ({ logo, eventOpen }: TypeLogoRequirments) => {\n const container = document.createElement('div');\n\n if (eventOpen) {\n const menuButton = MenuButton.CreateElement({ eventOpen });\n menuButton.classList.add(ELEMENT_HEADER_MENU_BUTTON);\n container.appendChild(menuButton);\n }\n\n if (logo) {\n const childrenText = Array.from(logo.children).reduce((acc, child) => {\n if (child.nodeName === 'IMG') return acc;\n\n if (child.textContent) {\n return acc + child.textContent.length;\n }\n\n return acc;\n }, 0);\n logo.classList.add(ELEMENT_HEADER_LOGO);\n\n if (childrenText < 30) {\n logo.setAttribute('size', 'large');\n }\n\n container.appendChild(logo);\n }\n container.classList.add(ELEMENT_HEADER_LOGO_COLUMN);\n return container;\n};\n\nconst CreateNavigationHeader = (props: TypeHeaderRequirements) => {\n const { ctaUrl, ctaText } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const wrapper = document.createElement('div');\n const logoColumn = CreateLogoColumn(props);\n const navigationColumn = CreateNavigationColumn(props);\n const eventSticky = ({ isSticky }: { isSticky: boolean }) => {\n const utility = container.querySelector(\n `.${ELEMENT_HEADER_UTILITY_ROW}`,\n ) as HTMLDivElement;\n\n if (isSticky && isElementSticky) return;\n\n if (isSticky) {\n isElementSticky = true;\n container.setAttribute(ATTRIBUTE_STICKY, 'true');\n\n if (utility) {\n utility.style.display = 'none';\n }\n }\n if (!isSticky) {\n isElementSticky = false;\n container.removeAttribute(ATTRIBUTE_STICKY);\n\n if (utility) {\n utility.style.display = 'block';\n }\n }\n };\n let isElementSticky = false;\n\n wrapper.classList.add(ELEMENT_HEADER_WRAPPER);\n wrapper.appendChild(logoColumn);\n\n if (navigationColumn) wrapper.appendChild(navigationColumn);\n if (ctaUrl && ctaText) wrapper.setAttribute(ATTRIBUTE_CTA, 'true');\n\n container.appendChild(wrapper);\n container.classList.add(ELEMENT_HEADER_CONTAINTER);\n\n declaration.classList.add(ELEMENT_HEADER_DECLARATION);\n declaration.appendChild(container);\n\n return {\n element: declaration,\n events: {\n sticky: eventSticky,\n },\n };\n};\n\nexport default {\n CreateElement: CreateNavigationHeader,\n Styles: STYLES_NAVIGATION_HEADER,\n};\n"],"names":["iconSearch"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../../source/composite/navigation/utility/alert.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../../source/composite/navigation/utility/alert.ts"],"names":[],"mappings":"AA4BA,KAAK,UAAU,GAAG;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AA2BF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsClB,CAAC;AAgKX,eAAO,MAAM,gBAAgB,QAY5B,CAAC;AAuMF,eAAO,MAAM,cAAc,GAAU,cAAc,UAAU;;SAoC5D,CAAC"}
|
|
@@ -1,21 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const Styles = require("@universityofmaryland/web-styles-library");
|
|
4
|
+
const network = require("@universityofmaryland/web-utilities-library/network");
|
|
5
|
+
const styles = require("@universityofmaryland/web-utilities-library/styles");
|
|
6
|
+
const controls = require("@universityofmaryland/web-icons-library/controls");
|
|
4
7
|
const text = require("../../../atomic/actions/text.js");
|
|
8
|
+
require("@universityofmaryland/web-styles-library/token");
|
|
9
|
+
require("@universityofmaryland/web-icons-library/files");
|
|
10
|
+
require("@universityofmaryland/web-icons-library/arrows");
|
|
5
11
|
require("../../../model/modifiers/index.js");
|
|
6
12
|
require("../../../model/elements/headline.js");
|
|
7
|
-
const icons = require("../../../utilities/assets/icons.js");
|
|
8
|
-
const index$1 = require("../../../utilities/network/index.js");
|
|
9
|
-
const index = require("../../../utilities/theme/index.js");
|
|
10
13
|
require("../../../atomic/animations/actions/indicator.js");
|
|
11
14
|
require("../../../atomic/animations/brand/chevron-scroll.js");
|
|
12
15
|
require("../../../atomic/animations/brand/card-stack.js");
|
|
16
|
+
require("@universityofmaryland/web-utilities-library/performance");
|
|
17
|
+
require("@universityofmaryland/web-utilities-library/accessibility");
|
|
18
|
+
require("@universityofmaryland/web-icons-library/location");
|
|
19
|
+
require("@universityofmaryland/web-icons-library/calendar");
|
|
13
20
|
require("../../../atomic/layout/block/stacked.js");
|
|
14
21
|
require("../../../atomic/layout/overlay/modal.js");
|
|
15
22
|
require("../../../atomic/layout/person/columns.js");
|
|
23
|
+
require("@universityofmaryland/web-icons-library/communication");
|
|
24
|
+
require("@universityofmaryland/web-icons-library/social");
|
|
16
25
|
require("../../../atomic/text-lockup/date.js");
|
|
17
26
|
require("../../../atomic/text-lockup/small.js");
|
|
18
|
-
|
|
27
|
+
require("@universityofmaryland/web-styles-library/typography");
|
|
19
28
|
const QUERY = `
|
|
20
29
|
query CampusAlertsQuery {
|
|
21
30
|
entries: entries(
|
|
@@ -142,7 +151,7 @@ const CloseButtonStyles = `
|
|
|
142
151
|
}
|
|
143
152
|
`;
|
|
144
153
|
const TextStyles = `
|
|
145
|
-
${
|
|
154
|
+
${styles.jssToCSS({
|
|
146
155
|
styleObj: {
|
|
147
156
|
[`${ALERT_TITLE}`]: Styles.typography.sans.large
|
|
148
157
|
}
|
|
@@ -156,7 +165,7 @@ const TextStyles = `
|
|
|
156
165
|
margin-top: ${Styles.token.spacing.sm};
|
|
157
166
|
}
|
|
158
167
|
|
|
159
|
-
${
|
|
168
|
+
${styles.jssToCSS({
|
|
160
169
|
styleObj: {
|
|
161
170
|
[`${ALERT_TEXT}`]: Styles.element.text.rich.advanced
|
|
162
171
|
}
|
|
@@ -191,7 +200,7 @@ const WrapperStyles = `
|
|
|
191
200
|
}
|
|
192
201
|
`;
|
|
193
202
|
const LockStyles = `
|
|
194
|
-
${
|
|
203
|
+
${styles.jssToCSS({
|
|
195
204
|
styleObj: {
|
|
196
205
|
[`${LOCK}`]: Styles.layout.space.horizontal.full
|
|
197
206
|
}
|
|
@@ -290,7 +299,7 @@ const createCloseButton = (container) => {
|
|
|
290
299
|
const button = createElement("button", ELEMENTS2.CLOSE_BUTTON, {
|
|
291
300
|
"aria-label": "remove alert"
|
|
292
301
|
});
|
|
293
|
-
button.innerHTML =
|
|
302
|
+
button.innerHTML = controls.close_large;
|
|
294
303
|
button.addEventListener("click", () => {
|
|
295
304
|
const cachedAlert = getStoredValue(
|
|
296
305
|
ALERT_CONSTANTS.STORAGE_KEYS.ALERT
|
|
@@ -365,7 +374,7 @@ const fetchAlerts = async ({
|
|
|
365
374
|
}) => {
|
|
366
375
|
try {
|
|
367
376
|
const url = alertUrl || ALERT_CONSTANTS.URLS.DEFAULT;
|
|
368
|
-
return await
|
|
377
|
+
return await network.fetchGraphQL({
|
|
369
378
|
query: QUERY,
|
|
370
379
|
url,
|
|
371
380
|
token: "VIDnMeNYHTrLvWPtPpK5MNpjuv5WmmhU"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert.js","sources":["../../../../source/composite/navigation/utility/alert.ts"],"sourcesContent":["import {\n element,\n layout,\n token,\n typography,\n} from '@universityofmaryland/web-styles-library';\nimport { actions } from 'atomic';\nimport * as Utility from 'utilities';\n\ntype AlertData = {\n id: string;\n type: string;\n title: string;\n headline?: string;\n text: string;\n ctaUrl: string;\n ctaText?: string;\n hidden?: boolean;\n};\n\ntype AlertResponse = {\n data: {\n entries: AlertData[];\n };\n};\n\ntype AlertProps = {\n alertUrl?: string | null;\n};\n\nexport type TypeAlertProps = {\n alertUrl?: string | null;\n};\n\ntype ElementAttributes = Record<string, string>;\n\ntype CacheCheckResult = {\n shouldCheck: boolean;\n cachedData: AlertData | null;\n};\n\nconst { FetchGraphQL } = Utility.network;\n\nconst QUERY = `\n query CampusAlertsQuery {\n entries: entries(\n limit: 1\n type: \"mainElementsCampusAlert\"\n ) {\n id: uid\n type: optionsType\n headline\n title\n text\n ctaUrl: cta\n ctaText\n }\n }\n`;\n\nconst ELEMENT_NAME = 'umd-element-nav-alert';\nexport const ALERT_CONSTANTS = {\n URLS: {\n DEFAULT: 'https://umd.edu/api/v2',\n },\n STORAGE_KEYS: {\n ALERT_TIME: 'umd-utility-alert-time',\n ALERT: 'umd-utility-alert',\n ALERT_ID: 'umd-utility-alert-id',\n },\n ELEMENTS: {\n ALERT_ID: 'umd-global-alert',\n DECLARATION: 'umd-element-nav-alert-declaration',\n CONTAINER: 'umd-element-nav-alert-container',\n LOCK: 'umd-element-nav-alert-lock',\n WRAPPER: 'umd-element-nav-alert-wrapper',\n TITLE: 'umd-element-nav-alert-title',\n TEXT: 'umd-element-nav-alert-text',\n CTA: 'umd-element-nav-alert-cta',\n CLOSE_BUTTON: 'umd-element-nav-alert-close',\n },\n ATTRIBUTES: {\n TYPE: 'type',\n },\n TYPES: {\n GENERAL: 'general',\n CLOSED: 'closed',\n OPEN: 'open',\n },\n ANIMATION: {\n SPEED: 800,\n },\n BREAKPOINTS: {\n MEDIUM: 768,\n LARGE: 1024,\n },\n CACHE: {\n DURATION: 60 * 1000, // One minute in milliseconds\n },\n} as const;\n\nconst { ATTRIBUTES, ANIMATION, BREAKPOINTS, ELEMENTS, TYPES } = ALERT_CONSTANTS;\nconst IS_TYPE_GENERAL = `[${ATTRIBUTES.TYPE}=${TYPES.GENERAL}]`;\nconst IS_TYPE_CLOSED = `[${ATTRIBUTES.TYPE}=${TYPES.CLOSED}]`;\n\nconst DECLARATION = `.${ELEMENTS.DECLARATION}`;\nconst CONTAINER = `.${ELEMENTS.CONTAINER}`;\nconst WRAPPER = `.${ELEMENTS.WRAPPER}`;\nconst LOCK = `.${ELEMENTS.LOCK}`;\nconst ALERT_TITLE = `.${ELEMENTS.TITLE}`;\nconst ALERT_TEXT = `.${ELEMENTS.TEXT}`;\nconst CLOSE_BUTTON = `.${ELEMENTS.CLOSE_BUTTON}`;\nconst CTA = `.${ELEMENTS.CTA}`;\n\nconst OVERWRITE_CONTAINER_TYPE_GENERAL = `${CONTAINER}${IS_TYPE_GENERAL}`;\nconst OVERWRITE_CONTAINER_TYPE_CLOSED = `${CONTAINER}${IS_TYPE_CLOSED}`;\n\n// prettier-ignore\nconst OverwriteTypeGeneral = `\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} {\n background-color: ${token.color.black};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} * {\n color: ${token.color.white};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} a:hover,\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} a:focus {\n color: ${token.color.white} !important;\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} ${ALERT_TITLE} {\n color: ${token.color.gold};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} ${CLOSE_BUTTON} > svg {\n fill: ${token.color.white};\n }\n`\n\n// prettier-ignore\nconst OverwriteTypeClosed = `\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} {\n background-color: ${token.color.gold};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} * {\n color: ${token.color.black};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} .${CLOSE_BUTTON} > svg {\n fill: ${token.color.black};\n }\n`\n\n// prettier-ignore\nconst CloseButtonStyles = `\n ${CLOSE_BUTTON} {\n position: absolute;\n top: 30px;\n right: 10px;\n }\n \n @container (max-width: ${BREAKPOINTS.MEDIUM - 1}px) {\n ${CLOSE_BUTTON} {\n top: 25px;\n right: 5px;\n }\n }\n\n ${CLOSE_BUTTON} > svg {\n fill: ${token.color.black};\n width: 24px;\n height: 24px;\n }\n`\n\n// prettier-ignore\nconst TextStyles = `\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`${ALERT_TITLE}`]: typography.sans.large,\n },\n })}\n\n ${ALERT_TITLE} {\n text-transform: uppercase;\n }\n\n ${ALERT_TITLE} + * {\n margin-top: ${token.spacing.sm};\n }\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`${ALERT_TEXT}`]: element.text.rich.advanced,\n },\n })}\n\n ${ALERT_TEXT},\n ${ALERT_TEXT} * {\n font-size: 16px;;\n }\n\n ${ALERT_TEXT} + * {\n margin-top: ${token.spacing.lg};\n }\n\n ${CTA} {\n text-decoration: none;\n }\n`\n\n// prettier-ignore\nconst WrapperStyles = `\n ${WRAPPER} {\n position: relative;\n padding-top: ${token.spacing.md};\n padding-bottom: ${token.spacing.md};\n padding-right: ${token.spacing.lg};\n }\n\n @container (min-width: ${BREAKPOINTS.MEDIUM}px) {\n ${WRAPPER} {\n padding-top: ${token.spacing.lg};\n padding-bottom: ${token.spacing.lg};\n }\n }\n`\n\n// prettier-ignore\nconst LockStyles = `\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`${LOCK}`]: layout.space.horizontal.full,\n },\n })}\n`\n\n// prettier-ignore\nconst ContainerStyles = `\n ${CONTAINER} {\n container: ${ELEMENT_NAME} / inline-size;\n background-color: ${token.color.gray.lighter};\n border-left: 4px solid ${token.color.red};\n transition: height ${ANIMATION.SPEED}ms;\n overflow: hidden;\n position: relative;\n }\n\n @container (min-width: ${BREAKPOINTS.LARGE}px) {\n ${CONTAINER} {\n border-left: 8px solid ${token.color.red};\n }\n }\n`\n\n// prettier-ignore\nexport const STYLES_NAV_ALERT = `\n ${DECLARATION} {\n container: ${ELEMENT_NAME} / inline-size;\n }\n\n ${ContainerStyles}\n ${LockStyles}\n ${WrapperStyles}\n ${TextStyles}\n ${CloseButtonStyles}\n ${OverwriteTypeGeneral}\n ${OverwriteTypeClosed}\n`;\n\n// storage.ts\nconst logStorageError = (operation: string, error: Error): void => {\n console.error(`UMD Component - Alert Storage: ${operation} failed:`, error);\n};\n\nconst getStoredValue = <T>(key: string): T | null => {\n try {\n const value = window.localStorage.getItem(key);\n return value ? JSON.parse(value) : null;\n } catch (error) {\n logStorageError(`Reading ${key}`, error as Error);\n return null;\n }\n};\n\nconst setStoredValue = (key: string, value: unknown): void => {\n try {\n window.localStorage.setItem(key, JSON.stringify(value));\n } catch (error) {\n logStorageError('Saving value', error as Error);\n }\n};\n\nconst clearAlertStorage = (): void => {\n const { STORAGE_KEYS } = ALERT_CONSTANTS;\n window.localStorage.removeItem(STORAGE_KEYS.ALERT_TIME);\n window.localStorage.removeItem(STORAGE_KEYS.ALERT);\n};\n\nconst checkAlertCache = (): CacheCheckResult => {\n const currentTime = new Date().getTime();\n const { STORAGE_KEYS, CACHE } = ALERT_CONSTANTS;\n\n try {\n const alertTimeStr = getStoredValue<string>(STORAGE_KEYS.ALERT_TIME);\n const cachedResponse = getStoredValue<AlertData>(STORAGE_KEYS.ALERT);\n\n if (!alertTimeStr) {\n setStoredValue(STORAGE_KEYS.ALERT_TIME, currentTime.toString());\n return { shouldCheck: true, cachedData: null };\n }\n\n const alertTime = parseInt(alertTimeStr, 10);\n const timeElapsed = currentTime - alertTime;\n\n if (timeElapsed < CACHE.DURATION && cachedResponse) {\n return { shouldCheck: false, cachedData: cachedResponse };\n }\n\n setStoredValue(STORAGE_KEYS.ALERT_TIME, currentTime.toString());\n return { shouldCheck: true, cachedData: null };\n } catch (error) {\n console.error('Cache check failed:', error);\n return { shouldCheck: true, cachedData: null };\n }\n};\n\nconst updateAlertCache = (alert: AlertData): void => {\n setStoredValue(ALERT_CONSTANTS.STORAGE_KEYS.ALERT, alert);\n};\n\nconst createElement = (\n tag: string,\n className?: string,\n attributes?: ElementAttributes,\n): HTMLElement => {\n const element = document.createElement(tag);\n if (className) element.classList.add(className);\n if (attributes) {\n Object.entries(attributes).forEach(([key, value]) => {\n element.setAttribute(key, value);\n });\n }\n return element;\n};\n\nconst createCloseButton = (container: HTMLElement): HTMLButtonElement => {\n const { ELEMENTS, ANIMATION } = ALERT_CONSTANTS;\n const button = createElement('button', ELEMENTS.CLOSE_BUTTON, {\n 'aria-label': 'remove alert',\n }) as HTMLButtonElement;\n\n button.innerHTML = Utility.asset.icon.X;\n button.addEventListener('click', () => {\n const cachedAlert = getStoredValue<AlertData>(\n ALERT_CONSTANTS.STORAGE_KEYS.ALERT,\n );\n if (cachedAlert) {\n // Animate close\n container.style.height = `${container.offsetHeight}px`;\n container.style.transition = `height ${ANIMATION.SPEED}ms`;\n\n updateAlertCache({ ...cachedAlert, hidden: true });\n\n setTimeout(() => {\n container.style.height = '0px';\n }, 100);\n\n setTimeout(() => {\n container.remove();\n }, ANIMATION.SPEED + 100);\n }\n });\n\n return button;\n};\n\nconst createCTAElement = ({\n ctaText,\n ctaUrl,\n}: {\n ctaText: string;\n ctaUrl: string;\n}) => {\n const link = createElement('a', ALERT_CONSTANTS.ELEMENTS.CTA, {\n href: ctaUrl,\n rel: 'noopener noreferrer',\n target: '_blank',\n });\n link.innerHTML = ctaText;\n\n return actions.options({\n element: link,\n isTypeSecondary: true,\n });\n};\n\nconst createAlertContent = (\n alert: AlertData,\n container: HTMLElement,\n): HTMLElement => {\n const { ELEMENTS } = ALERT_CONSTANTS;\n const wrapper = createElement('div', ELEMENTS.WRAPPER);\n const lock = createElement('div', ELEMENTS.LOCK);\n const headlineText = alert.headline || alert.title;\n\n // Create elements\n const title = createElement('p', ELEMENTS.TITLE);\n title.innerHTML = headlineText;\n\n const closeButton = createCloseButton(container);\n\n wrapper.append(closeButton, title);\n\n if (alert.text) {\n const message = createElement('div', ELEMENTS.TEXT);\n message.innerHTML = alert.text;\n wrapper.append(closeButton, title, message);\n }\n\n // Add CTA if exists\n if (alert.ctaUrl) {\n const cta = createCTAElement({\n ctaText: alert.ctaText || headlineText,\n ctaUrl: alert.ctaUrl,\n });\n\n wrapper.appendChild(cta.element);\n }\n\n lock.appendChild(wrapper);\n return lock;\n};\n\nconst createAlertComponent = (alert: AlertData): HTMLElement => {\n const { ELEMENTS, ATTRIBUTES } = ALERT_CONSTANTS;\n\n const declaration = createElement('div', ELEMENTS.DECLARATION);\n const container = createElement('div', ELEMENTS.CONTAINER, {\n id: ELEMENTS.ALERT_ID,\n [ATTRIBUTES.TYPE]: alert.type,\n });\n\n const content = createAlertContent(alert, container);\n container.appendChild(content);\n declaration.appendChild(container);\n\n return declaration;\n};\n\nconst fetchAlerts = async ({\n alertUrl,\n}: AlertProps): Promise<AlertResponse | null> => {\n try {\n const url = alertUrl || ALERT_CONSTANTS.URLS.DEFAULT;\n\n return await FetchGraphQL({\n query: QUERY,\n url,\n token: 'VIDnMeNYHTrLvWPtPpK5MNpjuv5WmmhU',\n });\n } catch (error) {\n console.error('Failed to fetch alerts:', error);\n return null;\n }\n};\n\nexport const createNavAlert = async ({ alertUrl }: AlertProps) => {\n const alertCache = checkAlertCache();\n\n // Show cached alert if valid\n if (\n !alertCache.shouldCheck &&\n alertCache.cachedData &&\n !alertCache.cachedData.hidden\n ) {\n return { element: createAlertComponent(alertCache.cachedData) };\n }\n\n // Fetch new alerts\n const response = await fetchAlerts({ alertUrl });\n if (!response?.data?.entries[0]) {\n clearAlertStorage();\n return null;\n }\n\n const alert = response.data?.entries[0];\n const cachedAlert = getStoredValue<AlertData>(\n ALERT_CONSTANTS.STORAGE_KEYS.ALERT,\n );\n\n // Handle alert updates\n if (cachedAlert?.id === alert.id) {\n if (!cachedAlert.hidden && alertCache.shouldCheck) {\n return { element: createAlertComponent(cachedAlert) };\n }\n } else {\n clearAlertStorage();\n updateAlertCache(alert);\n return { element: createAlertComponent(alert) };\n }\n\n return null;\n};\n"],"names":["Utility.network","token","Utility.theme.convertJSSObjectToStyles","typography","element","layout","ELEMENTS","ANIMATION","Utility.asset.icon.X","actions.options","ATTRIBUTES"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"alert.js","sources":["../../../../source/composite/navigation/utility/alert.ts"],"sourcesContent":["import {\n element,\n layout,\n token,\n typography,\n} from '@universityofmaryland/web-styles-library';\nimport { fetchGraphQL } from '@universityofmaryland/web-utilities-library/network';\nimport { jssToCSS } from '@universityofmaryland/web-utilities-library/styles';\nimport { close_large as iconCloseLarge } from '@universityofmaryland/web-icons-library/controls';\nimport { actions } from 'atomic';\n\ntype AlertData = {\n id: string;\n type: string;\n title: string;\n headline?: string;\n text: string;\n ctaUrl: string;\n ctaText?: string;\n hidden?: boolean;\n};\n\ntype AlertResponse = {\n data: {\n entries: AlertData[];\n };\n};\n\ntype AlertProps = {\n alertUrl?: string | null;\n};\n\nexport type TypeAlertProps = {\n alertUrl?: string | null;\n};\n\ntype ElementAttributes = Record<string, string>;\n\ntype CacheCheckResult = {\n shouldCheck: boolean;\n cachedData: AlertData | null;\n};\n\nconst QUERY = `\n query CampusAlertsQuery {\n entries: entries(\n limit: 1\n type: \"mainElementsCampusAlert\"\n ) {\n id: uid\n type: optionsType\n headline\n title\n text\n ctaUrl: cta\n ctaText\n }\n }\n`;\n\nconst ELEMENT_NAME = 'umd-element-nav-alert';\nexport const ALERT_CONSTANTS = {\n URLS: {\n DEFAULT: 'https://umd.edu/api/v2',\n },\n STORAGE_KEYS: {\n ALERT_TIME: 'umd-utility-alert-time',\n ALERT: 'umd-utility-alert',\n ALERT_ID: 'umd-utility-alert-id',\n },\n ELEMENTS: {\n ALERT_ID: 'umd-global-alert',\n DECLARATION: 'umd-element-nav-alert-declaration',\n CONTAINER: 'umd-element-nav-alert-container',\n LOCK: 'umd-element-nav-alert-lock',\n WRAPPER: 'umd-element-nav-alert-wrapper',\n TITLE: 'umd-element-nav-alert-title',\n TEXT: 'umd-element-nav-alert-text',\n CTA: 'umd-element-nav-alert-cta',\n CLOSE_BUTTON: 'umd-element-nav-alert-close',\n },\n ATTRIBUTES: {\n TYPE: 'type',\n },\n TYPES: {\n GENERAL: 'general',\n CLOSED: 'closed',\n OPEN: 'open',\n },\n ANIMATION: {\n SPEED: 800,\n },\n BREAKPOINTS: {\n MEDIUM: 768,\n LARGE: 1024,\n },\n CACHE: {\n DURATION: 60 * 1000, // One minute in milliseconds\n },\n} as const;\n\nconst { ATTRIBUTES, ANIMATION, BREAKPOINTS, ELEMENTS, TYPES } = ALERT_CONSTANTS;\nconst IS_TYPE_GENERAL = `[${ATTRIBUTES.TYPE}=${TYPES.GENERAL}]`;\nconst IS_TYPE_CLOSED = `[${ATTRIBUTES.TYPE}=${TYPES.CLOSED}]`;\n\nconst DECLARATION = `.${ELEMENTS.DECLARATION}`;\nconst CONTAINER = `.${ELEMENTS.CONTAINER}`;\nconst WRAPPER = `.${ELEMENTS.WRAPPER}`;\nconst LOCK = `.${ELEMENTS.LOCK}`;\nconst ALERT_TITLE = `.${ELEMENTS.TITLE}`;\nconst ALERT_TEXT = `.${ELEMENTS.TEXT}`;\nconst CLOSE_BUTTON = `.${ELEMENTS.CLOSE_BUTTON}`;\nconst CTA = `.${ELEMENTS.CTA}`;\n\nconst OVERWRITE_CONTAINER_TYPE_GENERAL = `${CONTAINER}${IS_TYPE_GENERAL}`;\nconst OVERWRITE_CONTAINER_TYPE_CLOSED = `${CONTAINER}${IS_TYPE_CLOSED}`;\n\n// prettier-ignore\nconst OverwriteTypeGeneral = `\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} {\n background-color: ${token.color.black};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} * {\n color: ${token.color.white};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} a:hover,\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} a:focus {\n color: ${token.color.white} !important;\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} ${ALERT_TITLE} {\n color: ${token.color.gold};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} ${CLOSE_BUTTON} > svg {\n fill: ${token.color.white};\n }\n`\n\n// prettier-ignore\nconst OverwriteTypeClosed = `\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} {\n background-color: ${token.color.gold};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} * {\n color: ${token.color.black};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} .${CLOSE_BUTTON} > svg {\n fill: ${token.color.black};\n }\n`\n\n// prettier-ignore\nconst CloseButtonStyles = `\n ${CLOSE_BUTTON} {\n position: absolute;\n top: 30px;\n right: 10px;\n }\n \n @container (max-width: ${BREAKPOINTS.MEDIUM - 1}px) {\n ${CLOSE_BUTTON} {\n top: 25px;\n right: 5px;\n }\n }\n\n ${CLOSE_BUTTON} > svg {\n fill: ${token.color.black};\n width: 24px;\n height: 24px;\n }\n`\n\n// prettier-ignore\nconst TextStyles = `\n ${jssToCSS({\n styleObj: {\n [`${ALERT_TITLE}`]: typography.sans.large,\n },\n })}\n\n ${ALERT_TITLE} {\n text-transform: uppercase;\n }\n\n ${ALERT_TITLE} + * {\n margin-top: ${token.spacing.sm};\n }\n\n ${jssToCSS({\n styleObj: {\n [`${ALERT_TEXT}`]: element.text.rich.advanced,\n },\n })}\n\n ${ALERT_TEXT},\n ${ALERT_TEXT} * {\n font-size: 16px;;\n }\n\n ${ALERT_TEXT} + * {\n margin-top: ${token.spacing.lg};\n }\n\n ${CTA} {\n text-decoration: none;\n }\n`\n\n// prettier-ignore\nconst WrapperStyles = `\n ${WRAPPER} {\n position: relative;\n padding-top: ${token.spacing.md};\n padding-bottom: ${token.spacing.md};\n padding-right: ${token.spacing.lg};\n }\n\n @container (min-width: ${BREAKPOINTS.MEDIUM}px) {\n ${WRAPPER} {\n padding-top: ${token.spacing.lg};\n padding-bottom: ${token.spacing.lg};\n }\n }\n`\n\n// prettier-ignore\nconst LockStyles = `\n ${jssToCSS({\n styleObj: {\n [`${LOCK}`]: layout.space.horizontal.full,\n },\n })}\n`\n\n// prettier-ignore\nconst ContainerStyles = `\n ${CONTAINER} {\n container: ${ELEMENT_NAME} / inline-size;\n background-color: ${token.color.gray.lighter};\n border-left: 4px solid ${token.color.red};\n transition: height ${ANIMATION.SPEED}ms;\n overflow: hidden;\n position: relative;\n }\n\n @container (min-width: ${BREAKPOINTS.LARGE}px) {\n ${CONTAINER} {\n border-left: 8px solid ${token.color.red};\n }\n }\n`\n\n// prettier-ignore\nexport const STYLES_NAV_ALERT = `\n ${DECLARATION} {\n container: ${ELEMENT_NAME} / inline-size;\n }\n\n ${ContainerStyles}\n ${LockStyles}\n ${WrapperStyles}\n ${TextStyles}\n ${CloseButtonStyles}\n ${OverwriteTypeGeneral}\n ${OverwriteTypeClosed}\n`;\n\n// storage.ts\nconst logStorageError = (operation: string, error: Error): void => {\n console.error(`UMD Component - Alert Storage: ${operation} failed:`, error);\n};\n\nconst getStoredValue = <T>(key: string): T | null => {\n try {\n const value = window.localStorage.getItem(key);\n return value ? JSON.parse(value) : null;\n } catch (error) {\n logStorageError(`Reading ${key}`, error as Error);\n return null;\n }\n};\n\nconst setStoredValue = (key: string, value: unknown): void => {\n try {\n window.localStorage.setItem(key, JSON.stringify(value));\n } catch (error) {\n logStorageError('Saving value', error as Error);\n }\n};\n\nconst clearAlertStorage = (): void => {\n const { STORAGE_KEYS } = ALERT_CONSTANTS;\n window.localStorage.removeItem(STORAGE_KEYS.ALERT_TIME);\n window.localStorage.removeItem(STORAGE_KEYS.ALERT);\n};\n\nconst checkAlertCache = (): CacheCheckResult => {\n const currentTime = new Date().getTime();\n const { STORAGE_KEYS, CACHE } = ALERT_CONSTANTS;\n\n try {\n const alertTimeStr = getStoredValue<string>(STORAGE_KEYS.ALERT_TIME);\n const cachedResponse = getStoredValue<AlertData>(STORAGE_KEYS.ALERT);\n\n if (!alertTimeStr) {\n setStoredValue(STORAGE_KEYS.ALERT_TIME, currentTime.toString());\n return { shouldCheck: true, cachedData: null };\n }\n\n const alertTime = parseInt(alertTimeStr, 10);\n const timeElapsed = currentTime - alertTime;\n\n if (timeElapsed < CACHE.DURATION && cachedResponse) {\n return { shouldCheck: false, cachedData: cachedResponse };\n }\n\n setStoredValue(STORAGE_KEYS.ALERT_TIME, currentTime.toString());\n return { shouldCheck: true, cachedData: null };\n } catch (error) {\n console.error('Cache check failed:', error);\n return { shouldCheck: true, cachedData: null };\n }\n};\n\nconst updateAlertCache = (alert: AlertData): void => {\n setStoredValue(ALERT_CONSTANTS.STORAGE_KEYS.ALERT, alert);\n};\n\nconst createElement = (\n tag: string,\n className?: string,\n attributes?: ElementAttributes,\n): HTMLElement => {\n const element = document.createElement(tag);\n if (className) element.classList.add(className);\n if (attributes) {\n Object.entries(attributes).forEach(([key, value]) => {\n element.setAttribute(key, value);\n });\n }\n return element;\n};\n\nconst createCloseButton = (container: HTMLElement): HTMLButtonElement => {\n const { ELEMENTS, ANIMATION } = ALERT_CONSTANTS;\n const button = createElement('button', ELEMENTS.CLOSE_BUTTON, {\n 'aria-label': 'remove alert',\n }) as HTMLButtonElement;\n\n button.innerHTML = iconCloseLarge;\n button.addEventListener('click', () => {\n const cachedAlert = getStoredValue<AlertData>(\n ALERT_CONSTANTS.STORAGE_KEYS.ALERT,\n );\n if (cachedAlert) {\n // Animate close\n container.style.height = `${container.offsetHeight}px`;\n container.style.transition = `height ${ANIMATION.SPEED}ms`;\n\n updateAlertCache({ ...cachedAlert, hidden: true });\n\n setTimeout(() => {\n container.style.height = '0px';\n }, 100);\n\n setTimeout(() => {\n container.remove();\n }, ANIMATION.SPEED + 100);\n }\n });\n\n return button;\n};\n\nconst createCTAElement = ({\n ctaText,\n ctaUrl,\n}: {\n ctaText: string;\n ctaUrl: string;\n}) => {\n const link = createElement('a', ALERT_CONSTANTS.ELEMENTS.CTA, {\n href: ctaUrl,\n rel: 'noopener noreferrer',\n target: '_blank',\n });\n link.innerHTML = ctaText;\n\n return actions.options({\n element: link,\n isTypeSecondary: true,\n });\n};\n\nconst createAlertContent = (\n alert: AlertData,\n container: HTMLElement,\n): HTMLElement => {\n const { ELEMENTS } = ALERT_CONSTANTS;\n const wrapper = createElement('div', ELEMENTS.WRAPPER);\n const lock = createElement('div', ELEMENTS.LOCK);\n const headlineText = alert.headline || alert.title;\n\n // Create elements\n const title = createElement('p', ELEMENTS.TITLE);\n title.innerHTML = headlineText;\n\n const closeButton = createCloseButton(container);\n\n wrapper.append(closeButton, title);\n\n if (alert.text) {\n const message = createElement('div', ELEMENTS.TEXT);\n message.innerHTML = alert.text;\n wrapper.append(closeButton, title, message);\n }\n\n // Add CTA if exists\n if (alert.ctaUrl) {\n const cta = createCTAElement({\n ctaText: alert.ctaText || headlineText,\n ctaUrl: alert.ctaUrl,\n });\n\n wrapper.appendChild(cta.element);\n }\n\n lock.appendChild(wrapper);\n return lock;\n};\n\nconst createAlertComponent = (alert: AlertData): HTMLElement => {\n const { ELEMENTS, ATTRIBUTES } = ALERT_CONSTANTS;\n\n const declaration = createElement('div', ELEMENTS.DECLARATION);\n const container = createElement('div', ELEMENTS.CONTAINER, {\n id: ELEMENTS.ALERT_ID,\n [ATTRIBUTES.TYPE]: alert.type,\n });\n\n const content = createAlertContent(alert, container);\n container.appendChild(content);\n declaration.appendChild(container);\n\n return declaration;\n};\n\nconst fetchAlerts = async ({\n alertUrl,\n}: AlertProps): Promise<AlertResponse | null> => {\n try {\n const url = alertUrl || ALERT_CONSTANTS.URLS.DEFAULT;\n\n return await fetchGraphQL({\n query: QUERY,\n url,\n token: 'VIDnMeNYHTrLvWPtPpK5MNpjuv5WmmhU',\n });\n } catch (error) {\n console.error('Failed to fetch alerts:', error);\n return null;\n }\n};\n\nexport const createNavAlert = async ({ alertUrl }: AlertProps) => {\n const alertCache = checkAlertCache();\n\n // Show cached alert if valid\n if (\n !alertCache.shouldCheck &&\n alertCache.cachedData &&\n !alertCache.cachedData.hidden\n ) {\n return { element: createAlertComponent(alertCache.cachedData) };\n }\n\n // Fetch new alerts\n const response = await fetchAlerts({ alertUrl });\n if (!response?.data?.entries[0]) {\n clearAlertStorage();\n return null;\n }\n\n const alert = response.data?.entries[0];\n const cachedAlert = getStoredValue<AlertData>(\n ALERT_CONSTANTS.STORAGE_KEYS.ALERT,\n );\n\n // Handle alert updates\n if (cachedAlert?.id === alert.id) {\n if (!cachedAlert.hidden && alertCache.shouldCheck) {\n return { element: createAlertComponent(cachedAlert) };\n }\n } else {\n clearAlertStorage();\n updateAlertCache(alert);\n return { element: createAlertComponent(alert) };\n }\n\n return null;\n};\n"],"names":["token","jssToCSS","typography","element","layout","ELEMENTS","ANIMATION","iconCloseLarge","actions.options","ATTRIBUTES","fetchGraphQL"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,MAAM,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBd,MAAM,eAAe;AACd,MAAM,kBAAkB;AAAA,EAC7B,MAAM;AAAA,IACJ,SAAS;AAAA,EAAA;AAAA,EAEX,cAAc;AAAA,IACZ,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,EAAA;AAAA,EAEZ,UAAU;AAAA,IACR,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,EAAA;AAAA,EAEhB,YAAY;AAAA,IACV,MAAM;AAAA,EAAA;AAAA,EAER,OAAO;AAAA,IACL,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,MAAM;AAAA,EAAA;AAAA,EAER,WAAW;AAAA,IACT,OAAO;AAAA,EAAA;AAAA,EAET,aAAa;AAAA,IACX,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,OAAO;AAAA,IACL,UAAU,KAAK;AAAA;AAAA,EAAA;AAEnB;AAEA,MAAM,EAAE,YAAY,WAAW,aAAa,UAAU,UAAU;AAChE,MAAM,kBAAkB,IAAI,WAAW,IAAI,IAAI,MAAM,OAAO;AAC5D,MAAM,iBAAiB,IAAI,WAAW,IAAI,IAAI,MAAM,MAAM;AAE1D,MAAM,cAAc,IAAI,SAAS,WAAW;AAC5C,MAAM,YAAY,IAAI,SAAS,SAAS;AACxC,MAAM,UAAU,IAAI,SAAS,OAAO;AACpC,MAAM,OAAO,IAAI,SAAS,IAAI;AAC9B,MAAM,cAAc,IAAI,SAAS,KAAK;AACtC,MAAM,aAAa,IAAI,SAAS,IAAI;AACpC,MAAM,eAAe,IAAI,SAAS,YAAY;AAC9C,MAAM,MAAM,IAAI,SAAS,GAAG;AAE5B,MAAM,mCAAmC,GAAG,SAAS,GAAG,eAAe;AACvE,MAAM,kCAAkC,GAAG,SAAS,GAAG,cAAc;AAGrE,MAAM,uBAAuB;AAAA,IACzB,gCAAgC;AAAA,wBACZA,OAAAA,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA,IAGrC,gCAAgC;AAAA,aACvBA,OAAAA,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA,IAG1B,gCAAgC;AAAA,IAChC,gCAAgC;AAAA,aACvBA,OAAAA,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA,IAG1B,gCAAgC,IAAI,WAAW;AAAA,aACtCA,OAAAA,MAAM,MAAM,IAAI;AAAA;AAAA;AAAA,KAGxB,gCAAgC,IAAI,YAAY;AAAA,YACzCA,OAAAA,MAAM,MAAM,KAAK;AAAA;AAAA;AAK7B,MAAM,sBAAsB;AAAA,IACxB,+BAA+B;AAAA,wBACXA,OAAAA,MAAM,MAAM,IAAI;AAAA;AAAA;AAAA,IAGpC,+BAA+B;AAAA,aACtBA,OAAAA,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA,KAGzB,+BAA+B,KAAK,YAAY;AAAA,YACzCA,OAAAA,MAAM,MAAM,KAAK;AAAA;AAAA;AAK7B,MAAM,oBAAoB;AAAA,IACtB,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAMW,YAAY,SAAS,CAAC;AAAA,MAC3C,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMd,YAAY;AAAA,YACJA,OAAAA,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA;AAAA;AAO7B,MAAM,aAAa;AAAA,IACfC,gBAAS;AAAA,EACT,UAAU;AAAA,IACR,CAAC,GAAG,WAAW,EAAE,GAAGC,OAAAA,WAAW,KAAK;AAAA,EAAA;AAExC,CAAC,CAAC;AAAA;AAAA,IAEA,WAAW;AAAA;AAAA;AAAA;AAAA,IAIX,WAAW;AAAA,kBACGF,OAAAA,MAAM,QAAQ,EAAE;AAAA;AAAA;AAAA,IAG9BC,gBAAS;AAAA,EACT,UAAU;AAAA,IACR,CAAC,GAAG,UAAU,EAAE,GAAGE,OAAAA,QAAQ,KAAK,KAAK;AAAA,EAAA;AAEzC,CAAC,CAAC;AAAA;AAAA,IAEA,UAAU;AAAA,IACV,UAAU;AAAA;AAAA;AAAA;AAAA,IAIV,UAAU;AAAA,kBACIH,OAAAA,MAAM,QAAQ,EAAE;AAAA;AAAA;AAAA,IAG9B,GAAG;AAAA;AAAA;AAAA;AAMP,MAAM,gBAAgB;AAAA,IAClB,OAAO;AAAA;AAAA,mBAEQA,OAAAA,MAAM,QAAQ,EAAE;AAAA,sBACbA,OAAAA,MAAM,QAAQ,EAAE;AAAA,qBACjBA,OAAAA,MAAM,QAAQ,EAAE;AAAA;AAAA;AAAA,2BAGV,YAAY,MAAM;AAAA,MACvC,OAAO;AAAA,qBACQA,OAAAA,MAAM,QAAQ,EAAE;AAAA,wBACbA,OAAAA,MAAM,QAAQ,EAAE;AAAA;AAAA;AAAA;AAMxC,MAAM,aAAa;AAAA,IACfC,gBAAS;AAAA,EACT,UAAU;AAAA,IACR,CAAC,GAAG,IAAI,EAAE,GAAGG,OAAAA,OAAO,MAAM,WAAW;AAAA,EAAA;AAEzC,CAAC,CAAC;AAAA;AAIJ,MAAM,kBAAkB;AAAA,IACpB,SAAS;AAAA,iBACI,YAAY;AAAA,wBACLJ,aAAM,MAAM,KAAK,OAAO;AAAA,6BACnBA,OAAAA,MAAM,MAAM,GAAG;AAAA,yBACnB,UAAU,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,2BAKb,YAAY,KAAK;AAAA,MACtC,SAAS;AAAA,+BACgBA,OAAAA,MAAM,MAAM,GAAG;AAAA;AAAA;AAAA;AAMvC,MAAM,mBAAmB;AAAA,IAC5B,WAAW;AAAA,iBACE,YAAY;AAAA;AAAA;AAAA,IAGzB,eAAe;AAAA,IACf,UAAU;AAAA,IACV,aAAa;AAAA,IACb,UAAU;AAAA,IACV,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,mBAAmB;AAAA;AAIvB,MAAM,kBAAkB,CAAC,WAAmB,UAAuB;AACjE,UAAQ,MAAM,kCAAkC,SAAS,YAAY,KAAK;AAC5E;AAEA,MAAM,iBAAiB,CAAI,QAA0B;AACnD,MAAI;AACF,UAAM,QAAQ,OAAO,aAAa,QAAQ,GAAG;AAC7C,WAAO,QAAQ,KAAK,MAAM,KAAK,IAAI;AAAA,EACrC,SAAS,OAAO;AACd,oBAAgB,WAAW,GAAG,IAAI,KAAc;AAChD,WAAO;AAAA,EACT;AACF;AAEA,MAAM,iBAAiB,CAAC,KAAa,UAAyB;AAC5D,MAAI;AACF,WAAO,aAAa,QAAQ,KAAK,KAAK,UAAU,KAAK,CAAC;AAAA,EACxD,SAAS,OAAO;AACd,oBAAgB,gBAAgB,KAAc;AAAA,EAChD;AACF;AAEA,MAAM,oBAAoB,MAAY;AACpC,QAAM,EAAE,iBAAiB;AACzB,SAAO,aAAa,WAAW,aAAa,UAAU;AACtD,SAAO,aAAa,WAAW,aAAa,KAAK;AACnD;AAEA,MAAM,kBAAkB,MAAwB;AAC9C,QAAM,eAAc,oBAAI,KAAA,GAAO,QAAA;AAC/B,QAAM,EAAE,cAAc,MAAA,IAAU;AAEhC,MAAI;AACF,UAAM,eAAe,eAAuB,aAAa,UAAU;AACnE,UAAM,iBAAiB,eAA0B,aAAa,KAAK;AAEnE,QAAI,CAAC,cAAc;AACjB,qBAAe,aAAa,YAAY,YAAY,SAAA,CAAU;AAC9D,aAAO,EAAE,aAAa,MAAM,YAAY,KAAA;AAAA,IAC1C;AAEA,UAAM,YAAY,SAAS,cAAc,EAAE;AAC3C,UAAM,cAAc,cAAc;AAElC,QAAI,cAAc,MAAM,YAAY,gBAAgB;AAClD,aAAO,EAAE,aAAa,OAAO,YAAY,eAAA;AAAA,IAC3C;AAEA,mBAAe,aAAa,YAAY,YAAY,SAAA,CAAU;AAC9D,WAAO,EAAE,aAAa,MAAM,YAAY,KAAA;AAAA,EAC1C,SAAS,OAAO;AACd,YAAQ,MAAM,uBAAuB,KAAK;AAC1C,WAAO,EAAE,aAAa,MAAM,YAAY,KAAA;AAAA,EAC1C;AACF;AAEA,MAAM,mBAAmB,CAAC,UAA2B;AACnD,iBAAe,gBAAgB,aAAa,OAAO,KAAK;AAC1D;AAEA,MAAM,gBAAgB,CACpB,KACA,WACA,eACgB;AAChB,QAAMG,WAAU,SAAS,cAAc,GAAG;AAC1C,MAAI,UAAWA,UAAQ,UAAU,IAAI,SAAS;AAC9C,MAAI,YAAY;AACd,WAAO,QAAQ,UAAU,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACnDA,eAAQ,aAAa,KAAK,KAAK;AAAA,IACjC,CAAC;AAAA,EACH;AACA,SAAOA;AACT;AAEA,MAAM,oBAAoB,CAAC,cAA8C;AACvE,QAAM,EAAE,UAAAE,WAAU,WAAAC,eAAc;AAChC,QAAM,SAAS,cAAc,UAAUD,UAAS,cAAc;AAAA,IAC5D,cAAc;AAAA,EAAA,CACf;AAED,SAAO,YAAYE,SAAAA;AACnB,SAAO,iBAAiB,SAAS,MAAM;AACrC,UAAM,cAAc;AAAA,MAClB,gBAAgB,aAAa;AAAA,IAAA;AAE/B,QAAI,aAAa;AAEf,gBAAU,MAAM,SAAS,GAAG,UAAU,YAAY;AAClD,gBAAU,MAAM,aAAa,UAAUD,WAAU,KAAK;AAEtD,uBAAiB,EAAE,GAAG,aAAa,QAAQ,MAAM;AAEjD,iBAAW,MAAM;AACf,kBAAU,MAAM,SAAS;AAAA,MAC3B,GAAG,GAAG;AAEN,iBAAW,MAAM;AACf,kBAAU,OAAA;AAAA,MACZ,GAAGA,WAAU,QAAQ,GAAG;AAAA,IAC1B;AAAA,EACF,CAAC;AAED,SAAO;AACT;AAEA,MAAM,mBAAmB,CAAC;AAAA,EACxB;AAAA,EACA;AACF,MAGM;AACJ,QAAM,OAAO,cAAc,KAAK,gBAAgB,SAAS,KAAK;AAAA,IAC5D,MAAM;AAAA,IACN,KAAK;AAAA,IACL,QAAQ;AAAA,EAAA,CACT;AACD,OAAK,YAAY;AAEjB,SAAOE,aAAgB;AAAA,IACrB,SAAS;AAAA,IACT,iBAAiB;AAAA,EAAA,CAClB;AACH;AAEA,MAAM,qBAAqB,CACzB,OACA,cACgB;AAChB,QAAM,EAAE,UAAAH,UAAAA,IAAa;AACrB,QAAM,UAAU,cAAc,OAAOA,UAAS,OAAO;AACrD,QAAM,OAAO,cAAc,OAAOA,UAAS,IAAI;AAC/C,QAAM,eAAe,MAAM,YAAY,MAAM;AAG7C,QAAM,QAAQ,cAAc,KAAKA,UAAS,KAAK;AAC/C,QAAM,YAAY;AAElB,QAAM,cAAc,kBAAkB,SAAS;AAE/C,UAAQ,OAAO,aAAa,KAAK;AAEjC,MAAI,MAAM,MAAM;AACd,UAAM,UAAU,cAAc,OAAOA,UAAS,IAAI;AAClD,YAAQ,YAAY,MAAM;AAC1B,YAAQ,OAAO,aAAa,OAAO,OAAO;AAAA,EAC5C;AAGA,MAAI,MAAM,QAAQ;AAChB,UAAM,MAAM,iBAAiB;AAAA,MAC3B,SAAS,MAAM,WAAW;AAAA,MAC1B,QAAQ,MAAM;AAAA,IAAA,CACf;AAED,YAAQ,YAAY,IAAI,OAAO;AAAA,EACjC;AAEA,OAAK,YAAY,OAAO;AACxB,SAAO;AACT;AAEA,MAAM,uBAAuB,CAAC,UAAkC;AAC9D,QAAM,EAAE,UAAAA,WAAU,YAAAI,gBAAe;AAEjC,QAAM,cAAc,cAAc,OAAOJ,UAAS,WAAW;AAC7D,QAAM,YAAY,cAAc,OAAOA,UAAS,WAAW;AAAA,IACzD,IAAIA,UAAS;AAAA,IACb,CAACI,YAAW,IAAI,GAAG,MAAM;AAAA,EAAA,CAC1B;AAED,QAAM,UAAU,mBAAmB,OAAO,SAAS;AACnD,YAAU,YAAY,OAAO;AAC7B,cAAY,YAAY,SAAS;AAEjC,SAAO;AACT;AAEA,MAAM,cAAc,OAAO;AAAA,EACzB;AACF,MAAiD;AAC/C,MAAI;AACF,UAAM,MAAM,YAAY,gBAAgB,KAAK;AAE7C,WAAO,MAAMC,QAAAA,aAAa;AAAA,MACxB,OAAO;AAAA,MACP;AAAA,MACA,OAAO;AAAA,IAAA,CACR;AAAA,EACH,SAAS,OAAO;AACd,YAAQ,MAAM,2BAA2B,KAAK;AAC9C,WAAO;AAAA,EACT;AACF;AAEO,MAAM,iBAAiB,OAAO,EAAE,eAA2B;AAChE,QAAM,aAAa,gBAAA;AAGnB,MACE,CAAC,WAAW,eACZ,WAAW,cACX,CAAC,WAAW,WAAW,QACvB;AACA,WAAO,EAAE,SAAS,qBAAqB,WAAW,UAAU,EAAA;AAAA,EAC9D;AAGA,QAAM,WAAW,MAAM,YAAY,EAAE,UAAU;AAC/C,MAAI,CAAC,UAAU,MAAM,QAAQ,CAAC,GAAG;AAC/B,sBAAA;AACA,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,SAAS,MAAM,QAAQ,CAAC;AACtC,QAAM,cAAc;AAAA,IAClB,gBAAgB,aAAa;AAAA,EAAA;AAI/B,MAAI,aAAa,OAAO,MAAM,IAAI;AAChC,QAAI,CAAC,YAAY,UAAU,WAAW,aAAa;AACjD,aAAO,EAAE,SAAS,qBAAqB,WAAW,EAAA;AAAA,IACpD;AAAA,EACF,OAAO;AACL,sBAAA;AACA,qBAAiB,KAAK;AACtB,WAAO,EAAE,SAAS,qBAAqB,KAAK,EAAA;AAAA,EAC9C;AAEA,SAAO;AACT;;;;"}
|
|
@@ -1,19 +1,28 @@
|
|
|
1
1
|
import { token, typography, element, layout } from "@universityofmaryland/web-styles-library";
|
|
2
|
+
import { fetchGraphQL } from "@universityofmaryland/web-utilities-library/network";
|
|
3
|
+
import { jssToCSS } from "@universityofmaryland/web-utilities-library/styles";
|
|
4
|
+
import { close_large } from "@universityofmaryland/web-icons-library/controls";
|
|
2
5
|
import { options } from "../../../atomic/actions/text.mjs";
|
|
6
|
+
import "@universityofmaryland/web-styles-library/token";
|
|
7
|
+
import "@universityofmaryland/web-icons-library/files";
|
|
8
|
+
import "@universityofmaryland/web-icons-library/arrows";
|
|
3
9
|
import "../../../model/modifiers/index.mjs";
|
|
4
10
|
import "../../../model/elements/headline.mjs";
|
|
5
|
-
import { X } from "../../../utilities/assets/icons.mjs";
|
|
6
|
-
import * as index from "../../../utilities/network/index.mjs";
|
|
7
|
-
import { convertJSSObjectToStyles } from "../../../utilities/theme/index.mjs";
|
|
8
11
|
import "../../../atomic/animations/actions/indicator.mjs";
|
|
9
12
|
import "../../../atomic/animations/brand/chevron-scroll.mjs";
|
|
10
13
|
import "../../../atomic/animations/brand/card-stack.mjs";
|
|
14
|
+
import "@universityofmaryland/web-utilities-library/performance";
|
|
15
|
+
import "@universityofmaryland/web-utilities-library/accessibility";
|
|
16
|
+
import "@universityofmaryland/web-icons-library/location";
|
|
17
|
+
import "@universityofmaryland/web-icons-library/calendar";
|
|
11
18
|
import "../../../atomic/layout/block/stacked.mjs";
|
|
12
19
|
import "../../../atomic/layout/overlay/modal.mjs";
|
|
13
20
|
import "../../../atomic/layout/person/columns.mjs";
|
|
21
|
+
import "@universityofmaryland/web-icons-library/communication";
|
|
22
|
+
import "@universityofmaryland/web-icons-library/social";
|
|
14
23
|
import "../../../atomic/text-lockup/date.mjs";
|
|
15
24
|
import "../../../atomic/text-lockup/small.mjs";
|
|
16
|
-
|
|
25
|
+
import "@universityofmaryland/web-styles-library/typography";
|
|
17
26
|
const QUERY = `
|
|
18
27
|
query CampusAlertsQuery {
|
|
19
28
|
entries: entries(
|
|
@@ -140,7 +149,7 @@ const CloseButtonStyles = `
|
|
|
140
149
|
}
|
|
141
150
|
`;
|
|
142
151
|
const TextStyles = `
|
|
143
|
-
${
|
|
152
|
+
${jssToCSS({
|
|
144
153
|
styleObj: {
|
|
145
154
|
[`${ALERT_TITLE}`]: typography.sans.large
|
|
146
155
|
}
|
|
@@ -154,7 +163,7 @@ const TextStyles = `
|
|
|
154
163
|
margin-top: ${token.spacing.sm};
|
|
155
164
|
}
|
|
156
165
|
|
|
157
|
-
${
|
|
166
|
+
${jssToCSS({
|
|
158
167
|
styleObj: {
|
|
159
168
|
[`${ALERT_TEXT}`]: element.text.rich.advanced
|
|
160
169
|
}
|
|
@@ -189,7 +198,7 @@ const WrapperStyles = `
|
|
|
189
198
|
}
|
|
190
199
|
`;
|
|
191
200
|
const LockStyles = `
|
|
192
|
-
${
|
|
201
|
+
${jssToCSS({
|
|
193
202
|
styleObj: {
|
|
194
203
|
[`${LOCK}`]: layout.space.horizontal.full
|
|
195
204
|
}
|
|
@@ -288,7 +297,7 @@ const createCloseButton = (container) => {
|
|
|
288
297
|
const button = createElement("button", ELEMENTS2.CLOSE_BUTTON, {
|
|
289
298
|
"aria-label": "remove alert"
|
|
290
299
|
});
|
|
291
|
-
button.innerHTML =
|
|
300
|
+
button.innerHTML = close_large;
|
|
292
301
|
button.addEventListener("click", () => {
|
|
293
302
|
const cachedAlert = getStoredValue(
|
|
294
303
|
ALERT_CONSTANTS.STORAGE_KEYS.ALERT
|
|
@@ -363,7 +372,7 @@ const fetchAlerts = async ({
|
|
|
363
372
|
}) => {
|
|
364
373
|
try {
|
|
365
374
|
const url = alertUrl || ALERT_CONSTANTS.URLS.DEFAULT;
|
|
366
|
-
return await
|
|
375
|
+
return await fetchGraphQL({
|
|
367
376
|
query: QUERY,
|
|
368
377
|
url,
|
|
369
378
|
token: "VIDnMeNYHTrLvWPtPpK5MNpjuv5WmmhU"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert.mjs","sources":["../../../../source/composite/navigation/utility/alert.ts"],"sourcesContent":["import {\n element,\n layout,\n token,\n typography,\n} from '@universityofmaryland/web-styles-library';\nimport { actions } from 'atomic';\nimport * as Utility from 'utilities';\n\ntype AlertData = {\n id: string;\n type: string;\n title: string;\n headline?: string;\n text: string;\n ctaUrl: string;\n ctaText?: string;\n hidden?: boolean;\n};\n\ntype AlertResponse = {\n data: {\n entries: AlertData[];\n };\n};\n\ntype AlertProps = {\n alertUrl?: string | null;\n};\n\nexport type TypeAlertProps = {\n alertUrl?: string | null;\n};\n\ntype ElementAttributes = Record<string, string>;\n\ntype CacheCheckResult = {\n shouldCheck: boolean;\n cachedData: AlertData | null;\n};\n\nconst { FetchGraphQL } = Utility.network;\n\nconst QUERY = `\n query CampusAlertsQuery {\n entries: entries(\n limit: 1\n type: \"mainElementsCampusAlert\"\n ) {\n id: uid\n type: optionsType\n headline\n title\n text\n ctaUrl: cta\n ctaText\n }\n }\n`;\n\nconst ELEMENT_NAME = 'umd-element-nav-alert';\nexport const ALERT_CONSTANTS = {\n URLS: {\n DEFAULT: 'https://umd.edu/api/v2',\n },\n STORAGE_KEYS: {\n ALERT_TIME: 'umd-utility-alert-time',\n ALERT: 'umd-utility-alert',\n ALERT_ID: 'umd-utility-alert-id',\n },\n ELEMENTS: {\n ALERT_ID: 'umd-global-alert',\n DECLARATION: 'umd-element-nav-alert-declaration',\n CONTAINER: 'umd-element-nav-alert-container',\n LOCK: 'umd-element-nav-alert-lock',\n WRAPPER: 'umd-element-nav-alert-wrapper',\n TITLE: 'umd-element-nav-alert-title',\n TEXT: 'umd-element-nav-alert-text',\n CTA: 'umd-element-nav-alert-cta',\n CLOSE_BUTTON: 'umd-element-nav-alert-close',\n },\n ATTRIBUTES: {\n TYPE: 'type',\n },\n TYPES: {\n GENERAL: 'general',\n CLOSED: 'closed',\n OPEN: 'open',\n },\n ANIMATION: {\n SPEED: 800,\n },\n BREAKPOINTS: {\n MEDIUM: 768,\n LARGE: 1024,\n },\n CACHE: {\n DURATION: 60 * 1000, // One minute in milliseconds\n },\n} as const;\n\nconst { ATTRIBUTES, ANIMATION, BREAKPOINTS, ELEMENTS, TYPES } = ALERT_CONSTANTS;\nconst IS_TYPE_GENERAL = `[${ATTRIBUTES.TYPE}=${TYPES.GENERAL}]`;\nconst IS_TYPE_CLOSED = `[${ATTRIBUTES.TYPE}=${TYPES.CLOSED}]`;\n\nconst DECLARATION = `.${ELEMENTS.DECLARATION}`;\nconst CONTAINER = `.${ELEMENTS.CONTAINER}`;\nconst WRAPPER = `.${ELEMENTS.WRAPPER}`;\nconst LOCK = `.${ELEMENTS.LOCK}`;\nconst ALERT_TITLE = `.${ELEMENTS.TITLE}`;\nconst ALERT_TEXT = `.${ELEMENTS.TEXT}`;\nconst CLOSE_BUTTON = `.${ELEMENTS.CLOSE_BUTTON}`;\nconst CTA = `.${ELEMENTS.CTA}`;\n\nconst OVERWRITE_CONTAINER_TYPE_GENERAL = `${CONTAINER}${IS_TYPE_GENERAL}`;\nconst OVERWRITE_CONTAINER_TYPE_CLOSED = `${CONTAINER}${IS_TYPE_CLOSED}`;\n\n// prettier-ignore\nconst OverwriteTypeGeneral = `\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} {\n background-color: ${token.color.black};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} * {\n color: ${token.color.white};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} a:hover,\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} a:focus {\n color: ${token.color.white} !important;\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} ${ALERT_TITLE} {\n color: ${token.color.gold};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} ${CLOSE_BUTTON} > svg {\n fill: ${token.color.white};\n }\n`\n\n// prettier-ignore\nconst OverwriteTypeClosed = `\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} {\n background-color: ${token.color.gold};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} * {\n color: ${token.color.black};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} .${CLOSE_BUTTON} > svg {\n fill: ${token.color.black};\n }\n`\n\n// prettier-ignore\nconst CloseButtonStyles = `\n ${CLOSE_BUTTON} {\n position: absolute;\n top: 30px;\n right: 10px;\n }\n \n @container (max-width: ${BREAKPOINTS.MEDIUM - 1}px) {\n ${CLOSE_BUTTON} {\n top: 25px;\n right: 5px;\n }\n }\n\n ${CLOSE_BUTTON} > svg {\n fill: ${token.color.black};\n width: 24px;\n height: 24px;\n }\n`\n\n// prettier-ignore\nconst TextStyles = `\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`${ALERT_TITLE}`]: typography.sans.large,\n },\n })}\n\n ${ALERT_TITLE} {\n text-transform: uppercase;\n }\n\n ${ALERT_TITLE} + * {\n margin-top: ${token.spacing.sm};\n }\n\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`${ALERT_TEXT}`]: element.text.rich.advanced,\n },\n })}\n\n ${ALERT_TEXT},\n ${ALERT_TEXT} * {\n font-size: 16px;;\n }\n\n ${ALERT_TEXT} + * {\n margin-top: ${token.spacing.lg};\n }\n\n ${CTA} {\n text-decoration: none;\n }\n`\n\n// prettier-ignore\nconst WrapperStyles = `\n ${WRAPPER} {\n position: relative;\n padding-top: ${token.spacing.md};\n padding-bottom: ${token.spacing.md};\n padding-right: ${token.spacing.lg};\n }\n\n @container (min-width: ${BREAKPOINTS.MEDIUM}px) {\n ${WRAPPER} {\n padding-top: ${token.spacing.lg};\n padding-bottom: ${token.spacing.lg};\n }\n }\n`\n\n// prettier-ignore\nconst LockStyles = `\n ${Utility.theme.convertJSSObjectToStyles({\n styleObj: {\n [`${LOCK}`]: layout.space.horizontal.full,\n },\n })}\n`\n\n// prettier-ignore\nconst ContainerStyles = `\n ${CONTAINER} {\n container: ${ELEMENT_NAME} / inline-size;\n background-color: ${token.color.gray.lighter};\n border-left: 4px solid ${token.color.red};\n transition: height ${ANIMATION.SPEED}ms;\n overflow: hidden;\n position: relative;\n }\n\n @container (min-width: ${BREAKPOINTS.LARGE}px) {\n ${CONTAINER} {\n border-left: 8px solid ${token.color.red};\n }\n }\n`\n\n// prettier-ignore\nexport const STYLES_NAV_ALERT = `\n ${DECLARATION} {\n container: ${ELEMENT_NAME} / inline-size;\n }\n\n ${ContainerStyles}\n ${LockStyles}\n ${WrapperStyles}\n ${TextStyles}\n ${CloseButtonStyles}\n ${OverwriteTypeGeneral}\n ${OverwriteTypeClosed}\n`;\n\n// storage.ts\nconst logStorageError = (operation: string, error: Error): void => {\n console.error(`UMD Component - Alert Storage: ${operation} failed:`, error);\n};\n\nconst getStoredValue = <T>(key: string): T | null => {\n try {\n const value = window.localStorage.getItem(key);\n return value ? JSON.parse(value) : null;\n } catch (error) {\n logStorageError(`Reading ${key}`, error as Error);\n return null;\n }\n};\n\nconst setStoredValue = (key: string, value: unknown): void => {\n try {\n window.localStorage.setItem(key, JSON.stringify(value));\n } catch (error) {\n logStorageError('Saving value', error as Error);\n }\n};\n\nconst clearAlertStorage = (): void => {\n const { STORAGE_KEYS } = ALERT_CONSTANTS;\n window.localStorage.removeItem(STORAGE_KEYS.ALERT_TIME);\n window.localStorage.removeItem(STORAGE_KEYS.ALERT);\n};\n\nconst checkAlertCache = (): CacheCheckResult => {\n const currentTime = new Date().getTime();\n const { STORAGE_KEYS, CACHE } = ALERT_CONSTANTS;\n\n try {\n const alertTimeStr = getStoredValue<string>(STORAGE_KEYS.ALERT_TIME);\n const cachedResponse = getStoredValue<AlertData>(STORAGE_KEYS.ALERT);\n\n if (!alertTimeStr) {\n setStoredValue(STORAGE_KEYS.ALERT_TIME, currentTime.toString());\n return { shouldCheck: true, cachedData: null };\n }\n\n const alertTime = parseInt(alertTimeStr, 10);\n const timeElapsed = currentTime - alertTime;\n\n if (timeElapsed < CACHE.DURATION && cachedResponse) {\n return { shouldCheck: false, cachedData: cachedResponse };\n }\n\n setStoredValue(STORAGE_KEYS.ALERT_TIME, currentTime.toString());\n return { shouldCheck: true, cachedData: null };\n } catch (error) {\n console.error('Cache check failed:', error);\n return { shouldCheck: true, cachedData: null };\n }\n};\n\nconst updateAlertCache = (alert: AlertData): void => {\n setStoredValue(ALERT_CONSTANTS.STORAGE_KEYS.ALERT, alert);\n};\n\nconst createElement = (\n tag: string,\n className?: string,\n attributes?: ElementAttributes,\n): HTMLElement => {\n const element = document.createElement(tag);\n if (className) element.classList.add(className);\n if (attributes) {\n Object.entries(attributes).forEach(([key, value]) => {\n element.setAttribute(key, value);\n });\n }\n return element;\n};\n\nconst createCloseButton = (container: HTMLElement): HTMLButtonElement => {\n const { ELEMENTS, ANIMATION } = ALERT_CONSTANTS;\n const button = createElement('button', ELEMENTS.CLOSE_BUTTON, {\n 'aria-label': 'remove alert',\n }) as HTMLButtonElement;\n\n button.innerHTML = Utility.asset.icon.X;\n button.addEventListener('click', () => {\n const cachedAlert = getStoredValue<AlertData>(\n ALERT_CONSTANTS.STORAGE_KEYS.ALERT,\n );\n if (cachedAlert) {\n // Animate close\n container.style.height = `${container.offsetHeight}px`;\n container.style.transition = `height ${ANIMATION.SPEED}ms`;\n\n updateAlertCache({ ...cachedAlert, hidden: true });\n\n setTimeout(() => {\n container.style.height = '0px';\n }, 100);\n\n setTimeout(() => {\n container.remove();\n }, ANIMATION.SPEED + 100);\n }\n });\n\n return button;\n};\n\nconst createCTAElement = ({\n ctaText,\n ctaUrl,\n}: {\n ctaText: string;\n ctaUrl: string;\n}) => {\n const link = createElement('a', ALERT_CONSTANTS.ELEMENTS.CTA, {\n href: ctaUrl,\n rel: 'noopener noreferrer',\n target: '_blank',\n });\n link.innerHTML = ctaText;\n\n return actions.options({\n element: link,\n isTypeSecondary: true,\n });\n};\n\nconst createAlertContent = (\n alert: AlertData,\n container: HTMLElement,\n): HTMLElement => {\n const { ELEMENTS } = ALERT_CONSTANTS;\n const wrapper = createElement('div', ELEMENTS.WRAPPER);\n const lock = createElement('div', ELEMENTS.LOCK);\n const headlineText = alert.headline || alert.title;\n\n // Create elements\n const title = createElement('p', ELEMENTS.TITLE);\n title.innerHTML = headlineText;\n\n const closeButton = createCloseButton(container);\n\n wrapper.append(closeButton, title);\n\n if (alert.text) {\n const message = createElement('div', ELEMENTS.TEXT);\n message.innerHTML = alert.text;\n wrapper.append(closeButton, title, message);\n }\n\n // Add CTA if exists\n if (alert.ctaUrl) {\n const cta = createCTAElement({\n ctaText: alert.ctaText || headlineText,\n ctaUrl: alert.ctaUrl,\n });\n\n wrapper.appendChild(cta.element);\n }\n\n lock.appendChild(wrapper);\n return lock;\n};\n\nconst createAlertComponent = (alert: AlertData): HTMLElement => {\n const { ELEMENTS, ATTRIBUTES } = ALERT_CONSTANTS;\n\n const declaration = createElement('div', ELEMENTS.DECLARATION);\n const container = createElement('div', ELEMENTS.CONTAINER, {\n id: ELEMENTS.ALERT_ID,\n [ATTRIBUTES.TYPE]: alert.type,\n });\n\n const content = createAlertContent(alert, container);\n container.appendChild(content);\n declaration.appendChild(container);\n\n return declaration;\n};\n\nconst fetchAlerts = async ({\n alertUrl,\n}: AlertProps): Promise<AlertResponse | null> => {\n try {\n const url = alertUrl || ALERT_CONSTANTS.URLS.DEFAULT;\n\n return await FetchGraphQL({\n query: QUERY,\n url,\n token: 'VIDnMeNYHTrLvWPtPpK5MNpjuv5WmmhU',\n });\n } catch (error) {\n console.error('Failed to fetch alerts:', error);\n return null;\n }\n};\n\nexport const createNavAlert = async ({ alertUrl }: AlertProps) => {\n const alertCache = checkAlertCache();\n\n // Show cached alert if valid\n if (\n !alertCache.shouldCheck &&\n alertCache.cachedData &&\n !alertCache.cachedData.hidden\n ) {\n return { element: createAlertComponent(alertCache.cachedData) };\n }\n\n // Fetch new alerts\n const response = await fetchAlerts({ alertUrl });\n if (!response?.data?.entries[0]) {\n clearAlertStorage();\n return null;\n }\n\n const alert = response.data?.entries[0];\n const cachedAlert = getStoredValue<AlertData>(\n ALERT_CONSTANTS.STORAGE_KEYS.ALERT,\n );\n\n // Handle alert updates\n if (cachedAlert?.id === alert.id) {\n if (!cachedAlert.hidden && alertCache.shouldCheck) {\n return { element: createAlertComponent(cachedAlert) };\n }\n } else {\n clearAlertStorage();\n updateAlertCache(alert);\n return { element: createAlertComponent(alert) };\n }\n\n return null;\n};\n"],"names":["Utility.network","Utility.theme.convertJSSObjectToStyles","element","ELEMENTS","ANIMATION","Utility.asset.icon.X","actions.options","ATTRIBUTES"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"alert.mjs","sources":["../../../../source/composite/navigation/utility/alert.ts"],"sourcesContent":["import {\n element,\n layout,\n token,\n typography,\n} from '@universityofmaryland/web-styles-library';\nimport { fetchGraphQL } from '@universityofmaryland/web-utilities-library/network';\nimport { jssToCSS } from '@universityofmaryland/web-utilities-library/styles';\nimport { close_large as iconCloseLarge } from '@universityofmaryland/web-icons-library/controls';\nimport { actions } from 'atomic';\n\ntype AlertData = {\n id: string;\n type: string;\n title: string;\n headline?: string;\n text: string;\n ctaUrl: string;\n ctaText?: string;\n hidden?: boolean;\n};\n\ntype AlertResponse = {\n data: {\n entries: AlertData[];\n };\n};\n\ntype AlertProps = {\n alertUrl?: string | null;\n};\n\nexport type TypeAlertProps = {\n alertUrl?: string | null;\n};\n\ntype ElementAttributes = Record<string, string>;\n\ntype CacheCheckResult = {\n shouldCheck: boolean;\n cachedData: AlertData | null;\n};\n\nconst QUERY = `\n query CampusAlertsQuery {\n entries: entries(\n limit: 1\n type: \"mainElementsCampusAlert\"\n ) {\n id: uid\n type: optionsType\n headline\n title\n text\n ctaUrl: cta\n ctaText\n }\n }\n`;\n\nconst ELEMENT_NAME = 'umd-element-nav-alert';\nexport const ALERT_CONSTANTS = {\n URLS: {\n DEFAULT: 'https://umd.edu/api/v2',\n },\n STORAGE_KEYS: {\n ALERT_TIME: 'umd-utility-alert-time',\n ALERT: 'umd-utility-alert',\n ALERT_ID: 'umd-utility-alert-id',\n },\n ELEMENTS: {\n ALERT_ID: 'umd-global-alert',\n DECLARATION: 'umd-element-nav-alert-declaration',\n CONTAINER: 'umd-element-nav-alert-container',\n LOCK: 'umd-element-nav-alert-lock',\n WRAPPER: 'umd-element-nav-alert-wrapper',\n TITLE: 'umd-element-nav-alert-title',\n TEXT: 'umd-element-nav-alert-text',\n CTA: 'umd-element-nav-alert-cta',\n CLOSE_BUTTON: 'umd-element-nav-alert-close',\n },\n ATTRIBUTES: {\n TYPE: 'type',\n },\n TYPES: {\n GENERAL: 'general',\n CLOSED: 'closed',\n OPEN: 'open',\n },\n ANIMATION: {\n SPEED: 800,\n },\n BREAKPOINTS: {\n MEDIUM: 768,\n LARGE: 1024,\n },\n CACHE: {\n DURATION: 60 * 1000, // One minute in milliseconds\n },\n} as const;\n\nconst { ATTRIBUTES, ANIMATION, BREAKPOINTS, ELEMENTS, TYPES } = ALERT_CONSTANTS;\nconst IS_TYPE_GENERAL = `[${ATTRIBUTES.TYPE}=${TYPES.GENERAL}]`;\nconst IS_TYPE_CLOSED = `[${ATTRIBUTES.TYPE}=${TYPES.CLOSED}]`;\n\nconst DECLARATION = `.${ELEMENTS.DECLARATION}`;\nconst CONTAINER = `.${ELEMENTS.CONTAINER}`;\nconst WRAPPER = `.${ELEMENTS.WRAPPER}`;\nconst LOCK = `.${ELEMENTS.LOCK}`;\nconst ALERT_TITLE = `.${ELEMENTS.TITLE}`;\nconst ALERT_TEXT = `.${ELEMENTS.TEXT}`;\nconst CLOSE_BUTTON = `.${ELEMENTS.CLOSE_BUTTON}`;\nconst CTA = `.${ELEMENTS.CTA}`;\n\nconst OVERWRITE_CONTAINER_TYPE_GENERAL = `${CONTAINER}${IS_TYPE_GENERAL}`;\nconst OVERWRITE_CONTAINER_TYPE_CLOSED = `${CONTAINER}${IS_TYPE_CLOSED}`;\n\n// prettier-ignore\nconst OverwriteTypeGeneral = `\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} {\n background-color: ${token.color.black};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} * {\n color: ${token.color.white};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} a:hover,\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} a:focus {\n color: ${token.color.white} !important;\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} ${ALERT_TITLE} {\n color: ${token.color.gold};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_GENERAL} ${CLOSE_BUTTON} > svg {\n fill: ${token.color.white};\n }\n`\n\n// prettier-ignore\nconst OverwriteTypeClosed = `\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} {\n background-color: ${token.color.gold};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} * {\n color: ${token.color.black};\n }\n\n ${OVERWRITE_CONTAINER_TYPE_CLOSED} .${CLOSE_BUTTON} > svg {\n fill: ${token.color.black};\n }\n`\n\n// prettier-ignore\nconst CloseButtonStyles = `\n ${CLOSE_BUTTON} {\n position: absolute;\n top: 30px;\n right: 10px;\n }\n \n @container (max-width: ${BREAKPOINTS.MEDIUM - 1}px) {\n ${CLOSE_BUTTON} {\n top: 25px;\n right: 5px;\n }\n }\n\n ${CLOSE_BUTTON} > svg {\n fill: ${token.color.black};\n width: 24px;\n height: 24px;\n }\n`\n\n// prettier-ignore\nconst TextStyles = `\n ${jssToCSS({\n styleObj: {\n [`${ALERT_TITLE}`]: typography.sans.large,\n },\n })}\n\n ${ALERT_TITLE} {\n text-transform: uppercase;\n }\n\n ${ALERT_TITLE} + * {\n margin-top: ${token.spacing.sm};\n }\n\n ${jssToCSS({\n styleObj: {\n [`${ALERT_TEXT}`]: element.text.rich.advanced,\n },\n })}\n\n ${ALERT_TEXT},\n ${ALERT_TEXT} * {\n font-size: 16px;;\n }\n\n ${ALERT_TEXT} + * {\n margin-top: ${token.spacing.lg};\n }\n\n ${CTA} {\n text-decoration: none;\n }\n`\n\n// prettier-ignore\nconst WrapperStyles = `\n ${WRAPPER} {\n position: relative;\n padding-top: ${token.spacing.md};\n padding-bottom: ${token.spacing.md};\n padding-right: ${token.spacing.lg};\n }\n\n @container (min-width: ${BREAKPOINTS.MEDIUM}px) {\n ${WRAPPER} {\n padding-top: ${token.spacing.lg};\n padding-bottom: ${token.spacing.lg};\n }\n }\n`\n\n// prettier-ignore\nconst LockStyles = `\n ${jssToCSS({\n styleObj: {\n [`${LOCK}`]: layout.space.horizontal.full,\n },\n })}\n`\n\n// prettier-ignore\nconst ContainerStyles = `\n ${CONTAINER} {\n container: ${ELEMENT_NAME} / inline-size;\n background-color: ${token.color.gray.lighter};\n border-left: 4px solid ${token.color.red};\n transition: height ${ANIMATION.SPEED}ms;\n overflow: hidden;\n position: relative;\n }\n\n @container (min-width: ${BREAKPOINTS.LARGE}px) {\n ${CONTAINER} {\n border-left: 8px solid ${token.color.red};\n }\n }\n`\n\n// prettier-ignore\nexport const STYLES_NAV_ALERT = `\n ${DECLARATION} {\n container: ${ELEMENT_NAME} / inline-size;\n }\n\n ${ContainerStyles}\n ${LockStyles}\n ${WrapperStyles}\n ${TextStyles}\n ${CloseButtonStyles}\n ${OverwriteTypeGeneral}\n ${OverwriteTypeClosed}\n`;\n\n// storage.ts\nconst logStorageError = (operation: string, error: Error): void => {\n console.error(`UMD Component - Alert Storage: ${operation} failed:`, error);\n};\n\nconst getStoredValue = <T>(key: string): T | null => {\n try {\n const value = window.localStorage.getItem(key);\n return value ? JSON.parse(value) : null;\n } catch (error) {\n logStorageError(`Reading ${key}`, error as Error);\n return null;\n }\n};\n\nconst setStoredValue = (key: string, value: unknown): void => {\n try {\n window.localStorage.setItem(key, JSON.stringify(value));\n } catch (error) {\n logStorageError('Saving value', error as Error);\n }\n};\n\nconst clearAlertStorage = (): void => {\n const { STORAGE_KEYS } = ALERT_CONSTANTS;\n window.localStorage.removeItem(STORAGE_KEYS.ALERT_TIME);\n window.localStorage.removeItem(STORAGE_KEYS.ALERT);\n};\n\nconst checkAlertCache = (): CacheCheckResult => {\n const currentTime = new Date().getTime();\n const { STORAGE_KEYS, CACHE } = ALERT_CONSTANTS;\n\n try {\n const alertTimeStr = getStoredValue<string>(STORAGE_KEYS.ALERT_TIME);\n const cachedResponse = getStoredValue<AlertData>(STORAGE_KEYS.ALERT);\n\n if (!alertTimeStr) {\n setStoredValue(STORAGE_KEYS.ALERT_TIME, currentTime.toString());\n return { shouldCheck: true, cachedData: null };\n }\n\n const alertTime = parseInt(alertTimeStr, 10);\n const timeElapsed = currentTime - alertTime;\n\n if (timeElapsed < CACHE.DURATION && cachedResponse) {\n return { shouldCheck: false, cachedData: cachedResponse };\n }\n\n setStoredValue(STORAGE_KEYS.ALERT_TIME, currentTime.toString());\n return { shouldCheck: true, cachedData: null };\n } catch (error) {\n console.error('Cache check failed:', error);\n return { shouldCheck: true, cachedData: null };\n }\n};\n\nconst updateAlertCache = (alert: AlertData): void => {\n setStoredValue(ALERT_CONSTANTS.STORAGE_KEYS.ALERT, alert);\n};\n\nconst createElement = (\n tag: string,\n className?: string,\n attributes?: ElementAttributes,\n): HTMLElement => {\n const element = document.createElement(tag);\n if (className) element.classList.add(className);\n if (attributes) {\n Object.entries(attributes).forEach(([key, value]) => {\n element.setAttribute(key, value);\n });\n }\n return element;\n};\n\nconst createCloseButton = (container: HTMLElement): HTMLButtonElement => {\n const { ELEMENTS, ANIMATION } = ALERT_CONSTANTS;\n const button = createElement('button', ELEMENTS.CLOSE_BUTTON, {\n 'aria-label': 'remove alert',\n }) as HTMLButtonElement;\n\n button.innerHTML = iconCloseLarge;\n button.addEventListener('click', () => {\n const cachedAlert = getStoredValue<AlertData>(\n ALERT_CONSTANTS.STORAGE_KEYS.ALERT,\n );\n if (cachedAlert) {\n // Animate close\n container.style.height = `${container.offsetHeight}px`;\n container.style.transition = `height ${ANIMATION.SPEED}ms`;\n\n updateAlertCache({ ...cachedAlert, hidden: true });\n\n setTimeout(() => {\n container.style.height = '0px';\n }, 100);\n\n setTimeout(() => {\n container.remove();\n }, ANIMATION.SPEED + 100);\n }\n });\n\n return button;\n};\n\nconst createCTAElement = ({\n ctaText,\n ctaUrl,\n}: {\n ctaText: string;\n ctaUrl: string;\n}) => {\n const link = createElement('a', ALERT_CONSTANTS.ELEMENTS.CTA, {\n href: ctaUrl,\n rel: 'noopener noreferrer',\n target: '_blank',\n });\n link.innerHTML = ctaText;\n\n return actions.options({\n element: link,\n isTypeSecondary: true,\n });\n};\n\nconst createAlertContent = (\n alert: AlertData,\n container: HTMLElement,\n): HTMLElement => {\n const { ELEMENTS } = ALERT_CONSTANTS;\n const wrapper = createElement('div', ELEMENTS.WRAPPER);\n const lock = createElement('div', ELEMENTS.LOCK);\n const headlineText = alert.headline || alert.title;\n\n // Create elements\n const title = createElement('p', ELEMENTS.TITLE);\n title.innerHTML = headlineText;\n\n const closeButton = createCloseButton(container);\n\n wrapper.append(closeButton, title);\n\n if (alert.text) {\n const message = createElement('div', ELEMENTS.TEXT);\n message.innerHTML = alert.text;\n wrapper.append(closeButton, title, message);\n }\n\n // Add CTA if exists\n if (alert.ctaUrl) {\n const cta = createCTAElement({\n ctaText: alert.ctaText || headlineText,\n ctaUrl: alert.ctaUrl,\n });\n\n wrapper.appendChild(cta.element);\n }\n\n lock.appendChild(wrapper);\n return lock;\n};\n\nconst createAlertComponent = (alert: AlertData): HTMLElement => {\n const { ELEMENTS, ATTRIBUTES } = ALERT_CONSTANTS;\n\n const declaration = createElement('div', ELEMENTS.DECLARATION);\n const container = createElement('div', ELEMENTS.CONTAINER, {\n id: ELEMENTS.ALERT_ID,\n [ATTRIBUTES.TYPE]: alert.type,\n });\n\n const content = createAlertContent(alert, container);\n container.appendChild(content);\n declaration.appendChild(container);\n\n return declaration;\n};\n\nconst fetchAlerts = async ({\n alertUrl,\n}: AlertProps): Promise<AlertResponse | null> => {\n try {\n const url = alertUrl || ALERT_CONSTANTS.URLS.DEFAULT;\n\n return await fetchGraphQL({\n query: QUERY,\n url,\n token: 'VIDnMeNYHTrLvWPtPpK5MNpjuv5WmmhU',\n });\n } catch (error) {\n console.error('Failed to fetch alerts:', error);\n return null;\n }\n};\n\nexport const createNavAlert = async ({ alertUrl }: AlertProps) => {\n const alertCache = checkAlertCache();\n\n // Show cached alert if valid\n if (\n !alertCache.shouldCheck &&\n alertCache.cachedData &&\n !alertCache.cachedData.hidden\n ) {\n return { element: createAlertComponent(alertCache.cachedData) };\n }\n\n // Fetch new alerts\n const response = await fetchAlerts({ alertUrl });\n if (!response?.data?.entries[0]) {\n clearAlertStorage();\n return null;\n }\n\n const alert = response.data?.entries[0];\n const cachedAlert = getStoredValue<AlertData>(\n ALERT_CONSTANTS.STORAGE_KEYS.ALERT,\n );\n\n // Handle alert updates\n if (cachedAlert?.id === alert.id) {\n if (!cachedAlert.hidden && alertCache.shouldCheck) {\n return { element: createAlertComponent(cachedAlert) };\n }\n } else {\n clearAlertStorage();\n updateAlertCache(alert);\n return { element: createAlertComponent(alert) };\n }\n\n return null;\n};\n"],"names":["element","ELEMENTS","ANIMATION","iconCloseLarge","actions.options","ATTRIBUTES"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../source/composite/navigation/utility/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../source/composite/navigation/utility/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAIL,cAAc,EACf,MAAM,SAAS,CAAC;AAGjB,KAAK,yBAAyB,GAAG;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,KAAK,uBAAuB,GAAG,yBAAyB,GAAG,cAAc,CAAC;AAklB1E,QAAA,MAAM,uBAAuB,GAAI,OAAO,uBAAuB;;;;;;;CAqHzD,CAAC;AAEP,eAAe,uBAAuB,CAAC"}
|