@oiz/stzh-components 4.1.0 → 4.1.1-beta
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/dist/.build/test/utils.js +8 -3
- package/dist/.build/test/utils.js.map +1 -1
- package/dist/cjs/{app-globals-b0a11ad2.js → app-globals-07208237.js} +2 -2
- package/dist/cjs/{app-globals-b0a11ad2.js.map → app-globals-07208237.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/stzh-accordion_3.cjs.entry.js +2 -2
- package/dist/cjs/stzh-accordion_3.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-actions.cjs.entry.js +1 -1
- package/dist/cjs/stzh-anchornav.cjs.entry.js +1 -1
- package/dist/cjs/stzh-anchornav.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-appointments.cjs.entry.js +1 -1
- package/dist/cjs/stzh-audio.cjs.entry.js +1 -1
- package/dist/cjs/stzh-badge_3.cjs.entry.js +1 -1
- package/dist/cjs/stzh-bathstatus-list.cjs.entry.js +1 -1
- package/dist/cjs/stzh-breadcrumb_2.cjs.entry.js +1 -1
- package/dist/cjs/stzh-breadcrumb_2.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-card-navigation.cjs.entry.js +1 -1
- package/dist/cjs/stzh-card-searchresult.cjs.entry.js +1 -1
- package/dist/cjs/stzh-card-superteaser.cjs.entry.js +2 -2
- package/dist/cjs/stzh-card-superteaser.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-card.cjs.entry.js +1 -1
- package/dist/cjs/stzh-carousel.cjs.entry.js +1 -1
- package/dist/cjs/stzh-checkbox_3.cjs.entry.js +2 -2
- package/dist/cjs/stzh-checkbox_3.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-checkboxgroup.cjs.entry.js +1 -1
- package/dist/cjs/stzh-components.cjs.js +2 -2
- package/dist/cjs/stzh-contact-cv.cjs.entry.js +1 -1
- package/dist/cjs/stzh-contact.cjs.entry.js +1 -1
- package/dist/cjs/stzh-cspace.cjs.entry.js +1 -1
- package/dist/cjs/stzh-cta.cjs.entry.js +1 -1
- package/dist/cjs/stzh-datalist_2.cjs.entry.js +1 -1
- package/dist/cjs/stzh-datatable.cjs.entry.js +1 -1
- package/dist/cjs/stzh-datepicker_3.cjs.entry.js +1 -1
- package/dist/cjs/stzh-daterange.cjs.entry.js +1 -1
- package/dist/cjs/stzh-details.cjs.entry.js +1 -1
- package/dist/cjs/stzh-dialog.cjs.entry.js +1 -1
- package/dist/cjs/stzh-disturber.cjs.entry.js +1 -1
- package/dist/cjs/stzh-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/stzh-eventinfo.cjs.entry.js +1 -1
- package/dist/cjs/stzh-feedreader-item.cjs.entry.js +1 -1
- package/dist/cjs/stzh-feedreader.cjs.entry.js +1 -1
- package/dist/cjs/stzh-figure.cjs.entry.js +1 -1
- package/dist/cjs/stzh-footer.cjs.entry.js +1 -1
- package/dist/cjs/stzh-ghettobox_3.cjs.entry.js +1 -1
- package/dist/cjs/stzh-heading.cjs.entry.js +1 -1
- package/dist/cjs/stzh-heading.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-homepage-service-highlights.cjs.entry.js +17 -8
- package/dist/cjs/stzh-homepage-service-highlights.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-input.cjs.entry.js +1 -1
- package/dist/cjs/stzh-link.cjs.entry.js +1 -1
- package/dist/cjs/stzh-menu_2.cjs.entry.js +1 -1
- package/dist/cjs/stzh-pagecontent.cjs.entry.js +1 -1
- package/dist/cjs/stzh-pagetitle-hero.cjs.entry.js +1 -1
- package/dist/cjs/stzh-pagetitle-home.cjs.entry.js +22 -12
- package/dist/cjs/stzh-pagetitle-home.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-pagetitle.cjs.entry.js +1 -1
- package/dist/cjs/stzh-pi-content-navigation.cjs.entry.js +1 -1
- package/dist/cjs/stzh-pi-pagetitle.cjs.entry.js +1 -1
- package/dist/cjs/stzh-pi-teaser.cjs.entry.js +1 -1
- package/dist/cjs/stzh-popover.cjs.entry.js +1 -1
- package/dist/cjs/stzh-print_2.cjs.entry.js +1 -1
- package/dist/cjs/stzh-readspeaker.cjs.entry.js +1 -1
- package/dist/cjs/stzh-scrollup.cjs.entry.js +1 -1
- package/dist/cjs/stzh-search.cjs.entry.js +1 -1
- package/dist/cjs/stzh-section.cjs.entry.js +1 -1
- package/dist/cjs/stzh-skin-portal-mitwirken.cjs.entry.js +1 -1
- package/dist/cjs/stzh-skin-portal-mitwirken.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-socialmediastream.cjs.entry.js +1 -1
- package/dist/cjs/stzh-sticky-actions.cjs.entry.js +1 -1
- package/dist/cjs/stzh-sticky.cjs.entry.js +1 -1
- package/dist/cjs/stzh-table.cjs.entry.js +1 -1
- package/dist/cjs/stzh-text.cjs.entry.js +1 -1
- package/dist/cjs/stzh-text.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-textandimage.cjs.entry.js +1 -1
- package/dist/cjs/stzh-timeline-item.cjs.entry.js +1 -1
- package/dist/cjs/stzh-toast_2.cjs.entry.js +1 -1
- package/dist/cjs/stzh-toggle.cjs.entry.js +1 -1
- package/dist/cjs/stzh-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/stzh-twocolumns.cjs.entry.js +1 -1
- package/dist/cjs/stzh-upload.cjs.entry.js +1 -1
- package/dist/cjs/stzh-vbz-intro.cjs.entry.js +1 -1
- package/dist/cjs/stzh-vbz-intro.cjs.entry.js.map +1 -1
- package/dist/cjs/{utils-5a53d7eb.js → utils-c0aaa7ec.js} +6 -53
- package/dist/cjs/utils-c0aaa7ec.js.map +1 -0
- package/dist/collection/components/CMS/VBZ/stzh-vbz-intro/stzh-vbz-intro.css +4 -4
- package/dist/collection/components/CMS/stzh-card-superteaser/stzh-card-superteaser.css +13 -5
- package/dist/collection/components/CMS/stzh-homepage-service-highlights/stzh-homepage-service-highlights.css +17 -9
- package/dist/collection/components/CMS/stzh-homepage-service-highlights/stzh-homepage-service-highlights.js +20 -7
- package/dist/collection/components/CMS/stzh-homepage-service-highlights/stzh-homepage-service-highlights.js.map +1 -1
- package/dist/collection/components/CMS/stzh-page-skiplinks/stzh-page-skiplinks.e2e.js +1 -1
- package/dist/collection/components/CMS/stzh-page-skiplinks/stzh-page-skiplinks.e2e.js.map +1 -1
- package/dist/collection/components/CMS/stzh-pagetitle-home/stzh-pagetitle-home.css +4 -4
- package/dist/collection/components/CMS/stzh-pagetitle-home/stzh-pagetitle-home.js +21 -11
- package/dist/collection/components/CMS/stzh-pagetitle-home/stzh-pagetitle-home.js.map +1 -1
- package/dist/collection/components/stzh-accordion-item/stzh-accordion-item.css +6 -2
- package/dist/collection/components/stzh-anchornav/stzh-anchornav.css +8 -1
- package/dist/collection/components/stzh-breadcrumb/stzh-breadcrumb.css +1 -1
- package/dist/collection/components/stzh-header/stzh-header.css +16 -9
- package/dist/collection/components/stzh-heading/stzh-heading.css +33 -0
- package/dist/collection/components/stzh-skin-portal-mitwirken/stzh-skin-portal-mitwirken.css +181 -77
- package/dist/collection/components/stzh-text/stzh-text.css +33 -0
- package/dist/collection/pages/CMS/PKZH/pkzh.e2e.js +18 -0
- package/dist/collection/pages/CMS/PKZH/pkzh.e2e.js.map +1 -0
- package/dist/collection/utils/utils.js +4 -52
- package/dist/collection/utils/utils.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/{p-bf205f26.js → p-167acbe1.js} +5 -5
- package/dist/components/{p-bf205f26.js.map → p-167acbe1.js.map} +1 -1
- package/dist/components/{p-f0a46fac.js → p-1b9eaa71.js} +5 -5
- package/dist/components/{p-f0a46fac.js.map → p-1b9eaa71.js.map} +1 -1
- package/dist/components/{p-d1f98854.js → p-1c261255.js} +6 -54
- package/dist/components/p-1c261255.js.map +1 -0
- package/dist/components/{p-eb282891.js → p-1fa6272f.js} +2 -2
- package/dist/components/{p-eb282891.js.map → p-1fa6272f.js.map} +1 -1
- package/dist/components/{p-483a5750.js → p-250a1491.js} +2 -2
- package/dist/components/{p-483a5750.js.map → p-250a1491.js.map} +1 -1
- package/dist/components/{p-1d1ed4be.js → p-2d6ea1ff.js} +2 -2
- package/dist/components/{p-1d1ed4be.js.map → p-2d6ea1ff.js.map} +1 -1
- package/dist/components/{p-1a89c45a.js → p-2e72ad15.js} +5 -5
- package/dist/components/{p-1a89c45a.js.map → p-2e72ad15.js.map} +1 -1
- package/dist/components/{p-00414366.js → p-32847b38.js} +2 -2
- package/dist/components/{p-00414366.js.map → p-32847b38.js.map} +1 -1
- package/dist/components/{p-d0b793f2.js → p-3a5a5b65.js} +3 -3
- package/dist/components/{p-d0b793f2.js.map → p-3a5a5b65.js.map} +1 -1
- package/dist/components/{p-1cb87437.js → p-3bb470ce.js} +2 -2
- package/dist/components/{p-1cb87437.js.map → p-3bb470ce.js.map} +1 -1
- package/dist/components/{p-24ec14c6.js → p-3dffb214.js} +2 -2
- package/dist/components/{p-24ec14c6.js.map → p-3dffb214.js.map} +1 -1
- package/dist/components/{p-0d9775f9.js → p-411f8f60.js} +4 -4
- package/dist/components/{p-0d9775f9.js.map → p-411f8f60.js.map} +1 -1
- package/dist/components/{p-fb0977f0.js → p-4640fde3.js} +4 -4
- package/dist/components/{p-fb0977f0.js.map → p-4640fde3.js.map} +1 -1
- package/dist/components/{p-a6a7fe17.js → p-5959959c.js} +5 -5
- package/dist/components/{p-a6a7fe17.js.map → p-5959959c.js.map} +1 -1
- package/dist/components/{p-c28490de.js → p-5a4e00c6.js} +8 -8
- package/dist/components/p-5a4e00c6.js.map +1 -0
- package/dist/components/{p-5e0a644a.js → p-66c944a4.js} +4 -4
- package/dist/components/{p-5e0a644a.js.map → p-66c944a4.js.map} +1 -1
- package/dist/components/{p-630a1165.js → p-71b15229.js} +3 -3
- package/dist/components/{p-630a1165.js.map → p-71b15229.js.map} +1 -1
- package/dist/components/{p-d8730e10.js → p-71f94b81.js} +2 -2
- package/dist/components/{p-d8730e10.js.map → p-71f94b81.js.map} +1 -1
- package/dist/components/{p-c522aec2.js → p-8063d484.js} +2 -2
- package/dist/components/{p-c522aec2.js.map → p-8063d484.js.map} +1 -1
- package/dist/components/{p-71668a26.js → p-839b43f8.js} +2 -2
- package/dist/components/{p-71668a26.js.map → p-839b43f8.js.map} +1 -1
- package/dist/components/{p-9562b4bd.js → p-978cf208.js} +2 -2
- package/dist/components/{p-9562b4bd.js.map → p-978cf208.js.map} +1 -1
- package/dist/components/{p-4c350868.js → p-a46dcfa3.js} +2 -2
- package/dist/components/{p-4c350868.js.map → p-a46dcfa3.js.map} +1 -1
- package/dist/components/{p-b3ca3adb.js → p-a8384df3.js} +2 -2
- package/dist/components/{p-b3ca3adb.js.map → p-a8384df3.js.map} +1 -1
- package/dist/components/{p-047a8cfd.js → p-b1b69ae9.js} +2 -2
- package/dist/components/p-b1b69ae9.js.map +1 -0
- package/dist/components/{p-e9868942.js → p-b1c378de.js} +6 -6
- package/dist/components/{p-e9868942.js.map → p-b1c378de.js.map} +1 -1
- package/dist/components/{p-bcc02189.js → p-b51c7e54.js} +2 -2
- package/dist/components/p-b51c7e54.js.map +1 -0
- package/dist/components/{p-f62b89ed.js → p-b9a4f7b2.js} +3 -3
- package/dist/components/{p-f62b89ed.js.map → p-b9a4f7b2.js.map} +1 -1
- package/dist/components/{p-57d566ab.js → p-b9b96873.js} +5 -5
- package/dist/components/{p-57d566ab.js.map → p-b9b96873.js.map} +1 -1
- package/dist/components/{p-292d0fcd.js → p-b9d5a920.js} +8 -8
- package/dist/components/{p-292d0fcd.js.map → p-b9d5a920.js.map} +1 -1
- package/dist/components/{p-3eb3db1e.js → p-ba74cae2.js} +4 -4
- package/dist/components/{p-3eb3db1e.js.map → p-ba74cae2.js.map} +1 -1
- package/dist/components/{p-234a6c0a.js → p-beefcccd.js} +6 -6
- package/dist/components/{p-234a6c0a.js.map → p-beefcccd.js.map} +1 -1
- package/dist/components/{p-af8a3a03.js → p-c087b441.js} +2 -2
- package/dist/components/{p-af8a3a03.js.map → p-c087b441.js.map} +1 -1
- package/dist/components/{p-5ff5bde3.js → p-c1795d8b.js} +5 -5
- package/dist/components/{p-5ff5bde3.js.map → p-c1795d8b.js.map} +1 -1
- package/dist/components/{p-dca85cea.js → p-c6e9ea56.js} +3 -3
- package/dist/components/p-c6e9ea56.js.map +1 -0
- package/dist/components/{p-8f5849c3.js → p-c8b9cba7.js} +8 -8
- package/dist/components/{p-8f5849c3.js.map → p-c8b9cba7.js.map} +1 -1
- package/dist/components/{p-f39503f3.js → p-cbee9daa.js} +2 -2
- package/dist/components/{p-f39503f3.js.map → p-cbee9daa.js.map} +1 -1
- package/dist/components/{p-05e1fb77.js → p-ccbd3cdf.js} +3 -3
- package/dist/components/{p-05e1fb77.js.map → p-ccbd3cdf.js.map} +1 -1
- package/dist/components/{p-d5254d48.js → p-d1badd5b.js} +2 -2
- package/dist/components/{p-d5254d48.js.map → p-d1badd5b.js.map} +1 -1
- package/dist/components/{p-7de53368.js → p-d99aa7e6.js} +6 -6
- package/dist/components/{p-7de53368.js.map → p-d99aa7e6.js.map} +1 -1
- package/dist/components/{p-93c4bf04.js → p-e4568321.js} +3 -3
- package/dist/components/{p-93c4bf04.js.map → p-e4568321.js.map} +1 -1
- package/dist/components/{p-d2858a06.js → p-e973d4dc.js} +2 -2
- package/dist/components/{p-d2858a06.js.map → p-e973d4dc.js.map} +1 -1
- package/dist/components/{p-cd56033a.js → p-ea55bd3b.js} +2 -2
- package/dist/components/{p-cd56033a.js.map → p-ea55bd3b.js.map} +1 -1
- package/dist/components/{p-e9c5a9aa.js → p-ee40eddf.js} +2 -2
- package/dist/components/{p-e9c5a9aa.js.map → p-ee40eddf.js.map} +1 -1
- package/dist/components/{p-4480cb87.js → p-ee851c65.js} +3 -3
- package/dist/components/{p-4480cb87.js.map → p-ee851c65.js.map} +1 -1
- package/dist/components/{p-cc02c4c8.js → p-fd043b82.js} +4 -4
- package/dist/components/{p-cc02c4c8.js.map → p-fd043b82.js.map} +1 -1
- package/dist/components/stzh-accordion-item.js +1 -1
- package/dist/components/stzh-accordion.js +1 -1
- package/dist/components/stzh-actions.js +1 -1
- package/dist/components/stzh-actionset.js +1 -1
- package/dist/components/stzh-amount.js +5 -5
- package/dist/components/stzh-anchornav.js +3 -3
- package/dist/components/stzh-anchornav.js.map +1 -1
- package/dist/components/stzh-app-nav.js +1 -1
- package/dist/components/stzh-appointments.js +11 -11
- package/dist/components/stzh-archivelist.js +4 -4
- package/dist/components/stzh-audio.js +3 -3
- package/dist/components/stzh-banner.js +1 -1
- package/dist/components/stzh-bathstatus-item.js +1 -1
- package/dist/components/stzh-bathstatus-list.js +3 -3
- package/dist/components/stzh-breadcrumb.js +1 -1
- package/dist/components/stzh-button.js +1 -1
- package/dist/components/stzh-calendar.js +1 -1
- package/dist/components/stzh-card-navigation.js +1 -1
- package/dist/components/stzh-card-searchresult.js +10 -10
- package/dist/components/stzh-card-superteaser.js +11 -11
- package/dist/components/stzh-card-superteaser.js.map +1 -1
- package/dist/components/stzh-card.js +1 -1
- package/dist/components/stzh-cardlist.js +1 -1
- package/dist/components/stzh-carousel.js +1 -1
- package/dist/components/stzh-checkbox.js +1 -1
- package/dist/components/stzh-checkboxgroup.js +3 -3
- package/dist/components/stzh-chip.js +1 -1
- package/dist/components/stzh-chipselect.js +1 -1
- package/dist/components/stzh-clamp.js +1 -1
- package/dist/components/stzh-contact-cv.js +2 -2
- package/dist/components/stzh-contact.js +3 -3
- package/dist/components/stzh-cspace.js +1 -1
- package/dist/components/stzh-cta.js +2 -2
- package/dist/components/stzh-datalist-item.js +1 -1
- package/dist/components/stzh-datalist.js +1 -1
- package/dist/components/stzh-datamessagelist-item.js +6 -6
- package/dist/components/stzh-datatable.js +13 -13
- package/dist/components/stzh-datepicker.js +1 -1
- package/dist/components/stzh-daterange.js +2 -2
- package/dist/components/stzh-details.js +1 -1
- package/dist/components/stzh-dialog.js +1 -1
- package/dist/components/stzh-disturber.js +2 -2
- package/dist/components/stzh-dropdown.js +1 -1
- package/dist/components/stzh-editor.js +1 -1
- package/dist/components/stzh-eventinfo.js +3 -3
- package/dist/components/stzh-feedreader-item.js +1 -1
- package/dist/components/stzh-feedreader.js +6 -6
- package/dist/components/stzh-fieldset.js +1 -1
- package/dist/components/stzh-figure.js +1 -1
- package/dist/components/stzh-footer.js +2 -2
- package/dist/components/stzh-gallery.js +3 -3
- package/dist/components/stzh-geo-ref-data.js +15 -15
- package/dist/components/stzh-ghettobox.js +1 -1
- package/dist/components/stzh-header.js +1 -1
- package/dist/components/stzh-heading.js +1 -1
- package/dist/components/stzh-homepage-service-highlights.js +21 -12
- package/dist/components/stzh-homepage-service-highlights.js.map +1 -1
- package/dist/components/stzh-http-error.js +3 -3
- package/dist/components/stzh-iframe.js +1 -1
- package/dist/components/stzh-input.js +1 -1
- package/dist/components/stzh-link.js +1 -1
- package/dist/components/stzh-menu-item.js +1 -1
- package/dist/components/stzh-message.js +1 -1
- package/dist/components/stzh-microsite-teaserlist.js +12 -12
- package/dist/components/stzh-monthyearpicker.js +3 -3
- package/dist/components/stzh-offline-indicator.js +3 -3
- package/dist/components/stzh-pagebottom.js +5 -5
- package/dist/components/stzh-pagecontent.js +1 -1
- package/dist/components/stzh-pagetitle-hero.js +1 -1
- package/dist/components/stzh-pagetitle-home.js +22 -12
- package/dist/components/stzh-pagetitle-home.js.map +1 -1
- package/dist/components/stzh-pagetitle.js +1 -1
- package/dist/components/stzh-pagination.js +1 -1
- package/dist/components/stzh-panorama.js +7 -7
- package/dist/components/stzh-pi-content-navigation.js +1 -1
- package/dist/components/stzh-pi-pagetitle.js +1 -1
- package/dist/components/stzh-pi-teaser.js +1 -1
- package/dist/components/stzh-poicard.js +1 -1
- package/dist/components/stzh-poilist.js +11 -11
- package/dist/components/stzh-popover.js +1 -1
- package/dist/components/stzh-print.js +1 -1
- package/dist/components/stzh-radio.js +1 -1
- package/dist/components/stzh-radiogroup.js +1 -1
- package/dist/components/stzh-readspeaker.js +2 -2
- package/dist/components/stzh-saptcha.js +4 -4
- package/dist/components/stzh-scrollup.js +1 -1
- package/dist/components/stzh-search.js +12 -12
- package/dist/components/stzh-section.js +1 -1
- package/dist/components/stzh-share.js +1 -1
- package/dist/components/stzh-sitemap.js +5 -5
- package/dist/components/stzh-skin-portal-mitwirken.js +1 -1
- package/dist/components/stzh-skin-portal-mitwirken.js.map +1 -1
- package/dist/components/stzh-socialmediastream-item.js +1 -1
- package/dist/components/stzh-socialmediastream.js +4 -4
- package/dist/components/stzh-sticky-actions.js +2 -2
- package/dist/components/stzh-sticky.js +1 -1
- package/dist/components/stzh-table.js +1 -1
- package/dist/components/stzh-tag.js +1 -1
- package/dist/components/stzh-text.js +1 -1
- package/dist/components/stzh-textandimage.js +1 -1
- package/dist/components/stzh-timeline-item.js +1 -1
- package/dist/components/stzh-timepicker.js +3 -3
- package/dist/components/stzh-toast.js +1 -1
- package/dist/components/stzh-toastbar.js +1 -1
- package/dist/components/stzh-toggle.js +3 -3
- package/dist/components/stzh-tooltip.js +1 -1
- package/dist/components/stzh-twocolumns.js +1 -1
- package/dist/components/stzh-upload.js +10 -10
- package/dist/components/stzh-vbz-carousel.js +1 -1
- package/dist/components/stzh-vbz-intro.js +3 -3
- package/dist/components/stzh-vbz-intro.js.map +1 -1
- package/dist/components/stzh-vbz-majorticker.js +3 -3
- package/dist/components/stzh-vbz-ticker.js +3 -3
- package/dist/components/stzh-youtube.js +2 -2
- package/dist/esm/{app-globals-dc4e2dd7.js → app-globals-993885c2.js} +2 -2
- package/dist/esm/{app-globals-dc4e2dd7.js.map → app-globals-993885c2.js.map} +1 -1
- package/dist/esm/loader.js +2 -2
- package/dist/esm/stzh-accordion_3.entry.js +2 -2
- package/dist/esm/stzh-accordion_3.entry.js.map +1 -1
- package/dist/esm/stzh-actions.entry.js +1 -1
- package/dist/esm/stzh-anchornav.entry.js +1 -1
- package/dist/esm/stzh-anchornav.entry.js.map +1 -1
- package/dist/esm/stzh-appointments.entry.js +1 -1
- package/dist/esm/stzh-audio.entry.js +1 -1
- package/dist/esm/stzh-badge_3.entry.js +1 -1
- package/dist/esm/stzh-bathstatus-list.entry.js +1 -1
- package/dist/esm/stzh-breadcrumb_2.entry.js +1 -1
- package/dist/esm/stzh-breadcrumb_2.entry.js.map +1 -1
- package/dist/esm/stzh-card-navigation.entry.js +1 -1
- package/dist/esm/stzh-card-searchresult.entry.js +1 -1
- package/dist/esm/stzh-card-superteaser.entry.js +2 -2
- package/dist/esm/stzh-card-superteaser.entry.js.map +1 -1
- package/dist/esm/stzh-card.entry.js +1 -1
- package/dist/esm/stzh-carousel.entry.js +1 -1
- package/dist/esm/stzh-checkbox_3.entry.js +2 -2
- package/dist/esm/stzh-checkbox_3.entry.js.map +1 -1
- package/dist/esm/stzh-checkboxgroup.entry.js +1 -1
- package/dist/esm/stzh-components.js +2 -2
- package/dist/esm/stzh-contact-cv.entry.js +1 -1
- package/dist/esm/stzh-contact.entry.js +1 -1
- package/dist/esm/stzh-cspace.entry.js +1 -1
- package/dist/esm/stzh-cta.entry.js +1 -1
- package/dist/esm/stzh-datalist_2.entry.js +1 -1
- package/dist/esm/stzh-datatable.entry.js +1 -1
- package/dist/esm/stzh-datepicker_3.entry.js +1 -1
- package/dist/esm/stzh-daterange.entry.js +1 -1
- package/dist/esm/stzh-details.entry.js +1 -1
- package/dist/esm/stzh-dialog.entry.js +1 -1
- package/dist/esm/stzh-disturber.entry.js +1 -1
- package/dist/esm/stzh-dropdown.entry.js +1 -1
- package/dist/esm/stzh-eventinfo.entry.js +1 -1
- package/dist/esm/stzh-feedreader-item.entry.js +1 -1
- package/dist/esm/stzh-feedreader.entry.js +1 -1
- package/dist/esm/stzh-figure.entry.js +1 -1
- package/dist/esm/stzh-footer.entry.js +1 -1
- package/dist/esm/stzh-ghettobox_3.entry.js +1 -1
- package/dist/esm/stzh-heading.entry.js +1 -1
- package/dist/esm/stzh-heading.entry.js.map +1 -1
- package/dist/esm/stzh-homepage-service-highlights.entry.js +17 -8
- package/dist/esm/stzh-homepage-service-highlights.entry.js.map +1 -1
- package/dist/esm/stzh-input.entry.js +1 -1
- package/dist/esm/stzh-link.entry.js +1 -1
- package/dist/esm/stzh-menu_2.entry.js +1 -1
- package/dist/esm/stzh-pagecontent.entry.js +1 -1
- package/dist/esm/stzh-pagetitle-hero.entry.js +1 -1
- package/dist/esm/stzh-pagetitle-home.entry.js +22 -12
- package/dist/esm/stzh-pagetitle-home.entry.js.map +1 -1
- package/dist/esm/stzh-pagetitle.entry.js +1 -1
- package/dist/esm/stzh-pi-content-navigation.entry.js +1 -1
- package/dist/esm/stzh-pi-pagetitle.entry.js +1 -1
- package/dist/esm/stzh-pi-teaser.entry.js +1 -1
- package/dist/esm/stzh-popover.entry.js +1 -1
- package/dist/esm/stzh-print_2.entry.js +1 -1
- package/dist/esm/stzh-readspeaker.entry.js +1 -1
- package/dist/esm/stzh-scrollup.entry.js +1 -1
- package/dist/esm/stzh-search.entry.js +1 -1
- package/dist/esm/stzh-section.entry.js +1 -1
- package/dist/esm/stzh-skin-portal-mitwirken.entry.js +1 -1
- package/dist/esm/stzh-skin-portal-mitwirken.entry.js.map +1 -1
- package/dist/esm/stzh-socialmediastream.entry.js +1 -1
- package/dist/esm/stzh-sticky-actions.entry.js +1 -1
- package/dist/esm/stzh-sticky.entry.js +1 -1
- package/dist/esm/stzh-table.entry.js +1 -1
- package/dist/esm/stzh-text.entry.js +1 -1
- package/dist/esm/stzh-text.entry.js.map +1 -1
- package/dist/esm/stzh-textandimage.entry.js +1 -1
- package/dist/esm/stzh-timeline-item.entry.js +1 -1
- package/dist/esm/stzh-toast_2.entry.js +1 -1
- package/dist/esm/stzh-toggle.entry.js +1 -1
- package/dist/esm/stzh-tooltip.entry.js +1 -1
- package/dist/esm/stzh-twocolumns.entry.js +1 -1
- package/dist/esm/stzh-upload.entry.js +1 -1
- package/dist/esm/stzh-vbz-intro.entry.js +1 -1
- package/dist/esm/stzh-vbz-intro.entry.js.map +1 -1
- package/dist/esm/{utils-a756a0c9.js → utils-2ad42b77.js} +6 -54
- package/dist/esm/utils-2ad42b77.js.map +1 -0
- package/dist/stzh-components/{p-c804ddf2.entry.js → p-020bc473.entry.js} +2 -2
- package/dist/stzh-components/p-06a4df88.entry.js +2 -0
- package/dist/stzh-components/{p-c32b673d.entry.js.map → p-06a4df88.entry.js.map} +1 -1
- package/dist/stzh-components/{p-24caf6c1.js → p-09b5eb01.js} +2 -2
- package/dist/stzh-components/p-09b5eb01.js.map +1 -0
- package/dist/stzh-components/p-0e4fb1f6.entry.js +2 -0
- package/dist/stzh-components/p-0e4fb1f6.entry.js.map +1 -0
- package/dist/stzh-components/{p-003bfdda.entry.js → p-10a74052.entry.js} +2 -2
- package/dist/stzh-components/{p-4840a0f7.entry.js → p-13a77a74.entry.js} +2 -2
- package/dist/stzh-components/{p-98c1b82e.entry.js → p-16e70122.entry.js} +2 -2
- package/dist/stzh-components/{p-1ca34f18.entry.js → p-1f2a3ae6.entry.js} +2 -2
- package/dist/stzh-components/p-221194a4.js +2 -0
- package/dist/stzh-components/{p-19d6b43e.js.map → p-221194a4.js.map} +1 -1
- package/dist/stzh-components/{p-d4d8e3b8.entry.js → p-23aa2f5e.entry.js} +2 -2
- package/dist/stzh-components/{p-1f741338.entry.js → p-26aee6b2.entry.js} +2 -2
- package/dist/stzh-components/p-26aee6b2.entry.js.map +1 -0
- package/dist/stzh-components/p-2b59864c.entry.js +2 -0
- package/dist/stzh-components/p-2b59864c.entry.js.map +1 -0
- package/dist/stzh-components/{p-8485a36a.entry.js → p-2d453802.entry.js} +2 -2
- package/dist/stzh-components/{p-20b8f661.entry.js → p-3221e8e5.entry.js} +2 -2
- package/dist/stzh-components/{p-645f4d03.entry.js → p-34c56740.entry.js} +2 -2
- package/dist/stzh-components/{p-0d166cca.entry.js → p-3ef0956b.entry.js} +2 -2
- package/dist/stzh-components/{p-21a029ec.entry.js → p-41778942.entry.js} +2 -2
- package/dist/stzh-components/{p-d9dd1c3e.entry.js → p-429af819.entry.js} +2 -2
- package/dist/stzh-components/{p-caa73f07.entry.js → p-44018d4b.entry.js} +2 -2
- package/dist/stzh-components/{p-aa045255.entry.js → p-47e10f01.entry.js} +2 -2
- package/dist/stzh-components/p-47e10f01.entry.js.map +1 -0
- package/dist/stzh-components/{p-f9a412d8.entry.js → p-50e8431f.entry.js} +2 -2
- package/dist/stzh-components/{p-970c4474.entry.js → p-5178ea62.entry.js} +2 -2
- package/dist/stzh-components/{p-7f1b1ac4.entry.js → p-5939a40a.entry.js} +2 -2
- package/dist/stzh-components/{p-7f1b1ac4.entry.js.map → p-5939a40a.entry.js.map} +1 -1
- package/dist/stzh-components/{p-e45134ff.entry.js → p-59984acf.entry.js} +2 -2
- package/dist/stzh-components/{p-66fc9e64.entry.js → p-5b715075.entry.js} +2 -2
- package/dist/stzh-components/{p-a9ae4450.entry.js → p-5c6ec1b8.entry.js} +2 -2
- package/dist/stzh-components/p-5dc20152.entry.js +2 -0
- package/dist/stzh-components/p-5dc20152.entry.js.map +1 -0
- package/dist/stzh-components/{p-4c24fe27.entry.js → p-7a3be0f1.entry.js} +2 -2
- package/dist/stzh-components/{p-a1202b5f.entry.js → p-82c0d7be.entry.js} +2 -2
- package/dist/stzh-components/{p-dd5d4c39.entry.js → p-8516eea3.entry.js} +2 -2
- package/dist/stzh-components/{p-e945b00e.entry.js → p-8a0e7cdd.entry.js} +2 -2
- package/dist/stzh-components/{p-27fe663d.entry.js → p-94764282.entry.js} +2 -2
- package/dist/stzh-components/{p-ad754693.entry.js → p-95a0a398.entry.js} +2 -2
- package/dist/stzh-components/{p-111800e9.entry.js → p-9a776f85.entry.js} +2 -2
- package/dist/stzh-components/{p-70707b8e.entry.js → p-a28b5894.entry.js} +2 -2
- package/dist/stzh-components/{p-61be006b.entry.js → p-a5709e94.entry.js} +2 -2
- package/dist/stzh-components/{p-61be006b.entry.js.map → p-a5709e94.entry.js.map} +1 -1
- package/dist/stzh-components/{p-0bfc528d.entry.js → p-a5d557ac.entry.js} +2 -2
- package/dist/stzh-components/{p-1ce029b5.entry.js → p-a61538b1.entry.js} +2 -2
- package/dist/stzh-components/{p-adde0fce.entry.js → p-ac14e15c.entry.js} +2 -2
- package/dist/stzh-components/p-ae029763.entry.js +2 -0
- package/dist/stzh-components/p-ae029763.entry.js.map +1 -0
- package/dist/stzh-components/{p-fecffdfc.entry.js → p-b6ea1a1c.entry.js} +2 -2
- package/dist/stzh-components/{p-8adab188.entry.js → p-b7363fe1.entry.js} +2 -2
- package/dist/stzh-components/{p-aafeeae9.entry.js → p-ba551ad7.entry.js} +2 -2
- package/dist/stzh-components/{p-909e12d3.entry.js → p-bed50961.entry.js} +2 -2
- package/dist/stzh-components/{p-aefe968c.entry.js → p-c27e6b43.entry.js} +2 -2
- package/dist/stzh-components/{p-b26ca94e.entry.js → p-c80885e9.entry.js} +2 -2
- package/dist/stzh-components/{p-29fd8bc1.entry.js → p-cd5641a5.entry.js} +2 -2
- package/dist/stzh-components/{p-0460eba4.entry.js → p-cde3a344.entry.js} +2 -2
- package/dist/stzh-components/{p-77e044d8.entry.js → p-d5206c53.entry.js} +2 -2
- package/dist/stzh-components/{p-fb22b090.entry.js → p-da489363.entry.js} +2 -2
- package/dist/stzh-components/p-db4fddd7.entry.js +2 -0
- package/dist/stzh-components/p-db4fddd7.entry.js.map +1 -0
- package/dist/stzh-components/{p-52cbf6d6.entry.js → p-dbc45bd8.entry.js} +2 -2
- package/dist/stzh-components/{p-8421ff45.entry.js → p-dd9feb46.entry.js} +2 -2
- package/dist/stzh-components/{p-2b35e2a8.entry.js → p-e2f24462.entry.js} +2 -2
- package/dist/stzh-components/{p-0d5b8b1e.entry.js → p-e63a6dce.entry.js} +2 -2
- package/dist/stzh-components/{p-cb5740f3.entry.js → p-eccdd8b7.entry.js} +2 -2
- package/dist/stzh-components/{p-37ada736.entry.js → p-ee83fbac.entry.js} +2 -2
- package/dist/stzh-components/{p-f4122c15.entry.js → p-ef2e8303.entry.js} +2 -2
- package/dist/stzh-components/{p-c7ef6356.entry.js → p-f109bce4.entry.js} +2 -2
- package/dist/stzh-components/{p-2944edb9.entry.js → p-f36a7102.entry.js} +2 -2
- package/dist/stzh-components/{p-60964d4f.entry.js → p-f4bd536b.entry.js} +2 -2
- package/dist/stzh-components/{p-34ce5dc9.entry.js → p-f53341ce.entry.js} +2 -2
- package/dist/stzh-components/{p-b61dd422.entry.js → p-f91f7483.entry.js} +2 -2
- package/dist/stzh-components/{p-828b7874.entry.js → p-f94a05c6.entry.js} +2 -2
- package/dist/stzh-components/{p-85d44b8a.entry.js → p-fabd85ee.entry.js} +2 -2
- package/dist/stzh-components/{p-8854272d.entry.js → p-fbde302d.entry.js} +2 -2
- package/dist/stzh-components/p-ffb0f6e6.entry.js +2 -0
- package/dist/stzh-components/p-ffb0f6e6.entry.js.map +1 -0
- package/dist/stzh-components/stzh-components.css +181 -77
- package/dist/stzh-components/stzh-components.esm.js +1 -1
- package/dist/stzh-components/stzh-components.esm.js.map +1 -1
- package/dist/types/components/CMS/stzh-homepage-service-highlights/stzh-homepage-service-highlights.d.ts +3 -1
- package/dist/types/utils/utils.d.ts +1 -0
- package/package.json +1 -1
- package/dist/cjs/utils-5a53d7eb.js.map +0 -1
- package/dist/components/p-047a8cfd.js.map +0 -1
- package/dist/components/p-bcc02189.js.map +0 -1
- package/dist/components/p-c28490de.js.map +0 -1
- package/dist/components/p-d1f98854.js.map +0 -1
- package/dist/components/p-dca85cea.js.map +0 -1
- package/dist/esm/utils-a756a0c9.js.map +0 -1
- package/dist/stzh-components/p-1784d8e9.entry.js +0 -2
- package/dist/stzh-components/p-1784d8e9.entry.js.map +0 -1
- package/dist/stzh-components/p-19d6b43e.js +0 -2
- package/dist/stzh-components/p-1f741338.entry.js.map +0 -1
- package/dist/stzh-components/p-24caf6c1.js.map +0 -1
- package/dist/stzh-components/p-7265a57d.entry.js +0 -2
- package/dist/stzh-components/p-7265a57d.entry.js.map +0 -1
- package/dist/stzh-components/p-aa045255.entry.js.map +0 -1
- package/dist/stzh-components/p-c32b673d.entry.js +0 -2
- package/dist/stzh-components/p-c568ad41.entry.js +0 -2
- package/dist/stzh-components/p-c568ad41.entry.js.map +0 -1
- package/dist/stzh-components/p-d40c54da.entry.js +0 -2
- package/dist/stzh-components/p-d40c54da.entry.js.map +0 -1
- package/dist/stzh-components/p-ea7f260b.entry.js +0 -2
- package/dist/stzh-components/p-ea7f260b.entry.js.map +0 -1
- package/dist/stzh-components/p-eb6e4974.entry.js +0 -2
- package/dist/stzh-components/p-eb6e4974.entry.js.map +0 -1
- /package/dist/stzh-components/{p-c804ddf2.entry.js.map → p-020bc473.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-003bfdda.entry.js.map → p-10a74052.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-4840a0f7.entry.js.map → p-13a77a74.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-98c1b82e.entry.js.map → p-16e70122.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-1ca34f18.entry.js.map → p-1f2a3ae6.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-d4d8e3b8.entry.js.map → p-23aa2f5e.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-8485a36a.entry.js.map → p-2d453802.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-20b8f661.entry.js.map → p-3221e8e5.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-645f4d03.entry.js.map → p-34c56740.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-0d166cca.entry.js.map → p-3ef0956b.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-21a029ec.entry.js.map → p-41778942.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-d9dd1c3e.entry.js.map → p-429af819.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-caa73f07.entry.js.map → p-44018d4b.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-f9a412d8.entry.js.map → p-50e8431f.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-970c4474.entry.js.map → p-5178ea62.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-e45134ff.entry.js.map → p-59984acf.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-66fc9e64.entry.js.map → p-5b715075.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-a9ae4450.entry.js.map → p-5c6ec1b8.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-4c24fe27.entry.js.map → p-7a3be0f1.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-a1202b5f.entry.js.map → p-82c0d7be.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-dd5d4c39.entry.js.map → p-8516eea3.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-e945b00e.entry.js.map → p-8a0e7cdd.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-27fe663d.entry.js.map → p-94764282.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-ad754693.entry.js.map → p-95a0a398.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-111800e9.entry.js.map → p-9a776f85.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-70707b8e.entry.js.map → p-a28b5894.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-0bfc528d.entry.js.map → p-a5d557ac.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-1ce029b5.entry.js.map → p-a61538b1.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-adde0fce.entry.js.map → p-ac14e15c.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-fecffdfc.entry.js.map → p-b6ea1a1c.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-8adab188.entry.js.map → p-b7363fe1.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-aafeeae9.entry.js.map → p-ba551ad7.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-909e12d3.entry.js.map → p-bed50961.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-aefe968c.entry.js.map → p-c27e6b43.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-b26ca94e.entry.js.map → p-c80885e9.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-29fd8bc1.entry.js.map → p-cd5641a5.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-0460eba4.entry.js.map → p-cde3a344.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-77e044d8.entry.js.map → p-d5206c53.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-fb22b090.entry.js.map → p-da489363.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-52cbf6d6.entry.js.map → p-dbc45bd8.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-8421ff45.entry.js.map → p-dd9feb46.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-2b35e2a8.entry.js.map → p-e2f24462.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-0d5b8b1e.entry.js.map → p-e63a6dce.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-cb5740f3.entry.js.map → p-eccdd8b7.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-37ada736.entry.js.map → p-ee83fbac.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-f4122c15.entry.js.map → p-ef2e8303.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-c7ef6356.entry.js.map → p-f109bce4.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-2944edb9.entry.js.map → p-f36a7102.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-60964d4f.entry.js.map → p-f4bd536b.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-34ce5dc9.entry.js.map → p-f53341ce.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-b61dd422.entry.js.map → p-f91f7483.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-828b7874.entry.js.map → p-f94a05c6.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-85d44b8a.entry.js.map → p-fabd85ee.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-8854272d.entry.js.map → p-fbde302d.entry.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-8f01554b.js';
|
|
2
|
-
import { s as setPropsIfNull } from './p-
|
|
2
|
+
import { s as setPropsIfNull } from './p-1c261255.js';
|
|
3
3
|
import { d as defineCustomElement$3 } from './p-486f6cb3.js';
|
|
4
|
-
import { d as defineCustomElement$2 } from './p-
|
|
4
|
+
import { d as defineCustomElement$2 } from './p-8063d484.js';
|
|
5
5
|
import { d as defineCustomElement$1 } from './p-0300f421.js';
|
|
6
6
|
|
|
7
7
|
const stzhGhettoboxCss = ".sc-stzh-ghettobox-h{font-family:var(--stzh-font-family-medium);font-weight:var(--stzh-font-weight-medium);font-style:var(--stzh-font-style-medium);color:var(--stzh-base-color);box-sizing:border-box;display:block}[hidden].sc-stzh-ghettobox-h,[stzh-hidden].sc-stzh-ghettobox-h{display:none}.sc-stzh-ghettobox-h::selection{color:var(--stzh-selection-color);background-color:var(--stzh-selection-background-color)}.sc-stzh-ghettobox-h *.sc-stzh-ghettobox,.sc-stzh-ghettobox-h *.sc-stzh-ghettobox::before,.sc-stzh-ghettobox-h *.sc-stzh-ghettobox::after{box-sizing:border-box;text-underline-offset:var(--stzh-link-text-underline-offset);text-decoration-thickness:var(--stzh-link-text-decoration-thickness);-webkit-text-decoration-skip-ink:var(--stzh-link-text-decoration-skip-ink);text-decoration-skip-ink:var(--stzh-link-text-decoration-skip-ink)}.sc-stzh-ghettobox-h .has-focus.sc-stzh-ghettobox{outline:var(--stzh-flyingfocus-color) solid 0.125rem;outline-offset:0.125rem}.sc-stzh-ghettobox-h .stzh-fylingfocus-focused.sc-stzh-ghettobox{outline-style:none !important}.sc-stzh-ghettobox-h .stzh-fylingfocus-focused.sc-stzh-ghettobox::-moz-focus-inner{border:0 !important}.sc-stzh-ghettobox-h{--stzh-flyingfocus-color:var(--stzh-base-invert-color);--stzh-base-color:var(--stzh-base-invert-color);--stzh-base-lead-color:var(--stzh-base-invert-color);--stzh-base-border-color:var(--stzh-base-invert-color);--stzh-heading-color:var(--stzh-base-invert-color);--stzh-link-color:var(--stzh-base-invert-color);--stzh-link-hover-color:var(--stzh-base-invert-color);--stzh-button-color:var(--stzh-color-primary);--stzh-button-background-color:var(--stzh-base-invert-color);--stzh-button-hover-color:var(--stzh-color-primary);--stzh-button-hover-background-color:var(--stzh-color-white80op);--stzh-button-disabled-color:var(--stzh-color-primary);--stzh-button-disabled-background-color:var(--stzh-color-white40op);--stzh-button-secondary-color:var(--stzh-base-invert-color);--stzh-button-secondary-background-color:var(--stzh-color-white40op);--stzh-button-secondary-hover-color:var(--stzh-base-invert-color);--stzh-button-secondary-hover-background-color:var(--stzh-color-white30op);--stzh-button-secondary-disabled-color:var(--stzh-color-white60op);--stzh-button-secondary-disabled-background-color:var(--stzh-color-white40op);--stzh-button-tertiary-color:var(--stzh-base-invert-color);--stzh-button-tertiary-hover-color:var(--stzh-base-invert-color);--stzh-button-tertiary-hover-background-color:var(--stzh-color-white20op);--stzh-button-tertiary-disabled-color:var(--stzh-color-white70op);--stzh-button-active-color:var(--stzh-color-primary);--stzh-button-active-background-color:var(--stzh-color-white80op);--stzh-button-active-hover-color:var(--stzh-color-primary);--stzh-button-active-hover-background-color:var(--stzh-color-white80op);--background-color:var(--stzh-color-error60);--color:var(--stzh-base-invert-color);--richtext-color:var(--color)}.stzh-ghettobox.sc-stzh-ghettobox{position:relative;color:var(--color);box-shadow:var(--stzh-box-shadow-message);background-color:var(--background-color);--stzh-button-secondary-color:var(--stzh-color-error60);--stzh-button-secondary-background-color:var(--stzh-color-white90op);--stzh-button-secondary-hover-color:var(--stzh-color-error60);--stzh-button-secondary-hover-background-color:var(--stzh-color-white);--stzh-button-secondary-disabled-color:var(--stzh-color-white60op);--stzh-button-secondary-disabled-background-color:var(--stzh-color-white40op)}.stzh-ghettobox__container.sc-stzh-ghettobox{margin-left:1.25rem;margin-right:1.25rem;padding-top:var(--stzh-space-xxlarge);padding-bottom:var(--stzh-space-xxlarge)}@media screen and (min-width: 600px){.stzh-ghettobox__container.sc-stzh-ghettobox{margin-left:2rem;margin-right:2rem}}@media screen and (min-width: 900px){.stzh-ghettobox__container.sc-stzh-ghettobox{margin-left:2.5rem;margin-right:2.5rem}}@media screen and (min-width: 1260px){.stzh-ghettobox__container.sc-stzh-ghettobox{margin-left:4rem;margin-right:4rem}}@media screen and (min-width: 1600px){.stzh-ghettobox__container.sc-stzh-ghettobox{margin-left:auto;margin-right:auto;max-width:84.25rem}}@media screen and (min-width: 900px){.stzh-ghettobox__container.sc-stzh-ghettobox{padding-top:var(--stzh-space-xxxlarge)}}@media screen and (min-width: 1260px){.stzh-ghettobox__container.sc-stzh-ghettobox{padding-top:var(--stzh-space-xxxxlarge)}}@media screen and (min-width: 900px){.stzh-ghettobox__container.sc-stzh-ghettobox{padding-bottom:var(--stzh-space-xxxlarge)}}@media screen and (min-width: 1260px){.stzh-ghettobox__container.sc-stzh-ghettobox{padding-bottom:var(--stzh-space-xxxxlarge)}}.stzh-ghettobox__hidden-title.sc-stzh-ghettobox{border:0;clip:rect(0 0 0 0);clip-path:inset(100%);width:0.0625rem;height:0.0625rem;overflow:hidden;padding:0;position:absolute}.stzh-ghettobox__message.sc-stzh-ghettobox{gap:var(--stzh-space-medium);display:flex;flex-direction:column}@media screen and (min-width: 600px){.stzh-ghettobox__message.sc-stzh-ghettobox{gap:var(--stzh-space-large)}}@media screen and (min-width: 900px){.stzh-ghettobox__message.sc-stzh-ghettobox{gap:var(--stzh-space-xlarge)}}@media screen and (min-width: 1260px){.stzh-ghettobox__message.sc-stzh-ghettobox{gap:var(--stzh-space-xxlarge)}}.stzh-ghettobox__main-title.sc-stzh-ghettobox{font-family:var(--stzh-font-family-title);font-weight:var(--stzh-font-weight-title);font-style:var(--stzh-font-style-title);font-size:var(--stzh-font-curve-h2-default-font-size, var(--stzh-font-deci-font-size));line-height:var(--stzh-font-curve-h2-default-heading-line-height, var(--stzh-font-deci-heading-line-height));letter-spacing:var(--stzh-font-curve-h2-default-heading-letter-spacing);margin:0;color:inherit}@media screen and (min-width: 600px){.stzh-ghettobox__main-title.sc-stzh-ghettobox{font-size:var(--stzh-font-curve-h2-small-font-size, var(--stzh-font-deca-font-size));line-height:var(--stzh-font-curve-h2-small-heading-line-height, var(--stzh-font-deca-text-line-height));letter-spacing:var(--stzh-font-curve-h2-small-heading-letter-spacing, var(--stzh-font-deca-text-letter-spacing))}}@media screen and (min-width: 900px){.stzh-ghettobox__main-title.sc-stzh-ghettobox{font-size:var(--stzh-font-curve-h2-medium-font-size, var(--stzh-font-hecto-font-size));line-height:var(--stzh-font-curve-h2-medium-heading-line-height, var(--stzh-font-hecto-text-line-height));letter-spacing:var(--stzh-font-curve-h2-medium-heading-letter-spacing, var(--stzh-font-hecto-text-letter-spacing))}}@media screen and (min-width: 1600px){.stzh-ghettobox__main-title.sc-stzh-ghettobox{font-size:var(--stzh-font-curve-h2-ultra-font-size, var(--stzh-font-kilo-font-size));line-height:var(--stzh-font-curve-h2-ultra-heading-line-height, var(--stzh-font-kilo-text-line-height));letter-spacing:var(--stzh-font-curve-h2-ultra-heading-letter-spacing, var(--stzh-font-kilo-text-letter-spacing))}}.stzh-ghettobox__main-title.sc-stzh-ghettobox:not(:empty){margin-bottom:var(--stzh-space-medium)}@media screen and (min-width: 600px){.stzh-ghettobox__main-title.sc-stzh-ghettobox:not(:empty){margin-bottom:var(--stzh-space-large)}}@media screen and (min-width: 900px){.stzh-ghettobox__main-title.sc-stzh-ghettobox:not(:empty){margin-bottom:var(--stzh-space-xlarge)}}@media screen and (min-width: 1260px){.stzh-ghettobox__main-title.sc-stzh-ghettobox:not(:empty){margin-bottom:var(--stzh-space-xxlarge)}}.stzh-ghettobox__description.sc-stzh-ghettobox{font-size:var(--stzh-font-curve-p1-default-font-size, var(--stzh-font-milli-font-size));line-height:var(--stzh-font-curve-p1-default-text-line-height, var(--stzh-font-milli-text-line-height));letter-spacing:var(--stzh-font-curve-p1-default-text-letter-spacing);--stzh-base-color:var(--richtext-color)}@media screen and (min-width: 900px){.stzh-ghettobox__description.sc-stzh-ghettobox{font-size:var(--stzh-font-curve-p1-medium-font-size, var(--stzh-font-centi-font-size));line-height:var(--stzh-font-curve-p1-medium-text-line-height, var(--stzh-font-centi-text-line-height));letter-spacing:var(--stzh-font-curve-p1-medium-text-letter-spacing)}}.stzh-ghettobox__description.sc-stzh-ghettobox:not(:empty){margin-bottom:var(--stzh-space-xsmall)}@media screen and (min-width: 600px){.stzh-ghettobox__description.sc-stzh-ghettobox:not(:empty){margin-bottom:var(--stzh-space-small)}}@media screen and (min-width: 900px){.stzh-ghettobox__description.sc-stzh-ghettobox:not(:empty){margin-bottom:var(--stzh-space-medium)}}@media screen and (min-width: 1260px){.stzh-ghettobox__description.sc-stzh-ghettobox:not(:empty){margin-bottom:var(--stzh-space-xlarge)}}.stzh-ghettobox__button.sc-stzh-ghettobox{display:grid}@media screen and (min-width: 600px){.stzh-ghettobox__button.sc-stzh-ghettobox{justify-content:start}}.stzh-ghettobox__close.sc-stzh-ghettobox{position:absolute;top:0;right:0}@media screen and (min-width: 600px){.stzh-ghettobox__close.sc-stzh-ghettobox{top:0.625rem;right:0.625rem}}";
|
|
@@ -117,4 +117,4 @@ function defineCustomElement() {
|
|
|
117
117
|
|
|
118
118
|
export { StzhGhettobox as S, defineCustomElement as d };
|
|
119
119
|
|
|
120
|
-
//# sourceMappingURL=p-
|
|
120
|
+
//# sourceMappingURL=p-71b15229.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-
|
|
1
|
+
{"file":"p-71b15229.js","mappings":"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","names":[],"sources":["src/components/CMS/stzh-ghettobox/stzh-ghettobox.scss?tag=stzh-ghettobox&encapsulation=scoped","src/components/CMS/stzh-ghettobox/stzh-ghettobox.tsx"],"sourcesContent":["/*\n * @prop --background-color: Background color of ghettobox\n */\n\n:host {\n @include base-invert;\n @include button-invert;\n\n --background-color: #{$colorError60};\n --color: #{$baseInvertColor};\n --richtext-color: var(--color);\n}\n\n.stzh-ghettobox {\n position: relative;\n color: var(--color);\n box-shadow: $boxShadowMessage;\n background-color: var(--background-color);\n\n --stzh-button-secondary-color: #{$colorError60};\n --stzh-button-secondary-background-color: #{$colorWhite90op};\n\n --stzh-button-secondary-hover-color: #{$colorError60};\n --stzh-button-secondary-hover-background-color: #{$colorWhite};\n\n --stzh-button-secondary-disabled-color: #{$colorWhite60op};\n --stzh-button-secondary-disabled-background-color: #{$colorWhite40op};\n\n &__container {\n @include container;\n @include spaceCurve('padding-top', 'large');\n @include spaceCurve('padding-bottom', 'large');\n }\n\n &__hidden-title {\n @include visuallyhidden;\n }\n\n &__message {\n @include spaceCurve('gap', 'regular');\n display: flex;\n flex-direction: column;\n }\n\n &__main-title {\n @include font('title');\n @include fontCurve('h2', 'heading');\n margin: 0;\n color: inherit;\n\n &:not(:empty) {\n @include spaceCurve('margin-bottom', 'regular');\n }\n }\n\n &__description {\n @include fontCurve('p1');\n --stzh-base-color: var(--richtext-color);\n\n &:not(:empty) {\n @include spaceCurve('margin-bottom', 'small');\n }\n }\n\n &__button {\n display: grid;\n\n @include mq($from: small) {\n justify-content: start;\n }\n }\n\n &__close {\n position: absolute;\n top: 0;\n right: 0;\n\n @include mq($from: small) {\n top: 10px;\n right: 10px;\n }\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from \"@stencil/core\";\n\nimport { StzhGhettoboxCloseEvent, StzhGhettoboxOpenEvent } from \"../../../index\";\n\nimport { setPropsIfNull } from \"../../../utils/utils\";\nimport { StzhGhettoboxLocalizedText } from \"./stzh-ghettobox.localization\";\n\n/**\n * @slot - Slot for description content (use instead of description property)\n * @slot button - Slot for button element\n */\n@Component({\n tag: \"stzh-ghettobox\",\n styleUrl: \"stzh-ghettobox.scss\",\n scoped: true,\n})\nexport class StzhGhettobox {\n /** Overwrite hidden h1 title */\n @Prop() hiddenTitle: string = \"\";\n\n /** Main title */\n @Prop() mainTitle: string = \"\";\n\n /** Description */\n @Prop() description: string = \"\";\n\n /** Hide close button */\n @Prop() hideClose: boolean = false;\n\n /** Translation strings */\n @Prop() localization: StzhGhettoboxLocalizedText;\n\n /** Ghettobox open event */\n @Event() stzhOpen: EventEmitter<StzhGhettoboxOpenEvent>;\n\n /** Ghettobox close event */\n @Event() stzhClose: EventEmitter<StzhGhettoboxCloseEvent>;\n\n @Element() element: HTMLStzhGhettoboxElement;\n\n /** Open state */\n @State() open: boolean = true;\n\n @Method()\n async show() {\n this.open = true;\n this.stzhOpen.emit({\n component: \"stzh-ghettobox\",\n });\n }\n\n @Method()\n async hide() {\n this.open = false;\n this.stzhClose.emit({\n component: \"stzh-ghettobox\",\n });\n }\n\n private observer: MutationObserver;\n\n private onCloseButtonClick = () => {\n this.hide();\n };\n\n private init = () => {\n const button = this.element.querySelector('stzh-button[slot=\"button\"]');\n\n if (button) {\n setPropsIfNull(button, {\n size: \"small\",\n sizeMedium: \"default\",\n variant: \"secondary\",\n effect: \"cta\",\n icon: \"arrow-right\",\n iconPosition: \"right\",\n } as HTMLStzhButtonElement);\n }\n };\n\n async componentWillLoad() {\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"ghettobox\");\n }\n }\n\n connectedCallback() {\n this.init();\n\n this.observer = new MutationObserver(this.init);\n this.observer.observe(this.element, {\n childList: true,\n subtree: true,\n });\n }\n\n disconnectedCallback() {\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n\n render() {\n const classes = {\n \"stzh-ghettobox\": true,\n \"stzh-ghettobox--has-close-button\": !this.hideClose,\n };\n\n // TODO: Temporary workaround/bugfix for readspeaker class \"rs_skip\" can be removed once Readspeaker update with bugfix has arrived (ETA end of 2024).\n return (\n <Host hidden={!this.open}>\n <div class={{ ...classes, rs_skip: !this.open }} aria-hidden={this.open ? \"false\" : \"true\"}>\n <div class=\"stzh-ghettobox__container\">\n <h1 class=\"stzh-ghettobox__hidden-title\">{this.hiddenTitle || this.localization.hiddenTitle}</h1>\n <div class=\"stzh-ghettobox__message\">\n <div class=\"stzh-ghettobox__text\">\n <h2 class=\"stzh-ghettobox__main-title\">{this.mainTitle}</h2>\n <div class=\"stzh-ghettobox__description\">{this.description ? this.description : <slot></slot>}</div>\n </div>\n <div class=\"stzh-ghettobox__button\">\n <slot name=\"button\"></slot>\n </div>\n </div>\n {!this.hideClose && (\n <stzh-button\n class=\"stzh-ghettobox__close\"\n onClick={this.onCloseButtonClick}\n a11yLabel={this.localization.close}\n variant=\"tertiary\"\n size=\"small\"\n iconOnly={true}\n icon=\"close-big\"\n ></stzh-button>\n )}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-8f01554b.js';
|
|
2
|
-
import { i as isStzhElement } from './p-
|
|
2
|
+
import { i as isStzhElement } from './p-1c261255.js';
|
|
3
3
|
import { a as addMediaChangeListener, r as removeMediaChangeListener, m as media } from './p-f4adb3cd.js';
|
|
4
4
|
|
|
5
5
|
const stzhCarouselCss = ".sc-stzh-carousel-h{font-family:var(--stzh-font-family-medium);font-weight:var(--stzh-font-weight-medium);font-style:var(--stzh-font-style-medium);color:var(--stzh-base-color);box-sizing:border-box;display:block}[hidden].sc-stzh-carousel-h,[stzh-hidden].sc-stzh-carousel-h{display:none}.sc-stzh-carousel-h::selection{color:var(--stzh-selection-color);background-color:var(--stzh-selection-background-color)}.sc-stzh-carousel-h *.sc-stzh-carousel,.sc-stzh-carousel-h *.sc-stzh-carousel::before,.sc-stzh-carousel-h *.sc-stzh-carousel::after{box-sizing:border-box;text-underline-offset:var(--stzh-link-text-underline-offset);text-decoration-thickness:var(--stzh-link-text-decoration-thickness);-webkit-text-decoration-skip-ink:var(--stzh-link-text-decoration-skip-ink);text-decoration-skip-ink:var(--stzh-link-text-decoration-skip-ink)}.sc-stzh-carousel-h .has-focus.sc-stzh-carousel{outline:var(--stzh-flyingfocus-color) solid 0.125rem;outline-offset:0.125rem}.sc-stzh-carousel-h .stzh-fylingfocus-focused.sc-stzh-carousel{outline-style:none !important}.sc-stzh-carousel-h .stzh-fylingfocus-focused.sc-stzh-carousel::-moz-focus-inner{border:0 !important}.sc-stzh-carousel-h{--gutter:var(--stzh-space-medium);--peek:calc(var(--peek-in, 0px) + var(--peek-out, 0px));--peek-in:calc(var(--stzh-space-medium) + var(--stzh-space-medium));--padding-top:0px;--padding-bottom:0px;--snap-stop:always;--slides:1;--slide-size:calc((100% - (var(--slides) - 1) * var(--gutter)) / var(--slides))}@media screen and (min-width: 600px){.sc-stzh-carousel-h{--gutter:var(--stzh-space-large)}}@media screen and (min-width: 900px){.sc-stzh-carousel-h{--gutter:var(--stzh-space-xlarge)}}@media screen and (min-width: 1260px){.sc-stzh-carousel-h{--gutter:var(--stzh-space-xxlarge)}}@media screen and (min-width: 600px){.sc-stzh-carousel-h{--peek-in:calc(var(--stzh-space-xxxlarge) + var(--stzh-space-xlarge))}}@media screen and (min-width: 900px){.sc-stzh-carousel-h{--peek-in:calc(var(--stzh-space-big) + var(--stzh-space-xxlarge))}}.sc-stzh-carousel-h.sc-stzh-carousel-s>*,.sc-stzh-carousel-h .sc-stzh-carousel-s>*{width:100%;height:inherit;flex-shrink:0;scroll-snap-align:start;scroll-snap-stop:var(--snap-stop);transition:opacity var(--stzh-base-transition-animation-speed)}.sc-stzh-carousel-h .sc-stzh-carousel-s [inert]{opacity:0.5}.sc-stzh-carousel-h.sc-stzh-carousel-s>*,.sc-stzh-carousel-h.sc-stzh-carousel-s>*:where(stzh-figure[inert]),.sc-stzh-carousel-h .sc-stzh-carousel-s>*:where(stzh-figure[inert]){--caption-opacity:0}.sc-stzh-carousel-h .sc-stzh-carousel-s img{-webkit-user-drag:none;user-drag:none;-webkit-user-select:none;user-select:none}.sc-stzh-carousel-h.sc-stzh-carousel-s>[slot=actions],.sc-stzh-carousel-h .sc-stzh-carousel-s>[slot=actions]{position:absolute;top:0;left:0;z-index:1;pointer-events:none;padding:0 var(--peek)}@media print{.sc-stzh-carousel-h.sc-stzh-carousel-s>[slot=actions],.sc-stzh-carousel-h .sc-stzh-carousel-s>[slot=actions]{display:none}}.sc-stzh-carousel-h.sc-stzh-carousel-s>[slot=actions],.sc-stzh-carousel-h.sc-stzh-carousel-s>[slot=actions] stzh-text,.sc-stzh-carousel-h .sc-stzh-carousel-s>[slot=actions] stzh-text{width:auto}.sc-stzh-carousel-h.sc-stzh-carousel-s>[slot=actions],.sc-stzh-carousel-h.sc-stzh-carousel-s>[slot=actions] stzh-button,.sc-stzh-carousel-h .sc-stzh-carousel-s>[slot=actions] stzh-button{pointer-events:all}.sc-stzh-carousel-h.sc-stzh-carousel-s>[slot=actions],.sc-stzh-carousel-h.sc-stzh-carousel-s>[slot=actions] .stzh-carousel-action-previous,.sc-stzh-carousel-h .sc-stzh-carousel-s>[slot=actions] .stzh-carousel-action-previous,.sc-stzh-carousel-h.sc-stzh-carousel-s>[slot=actions] .stzh-carousel-action-next,.sc-stzh-carousel-h .sc-stzh-carousel-s>[slot=actions] .stzh-carousel-action-next{position:absolute;top:50%;transform:translateY(-50%)}.sc-stzh-carousel-h.sc-stzh-carousel-s>[slot=actions],.sc-stzh-carousel-h.sc-stzh-carousel-s>[slot=actions] .stzh-carousel-action-previous,.sc-stzh-carousel-h .sc-stzh-carousel-s>[slot=actions] .stzh-carousel-action-previous{left:calc((var(--stzh-space-medium) + var(--stzh-space-medium)) / -1)}@media screen and (min-width: 600px){.sc-stzh-carousel-h.sc-stzh-carousel-s>[slot=actions],.sc-stzh-carousel-h.sc-stzh-carousel-s>[slot=actions] .stzh-carousel-action-previous,.sc-stzh-carousel-h .sc-stzh-carousel-s>[slot=actions] .stzh-carousel-action-previous{left:calc((var(--stzh-space-xxxlarge) + var(--stzh-space-xlarge)) / -1)}}@media screen and (min-width: 900px){.sc-stzh-carousel-h.sc-stzh-carousel-s>[slot=actions],.sc-stzh-carousel-h.sc-stzh-carousel-s>[slot=actions] .stzh-carousel-action-previous,.sc-stzh-carousel-h .sc-stzh-carousel-s>[slot=actions] .stzh-carousel-action-previous{left:calc((var(--stzh-space-big) + var(--stzh-space-xxlarge)) / -1)}}.sc-stzh-carousel-h.sc-stzh-carousel-s>[slot=actions],.sc-stzh-carousel-h.sc-stzh-carousel-s>[slot=actions] .stzh-carousel-action-next,.sc-stzh-carousel-h .sc-stzh-carousel-s>[slot=actions] .stzh-carousel-action-next{right:calc((var(--stzh-space-medium) + var(--stzh-space-medium)) / -1)}@media screen and (min-width: 600px){.sc-stzh-carousel-h.sc-stzh-carousel-s>[slot=actions],.sc-stzh-carousel-h.sc-stzh-carousel-s>[slot=actions] .stzh-carousel-action-next,.sc-stzh-carousel-h .sc-stzh-carousel-s>[slot=actions] .stzh-carousel-action-next{right:calc((var(--stzh-space-xxxlarge) + var(--stzh-space-xlarge)) / -1)}}@media screen and (min-width: 900px){.sc-stzh-carousel-h.sc-stzh-carousel-s>[slot=actions],.sc-stzh-carousel-h.sc-stzh-carousel-s>[slot=actions] .stzh-carousel-action-next,.sc-stzh-carousel-h .sc-stzh-carousel-s>[slot=actions] .stzh-carousel-action-next{right:calc((var(--stzh-space-big) + var(--stzh-space-xxlarge)) / -1)}}.sc-stzh-carousel-h.sc-stzh-carousel-s>stzh-ratio[slot=actions] stzh-space,.sc-stzh-carousel-h.sc-stzh-carousel-s>stzh-ratio[slot=actions],.sc-stzh-carousel-h .sc-stzh-carousel-s>stzh-ratio[slot=actions] stzh-space,.sc-stzh-carousel-h.sc-stzh-carousel-s>stzh-ratio[slot=actions] stzh-hspace,.sc-stzh-carousel-h .sc-stzh-carousel-s>stzh-ratio[slot=actions] stzh-hspace,.sc-stzh-carousel-h.sc-stzh-carousel-s>stzh-ratio[slot=actions] stzh-vspace,.sc-stzh-carousel-h .sc-stzh-carousel-s>stzh-ratio[slot=actions] stzh-vspace{padding:var(--stzh-space-xsmall)}.sc-stzh-carousel-h.sc-stzh-carousel-s>stzh-ratio[slot=actions],.sc-stzh-carousel-h .sc-stzh-carousel-s>stzh-ratio[slot=actions]{--background-color:transparent}[variant=cards].sc-stzh-carousel-h{--gutter:var(--stzh-space-xxsmall);--padding-top:0.25rem;--padding-bottom:0.25rem}@media screen and (min-width: 900px){[variant=cards].sc-stzh-carousel-h{--gutter:var(--stzh-space-xsmall)}}@media screen and (min-width: 1260px){[variant=cards].sc-stzh-carousel-h{--gutter:var(--stzh-space-small)}}@media screen and (min-width: 900px){[variant=cards].sc-stzh-carousel-h{--peek-out:2.5rem}}@media screen and (min-width: 1260px){[variant=cards].sc-stzh-carousel-h{--peek-out:4rem}}@media screen and (min-width: 1600px){[variant=cards].sc-stzh-carousel-h{--peek-out:calc((100vw - 84.25rem - var(--stzh-scrollbar-width, 0px)) / 2)}}.sc-stzh-carousel-h[variant=cards].sc-stzh-carousel-s>[slot=actions],.sc-stzh-carousel-h[variant=cards] .sc-stzh-carousel-s>[slot=actions]{position:relative;order:1;margin-top:calc(var(--stzh-space-medium) - var(--padding-bottom))}[no-peek].sc-stzh-carousel-h:not([no-peek=false]){--peek-out:0px;--peek-in:0px}.stzh-carousel.sc-stzh-carousel{position:relative;display:flex;flex-direction:column;width:calc(100% + var(--peek-out) * 2);margin-left:calc(var(--peek-out) / -1);margin-right:calc(var(--peek-out) / -1)}.stzh-carousel__vhidden.sc-stzh-carousel{border:0;clip:rect(0 0 0 0);clip-path:inset(100%);width:0.0625rem;height:0.0625rem;overflow:hidden;padding:0;position:absolute}.stzh-carousel__indicator.sc-stzh-carousel{margin-top:var(--stzh-space-medium);margin-left:auto;margin-right:auto;position:relative;width:14.375rem;height:0.25rem;background-color:var(--stzh-color-black20op)}@media screen and (min-width: 600px){.stzh-carousel__indicator.sc-stzh-carousel{margin-top:var(--stzh-space-large)}}@media screen and (min-width: 900px){.stzh-carousel__indicator.sc-stzh-carousel{margin-top:var(--stzh-space-xlarge)}}@media screen and (min-width: 1260px){.stzh-carousel__indicator.sc-stzh-carousel{margin-top:var(--stzh-space-xxlarge)}}.stzh-carousel__indicator-track.sc-stzh-carousel{position:absolute;background-color:var(--stzh-color-secondary50);height:0.375rem;left:0px;bottom:0px;transition-property:left, width;transition-duration:var(--stzh-base-transition-animation-speed)}.stzh-carousel__scroll.sc-stzh-carousel{position:relative;grid-area:slides;display:grid;width:100%;height:100%;place-items:center;overflow-x:auto;overflow-y:visible;grid-auto-flow:column;grid-auto-columns:var(--slide-size);grid-auto-rows:100%;column-gap:var(--gutter);-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding:0 var(--peek);padding:var(--padding-top) var(--peek) var(--padding-bottom)}@media (prefers-reduced-motion: reduce){.stzh-carousel__scroll.sc-stzh-carousel{scroll-behavior:auto}}.stzh-carousel__scroll.sc-stzh-carousel::-webkit-scrollbar{display:none}.stzh-carousel--is-draggable.sc-stzh-carousel .stzh-carousel__scroll.sc-stzh-carousel{cursor:grab}.stzh-carousel--is-dragging.sc-stzh-carousel .stzh-carousel__scroll.sc-stzh-carousel{cursor:grabbing}.stzh-carousel--is-disabled.sc-stzh-carousel .stzh-carousel__scroll.sc-stzh-carousel{cursor:not-allowed;overflow:hidden}.stzh-carousel--is-non-interactive.sc-stzh-carousel{pointer-events:none;touch-action:none}";
|
|
@@ -620,4 +620,4 @@ function defineCustomElement() {
|
|
|
620
620
|
|
|
621
621
|
export { StzhCarousel as S, defineCustomElement as d };
|
|
622
622
|
|
|
623
|
-
//# sourceMappingURL=p-
|
|
623
|
+
//# sourceMappingURL=p-71f94b81.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-d8730e10.js","mappings":";;;;AAAA,MAAM,eAAe,GAAG,m8SAAm8S,CAAC;AAC59S,2BAAe,eAAe;;AC2B9B,MAAM,kBAAkB,GAAG,MAAM,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC;AAEjF,IAAI,eAAe,GAAG,CAAC,CAAC;MAqBX,YAAY;;;;;;;;QA4Vf,oBAAe,GAAW,CAAC,CAAC;;QAG5B,uBAAkB,GAAY,KAAK,CAAC;;QAGpC,oBAAe,GAAW,IAAI,CAAC;;QAM/B,UAAK,GAAW,IAAI,CAAC;;QAGrB,WAAM,GAAW,IAAI,CAAC;;QAGtB,oBAAe,GAAW,IAAI,CAAC;;QAG/B,qBAAgB,GAAW,IAAI,CAAC;;QAYhC,oBAAe,GAAY,KAAK,CAAC;QAoEjC,+BAA0B,GAAG;YACnC,IAAI,CAAC,6BAA6B,GAAG,kBAAkB,CAAC,OAAO,CAAC;SACjE,CAAA;QAEO,iBAAY,GAAG;YACrB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBAC9B,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;aACrC;SACF,CAAA;QAEO,iBAAY,GAAG;YACrB,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;SACtC,CAAA;QAEO,cAAS,GAAG;YAClB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBAC9B,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;aACrC;SACF,CAAA;QAEO,eAAU,GAAG;YACnB,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;SACtC,CAAA;QAEO,oBAAe,GAAG;YACxB,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC,CAAA;QAEO,gBAAW,GAAG;YACpB,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC9B,CAAA;QAEO,kBAAa,GAAG;YACtB,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;aACrC;SACF,CAAA;QAEO,eAAU,GAAG;YACnB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACvB,OAAO;aACR;YAED,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAkB,CAAC;YAE9E,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK;gBACtC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACpC,KAAK,CAAC,YAAY,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;gBACpD,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU;qBAC1D,OAAO,CAAC,eAAe,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC;qBAChD,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAC9D,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,+BAA+B,CAAC,CAAC,CAAC;YACnG,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,CAAC,CAAC;YAC3F,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,sCAAsC,CAAC,CAAC,CAAC;SACjH,CAAA;QAEO,aAAQ,GAAG;YACjB,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE;gBACjC,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAElF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBAEtB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;oBAC5B,IAAI,IAAI,CAAC,mBAAmB,EAAE;wBAC5B,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;qBACtC;yBAAM;wBACL,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;qBACvB;iBACF;gBAED,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACvB,SAAS,EAAE,eAAe;oBAC1B,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,SAAS;iBAC9B,CAAC,CAAC;aACJ;YAED,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,cAAc,EAAE,EAAE;gBACxC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;oBACxB,SAAS,EAAE,eAAe;oBAC1B,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB,CAAC,CAAC;aACJ;YAED,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAClE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SAChF,CAAA;QAEO,gBAAW,GAAG;YACpB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;YAEd,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;YAEtC,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;gBAC3D,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;aAC7D;YAED,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE;gBAC/C,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;aACpB;iBAAM;gBACL,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU;qBACnG,OAAO,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC;qBAC5D,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC;qBACjE,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;aACjE;YAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBACrB,SAAS,EAAE,eAAe;gBAC1B,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;SACJ,CAAA;QAEO,kBAAa,GAAG;YACtB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;YACrC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;YACrC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;YACvC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;YAErC,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE;gBACnC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC;aACvC;iBAAM,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE;gBAC1C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC;aACvC;iBAAM,IAAI,MAAM,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE;gBAC5C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC;aACxC;iBAAM,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE;gBAC1C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC;aACvC;iBAAM;gBACL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;aAClC;;;;;;;;;;;;YAcD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC;SAC9C,CAAA;;QAGO,cAAS,GAAG,CAAC,KAAiB;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;YAC5C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;YAE3B,IAAI,CAAC,aAAa,CAAC,UAAU,IAAI,QAAQ,CAAC;SAC3C,CAAA;;QAGO,kBAAa,GAAG,CAAC,KAAiB;YACxC,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAE7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;YACzC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YACrD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;YAChE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;YAElE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YAErB,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC5B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;aACpC;iBAAM;gBACL,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;aACvB;YAED,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACrD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACzE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;SACtE,CAAA;;QAGO,iBAAY,GAAG,CAAC,KAAiB;YACvC,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,cAAc,GAAG,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAC1D,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAEtD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;YAEpC,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAEtD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;YAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAEhD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;YAClE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YAEzE,IAAI,SAAS,KAAK,IAAI,CAAC,eAAe,IAAI,CAAC,cAAc,EAAE;gBACzD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,CAAC,OAAO,GAAG,MAAM,GAAG,QAAQ,EAAE,CAAC,CAAC;aAC5G;iBAAM,IAAI,SAAS,KAAK,CAAC,EAAE;gBAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;aACxB;iBAAM;gBACL,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;YAED,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACxD,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAE5E,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;SAC7B,CAAA;QAEO,eAAU,GAAG,CAAC,KAAiB;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,cAAc,GAAG,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC;YAE5D,IAAI,cAAc,EAAE;gBAClB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;aACzB;YAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAElB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;SACzE,CAAA;QAEO,qBAAgB,GAAG;YACzB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAE/B,IAAI,IAAI,CAAC,mBAAmB,EAAE,EAAE;gBAC9B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aACjB;iBAAM;gBACL,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;SACF,CAAA;;uBA7qBuD,SAAS;wBAGpB,KAAK;sBAGP,KAAK;sBAGvB,CAAC;2BAEI,CAAC;4BAEA,CAAC;2BAEF,CAAC;2BAED,CAAC;qBAcP,CAAC;wBAQoB,KAAK;+BAGhB,IAAI;8BAGJ,KAAK;gCAGH,KAAK;oCAGD,KAAK;mCAGN,KAAK;0BAOd,KAAK;yBAGN,KAAK;6BAID,GAAG;kCAGE,EAAE;oCAGA,CAAC;+BA2NL,KAAK;6CAGS,KAAK;uCAGX,KAAK;uCAGL,KAAK;wCAGJ,KAAK;sCAGP,KAAK;wBAGnB,KAAK;yBAGJ,KAAK;wBAGP,EAAE;6BAGG,CAAC;kCAGI,CAAC;6BAGC,EAAE;gCAGC,EAAE;4BAGN,EAAE;sCAGQ,EAAE;;;IAtPnD,MAAM,OAAO,CAAC,KAAK,EAAE,YAA+B,QAAQ;QAC1D,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KACtC;;IAID,MAAM,eAAe,CAAC,YAA+B,QAAQ;QAC3D,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;KAC3C;;IAID,MAAM,WAAW,CAAC,YAA+B,QAAQ;QACvD,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;KACvC;IAGD,eAAe;QACb,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtF,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAClE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAClE,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAClE,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5D,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9D,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAClC,kBAAkB,IAAI,kBAAkB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC;SACzG;aAAM;YACL,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACtG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC/D,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC/D,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACzD,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3D,kBAAkB,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC;SACtG;KACF;IAID,uBAAuB;QACrB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC1C,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC9F,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;aAAM;YACL,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SAC5F;KACF;IAUD,sBAAsB;QACpB,IACE,CAAC,IAAI,CAAC,QAAQ;eACX,IAAI,CAAC,QAAQ;eACb,IAAI,CAAC,6BAA6B;eAClC,IAAI,CAAC,uBAAuB;eAC5B,IAAI,CAAC,uBAAuB;eAC5B,IAAI,CAAC,wBAAwB;eAC7B,IAAI,CAAC,sBAAsB,EAC9B;YACA,IAAI,CAAC,kBAAkB,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACzE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;SAC9B;aAAM;YACL,IAAI,CAAC,kBAAkB,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACzE,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1F,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;SAC7B;KACF;IAID,gBAAgB;QACd,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK;YACtC,MAAM,UAAU,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,KAAK,CAAC,CAAC;YAErF,IAAI,UAAU,EAAE;gBACd,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;aACjD;iBAAM;gBACL,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;aACtD;SACF,CAAC,CAAC;KACJ;IAOD,YAAY;QACV,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU;mBAC3B,IAAI,CAAC,OAAO,KAAK,OAAO;mBACxB,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;YAEpE,KAAK,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC;YAExB,IAAI,QAAQ,EAAE;gBACZ,KAAK,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;aACtC;iBAAM;gBACL,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC;aAChE;SACF,CAAC,CAAC;KACJ;IAMD,yBAAyB;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC;QAE/D,MAAM,iBAAiB,GAAG,CAAC,OAAO;YAChC,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;YAEtC,IAAI,UAAU,EAAE;gBACd,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;gBAC5C,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,eAAe,GAAG,UAAU,EAAE,IAAI,CAAC,CAAC;aACnE;iBAAM;gBACL,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;gBACvC,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,eAAe,GAAG,UAAU,CAAC,CAAC;aAChE;SACF,CAAA;QAED,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC7C,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;KAClD;IAOD,qBAAqB;QACnB,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC;QAErE,MAAM,kBAAkB,GAAG,CAAC,OAAO;YACjC,IAAI,YAAY,EAAE;gBAChB,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;aACpC;iBAAM;gBACL,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;aACnC;SACF,CAAC;QAEF,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACxD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC9C,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;KACnD;IAQD,uBAAuB;QACrB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,OAAO;SACR;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;QAC3C,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEpD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO;YAChC,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;YACtC,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,eAAe,GAAG,eAAe,EAAE,gBAAgB,IAAI,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;SACxH,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO;YACpC,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;YACtC,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,eAAe,GAAG,eAAe,EAAE,iBAAiB,IAAI,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;SACzH,CAAC,CAAC;KACJ;IAGD,mBAAmB;QACjB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW;YACpC,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;YAE1C,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACxD,WAAW,CAAC,YAAY,CAAC,MAAM,GAAG,eAAe,GAAG,eAAe,EAAE,GAAG,IAAI,CAAC,UAAU,SAAS,CAAC,CAAC;SACnG,CAAC,CAAC;KACJ;IAGD,uBAAuB;QACrB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe;YAC5C,MAAM,MAAM,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;YAE9C,eAAe,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAChE,eAAe,CAAC,YAAY,CAAC,MAAM,GAAG,eAAe,GAAG,eAAe,EAAE,GAAG,IAAI,CAAC,UAAU,SAAS,CAAC,CAAC;SACvG,CAAC,CAAC;KACJ;IAwFO,aAAa,CAAC,KAAK,EAAE,YAA+B,QAAQ;QAClE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO;SACR;QAED,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;YAC1B,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ;YAC3B,QAAQ,EAAE,kBAAkB,CAAC,OAAO,GAAG,MAAM,GAAG,SAAS;SAC1D,CAAC,CAAC;KACJ;;IAGO,YAAY;QAClB,MAAM,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAExD,OAAO,CAAE,IAAI,CAAC,aAAa,CAAC,iBAAiC,IAAI,IAAI,CAAC,aAAa,EAAE,WAAW;cAC5F,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;KACtD;;;;;IAMO,cAAc;;;;QAIpB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;KAClE;IAEO,yBAAyB,CAAC,YAA+B,QAAQ;QACvE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO;SACR;QAED,IAAI,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;QAC/B,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,OAAO,CAAC,OAAO,IAAI,aAAa,GAAG,CAAC,EAAE;YACpC,aAAa,GAAG,aAAa,GAAG,CAAC,CAAC;YAClC,OAAO,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,KAAK,CAAC,CAAC;SACrF;QAED,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;KACxC;IAEO,qBAAqB,CAAC,YAA+B,QAAQ;QACnE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO;SACR;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;KAC/D;IAEO,MAAM;QACZ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;QAElD,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;IAEO,mBAAmB;QACzB,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,IAAI,WAAW,CAAC;KAC3D;IAqPD,MAAM,iBAAiB;QACrB,IAAI,CAAC,UAAU,GAAG,iBAAiB,eAAe,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,YAAY,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;SACnG;KACF;IAED,gBAAgB;QACd,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;QAEd,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAED,iBAAiB;QACf,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE3C,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC5D,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAEzC,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9D,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE;YAC1C,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;KACJ;IAED,oBAAoB;QAClB,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAE5B,yBAAyB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE9C,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;SAClC;QAED,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;SACpC;KACF;IAED,MAAM;;QACJ,MAAM,OAAO,GAAG;YACd,eAAe,EAAE,IAAI;YACrB,4BAA4B,EAAE,IAAI,CAAC,QAAQ;YAC3C,6BAA6B,EAAE,CAAC,IAAI,CAAC,gBAAgB;YACrD,mCAAmC,EAAE,IAAI,CAAC,cAAc;YACxD,4BAA4B,EAAE,IAAI,CAAC,QAAQ;YAC3C,6BAA6B,EAAE,IAAI,CAAC,SAAS;YAC7C,6BAA6B,EAAE,IAAI,CAAC,QAAQ;YAC5C,oCAAoC,EAAE,IAAI,CAAC,eAAe;SAC3D,CAAC;QAEF,QACE,EAAC,IAAI,6EACkB,UAAU,EAC/B,KAAK,EAAE;gBACL,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;aAC1C,IAED,4DAAK,KAAK,EAAE,OAAO,IACjB,6DAAM,IAAI,EAAC,SAAS,GAAQ,EAC5B,4DACE,KAAK,EAAC,wBAAwB,eACnB,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,uBAAuB,GAAG,QAAQ,GAAG,KAAK,IAEzF,IAAI,CAAC,QAAQ,CACV,EACN,4DACE,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,aAAa,GAAG,EAAoB,CAAC,EACxD,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,SAAS,EAC/B,KAAK,EAAC,uBAAuB,IAE7B,8DAAa,CACT,EACL,IAAI,CAAC,SAAS;YACb,4DAAK,KAAK,EAAC,0BAA0B,IACnC,4DACE,KAAK,EAAC,gCAAgC,EACtC,KAAK,EAAE;oBACL,IAAI,EAAE,GAAG,GAAG,IAAI,CAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,MAAM,KAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG;oBAChE,KAAK,EAAE,GAAG,GAAG,IAAI,CAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,MAAM,KAAI,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,GAAG;iBAC/E,GACI,CACH,CAEJ,CACD,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/stzh-carousel/stzh-carousel.scss?tag=stzh-carousel&encapsulation=scoped","src/components/stzh-carousel/stzh-carousel.tsx"],"sourcesContent":["/**\n * @prop --padding-top: Padding Top of scroll container\n * @prop --padding-bottom: Padding Bottom of scroll container\n * @prop --peek-in: Peek size (inside container) showing the next/previous slides\n * @prop --peek-out: Negative peek size (breakout of container) showing the next/previous slides\n * @prop --gutter: Space between the slides\n * @prop --snap-stop: Snap stop of scroll container\n */\n\n:host {\n @include spaceCurve('--gutter', 'regular');\n --peek: calc(var(--peek-in, 0px) + var(--peek-out, 0px));\n --peek-in: calc(#{space('medium')} + #{spaceCurveValue('regular')});\n // --peek-out: #{space('medium')};\n --padding-top: 0px;\n --padding-bottom: 0px;\n --snap-stop: always;\n --slides: 1;\n --slide-size: calc((100% - (var(--slides) - 1) * var(--gutter)) / var(--slides));\n\n @include mq($from: small) {\n --peek-in: calc(#{space('xxxlarge')} + #{spaceCurveValue('regular', 'medium')});\n // --peek-out: #{$containerMarginSmall};\n }\n\n @include mq($from: medium) {\n --peek-in: calc(#{space('big')} + #{spaceCurveValue('regular', 'large')});\n // --peek-out: 0px;\n }\n\n ::slotted(*) {\n width: 100%;\n height: inherit;\n flex-shrink: 0;\n scroll-snap-align: start;\n scroll-snap-stop: var(--snap-stop);\n transition: opacity $baseTransitionAnimationSpeed;\n\n [inert] {\n opacity: 0.5;\n }\n\n &:where(stzh-figure[inert]) {\n --caption-opacity: 0;\n }\n\n img {\n -webkit-user-drag: none;\n user-drag: none;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n }\n }\n\n ::slotted([slot=\"actions\"]) {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1;\n pointer-events: none;\n padding: 0 var(--peek);\n\n @media print {\n display: none;\n }\n\n stzh-text {\n width: auto;\n }\n\n stzh-button {\n pointer-events: all;\n }\n\n .stzh-carousel-action-previous,\n .stzh-carousel-action-next {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n }\n\n .stzh-carousel-action-previous {\n left: calc((#{space('medium')} + #{spaceCurveValue('regular')}) / -1);\n\n @include mq($from: small) {\n left: calc((#{space('xxxlarge')} + #{spaceCurveValue('regular', 'medium')}) / -1);\n }\n\n @include mq($from: medium) {\n left: calc((#{space('big')} + #{spaceCurveValue('regular', 'large')}) / -1);\n }\n }\n\n .stzh-carousel-action-next {\n right: calc((#{space('medium')} + #{spaceCurveValue('regular')}) / -1);\n\n @include mq($from: small) {\n right: calc((#{space('xxxlarge')} + #{spaceCurveValue('regular', 'medium')}) / -1);\n }\n\n @include mq($from: medium) {\n right: calc((#{space('big')} + #{spaceCurveValue('regular', 'large')}) / -1);\n }\n }\n }\n\n ::slotted(stzh-ratio[slot=\"actions\"]) {\n stzh-space,\n stzh-hspace,\n stzh-vspace {\n padding: space('xsmall');\n }\n }\n\n ::slotted(stzh-ratio[slot=\"actions\"]) {\n --background-color: transparent;\n }\n\n /* Card */\n\n &[variant=\"cards\"] {\n @include spaceCurve('--gutter', 'tiny');\n --padding-top: 4px;\n --padding-bottom: 4px;\n\n @include mq($from: medium) {\n --peek-out: #{$containerMarginMedium};\n }\n\n @include mq($from: large) {\n --peek-out: #{$containerMarginLarge};\n }\n\n @include mq($from: ultra) {\n --peek-out: calc((100vw - #{$containerMaxWidth} - var(--stzh-scrollbar-width, 0px)) / 2);\n }\n }\n\n &[variant=\"cards\"] ::slotted([slot=\"actions\"]) {\n position: relative;\n order: 1;\n margin-top: calc(#{space('medium')} - var(--padding-bottom));\n }\n\n /* No peek */\n\n &[no-peek]:not([no-peek=\"false\"]) {\n --peek-out: 0px;\n --peek-in: 0px;\n }\n}\n\n.stzh-carousel {\n position: relative;\n display: flex;\n flex-direction: column;\n width: calc(100% + var(--peek-out) * 2);\n margin-left: calc(var(--peek-out) / -1);\n margin-right: calc(var(--peek-out) / -1);\n\n &__vhidden {\n @include visuallyhidden;\n }\n\n &__indicator {\n @include spaceCurve('margin-top', 'regular');\n margin-left: auto;\n margin-right: auto;\n position: relative;\n width: 230px;\n height: 4px;\n background-color: $colorBlack20op;\n }\n\n &__indicator-track {\n position: absolute;\n background-color: $colorSecondary50;\n height: 6px;\n left: 0px;\n bottom: 0px;\n transition-property: left, width;\n transition-duration: $baseTransitionAnimationSpeed;\n }\n\n &__scroll {\n position: relative;\n grid-area: slides;\n display: grid;\n width: 100%;\n height: 100%;\n place-items: center;\n overflow-x: auto;\n overflow-y: visible;\n grid-auto-flow: column;\n grid-auto-columns: var(--slide-size);\n grid-auto-rows: 100%;\n column-gap: var(--gutter);\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n -ms-overflow-style: none;\n scroll-behavior: smooth;\n overscroll-behavior-x: contain;\n scroll-snap-type: x mandatory;\n scroll-padding: 0 var(--peek);\n padding: var(--padding-top) var(--peek) var(--padding-bottom);\n\n @media (prefers-reduced-motion: reduce) {\n scroll-behavior: auto;\n }\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n\n &--is-draggable &__scroll {\n cursor: grab;\n }\n\n &--is-dragging &__scroll {\n cursor: grabbing;\n }\n\n &--is-disabled &__scroll {\n cursor: not-allowed;\n overflow: hidden;\n }\n\n &--is-non-interactive {\n pointer-events: none;\n touch-action: none;\n }\n}\n","import {\n Component,\n Host,\n h,\n Element,\n Prop,\n Method,\n Event,\n EventEmitter,\n Watch,\n State\n} from \"@stencil/core\";\n\nimport {\n StzhCarouselSlideStartEvent,\n StzhCarouselSlidePassedEvent,\n StzhCarouselSlideEndEvent\n} from \"../../index\";\n\nimport { isStzhElement } from \"../../utils/utils\";\nimport { StzhCarouselLocalizedText } from \"./stzh-carousel.localization\"\n\nimport {\n media,\n addMediaChangeListener,\n removeMediaChangeListener\n} from '../../utils/media-utils';\n\nconst reducedMotionMedia = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n\nlet carouselCounter = 0;\n\n/*\n* Inspired by:\n*\n* - https://github.com/barthy-koeln/scroll-snap-slider\n* - https://tannerhodges.github.io/snap-slider/\n* - https://www.w3.org/WAI/ARIA/apg/patterns/carousel/examples/carousel-1-prev-next/\n* - https://dev.to/jasonwebb/how-to-build-a-more-accessible-carousel-or-slider-35lp\n* - http://web-accessibility.carnegiemuseums.org/code/carousels/\n*/\n\n/**\n * @slot - Slot for any element\n * @slot actions - Slot for `stzh-actions` element\n */\n@Component({\n tag: \"stzh-carousel\",\n styleUrl: \"stzh-carousel.scss\",\n scoped: true\n})\nexport class StzhCarousel {\n /** Translation strings */\n @Prop() localization: StzhCarouselLocalizedText;\n\n /** Carousel variant */\n @Prop({ reflect: true }) variant: \"default\" | \"cards\" = \"default\";\n\n /** Whether carousel is disabled */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Whether to remove inside/outside peek. */\n @Prop({ reflect: true }) noPeek: boolean = false;\n\n /** Slides number */\n @Prop() slides: number = 1;\n /** Slides number above small breakpoint */\n @Prop() slidesSmall: number = 0;\n /** Slides number above medium breakpoint */\n @Prop() slidesMedium: number = 0;\n /** Slides number above large breakpoint */\n @Prop() slidesLarge: number = 0;\n /** Slides number above ultra breakpoint */\n @Prop() slidesUltra: number = 0;\n\n // /** How many slides per swipe */\n // @Prop() swipeSlides: number = 1;\n // /** How many slides per swipe above small breakpoint */\n // @Prop() swipeSlidesSmall: number = 0;\n // /** How many slides per swipe above medium breakpoint */\n // @Prop() swipeSlidesMedium: number = 0;\n // /** How many slides per swipe above large breakpoint */\n // @Prop() swipeSlidesLarge: number = 0;\n // /** How many slides per swipe above ultra breakpoint */\n // @Prop() swipeSlidesUltra: number = 0;\n\n /** Active slide (readonly) */\n @Prop() slide: number = 0;\n\n /**\n * Whether autoplay is enabled.\n * Gets paused, when user has focus inside carousel element or hovers over it.\n * Also when reduced motion media query is active or carousel is set disabled.\n * Gets disabled permanently, when user interacts with carousel manually (clicks prev/next, scrolls or drags)\n */\n @Prop({ mutable: true }) autoplay: boolean = false;\n\n /** Timeout delay in milliseconds used for autoplay */\n @Prop() autoplayTimeout: number = 3000;\n\n /** Whether scrolling & dragging should be disabled */\n @Prop() nonInteractive: boolean = false;\n\n /** Whether drag with mouse should be disabled (still will be able to scroll with wheeling or arrow keys) */\n @Prop() preventMouseDrag: boolean = false;\n\n /** Whether autoplay pause should be prevented when user hovers/focuses carousel */\n @Prop() preventAutoplayPause: boolean = false;\n\n /** Whether autoplay stop should be prevented when user scroll or drags carousel */\n @Prop() preventAutoplayStop: boolean = false;\n\n /**\n * Enable all slides to be tabbable (will disable prev/next arrows from being tabbable).\n * By default only the visible slides will be tabbable and the prev/next can be used to change slides\n * (enabled when `variant` is set to `cards`).\n */\n @Prop() tabThrough: boolean = false;\n\n /** Whether indicator should be shown */\n @Prop() withTrack: boolean = false;\n\n\n /** Timeout delay in milliseconds used to catch the end of scroll events */\n @State() scrollTimeout: number = 100;\n\n /** Minimum drag distance that needs to be reached to swipe to next/previous slide(s). */\n @State() distanceQuickSwipe: number = 40;\n\n /** Minimum drag distance that neeeds to be reached to prevent click on slide elements. */\n @State() distancePreventClick: number = 6;\n\n @Element() element: HTMLStzhCarouselElement;\n\n /** Slide start event */\n @Event() stzhSlideStart: EventEmitter<StzhCarouselSlideStartEvent>;\n\n /** Slide passed event */\n @Event() stzhSlidePassed: EventEmitter<StzhCarouselSlidePassedEvent>;\n\n /** Slide end event */\n @Event() stzhSlideEnd: EventEmitter<StzhCarouselSlideEndEvent>;\n\n /** Scroll to a slide by index */\n @Method()\n async slideTo(index, behaviour: \"auto\" | \"smooth\" = \"smooth\") {\n this.scrollToSlide(index, behaviour);\n }\n\n /** Scroll to previous snap point */\n @Method()\n async slideToPrevious(behaviour: \"auto\" | \"smooth\" = \"smooth\") {\n this.scrollToPreviousSnapPoint(behaviour);\n }\n\n /** Scroll to next snap point */\n @Method()\n async slideToNext(behaviour: \"auto\" | \"smooth\" = \"smooth\") {\n this.scrollToNextSnapPoint(behaviour);\n }\n\n @Watch(\"disabled\")\n disabledWatcher() {\n if (this.disabled) {\n this.scrollElement && this.scrollElement.removeEventListener(\"scroll\", this.onScroll);\n this.scrollTimeoutId && window.clearTimeout(this.scrollTimeoutId);\n this.scrollTimeoutId = null;\n this.element.removeEventListener(\"mouseenter\", this.onMouseenter);\n this.element.removeEventListener(\"mouseleave\", this.onMouseleave);\n this.element.removeEventListener(\"focusin\", this.onFocusin);\n this.element.removeEventListener(\"focusout\", this.onFocusout);\n this.onReducedMotionMediaChange();\n reducedMotionMedia && reducedMotionMedia.removeEventListener(\"change\", this.onReducedMotionMediaChange);\n } else {\n this.scrollElement && this.scrollElement.addEventListener(\"scroll\", this.onScroll, { passive: true });\n this.element.addEventListener(\"mouseenter\", this.onMouseenter);\n this.element.addEventListener(\"mouseleave\", this.onMouseleave);\n this.element.addEventListener(\"focusin\", this.onFocusin);\n this.element.addEventListener(\"focusout\", this.onFocusout);\n reducedMotionMedia && reducedMotionMedia.addEventListener(\"change\", this.onReducedMotionMediaChange);\n }\n }\n\n @Watch(\"disabled\")\n @Watch(\"preventMouseDrag\")\n preventMouseDragWatcher() {\n if (this.preventMouseDrag || this.disabled) {\n this.disableTimeoutId && window.clearTimeout(this.disableTimeoutId);\n this.disableTimeoutId = null;\n this.scrollElement && this.scrollElement.removeEventListener(\"mousedown\", this.startDragging);\n this.lastX = null;\n } else {\n this.scrollElement && this.scrollElement.addEventListener(\"mousedown\", this.startDragging);\n }\n }\n\n @Watch(\"autoplay\")\n @Watch(\"autoplayDisabledByMotionMedia\")\n @Watch(\"autoplayDisabledByMouse\")\n @Watch(\"autoplayDisabledByFocus\")\n @Watch(\"autoplayDisabledByScroll\")\n @Watch(\"autoplayDisabledByDrag\")\n @Watch(\"autoplayTimeout\")\n @Watch(\"disabled\")\n autoplayRunningWatcher() {\n if (\n !this.autoplay\n || this.disabled\n || this.autoplayDisabledByMotionMedia\n || this.autoplayDisabledByMouse\n || this.autoplayDisabledByFocus\n || this.autoplayDisabledByScroll\n || this.autoplayDisabledByDrag\n ) {\n this.autoplayIntervalId && window.clearInterval(this.autoplayIntervalId);\n this.autoplayIntervalId = null;\n this.autoplayRunning = false;\n } else {\n this.autoplayIntervalId && window.clearInterval(this.autoplayIntervalId);\n this.autoplayIntervalId = window.setInterval(this.autoplayInterval, this.autoplayTimeout);\n this.autoplayRunning = true;\n }\n }\n\n @Watch(\"slideElements\")\n @Watch(\"currentSwipeSlides\")\n snapAlignWatcher() {\n this.slideElements.forEach((slide, index) => {\n const shouldSnap = (index - this.currentSwipeSlides) % this.currentSwipeSlides === 0;\n\n if (shouldSnap) {\n slide.style.removeProperty(\"scroll-snap-align\");\n } else {\n slide.style.setProperty(\"scroll-snap-align\", \"none\");\n }\n });\n }\n\n @Watch(\"slide\")\n @Watch(\"variant\")\n @Watch(\"slideElements\")\n @Watch(\"currentSlides\")\n @Watch(\"tabThrough\")\n inertWatcher() {\n this.slideElements.forEach((slide, index) => {\n const isActive = this.tabThrough\n || this.variant === \"cards\"\n || index >= this.slide && index < this.slide + this.currentSlides;\n\n slide.inert = !isActive;\n\n if (isActive) {\n slide.removeAttribute(\"aria-hidden\");\n } else {\n slide.setAttribute(\"aria-hidden\", isActive ? \"false\" : \"true\");\n }\n });\n }\n\n @Watch(\"variant\")\n @Watch(\"tabThrough\")\n @Watch(\"nextElements\")\n @Watch(\"previousElements\")\n prevNextNavigationWatcher() {\n const tabThrough = this.tabThrough || this.variant === \"cards\";\n\n const setAriaAttributes = (element) => {\n const isStzh = isStzhElement(element);\n\n if (tabThrough) {\n element.setAttribute(\"aria-hidden\", \"true\");\n element.setAttribute(isStzh ? \"a11y-tabindex\" : \"tabindex\", \"-1\");\n } else {\n element.removeAttribute(\"aria-hidden\");\n element.removeAttribute(isStzh ? \"a11y-tabindex\" : \"tabindex\");\n }\n }\n\n this.nextElements.forEach(setAriaAttributes);\n this.previousElements.forEach(setAriaAttributes);\n }\n\n @Watch(\"currentSlides\")\n @Watch(\"slideElements\")\n @Watch(\"nextElements\")\n @Watch(\"previousElements\")\n @Watch(\"navigationTextElements\")\n prevNextHiddenWatcher() {\n const hideElements = this.slideElements.length <= this.currentSlides;\n\n const setHiddenAttribute = (element) => {\n if (hideElements) {\n element.setAttribute(\"hidden\", \"\");\n } else {\n element.removeAttribute(\"hidden\");\n }\n };\n\n this.navigationTextElements.forEach(setHiddenAttribute);\n this.nextElements.forEach(setHiddenAttribute);\n this.previousElements.forEach(setHiddenAttribute);\n }\n\n @Watch(\"disabled\")\n @Watch(\"slide\")\n @Watch(\"currentSlides\")\n @Watch(\"slideElements\")\n @Watch(\"nextElements\")\n @Watch(\"previousElements\")\n nextPrevDisabledWatcher() {\n if (!this.scrollElement) {\n return;\n }\n\n const reachedFirstSlide = this.slide === 0;\n const reachedLastSlide = this.hasReachedLastSlide();\n\n this.nextElements.forEach((element) => {\n const isStzh = isStzhElement(element);\n element.setAttribute(isStzh ? \"a11y-disabled\" : \"aria-disabled\", reachedLastSlide || this.disabled ? \"true\" : \"false\");\n });\n\n this.previousElements.forEach((element) => {\n const isStzh = isStzhElement(element);\n element.setAttribute(isStzh ? \"a11y-disabled\" : \"aria-disabled\", reachedFirstSlide || this.disabled ? \"true\" : \"false\");\n });\n }\n\n @Watch(\"nextElements\")\n nextElementsWatcher() {\n this.nextElements.forEach((nextElement) => {\n const isStzh = isStzhElement(nextElement);\n\n nextElement.addEventListener(\"click\", this.onNextClick);\n nextElement.setAttribute(isStzh ? \"a11y-controls\" : \"aria-controls\", `${this.carouselId}-scroll`);\n });\n }\n\n @Watch(\"previousElements\")\n previousElementsWatcher() {\n this.previousElements.forEach((previousElement) => {\n const isStzh = isStzhElement(previousElement);\n\n previousElement.addEventListener(\"click\", this.onPreviousClick);\n previousElement.setAttribute(isStzh ? \"a11y-controls\" : \"aria-controls\", `${this.carouselId}-scroll`);\n });\n }\n\n /** Whether autoplay is currently running */\n @State() autoplayRunning: boolean = false;\n\n /** Whether autoplay is currently disabled by reduced motion media */\n @State() autoplayDisabledByMotionMedia: boolean = false;\n\n /** Whether autoplay is currently disabled by mouse */\n @State() autoplayDisabledByMouse: boolean = false;\n\n /** Whether autoplay is currently disabled by focus */\n @State() autoplayDisabledByFocus: boolean = false;\n\n /** Whether autoplay is currently disabled by scroll */\n @State() autoplayDisabledByScroll: boolean = false;\n\n /** Whether autoplay is currently disabled by drag */\n @State() autoplayDisabledByDrag: boolean = false;\n\n /** Whether user is currently dragging with mouse */\n @State() dragging: boolean = false;\n\n /** Whether user is currently scrolling */\n @State() scrolling: boolean = false;\n\n /** Aria live text */\n @State() ariaLive: string = \"\";\n\n /** Currently shown slides */\n @State() currentSlides: number = 1;\n\n /** How many slides should be moved currently */\n @State() currentSwipeSlides: number = 1;\n\n /** Slide elements */\n @State() slideElements: HTMLElement[] = [];\n\n /** Previous elements */\n @State() previousElements: HTMLElement[] = [];\n\n /** Next elements */\n @State() nextElements: HTMLElement[] = [];\n\n /** Navigation text elements */\n @State() navigationTextElements: HTMLElement[] = [];\n\n private scrollElement: HTMLElement;\n\n /** Unique generated id */\n private carouselId: string;\n\n /** Current scroll position */\n private slideScrollLeft: number = 0;\n\n /** Flag whether scrolling was done by user or not */\n private scrolledByAutoplay: boolean = false;\n\n /** Timeout ID used to catch the end of scroll events */\n private scrollTimeoutId: number = null;\n\n /** Interval ID for autoplay */\n private autoplayIntervalId: number;\n\n /** Last drag event position */\n private lastX: number = null;\n\n /** Where the dragging started */\n private startX: number = null;\n\n /** Where the dragging started scroll position */\n private startScrollLeft: number = null;\n\n /** Timeout ID for a smooth drag release */\n private disableTimeoutId: number = null;\n\n /** Calculated size of a single item */\n private itemSize: number;\n\n /** Resize observer used to update item size */\n private resizeObserver: ResizeObserver;\n\n /** Mutation observer used to keep track of slides */\n private mutationObserver: MutationObserver;\n\n /** Whether user has just stopped dragging */\n private stoppedDragging: boolean = false;\n\n private scrollToSlide(index, behaviour: \"auto\" | \"smooth\" = \"smooth\") {\n if (this.disabled) {\n return;\n }\n\n this.scrollElement.scrollTo({\n left: index * this.itemSize,\n behavior: reducedMotionMedia.matches ? \"auto\" : behaviour\n });\n }\n\n /** Width of a slide */\n private sizingMethod() {\n const css = window.getComputedStyle(this.scrollElement);\n\n return ((this.scrollElement.firstElementChild as HTMLElement) || this.scrollElement).offsetWidth\n + parseInt(css.getPropertyValue(\"column-gap\"), 10);\n }\n\n /**\n * Calculates the active slide.\n * The scroll-snap-type property makes sure that the container snaps perfectly to integer multiples.\n */\n private calculateSlide() {\n // Math.round: Dispatch 'stzhSlidePassed' events around the center of each slide\n // Math.ceil: Dispatch 'stzhSlidePassed' events as soon as the next one is visible\n // Math.floor: Dispatch 'stzhSlidePassed' events only when the next one is fully visible\n return Math.round(this.scrollElement.scrollLeft / this.itemSize);\n }\n\n private scrollToPreviousSnapPoint(behaviour: \"auto\" | \"smooth\" = \"smooth\") {\n if (this.disabled) {\n return;\n }\n\n let previousIndex = this.slide;\n let canSnap = false;\n\n while (!canSnap && previousIndex > 0) {\n previousIndex = previousIndex - 1;\n canSnap = (previousIndex - this.currentSwipeSlides) % this.currentSwipeSlides === 0;\n }\n\n this.slideTo(previousIndex, behaviour);\n }\n\n private scrollToNextSnapPoint(behaviour: \"auto\" | \"smooth\" = \"smooth\") {\n if (this.disabled) {\n return;\n }\n\n this.slideTo(this.slide + this.currentSwipeSlides, behaviour);\n }\n\n private update() {\n this.slide = this.calculateSlide();\n this.slideScrollLeft = this.slide * this.itemSize;\n\n this.onMutation();\n }\n\n private hasReachedLastSlide() {\n const { scrollLeft, offsetWidth, scrollWidth } = this.scrollElement;\n return Math.ceil(scrollLeft + offsetWidth) >= scrollWidth;\n }\n\n private onReducedMotionMediaChange = () => {\n this.autoplayDisabledByMotionMedia = reducedMotionMedia.matches;\n }\n\n private onMouseenter = () => {\n if (!this.preventAutoplayPause) {\n this.autoplayDisabledByMouse = true;\n }\n }\n\n private onMouseleave = () => {\n this.autoplayDisabledByMouse = false;\n }\n\n private onFocusin = () => {\n if (!this.preventAutoplayPause) {\n this.autoplayDisabledByFocus = true;\n }\n }\n\n private onFocusout = () => {\n this.autoplayDisabledByFocus = false;\n }\n\n private onPreviousClick = () => {\n this.scrollToPreviousSnapPoint();\n }\n\n private onNextClick = () => {\n this.scrollToNextSnapPoint();\n }\n\n private onSlideResize = () => {\n if (this.scrollElement) {\n this.itemSize = this.sizingMethod();\n }\n }\n\n private onMutation = () => {\n if (!this.scrollElement) {\n return;\n }\n\n this.slideElements = Array.from(this.scrollElement.children) as HTMLElement[];\n\n this.slideElements.forEach((slide, index) => {\n slide.setAttribute(\"role\", \"group\");\n slide.setAttribute(\"aria-roledescription\", \"slide\");\n slide.setAttribute(\"aria-label\", this.localization.slideLabel\n .replace(/\\{current\\}/gi, (index + 1).toString())\n .replace(/\\{total\\}/gi, this.slideElements.length.toString())\n );\n });\n\n this.previousElements = Array.from(this.element.querySelectorAll(\"[data-stzh-carousel-previous]\"));\n this.nextElements = Array.from(this.element.querySelectorAll(\"[data-stzh-carousel-next]\"));\n this.navigationTextElements = Array.from(this.element.querySelectorAll(\"[data-stzh-carousel-navigation-text]\"));\n }\n\n private onScroll = () => {\n if (this.scrollTimeoutId === null) {\n const direction = (this.scrollElement.scrollLeft > this.slideScrollLeft) ? 1 : -1;\n\n this.scrolling = true;\n\n if (!this.scrolledByAutoplay) {\n if (this.preventAutoplayStop) {\n this.autoplayDisabledByScroll = true;\n } else {\n this.autoplay = false;\n }\n }\n\n this.stzhSlideStart.emit({\n component: \"stzh-carousel\",\n index: this.slide + direction\n });\n }\n\n if (this.slide !== this.calculateSlide()) {\n this.update();\n this.stzhSlidePassed.emit({\n component: \"stzh-carousel\",\n index: this.slide\n });\n }\n\n this.scrollTimeoutId && window.clearTimeout(this.scrollTimeoutId);\n this.scrollTimeoutId = window.setTimeout(this.onScrollEnd, this.scrollTimeout);\n }\n\n private onScrollEnd = () => {\n this.scrollTimeoutId = null;\n this.update();\n\n this.scrolling = false;\n this.scrolledByAutoplay = false;\n this.autoplayDisabledByScroll = false;\n\n if (this.stoppedDragging) {\n this.stoppedDragging = false;\n this.scrollElement.style.removeProperty(\"scroll-behavior\");\n this.scrollElement.style.removeProperty(\"scroll-snap-type\");\n }\n\n if (this.tabThrough || this.variant === \"cards\") {\n this.ariaLive = \"\";\n } else {\n this.ariaLive = (this.currentSlides > 1 ? this.localization.slidesLabel : this.localization.slideLabel)\n .replace(/\\{(current|from)\\}/gi, (this.slide + 1).toString())\n .replace(/\\{to\\}/gi, (this.slide + this.currentSlides).toString())\n .replace(/\\{total\\}/gi, this.slideElements.length.toString());\n }\n\n this.stzhSlideEnd.emit({\n component: \"stzh-carousel\",\n index: this.slide\n });\n }\n\n private onMediaChange = () => {\n const ultra = media(\"ultra\").matches;\n const large = media(\"large\").matches;\n const medium = media(\"medium\").matches;\n const small = media(\"small\").matches;\n\n if (ultra && this.slidesUltra !== 0) {\n this.currentSlides = this.slidesUltra;\n } else if (large && this.slidesLarge !== 0) {\n this.currentSlides = this.slidesLarge;\n } else if (medium && this.slidesMedium !== 0) {\n this.currentSlides = this.slidesMedium;\n } else if (small && this.slidesSmall !== 0) {\n this.currentSlides = this.slidesSmall;\n } else {\n this.currentSlides = this.slides;\n }\n\n // if (ultra && this.swipeSlidesUltra !== 0) {\n // this.currentSwipeSlides = this.swipeSlidesUltra;\n // } else if (large && this.swipeSlidesLarge !== 0) {\n // this.currentSwipeSlides = this.swipeSlidesLarge;\n // } else if (medium && this.swipeSlidesMedium !== 0) {\n // this.currentSwipeSlides = this.swipeSlidesMedium;\n // } else if (small && this.swipeSlidesSmall !== 0) {\n // this.currentSwipeSlides = this.swipeSlidesSmall;\n // } else {\n // this.currentSwipeSlides = this.swipeSlides;\n // }\n\n this.currentSwipeSlides = this.currentSlides;\n }\n\n /** Scroll the slider the appropriate amount of pixels and update the last event position */\n private mouseMove = (event: MouseEvent) => {\n const distance = this.lastX - event.clientX;\n this.lastX = event.clientX;\n\n this.scrollElement.scrollLeft += distance;\n }\n\n /** Clear disable timeout, set up variables and styles and attach the listener. */\n private startDragging = (event: MouseEvent) => {\n event.preventDefault();\n\n this.disableTimeoutId && window.clearTimeout(this.disableTimeoutId);\n this.disableTimeoutId = null;\n\n this.startX = this.lastX = event.clientX;\n this.startScrollLeft = this.scrollElement.scrollLeft;\n this.scrollElement.style.setProperty(\"scroll-behavior\", \"auto\");\n this.scrollElement.style.setProperty(\"scroll-snap-type\", \"unset\");\n\n this.dragging = true;\n\n if (this.preventAutoplayStop) {\n this.autoplayDisabledByDrag = true;\n } else {\n this.autoplay = false;\n }\n\n window.addEventListener(\"mousemove\", this.mouseMove);\n window.addEventListener(\"mouseup\", this.stopDragging, { capture: true });\n window.addEventListener(\"click\", this.checkClick, { capture: true });\n }\n\n /** User stopped dragging */\n private stopDragging = (event: MouseEvent) => {\n event.preventDefault();\n\n const distance = Math.abs(this.startX - this.lastX);\n const minimumReached = distance > this.distanceQuickSwipe;\n const direction = (this.lastX > this.startX) ? 1 : -1;\n\n this.dragging = false;\n this.autoplayDisabledByDrag = false;\n\n const endDraddingLeft = this.scrollElement.scrollLeft;\n\n this.scrollElement.style.removeProperty(\"scroll-snap-type\");\n const finalLeft = this.scrollElement.scrollLeft;\n\n this.scrollElement.style.setProperty(\"scroll-snap-type\", \"unset\");\n this.scrollElement.scrollTo({ left: endDraddingLeft, behavior: \"auto\" });\n\n if (finalLeft !== this.startScrollLeft || !minimumReached) {\n this.scrollElement.scrollTo({ left: finalLeft, behavior: reducedMotionMedia.matches ? \"auto\" : \"smooth\" });\n } else if (direction === 1) {\n this.slideToPrevious();\n } else {\n this.slideToNext();\n }\n\n window.removeEventListener(\"mousemove\", this.mouseMove);\n window.removeEventListener(\"mouseup\", this.stopDragging, { capture: true });\n\n this.stoppedDragging = true;\n }\n\n private checkClick = (event: MouseEvent) => {\n const distance = Math.abs(this.startX - this.lastX);\n const minimumReached = distance > this.distancePreventClick;\n\n if (minimumReached) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n this.lastX = null;\n\n window.removeEventListener(\"click\", this.checkClick, { capture: true });\n }\n\n private autoplayInterval = () => {\n this.scrolledByAutoplay = true;\n\n if (this.hasReachedLastSlide()) {\n this.slideTo(0);\n } else {\n this.slideToNext();\n }\n }\n\n async componentWillLoad() {\n this.carouselId = `stzh-carousel-${carouselCounter++}`;\n this.onMediaChange();\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"carousel\");\n }\n }\n\n componentDidLoad() {\n this.itemSize = this.sizingMethod();\n this.update();\n\n this.disabledWatcher();\n this.preventMouseDragWatcher();\n this.autoplayRunningWatcher();\n }\n\n connectedCallback() {\n addMediaChangeListener(this.onMediaChange);\n\n this.resizeObserver = new ResizeObserver(this.onSlideResize)\n this.resizeObserver.observe(this.element)\n\n this.mutationObserver = new MutationObserver(this.onMutation);\n this.mutationObserver.observe(this.element, {\n childList: true,\n subtree: true\n });\n }\n\n disconnectedCallback() {\n this.scrollTimeoutId && window.clearTimeout(this.scrollTimeoutId);\n this.scrollTimeoutId = null;\n\n removeMediaChangeListener(this.onMediaChange);\n\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n }\n\n render() {\n const classes = {\n \"stzh-carousel\": true,\n \"stzh-carousel--is-disabled\": this.disabled,\n \"stzh-carousel--is-draggable\": !this.preventMouseDrag,\n \"stzh-carousel--is-non-interactive\": this.nonInteractive,\n \"stzh-carousel--is-dragging\": this.dragging,\n \"stzh-carousel--is-scrolling\": this.scrolling,\n \"stzh-carousel--has-autoplay\": this.autoplay,\n \"stzh-carousel--is-autoplay-running\": this.autoplayRunning,\n };\n\n return (\n <Host\n aria-roledescription=\"carousel\"\n style={{\n '--slides': this.currentSlides.toString()\n }}\n >\n <div class={classes}>\n <slot name=\"actions\"></slot>\n <div\n class=\"stzh-carousel__vhidden\"\n aria-live={this.autoplayDisabledByFocus || this.autoplayDisabledByMouse ? \"polite\" : \"off\"}\n >\n {this.ariaLive}\n </div>\n <div\n ref={(el) => (this.scrollElement = el as HTMLDivElement)}\n id={`${this.carouselId}-scroll`}\n class=\"stzh-carousel__scroll\"\n >\n <slot></slot>\n </div>\n {this.withTrack &&\n <div class=\"stzh-carousel__indicator\">\n <div\n class=\"stzh-carousel__indicator-track\"\n style={{\n left: `${100 / (this.slideElements?.length || 1) * this.slide}%`,\n width: `${100 / (this.slideElements?.length || 1) * this.currentSlides || 0}%`\n }}\n ></div>\n </div>\n }\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"p-71f94b81.js","mappings":"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","names":[],"sources":["src/components/stzh-carousel/stzh-carousel.scss?tag=stzh-carousel&encapsulation=scoped","src/components/stzh-carousel/stzh-carousel.tsx"],"sourcesContent":["/**\n * @prop --padding-top: Padding Top of scroll container\n * @prop --padding-bottom: Padding Bottom of scroll container\n * @prop --peek-in: Peek size (inside container) showing the next/previous slides\n * @prop --peek-out: Negative peek size (breakout of container) showing the next/previous slides\n * @prop --gutter: Space between the slides\n * @prop --snap-stop: Snap stop of scroll container\n */\n\n:host {\n @include spaceCurve('--gutter', 'regular');\n --peek: calc(var(--peek-in, 0px) + var(--peek-out, 0px));\n --peek-in: calc(#{space('medium')} + #{spaceCurveValue('regular')});\n // --peek-out: #{space('medium')};\n --padding-top: 0px;\n --padding-bottom: 0px;\n --snap-stop: always;\n --slides: 1;\n --slide-size: calc((100% - (var(--slides) - 1) * var(--gutter)) / var(--slides));\n\n @include mq($from: small) {\n --peek-in: calc(#{space('xxxlarge')} + #{spaceCurveValue('regular', 'medium')});\n // --peek-out: #{$containerMarginSmall};\n }\n\n @include mq($from: medium) {\n --peek-in: calc(#{space('big')} + #{spaceCurveValue('regular', 'large')});\n // --peek-out: 0px;\n }\n\n ::slotted(*) {\n width: 100%;\n height: inherit;\n flex-shrink: 0;\n scroll-snap-align: start;\n scroll-snap-stop: var(--snap-stop);\n transition: opacity $baseTransitionAnimationSpeed;\n\n [inert] {\n opacity: 0.5;\n }\n\n &:where(stzh-figure[inert]) {\n --caption-opacity: 0;\n }\n\n img {\n -webkit-user-drag: none;\n user-drag: none;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n }\n }\n\n ::slotted([slot=\"actions\"]) {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1;\n pointer-events: none;\n padding: 0 var(--peek);\n\n @media print {\n display: none;\n }\n\n stzh-text {\n width: auto;\n }\n\n stzh-button {\n pointer-events: all;\n }\n\n .stzh-carousel-action-previous,\n .stzh-carousel-action-next {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n }\n\n .stzh-carousel-action-previous {\n left: calc((#{space('medium')} + #{spaceCurveValue('regular')}) / -1);\n\n @include mq($from: small) {\n left: calc((#{space('xxxlarge')} + #{spaceCurveValue('regular', 'medium')}) / -1);\n }\n\n @include mq($from: medium) {\n left: calc((#{space('big')} + #{spaceCurveValue('regular', 'large')}) / -1);\n }\n }\n\n .stzh-carousel-action-next {\n right: calc((#{space('medium')} + #{spaceCurveValue('regular')}) / -1);\n\n @include mq($from: small) {\n right: calc((#{space('xxxlarge')} + #{spaceCurveValue('regular', 'medium')}) / -1);\n }\n\n @include mq($from: medium) {\n right: calc((#{space('big')} + #{spaceCurveValue('regular', 'large')}) / -1);\n }\n }\n }\n\n ::slotted(stzh-ratio[slot=\"actions\"]) {\n stzh-space,\n stzh-hspace,\n stzh-vspace {\n padding: space('xsmall');\n }\n }\n\n ::slotted(stzh-ratio[slot=\"actions\"]) {\n --background-color: transparent;\n }\n\n /* Card */\n\n &[variant=\"cards\"] {\n @include spaceCurve('--gutter', 'tiny');\n --padding-top: 4px;\n --padding-bottom: 4px;\n\n @include mq($from: medium) {\n --peek-out: #{$containerMarginMedium};\n }\n\n @include mq($from: large) {\n --peek-out: #{$containerMarginLarge};\n }\n\n @include mq($from: ultra) {\n --peek-out: calc((100vw - #{$containerMaxWidth} - var(--stzh-scrollbar-width, 0px)) / 2);\n }\n }\n\n &[variant=\"cards\"] ::slotted([slot=\"actions\"]) {\n position: relative;\n order: 1;\n margin-top: calc(#{space('medium')} - var(--padding-bottom));\n }\n\n /* No peek */\n\n &[no-peek]:not([no-peek=\"false\"]) {\n --peek-out: 0px;\n --peek-in: 0px;\n }\n}\n\n.stzh-carousel {\n position: relative;\n display: flex;\n flex-direction: column;\n width: calc(100% + var(--peek-out) * 2);\n margin-left: calc(var(--peek-out) / -1);\n margin-right: calc(var(--peek-out) / -1);\n\n &__vhidden {\n @include visuallyhidden;\n }\n\n &__indicator {\n @include spaceCurve('margin-top', 'regular');\n margin-left: auto;\n margin-right: auto;\n position: relative;\n width: 230px;\n height: 4px;\n background-color: $colorBlack20op;\n }\n\n &__indicator-track {\n position: absolute;\n background-color: $colorSecondary50;\n height: 6px;\n left: 0px;\n bottom: 0px;\n transition-property: left, width;\n transition-duration: $baseTransitionAnimationSpeed;\n }\n\n &__scroll {\n position: relative;\n grid-area: slides;\n display: grid;\n width: 100%;\n height: 100%;\n place-items: center;\n overflow-x: auto;\n overflow-y: visible;\n grid-auto-flow: column;\n grid-auto-columns: var(--slide-size);\n grid-auto-rows: 100%;\n column-gap: var(--gutter);\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n -ms-overflow-style: none;\n scroll-behavior: smooth;\n overscroll-behavior-x: contain;\n scroll-snap-type: x mandatory;\n scroll-padding: 0 var(--peek);\n padding: var(--padding-top) var(--peek) var(--padding-bottom);\n\n @media (prefers-reduced-motion: reduce) {\n scroll-behavior: auto;\n }\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n\n &--is-draggable &__scroll {\n cursor: grab;\n }\n\n &--is-dragging &__scroll {\n cursor: grabbing;\n }\n\n &--is-disabled &__scroll {\n cursor: not-allowed;\n overflow: hidden;\n }\n\n &--is-non-interactive {\n pointer-events: none;\n touch-action: none;\n }\n}\n","import {\n Component,\n Host,\n h,\n Element,\n Prop,\n Method,\n Event,\n EventEmitter,\n Watch,\n State\n} from \"@stencil/core\";\n\nimport {\n StzhCarouselSlideStartEvent,\n StzhCarouselSlidePassedEvent,\n StzhCarouselSlideEndEvent\n} from \"../../index\";\n\nimport { isStzhElement } from \"../../utils/utils\";\nimport { StzhCarouselLocalizedText } from \"./stzh-carousel.localization\"\n\nimport {\n media,\n addMediaChangeListener,\n removeMediaChangeListener\n} from '../../utils/media-utils';\n\nconst reducedMotionMedia = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n\nlet carouselCounter = 0;\n\n/*\n* Inspired by:\n*\n* - https://github.com/barthy-koeln/scroll-snap-slider\n* - https://tannerhodges.github.io/snap-slider/\n* - https://www.w3.org/WAI/ARIA/apg/patterns/carousel/examples/carousel-1-prev-next/\n* - https://dev.to/jasonwebb/how-to-build-a-more-accessible-carousel-or-slider-35lp\n* - http://web-accessibility.carnegiemuseums.org/code/carousels/\n*/\n\n/**\n * @slot - Slot for any element\n * @slot actions - Slot for `stzh-actions` element\n */\n@Component({\n tag: \"stzh-carousel\",\n styleUrl: \"stzh-carousel.scss\",\n scoped: true\n})\nexport class StzhCarousel {\n /** Translation strings */\n @Prop() localization: StzhCarouselLocalizedText;\n\n /** Carousel variant */\n @Prop({ reflect: true }) variant: \"default\" | \"cards\" = \"default\";\n\n /** Whether carousel is disabled */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Whether to remove inside/outside peek. */\n @Prop({ reflect: true }) noPeek: boolean = false;\n\n /** Slides number */\n @Prop() slides: number = 1;\n /** Slides number above small breakpoint */\n @Prop() slidesSmall: number = 0;\n /** Slides number above medium breakpoint */\n @Prop() slidesMedium: number = 0;\n /** Slides number above large breakpoint */\n @Prop() slidesLarge: number = 0;\n /** Slides number above ultra breakpoint */\n @Prop() slidesUltra: number = 0;\n\n // /** How many slides per swipe */\n // @Prop() swipeSlides: number = 1;\n // /** How many slides per swipe above small breakpoint */\n // @Prop() swipeSlidesSmall: number = 0;\n // /** How many slides per swipe above medium breakpoint */\n // @Prop() swipeSlidesMedium: number = 0;\n // /** How many slides per swipe above large breakpoint */\n // @Prop() swipeSlidesLarge: number = 0;\n // /** How many slides per swipe above ultra breakpoint */\n // @Prop() swipeSlidesUltra: number = 0;\n\n /** Active slide (readonly) */\n @Prop() slide: number = 0;\n\n /**\n * Whether autoplay is enabled.\n * Gets paused, when user has focus inside carousel element or hovers over it.\n * Also when reduced motion media query is active or carousel is set disabled.\n * Gets disabled permanently, when user interacts with carousel manually (clicks prev/next, scrolls or drags)\n */\n @Prop({ mutable: true }) autoplay: boolean = false;\n\n /** Timeout delay in milliseconds used for autoplay */\n @Prop() autoplayTimeout: number = 3000;\n\n /** Whether scrolling & dragging should be disabled */\n @Prop() nonInteractive: boolean = false;\n\n /** Whether drag with mouse should be disabled (still will be able to scroll with wheeling or arrow keys) */\n @Prop() preventMouseDrag: boolean = false;\n\n /** Whether autoplay pause should be prevented when user hovers/focuses carousel */\n @Prop() preventAutoplayPause: boolean = false;\n\n /** Whether autoplay stop should be prevented when user scroll or drags carousel */\n @Prop() preventAutoplayStop: boolean = false;\n\n /**\n * Enable all slides to be tabbable (will disable prev/next arrows from being tabbable).\n * By default only the visible slides will be tabbable and the prev/next can be used to change slides\n * (enabled when `variant` is set to `cards`).\n */\n @Prop() tabThrough: boolean = false;\n\n /** Whether indicator should be shown */\n @Prop() withTrack: boolean = false;\n\n\n /** Timeout delay in milliseconds used to catch the end of scroll events */\n @State() scrollTimeout: number = 100;\n\n /** Minimum drag distance that needs to be reached to swipe to next/previous slide(s). */\n @State() distanceQuickSwipe: number = 40;\n\n /** Minimum drag distance that neeeds to be reached to prevent click on slide elements. */\n @State() distancePreventClick: number = 6;\n\n @Element() element: HTMLStzhCarouselElement;\n\n /** Slide start event */\n @Event() stzhSlideStart: EventEmitter<StzhCarouselSlideStartEvent>;\n\n /** Slide passed event */\n @Event() stzhSlidePassed: EventEmitter<StzhCarouselSlidePassedEvent>;\n\n /** Slide end event */\n @Event() stzhSlideEnd: EventEmitter<StzhCarouselSlideEndEvent>;\n\n /** Scroll to a slide by index */\n @Method()\n async slideTo(index, behaviour: \"auto\" | \"smooth\" = \"smooth\") {\n this.scrollToSlide(index, behaviour);\n }\n\n /** Scroll to previous snap point */\n @Method()\n async slideToPrevious(behaviour: \"auto\" | \"smooth\" = \"smooth\") {\n this.scrollToPreviousSnapPoint(behaviour);\n }\n\n /** Scroll to next snap point */\n @Method()\n async slideToNext(behaviour: \"auto\" | \"smooth\" = \"smooth\") {\n this.scrollToNextSnapPoint(behaviour);\n }\n\n @Watch(\"disabled\")\n disabledWatcher() {\n if (this.disabled) {\n this.scrollElement && this.scrollElement.removeEventListener(\"scroll\", this.onScroll);\n this.scrollTimeoutId && window.clearTimeout(this.scrollTimeoutId);\n this.scrollTimeoutId = null;\n this.element.removeEventListener(\"mouseenter\", this.onMouseenter);\n this.element.removeEventListener(\"mouseleave\", this.onMouseleave);\n this.element.removeEventListener(\"focusin\", this.onFocusin);\n this.element.removeEventListener(\"focusout\", this.onFocusout);\n this.onReducedMotionMediaChange();\n reducedMotionMedia && reducedMotionMedia.removeEventListener(\"change\", this.onReducedMotionMediaChange);\n } else {\n this.scrollElement && this.scrollElement.addEventListener(\"scroll\", this.onScroll, { passive: true });\n this.element.addEventListener(\"mouseenter\", this.onMouseenter);\n this.element.addEventListener(\"mouseleave\", this.onMouseleave);\n this.element.addEventListener(\"focusin\", this.onFocusin);\n this.element.addEventListener(\"focusout\", this.onFocusout);\n reducedMotionMedia && reducedMotionMedia.addEventListener(\"change\", this.onReducedMotionMediaChange);\n }\n }\n\n @Watch(\"disabled\")\n @Watch(\"preventMouseDrag\")\n preventMouseDragWatcher() {\n if (this.preventMouseDrag || this.disabled) {\n this.disableTimeoutId && window.clearTimeout(this.disableTimeoutId);\n this.disableTimeoutId = null;\n this.scrollElement && this.scrollElement.removeEventListener(\"mousedown\", this.startDragging);\n this.lastX = null;\n } else {\n this.scrollElement && this.scrollElement.addEventListener(\"mousedown\", this.startDragging);\n }\n }\n\n @Watch(\"autoplay\")\n @Watch(\"autoplayDisabledByMotionMedia\")\n @Watch(\"autoplayDisabledByMouse\")\n @Watch(\"autoplayDisabledByFocus\")\n @Watch(\"autoplayDisabledByScroll\")\n @Watch(\"autoplayDisabledByDrag\")\n @Watch(\"autoplayTimeout\")\n @Watch(\"disabled\")\n autoplayRunningWatcher() {\n if (\n !this.autoplay\n || this.disabled\n || this.autoplayDisabledByMotionMedia\n || this.autoplayDisabledByMouse\n || this.autoplayDisabledByFocus\n || this.autoplayDisabledByScroll\n || this.autoplayDisabledByDrag\n ) {\n this.autoplayIntervalId && window.clearInterval(this.autoplayIntervalId);\n this.autoplayIntervalId = null;\n this.autoplayRunning = false;\n } else {\n this.autoplayIntervalId && window.clearInterval(this.autoplayIntervalId);\n this.autoplayIntervalId = window.setInterval(this.autoplayInterval, this.autoplayTimeout);\n this.autoplayRunning = true;\n }\n }\n\n @Watch(\"slideElements\")\n @Watch(\"currentSwipeSlides\")\n snapAlignWatcher() {\n this.slideElements.forEach((slide, index) => {\n const shouldSnap = (index - this.currentSwipeSlides) % this.currentSwipeSlides === 0;\n\n if (shouldSnap) {\n slide.style.removeProperty(\"scroll-snap-align\");\n } else {\n slide.style.setProperty(\"scroll-snap-align\", \"none\");\n }\n });\n }\n\n @Watch(\"slide\")\n @Watch(\"variant\")\n @Watch(\"slideElements\")\n @Watch(\"currentSlides\")\n @Watch(\"tabThrough\")\n inertWatcher() {\n this.slideElements.forEach((slide, index) => {\n const isActive = this.tabThrough\n || this.variant === \"cards\"\n || index >= this.slide && index < this.slide + this.currentSlides;\n\n slide.inert = !isActive;\n\n if (isActive) {\n slide.removeAttribute(\"aria-hidden\");\n } else {\n slide.setAttribute(\"aria-hidden\", isActive ? \"false\" : \"true\");\n }\n });\n }\n\n @Watch(\"variant\")\n @Watch(\"tabThrough\")\n @Watch(\"nextElements\")\n @Watch(\"previousElements\")\n prevNextNavigationWatcher() {\n const tabThrough = this.tabThrough || this.variant === \"cards\";\n\n const setAriaAttributes = (element) => {\n const isStzh = isStzhElement(element);\n\n if (tabThrough) {\n element.setAttribute(\"aria-hidden\", \"true\");\n element.setAttribute(isStzh ? \"a11y-tabindex\" : \"tabindex\", \"-1\");\n } else {\n element.removeAttribute(\"aria-hidden\");\n element.removeAttribute(isStzh ? \"a11y-tabindex\" : \"tabindex\");\n }\n }\n\n this.nextElements.forEach(setAriaAttributes);\n this.previousElements.forEach(setAriaAttributes);\n }\n\n @Watch(\"currentSlides\")\n @Watch(\"slideElements\")\n @Watch(\"nextElements\")\n @Watch(\"previousElements\")\n @Watch(\"navigationTextElements\")\n prevNextHiddenWatcher() {\n const hideElements = this.slideElements.length <= this.currentSlides;\n\n const setHiddenAttribute = (element) => {\n if (hideElements) {\n element.setAttribute(\"hidden\", \"\");\n } else {\n element.removeAttribute(\"hidden\");\n }\n };\n\n this.navigationTextElements.forEach(setHiddenAttribute);\n this.nextElements.forEach(setHiddenAttribute);\n this.previousElements.forEach(setHiddenAttribute);\n }\n\n @Watch(\"disabled\")\n @Watch(\"slide\")\n @Watch(\"currentSlides\")\n @Watch(\"slideElements\")\n @Watch(\"nextElements\")\n @Watch(\"previousElements\")\n nextPrevDisabledWatcher() {\n if (!this.scrollElement) {\n return;\n }\n\n const reachedFirstSlide = this.slide === 0;\n const reachedLastSlide = this.hasReachedLastSlide();\n\n this.nextElements.forEach((element) => {\n const isStzh = isStzhElement(element);\n element.setAttribute(isStzh ? \"a11y-disabled\" : \"aria-disabled\", reachedLastSlide || this.disabled ? \"true\" : \"false\");\n });\n\n this.previousElements.forEach((element) => {\n const isStzh = isStzhElement(element);\n element.setAttribute(isStzh ? \"a11y-disabled\" : \"aria-disabled\", reachedFirstSlide || this.disabled ? \"true\" : \"false\");\n });\n }\n\n @Watch(\"nextElements\")\n nextElementsWatcher() {\n this.nextElements.forEach((nextElement) => {\n const isStzh = isStzhElement(nextElement);\n\n nextElement.addEventListener(\"click\", this.onNextClick);\n nextElement.setAttribute(isStzh ? \"a11y-controls\" : \"aria-controls\", `${this.carouselId}-scroll`);\n });\n }\n\n @Watch(\"previousElements\")\n previousElementsWatcher() {\n this.previousElements.forEach((previousElement) => {\n const isStzh = isStzhElement(previousElement);\n\n previousElement.addEventListener(\"click\", this.onPreviousClick);\n previousElement.setAttribute(isStzh ? \"a11y-controls\" : \"aria-controls\", `${this.carouselId}-scroll`);\n });\n }\n\n /** Whether autoplay is currently running */\n @State() autoplayRunning: boolean = false;\n\n /** Whether autoplay is currently disabled by reduced motion media */\n @State() autoplayDisabledByMotionMedia: boolean = false;\n\n /** Whether autoplay is currently disabled by mouse */\n @State() autoplayDisabledByMouse: boolean = false;\n\n /** Whether autoplay is currently disabled by focus */\n @State() autoplayDisabledByFocus: boolean = false;\n\n /** Whether autoplay is currently disabled by scroll */\n @State() autoplayDisabledByScroll: boolean = false;\n\n /** Whether autoplay is currently disabled by drag */\n @State() autoplayDisabledByDrag: boolean = false;\n\n /** Whether user is currently dragging with mouse */\n @State() dragging: boolean = false;\n\n /** Whether user is currently scrolling */\n @State() scrolling: boolean = false;\n\n /** Aria live text */\n @State() ariaLive: string = \"\";\n\n /** Currently shown slides */\n @State() currentSlides: number = 1;\n\n /** How many slides should be moved currently */\n @State() currentSwipeSlides: number = 1;\n\n /** Slide elements */\n @State() slideElements: HTMLElement[] = [];\n\n /** Previous elements */\n @State() previousElements: HTMLElement[] = [];\n\n /** Next elements */\n @State() nextElements: HTMLElement[] = [];\n\n /** Navigation text elements */\n @State() navigationTextElements: HTMLElement[] = [];\n\n private scrollElement: HTMLElement;\n\n /** Unique generated id */\n private carouselId: string;\n\n /** Current scroll position */\n private slideScrollLeft: number = 0;\n\n /** Flag whether scrolling was done by user or not */\n private scrolledByAutoplay: boolean = false;\n\n /** Timeout ID used to catch the end of scroll events */\n private scrollTimeoutId: number = null;\n\n /** Interval ID for autoplay */\n private autoplayIntervalId: number;\n\n /** Last drag event position */\n private lastX: number = null;\n\n /** Where the dragging started */\n private startX: number = null;\n\n /** Where the dragging started scroll position */\n private startScrollLeft: number = null;\n\n /** Timeout ID for a smooth drag release */\n private disableTimeoutId: number = null;\n\n /** Calculated size of a single item */\n private itemSize: number;\n\n /** Resize observer used to update item size */\n private resizeObserver: ResizeObserver;\n\n /** Mutation observer used to keep track of slides */\n private mutationObserver: MutationObserver;\n\n /** Whether user has just stopped dragging */\n private stoppedDragging: boolean = false;\n\n private scrollToSlide(index, behaviour: \"auto\" | \"smooth\" = \"smooth\") {\n if (this.disabled) {\n return;\n }\n\n this.scrollElement.scrollTo({\n left: index * this.itemSize,\n behavior: reducedMotionMedia.matches ? \"auto\" : behaviour\n });\n }\n\n /** Width of a slide */\n private sizingMethod() {\n const css = window.getComputedStyle(this.scrollElement);\n\n return ((this.scrollElement.firstElementChild as HTMLElement) || this.scrollElement).offsetWidth\n + parseInt(css.getPropertyValue(\"column-gap\"), 10);\n }\n\n /**\n * Calculates the active slide.\n * The scroll-snap-type property makes sure that the container snaps perfectly to integer multiples.\n */\n private calculateSlide() {\n // Math.round: Dispatch 'stzhSlidePassed' events around the center of each slide\n // Math.ceil: Dispatch 'stzhSlidePassed' events as soon as the next one is visible\n // Math.floor: Dispatch 'stzhSlidePassed' events only when the next one is fully visible\n return Math.round(this.scrollElement.scrollLeft / this.itemSize);\n }\n\n private scrollToPreviousSnapPoint(behaviour: \"auto\" | \"smooth\" = \"smooth\") {\n if (this.disabled) {\n return;\n }\n\n let previousIndex = this.slide;\n let canSnap = false;\n\n while (!canSnap && previousIndex > 0) {\n previousIndex = previousIndex - 1;\n canSnap = (previousIndex - this.currentSwipeSlides) % this.currentSwipeSlides === 0;\n }\n\n this.slideTo(previousIndex, behaviour);\n }\n\n private scrollToNextSnapPoint(behaviour: \"auto\" | \"smooth\" = \"smooth\") {\n if (this.disabled) {\n return;\n }\n\n this.slideTo(this.slide + this.currentSwipeSlides, behaviour);\n }\n\n private update() {\n this.slide = this.calculateSlide();\n this.slideScrollLeft = this.slide * this.itemSize;\n\n this.onMutation();\n }\n\n private hasReachedLastSlide() {\n const { scrollLeft, offsetWidth, scrollWidth } = this.scrollElement;\n return Math.ceil(scrollLeft + offsetWidth) >= scrollWidth;\n }\n\n private onReducedMotionMediaChange = () => {\n this.autoplayDisabledByMotionMedia = reducedMotionMedia.matches;\n }\n\n private onMouseenter = () => {\n if (!this.preventAutoplayPause) {\n this.autoplayDisabledByMouse = true;\n }\n }\n\n private onMouseleave = () => {\n this.autoplayDisabledByMouse = false;\n }\n\n private onFocusin = () => {\n if (!this.preventAutoplayPause) {\n this.autoplayDisabledByFocus = true;\n }\n }\n\n private onFocusout = () => {\n this.autoplayDisabledByFocus = false;\n }\n\n private onPreviousClick = () => {\n this.scrollToPreviousSnapPoint();\n }\n\n private onNextClick = () => {\n this.scrollToNextSnapPoint();\n }\n\n private onSlideResize = () => {\n if (this.scrollElement) {\n this.itemSize = this.sizingMethod();\n }\n }\n\n private onMutation = () => {\n if (!this.scrollElement) {\n return;\n }\n\n this.slideElements = Array.from(this.scrollElement.children) as HTMLElement[];\n\n this.slideElements.forEach((slide, index) => {\n slide.setAttribute(\"role\", \"group\");\n slide.setAttribute(\"aria-roledescription\", \"slide\");\n slide.setAttribute(\"aria-label\", this.localization.slideLabel\n .replace(/\\{current\\}/gi, (index + 1).toString())\n .replace(/\\{total\\}/gi, this.slideElements.length.toString())\n );\n });\n\n this.previousElements = Array.from(this.element.querySelectorAll(\"[data-stzh-carousel-previous]\"));\n this.nextElements = Array.from(this.element.querySelectorAll(\"[data-stzh-carousel-next]\"));\n this.navigationTextElements = Array.from(this.element.querySelectorAll(\"[data-stzh-carousel-navigation-text]\"));\n }\n\n private onScroll = () => {\n if (this.scrollTimeoutId === null) {\n const direction = (this.scrollElement.scrollLeft > this.slideScrollLeft) ? 1 : -1;\n\n this.scrolling = true;\n\n if (!this.scrolledByAutoplay) {\n if (this.preventAutoplayStop) {\n this.autoplayDisabledByScroll = true;\n } else {\n this.autoplay = false;\n }\n }\n\n this.stzhSlideStart.emit({\n component: \"stzh-carousel\",\n index: this.slide + direction\n });\n }\n\n if (this.slide !== this.calculateSlide()) {\n this.update();\n this.stzhSlidePassed.emit({\n component: \"stzh-carousel\",\n index: this.slide\n });\n }\n\n this.scrollTimeoutId && window.clearTimeout(this.scrollTimeoutId);\n this.scrollTimeoutId = window.setTimeout(this.onScrollEnd, this.scrollTimeout);\n }\n\n private onScrollEnd = () => {\n this.scrollTimeoutId = null;\n this.update();\n\n this.scrolling = false;\n this.scrolledByAutoplay = false;\n this.autoplayDisabledByScroll = false;\n\n if (this.stoppedDragging) {\n this.stoppedDragging = false;\n this.scrollElement.style.removeProperty(\"scroll-behavior\");\n this.scrollElement.style.removeProperty(\"scroll-snap-type\");\n }\n\n if (this.tabThrough || this.variant === \"cards\") {\n this.ariaLive = \"\";\n } else {\n this.ariaLive = (this.currentSlides > 1 ? this.localization.slidesLabel : this.localization.slideLabel)\n .replace(/\\{(current|from)\\}/gi, (this.slide + 1).toString())\n .replace(/\\{to\\}/gi, (this.slide + this.currentSlides).toString())\n .replace(/\\{total\\}/gi, this.slideElements.length.toString());\n }\n\n this.stzhSlideEnd.emit({\n component: \"stzh-carousel\",\n index: this.slide\n });\n }\n\n private onMediaChange = () => {\n const ultra = media(\"ultra\").matches;\n const large = media(\"large\").matches;\n const medium = media(\"medium\").matches;\n const small = media(\"small\").matches;\n\n if (ultra && this.slidesUltra !== 0) {\n this.currentSlides = this.slidesUltra;\n } else if (large && this.slidesLarge !== 0) {\n this.currentSlides = this.slidesLarge;\n } else if (medium && this.slidesMedium !== 0) {\n this.currentSlides = this.slidesMedium;\n } else if (small && this.slidesSmall !== 0) {\n this.currentSlides = this.slidesSmall;\n } else {\n this.currentSlides = this.slides;\n }\n\n // if (ultra && this.swipeSlidesUltra !== 0) {\n // this.currentSwipeSlides = this.swipeSlidesUltra;\n // } else if (large && this.swipeSlidesLarge !== 0) {\n // this.currentSwipeSlides = this.swipeSlidesLarge;\n // } else if (medium && this.swipeSlidesMedium !== 0) {\n // this.currentSwipeSlides = this.swipeSlidesMedium;\n // } else if (small && this.swipeSlidesSmall !== 0) {\n // this.currentSwipeSlides = this.swipeSlidesSmall;\n // } else {\n // this.currentSwipeSlides = this.swipeSlides;\n // }\n\n this.currentSwipeSlides = this.currentSlides;\n }\n\n /** Scroll the slider the appropriate amount of pixels and update the last event position */\n private mouseMove = (event: MouseEvent) => {\n const distance = this.lastX - event.clientX;\n this.lastX = event.clientX;\n\n this.scrollElement.scrollLeft += distance;\n }\n\n /** Clear disable timeout, set up variables and styles and attach the listener. */\n private startDragging = (event: MouseEvent) => {\n event.preventDefault();\n\n this.disableTimeoutId && window.clearTimeout(this.disableTimeoutId);\n this.disableTimeoutId = null;\n\n this.startX = this.lastX = event.clientX;\n this.startScrollLeft = this.scrollElement.scrollLeft;\n this.scrollElement.style.setProperty(\"scroll-behavior\", \"auto\");\n this.scrollElement.style.setProperty(\"scroll-snap-type\", \"unset\");\n\n this.dragging = true;\n\n if (this.preventAutoplayStop) {\n this.autoplayDisabledByDrag = true;\n } else {\n this.autoplay = false;\n }\n\n window.addEventListener(\"mousemove\", this.mouseMove);\n window.addEventListener(\"mouseup\", this.stopDragging, { capture: true });\n window.addEventListener(\"click\", this.checkClick, { capture: true });\n }\n\n /** User stopped dragging */\n private stopDragging = (event: MouseEvent) => {\n event.preventDefault();\n\n const distance = Math.abs(this.startX - this.lastX);\n const minimumReached = distance > this.distanceQuickSwipe;\n const direction = (this.lastX > this.startX) ? 1 : -1;\n\n this.dragging = false;\n this.autoplayDisabledByDrag = false;\n\n const endDraddingLeft = this.scrollElement.scrollLeft;\n\n this.scrollElement.style.removeProperty(\"scroll-snap-type\");\n const finalLeft = this.scrollElement.scrollLeft;\n\n this.scrollElement.style.setProperty(\"scroll-snap-type\", \"unset\");\n this.scrollElement.scrollTo({ left: endDraddingLeft, behavior: \"auto\" });\n\n if (finalLeft !== this.startScrollLeft || !minimumReached) {\n this.scrollElement.scrollTo({ left: finalLeft, behavior: reducedMotionMedia.matches ? \"auto\" : \"smooth\" });\n } else if (direction === 1) {\n this.slideToPrevious();\n } else {\n this.slideToNext();\n }\n\n window.removeEventListener(\"mousemove\", this.mouseMove);\n window.removeEventListener(\"mouseup\", this.stopDragging, { capture: true });\n\n this.stoppedDragging = true;\n }\n\n private checkClick = (event: MouseEvent) => {\n const distance = Math.abs(this.startX - this.lastX);\n const minimumReached = distance > this.distancePreventClick;\n\n if (minimumReached) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n this.lastX = null;\n\n window.removeEventListener(\"click\", this.checkClick, { capture: true });\n }\n\n private autoplayInterval = () => {\n this.scrolledByAutoplay = true;\n\n if (this.hasReachedLastSlide()) {\n this.slideTo(0);\n } else {\n this.slideToNext();\n }\n }\n\n async componentWillLoad() {\n this.carouselId = `stzh-carousel-${carouselCounter++}`;\n this.onMediaChange();\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"carousel\");\n }\n }\n\n componentDidLoad() {\n this.itemSize = this.sizingMethod();\n this.update();\n\n this.disabledWatcher();\n this.preventMouseDragWatcher();\n this.autoplayRunningWatcher();\n }\n\n connectedCallback() {\n addMediaChangeListener(this.onMediaChange);\n\n this.resizeObserver = new ResizeObserver(this.onSlideResize)\n this.resizeObserver.observe(this.element)\n\n this.mutationObserver = new MutationObserver(this.onMutation);\n this.mutationObserver.observe(this.element, {\n childList: true,\n subtree: true\n });\n }\n\n disconnectedCallback() {\n this.scrollTimeoutId && window.clearTimeout(this.scrollTimeoutId);\n this.scrollTimeoutId = null;\n\n removeMediaChangeListener(this.onMediaChange);\n\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n }\n\n render() {\n const classes = {\n \"stzh-carousel\": true,\n \"stzh-carousel--is-disabled\": this.disabled,\n \"stzh-carousel--is-draggable\": !this.preventMouseDrag,\n \"stzh-carousel--is-non-interactive\": this.nonInteractive,\n \"stzh-carousel--is-dragging\": this.dragging,\n \"stzh-carousel--is-scrolling\": this.scrolling,\n \"stzh-carousel--has-autoplay\": this.autoplay,\n \"stzh-carousel--is-autoplay-running\": this.autoplayRunning,\n };\n\n return (\n <Host\n aria-roledescription=\"carousel\"\n style={{\n '--slides': this.currentSlides.toString()\n }}\n >\n <div class={classes}>\n <slot name=\"actions\"></slot>\n <div\n class=\"stzh-carousel__vhidden\"\n aria-live={this.autoplayDisabledByFocus || this.autoplayDisabledByMouse ? \"polite\" : \"off\"}\n >\n {this.ariaLive}\n </div>\n <div\n ref={(el) => (this.scrollElement = el as HTMLDivElement)}\n id={`${this.carouselId}-scroll`}\n class=\"stzh-carousel__scroll\"\n >\n <slot></slot>\n </div>\n {this.withTrack &&\n <div class=\"stzh-carousel__indicator\">\n <div\n class=\"stzh-carousel__indicator-track\"\n style={{\n left: `${100 / (this.slideElements?.length || 1) * this.slide}%`,\n width: `${100 / (this.slideElements?.length || 1) * this.currentSlides || 0}%`\n }}\n ></div>\n </div>\n }\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { p as proxyCustomElement, H, c as createEvent, h, F as Fragment, d as Host } from './p-8f01554b.js';
|
|
2
|
-
import { h as hasSlot } from './p-
|
|
2
|
+
import { h as hasSlot } from './p-1c261255.js';
|
|
3
3
|
import { d as defineCustomElement$2 } from './p-486f6cb3.js';
|
|
4
4
|
import { d as defineCustomElement$1 } from './p-0300f421.js';
|
|
5
5
|
|
|
@@ -263,4 +263,4 @@ function defineCustomElement() {
|
|
|
263
263
|
|
|
264
264
|
export { StzhButton as S, defineCustomElement as d };
|
|
265
265
|
|
|
266
|
-
//# sourceMappingURL=p-
|
|
266
|
+
//# sourceMappingURL=p-8063d484.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-c522aec2.js","mappings":"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","names":[],"sources":["src/components/stzh-button/stzh-button.scss?tag=stzh-button&encapsulation=scoped","src/components/stzh-button/stzh-button.tsx"],"sourcesContent":["/**\n * @prop --height: Height of button\n * @prop --padding-top: Padding top of button\n * @prop --padding-bottom: Padding bottom of button\n * @prop --padding-left: Padding left of button\n * @prop --padding-right: Padding right of button\n * @prop --border-radius: Border radius of button\n * @prop --color: Color of button\n * @prop --background-color: Background color of button\n * @prop --border-color: Border color of button\n * @prop --icon-size: Size of icon next to button\n * @prop --hover-color: Hover color of button\n * @prop --hover-background-color: Hover background color of button\n * @prop --hover-border-color: Hover border color of button\n * @prop --white-space: White space behaviour of button\n *\n * @prop --stzh-form-input-height: **Global**: Height of fields & buttons\n * @prop --stzh-form-input-small-height: **Global**: Height of fields & buttons when small variant is used\n * @prop --stzh-form-input-tiny-height: **Global**: Height of fields & buttons when tiny variant is used\n */\n\n @mixin button--size-default() {\n --height: #{$formInputHeight};\n --padding-top: calc(#{space('xsmall')} - var(--border-width));\n --padding-bottom: calc(#{space('xsmall')} - var(--border-width));\n --padding-left: #{space('xlarge')};\n --padding-right: #{space('xlarge')};\n --font-size: var(--stzh-font-centi-font-size);\n --line-height: var(--stzh-font-centi-text-line-height);\n --letter-spacing: normal;\n --icon-size: #{iconSize('medium')};\n --icon-toggle-size: 14.5px;\n\n &:where([icon-only]:not([icon-only=\"false\"])) {\n --icon-size: #{iconSize('large')};\n }\n}\n\n@mixin button--size-small() {\n --height: #{$formInputHeightSmall};\n --padding-left: #{space('large')};\n --padding-right: #{space('large')};\n --font-size: var(--stzh-font-milli-font-size);\n --line-height: var(--stzh-font-milli-text-line-height);\n --icon-size: #{iconSize('medium')};\n}\n\n@mixin button--size-tiny() {\n --height: #{$formInputHeightTiny};\n --padding-left: #{space('medium')};\n --padding-right: #{space('medium')};\n --padding-top: calc(#{space('xxsmall')} - var(--border-width));\n --padding-bottom: calc(#{space('xxsmall')} - var(--border-width));\n --font-size: var(--stzh-font-milli-font-size);\n --line-height: var(--stzh-font-milli-text-line-height);\n --icon-size: #{iconSize('medium')};\n}\n\n:host {\n @include button--size-default;\n --color: var(--stzh-button-color, #{$colorWhite});\n --background-color: var(--stzh-button-background-color, #{$colorPrimary70});\n --border-width: 0px;\n --border-color: transparent;\n --border-radius: 0px;\n --icon-text-margin: #{space('xsmall')};\n --icon-toggle-color: currentColor;\n --badge-icon-text-margin: calc(var(--icon-text-margin) + #{space('xxsmall')});\n --white-space: var(--stzh-button-white-space, normal);\n --box-shadow: none;\n --cursor: pointer;\n\n --hover-color: var(--stzh-button-hover-color, #{$colorWhite});\n --hover-background-color: var(--stzh-button-hover-background-color, #{$colorSecondary60});\n --hover-border-color: transparent;\n\n display: inline-flex;\n width: auto;\n min-width: var(--height);\n min-height: var(--height);\n pointer-events: var(--stzh-button-pointer-events, auto);\n\n @media print {\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n }\n\n &[icon-only]:not([icon-only=\"false\"]) {\n --padding-top: 0;\n --padding-bottom: 0;\n --padding-left: 0;\n --padding-right: 0;\n\n width: var(--height);\n height: var(--height);\n }\n\n &[fullwidth]:not([fullwidth=\"false\"]) {\n width: 100%;\n display: grid;\n }\n\n &[rounded]:not([rounded=\"false\"]) {\n --border-radius: var(--height);\n }\n\n &[no-padding-left]:not([no-padding-left=\"false\"]) {\n --padding-left: 0px;\n }\n\n &[no-padding-right]:not([no-padding-right=\"false\"]) {\n --padding-right: 0px;\n }\n\n &[variant=\"secondary\"] {\n --color: var(--stzh-button-secondary-color, #{$colorPrimary70});\n --background-color: var(--stzh-button-secondary-background-color, #{$colorSecondary30});\n\n --hover-color: var(--stzh-button-secondary-hover-color, #{$colorPrimary80});\n --hover-background-color: var(--stzh-button-secondary-hover-background-color, #{$colorSecondary40});\n }\n\n &[variant=\"tertiary\"] {\n --color: var(--stzh-button-tertiary-color, #{$colorPrimary70});\n --background-color: var(--stzh-button-tertiary-background-color, transparent);\n\n --hover-color: var(--stzh-button-tertiary-hover-color, #{$colorPrimary80});\n --hover-background-color: var(--stzh-button-tertiary-hover-background-color, #{$colorSecondary20});\n }\n\n &[variant=\"tertiary-plain\"] {\n --color: var(--stzh-button-tertiary-color, #{$colorPrimary70});\n --background-color: transparent;\n\n --hover-color: var(--stzh-button-tertiary-hover-color, #{$colorPrimary80});\n --hover-background-color: var(--background-color);\n }\n\n &[active]:not([active=\"false\"]) {\n --color: var(--stzh-button-active-color, #{$colorWhite});\n --background-color: var(--stzh-button-active-background-color, #{$colorSecondary60});\n }\n\n &[active][variant=\"secondary\"]:not([active=\"false\"]) {\n --color: var(--stzh-button-secondary-hover-color, #{$colorPrimary80});\n --background-color: var(--stzh-button-secondary-hover-background-color, #{$colorSecondary40});\n }\n\n &[active][variant=\"tertiary\"]:not([active=\"false\"]) {\n --color: var(--stzh-button-tertiary-hover-color, #{$colorPrimary80});\n --background-color: var(--stzh-button-tertiary-hover-background-color, #{$colorSecondary20});\n }\n\n &[active][variant=\"tertiary-plain\"]:not([active=\"false\"]) {\n --color: var(--stzh-button-tertiary-hover-color, #{$colorPrimary80});\n --background-color: transparent;\n }\n\n &[disabled]:not([disabled=\"false\"]),\n &[a11y-disabled]:not([a11y-disabled=\"false\"]) {\n --color: var(--stzh-button-disabled-color, #{$colorWhite});\n --background-color: var(--stzh-button-disabled-background-color, #{$colorGrey70});\n\n --hover-color: var(--color);\n --hover-background-color: var(--background-color);\n }\n\n &[disabled]:not([disabled=\"false\"])[variant=\"secondary\"],\n &[a11y-disabled]:not([a11y-disabled=\"false\"])[variant=\"secondary\"] {\n --color: var(--stzh-button-secondary-disabled-color, #{$colorGrey80});\n --background-color: var(--stzh-button-secondary-disabled-background-color, #{$colorGrey20});\n }\n\n &[disabled]:not([disabled=\"false\"])[variant=\"input\"],\n &[a11y-disabled]:not([a11y-disabled=\"false\"])[variant=\"input\"] {\n --color: var(--stzh-button-input-disabled-color, #{$colorGrey80});\n --background-color: var(--stzh-button-input-disabled-background-color, #{$colorGrey20});\n }\n\n &[disabled]:not([disabled=\"false\"])[variant=\"tertiary\"],\n &[disabled]:not([disabled=\"false\"])[variant=\"tertiary-plain\"],\n &[a11y-disabled]:not([a11y-disabled=\"false\"])[variant=\"tertiary\"],\n &[a11y-disabled]:not([a11y-disabled=\"false\"])[variant=\"tertiary-plain\"] {\n --color: var(--stzh-button-tertiary-disabled-color, #{$colorGrey70});\n --background-color: var(--stzh-button-tertiary-disabled-background-color, transparent);\n }\n}\n\n:host(:where([size=\"small\"])) {\n @include button--size-small;\n}\n\n:host(:where([size=\"tiny\"])) {\n @include button--size-tiny;\n}\n\n@each $breakpoint, $size in $breakpoints {\n @include mq($from: $breakpoint) {\n :host(:where([size-#{$breakpoint}=\"default\"])) {\n @include button--size-default;\n }\n\n :host(:where([size-#{$breakpoint}=\"small\"])) {\n @include button--size-small;\n }\n\n :host(:where([size-#{$breakpoint}=\"tiny\"])) {\n @include button--size-tiny;\n }\n }\n}\n\n@keyframes stzh-button-effect-cta {\n\t0%,\n\t20%,\n\t50%,\n\t80%,\n\t100% {\n\t\ttransform: translateX(0);\n\t}\n\n\t40% {\n\t\ttransform: translateX(-8px);\n\t}\n\n\t60% {\n\t\ttransform: translateX(-4px);\n\t}\n}\n\n.stzh-button {\n @include font('heavy');\n font-size: var(--font-size);\n line-height: var(--line-height);\n letter-spacing: var(--letter-spacing);\n position: relative;\n z-index: 0;\n overflow: visible;\n display: flex;\n align-items: center;\n justify-content: stretch;\n appearance: none;\n color: var(--color);\n padding-top: var(--padding-top);\n padding-bottom: var(--padding-bottom);\n padding-left: var(--padding-left);\n padding-right: var(--padding-right);\n background-color: var(--background-color);\n transition-duration: $baseTransitionAnimationSpeed;\n transition-property: color, background-color, border-color;\n border-style: solid;\n border-width: var(--border-width);\n border-color: var(--border-color);\n cursor: var(--cursor);\n text-decoration-line: none;\n width: 100%;\n min-height: 100%;\n margin: 0;\n border-radius: var(--border-radius);\n text-align: left;\n box-shadow: var(--box-shadow);\n\n &:hover {\n border-color: var(--hover-border-color);\n background-color: var(--hover-background-color);\n color: var(--hover-color);\n }\n\n &__vhidden {\n @include visuallyhidden;\n }\n\n &__inner {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n }\n\n &__icon-wrapper,\n &__toggle-icon-wrapper {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n\n &__icon-wrapper {\n --stzh-icon-size: var(--icon-size);\n width: auto;\n height: 1em;\n }\n\n &__toggle-icon-wrapper {\n width: var(--icon-size);\n height: var(--icon-size);\n }\n\n &__toggle-icon {\n position: relative;\n display: block;\n width: var(--icon-toggle-size);\n height: var(--icon-toggle-size);\n\n &::before,\n &::after {\n position: absolute;\n top: 50%;\n left: 50%;\n content: '';\n display: block;\n width: var(--icon-toggle-size);\n height: 2px;\n transition-property: transform, background-color;\n transition-duration: 500ms;\n transform-origin: top left;\n background-color: var(--icon-toggle-color);\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n\n &::before {\n transform: rotate(180deg) translate(-50%, -50%);\n }\n\n &::after {\n transform: rotate(90deg) translate(-50%, -50%);\n }\n }\n\n &__text {\n @include wordWrap;\n white-space: var(--white-space);\n text-align: center;\n }\n\n &--not-hyphenated &__text {\n hyphens: none;\n }\n\n &__icon-wrapper:not(:empty) + &__text:not(:empty),\n &__text:not(:empty) + &__icon-wrapper:not(:empty) {\n margin-left: var(--icon-text-margin);\n }\n\n &__badge {\n position: absolute;\n z-index: 1;\n top: 0;\n right: 0;\n }\n\n &__input {\n @include visuallyhiddenInput;\n }\n\n &__mark {\n @include radio__mark();\n width: 20px;\n height: 20px;\n margin-right: space('xsmall');\n border-color: currentColor;\n }\n\n &__check {\n @include radio__check();\n }\n\n /* Hover / Focus / Checked / Disabled of Radio Type */\n\n &__input:checked:hover ~ &__inner &__mark &__check,\n &__input:checked:focus ~ &__inner &__mark &__check {\n color: $colorSecondary60;\n }\n\n &:hover &__mark,\n &__input:focus:hover ~ &__inner &__mark,\n &__input:checked:hover ~ &__inner &__mark,\n &__input:checked:focus ~ &__inner &__mark {\n border-color: $colorSecondary60;\n }\n\n &__input:focus ~ &__inner &__mark,\n &__input:checked ~ &__inner &__mark {\n border-color: $colorPrimary;\n }\n\n &__input:checked ~ &__inner &__mark &__check {\n opacity: 1;\n }\n\n &--is-disabled &__input ~ &__inner &__mark &__check {\n color: $formDisabledColor;\n }\n\n &--is-disabled &__input ~ &__inner &__mark {\n border-color: $formDisabledBorderColor;\n }\n\n &--is-disabled &__mark {\n background-color: $formDisabledBackgroundColor;\n }\n\n /* Is expanded */\n\n &--is-expanded &__toggle-icon {\n &::before,\n &::after {\n transform: rotate(0) translate(-50%, -50%);\n }\n }\n\n /* Badge positioning variants */\n\n &--badge-position-button &__icon-wrapper {\n position: static;\n }\n\n &__badge,\n &--badge-position-button &__badge {\n top: calc(#{space('xsmall')} * -1);\n right: calc(#{space('xsmall')} * -1);\n }\n\n &--badge-position-icon#{&}--has-icon &__icon-wrapper {\n position: relative;\n }\n\n &--badge-position-icon#{&}--has-icon &__badge {\n top: calc(#{space('xsmall')} * -1);\n right: calc(#{space('small')} * -1);\n }\n\n &--badge-position-icon#{&}--has-icon#{&}--has-badge &__icon-wrapper:not(:empty) + &__text:not(:empty),\n &--badge-position-icon#{&}--has-icon#{&}--has-badge &__text:not(:empty) + &__icon-wrapper:not(:empty) {\n margin-left: var(--badge-icon-text-margin);\n }\n\n /* Variant if button only has icon */\n\n &--has-icon-only &__text {\n @include visuallyhidden;\n }\n\n /* Effect */\n\n &--effect-cta:hover &__icon-wrapper {\n\t\tanimation: stzh-button-effect-cta 1s;\n }\n\n /* Alignment variants */\n\n &--align-left &__inner {\n justify-content: flex-start;\n }\n\n &--align-right &__inner {\n justify-content: flex-end;\n }\n\n &--align-center &__inner {\n justify-content: center;\n }\n\n &--align-space-between &__inner {\n justify-content: space-between;\n }\n\n /* Disabled variant */\n\n &--is-disabled {\n cursor: not-allowed;\n }\n\n /* Default */\n\n &--default.has-focus {\n outline: var(--stzh-flyingfocus-color) solid 3px;\n }\n}\n","import { Component, Element, Event, EventEmitter, Fragment, h, Host, Listen, Prop } from '@stencil/core';\n\nimport {\n StzhBadgeType,\n StzhButtonBlurEvent,\n StzhButtonChangeEvent,\n StzhButtonClickEvent,\n StzhButtonFocusEvent,\n StzhButtonSize,\n StzhButtonVariant,\n StzhLocaleComponent,\n} from '../../index';\n\nimport { hasSlot } from '../../utils/utils';\n\n/**\n * @slot - Slot for label/text content\n * @slot icon - Slot for icon element\n */\n@Component({\n tag: 'stzh-button',\n styleUrl: 'stzh-button.scss',\n scoped: true,\n})\nexport class StzhButton {\n /** Translation strings */\n @Prop() localization: StzhLocaleComponent;\n\n /** Display a badge aligned to button or icons */\n @Prop() badge: string = '';\n\n /** Disable hyphenation for text inside button */\n @Prop() noHyphenation: boolean = false;\n\n /** Badge type */\n @Prop({ reflect: true }) badgeType: StzhBadgeType = 'default';\n\n /** Badge position */\n @Prop({ reflect: true }) badgePosition: 'icon' | 'button' = 'button';\n\n /** Whether badge should be displayed empty */\n @Prop({ reflect: true }) badgeEmpty: boolean = false;\n\n /** Whether the button is full width */\n @Prop({ reflect: true }) fullwidth: boolean = false;\n\n /** Whether the button is rounded */\n @Prop({ reflect: true }) rounded: boolean = false;\n\n /** Size variant */\n @Prop({ reflect: true }) size: StzhButtonSize = 'default';\n\n /** Size variant (above small breakpoint) */\n @Prop({ reflect: true }) sizeSmall: StzhButtonSize;\n\n /** Size variant (above medium breakpoint) */\n @Prop({ reflect: true }) sizeMedium: StzhButtonSize;\n\n /** Size variant (above large breakpoint) */\n @Prop({ reflect: true }) sizeLarge: StzhButtonSize;\n\n /** Size variant (above ultra breakpoint) */\n @Prop({ reflect: true }) sizeUltra: StzhButtonSize;\n\n /** Text alignment */\n @Prop({ reflect: true }) textAlign: 'left' | 'center' | 'right' | 'space-between' | 'default' = 'default';\n\n /** Variant style */\n @Prop({ reflect: true }) variant: StzhButtonVariant = 'default';\n\n /** Icon (use instead of icon slot) */\n @Prop() icon: string = '';\n\n /** Icon Position */\n @Prop({ reflect: true }) iconPosition: 'left' | 'right' = 'left';\n\n /** Checked status (if type is radio) */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n\n /** Default checked (used by reset, if type is radio) */\n @Prop({ mutable: true }) defaultChecked: boolean;\n\n /** The name of the input element (if type is button or radio) */\n @Prop({ reflect: true }) name: string = '';\n\n /** The value of the input element (if type is button or radio) */\n @Prop({ mutable: true }) value: string = '';\n\n /** `href` if the button should be used as link */\n @Prop() href: string = '';\n\n /** Rel (if href is used) */\n @Prop() rel: string;\n\n /** Target if the button is used as link (if `href` used) */\n @Prop() target: string = '';\n\n /** Download attribute of link (if `href` used) */\n @Prop() download: string;\n\n /** Type of the button */\n @Prop() type: 'button' | 'submit' | 'reset' | 'radio' = 'button';\n\n /** Whether the button is disabled */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Whether to disable the button on click or not */\n @Prop() disableOnClick: boolean = false;\n\n /** Whether the button is active */\n @Prop({ reflect: true }) active: boolean = false;\n\n /** Label */\n @Prop() label: string = '';\n\n /** Effect/Animation used */\n @Prop() effect: 'default' | 'cta' = 'default';\n\n /** Whether only an icon is used inside the button */\n @Prop({ reflect: true }) iconOnly: boolean = false;\n\n /** Whether padding left should be removed */\n @Prop({ reflect: true }) noPaddingLeft: boolean = false;\n\n /** Whether padding right should be removed */\n @Prop({ reflect: true }) noPaddingRight: boolean = false;\n\n /** Access key of button (usually a number e.g. 1) */\n @Prop() buttonAccesskey: string;\n\n /** ID of button element */\n @Prop() buttonId: string;\n\n /** Whether to show toggle icon (show minus when a11yExpanded=true, otherwise plus) */\n @Prop({ reflect: true }) showToggleIcon: boolean = false;\n\n /** Accessible label for screen readers to replace visible text */\n @Prop({ attribute: 'a11y-label' }) a11yLabel: string;\n\n /** Id for element which describes the button (this will be overwritten if description prop or slot is used, used by stzh-radiogroup) */\n @Prop({ attribute: 'a11y-describedby' }) a11yDescribedby: string = '';\n\n /** Aria expanded of link/button */\n @Prop({ reflect: true, attribute: 'a11y-expanded' }) a11yExpanded: boolean;\n\n /** Aria disabled of link/button */\n @Prop({ reflect: true, attribute: 'a11y-disabled' }) a11yDisabled: boolean;\n\n /** Aria controls of link/button */\n @Prop({ attribute: 'a11y-controls' }) a11yControls: string;\n\n /** Aria current of link/button */\n @Prop({ attribute: 'a11y-current' }) a11yCurrent: string;\n\n /** Tabindex of link/button */\n @Prop({ attribute: 'a11y-tabindex' }) a11yTabindex: string;\n\n /**\n * For Adobe Analytics.\n * Will be rendered as value of `s-object-id` attribute to the link/button element.\n * Default value will be taken from `label` prop or default slot.\n */\n @Prop() analyticsId: string;\n\n @Element() element: HTMLStzhButtonElement;\n\n @Listen('reset', { target: 'document' })\n resetListener(event: Event) {\n if ((event.target as HTMLElement).contains(this.element)) {\n requestAnimationFrame(() => {\n this.handleReset();\n });\n }\n }\n\n /** Focus event */\n @Event() stzhFocus: EventEmitter<StzhButtonFocusEvent>;\n\n /** Blur event */\n @Event() stzhBlur: EventEmitter<StzhButtonBlurEvent>;\n\n /** Change event (only called if type is radio) */\n @Event() stzhChange: EventEmitter<StzhButtonChangeEvent>;\n\n /** Click event */\n @Event() stzhClick: EventEmitter<StzhButtonClickEvent>;\n\n private button: HTMLButtonElement | HTMLAnchorElement | HTMLLabelElement;\n private input: HTMLInputElement;\n private text: HTMLDivElement;\n private focusedByInput: boolean = false;\n\n private handleReset = async () => {\n this.checked = this.defaultChecked;\n };\n\n private onInput = (event: InputEvent) => {\n this.checked = this.input.checked;\n this.stzhChange.emit({\n component: 'stzh-button',\n originalEvent: event,\n value: this.value,\n checked: this.checked,\n });\n };\n\n private onRootFocus = () => {\n if (!this.focusedByInput) {\n this.button.focus();\n }\n\n this.focusedByInput = false;\n };\n\n private onFocus = (event: FocusEvent) => {\n this.focusedByInput = true;\n\n const focusEvent = new FocusEvent('focus', {\n view: window,\n bubbles: false,\n cancelable: false,\n });\n\n this.element.dispatchEvent(focusEvent);\n this.stzhFocus.emit({\n component: 'stzh-button',\n originalEvent: event,\n });\n };\n\n private onBlur = (event: FocusEvent) => {\n const blurEvent = new FocusEvent('blur', {\n view: window,\n bubbles: false,\n cancelable: false,\n });\n\n this.element.dispatchEvent(blurEvent);\n this.stzhBlur.emit({\n component: 'stzh-button',\n originalEvent: event,\n });\n };\n\n private onClick = (event: MouseEvent) => {\n if (this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n } else {\n if (this.disableOnClick) {\n this.disabled = true;\n }\n this.stzhClick.emit({\n component: 'stzh-button',\n originalEvent: event,\n href: this.href,\n });\n }\n };\n\n private renderIcon(iconUsed: boolean): HTMLInputElement {\n return (\n <div class=\"stzh-button__icon-wrapper\">\n {this.icon &&\n <stzh-icon class=\"stzh-button__icon\" name={this.icon}></stzh-icon>\n }\n {!this.icon && this.showToggleIcon &&\n <div class=\"stzh-button__toggle-icon-wrapper\">\n <div class=\"stzh-button__toggle-icon\"></div>\n </div>\n }\n {!this.icon && !this.showToggleIcon &&\n <slot name=\"icon\"></slot>\n }\n {(this.badge || this.badgeEmpty) && this.badgePosition === 'icon' && iconUsed &&\n <stzh-badge class=\"stzh-button__badge\" label={this.badge} type={this.badgeType}></stzh-badge>\n }\n </div>\n );\n }\n\n private renderContent(): HTMLDivElement {\n return (\n <div\n class=\"stzh-button__text\"\n ref={(el) => (this.text = el as HTMLDivElement)}\n >\n {this.rel && this.rel.includes('external') &&\n <div class=\"stzh-button__vhidden\">{this.localization.$globals.externalLinkLabel}</div>}\n {this.download && <div class=\"stzh-button__vhidden\">{this.localization.$globals.downloadLinkLabel}</div>}\n {this.label ? this.label : <slot></slot>}\n </div>\n );\n }\n\n private renderInner(iconUsed: boolean): DocumentFragment {\n return (\n <Fragment>\n <div class=\"stzh-button__inner\">\n {this.type === 'radio' &&\n <div class=\"stzh-button__mark\">\n <div class=\"stzh-button__check\"></div>\n </div>\n }\n {this.iconPosition === 'left' && this.renderIcon(iconUsed)}\n {this.renderContent()}\n {this.iconPosition === 'right' && this.renderIcon(iconUsed)}\n </div>\n {(this.badge || this.badgeEmpty) && (this.badgePosition === 'button' || !iconUsed) &&\n <stzh-badge\n class=\"stzh-button__badge\"\n label={this.badge}\n type={this.badgeType}\n ></stzh-badge>\n }\n </Fragment>\n );\n }\n\n async componentWillLoad() {\n this.defaultChecked = typeof this.defaultChecked === 'boolean' ? this.defaultChecked : this.checked;\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, 'button');\n }\n }\n\n componentDidRender() {\n requestAnimationFrame(() => {\n this.button?.setAttribute('s-object-id', this.analyticsId || this.text.innerText);\n });\n }\n\n render() {\n const iconUsed: boolean = hasSlot(this.element, 'icon') || !!this.icon;\n const classes = {\n 'stzh-button': true,\n 'stzh-button--has-icon': iconUsed,\n 'stzh-button--has-icon-only': this.iconOnly,\n 'stzh-button--has-badge': !!this.badge,\n 'stzh-button--is-rounded': this.rounded,\n 'stzh-button--is-fullwidth': this.fullwidth,\n 'stzh-button--is-disabled': this.disabled || this.a11yDisabled,\n 'stzh-button--is-active': this.active,\n 'stzh-button--is-expanded': this.a11yExpanded,\n 'stzh-button--not-hyphenated': this.noHyphenation,\n [`stzh-button--effect-${this.effect}`]: !!this.effect,\n [`stzh-button--badge-position-${this.badgePosition}`]: !!this.badgePosition,\n [`stzh-button--align-${this.textAlign}`]: !!this.textAlign,\n [`stzh-button--type-${this.type}`]: !!this.type,\n [`stzh-button--${this.variant}`]: !!this.variant,\n };\n\n return (\n <Host tabindex={this.disabled ? null : '-1'} onFocus={this.onRootFocus}>\n {this.href ?\n <a\n ref={(el) => (this.button = el as HTMLAnchorElement)}\n href={this.disabled ? null : this.href}\n rel={this.rel}\n download={this.download}\n target={this.target}\n class={classes}\n aria-label={this.a11yLabel || null}\n aria-describedby={this.a11yDescribedby || null}\n aria-disabled={typeof this.a11yDisabled !== 'undefined'\n ? (this.a11yDisabled ? 'true' : 'false') : null}\n aria-expanded={typeof this.a11yExpanded !== 'undefined'\n ? (this.a11yExpanded ? 'true' : 'false') : null}\n aria-controls={this.a11yControls || null}\n aria-current={this.a11yCurrent || null}\n id={this.buttonId}\n accessKey={this.buttonAccesskey}\n tabindex={this.a11yTabindex}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onClick={this.onClick}\n >\n {this.renderInner(iconUsed)}\n </a>\n :\n this.type === 'radio' ?\n <label\n ref={(el) => (this.button = el as HTMLLabelElement)}\n class={classes}\n onClick={this.onClick}\n >\n <input\n ref={(el) => (this.input = el as HTMLInputElement)}\n type=\"radio\"\n class=\"stzh-button__input\"\n name={this.name}\n value={this.value}\n defaultChecked={this.defaultChecked}\n checked={this.checked}\n disabled={this.disabled}\n aria-label={this.a11yLabel || null}\n aria-describedby={this.a11yDescribedby || null}\n aria-disabled={typeof this.a11yDisabled !== 'undefined'\n ? (this.a11yDisabled ? 'true' : 'false') : null}\n aria-expanded={typeof this.a11yExpanded !== 'undefined'\n ? (this.a11yExpanded ? 'true' : 'false') : null}\n aria-controls={this.a11yControls || null}\n aria-current={this.a11yCurrent || null}\n id={this.buttonId}\n accessKey={this.buttonAccesskey}\n tabindex={this.a11yTabindex}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onClick={this.onClick}\n onInput={this.onInput}\n />\n {this.renderInner(iconUsed)}\n </label>\n :\n <button\n ref={(el) => (this.button = el as HTMLButtonElement)}\n class={classes}\n type={this.type}\n name={this.name}\n value={this.value}\n disabled={this.disabled}\n aria-label={this.a11yLabel || null}\n aria-describedby={this.a11yDescribedby || null}\n aria-disabled={typeof this.a11yDisabled !== 'undefined'\n ? (this.a11yDisabled ? 'true' : 'false') : null}\n aria-expanded={typeof this.a11yExpanded !== 'undefined'\n ? (this.a11yExpanded ? 'true' : 'false') : null}\n aria-controls={this.a11yControls || null}\n aria-current={this.a11yCurrent || null}\n id={this.buttonId}\n accessKey={this.buttonAccesskey}\n tabindex={this.a11yTabindex}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onClick={this.onClick}\n >\n {this.renderInner(iconUsed)}\n </button>\n }\n </Host>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"p-8063d484.js","mappings":"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","names":[],"sources":["src/components/stzh-button/stzh-button.scss?tag=stzh-button&encapsulation=scoped","src/components/stzh-button/stzh-button.tsx"],"sourcesContent":["/**\n * @prop --height: Height of button\n * @prop --padding-top: Padding top of button\n * @prop --padding-bottom: Padding bottom of button\n * @prop --padding-left: Padding left of button\n * @prop --padding-right: Padding right of button\n * @prop --border-radius: Border radius of button\n * @prop --color: Color of button\n * @prop --background-color: Background color of button\n * @prop --border-color: Border color of button\n * @prop --icon-size: Size of icon next to button\n * @prop --hover-color: Hover color of button\n * @prop --hover-background-color: Hover background color of button\n * @prop --hover-border-color: Hover border color of button\n * @prop --white-space: White space behaviour of button\n *\n * @prop --stzh-form-input-height: **Global**: Height of fields & buttons\n * @prop --stzh-form-input-small-height: **Global**: Height of fields & buttons when small variant is used\n * @prop --stzh-form-input-tiny-height: **Global**: Height of fields & buttons when tiny variant is used\n */\n\n @mixin button--size-default() {\n --height: #{$formInputHeight};\n --padding-top: calc(#{space('xsmall')} - var(--border-width));\n --padding-bottom: calc(#{space('xsmall')} - var(--border-width));\n --padding-left: #{space('xlarge')};\n --padding-right: #{space('xlarge')};\n --font-size: var(--stzh-font-centi-font-size);\n --line-height: var(--stzh-font-centi-text-line-height);\n --letter-spacing: normal;\n --icon-size: #{iconSize('medium')};\n --icon-toggle-size: 14.5px;\n\n &:where([icon-only]:not([icon-only=\"false\"])) {\n --icon-size: #{iconSize('large')};\n }\n}\n\n@mixin button--size-small() {\n --height: #{$formInputHeightSmall};\n --padding-left: #{space('large')};\n --padding-right: #{space('large')};\n --font-size: var(--stzh-font-milli-font-size);\n --line-height: var(--stzh-font-milli-text-line-height);\n --icon-size: #{iconSize('medium')};\n}\n\n@mixin button--size-tiny() {\n --height: #{$formInputHeightTiny};\n --padding-left: #{space('medium')};\n --padding-right: #{space('medium')};\n --padding-top: calc(#{space('xxsmall')} - var(--border-width));\n --padding-bottom: calc(#{space('xxsmall')} - var(--border-width));\n --font-size: var(--stzh-font-milli-font-size);\n --line-height: var(--stzh-font-milli-text-line-height);\n --icon-size: #{iconSize('medium')};\n}\n\n:host {\n @include button--size-default;\n --color: var(--stzh-button-color, #{$colorWhite});\n --background-color: var(--stzh-button-background-color, #{$colorPrimary70});\n --border-width: 0px;\n --border-color: transparent;\n --border-radius: 0px;\n --icon-text-margin: #{space('xsmall')};\n --icon-toggle-color: currentColor;\n --badge-icon-text-margin: calc(var(--icon-text-margin) + #{space('xxsmall')});\n --white-space: var(--stzh-button-white-space, normal);\n --box-shadow: none;\n --cursor: pointer;\n\n --hover-color: var(--stzh-button-hover-color, #{$colorWhite});\n --hover-background-color: var(--stzh-button-hover-background-color, #{$colorSecondary60});\n --hover-border-color: transparent;\n\n display: inline-flex;\n width: auto;\n min-width: var(--height);\n min-height: var(--height);\n pointer-events: var(--stzh-button-pointer-events, auto);\n\n @media print {\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n }\n\n &[icon-only]:not([icon-only=\"false\"]) {\n --padding-top: 0;\n --padding-bottom: 0;\n --padding-left: 0;\n --padding-right: 0;\n\n width: var(--height);\n height: var(--height);\n }\n\n &[fullwidth]:not([fullwidth=\"false\"]) {\n width: 100%;\n display: grid;\n }\n\n &[rounded]:not([rounded=\"false\"]) {\n --border-radius: var(--height);\n }\n\n &[no-padding-left]:not([no-padding-left=\"false\"]) {\n --padding-left: 0px;\n }\n\n &[no-padding-right]:not([no-padding-right=\"false\"]) {\n --padding-right: 0px;\n }\n\n &[variant=\"secondary\"] {\n --color: var(--stzh-button-secondary-color, #{$colorPrimary70});\n --background-color: var(--stzh-button-secondary-background-color, #{$colorSecondary30});\n\n --hover-color: var(--stzh-button-secondary-hover-color, #{$colorPrimary80});\n --hover-background-color: var(--stzh-button-secondary-hover-background-color, #{$colorSecondary40});\n }\n\n &[variant=\"tertiary\"] {\n --color: var(--stzh-button-tertiary-color, #{$colorPrimary70});\n --background-color: var(--stzh-button-tertiary-background-color, transparent);\n\n --hover-color: var(--stzh-button-tertiary-hover-color, #{$colorPrimary80});\n --hover-background-color: var(--stzh-button-tertiary-hover-background-color, #{$colorSecondary20});\n }\n\n &[variant=\"tertiary-plain\"] {\n --color: var(--stzh-button-tertiary-color, #{$colorPrimary70});\n --background-color: transparent;\n\n --hover-color: var(--stzh-button-tertiary-hover-color, #{$colorPrimary80});\n --hover-background-color: var(--background-color);\n }\n\n &[active]:not([active=\"false\"]) {\n --color: var(--stzh-button-active-color, #{$colorWhite});\n --background-color: var(--stzh-button-active-background-color, #{$colorSecondary60});\n }\n\n &[active][variant=\"secondary\"]:not([active=\"false\"]) {\n --color: var(--stzh-button-secondary-hover-color, #{$colorPrimary80});\n --background-color: var(--stzh-button-secondary-hover-background-color, #{$colorSecondary40});\n }\n\n &[active][variant=\"tertiary\"]:not([active=\"false\"]) {\n --color: var(--stzh-button-tertiary-hover-color, #{$colorPrimary80});\n --background-color: var(--stzh-button-tertiary-hover-background-color, #{$colorSecondary20});\n }\n\n &[active][variant=\"tertiary-plain\"]:not([active=\"false\"]) {\n --color: var(--stzh-button-tertiary-hover-color, #{$colorPrimary80});\n --background-color: transparent;\n }\n\n &[disabled]:not([disabled=\"false\"]),\n &[a11y-disabled]:not([a11y-disabled=\"false\"]) {\n --color: var(--stzh-button-disabled-color, #{$colorWhite});\n --background-color: var(--stzh-button-disabled-background-color, #{$colorGrey70});\n\n --hover-color: var(--color);\n --hover-background-color: var(--background-color);\n }\n\n &[disabled]:not([disabled=\"false\"])[variant=\"secondary\"],\n &[a11y-disabled]:not([a11y-disabled=\"false\"])[variant=\"secondary\"] {\n --color: var(--stzh-button-secondary-disabled-color, #{$colorGrey80});\n --background-color: var(--stzh-button-secondary-disabled-background-color, #{$colorGrey20});\n }\n\n &[disabled]:not([disabled=\"false\"])[variant=\"input\"],\n &[a11y-disabled]:not([a11y-disabled=\"false\"])[variant=\"input\"] {\n --color: var(--stzh-button-input-disabled-color, #{$colorGrey80});\n --background-color: var(--stzh-button-input-disabled-background-color, #{$colorGrey20});\n }\n\n &[disabled]:not([disabled=\"false\"])[variant=\"tertiary\"],\n &[disabled]:not([disabled=\"false\"])[variant=\"tertiary-plain\"],\n &[a11y-disabled]:not([a11y-disabled=\"false\"])[variant=\"tertiary\"],\n &[a11y-disabled]:not([a11y-disabled=\"false\"])[variant=\"tertiary-plain\"] {\n --color: var(--stzh-button-tertiary-disabled-color, #{$colorGrey70});\n --background-color: var(--stzh-button-tertiary-disabled-background-color, transparent);\n }\n}\n\n:host(:where([size=\"small\"])) {\n @include button--size-small;\n}\n\n:host(:where([size=\"tiny\"])) {\n @include button--size-tiny;\n}\n\n@each $breakpoint, $size in $breakpoints {\n @include mq($from: $breakpoint) {\n :host(:where([size-#{$breakpoint}=\"default\"])) {\n @include button--size-default;\n }\n\n :host(:where([size-#{$breakpoint}=\"small\"])) {\n @include button--size-small;\n }\n\n :host(:where([size-#{$breakpoint}=\"tiny\"])) {\n @include button--size-tiny;\n }\n }\n}\n\n@keyframes stzh-button-effect-cta {\n\t0%,\n\t20%,\n\t50%,\n\t80%,\n\t100% {\n\t\ttransform: translateX(0);\n\t}\n\n\t40% {\n\t\ttransform: translateX(-8px);\n\t}\n\n\t60% {\n\t\ttransform: translateX(-4px);\n\t}\n}\n\n.stzh-button {\n @include font('heavy');\n font-size: var(--font-size);\n line-height: var(--line-height);\n letter-spacing: var(--letter-spacing);\n position: relative;\n z-index: 0;\n overflow: visible;\n display: flex;\n align-items: center;\n justify-content: stretch;\n appearance: none;\n color: var(--color);\n padding-top: var(--padding-top);\n padding-bottom: var(--padding-bottom);\n padding-left: var(--padding-left);\n padding-right: var(--padding-right);\n background-color: var(--background-color);\n transition-duration: $baseTransitionAnimationSpeed;\n transition-property: color, background-color, border-color;\n border-style: solid;\n border-width: var(--border-width);\n border-color: var(--border-color);\n cursor: var(--cursor);\n text-decoration-line: none;\n width: 100%;\n min-height: 100%;\n margin: 0;\n border-radius: var(--border-radius);\n text-align: left;\n box-shadow: var(--box-shadow);\n\n &:hover {\n border-color: var(--hover-border-color);\n background-color: var(--hover-background-color);\n color: var(--hover-color);\n }\n\n &__vhidden {\n @include visuallyhidden;\n }\n\n &__inner {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n }\n\n &__icon-wrapper,\n &__toggle-icon-wrapper {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n\n &__icon-wrapper {\n --stzh-icon-size: var(--icon-size);\n width: auto;\n height: 1em;\n }\n\n &__toggle-icon-wrapper {\n width: var(--icon-size);\n height: var(--icon-size);\n }\n\n &__toggle-icon {\n position: relative;\n display: block;\n width: var(--icon-toggle-size);\n height: var(--icon-toggle-size);\n\n &::before,\n &::after {\n position: absolute;\n top: 50%;\n left: 50%;\n content: '';\n display: block;\n width: var(--icon-toggle-size);\n height: 2px;\n transition-property: transform, background-color;\n transition-duration: 500ms;\n transform-origin: top left;\n background-color: var(--icon-toggle-color);\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n\n &::before {\n transform: rotate(180deg) translate(-50%, -50%);\n }\n\n &::after {\n transform: rotate(90deg) translate(-50%, -50%);\n }\n }\n\n &__text {\n @include wordWrap;\n white-space: var(--white-space);\n text-align: center;\n }\n\n &--not-hyphenated &__text {\n hyphens: none;\n }\n\n &__icon-wrapper:not(:empty) + &__text:not(:empty),\n &__text:not(:empty) + &__icon-wrapper:not(:empty) {\n margin-left: var(--icon-text-margin);\n }\n\n &__badge {\n position: absolute;\n z-index: 1;\n top: 0;\n right: 0;\n }\n\n &__input {\n @include visuallyhiddenInput;\n }\n\n &__mark {\n @include radio__mark();\n width: 20px;\n height: 20px;\n margin-right: space('xsmall');\n border-color: currentColor;\n }\n\n &__check {\n @include radio__check();\n }\n\n /* Hover / Focus / Checked / Disabled of Radio Type */\n\n &__input:checked:hover ~ &__inner &__mark &__check,\n &__input:checked:focus ~ &__inner &__mark &__check {\n color: $colorSecondary60;\n }\n\n &:hover &__mark,\n &__input:focus:hover ~ &__inner &__mark,\n &__input:checked:hover ~ &__inner &__mark,\n &__input:checked:focus ~ &__inner &__mark {\n border-color: $colorSecondary60;\n }\n\n &__input:focus ~ &__inner &__mark,\n &__input:checked ~ &__inner &__mark {\n border-color: $colorPrimary;\n }\n\n &__input:checked ~ &__inner &__mark &__check {\n opacity: 1;\n }\n\n &--is-disabled &__input ~ &__inner &__mark &__check {\n color: $formDisabledColor;\n }\n\n &--is-disabled &__input ~ &__inner &__mark {\n border-color: $formDisabledBorderColor;\n }\n\n &--is-disabled &__mark {\n background-color: $formDisabledBackgroundColor;\n }\n\n /* Is expanded */\n\n &--is-expanded &__toggle-icon {\n &::before,\n &::after {\n transform: rotate(0) translate(-50%, -50%);\n }\n }\n\n /* Badge positioning variants */\n\n &--badge-position-button &__icon-wrapper {\n position: static;\n }\n\n &__badge,\n &--badge-position-button &__badge {\n top: calc(#{space('xsmall')} * -1);\n right: calc(#{space('xsmall')} * -1);\n }\n\n &--badge-position-icon#{&}--has-icon &__icon-wrapper {\n position: relative;\n }\n\n &--badge-position-icon#{&}--has-icon &__badge {\n top: calc(#{space('xsmall')} * -1);\n right: calc(#{space('small')} * -1);\n }\n\n &--badge-position-icon#{&}--has-icon#{&}--has-badge &__icon-wrapper:not(:empty) + &__text:not(:empty),\n &--badge-position-icon#{&}--has-icon#{&}--has-badge &__text:not(:empty) + &__icon-wrapper:not(:empty) {\n margin-left: var(--badge-icon-text-margin);\n }\n\n /* Variant if button only has icon */\n\n &--has-icon-only &__text {\n @include visuallyhidden;\n }\n\n /* Effect */\n\n &--effect-cta:hover &__icon-wrapper {\n\t\tanimation: stzh-button-effect-cta 1s;\n }\n\n /* Alignment variants */\n\n &--align-left &__inner {\n justify-content: flex-start;\n }\n\n &--align-right &__inner {\n justify-content: flex-end;\n }\n\n &--align-center &__inner {\n justify-content: center;\n }\n\n &--align-space-between &__inner {\n justify-content: space-between;\n }\n\n /* Disabled variant */\n\n &--is-disabled {\n cursor: not-allowed;\n }\n\n /* Default */\n\n &--default.has-focus {\n outline: var(--stzh-flyingfocus-color) solid 3px;\n }\n}\n","import { Component, Element, Event, EventEmitter, Fragment, h, Host, Listen, Prop } from '@stencil/core';\n\nimport {\n StzhBadgeType,\n StzhButtonBlurEvent,\n StzhButtonChangeEvent,\n StzhButtonClickEvent,\n StzhButtonFocusEvent,\n StzhButtonSize,\n StzhButtonVariant,\n StzhLocaleComponent,\n} from '../../index';\n\nimport { hasSlot } from '../../utils/utils';\n\n/**\n * @slot - Slot for label/text content\n * @slot icon - Slot for icon element\n */\n@Component({\n tag: 'stzh-button',\n styleUrl: 'stzh-button.scss',\n scoped: true,\n})\nexport class StzhButton {\n /** Translation strings */\n @Prop() localization: StzhLocaleComponent;\n\n /** Display a badge aligned to button or icons */\n @Prop() badge: string = '';\n\n /** Disable hyphenation for text inside button */\n @Prop() noHyphenation: boolean = false;\n\n /** Badge type */\n @Prop({ reflect: true }) badgeType: StzhBadgeType = 'default';\n\n /** Badge position */\n @Prop({ reflect: true }) badgePosition: 'icon' | 'button' = 'button';\n\n /** Whether badge should be displayed empty */\n @Prop({ reflect: true }) badgeEmpty: boolean = false;\n\n /** Whether the button is full width */\n @Prop({ reflect: true }) fullwidth: boolean = false;\n\n /** Whether the button is rounded */\n @Prop({ reflect: true }) rounded: boolean = false;\n\n /** Size variant */\n @Prop({ reflect: true }) size: StzhButtonSize = 'default';\n\n /** Size variant (above small breakpoint) */\n @Prop({ reflect: true }) sizeSmall: StzhButtonSize;\n\n /** Size variant (above medium breakpoint) */\n @Prop({ reflect: true }) sizeMedium: StzhButtonSize;\n\n /** Size variant (above large breakpoint) */\n @Prop({ reflect: true }) sizeLarge: StzhButtonSize;\n\n /** Size variant (above ultra breakpoint) */\n @Prop({ reflect: true }) sizeUltra: StzhButtonSize;\n\n /** Text alignment */\n @Prop({ reflect: true }) textAlign: 'left' | 'center' | 'right' | 'space-between' | 'default' = 'default';\n\n /** Variant style */\n @Prop({ reflect: true }) variant: StzhButtonVariant = 'default';\n\n /** Icon (use instead of icon slot) */\n @Prop() icon: string = '';\n\n /** Icon Position */\n @Prop({ reflect: true }) iconPosition: 'left' | 'right' = 'left';\n\n /** Checked status (if type is radio) */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n\n /** Default checked (used by reset, if type is radio) */\n @Prop({ mutable: true }) defaultChecked: boolean;\n\n /** The name of the input element (if type is button or radio) */\n @Prop({ reflect: true }) name: string = '';\n\n /** The value of the input element (if type is button or radio) */\n @Prop({ mutable: true }) value: string = '';\n\n /** `href` if the button should be used as link */\n @Prop() href: string = '';\n\n /** Rel (if href is used) */\n @Prop() rel: string;\n\n /** Target if the button is used as link (if `href` used) */\n @Prop() target: string = '';\n\n /** Download attribute of link (if `href` used) */\n @Prop() download: string;\n\n /** Type of the button */\n @Prop() type: 'button' | 'submit' | 'reset' | 'radio' = 'button';\n\n /** Whether the button is disabled */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Whether to disable the button on click or not */\n @Prop() disableOnClick: boolean = false;\n\n /** Whether the button is active */\n @Prop({ reflect: true }) active: boolean = false;\n\n /** Label */\n @Prop() label: string = '';\n\n /** Effect/Animation used */\n @Prop() effect: 'default' | 'cta' = 'default';\n\n /** Whether only an icon is used inside the button */\n @Prop({ reflect: true }) iconOnly: boolean = false;\n\n /** Whether padding left should be removed */\n @Prop({ reflect: true }) noPaddingLeft: boolean = false;\n\n /** Whether padding right should be removed */\n @Prop({ reflect: true }) noPaddingRight: boolean = false;\n\n /** Access key of button (usually a number e.g. 1) */\n @Prop() buttonAccesskey: string;\n\n /** ID of button element */\n @Prop() buttonId: string;\n\n /** Whether to show toggle icon (show minus when a11yExpanded=true, otherwise plus) */\n @Prop({ reflect: true }) showToggleIcon: boolean = false;\n\n /** Accessible label for screen readers to replace visible text */\n @Prop({ attribute: 'a11y-label' }) a11yLabel: string;\n\n /** Id for element which describes the button (this will be overwritten if description prop or slot is used, used by stzh-radiogroup) */\n @Prop({ attribute: 'a11y-describedby' }) a11yDescribedby: string = '';\n\n /** Aria expanded of link/button */\n @Prop({ reflect: true, attribute: 'a11y-expanded' }) a11yExpanded: boolean;\n\n /** Aria disabled of link/button */\n @Prop({ reflect: true, attribute: 'a11y-disabled' }) a11yDisabled: boolean;\n\n /** Aria controls of link/button */\n @Prop({ attribute: 'a11y-controls' }) a11yControls: string;\n\n /** Aria current of link/button */\n @Prop({ attribute: 'a11y-current' }) a11yCurrent: string;\n\n /** Tabindex of link/button */\n @Prop({ attribute: 'a11y-tabindex' }) a11yTabindex: string;\n\n /**\n * For Adobe Analytics.\n * Will be rendered as value of `s-object-id` attribute to the link/button element.\n * Default value will be taken from `label` prop or default slot.\n */\n @Prop() analyticsId: string;\n\n @Element() element: HTMLStzhButtonElement;\n\n @Listen('reset', { target: 'document' })\n resetListener(event: Event) {\n if ((event.target as HTMLElement).contains(this.element)) {\n requestAnimationFrame(() => {\n this.handleReset();\n });\n }\n }\n\n /** Focus event */\n @Event() stzhFocus: EventEmitter<StzhButtonFocusEvent>;\n\n /** Blur event */\n @Event() stzhBlur: EventEmitter<StzhButtonBlurEvent>;\n\n /** Change event (only called if type is radio) */\n @Event() stzhChange: EventEmitter<StzhButtonChangeEvent>;\n\n /** Click event */\n @Event() stzhClick: EventEmitter<StzhButtonClickEvent>;\n\n private button: HTMLButtonElement | HTMLAnchorElement | HTMLLabelElement;\n private input: HTMLInputElement;\n private text: HTMLDivElement;\n private focusedByInput: boolean = false;\n\n private handleReset = async () => {\n this.checked = this.defaultChecked;\n };\n\n private onInput = (event: InputEvent) => {\n this.checked = this.input.checked;\n this.stzhChange.emit({\n component: 'stzh-button',\n originalEvent: event,\n value: this.value,\n checked: this.checked,\n });\n };\n\n private onRootFocus = () => {\n if (!this.focusedByInput) {\n this.button.focus();\n }\n\n this.focusedByInput = false;\n };\n\n private onFocus = (event: FocusEvent) => {\n this.focusedByInput = true;\n\n const focusEvent = new FocusEvent('focus', {\n view: window,\n bubbles: false,\n cancelable: false,\n });\n\n this.element.dispatchEvent(focusEvent);\n this.stzhFocus.emit({\n component: 'stzh-button',\n originalEvent: event,\n });\n };\n\n private onBlur = (event: FocusEvent) => {\n const blurEvent = new FocusEvent('blur', {\n view: window,\n bubbles: false,\n cancelable: false,\n });\n\n this.element.dispatchEvent(blurEvent);\n this.stzhBlur.emit({\n component: 'stzh-button',\n originalEvent: event,\n });\n };\n\n private onClick = (event: MouseEvent) => {\n if (this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n } else {\n if (this.disableOnClick) {\n this.disabled = true;\n }\n this.stzhClick.emit({\n component: 'stzh-button',\n originalEvent: event,\n href: this.href,\n });\n }\n };\n\n private renderIcon(iconUsed: boolean): HTMLInputElement {\n return (\n <div class=\"stzh-button__icon-wrapper\">\n {this.icon &&\n <stzh-icon class=\"stzh-button__icon\" name={this.icon}></stzh-icon>\n }\n {!this.icon && this.showToggleIcon &&\n <div class=\"stzh-button__toggle-icon-wrapper\">\n <div class=\"stzh-button__toggle-icon\"></div>\n </div>\n }\n {!this.icon && !this.showToggleIcon &&\n <slot name=\"icon\"></slot>\n }\n {(this.badge || this.badgeEmpty) && this.badgePosition === 'icon' && iconUsed &&\n <stzh-badge class=\"stzh-button__badge\" label={this.badge} type={this.badgeType}></stzh-badge>\n }\n </div>\n );\n }\n\n private renderContent(): HTMLDivElement {\n return (\n <div\n class=\"stzh-button__text\"\n ref={(el) => (this.text = el as HTMLDivElement)}\n >\n {this.rel && this.rel.includes('external') &&\n <div class=\"stzh-button__vhidden\">{this.localization.$globals.externalLinkLabel}</div>}\n {this.download && <div class=\"stzh-button__vhidden\">{this.localization.$globals.downloadLinkLabel}</div>}\n {this.label ? this.label : <slot></slot>}\n </div>\n );\n }\n\n private renderInner(iconUsed: boolean): DocumentFragment {\n return (\n <Fragment>\n <div class=\"stzh-button__inner\">\n {this.type === 'radio' &&\n <div class=\"stzh-button__mark\">\n <div class=\"stzh-button__check\"></div>\n </div>\n }\n {this.iconPosition === 'left' && this.renderIcon(iconUsed)}\n {this.renderContent()}\n {this.iconPosition === 'right' && this.renderIcon(iconUsed)}\n </div>\n {(this.badge || this.badgeEmpty) && (this.badgePosition === 'button' || !iconUsed) &&\n <stzh-badge\n class=\"stzh-button__badge\"\n label={this.badge}\n type={this.badgeType}\n ></stzh-badge>\n }\n </Fragment>\n );\n }\n\n async componentWillLoad() {\n this.defaultChecked = typeof this.defaultChecked === 'boolean' ? this.defaultChecked : this.checked;\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, 'button');\n }\n }\n\n componentDidRender() {\n requestAnimationFrame(() => {\n this.button?.setAttribute('s-object-id', this.analyticsId || this.text.innerText);\n });\n }\n\n render() {\n const iconUsed: boolean = hasSlot(this.element, 'icon') || !!this.icon;\n const classes = {\n 'stzh-button': true,\n 'stzh-button--has-icon': iconUsed,\n 'stzh-button--has-icon-only': this.iconOnly,\n 'stzh-button--has-badge': !!this.badge,\n 'stzh-button--is-rounded': this.rounded,\n 'stzh-button--is-fullwidth': this.fullwidth,\n 'stzh-button--is-disabled': this.disabled || this.a11yDisabled,\n 'stzh-button--is-active': this.active,\n 'stzh-button--is-expanded': this.a11yExpanded,\n 'stzh-button--not-hyphenated': this.noHyphenation,\n [`stzh-button--effect-${this.effect}`]: !!this.effect,\n [`stzh-button--badge-position-${this.badgePosition}`]: !!this.badgePosition,\n [`stzh-button--align-${this.textAlign}`]: !!this.textAlign,\n [`stzh-button--type-${this.type}`]: !!this.type,\n [`stzh-button--${this.variant}`]: !!this.variant,\n };\n\n return (\n <Host tabindex={this.disabled ? null : '-1'} onFocus={this.onRootFocus}>\n {this.href ?\n <a\n ref={(el) => (this.button = el as HTMLAnchorElement)}\n href={this.disabled ? null : this.href}\n rel={this.rel}\n download={this.download}\n target={this.target}\n class={classes}\n aria-label={this.a11yLabel || null}\n aria-describedby={this.a11yDescribedby || null}\n aria-disabled={typeof this.a11yDisabled !== 'undefined'\n ? (this.a11yDisabled ? 'true' : 'false') : null}\n aria-expanded={typeof this.a11yExpanded !== 'undefined'\n ? (this.a11yExpanded ? 'true' : 'false') : null}\n aria-controls={this.a11yControls || null}\n aria-current={this.a11yCurrent || null}\n id={this.buttonId}\n accessKey={this.buttonAccesskey}\n tabindex={this.a11yTabindex}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onClick={this.onClick}\n >\n {this.renderInner(iconUsed)}\n </a>\n :\n this.type === 'radio' ?\n <label\n ref={(el) => (this.button = el as HTMLLabelElement)}\n class={classes}\n onClick={this.onClick}\n >\n <input\n ref={(el) => (this.input = el as HTMLInputElement)}\n type=\"radio\"\n class=\"stzh-button__input\"\n name={this.name}\n value={this.value}\n defaultChecked={this.defaultChecked}\n checked={this.checked}\n disabled={this.disabled}\n aria-label={this.a11yLabel || null}\n aria-describedby={this.a11yDescribedby || null}\n aria-disabled={typeof this.a11yDisabled !== 'undefined'\n ? (this.a11yDisabled ? 'true' : 'false') : null}\n aria-expanded={typeof this.a11yExpanded !== 'undefined'\n ? (this.a11yExpanded ? 'true' : 'false') : null}\n aria-controls={this.a11yControls || null}\n aria-current={this.a11yCurrent || null}\n id={this.buttonId}\n accessKey={this.buttonAccesskey}\n tabindex={this.a11yTabindex}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onClick={this.onClick}\n onInput={this.onInput}\n />\n {this.renderInner(iconUsed)}\n </label>\n :\n <button\n ref={(el) => (this.button = el as HTMLButtonElement)}\n class={classes}\n type={this.type}\n name={this.name}\n value={this.value}\n disabled={this.disabled}\n aria-label={this.a11yLabel || null}\n aria-describedby={this.a11yDescribedby || null}\n aria-disabled={typeof this.a11yDisabled !== 'undefined'\n ? (this.a11yDisabled ? 'true' : 'false') : null}\n aria-expanded={typeof this.a11yExpanded !== 'undefined'\n ? (this.a11yExpanded ? 'true' : 'false') : null}\n aria-controls={this.a11yControls || null}\n aria-current={this.a11yCurrent || null}\n id={this.buttonId}\n accessKey={this.buttonAccesskey}\n tabindex={this.a11yTabindex}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onClick={this.onClick}\n >\n {this.renderInner(iconUsed)}\n </button>\n }\n </Host>\n );\n }\n}\n"],"version":3}
|