@zanichelli/albe-web-components 16.0.0-rc2 → 16.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/dist/cjs/{index-7ce01c0e.js → index-066b8da0.js} +5 -5
- package/dist/cjs/{index-7ce01c0e.js.map → index-066b8da0.js.map} +1 -1
- package/dist/cjs/{index-f31d0e66.js → index-1890445d.js} +3 -3
- package/dist/cjs/{index-f31d0e66.js.map → index-1890445d.js.map} +1 -1
- package/dist/cjs/{index-19279b08.js → index-1f9f28df.js} +3 -3
- package/dist/cjs/{index-19279b08.js.map → index-1f9f28df.js.map} +1 -1
- package/dist/cjs/{index-a83e999c.js → index-5cc0f0ca.js} +5 -6
- package/dist/cjs/index-5cc0f0ca.js.map +1 -0
- package/dist/cjs/{index-48cf79d4.js → index-98822eac.js} +6 -6
- package/dist/cjs/{index-48cf79d4.js.map → index-98822eac.js.map} +1 -1
- package/dist/cjs/{index-94f7957c.js → index-b361709b.js} +3 -3
- package/dist/cjs/{index-94f7957c.js.map → index-b361709b.js.map} +1 -1
- package/dist/cjs/{index-e3835c94.js → index-bab7a651.js} +3 -1
- package/dist/cjs/index-bab7a651.js.map +1 -0
- package/dist/cjs/{index-5dc4a8de.js → index-e801ae96.js} +55 -2
- package/dist/cjs/index-e801ae96.js.map +1 -0
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{utils-0d3ac1c1.js → utils-311316ce.js} +2 -2
- package/dist/cjs/{utils-0d3ac1c1.js.map → utils-311316ce.js.map} +1 -1
- package/dist/cjs/{utils-1a8655c7.js → utils-6bd8c55e.js} +2 -2
- package/dist/cjs/{utils-1a8655c7.js.map → utils-6bd8c55e.js.map} +1 -1
- package/dist/cjs/web-components-library.cjs.js +2 -2
- package/dist/cjs/z-accordion.cjs.entry.js +3 -3
- package/dist/cjs/z-alert.cjs.entry.js +2 -2
- package/dist/cjs/z-anchor-navigation.cjs.entry.js +3 -3
- package/dist/cjs/z-app-header-deprecated.cjs.entry.js +158 -0
- package/dist/cjs/z-app-header-deprecated.cjs.entry.js.map +1 -0
- package/dist/cjs/z-app-header_12.cjs.entry.js +197 -67
- package/dist/cjs/z-app-header_12.cjs.entry.js.map +1 -1
- package/dist/cjs/z-aria-alert.cjs.entry.js +3 -3
- package/dist/cjs/z-avatar.cjs.entry.js +4 -4
- package/dist/cjs/z-book-card.cjs.entry.js +4 -4
- package/dist/cjs/z-breadcrumb.cjs.entry.js +5 -5
- package/dist/cjs/z-button-sort.cjs.entry.js +2 -2
- package/dist/cjs/z-card.cjs.entry.js +2 -2
- package/dist/cjs/z-carousel.cjs.entry.js +2 -2
- package/dist/cjs/z-chip.cjs.entry.js +4 -4
- package/dist/cjs/z-combobox.cjs.entry.js +4 -4
- package/dist/cjs/z-cover-hero.cjs.entry.js +4 -4
- package/dist/cjs/z-date-picker.cjs.entry.js +3 -3
- package/dist/cjs/z-dragdrop-area_2.cjs.entry.js +8 -8
- package/dist/cjs/z-file-upload.cjs.entry.js +4 -4
- package/dist/cjs/z-file.cjs.entry.js +3 -3
- package/dist/cjs/z-ghost-loading.cjs.entry.js +2 -2
- package/dist/cjs/z-info-box.cjs.entry.js +2 -2
- package/dist/cjs/z-info-reveal.cjs.entry.js +3 -3
- package/dist/cjs/z-logo.cjs.entry.js +2 -2
- package/dist/cjs/z-menu-deprecated.cjs.entry.js +115 -0
- package/dist/cjs/z-menu-deprecated.cjs.entry.js.map +1 -0
- package/dist/cjs/z-menu-section-deprecated.cjs.entry.js +60 -0
- package/dist/cjs/z-menu-section-deprecated.cjs.entry.js.map +1 -0
- package/dist/cjs/z-menu-section.cjs.entry.js +92 -4
- package/dist/cjs/z-menu-section.cjs.entry.js.map +1 -1
- package/dist/cjs/z-menu.cjs.entry.js +121 -10
- package/dist/cjs/z-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/z-myz-card-alert.cjs.entry.js +3 -3
- package/dist/cjs/z-myz-card-dictionary.cjs.entry.js +3 -3
- package/dist/cjs/z-myz-card-footer-sections.cjs.entry.js +2 -2
- package/dist/cjs/z-myz-card-footer.cjs.entry.js +3 -3
- package/dist/cjs/z-myz-card-icon.cjs.entry.js +2 -2
- package/dist/cjs/z-myz-card-info.cjs.entry.js +4 -4
- package/dist/cjs/z-myz-card-list.cjs.entry.js +2 -2
- package/dist/cjs/z-myz-card_4.cjs.entry.js +6 -6
- package/dist/cjs/z-myz-list-item.cjs.entry.js +4 -4
- package/dist/cjs/z-myz-list.cjs.entry.js +2 -2
- package/dist/cjs/z-navigation-tabs.cjs.entry.js +4 -4
- package/dist/cjs/z-notification.cjs.entry.js +2 -2
- package/dist/cjs/z-otp.cjs.entry.js +4 -4
- package/dist/cjs/z-pagination.cjs.entry.js +2 -2
- package/dist/cjs/z-panel-elem.cjs.entry.js +3 -3
- package/dist/cjs/z-popover.cjs.entry.js +3 -3
- package/dist/cjs/z-range-picker.cjs.entry.js +3 -3
- package/dist/cjs/z-section-title.cjs.entry.js +3 -3
- package/dist/cjs/z-select.cjs.entry.js +4 -4
- package/dist/cjs/z-skip-to-content.cjs.entry.js +4 -4
- package/dist/cjs/z-slideshow.cjs.entry.js +3 -3
- package/dist/cjs/z-stepper-item.cjs.entry.js +2 -2
- package/dist/cjs/z-stepper.cjs.entry.js +2 -2
- package/dist/cjs/z-table.cjs.entry.js +10 -10
- package/dist/cjs/z-tbody.cjs.entry.js +2 -2
- package/dist/cjs/z-td.cjs.entry.js +3 -3
- package/dist/cjs/z-tfoot.cjs.entry.js +2 -2
- package/dist/cjs/z-th.cjs.entry.js +3 -3
- package/dist/cjs/z-thead.cjs.entry.js +2 -2
- package/dist/cjs/z-toast-notification-list.cjs.entry.js +3 -3
- package/dist/cjs/z-toast-notification.cjs.entry.js +3 -3
- package/dist/cjs/z-toggle-button.cjs.entry.js +3 -3
- package/dist/cjs/z-toggle-switch.cjs.entry.js +6 -6
- package/dist/cjs/z-tooltip.cjs.entry.js +3 -3
- package/dist/cjs/z-tr.cjs.entry.js +6 -6
- package/dist/cjs/z-visually-hidden.cjs.entry.js +2 -2
- package/dist/collection/assets/orientamento.svg +14 -0
- package/dist/collection/beans/index.js +2 -0
- package/dist/collection/beans/index.js.map +1 -1
- package/dist/collection/collection-manifest.json +3 -0
- package/dist/collection/components/deprecated/z-app-header-deprecated/index.js +420 -0
- package/dist/collection/components/deprecated/z-app-header-deprecated/index.js.map +1 -0
- package/dist/collection/components/deprecated/z-app-header-deprecated/index.spec.js +203 -0
- package/dist/collection/components/deprecated/z-app-header-deprecated/index.spec.js.map +1 -0
- package/dist/collection/components/deprecated/z-app-header-deprecated/index.stories.js +635 -0
- package/dist/collection/components/deprecated/z-app-header-deprecated/index.stories.js.map +1 -0
- package/dist/collection/components/deprecated/z-app-header-deprecated/styles.css +441 -0
- package/dist/collection/components/deprecated/z-menu-deprecated/index.js +244 -0
- package/dist/collection/components/deprecated/z-menu-deprecated/index.js.map +1 -0
- package/dist/collection/components/deprecated/z-menu-deprecated/index.spec.js +120 -0
- package/dist/collection/components/deprecated/z-menu-deprecated/index.spec.js.map +1 -0
- package/dist/collection/components/deprecated/z-menu-deprecated/index.stories.js +129 -0
- package/dist/collection/components/deprecated/z-menu-deprecated/index.stories.js.map +1 -0
- package/dist/collection/components/deprecated/z-menu-deprecated/styles.css +217 -0
- package/dist/collection/components/deprecated/z-menu-section-deprecated/index.js +131 -0
- package/dist/collection/components/deprecated/z-menu-section-deprecated/index.js.map +1 -0
- package/dist/collection/components/deprecated/z-menu-section-deprecated/index.spec.js +50 -0
- package/dist/collection/components/deprecated/z-menu-section-deprecated/index.spec.js.map +1 -0
- package/dist/collection/components/deprecated/z-menu-section-deprecated/index.stories.js +41 -0
- package/dist/collection/components/deprecated/z-menu-section-deprecated/index.stories.js.map +1 -0
- package/dist/collection/components/deprecated/z-menu-section-deprecated/styles.css +123 -0
- package/dist/collection/components/file-upload/z-dragdrop-area/index.js +2 -2
- package/dist/collection/components/file-upload/z-file/index.js +1 -1
- package/dist/collection/components/file-upload/z-file-upload/index.js +1 -1
- package/dist/collection/components/list/z-list/index.js +1 -1
- package/dist/collection/components/list/z-list-element/index.js +1 -1
- package/dist/collection/components/list/z-list-group/index.js +2 -2
- package/dist/collection/components/table/cells/z-td/index.js +2 -27
- package/dist/collection/components/table/cells/z-td/index.js.map +1 -1
- package/dist/collection/components/table/cells/z-td/styles.css +0 -4
- package/dist/collection/components/table/cells/z-th/index.js +1 -1
- package/dist/collection/components/table/cells/z-th/styles.css +0 -4
- package/dist/collection/components/table/z-table/index.js +1 -1
- package/dist/collection/components/table/z-tbody/index.js +1 -1
- package/dist/collection/components/table/z-tfoot/index.js +1 -1
- package/dist/collection/components/table/z-thead/index.js +1 -1
- package/dist/collection/components/table/z-tr/index.js +1 -1
- package/dist/collection/components/z-accordion/index.js +1 -1
- package/dist/collection/components/z-anchor-navigation/index.js +1 -1
- package/dist/collection/components/z-app-header/index.js +215 -159
- package/dist/collection/components/z-app-header/index.js.map +1 -1
- package/dist/collection/components/z-app-header/index.spec.js +493 -79
- package/dist/collection/components/z-app-header/index.spec.js.map +1 -1
- package/dist/collection/components/z-app-header/index.stories.js +59 -369
- package/dist/collection/components/z-app-header/index.stories.js.map +1 -1
- package/dist/collection/components/z-app-header/styles.css +147 -183
- package/dist/collection/components/z-aria-alert/index.js +1 -1
- package/dist/collection/components/z-avatar/index.js +2 -2
- package/dist/collection/components/z-book-card/index.js +1 -1
- package/dist/collection/components/z-breadcrumb/index.js +2 -2
- package/dist/collection/components/z-button-sort/index.js +1 -1
- package/dist/collection/components/z-chip/index.js +2 -2
- package/dist/collection/components/z-combobox/index.js +1 -1
- package/dist/collection/components/z-cover-hero/index.js +2 -2
- package/dist/collection/components/z-divider/index.js +1 -1
- package/dist/collection/components/z-ghost-loading/index.js +1 -1
- package/dist/collection/components/z-info-box/index.js +1 -1
- package/dist/collection/components/z-info-reveal/index.js +1 -1
- package/dist/collection/components/z-input/index.js +1 -1
- package/dist/collection/components/z-input-message/index.js +1 -1
- package/dist/collection/components/z-logo/index.js +1 -1
- package/dist/collection/components/z-menu/index.js +128 -5
- package/dist/collection/components/z-menu/index.js.map +1 -1
- package/dist/collection/components/z-menu/index.spec.js +49 -33
- package/dist/collection/components/z-menu/index.spec.js.map +1 -1
- package/dist/collection/components/z-menu/index.stories.js +7 -7
- package/dist/collection/components/z-menu/index.stories.js.map +1 -1
- package/dist/collection/components/z-menu/styles.css +21 -8
- package/dist/collection/components/z-menu-section/index.js +102 -2
- package/dist/collection/components/z-menu-section/index.js.map +1 -1
- package/dist/collection/components/z-menu-section/index.spec.js +7 -7
- package/dist/collection/components/z-menu-section/index.spec.js.map +1 -1
- package/dist/collection/components/z-menu-section/index.stories.js +3 -3
- package/dist/collection/components/z-menu-section/index.stories.js.map +1 -1
- package/dist/collection/components/z-menu-section/styles.css +5 -5
- package/dist/collection/components/z-modal/index.js +4 -4
- package/dist/collection/components/z-navigation-tabs/index.js +2 -2
- package/dist/collection/components/z-notification/index.js +1 -1
- package/dist/collection/components/z-offcanvas/index.js +1 -1
- package/dist/collection/components/z-panel-elem/index.js +2 -2
- package/dist/collection/components/z-popover/index.js +1 -1
- package/dist/collection/components/z-searchbar/index.js +1 -1
- package/dist/collection/components/z-section-title/index.js +1 -1
- package/dist/collection/components/z-select/index.js +1 -1
- package/dist/collection/components/z-skip-to-content/index.js +1 -1
- package/dist/collection/components/z-stepper/index.js +1 -1
- package/dist/collection/components/z-stepper-item/index.js +1 -1
- package/dist/collection/components/z-tag/index.js +2 -2
- package/dist/collection/components/z-toast-notification/index.js +1 -1
- package/dist/collection/components/z-toast-notification-list/index.js +1 -1
- package/dist/collection/components/z-toggle-button/index.js +2 -2
- package/dist/collection/components/z-toggle-switch/index.js +3 -3
- package/dist/collection/components/z-tooltip/index.js +1 -1
- package/dist/collection/components/z-visually-hidden/index.js +1 -1
- package/dist/collection/snowflakes/myz/card/z-myz-card/index.js +1 -1
- package/dist/collection/snowflakes/myz/card/z-myz-card-alert/index.js +1 -1
- package/dist/collection/snowflakes/myz/card/z-myz-card-body/index.js +1 -1
- package/dist/collection/snowflakes/myz/card/z-myz-card-cover/index.js +1 -1
- package/dist/collection/snowflakes/myz/card/z-myz-card-dictionary/index.js +1 -1
- package/dist/collection/snowflakes/myz/card/z-myz-card-footer/index.js +1 -1
- package/dist/collection/snowflakes/myz/card/z-myz-card-footer-sections/index.js +1 -1
- package/dist/collection/snowflakes/myz/card/z-myz-card-header/index.js +1 -1
- package/dist/collection/snowflakes/myz/card/z-myz-card-icon/index.js +1 -1
- package/dist/collection/snowflakes/myz/card/z-myz-card-info/index.js +1 -1
- package/dist/collection/snowflakes/myz/card/z-myz-card-list/index.js +1 -1
- package/dist/collection/snowflakes/myz/list/z-myz-list/index.js +1 -1
- package/dist/collection/snowflakes/myz/list/z-myz-list-item/index.js +1 -1
- package/dist/collection/snowflakes/myz/z-alert/index.js +1 -1
- package/dist/collection/snowflakes/myz/z-otp/index.js +2 -2
- package/dist/components/index.d.ts +6 -0
- package/dist/components/index.js +3 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/index10.js +1 -1
- package/dist/components/index11.js +1 -1
- package/dist/components/index12.js +1 -1
- package/dist/components/index13.js +1 -1
- package/dist/components/index14.js +2 -2
- package/dist/components/index15.js +4 -4
- package/dist/components/index16.js +1 -1
- package/dist/components/index17.js +1 -1
- package/dist/components/index18.js +1 -1
- package/dist/components/index19.js +1 -1
- package/dist/components/index2.js +2 -0
- package/dist/components/index2.js.map +1 -1
- package/dist/components/index20.js +1 -1
- package/dist/components/index21.js +1 -1
- package/dist/components/index22.js +1 -1
- package/dist/components/index23.js +1 -1
- package/dist/components/index24.js +2 -2
- package/dist/components/index3.js +1 -1
- package/dist/components/index5.js +2 -2
- package/dist/components/index6.js +1 -1
- package/dist/components/index7.js +2 -2
- package/dist/components/index8.js +1 -1
- package/dist/components/z-accordion.js +1 -1
- package/dist/components/z-anchor-navigation.js +1 -1
- package/dist/components/z-app-header-deprecated.d.ts +11 -0
- package/dist/components/z-app-header-deprecated.js +255 -0
- package/dist/components/z-app-header-deprecated.js.map +1 -0
- package/dist/components/z-app-header.js +190 -60
- package/dist/components/z-app-header.js.map +1 -1
- package/dist/components/z-aria-alert.js +1 -1
- package/dist/components/z-avatar.js +2 -2
- package/dist/components/z-book-card.js +1 -1
- package/dist/components/z-breadcrumb.js +2 -2
- package/dist/components/z-button-sort.js +1 -1
- package/dist/components/z-combobox.js +1 -1
- package/dist/components/z-cover-hero.js +2 -2
- package/dist/components/z-file-upload.js +1 -1
- package/dist/components/z-file.js +1 -1
- package/dist/components/z-info-box.js +1 -1
- package/dist/components/z-info-reveal.js +1 -1
- package/dist/components/z-logo.js +1 -1
- package/dist/components/z-menu-deprecated.d.ts +11 -0
- package/dist/components/z-menu-deprecated.js +144 -0
- package/dist/components/z-menu-deprecated.js.map +1 -0
- package/dist/components/z-menu-section-deprecated.d.ts +11 -0
- package/dist/components/z-menu-section-deprecated.js +84 -0
- package/dist/components/z-menu-section-deprecated.js.map +1 -0
- package/dist/components/z-menu-section.js +92 -4
- package/dist/components/z-menu-section.js.map +1 -1
- package/dist/components/z-menu.js +117 -6
- package/dist/components/z-menu.js.map +1 -1
- package/dist/components/z-myz-card-alert.js +1 -1
- package/dist/components/z-myz-card-dictionary.js +1 -1
- package/dist/components/z-myz-card-footer-sections.js +1 -1
- package/dist/components/z-myz-card-footer.js +1 -1
- package/dist/components/z-myz-card-icon.js +1 -1
- package/dist/components/z-myz-card-info.js +1 -1
- package/dist/components/z-myz-card-list.js +1 -1
- package/dist/components/z-myz-list.js +1 -1
- package/dist/components/z-navigation-tabs.js +2 -2
- package/dist/components/z-notification.js +1 -1
- package/dist/components/z-otp.js +2 -2
- package/dist/components/z-panel-elem.js +2 -2
- package/dist/components/z-section-title.js +1 -1
- package/dist/components/z-select.js +1 -1
- package/dist/components/z-skip-to-content.js +1 -1
- package/dist/components/z-stepper-item.js +1 -1
- package/dist/components/z-stepper.js +1 -1
- package/dist/components/z-table.js +1 -1
- package/dist/components/z-tbody.js +1 -1
- package/dist/components/z-td.js +3 -5
- package/dist/components/z-td.js.map +1 -1
- package/dist/components/z-tfoot.js +1 -1
- package/dist/components/z-th.js +2 -2
- package/dist/components/z-th.js.map +1 -1
- package/dist/components/z-thead.js +1 -1
- package/dist/components/z-toast-notification-list.js +1 -1
- package/dist/components/z-toast-notification.js +1 -1
- package/dist/components/z-toggle-button.js +2 -2
- package/dist/components/z-toggle-switch.js +3 -3
- package/dist/components/z-tooltip.js +1 -1
- package/dist/components/z-tr.js +1 -1
- package/dist/components/z-visually-hidden.js +1 -1
- package/dist/esm/index-175661e6.js +18 -0
- package/dist/esm/{index-41ee4016.js.map → index-175661e6.js.map} +1 -1
- package/dist/esm/{index-aa07660e.js → index-18018bb5.js} +5 -5
- package/dist/esm/{index-aa07660e.js.map → index-18018bb5.js.map} +1 -1
- package/dist/esm/{index-497d9441.js → index-292b4dd2.js} +5 -6
- package/dist/esm/index-292b4dd2.js.map +1 -0
- package/dist/esm/{index-437f0b00.js → index-50bbb22e.js} +6 -6
- package/dist/esm/{index-437f0b00.js.map → index-50bbb22e.js.map} +1 -1
- package/dist/esm/{index-ab5f1eaa.js → index-a2130b6a.js} +55 -3
- package/dist/esm/index-a2130b6a.js.map +1 -0
- package/dist/esm/{index-ea49e441.js → index-a81f1558.js} +3 -3
- package/dist/esm/{index-ea49e441.js.map → index-a81f1558.js.map} +1 -1
- package/dist/esm/{index-cfde9cec.js → index-b556b384.js} +3 -3
- package/dist/esm/{index-cfde9cec.js.map → index-b556b384.js.map} +1 -1
- package/dist/esm/{index-a7f69d42.js → index-b7dbacb4.js} +3 -1
- package/dist/esm/index-b7dbacb4.js.map +1 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{utils-f7da2c5f.js → utils-54e02183.js} +2 -2
- package/dist/esm/{utils-f7da2c5f.js.map → utils-54e02183.js.map} +1 -1
- package/dist/esm/{utils-0ce33738.js → utils-8ade9e2d.js} +2 -2
- package/dist/esm/{utils-0ce33738.js.map → utils-8ade9e2d.js.map} +1 -1
- package/dist/esm/web-components-library.js +3 -3
- package/dist/esm/z-accordion.entry.js +3 -3
- package/dist/esm/z-alert.entry.js +2 -2
- package/dist/esm/z-anchor-navigation.entry.js +3 -3
- package/dist/esm/z-app-header-deprecated.entry.js +154 -0
- package/dist/esm/z-app-header-deprecated.entry.js.map +1 -0
- package/dist/esm/z-app-header_12.entry.js +197 -67
- package/dist/esm/z-app-header_12.entry.js.map +1 -1
- package/dist/esm/z-aria-alert.entry.js +3 -3
- package/dist/esm/z-avatar.entry.js +4 -4
- package/dist/esm/z-book-card.entry.js +4 -4
- package/dist/esm/z-breadcrumb.entry.js +5 -5
- package/dist/esm/z-button-sort.entry.js +2 -2
- package/dist/esm/z-card.entry.js +2 -2
- package/dist/esm/z-carousel.entry.js +2 -2
- package/dist/esm/z-chip.entry.js +4 -4
- package/dist/esm/z-combobox.entry.js +4 -4
- package/dist/esm/z-cover-hero.entry.js +4 -4
- package/dist/esm/z-date-picker.entry.js +3 -3
- package/dist/esm/z-dragdrop-area_2.entry.js +8 -8
- package/dist/esm/z-file-upload.entry.js +4 -4
- package/dist/esm/z-file.entry.js +3 -3
- package/dist/esm/z-ghost-loading.entry.js +2 -2
- package/dist/esm/z-info-box.entry.js +2 -2
- package/dist/esm/z-info-reveal.entry.js +3 -3
- package/dist/esm/z-logo.entry.js +2 -2
- package/dist/esm/z-menu-deprecated.entry.js +111 -0
- package/dist/esm/z-menu-deprecated.entry.js.map +1 -0
- package/dist/esm/z-menu-section-deprecated.entry.js +56 -0
- package/dist/esm/z-menu-section-deprecated.entry.js.map +1 -0
- package/dist/esm/z-menu-section.entry.js +92 -4
- package/dist/esm/z-menu-section.entry.js.map +1 -1
- package/dist/esm/z-menu.entry.js +117 -6
- package/dist/esm/z-menu.entry.js.map +1 -1
- package/dist/esm/z-myz-card-alert.entry.js +3 -3
- package/dist/esm/z-myz-card-dictionary.entry.js +3 -3
- package/dist/esm/z-myz-card-footer-sections.entry.js +2 -2
- package/dist/esm/z-myz-card-footer.entry.js +3 -3
- package/dist/esm/z-myz-card-icon.entry.js +2 -2
- package/dist/esm/z-myz-card-info.entry.js +4 -4
- package/dist/esm/z-myz-card-list.entry.js +2 -2
- package/dist/esm/z-myz-card_4.entry.js +6 -6
- package/dist/esm/z-myz-list-item.entry.js +4 -4
- package/dist/esm/z-myz-list.entry.js +2 -2
- package/dist/esm/z-navigation-tabs.entry.js +4 -4
- package/dist/esm/z-notification.entry.js +2 -2
- package/dist/esm/z-otp.entry.js +4 -4
- package/dist/esm/z-pagination.entry.js +2 -2
- package/dist/esm/z-panel-elem.entry.js +3 -3
- package/dist/esm/z-popover.entry.js +3 -3
- package/dist/esm/z-range-picker.entry.js +3 -3
- package/dist/esm/z-section-title.entry.js +3 -3
- package/dist/esm/z-select.entry.js +4 -4
- package/dist/esm/z-skip-to-content.entry.js +4 -4
- package/dist/esm/z-slideshow.entry.js +3 -3
- package/dist/esm/z-stepper-item.entry.js +2 -2
- package/dist/esm/z-stepper.entry.js +2 -2
- package/dist/esm/z-table.entry.js +10 -10
- package/dist/esm/z-tbody.entry.js +2 -2
- package/dist/esm/z-td.entry.js +3 -3
- package/dist/esm/z-tfoot.entry.js +2 -2
- package/dist/esm/z-th.entry.js +3 -3
- package/dist/esm/z-thead.entry.js +2 -2
- package/dist/esm/z-toast-notification-list.entry.js +3 -3
- package/dist/esm/z-toast-notification.entry.js +3 -3
- package/dist/esm/z-toggle-button.entry.js +3 -3
- package/dist/esm/z-toggle-switch.entry.js +6 -6
- package/dist/esm/z-tooltip.entry.js +3 -3
- package/dist/esm/z-tr.entry.js +6 -6
- package/dist/esm/z-visually-hidden.entry.js +2 -2
- package/dist/types/beans/index.d.ts +3 -1
- package/dist/types/components/deprecated/z-app-header-deprecated/index.d.ts +149 -0
- package/dist/types/components/deprecated/z-app-header-deprecated/index.stories.d.ts +118 -0
- package/dist/types/components/deprecated/z-menu-deprecated/index.d.ts +61 -0
- package/dist/types/components/deprecated/z-menu-deprecated/index.stories.d.ts +27 -0
- package/dist/types/components/deprecated/z-menu-section-deprecated/index.d.ts +31 -0
- package/dist/types/components/deprecated/z-menu-section-deprecated/index.stories.d.ts +16 -0
- package/dist/types/components/table/cells/z-td/index.d.ts +1 -5
- package/dist/types/components/z-app-header/index.d.ts +33 -76
- package/dist/types/components/z-app-header/index.stories.d.ts +20 -40
- package/dist/types/components/z-menu/index.d.ts +11 -0
- package/dist/types/components/z-menu-section/index.d.ts +9 -0
- package/dist/types/components.d.ts +268 -18
- package/dist/web-components-library/index.esm.js +1 -1
- package/dist/web-components-library/{p-5e0acf57.entry.js → p-054484d4.entry.js} +2 -2
- package/dist/web-components-library/{p-bd75bef4.entry.js → p-05e9ae1e.entry.js} +2 -2
- package/dist/web-components-library/{p-6c5a8061.entry.js → p-12d62027.entry.js} +2 -2
- package/{www/build/p-726e1059.entry.js → dist/web-components-library/p-18690383.entry.js} +2 -2
- package/dist/web-components-library/{p-a36045c2.entry.js → p-19f8c3d2.entry.js} +2 -2
- package/dist/web-components-library/p-1edbac5f.entry.js +2 -0
- package/dist/web-components-library/{p-9ddfcfd4.entry.js → p-21b85c7f.entry.js} +2 -2
- package/dist/web-components-library/{p-f7180c65.entry.js → p-2672e36f.entry.js} +2 -2
- package/{www/build/p-4a2b4ad1.entry.js → dist/web-components-library/p-28928bb6.entry.js} +2 -2
- package/dist/web-components-library/{p-a0231723.entry.js → p-2a7e4988.entry.js} +2 -2
- package/dist/web-components-library/{p-66d70fb4.js → p-2c184714.js} +2 -2
- package/dist/web-components-library/p-304eeab0.js +2 -0
- package/dist/web-components-library/{p-09897132.entry.js → p-324ef970.entry.js} +2 -2
- package/{www/build/p-90b4d340.entry.js → dist/web-components-library/p-33eea921.entry.js} +2 -2
- package/dist/web-components-library/p-385bf4ca.entry.js +2 -0
- package/dist/web-components-library/{p-411d929f.entry.js → p-3b266de4.entry.js} +2 -2
- package/dist/web-components-library/{p-2ed68ac5.entry.js → p-4552744b.entry.js} +2 -2
- package/dist/web-components-library/{p-ebdfd7e5.entry.js → p-49e4ce84.entry.js} +2 -2
- package/dist/web-components-library/p-57eee056.entry.js +2 -0
- package/dist/web-components-library/{p-e2997191.entry.js.map → p-57eee056.entry.js.map} +1 -1
- package/{www/build/p-1efacf4c.entry.js → dist/web-components-library/p-5a5481be.entry.js} +2 -2
- package/dist/web-components-library/p-6037cdf3.js +2 -0
- package/{www/build/p-3de034cf.js.map → dist/web-components-library/p-6037cdf3.js.map} +1 -1
- package/{www/build/p-65df3290.entry.js → dist/web-components-library/p-609c11d6.entry.js} +2 -2
- package/dist/web-components-library/p-6319b5e2.entry.js +2 -0
- package/{www/build/p-467d8a16.entry.js → dist/web-components-library/p-63e970ee.entry.js} +2 -2
- package/{www/build/p-7693ae18.entry.js → dist/web-components-library/p-6586441a.entry.js} +3 -3
- package/dist/web-components-library/p-68822fbc.entry.js +2 -0
- package/dist/web-components-library/{p-493c652a.entry.js → p-6a664748.entry.js} +2 -2
- package/dist/web-components-library/p-6b2cd695.entry.js +2 -0
- package/dist/web-components-library/p-6f4dd02b.entry.js +2 -0
- package/dist/web-components-library/{p-5e45636a.entry.js.map → p-6f4dd02b.entry.js.map} +1 -1
- package/dist/web-components-library/p-74a65c6f.entry.js +2 -0
- package/{www/build/p-dde9f76d.entry.js → dist/web-components-library/p-77d8ad7e.entry.js} +2 -2
- package/{www/build/p-2190352b.js → dist/web-components-library/p-78e52a02.js} +2 -2
- package/dist/web-components-library/p-7d827c11.js +2 -0
- package/dist/web-components-library/{p-5bbb5599.entry.js → p-83350b5f.entry.js} +2 -2
- package/dist/web-components-library/p-83eff308.entry.js +2 -0
- package/dist/web-components-library/p-83eff308.entry.js.map +1 -0
- package/dist/web-components-library/{p-8df46096.entry.js → p-8499a29d.entry.js} +2 -2
- package/{www/build/p-1501c221.entry.js → dist/web-components-library/p-85f84e55.entry.js} +2 -2
- package/dist/web-components-library/{p-376208ab.entry.js → p-88e756cd.entry.js} +2 -2
- package/dist/web-components-library/p-89584f19.entry.js +2 -0
- package/dist/web-components-library/{p-b6e14c6b.entry.js.map → p-89584f19.entry.js.map} +1 -1
- package/dist/web-components-library/{p-7ce64686.entry.js → p-8a10fec5.entry.js} +2 -2
- package/dist/web-components-library/p-8a10fec5.entry.js.map +1 -0
- package/dist/web-components-library/{p-214bc293.entry.js → p-8b309268.entry.js} +2 -2
- package/dist/web-components-library/p-8c517cd7.entry.js +2 -0
- package/dist/web-components-library/p-8c517cd7.entry.js.map +1 -0
- package/dist/web-components-library/{p-0c2fdbe5.entry.js → p-8c9f7cef.entry.js} +2 -2
- package/dist/web-components-library/p-8d7323f7.entry.js +2 -0
- package/dist/web-components-library/p-8d7323f7.entry.js.map +1 -0
- package/dist/web-components-library/p-8de7ea6e.js +2 -0
- package/dist/web-components-library/{p-82dc715b.js.map → p-8de7ea6e.js.map} +1 -1
- package/dist/web-components-library/{p-f3272ec6.entry.js → p-91c04edc.entry.js} +2 -2
- package/dist/web-components-library/{p-80359658.entry.js → p-97b0c3b3.entry.js} +2 -2
- package/dist/web-components-library/{p-74e134e6.entry.js → p-99b791d1.entry.js} +2 -2
- package/dist/web-components-library/p-9f2a7cf0.js +2 -0
- package/dist/web-components-library/p-9f2a7cf0.js.map +1 -0
- package/{www/build/p-63337e8b.entry.js → dist/web-components-library/p-a4ada10b.entry.js} +2 -2
- package/dist/web-components-library/p-a5781264.entry.js +2 -0
- package/{www/build/p-14bf4619.entry.js → dist/web-components-library/p-ad76b8ff.entry.js} +2 -2
- package/dist/web-components-library/p-ae94e377.js +2 -0
- package/{www/build/p-40e4e3af.js.map → dist/web-components-library/p-ae94e377.js.map} +1 -1
- package/dist/web-components-library/{p-2c81acaa.entry.js → p-ae96bc09.entry.js} +2 -2
- package/dist/web-components-library/{p-09a9e2ca.entry.js → p-af856537.entry.js} +2 -2
- package/{www/build/p-7d5983f6.entry.js → dist/web-components-library/p-b84fa3b6.entry.js} +2 -2
- package/dist/web-components-library/{p-ff4aa84a.entry.js → p-be4878f2.entry.js} +2 -2
- package/dist/web-components-library/p-bf2a057d.entry.js +2 -0
- package/dist/web-components-library/{p-82b845c3.entry.js → p-c0bdbfb5.entry.js} +2 -2
- package/dist/web-components-library/p-c0bdbfb5.entry.js.map +1 -0
- package/dist/web-components-library/{p-464e5886.entry.js → p-c6b269ce.entry.js} +2 -2
- package/dist/web-components-library/{p-1064cb1a.entry.js → p-c90249e5.entry.js} +2 -2
- package/dist/web-components-library/p-cf2640b0.entry.js +2 -0
- package/dist/web-components-library/p-cf2640b0.entry.js.map +1 -0
- package/dist/web-components-library/p-cfa39bd3.js +3 -0
- package/dist/web-components-library/p-cfa39bd3.js.map +1 -0
- package/dist/web-components-library/p-d9e1d8c7.js +2 -0
- package/dist/web-components-library/{p-60dfcfaa.entry.js → p-df05727f.entry.js} +2 -2
- package/dist/web-components-library/p-e0323da3.entry.js +2 -0
- package/dist/web-components-library/{p-810433b1.entry.js → p-e1852de3.entry.js} +2 -2
- package/dist/web-components-library/{p-2010d544.entry.js → p-e366782c.entry.js} +2 -2
- package/dist/web-components-library/{p-f323cc0b.entry.js → p-e5dc0719.entry.js} +2 -2
- package/dist/web-components-library/{p-ea9aa3bb.entry.js → p-f21bc3a9.entry.js} +2 -2
- package/{www/build/p-a11e1d48.entry.js → dist/web-components-library/p-f74f9f3c.entry.js} +2 -2
- package/dist/web-components-library/p-f8d45aa4.entry.js +2 -0
- package/dist/web-components-library/{p-c3809d39.entry.js → p-fe87b081.entry.js} +2 -2
- package/dist/web-components-library/web-components-library.esm.js +1 -1
- package/dist/web-components-library/web-components-library.esm.js.map +1 -1
- package/package.json +1 -1
- package/react/components.d.ts +3 -0
- package/react/components.js +5 -2
- package/react/components.js.map +1 -1
- package/www/assets/orientamento.svg +14 -0
- package/www/build/index.esm.js +1 -1
- package/www/build/{p-5e0acf57.entry.js → p-054484d4.entry.js} +2 -2
- package/www/build/{p-bd75bef4.entry.js → p-05e9ae1e.entry.js} +2 -2
- package/www/build/{p-6c5a8061.entry.js → p-12d62027.entry.js} +2 -2
- package/{dist/web-components-library/p-726e1059.entry.js → www/build/p-18690383.entry.js} +2 -2
- package/www/build/{p-a36045c2.entry.js → p-19f8c3d2.entry.js} +2 -2
- package/www/build/p-1edbac5f.entry.js +2 -0
- package/www/build/{p-9ddfcfd4.entry.js → p-21b85c7f.entry.js} +2 -2
- package/www/build/{p-f7180c65.entry.js → p-2672e36f.entry.js} +2 -2
- package/{dist/web-components-library/p-4a2b4ad1.entry.js → www/build/p-28928bb6.entry.js} +2 -2
- package/www/build/{p-a0231723.entry.js → p-2a7e4988.entry.js} +2 -2
- package/www/build/{p-66d70fb4.js → p-2c184714.js} +2 -2
- package/www/build/p-304eeab0.js +2 -0
- package/www/build/{p-09897132.entry.js → p-324ef970.entry.js} +2 -2
- package/{dist/web-components-library/p-90b4d340.entry.js → www/build/p-33eea921.entry.js} +2 -2
- package/www/build/p-385bf4ca.entry.js +2 -0
- package/www/build/{p-411d929f.entry.js → p-3b266de4.entry.js} +2 -2
- package/www/build/{p-2ed68ac5.entry.js → p-4552744b.entry.js} +2 -2
- package/www/build/{p-ebdfd7e5.entry.js → p-49e4ce84.entry.js} +2 -2
- package/www/build/p-57eee056.entry.js +2 -0
- package/www/build/{p-e2997191.entry.js.map → p-57eee056.entry.js.map} +1 -1
- package/{dist/web-components-library/p-1efacf4c.entry.js → www/build/p-5a5481be.entry.js} +2 -2
- package/www/build/p-6037cdf3.js +2 -0
- package/{dist/web-components-library/p-3de034cf.js.map → www/build/p-6037cdf3.js.map} +1 -1
- package/{dist/web-components-library/p-65df3290.entry.js → www/build/p-609c11d6.entry.js} +2 -2
- package/www/build/p-6319b5e2.entry.js +2 -0
- package/{dist/web-components-library/p-467d8a16.entry.js → www/build/p-63e970ee.entry.js} +2 -2
- package/{dist/web-components-library/p-7693ae18.entry.js → www/build/p-6586441a.entry.js} +3 -3
- package/www/build/p-68822fbc.entry.js +2 -0
- package/www/build/{p-493c652a.entry.js → p-6a664748.entry.js} +2 -2
- package/www/build/p-6b2cd695.entry.js +2 -0
- package/www/build/p-6f4dd02b.entry.js +2 -0
- package/www/build/{p-5e45636a.entry.js.map → p-6f4dd02b.entry.js.map} +1 -1
- package/www/build/p-74a65c6f.entry.js +2 -0
- package/www/build/p-774b449d.js +2 -0
- package/{dist/web-components-library/p-dde9f76d.entry.js → www/build/p-77d8ad7e.entry.js} +2 -2
- package/{dist/web-components-library/p-2190352b.js → www/build/p-78e52a02.js} +2 -2
- package/www/build/p-7d827c11.js +2 -0
- package/www/build/{p-5bbb5599.entry.js → p-83350b5f.entry.js} +2 -2
- package/www/build/p-83eff308.entry.js +2 -0
- package/www/build/p-83eff308.entry.js.map +1 -0
- package/www/build/{p-8df46096.entry.js → p-8499a29d.entry.js} +2 -2
- package/{dist/web-components-library/p-1501c221.entry.js → www/build/p-85f84e55.entry.js} +2 -2
- package/www/build/{p-376208ab.entry.js → p-88e756cd.entry.js} +2 -2
- package/www/build/p-89584f19.entry.js +2 -0
- package/www/build/{p-b6e14c6b.entry.js.map → p-89584f19.entry.js.map} +1 -1
- package/www/build/{p-7ce64686.entry.js → p-8a10fec5.entry.js} +2 -2
- package/www/build/p-8a10fec5.entry.js.map +1 -0
- package/www/build/{p-214bc293.entry.js → p-8b309268.entry.js} +2 -2
- package/www/build/p-8c517cd7.entry.js +2 -0
- package/www/build/p-8c517cd7.entry.js.map +1 -0
- package/www/build/{p-0c2fdbe5.entry.js → p-8c9f7cef.entry.js} +2 -2
- package/www/build/p-8d7323f7.entry.js +2 -0
- package/www/build/p-8d7323f7.entry.js.map +1 -0
- package/www/build/p-8de7ea6e.js +2 -0
- package/www/build/{p-82dc715b.js.map → p-8de7ea6e.js.map} +1 -1
- package/www/build/{p-f3272ec6.entry.js → p-91c04edc.entry.js} +2 -2
- package/www/build/{p-80359658.entry.js → p-97b0c3b3.entry.js} +2 -2
- package/www/build/{p-74e134e6.entry.js → p-99b791d1.entry.js} +2 -2
- package/www/build/p-9f2a7cf0.js +2 -0
- package/www/build/p-9f2a7cf0.js.map +1 -0
- package/{dist/web-components-library/p-63337e8b.entry.js → www/build/p-a4ada10b.entry.js} +2 -2
- package/www/build/p-a5781264.entry.js +2 -0
- package/{dist/web-components-library/p-14bf4619.entry.js → www/build/p-ad76b8ff.entry.js} +2 -2
- package/www/build/p-ae94e377.js +2 -0
- package/{dist/web-components-library/p-40e4e3af.js.map → www/build/p-ae94e377.js.map} +1 -1
- package/www/build/{p-2c81acaa.entry.js → p-ae96bc09.entry.js} +2 -2
- package/www/build/{p-09a9e2ca.entry.js → p-af856537.entry.js} +2 -2
- package/{dist/web-components-library/p-7d5983f6.entry.js → www/build/p-b84fa3b6.entry.js} +2 -2
- package/www/build/{p-ff4aa84a.entry.js → p-be4878f2.entry.js} +2 -2
- package/www/build/p-bf2a057d.entry.js +2 -0
- package/www/build/{p-82b845c3.entry.js → p-c0bdbfb5.entry.js} +2 -2
- package/www/build/p-c0bdbfb5.entry.js.map +1 -0
- package/www/build/{p-464e5886.entry.js → p-c6b269ce.entry.js} +2 -2
- package/www/build/{p-1064cb1a.entry.js → p-c90249e5.entry.js} +2 -2
- package/www/build/p-cf2640b0.entry.js +2 -0
- package/www/build/p-cf2640b0.entry.js.map +1 -0
- package/www/build/p-cfa39bd3.js +3 -0
- package/www/build/p-cfa39bd3.js.map +1 -0
- package/www/build/p-d9e1d8c7.js +2 -0
- package/www/build/{p-60dfcfaa.entry.js → p-df05727f.entry.js} +2 -2
- package/www/build/p-e0323da3.entry.js +2 -0
- package/www/build/{p-810433b1.entry.js → p-e1852de3.entry.js} +2 -2
- package/www/build/{p-2010d544.entry.js → p-e366782c.entry.js} +2 -2
- package/www/build/{p-f323cc0b.entry.js → p-e5dc0719.entry.js} +2 -2
- package/www/build/{p-ea9aa3bb.entry.js → p-f21bc3a9.entry.js} +2 -2
- package/{dist/web-components-library/p-a11e1d48.entry.js → www/build/p-f74f9f3c.entry.js} +2 -2
- package/www/build/p-f8d45aa4.entry.js +2 -0
- package/www/build/{p-c3809d39.entry.js → p-fe87b081.entry.js} +2 -2
- package/www/build/web-components-library.esm.js +1 -1
- package/www/build/web-components-library.esm.js.map +1 -1
- package/www/index.html +1 -1
- package/dist/cjs/index-5dc4a8de.js.map +0 -1
- package/dist/cjs/index-a83e999c.js.map +0 -1
- package/dist/cjs/index-e3835c94.js.map +0 -1
- package/dist/esm/index-41ee4016.js +0 -18
- package/dist/esm/index-497d9441.js.map +0 -1
- package/dist/esm/index-a7f69d42.js.map +0 -1
- package/dist/esm/index-ab5f1eaa.js.map +0 -1
- package/dist/web-components-library/p-3de034cf.js +0 -2
- package/dist/web-components-library/p-40e4e3af.js +0 -2
- package/dist/web-components-library/p-4b27ccf0.entry.js +0 -2
- package/dist/web-components-library/p-4d1a8ee8.entry.js +0 -2
- package/dist/web-components-library/p-4d1a8ee8.entry.js.map +0 -1
- package/dist/web-components-library/p-5214f770.entry.js +0 -2
- package/dist/web-components-library/p-550b4473.entry.js +0 -2
- package/dist/web-components-library/p-5e45636a.entry.js +0 -2
- package/dist/web-components-library/p-5e734fd3.entry.js +0 -2
- package/dist/web-components-library/p-6f5b7f16.js +0 -2
- package/dist/web-components-library/p-6f5b7f16.js.map +0 -1
- package/dist/web-components-library/p-737293b2.js +0 -2
- package/dist/web-components-library/p-79766609.entry.js +0 -2
- package/dist/web-components-library/p-7cba8558.entry.js +0 -2
- package/dist/web-components-library/p-7ce64686.entry.js.map +0 -1
- package/dist/web-components-library/p-82b845c3.entry.js.map +0 -1
- package/dist/web-components-library/p-82dc715b.js +0 -2
- package/dist/web-components-library/p-93d39e70.entry.js +0 -2
- package/dist/web-components-library/p-b6e14c6b.entry.js +0 -2
- package/dist/web-components-library/p-b9078348.js +0 -2
- package/dist/web-components-library/p-cc3c02fe.js +0 -3
- package/dist/web-components-library/p-cc3c02fe.js.map +0 -1
- package/dist/web-components-library/p-e2997191.entry.js +0 -2
- package/dist/web-components-library/p-ee290d4c.entry.js +0 -2
- package/dist/web-components-library/p-f978d22d.entry.js +0 -2
- package/dist/web-components-library/p-fdd176e2.entry.js +0 -2
- package/dist/web-components-library/p-feca4075.js +0 -2
- package/www/build/p-3de034cf.js +0 -2
- package/www/build/p-40e4e3af.js +0 -2
- package/www/build/p-4b27ccf0.entry.js +0 -2
- package/www/build/p-4d1a8ee8.entry.js +0 -2
- package/www/build/p-4d1a8ee8.entry.js.map +0 -1
- package/www/build/p-5214f770.entry.js +0 -2
- package/www/build/p-550b4473.entry.js +0 -2
- package/www/build/p-5e45636a.entry.js +0 -2
- package/www/build/p-5e734fd3.entry.js +0 -2
- package/www/build/p-6f5b7f16.js +0 -2
- package/www/build/p-6f5b7f16.js.map +0 -1
- package/www/build/p-737293b2.js +0 -2
- package/www/build/p-79766609.entry.js +0 -2
- package/www/build/p-7cba8558.entry.js +0 -2
- package/www/build/p-7ce64686.entry.js.map +0 -1
- package/www/build/p-82b845c3.entry.js.map +0 -1
- package/www/build/p-82dc715b.js +0 -2
- package/www/build/p-93d39e70.entry.js +0 -2
- package/www/build/p-9bd47256.js +0 -2
- package/www/build/p-b6e14c6b.entry.js +0 -2
- package/www/build/p-b9078348.js +0 -2
- package/www/build/p-cc3c02fe.js +0 -3
- package/www/build/p-cc3c02fe.js.map +0 -1
- package/www/build/p-e2997191.entry.js +0 -2
- package/www/build/p-ee290d4c.entry.js +0 -2
- package/www/build/p-f978d22d.entry.js +0 -2
- package/www/build/p-fdd176e2.entry.js +0 -2
- package/www/build/p-feca4075.js +0 -2
- /package/dist/web-components-library/{p-5e0acf57.entry.js.map → p-054484d4.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-bd75bef4.entry.js.map → p-05e9ae1e.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-6c5a8061.entry.js.map → p-12d62027.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-726e1059.entry.js.map → p-18690383.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-a36045c2.entry.js.map → p-19f8c3d2.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-4b27ccf0.entry.js.map → p-1edbac5f.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-9ddfcfd4.entry.js.map → p-21b85c7f.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-f7180c65.entry.js.map → p-2672e36f.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-4a2b4ad1.entry.js.map → p-28928bb6.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-a0231723.entry.js.map → p-2a7e4988.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-66d70fb4.js.map → p-2c184714.js.map} +0 -0
- /package/dist/web-components-library/{p-737293b2.js.map → p-304eeab0.js.map} +0 -0
- /package/dist/web-components-library/{p-09897132.entry.js.map → p-324ef970.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-90b4d340.entry.js.map → p-33eea921.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-7cba8558.entry.js.map → p-385bf4ca.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-411d929f.entry.js.map → p-3b266de4.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-2ed68ac5.entry.js.map → p-4552744b.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-ebdfd7e5.entry.js.map → p-49e4ce84.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-1efacf4c.entry.js.map → p-5a5481be.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-65df3290.entry.js.map → p-609c11d6.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-ee290d4c.entry.js.map → p-6319b5e2.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-467d8a16.entry.js.map → p-63e970ee.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-7693ae18.entry.js.map → p-6586441a.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-5214f770.entry.js.map → p-68822fbc.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-493c652a.entry.js.map → p-6a664748.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-93d39e70.entry.js.map → p-6b2cd695.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-5e734fd3.entry.js.map → p-74a65c6f.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-dde9f76d.entry.js.map → p-77d8ad7e.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-2190352b.js.map → p-78e52a02.js.map} +0 -0
- /package/dist/web-components-library/{p-feca4075.js.map → p-7d827c11.js.map} +0 -0
- /package/dist/web-components-library/{p-5bbb5599.entry.js.map → p-83350b5f.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-8df46096.entry.js.map → p-8499a29d.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-1501c221.entry.js.map → p-85f84e55.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-376208ab.entry.js.map → p-88e756cd.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-214bc293.entry.js.map → p-8b309268.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-0c2fdbe5.entry.js.map → p-8c9f7cef.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-f3272ec6.entry.js.map → p-91c04edc.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-80359658.entry.js.map → p-97b0c3b3.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-74e134e6.entry.js.map → p-99b791d1.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-63337e8b.entry.js.map → p-a4ada10b.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-550b4473.entry.js.map → p-a5781264.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-14bf4619.entry.js.map → p-ad76b8ff.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-2c81acaa.entry.js.map → p-ae96bc09.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-09a9e2ca.entry.js.map → p-af856537.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-7d5983f6.entry.js.map → p-b84fa3b6.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-ff4aa84a.entry.js.map → p-be4878f2.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-79766609.entry.js.map → p-bf2a057d.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-464e5886.entry.js.map → p-c6b269ce.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-1064cb1a.entry.js.map → p-c90249e5.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-b9078348.js.map → p-d9e1d8c7.js.map} +0 -0
- /package/dist/web-components-library/{p-60dfcfaa.entry.js.map → p-df05727f.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-f978d22d.entry.js.map → p-e0323da3.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-810433b1.entry.js.map → p-e1852de3.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-2010d544.entry.js.map → p-e366782c.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-f323cc0b.entry.js.map → p-e5dc0719.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-ea9aa3bb.entry.js.map → p-f21bc3a9.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-a11e1d48.entry.js.map → p-f74f9f3c.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-fdd176e2.entry.js.map → p-f8d45aa4.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-c3809d39.entry.js.map → p-fe87b081.entry.js.map} +0 -0
- /package/www/build/{p-5e0acf57.entry.js.map → p-054484d4.entry.js.map} +0 -0
- /package/www/build/{p-bd75bef4.entry.js.map → p-05e9ae1e.entry.js.map} +0 -0
- /package/www/build/{p-6c5a8061.entry.js.map → p-12d62027.entry.js.map} +0 -0
- /package/www/build/{p-726e1059.entry.js.map → p-18690383.entry.js.map} +0 -0
- /package/www/build/{p-a36045c2.entry.js.map → p-19f8c3d2.entry.js.map} +0 -0
- /package/www/build/{p-4b27ccf0.entry.js.map → p-1edbac5f.entry.js.map} +0 -0
- /package/www/build/{p-9ddfcfd4.entry.js.map → p-21b85c7f.entry.js.map} +0 -0
- /package/www/build/{p-f7180c65.entry.js.map → p-2672e36f.entry.js.map} +0 -0
- /package/www/build/{p-4a2b4ad1.entry.js.map → p-28928bb6.entry.js.map} +0 -0
- /package/www/build/{p-a0231723.entry.js.map → p-2a7e4988.entry.js.map} +0 -0
- /package/www/build/{p-66d70fb4.js.map → p-2c184714.js.map} +0 -0
- /package/www/build/{p-737293b2.js.map → p-304eeab0.js.map} +0 -0
- /package/www/build/{p-09897132.entry.js.map → p-324ef970.entry.js.map} +0 -0
- /package/www/build/{p-90b4d340.entry.js.map → p-33eea921.entry.js.map} +0 -0
- /package/www/build/{p-7cba8558.entry.js.map → p-385bf4ca.entry.js.map} +0 -0
- /package/www/build/{p-411d929f.entry.js.map → p-3b266de4.entry.js.map} +0 -0
- /package/www/build/{p-2ed68ac5.entry.js.map → p-4552744b.entry.js.map} +0 -0
- /package/www/build/{p-ebdfd7e5.entry.js.map → p-49e4ce84.entry.js.map} +0 -0
- /package/www/build/{p-1efacf4c.entry.js.map → p-5a5481be.entry.js.map} +0 -0
- /package/www/build/{p-65df3290.entry.js.map → p-609c11d6.entry.js.map} +0 -0
- /package/www/build/{p-ee290d4c.entry.js.map → p-6319b5e2.entry.js.map} +0 -0
- /package/www/build/{p-467d8a16.entry.js.map → p-63e970ee.entry.js.map} +0 -0
- /package/www/build/{p-7693ae18.entry.js.map → p-6586441a.entry.js.map} +0 -0
- /package/www/build/{p-5214f770.entry.js.map → p-68822fbc.entry.js.map} +0 -0
- /package/www/build/{p-493c652a.entry.js.map → p-6a664748.entry.js.map} +0 -0
- /package/www/build/{p-93d39e70.entry.js.map → p-6b2cd695.entry.js.map} +0 -0
- /package/www/build/{p-5e734fd3.entry.js.map → p-74a65c6f.entry.js.map} +0 -0
- /package/www/build/{p-dde9f76d.entry.js.map → p-77d8ad7e.entry.js.map} +0 -0
- /package/www/build/{p-2190352b.js.map → p-78e52a02.js.map} +0 -0
- /package/www/build/{p-feca4075.js.map → p-7d827c11.js.map} +0 -0
- /package/www/build/{p-5bbb5599.entry.js.map → p-83350b5f.entry.js.map} +0 -0
- /package/www/build/{p-8df46096.entry.js.map → p-8499a29d.entry.js.map} +0 -0
- /package/www/build/{p-1501c221.entry.js.map → p-85f84e55.entry.js.map} +0 -0
- /package/www/build/{p-376208ab.entry.js.map → p-88e756cd.entry.js.map} +0 -0
- /package/www/build/{p-214bc293.entry.js.map → p-8b309268.entry.js.map} +0 -0
- /package/www/build/{p-0c2fdbe5.entry.js.map → p-8c9f7cef.entry.js.map} +0 -0
- /package/www/build/{p-f3272ec6.entry.js.map → p-91c04edc.entry.js.map} +0 -0
- /package/www/build/{p-80359658.entry.js.map → p-97b0c3b3.entry.js.map} +0 -0
- /package/www/build/{p-74e134e6.entry.js.map → p-99b791d1.entry.js.map} +0 -0
- /package/www/build/{p-63337e8b.entry.js.map → p-a4ada10b.entry.js.map} +0 -0
- /package/www/build/{p-550b4473.entry.js.map → p-a5781264.entry.js.map} +0 -0
- /package/www/build/{p-14bf4619.entry.js.map → p-ad76b8ff.entry.js.map} +0 -0
- /package/www/build/{p-2c81acaa.entry.js.map → p-ae96bc09.entry.js.map} +0 -0
- /package/www/build/{p-09a9e2ca.entry.js.map → p-af856537.entry.js.map} +0 -0
- /package/www/build/{p-7d5983f6.entry.js.map → p-b84fa3b6.entry.js.map} +0 -0
- /package/www/build/{p-ff4aa84a.entry.js.map → p-be4878f2.entry.js.map} +0 -0
- /package/www/build/{p-79766609.entry.js.map → p-bf2a057d.entry.js.map} +0 -0
- /package/www/build/{p-464e5886.entry.js.map → p-c6b269ce.entry.js.map} +0 -0
- /package/www/build/{p-1064cb1a.entry.js.map → p-c90249e5.entry.js.map} +0 -0
- /package/www/build/{p-b9078348.js.map → p-d9e1d8c7.js.map} +0 -0
- /package/www/build/{p-60dfcfaa.entry.js.map → p-df05727f.entry.js.map} +0 -0
- /package/www/build/{p-f978d22d.entry.js.map → p-e0323da3.entry.js.map} +0 -0
- /package/www/build/{p-810433b1.entry.js.map → p-e1852de3.entry.js.map} +0 -0
- /package/www/build/{p-2010d544.entry.js.map → p-e366782c.entry.js.map} +0 -0
- /package/www/build/{p-f323cc0b.entry.js.map → p-e5dc0719.entry.js.map} +0 -0
- /package/www/build/{p-ea9aa3bb.entry.js.map → p-f21bc3a9.entry.js.map} +0 -0
- /package/www/build/{p-a11e1d48.entry.js.map → p-f74f9f3c.entry.js.map} +0 -0
- /package/www/build/{p-fdd176e2.entry.js.map → p-f8d45aa4.entry.js.map} +0 -0
- /package/www/build/{p-c3809d39.entry.js.map → p-fe87b081.entry.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"z-menu-deprecated.entry.js","mappings":"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","names":[],"sources":["src/components/deprecated/z-menu-deprecated/styles.css?tag=z-menu-deprecated&encapsulation=shadow","src/components/deprecated/z-menu-deprecated/index.tsx"],"sourcesContent":[":host,\n::slotted(*),\n* {\n box-sizing: border-box;\n}\n\n:host {\n position: relative;\n display: inline-flex;\n flex-direction: column;\n\n --z-menu-label-color: var(--color-default-text);\n}\n\n::slotted(a) {\n text-decoration: none;\n}\n\n::slotted(*) {\n color: var(--color-default-text);\n font-family: var(--font-family-sans);\n font-weight: var(--font-rg);\n}\n\n.menu-label {\n padding: 0;\n border: 0;\n margin: 0;\n background: transparent;\n border-radius: 0;\n color: inherit;\n outline: none;\n text-align: left;\n}\n\nbutton.menu-label {\n cursor: pointer;\n}\n\n.menu-label:focus-within {\n z-index: 1;\n padding-right: calc(var(--space-unit) * 0.5);\n padding-left: calc(var(--space-unit) * 0.5);\n margin-right: calc(var(--space-unit) * -0.5);\n margin-left: calc(var(--space-unit) * -0.5);\n box-shadow: var(--shadow-focus-primary);\n}\n\n.menu-label .menu-label-content {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n:host(:is([active], [open])) .menu-label-content,\n.menu-label:focus-within .menu-label-content {\n font-weight: var(--font-bd);\n}\n\n:host(:is([active], [open])) .menu-label-content ::slotted(*),\n.menu-label:focus-within .menu-label-content ::slotted(*) {\n letter-spacing: normal;\n}\n\n:host .menu-label .menu-label-content ::slotted(*:not([slot]):focus:focus-visible) {\n box-shadow: none !important;\n}\n\n/* border */\n:host(:is([active], [open], [vertical-context])) .menu-label .menu-label-content::after,\n.menu-label .menu-label-content:hover::after,\n.menu-label:focus-within .menu-label-content::after {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n content: \"\";\n pointer-events: none;\n}\n\n:host([vertical-context]) .menu-label-content::after {\n height: var(--border-size-small);\n background-color: var(--color-surface03);\n}\n\n:host(:is([active], [open])) .menu-label .menu-label-content::after,\n.menu-label .menu-label-content:hover::after,\n.menu-label:focus-within .menu-label-content::after {\n height: var(--border-size-large);\n background-color: var(--color-secondary01);\n}\n\n/* Prevents layout shifts on font-weight changes.\nThe trick is to put an hidden copy of the text already set to bold,\nso the needed space is correctly calculated before any hover/active state changes the\nfont-weight of the real text.\nThe hidden text has an height of 0px so it can expand the width without changing the height\nwhen placed below the real text using `flex-direction: column`. */\n::slotted([data-text])::after {\n height: 0;\n content: attr(data-text);\n content: attr(data-text) / \"\";\n font-weight: var(--font-bd);\n letter-spacing: normal;\n pointer-events: none;\n user-select: none;\n visibility: hidden;\n}\n\n@media speech {\n ::slotted([data-text])::after {\n display: none;\n }\n}\n\n::slotted([data-text]) {\n display: inline-flex;\n flex-direction: column;\n}\n\n.menu-label .menu-label-content ::slotted(*) {\n display: inline-flex;\n width: 100%;\n margin: 0;\n appearance: none;\n color: var(--z-menu-label-color);\n font-family: var(--font-family-sans);\n font-size: var(--font-size-5);\n font-weight: inherit;\n letter-spacing: 0.36px; /* increasing the letter spacing of the regular text helps reduce the size difference between regular and bold text */\n line-height: 1.2;\n outline: none;\n}\n\n.menu-label .menu-label-content ::slotted(*),\n.menu-label .menu-label-content z-icon {\n padding: var(--space-unit) 0;\n}\n\n.menu-label .menu-label-content z-icon {\n margin-left: calc(var(--space-unit) * 1.5);\n fill: currentcolor;\n}\n\n.content {\n background: var(--color-surface01);\n}\n\n:host(:not([open])) .content {\n display: none;\n}\n\n:host([floating]) .content {\n position: absolute;\n top: 100%;\n left: 0;\n width: 375px;\n min-width: 100%;\n max-width: 100vw;\n padding: var(--space-unit) var(--space-unit) calc(var(--space-unit) * 2);\n box-shadow: var(--shadow-2);\n}\n\n:host(:not([floating])) .content {\n width: 100%;\n}\n\n.header {\n display: flex;\n align-items: center;\n padding: var(--space-unit) 0 calc(var(--space-unit) * 2);\n}\n\n.header ::slotted(img[slot=\"header\"]) {\n width: calc(var(--space-unit) * 11.25);\n height: auto;\n object-fit: contain;\n}\n\n.header ::slotted([slot=\"header\"]:not(:first-child)) {\n margin: auto 0;\n margin-left: calc(var(--space-unit) * 2.5);\n font-size: var(--font-size-3);\n font-weight: var(--font-sb);\n line-height: 1.5;\n}\n\n.items {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n background: inherit;\n}\n\n.items > ::slotted([slot=\"item\"]) {\n width: 100%;\n margin: 0;\n font-size: var(--font-size-3);\n line-height: 1.25;\n outline: none;\n}\n\n.items > ::slotted([slot=\"item\"]:focus:focus-visible) {\n box-shadow: var(--shadow-focus-primary);\n}\n\n.items > ::slotted([slot=\"item\"]:not(z-menu-section)) {\n padding: calc(var(--space-unit) * 2) calc(var(--space-unit) * 0.5);\n border-bottom: var(--border-size-small) solid var(--color-surface05);\n}\n\n.items > ::slotted([slot=\"item\"]:hover),\n.items > ::slotted([slot=\"item\"]:focus:focus-visible),\n.items > ::slotted([slot=\"item\"]:active) {\n border-color: var(--color-secondary01);\n font-weight: var(--font-bd);\n}\n","import {Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h} from \"@stencil/core\";\n\n/**\n * @slot - Menu label\n * @slot header - Header to display as the first entry of the open menu.\n * @slot item - Single entry of the section. Can be slotted multiple times to insert items onto the menu. Use `z-menu-section` for submenus.\n * @cssprop --z-menu-label-color - Color of the label's text.\n */\n@Component({\n tag: \"z-menu-deprecated\",\n styleUrl: \"styles.css\",\n shadow: true,\n})\nexport class ZMenuDeprecated {\n @Element() hostElement: HTMLZMenuDeprecatedElement;\n\n /** Flag to set the active status of the menu. */\n @Prop({reflect: true})\n active?: boolean;\n\n /**\n * Flag to set the display mode of the list.\n * If true, the list will be absolutely positioned under the menu label,\n * stacked beneath it otherwise.\n */\n @Prop({reflect: true})\n floating? = false;\n\n /** The opening state of the menu. */\n @Prop({mutable: true, reflect: true})\n open = false;\n\n /**\n * Tells the component that it's placed in a vertical context with other `ZMenu`s (e.g. in the ZAppHeader's offcanvas).\n * A small border is placed under it as a separator from other elements.\n */\n @Prop({reflect: true})\n verticalContext = false;\n\n @State()\n hasHeader: boolean;\n\n @State()\n hasContent: boolean;\n\n private content: HTMLElement;\n\n /** Animation frame request id. */\n private raf: number;\n\n /** The menu has been opened. */\n @Event()\n opened: EventEmitter;\n\n /** The menu has been closed. */\n @Event()\n closed: EventEmitter;\n\n private toggle(): void {\n if (!this.hasContent) {\n return;\n }\n\n this.open = !this.open;\n this.open ? this.opened.emit() : this.closed.emit();\n }\n\n /** Close the floating list when a click is performed outside of this Element. */\n @Listen(\"click\", {target: \"document\"})\n handleClick(ev: MouseEvent): void {\n if (!this.floating || !this.open || this.hostElement.contains(ev.target as Element)) {\n return;\n }\n\n this.reflow();\n this.open = false;\n this.closed.emit();\n }\n\n @Watch(\"open\")\n onOpenChanged(): void {\n if (this.open) {\n this.reflow(true);\n } else {\n cancelAnimationFrame(this.raf);\n }\n }\n\n constructor() {\n this.toggle = this.toggle.bind(this);\n this.checkContent = this.checkContent.bind(this);\n this.onLabelSlotChange = this.onLabelSlotChange.bind(this);\n this.onItemsChange = this.onItemsChange.bind(this);\n }\n\n componentWillLoad(): void {\n this.checkContent();\n }\n\n /**\n * Sets slotted item text as `data-text` attribute value, to let CSS use it through `attr()`.\n * @param ev Slotchange event\n */\n private onLabelSlotChange(ev: Event): void {\n const labelElement = (ev.target as HTMLSlotElement).assignedElements()[0] as HTMLElement;\n labelElement.dataset.text = labelElement?.textContent;\n }\n\n /**\n * Correctly set position of the floating menu in order to prevent overflow.\n * @param live Should run the method on every refresh frame.\n */\n private reflow(live = false): void {\n if (this.content) {\n const {style} = this.content;\n const {left} = this.hostElement.getBoundingClientRect();\n const widthPx = getComputedStyle(this.content).width;\n const width = widthPx ? parseFloat(widthPx.replace(\"px\", \"\")) : 375;\n const safeScrollbarSpace = 30;\n style.left = `${Math.min(window.innerWidth - left - width - safeScrollbarSpace, 0)}px`;\n }\n if (live) {\n this.raf = requestAnimationFrame(this.reflow.bind(this, live));\n }\n }\n\n /**\n * Check if some content slot is set.\n */\n private checkContent(): void {\n this.hasHeader = !!this.hostElement.querySelectorAll(\"[slot=header]\").length;\n this.hasContent = !!this.hostElement.querySelectorAll(\"[slot=item]\").length || this.hasHeader;\n }\n\n /**\n * Set `menuitem` role to all menu items.\n * Set the item's inner text to the `data-text` attribute (this is for using bold text avoiding layout shifts).\n */\n private onItemsChange(): void {\n this.checkContent();\n const items = this.hostElement.querySelectorAll<HTMLElement>(\"[slot=item]\");\n items.forEach((item) => {\n item.setAttribute(\"role\", \"menuitem\");\n item.dataset.text = item.textContent;\n });\n }\n\n private renderMenuLabel(): HTMLButtonElement | HTMLDivElement {\n if (this.hasContent) {\n return (\n <button\n class=\"menu-label\"\n aria-expanded={this.open ? \"true\" : \"false\"}\n aria-label={this.open ? \"Chiudi menù\" : \"Apri menù\"}\n onClick={this.toggle}\n >\n <div class=\"menu-label-content\">\n <slot onSlotchange={this.onLabelSlotChange}></slot>\n <z-icon name={this.open ? \"chevron-up\" : \"chevron-down\"} />\n </div>\n </button>\n );\n }\n\n return (\n <div class=\"menu-label\">\n <div class=\"menu-label-content\">\n <slot onSlotchange={this.onLabelSlotChange}></slot>\n </div>\n </div>\n );\n }\n\n render(): HTMLZMenuElement {\n return (\n <Host>\n {this.renderMenuLabel()}\n\n {this.hasContent && (\n <div\n class=\"content\"\n ref={(el) => (this.content = el)}\n >\n {this.hasHeader && (\n <header class=\"header\">\n <slot\n name=\"header\"\n onSlotchange={this.checkContent}\n ></slot>\n </header>\n )}\n\n <div\n class=\"items\"\n role=\"menu\"\n >\n <slot\n name=\"item\"\n onSlotchange={this.onItemsChange}\n ></slot>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-a2130b6a.js';
|
|
2
|
+
|
|
3
|
+
const stylesCss = ":host{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:0;font-family:var(--font-family-sans)}:host,::slotted(*),*{box-sizing:border-box}::slotted(a){text-decoration:none}::slotted(*){color:var(--color-default-text);font-family:var(--font-family-sans);font-weight:var(--font-rg)}:host(:is([active],[open])) .label,.label:hover{border-color:var(--color-secondary01)}:host(:is([active],[open])) .label ::slotted(*),.label:focus:focus-visible ::slotted(*),.label:hover ::slotted(*){font-weight:var(--font-bd)}.label{display:flex;width:100%;align-items:center;padding:calc(var(--space-unit) * 2) calc(var(--space-unit) / 2);border:0;border-bottom:var(--border-size-small) solid var(--color-surface05);margin:0;background:transparent;border-radius:0;cursor:pointer;text-align:left}::slotted([data-text]){display:inline-flex;flex-direction:column}::slotted([data-text])::after{overflow:hidden;height:0;content:attr(data-text);content:attr(data-text) / \"\";font-weight:var(--font-bd);pointer-events:none;user-select:none;visibility:hidden}@media speech{::slotted([data-text])::after{display:none}}.label ::slotted(*){width:100%;margin:0;font-size:var(--font-size-3);line-height:1.25}.label:focus:focus-visible{box-shadow:var(--shadow-focus-primary);outline:none}.label z-icon{margin-left:calc(var(--space-unit) * 4);fill:var(--color-default-icon)}.items{display:flex;width:100%;flex-direction:column;padding:calc(var(--space-unit) / 2);padding-bottom:calc(var(--space-unit) * 1.5)}.items>::slotted([slot=\"item\"]){display:inline-flex;padding:calc(var(--space-unit) / 2);margin:0;font-size:var(--font-size-2);line-height:1.4;outline:none}.items>::slotted([slot=\"item\"]:focus:focus-visible){box-shadow:var(--shadow-focus-primary);color:var(--color-secondary01)}.items>::slotted([slot=\"item\"]:hover),.items>::slotted([slot=\"item\"]:focus:focus-visible),.items>::slotted([slot=\"item\"][active]){color:var(--color-secondary01);font-weight:var(--font-bd)}";
|
|
4
|
+
const ZMenuSectionDeprecatedStyle0 = stylesCss;
|
|
5
|
+
|
|
6
|
+
const ZMenuSectionDeprecated = class {
|
|
7
|
+
constructor(hostRef) {
|
|
8
|
+
registerInstance(this, hostRef);
|
|
9
|
+
this.opened = createEvent(this, "opened", 7);
|
|
10
|
+
this.closed = createEvent(this, "closed", 7);
|
|
11
|
+
this.active = undefined;
|
|
12
|
+
this.open = undefined;
|
|
13
|
+
this.hasContent = undefined;
|
|
14
|
+
}
|
|
15
|
+
toggle() {
|
|
16
|
+
if (!this.hasContent) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
this.open = !this.open;
|
|
20
|
+
this.open ? this.opened.emit() : this.closed.emit();
|
|
21
|
+
}
|
|
22
|
+
/** Close the list when a click is performed outside of this Element. */
|
|
23
|
+
handleClick(ev) {
|
|
24
|
+
if (!this.open || this.hostElement.contains(ev.target)) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
this.open = false;
|
|
28
|
+
this.closed.emit();
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Check if some content slot is set.
|
|
32
|
+
*/
|
|
33
|
+
checkContent() {
|
|
34
|
+
this.hasContent = this.hostElement.querySelectorAll('[slot="item"]').length > 0;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Sets slotted item text as `data-text` attribute value, to let CSS use it through `attr()`.
|
|
38
|
+
* @param ev Slotchange event
|
|
39
|
+
*/
|
|
40
|
+
onLabelSlotChange(ev) {
|
|
41
|
+
const labelElement = ev.target.assignedElements()[0];
|
|
42
|
+
labelElement.dataset.text = (labelElement === null || labelElement === void 0 ? void 0 : labelElement.innerText) || null;
|
|
43
|
+
}
|
|
44
|
+
componentWillLoad() {
|
|
45
|
+
this.checkContent();
|
|
46
|
+
}
|
|
47
|
+
render() {
|
|
48
|
+
return (h(Host, { key: '9f5e6272fec856fc30b8f00632105cf2d41f53cc', role: "menu", open: this.open }, h("button", { key: '31fbf5069fe344a43e5835f14459300dcf3359ac', class: "label", "aria-pressed": this.open ? "true" : "false", onClick: this.toggle.bind(this) }, h("slot", { key: '789bf049b23b099e4fb07f12a3fa5a80a221f833', onSlotchange: this.onLabelSlotChange.bind(this) }), this.hasContent && h("z-icon", { key: 'ffc7213860bca2db3fc12d575aaf26a0c598caaa', name: this.open ? "chevron-up" : "chevron-down" })), this.open && (h("div", { key: '14cc6b2bb5f80030df79598464af61c4e375293b', class: "items" }, h("slot", { key: '830b84cf4ce1028c7cfed3ec5051f206f742e66f', name: "item", onSlotchange: this.checkContent.bind(this) })))));
|
|
49
|
+
}
|
|
50
|
+
get hostElement() { return getElement(this); }
|
|
51
|
+
};
|
|
52
|
+
ZMenuSectionDeprecated.style = ZMenuSectionDeprecatedStyle0;
|
|
53
|
+
|
|
54
|
+
export { ZMenuSectionDeprecated as z_menu_section_deprecated };
|
|
55
|
+
|
|
56
|
+
//# sourceMappingURL=z-menu-section-deprecated.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"z-menu-section-deprecated.entry.js","mappings":";;AAAA,MAAM,SAAS,GAAG,88DAA88D,CAAC;AACj+D,qCAAe,SAAS;;MCWX,sBAAsB;;;;;;;;;IAqBzB,MAAM;QACZ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO;SACR;QAED,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACrD;;IAID,WAAW,CAAC,EAAc;QACxB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAc,CAAC,EAAE;YAC9D,OAAO;SACR;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACpB;;;;IAKO,YAAY;QAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;KACjF;;;;;IAMO,iBAAiB,CAAC,EAAS;QACjC,MAAM,YAAY,GAAI,EAAE,CAAC,MAA0B,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAgB,CAAC;QACzF,YAAY,CAAC,OAAO,CAAC,IAAI,GAAG,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,KAAI,IAAI,CAAC;KAC7D;IAED,iBAAiB;QACf,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAED,MAAM;QACJ,QACE,EAAC,IAAI,qDACH,IAAI,EAAC,MAAM,EACX,IAAI,EAAE,IAAI,CAAC,IAAI,IAEf,+DACE,KAAK,EAAC,OAAO,kBACC,IAAI,CAAC,IAAI,GAAG,MAAM,GAAG,OAAO,EAC1C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAE/B,6DAAM,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAS,EAC7D,IAAI,CAAC,UAAU,IAAI,+DAAQ,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,YAAY,GAAG,cAAc,GAAI,CACxE,EACR,IAAI,CAAC,IAAI,KACR,4DAAK,KAAK,EAAC,OAAO,IAChB,6DACE,IAAI,EAAC,MAAM,EACX,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GACpC,CACJ,CACP,CACI,EACP;KACH;;;;;;;","names":[],"sources":["src/components/deprecated/z-menu-section-deprecated/styles.css?tag=z-menu-section-deprecated&encapsulation=shadow","src/components/deprecated/z-menu-section-deprecated/index.tsx"],"sourcesContent":[":host {\n display: inline-flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n padding: 0;\n font-family: var(--font-family-sans);\n}\n\n:host,\n::slotted(*),\n* {\n box-sizing: border-box;\n}\n\n::slotted(a) {\n text-decoration: none;\n}\n\n::slotted(*) {\n color: var(--color-default-text);\n font-family: var(--font-family-sans);\n font-weight: var(--font-rg);\n}\n\n:host(:is([active], [open])) .label,\n.label:hover {\n border-color: var(--color-secondary01);\n}\n\n:host(:is([active], [open])) .label ::slotted(*),\n.label:focus:focus-visible ::slotted(*),\n.label:hover ::slotted(*) {\n font-weight: var(--font-bd);\n}\n\n.label {\n display: flex;\n width: 100%;\n align-items: center;\n padding: calc(var(--space-unit) * 2) calc(var(--space-unit) / 2);\n border: 0;\n border-bottom: var(--border-size-small) solid var(--color-surface05);\n margin: 0;\n background: transparent;\n border-radius: 0;\n cursor: pointer;\n text-align: left;\n}\n\n::slotted([data-text]) {\n display: inline-flex;\n flex-direction: column;\n}\n\n/* Trick to prevent layout shifts on font-weight changes.\nThe trick is to put an hidden copy of the text already set to bold,\nso the needed space is correctly calculated before any hover/active state changes the\nfont-weight of the real text.\nThe hidden text has an height of 0px so it can expand the width without changing the height\nwhen placed below the real text using `flex-direction: column`. */\n::slotted([data-text])::after {\n overflow: hidden;\n height: 0;\n content: attr(data-text);\n content: attr(data-text) / \"\";\n font-weight: var(--font-bd);\n pointer-events: none;\n user-select: none;\n visibility: hidden;\n}\n\n@media speech {\n ::slotted([data-text])::after {\n display: none;\n }\n}\n\n.label ::slotted(*) {\n width: 100%;\n margin: 0;\n font-size: var(--font-size-3);\n line-height: 1.25;\n}\n\n.label:focus:focus-visible {\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\n.label z-icon {\n margin-left: calc(var(--space-unit) * 4);\n fill: var(--color-default-icon);\n}\n\n.items {\n display: flex;\n width: 100%;\n flex-direction: column;\n padding: calc(var(--space-unit) / 2);\n padding-bottom: calc(var(--space-unit) * 1.5);\n}\n\n.items > ::slotted([slot=\"item\"]) {\n display: inline-flex;\n padding: calc(var(--space-unit) / 2);\n margin: 0;\n font-size: var(--font-size-2);\n line-height: 1.4;\n outline: none;\n}\n\n.items > ::slotted([slot=\"item\"]:focus:focus-visible) {\n box-shadow: var(--shadow-focus-primary);\n color: var(--color-secondary01);\n}\n\n.items > ::slotted([slot=\"item\"]:hover),\n.items > ::slotted([slot=\"item\"]:focus:focus-visible),\n.items > ::slotted([slot=\"item\"][active]) {\n color: var(--color-secondary01);\n font-weight: var(--font-bd);\n}\n","import {Component, Element, Event, EventEmitter, Host, Listen, Prop, State, h} from \"@stencil/core\";\n\n/**\n * A component to create submenus inside the ZMenu.\n * @slot - Label of the menu section.\n * @slot item - Single entry of the section. Set the same slot name to different items to put many of them. Add the `active` attribute to a slotted item to highlight it.\n */\n@Component({\n tag: \"z-menu-section-deprecated\",\n styleUrl: \"styles.css\",\n shadow: true,\n})\nexport class ZMenuSectionDeprecated {\n @Element() hostElement: HTMLZMenuSectionDeprecatedElement;\n\n /** Active state */\n @Prop({reflect: true})\n active?: boolean;\n\n @State()\n open: boolean;\n\n @State()\n hasContent: boolean;\n\n /** The section has been opened. */\n @Event()\n opened: EventEmitter;\n\n /** The section has been closed. */\n @Event()\n closed: EventEmitter;\n\n private toggle(): void {\n if (!this.hasContent) {\n return;\n }\n\n this.open = !this.open;\n this.open ? this.opened.emit() : this.closed.emit();\n }\n\n /** Close the list when a click is performed outside of this Element. */\n @Listen(\"click\", {target: \"document\"})\n handleClick(ev: MouseEvent): void {\n if (!this.open || this.hostElement.contains(ev.target as Node)) {\n return;\n }\n\n this.open = false;\n this.closed.emit();\n }\n\n /**\n * Check if some content slot is set.\n */\n private checkContent(): void {\n this.hasContent = this.hostElement.querySelectorAll('[slot=\"item\"]').length > 0;\n }\n\n /**\n * Sets slotted item text as `data-text` attribute value, to let CSS use it through `attr()`.\n * @param ev Slotchange event\n */\n private onLabelSlotChange(ev: Event): void {\n const labelElement = (ev.target as HTMLSlotElement).assignedElements()[0] as HTMLElement;\n labelElement.dataset.text = labelElement?.innerText || null;\n }\n\n componentWillLoad(): void {\n this.checkContent();\n }\n\n render(): HTMLZMenuSectionElement {\n return (\n <Host\n role=\"menu\"\n open={this.open}\n >\n <button\n class=\"label\"\n aria-pressed={this.open ? \"true\" : \"false\"}\n onClick={this.toggle.bind(this)}\n >\n <slot onSlotchange={this.onLabelSlotChange.bind(this)}></slot>\n {this.hasContent && <z-icon name={this.open ? \"chevron-up\" : \"chevron-down\"} />}\n </button>\n {this.open && (\n <div class=\"items\">\n <slot\n name=\"item\"\n onSlotchange={this.checkContent.bind(this)}\n ></slot>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-a2130b6a.js';
|
|
2
|
+
import { g as KeyboardCode } from './index-b7dbacb4.js';
|
|
2
3
|
|
|
3
|
-
const stylesCss = ":host{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:0;font-family:var(--font-family-sans)}:host,::slotted(*),*{box-sizing:border-box}::slotted(a){text-decoration:none}::slotted(*){color:var(--color-default-text);font-family:var(--font-family-sans);font-weight:var(--font-rg)}:host(:is([active],[open])) .label,.label:hover{border-color:var(--color-secondary01)}:host(:is([active],[open])) .label ::slotted(*),.label:focus:focus-visible ::slotted(*),.label:hover ::slotted(*){font-weight:var(--font-bd)}.label{display:flex;width:100%;align-items:center;padding:calc(var(--space-unit) * 2) calc(var(--space-unit) / 2);border:0;border-bottom:var(--border-size-small) solid var(--color-surface05);margin:0;background:transparent;border-radius:0;cursor:pointer;text-align:left}::slotted([data-text]){display:inline-flex;flex-direction:column}::slotted([data-text])::after{overflow:hidden;height:0;content:attr(data-text);content:attr(data-text) / \"\";font-weight:var(--font-bd);pointer-events:none;user-select:none;visibility:hidden}@media speech{::slotted([data-text])::after{display:none}}.label ::slotted(*){width:100%;margin:0;font-size:var(--font-size-3);line-height:1.25}.label:focus:focus-visible{box-shadow:var(--shadow-focus-primary);outline:none}.label z-icon{margin-left:calc(var(--space-unit) * 4);fill:var(--color-default-icon)}.items{display:flex;width:100%;flex-direction:column;padding:calc(var(--space-unit) / 2);padding-bottom:calc(var(--space-unit) * 1.5)}.items>::slotted([slot=\"
|
|
4
|
+
const stylesCss = ":host{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:0;font-family:var(--font-family-sans)}:host,::slotted(*),*{box-sizing:border-box}::slotted(a){text-decoration:none}::slotted(*){color:var(--color-default-text);font-family:var(--font-family-sans);font-weight:var(--font-rg)}:host(:is([active],[open])) .label,.label:hover{border-color:var(--color-secondary01)}:host(:is([active],[open])) .label ::slotted(*),.label:focus:focus-visible ::slotted(*),.label:hover ::slotted(*){font-weight:var(--font-bd)}.label{display:flex;width:100%;align-items:center;padding:calc(var(--space-unit) * 2) calc(var(--space-unit) / 2);border:0;border-bottom:var(--border-size-small) solid var(--color-surface05);margin:0;background:transparent;border-radius:0;cursor:pointer;text-align:left}::slotted([data-text]){display:inline-flex;flex-direction:column}::slotted([data-text])::after{overflow:hidden;height:0;content:attr(data-text);content:attr(data-text) / \"\";font-weight:var(--font-bd);pointer-events:none;user-select:none;visibility:hidden}@media speech{::slotted([data-text])::after{display:none}}.label ::slotted(*){width:100%;margin:0;font-size:var(--font-size-3);line-height:1.25}.label:focus:focus-visible{box-shadow:var(--shadow-focus-primary);outline:none}.label z-icon{margin-left:calc(var(--space-unit) * 4);fill:var(--color-default-icon)}.items{display:flex;width:100%;flex-direction:column;padding:calc(var(--space-unit) / 2);padding-bottom:calc(var(--space-unit) * 1.5)}.items>::slotted([slot=\"section\"]){display:inline-flex;padding:calc(var(--space-unit) / 2);margin:0;font-size:var(--font-size-2);line-height:1.4;outline:none}.items>::slotted([slot=\"section\"]:focus:focus-visible){box-shadow:var(--shadow-focus-primary);color:var(--color-secondary01)}.items>::slotted([slot=\"section\"]:hover),.items>::slotted([slot=\"section\"]:focus:focus-visible),.items>::slotted([slot=\"section\"][active]){color:var(--color-secondary01);font-weight:var(--font-bd)}";
|
|
4
5
|
const ZMenuSectionStyle0 = stylesCss;
|
|
5
6
|
|
|
6
7
|
const ZMenuSection = class {
|
|
@@ -8,10 +9,90 @@ const ZMenuSection = class {
|
|
|
8
9
|
registerInstance(this, hostRef);
|
|
9
10
|
this.opened = createEvent(this, "opened", 7);
|
|
10
11
|
this.closed = createEvent(this, "closed", 7);
|
|
12
|
+
this.currentIndex = -1;
|
|
13
|
+
this.currentCanvasOpenStatus = false;
|
|
11
14
|
this.active = undefined;
|
|
12
15
|
this.open = undefined;
|
|
13
16
|
this.hasContent = undefined;
|
|
14
17
|
}
|
|
18
|
+
canvasOpenStatusChanged(e) {
|
|
19
|
+
this.currentCanvasOpenStatus = e.detail;
|
|
20
|
+
}
|
|
21
|
+
handleKeyDown(e) {
|
|
22
|
+
if (e.code === KeyboardCode.ENTER) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (this.open && !this.currentCanvasOpenStatus) {
|
|
26
|
+
this.handleNavigationSideArrow(e);
|
|
27
|
+
}
|
|
28
|
+
this.handleArrowsNav(e);
|
|
29
|
+
}
|
|
30
|
+
handleNavigationSideArrow(e) {
|
|
31
|
+
if (e.code !== KeyboardCode.ARROW_RIGHT && e.code !== KeyboardCode.ARROW_LEFT) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (e.code === KeyboardCode.ARROW_RIGHT) {
|
|
35
|
+
const nextElement = this.hostElement.parentElement.nextElementSibling;
|
|
36
|
+
if (nextElement) {
|
|
37
|
+
const menuButton = nextElement.shadowRoot.querySelector(".menu-label");
|
|
38
|
+
console.log(this.hostElement.parentElement);
|
|
39
|
+
menuButton.focus();
|
|
40
|
+
}
|
|
41
|
+
this.open = false;
|
|
42
|
+
nextElement.setAttribute("open", "true");
|
|
43
|
+
}
|
|
44
|
+
else if (e.code === KeyboardCode.ARROW_LEFT) {
|
|
45
|
+
const prevElement = this.hostElement.parentElement.previousElementSibling;
|
|
46
|
+
if (prevElement) {
|
|
47
|
+
const menuButton = prevElement.shadowRoot.querySelector(".menu-label");
|
|
48
|
+
menuButton.focus();
|
|
49
|
+
}
|
|
50
|
+
prevElement.setAttribute("open", "true");
|
|
51
|
+
this.open = false;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
handleArrowsNav(e) {
|
|
55
|
+
const menuItems = Array.from(this.hostElement.querySelectorAll('[slot="section"]'));
|
|
56
|
+
if (this.open) {
|
|
57
|
+
e.preventDefault();
|
|
58
|
+
e.stopPropagation();
|
|
59
|
+
if (e.code === KeyboardCode.ARROW_DOWN || e.code === KeyboardCode.ARROW_UP) {
|
|
60
|
+
let nextFocusableItem;
|
|
61
|
+
// INFO: reset focus on all menu items
|
|
62
|
+
menuItems.forEach((item) => item.setAttribute("tabindex", "-1"));
|
|
63
|
+
if (e.code === KeyboardCode.ARROW_DOWN) {
|
|
64
|
+
nextFocusableItem = this.getNextItem(menuItems, 1);
|
|
65
|
+
}
|
|
66
|
+
else if (e.code === KeyboardCode.ARROW_UP) {
|
|
67
|
+
nextFocusableItem = this.getNextItem(menuItems, -1);
|
|
68
|
+
}
|
|
69
|
+
if (nextFocusableItem) {
|
|
70
|
+
nextFocusableItem.setAttribute("tabindex", "0");
|
|
71
|
+
nextFocusableItem.focus();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else if (e.code === KeyboardCode.ESC) {
|
|
75
|
+
this.focusToParentAndCloseMenu();
|
|
76
|
+
}
|
|
77
|
+
else if (e.shiftKey && e.code === KeyboardCode.TAB) {
|
|
78
|
+
this.focusToParentAndCloseMenu();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
getNextItem(menuItems, direction) {
|
|
83
|
+
if (this.currentIndex === -1) {
|
|
84
|
+
this.currentIndex = direction === 1 ? 0 : menuItems.length - 1;
|
|
85
|
+
return menuItems[this.currentIndex];
|
|
86
|
+
}
|
|
87
|
+
this.currentIndex = (this.currentIndex + direction + menuItems.length) % menuItems.length;
|
|
88
|
+
return menuItems[this.currentIndex];
|
|
89
|
+
}
|
|
90
|
+
focusToParentAndCloseMenu() {
|
|
91
|
+
const menuButton = this.hostElement.shadowRoot.querySelector("button");
|
|
92
|
+
menuButton.focus();
|
|
93
|
+
this.currentIndex = -1;
|
|
94
|
+
this.open = false;
|
|
95
|
+
}
|
|
15
96
|
toggle() {
|
|
16
97
|
if (!this.hasContent) {
|
|
17
98
|
return;
|
|
@@ -31,7 +112,7 @@ const ZMenuSection = class {
|
|
|
31
112
|
* Check if some content slot is set.
|
|
32
113
|
*/
|
|
33
114
|
checkContent() {
|
|
34
|
-
this.hasContent = this.hostElement.querySelectorAll('[slot="
|
|
115
|
+
this.hasContent = this.hostElement.querySelectorAll('[slot="section"]').length > 0;
|
|
35
116
|
}
|
|
36
117
|
/**
|
|
37
118
|
* Sets slotted item text as `data-text` attribute value, to let CSS use it through `attr()`.
|
|
@@ -41,11 +122,18 @@ const ZMenuSection = class {
|
|
|
41
122
|
const labelElement = ev.target.assignedElements()[0];
|
|
42
123
|
labelElement.dataset.text = (labelElement === null || labelElement === void 0 ? void 0 : labelElement.innerText) || null;
|
|
43
124
|
}
|
|
125
|
+
focusFirstSectionItemOnKeyUp() {
|
|
126
|
+
const firstElement = this.hostElement.querySelectorAll('[slot="section"]')[0];
|
|
127
|
+
if (firstElement) {
|
|
128
|
+
firstElement.focus();
|
|
129
|
+
this.currentIndex = 0;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
44
132
|
componentWillLoad() {
|
|
45
133
|
this.checkContent();
|
|
46
134
|
}
|
|
47
135
|
render() {
|
|
48
|
-
return (h(Host, { key: '
|
|
136
|
+
return (h(Host, { key: '1370ec8c9379a204ed8bfb387ef53f6ad976ce0f', role: "menu", open: this.open }, h("button", { key: '4a474f4f47b9f72f3621a4c1f043f287ebf98d66', class: "label", "aria-pressed": this.open ? "true" : "false", onClick: this.toggle.bind(this), onKeyUp: this.focusFirstSectionItemOnKeyUp.bind(this) }, h("slot", { key: '1332d96212421fd936b1ee1e295c856219bfb1cc', onSlotchange: this.onLabelSlotChange.bind(this) }), this.hasContent && h("z-icon", { key: '04b94f8f22bd56d16f7cdb3f394024c5726435e5', name: this.open ? "chevron-up" : "chevron-down" })), this.open && (h("div", { key: '01353c9f9b57cce04361849e79c3264f5f106472', class: "items" }, h("slot", { key: '29379c69dff6189d4226246eb859dad6c67ca0ec', name: "section", onSlotchange: this.checkContent.bind(this) })))));
|
|
49
137
|
}
|
|
50
138
|
get hostElement() { return getElement(this); }
|
|
51
139
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"z-menu-section.entry.js","mappings":";;AAAA,MAAM,SAAS,GAAG,88DAA88D,CAAC;AACj+D,2BAAe,SAAS;;MCWX,YAAY;;;;;;;;;IAqBf,MAAM;QACZ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO;SACR;QAED,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACrD;;IAID,WAAW,CAAC,EAAc;QACxB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAc,CAAC,EAAE;YAC9D,OAAO;SACR;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACpB;;;;IAKO,YAAY;QAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;KACjF;;;;;IAMO,iBAAiB,CAAC,EAAS;QACjC,MAAM,YAAY,GAAI,EAAE,CAAC,MAA0B,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAgB,CAAC;QACzF,YAAY,CAAC,OAAO,CAAC,IAAI,GAAG,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,KAAI,IAAI,CAAC;KAC7D;IAED,iBAAiB;QACf,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAED,MAAM;QACJ,QACE,EAAC,IAAI,qDACH,IAAI,EAAC,MAAM,EACX,IAAI,EAAE,IAAI,CAAC,IAAI,IAEf,+DACE,KAAK,EAAC,OAAO,kBACC,IAAI,CAAC,IAAI,GAAG,MAAM,GAAG,OAAO,EAC1C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAE/B,6DAAM,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAS,EAC7D,IAAI,CAAC,UAAU,IAAI,+DAAQ,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,YAAY,GAAG,cAAc,GAAI,CACxE,EACR,IAAI,CAAC,IAAI,KACR,4DAAK,KAAK,EAAC,OAAO,IAChB,6DACE,IAAI,EAAC,MAAM,EACX,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GACpC,CACJ,CACP,CACI,EACP;KACH;;;;;;;","names":[],"sources":["src/components/z-menu-section/styles.css?tag=z-menu-section&encapsulation=shadow","src/components/z-menu-section/index.tsx"],"sourcesContent":[":host {\n display: inline-flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n padding: 0;\n font-family: var(--font-family-sans);\n}\n\n:host,\n::slotted(*),\n* {\n box-sizing: border-box;\n}\n\n::slotted(a) {\n text-decoration: none;\n}\n\n::slotted(*) {\n color: var(--color-default-text);\n font-family: var(--font-family-sans);\n font-weight: var(--font-rg);\n}\n\n:host(:is([active], [open])) .label,\n.label:hover {\n border-color: var(--color-secondary01);\n}\n\n:host(:is([active], [open])) .label ::slotted(*),\n.label:focus:focus-visible ::slotted(*),\n.label:hover ::slotted(*) {\n font-weight: var(--font-bd);\n}\n\n.label {\n display: flex;\n width: 100%;\n align-items: center;\n padding: calc(var(--space-unit) * 2) calc(var(--space-unit) / 2);\n border: 0;\n border-bottom: var(--border-size-small) solid var(--color-surface05);\n margin: 0;\n background: transparent;\n border-radius: 0;\n cursor: pointer;\n text-align: left;\n}\n\n::slotted([data-text]) {\n display: inline-flex;\n flex-direction: column;\n}\n\n/* Trick to prevent layout shifts on font-weight changes.\nThe trick is to put an hidden copy of the text already set to bold,\nso the needed space is correctly calculated before any hover/active state changes the\nfont-weight of the real text.\nThe hidden text has an height of 0px so it can expand the width without changing the height\nwhen placed below the real text using `flex-direction: column`. */\n::slotted([data-text])::after {\n overflow: hidden;\n height: 0;\n content: attr(data-text);\n content: attr(data-text) / \"\";\n font-weight: var(--font-bd);\n pointer-events: none;\n user-select: none;\n visibility: hidden;\n}\n\n@media speech {\n ::slotted([data-text])::after {\n display: none;\n }\n}\n\n.label ::slotted(*) {\n width: 100%;\n margin: 0;\n font-size: var(--font-size-3);\n line-height: 1.25;\n}\n\n.label:focus:focus-visible {\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\n.label z-icon {\n margin-left: calc(var(--space-unit) * 4);\n fill: var(--color-default-icon);\n}\n\n.items {\n display: flex;\n width: 100%;\n flex-direction: column;\n padding: calc(var(--space-unit) / 2);\n padding-bottom: calc(var(--space-unit) * 1.5);\n}\n\n.items > ::slotted([slot=\"item\"]) {\n display: inline-flex;\n padding: calc(var(--space-unit) / 2);\n margin: 0;\n font-size: var(--font-size-2);\n line-height: 1.4;\n outline: none;\n}\n\n.items > ::slotted([slot=\"item\"]:focus:focus-visible) {\n box-shadow: var(--shadow-focus-primary);\n color: var(--color-secondary01);\n}\n\n.items > ::slotted([slot=\"item\"]:hover),\n.items > ::slotted([slot=\"item\"]:focus:focus-visible),\n.items > ::slotted([slot=\"item\"][active]) {\n color: var(--color-secondary01);\n font-weight: var(--font-bd);\n}\n","import {Component, Element, Event, EventEmitter, Host, Listen, Prop, State, h} from \"@stencil/core\";\n\n/**\n * A component to create submenus inside the ZMenu.\n * @slot - Label of the menu section.\n * @slot item - Single entry of the section. Set the same slot name to different items to put many of them. Add the `active` attribute to a slotted item to highlight it.\n */\n@Component({\n tag: \"z-menu-section\",\n styleUrl: \"styles.css\",\n shadow: true,\n})\nexport class ZMenuSection {\n @Element() hostElement: HTMLZMenuSectionElement;\n\n /** Active state */\n @Prop({reflect: true})\n active?: boolean;\n\n @State()\n open: boolean;\n\n @State()\n hasContent: boolean;\n\n /** The section has been opened. */\n @Event()\n opened: EventEmitter;\n\n /** The section has been closed. */\n @Event()\n closed: EventEmitter;\n\n private toggle(): void {\n if (!this.hasContent) {\n return;\n }\n\n this.open = !this.open;\n this.open ? this.opened.emit() : this.closed.emit();\n }\n\n /** Close the list when a click is performed outside of this Element. */\n @Listen(\"click\", {target: \"document\"})\n handleClick(ev: MouseEvent): void {\n if (!this.open || this.hostElement.contains(ev.target as Node)) {\n return;\n }\n\n this.open = false;\n this.closed.emit();\n }\n\n /**\n * Check if some content slot is set.\n */\n private checkContent(): void {\n this.hasContent = this.hostElement.querySelectorAll('[slot=\"item\"]').length > 0;\n }\n\n /**\n * Sets slotted item text as `data-text` attribute value, to let CSS use it through `attr()`.\n * @param ev Slotchange event\n */\n private onLabelSlotChange(ev: Event): void {\n const labelElement = (ev.target as HTMLSlotElement).assignedElements()[0] as HTMLElement;\n labelElement.dataset.text = labelElement?.innerText || null;\n }\n\n componentWillLoad(): void {\n this.checkContent();\n }\n\n render(): HTMLZMenuSectionElement {\n return (\n <Host\n role=\"menu\"\n open={this.open}\n >\n <button\n class=\"label\"\n aria-pressed={this.open ? \"true\" : \"false\"}\n onClick={this.toggle.bind(this)}\n >\n <slot onSlotchange={this.onLabelSlotChange.bind(this)}></slot>\n {this.hasContent && <z-icon name={this.open ? \"chevron-up\" : \"chevron-down\"} />}\n </button>\n {this.open && (\n <div class=\"items\">\n <slot\n name=\"item\"\n onSlotchange={this.checkContent.bind(this)}\n ></slot>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"z-menu-section.entry.js","mappings":";;;AAAA,MAAM,SAAS,GAAG,69DAA69D,CAAC;AACh/D,2BAAe,SAAS;;MCYX,YAAY;;;;;QAqBf,iBAAY,GAAG,CAAC,CAAC,CAAC;QAElB,4BAAuB,GAAG,KAAK,CAAC;;;;;IAGxC,uBAAuB,CAAC,CAAc;QACpC,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;KACzC;IAGD,aAAa,CAAC,CAAgB;QAC5B,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,KAAK,EAAE;YACjC,OAAO;SACR;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;YAC9C,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;SACnC;QAED,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;KACzB;IAEO,yBAAyB,CAAC,CAAgB;QAChD,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,UAAU,EAAE;YAC7E,OAAO;SACR;QACD,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,WAAW,EAAE;YACvC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,kBAAkB,CAAC;YACtE,IAAI,WAAW,EAAE;gBACf,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAgB,CAAC;gBACtF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;gBAC5C,UAAU,CAAC,KAAK,EAAE,CAAC;aACpB;YACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC1C;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,UAAU,EAAE;YAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,sBAAsB,CAAC;YAC1E,IAAI,WAAW,EAAE;gBACf,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAgB,CAAC;gBACtF,UAAU,CAAC,KAAK,EAAE,CAAC;aACpB;YACD,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;SACnB;KACF;IAEO,eAAe,CAAC,CAAgB;QACtC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAkB,CAAC;QACrG,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,QAAQ,EAAE;gBAC1E,IAAI,iBAA8B,CAAC;;gBAEnC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAiB,KAAK,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;gBAE9E,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,UAAU,EAAE;oBACtC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;iBACpD;qBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,QAAQ,EAAE;oBAC3C,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;iBACrD;gBAED,IAAI,iBAAiB,EAAE;oBACrB,iBAAiB,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;oBAChD,iBAAiB,CAAC,KAAK,EAAE,CAAC;iBAC3B;aACF;iBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,GAAG,EAAE;gBACtC,IAAI,CAAC,yBAAyB,EAAE,CAAC;aAClC;iBAAM,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,GAAG,EAAE;gBACpD,IAAI,CAAC,yBAAyB,EAAE,CAAC;aAClC;SACF;KACF;IAEO,WAAW,CAAC,SAAwB,EAAE,SAAiB;QAC7D,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC,EAAE;YAC5B,IAAI,CAAC,YAAY,GAAG,SAAS,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YAE/D,OAAO,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACrC;QAED,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC;QAE1F,OAAO,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACrC;IAEO,yBAAyB;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAgB,CAAC;QACtF,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACnB;IAEO,MAAM;QACZ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO;SACR;QAED,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACrD;;IAID,WAAW,CAAC,EAAc;QACxB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAc,CAAC,EAAE;YAC9D,OAAO;SACR;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACpB;;;;IAKO,YAAY;QAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;KACpF;;;;;IAMO,iBAAiB,CAAC,EAAS;QACjC,MAAM,YAAY,GAAI,EAAE,CAAC,MAA0B,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAgB,CAAC;QACzF,YAAY,CAAC,OAAO,CAAC,IAAI,GAAG,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,KAAI,IAAI,CAAC;KAC7D;IAEO,4BAA4B;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAgB,CAAC;QAC7F,IAAI,YAAY,EAAE;YAChB,YAAY,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;SACvB;KACF;IAED,iBAAiB;QACf,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAED,MAAM;QACJ,QACE,EAAC,IAAI,qDACH,IAAI,EAAC,MAAM,EACX,IAAI,EAAE,IAAI,CAAC,IAAI,IAEf,+DACE,KAAK,EAAC,OAAO,kBACC,IAAI,CAAC,IAAI,GAAG,MAAM,GAAG,OAAO,EAC1C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAC/B,OAAO,EAAE,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,IAErD,6DAAM,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAS,EAC7D,IAAI,CAAC,UAAU,IAAI,+DAAQ,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,YAAY,GAAG,cAAc,GAAI,CACxE,EACR,IAAI,CAAC,IAAI,KACR,4DAAK,KAAK,EAAC,OAAO,IAChB,6DACE,IAAI,EAAC,SAAS,EACd,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GACpC,CACJ,CACP,CACI,EACP;KACH;;;;;;;","names":[],"sources":["src/components/z-menu-section/styles.css?tag=z-menu-section&encapsulation=shadow","src/components/z-menu-section/index.tsx"],"sourcesContent":[":host {\n display: inline-flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n padding: 0;\n font-family: var(--font-family-sans);\n}\n\n:host,\n::slotted(*),\n* {\n box-sizing: border-box;\n}\n\n::slotted(a) {\n text-decoration: none;\n}\n\n::slotted(*) {\n color: var(--color-default-text);\n font-family: var(--font-family-sans);\n font-weight: var(--font-rg);\n}\n\n:host(:is([active], [open])) .label,\n.label:hover {\n border-color: var(--color-secondary01);\n}\n\n:host(:is([active], [open])) .label ::slotted(*),\n.label:focus:focus-visible ::slotted(*),\n.label:hover ::slotted(*) {\n font-weight: var(--font-bd);\n}\n\n.label {\n display: flex;\n width: 100%;\n align-items: center;\n padding: calc(var(--space-unit) * 2) calc(var(--space-unit) / 2);\n border: 0;\n border-bottom: var(--border-size-small) solid var(--color-surface05);\n margin: 0;\n background: transparent;\n border-radius: 0;\n cursor: pointer;\n text-align: left;\n}\n\n::slotted([data-text]) {\n display: inline-flex;\n flex-direction: column;\n}\n\n/* Trick to prevent layout shifts on font-weight changes.\nThe trick is to put an hidden copy of the text already set to bold,\nso the needed space is correctly calculated before any hover/active state changes the\nfont-weight of the real text.\nThe hidden text has an height of 0px so it can expand the width without changing the height\nwhen placed below the real text using `flex-direction: column`. */\n::slotted([data-text])::after {\n overflow: hidden;\n height: 0;\n content: attr(data-text);\n content: attr(data-text) / \"\";\n font-weight: var(--font-bd);\n pointer-events: none;\n user-select: none;\n visibility: hidden;\n}\n\n@media speech {\n ::slotted([data-text])::after {\n display: none;\n }\n}\n\n.label ::slotted(*) {\n width: 100%;\n margin: 0;\n font-size: var(--font-size-3);\n line-height: 1.25;\n}\n\n.label:focus:focus-visible {\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\n.label z-icon {\n margin-left: calc(var(--space-unit) * 4);\n fill: var(--color-default-icon);\n}\n\n.items {\n display: flex;\n width: 100%;\n flex-direction: column;\n padding: calc(var(--space-unit) / 2);\n padding-bottom: calc(var(--space-unit) * 1.5);\n}\n\n.items > ::slotted([slot=\"section\"]) {\n display: inline-flex;\n padding: calc(var(--space-unit) / 2);\n margin: 0;\n font-size: var(--font-size-2);\n line-height: 1.4;\n outline: none;\n}\n\n.items > ::slotted([slot=\"section\"]:focus:focus-visible) {\n box-shadow: var(--shadow-focus-primary);\n color: var(--color-secondary01);\n}\n\n.items > ::slotted([slot=\"section\"]:hover),\n.items > ::slotted([slot=\"section\"]:focus:focus-visible),\n.items > ::slotted([slot=\"section\"][active]) {\n color: var(--color-secondary01);\n font-weight: var(--font-bd);\n}\n","import {Component, Element, Event, EventEmitter, Host, Listen, Prop, State, h} from \"@stencil/core\";\nimport {KeyboardCode} from \"../../beans\";\n\n/**\n * A component to create submenus inside the ZMenu.\n * @slot - Label of the menu section.\n * @slot item - Single entry of the section. Set the same slot name to different items to put many of them. Add the `active` attribute to a slotted item to highlight it.\n */\n@Component({\n tag: \"z-menu-section\",\n styleUrl: \"styles.css\",\n shadow: true,\n})\nexport class ZMenuSection {\n @Element() hostElement: HTMLZMenuSectionElement;\n\n /** Active state */\n @Prop({reflect: true})\n active?: boolean;\n\n @State()\n open: boolean;\n\n @State()\n hasContent: boolean;\n\n /** The section has been opened. */\n @Event()\n opened: EventEmitter;\n\n /** The section has been closed. */\n @Event()\n closed: EventEmitter;\n\n private currentIndex = -1;\n\n private currentCanvasOpenStatus = false;\n\n @Listen(\"canvasOpenStatusChanged\", {target: \"document\"})\n canvasOpenStatusChanged(e: CustomEvent): void {\n this.currentCanvasOpenStatus = e.detail;\n }\n\n @Listen(\"keydown\")\n handleKeyDown(e: KeyboardEvent): void {\n if (e.code === KeyboardCode.ENTER) {\n return;\n }\n\n if (this.open && !this.currentCanvasOpenStatus) {\n this.handleNavigationSideArrow(e);\n }\n\n this.handleArrowsNav(e);\n }\n\n private handleNavigationSideArrow(e: KeyboardEvent): void {\n if (e.code !== KeyboardCode.ARROW_RIGHT && e.code !== KeyboardCode.ARROW_LEFT) {\n return;\n }\n if (e.code === KeyboardCode.ARROW_RIGHT) {\n const nextElement = this.hostElement.parentElement.nextElementSibling;\n if (nextElement) {\n const menuButton = nextElement.shadowRoot.querySelector(\".menu-label\") as HTMLElement;\n console.log(this.hostElement.parentElement);\n menuButton.focus();\n }\n this.open = false;\n nextElement.setAttribute(\"open\", \"true\");\n } else if (e.code === KeyboardCode.ARROW_LEFT) {\n const prevElement = this.hostElement.parentElement.previousElementSibling;\n if (prevElement) {\n const menuButton = prevElement.shadowRoot.querySelector(\".menu-label\") as HTMLElement;\n menuButton.focus();\n }\n prevElement.setAttribute(\"open\", \"true\");\n this.open = false;\n }\n }\n\n private handleArrowsNav(e: KeyboardEvent): void {\n const menuItems = Array.from(this.hostElement.querySelectorAll('[slot=\"section\"]')) as HTMLElement[];\n if (this.open) {\n e.preventDefault();\n e.stopPropagation();\n if (e.code === KeyboardCode.ARROW_DOWN || e.code === KeyboardCode.ARROW_UP) {\n let nextFocusableItem: HTMLElement;\n // INFO: reset focus on all menu items\n menuItems.forEach((item: HTMLElement) => item.setAttribute(\"tabindex\", \"-1\"));\n\n if (e.code === KeyboardCode.ARROW_DOWN) {\n nextFocusableItem = this.getNextItem(menuItems, 1);\n } else if (e.code === KeyboardCode.ARROW_UP) {\n nextFocusableItem = this.getNextItem(menuItems, -1);\n }\n\n if (nextFocusableItem) {\n nextFocusableItem.setAttribute(\"tabindex\", \"0\");\n nextFocusableItem.focus();\n }\n } else if (e.code === KeyboardCode.ESC) {\n this.focusToParentAndCloseMenu();\n } else if (e.shiftKey && e.code === KeyboardCode.TAB) {\n this.focusToParentAndCloseMenu();\n }\n }\n }\n\n private getNextItem(menuItems: HTMLElement[], direction: number): HTMLElement {\n if (this.currentIndex === -1) {\n this.currentIndex = direction === 1 ? 0 : menuItems.length - 1;\n\n return menuItems[this.currentIndex];\n }\n\n this.currentIndex = (this.currentIndex + direction + menuItems.length) % menuItems.length;\n\n return menuItems[this.currentIndex];\n }\n\n private focusToParentAndCloseMenu(): void {\n const menuButton = this.hostElement.shadowRoot.querySelector(\"button\") as HTMLElement;\n menuButton.focus();\n this.currentIndex = -1;\n this.open = false;\n }\n\n private toggle(): void {\n if (!this.hasContent) {\n return;\n }\n\n this.open = !this.open;\n this.open ? this.opened.emit() : this.closed.emit();\n }\n\n /** Close the list when a click is performed outside of this Element. */\n @Listen(\"click\", {target: \"document\"})\n handleClick(ev: MouseEvent): void {\n if (!this.open || this.hostElement.contains(ev.target as Node)) {\n return;\n }\n\n this.open = false;\n this.closed.emit();\n }\n\n /**\n * Check if some content slot is set.\n */\n private checkContent(): void {\n this.hasContent = this.hostElement.querySelectorAll('[slot=\"section\"]').length > 0;\n }\n\n /**\n * Sets slotted item text as `data-text` attribute value, to let CSS use it through `attr()`.\n * @param ev Slotchange event\n */\n private onLabelSlotChange(ev: Event): void {\n const labelElement = (ev.target as HTMLSlotElement).assignedElements()[0] as HTMLElement;\n labelElement.dataset.text = labelElement?.innerText || null;\n }\n\n private focusFirstSectionItemOnKeyUp(): void {\n const firstElement = this.hostElement.querySelectorAll('[slot=\"section\"]')[0] as HTMLElement;\n if (firstElement) {\n firstElement.focus();\n this.currentIndex = 0;\n }\n }\n\n componentWillLoad(): void {\n this.checkContent();\n }\n\n render(): HTMLZMenuSectionElement {\n return (\n <Host\n role=\"menu\"\n open={this.open}\n >\n <button\n class=\"label\"\n aria-pressed={this.open ? \"true\" : \"false\"}\n onClick={this.toggle.bind(this)}\n onKeyUp={this.focusFirstSectionItemOnKeyUp.bind(this)}\n >\n <slot onSlotchange={this.onLabelSlotChange.bind(this)}></slot>\n {this.hasContent && <z-icon name={this.open ? \"chevron-up\" : \"chevron-down\"} />}\n </button>\n {this.open && (\n <div class=\"items\">\n <slot\n name=\"section\"\n onSlotchange={this.checkContent.bind(this)}\n ></slot>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
|
package/dist/esm/z-menu.entry.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-a2130b6a.js';
|
|
2
|
+
import { g as KeyboardCode } from './index-b7dbacb4.js';
|
|
2
3
|
|
|
3
|
-
const stylesCss = ":host,::slotted(*),*{box-sizing:border-box}:host{position:relative;display:inline-flex;flex-direction:column;--z-menu-label-color:var(--color-default-text)}::slotted(a){text-decoration:none}::slotted(*){color:var(--color-default-text);font-family:var(--font-family-sans);font-weight:var(--font-rg)}.menu-label{padding:0;border:0;margin:0;background:transparent;border-radius:0;color:inherit;outline:none;text-align:left}
|
|
4
|
+
const stylesCss = ":host,::slotted(*),*{box-sizing:border-box;outline:none}:host{position:relative;display:inline-flex;flex-direction:column;flex-shrink:0;--z-menu-label-color:var(--color-default-text)}::slotted(a){text-decoration:none}::slotted(*){color:var(--color-default-text);font-family:var(--font-family-sans);font-weight:var(--font-rg)}.menu-label{width:100%;padding:0;border:0;margin:0;background:transparent;border-radius:0;color:inherit;outline:none;text-align:left}.menu-wrapper{display:flex;align-items:center}.menu-wrapper:focus-visible,.menu-label-content:focus-visible,button:focus-visible{outline:none}button.menu-label{cursor:pointer}.menu-label:focus-within{z-index:1;box-shadow:var(--shadow-focus-primary)}.menu-label .menu-label-content{position:relative;display:flex;height:30px;align-items:center}:host(:is([active],[open])) .menu-label-content,.menu-label:focus-within .menu-label-content{color:var(--color-primary01);font-weight:var(--font-bd)}:host(:is([active],[open])) .menu-label-content ::slotted(*),.menu-label:focus-within .menu-label-content ::slotted(*),.menu-label:focus-within .menu-label-content z-icon{color:var(--color-primary01);letter-spacing:normal}:host .menu-label .menu-label-content ::slotted(*:not([slot]):focus:focus-visible){box-shadow:none !important}:host(:is([active],[open],[vertical-context])) .menu-label .menu-label-content::after,.menu-label .menu-label-content:hover::after,.menu-label:focus-within .menu-label-content::after{position:absolute;bottom:0;left:0;width:100%;content:\"\";pointer-events:none}:host([vertical-context]) .menu-label-content::after{height:var(--border-size-small);background-color:var(--color-surface03)}:host(:is([active],[open])) .menu-label .menu-label-content::after,.menu-label .menu-label-content:hover::after,.menu-label:focus-within .menu-label-content::after{height:var(--border-size-large);background-color:var(--color-secondary01)}::slotted([data-text])::after{height:0;content:attr(data-text);content:attr(data-text) / \"\";font-weight:var(--font-bd);letter-spacing:normal;pointer-events:none;user-select:none;visibility:hidden}@media speech{::slotted([data-text])::after{display:none}}::slotted([data-text]){display:inline-flex;flex-direction:column}.menu-label .menu-label-content ::slotted(*){display:inline-flex;width:100%;min-width:fit-content;margin:0;appearance:none;color:var(--z-menu-label-color);font-family:var(--font-family-sans);font-size:var(--font-size-3);font-weight:inherit;outline:none}.menu-label .menu-label-content ::slotted(*),.menu-label .menu-label-content z-icon{padding:var(--space-unit) 0}.menu-label .menu-label-content z-icon{margin-left:calc(var(--space-unit) * 1.5);fill:currentcolor}.content{background:var(--color-surface01)}:host(:not([open])) .content{display:none}:host([floating]) .content{position:absolute;top:100%;left:0;width:375px;min-width:100%;max-width:100vw;padding:var(--space-unit) var(--space-unit) calc(var(--space-unit) * 2);box-shadow:var(--shadow-2)}:host(:not([floating])) .content{width:100%}.header{display:flex;align-items:center;padding:var(--space-unit) 0 calc(var(--space-unit) * 2)}.header ::slotted(img[slot=\"header\"]){width:calc(var(--space-unit) * 11.25);height:auto;object-fit:contain}.header ::slotted([slot=\"header\"]:not(:first-child)){margin:auto 0;margin-left:calc(var(--space-unit) * 2.5);font-size:var(--font-size-3);font-weight:var(--font-sb);line-height:1.5}.items{display:flex;flex-direction:column;align-items:flex-start;background:inherit}.items>::slotted([slot=\"item\"]){width:100%;margin:0;font-size:var(--font-size-3);line-height:1.25;outline:none}.items>::slotted([slot=\"item\"]:focus:focus-visible){box-shadow:var(--shadow-focus-primary)}.items>::slotted([slot=\"item\"]:not(z-menu-section)){padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 0.5);border-bottom:var(--border-size-small) solid var(--color-surface05)}.items>::slotted([slot=\"item\"]:hover),.items>::slotted([slot=\"item\"]:focus:focus-visible),.items>::slotted([slot=\"item\"]:active){border-color:var(--color-secondary01);font-weight:var(--font-bd)}";
|
|
4
5
|
const ZMenuStyle0 = stylesCss;
|
|
5
6
|
|
|
6
7
|
const ZMenu = class {
|
|
@@ -20,6 +21,103 @@ const ZMenu = class {
|
|
|
20
21
|
this.open = false;
|
|
21
22
|
this.closed.emit();
|
|
22
23
|
}
|
|
24
|
+
canvasOpenStatusChanged(e) {
|
|
25
|
+
this.currentCanvasOpenStatus = e.detail;
|
|
26
|
+
}
|
|
27
|
+
handleKeyDown(e) {
|
|
28
|
+
if (e.code === KeyboardCode.ENTER) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (this.open && !this.currentCanvasOpenStatus) {
|
|
32
|
+
this.handleNavigationSideArrow(e);
|
|
33
|
+
}
|
|
34
|
+
this.handleArrowsNav(e);
|
|
35
|
+
}
|
|
36
|
+
handleNavigationSideArrow(e) {
|
|
37
|
+
if (e.code !== KeyboardCode.ARROW_RIGHT && e.code !== KeyboardCode.ARROW_LEFT) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (e.code === KeyboardCode.ARROW_RIGHT) {
|
|
41
|
+
const nextElement = this.hostElement.nextElementSibling;
|
|
42
|
+
if (!nextElement) {
|
|
43
|
+
const firstMenuItem = this.firstElMenu.shadowRoot.querySelector(".menu-label");
|
|
44
|
+
firstMenuItem.focus();
|
|
45
|
+
this.open = false;
|
|
46
|
+
}
|
|
47
|
+
if (nextElement && nextElement.tagName === "Z-MENU") {
|
|
48
|
+
const menuButton = nextElement.shadowRoot.querySelector(".menu-label");
|
|
49
|
+
menuButton.focus();
|
|
50
|
+
if (nextElement.children.length > 1) {
|
|
51
|
+
nextElement.setAttribute("open", "true");
|
|
52
|
+
}
|
|
53
|
+
this.open = false;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
else if (e.code === KeyboardCode.ARROW_LEFT) {
|
|
57
|
+
const prevElement = this.hostElement.previousElementSibling;
|
|
58
|
+
if (prevElement.tagName !== "Z-MENU") {
|
|
59
|
+
const lastElMenuItem = this.lastElMenu.shadowRoot.querySelector(".menu-label");
|
|
60
|
+
lastElMenuItem.focus();
|
|
61
|
+
this.open = false;
|
|
62
|
+
}
|
|
63
|
+
if (prevElement && prevElement.tagName === "Z-MENU") {
|
|
64
|
+
const menuButton = prevElement.shadowRoot.querySelector(".menu-label");
|
|
65
|
+
menuButton.focus();
|
|
66
|
+
if (prevElement.children.length > 1) {
|
|
67
|
+
prevElement.setAttribute("open", "true");
|
|
68
|
+
}
|
|
69
|
+
this.open = false;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
handleArrowsNav(e) {
|
|
74
|
+
const menuItems = Array.from(this.hostElement.querySelectorAll("[slot='item']"));
|
|
75
|
+
const newMenuItems = menuItems.map((el) => {
|
|
76
|
+
if (el.tagName === "Z-MENU-SECTION") {
|
|
77
|
+
return el.shadowRoot.querySelector("button");
|
|
78
|
+
}
|
|
79
|
+
return el;
|
|
80
|
+
});
|
|
81
|
+
if (this.open) {
|
|
82
|
+
e.preventDefault();
|
|
83
|
+
e.stopPropagation();
|
|
84
|
+
if (e.code === KeyboardCode.ARROW_DOWN || e.code === KeyboardCode.ARROW_UP) {
|
|
85
|
+
let nextFocusableItem;
|
|
86
|
+
// INFO: reset focus on all menu items
|
|
87
|
+
newMenuItems.forEach((item) => item.setAttribute("tabindex", "-1"));
|
|
88
|
+
if (e.code === KeyboardCode.ARROW_DOWN) {
|
|
89
|
+
nextFocusableItem = this.getNextItem(newMenuItems, 1);
|
|
90
|
+
}
|
|
91
|
+
else if (e.code === KeyboardCode.ARROW_UP) {
|
|
92
|
+
nextFocusableItem = this.getNextItem(newMenuItems, -1);
|
|
93
|
+
}
|
|
94
|
+
if (nextFocusableItem) {
|
|
95
|
+
nextFocusableItem.setAttribute("tabindex", "0");
|
|
96
|
+
nextFocusableItem.focus();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else if (e.code === KeyboardCode.ESC) {
|
|
100
|
+
this.focusToParentAndCloseMenu();
|
|
101
|
+
}
|
|
102
|
+
else if (e.shiftKey && e.code === KeyboardCode.TAB) {
|
|
103
|
+
this.focusToParentAndCloseMenu();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
getNextItem(menuItems, direction) {
|
|
108
|
+
if (this.currentIndex === -1) {
|
|
109
|
+
this.currentIndex = direction === 1 ? 0 : menuItems.length - 1;
|
|
110
|
+
return menuItems[this.currentIndex];
|
|
111
|
+
}
|
|
112
|
+
this.currentIndex = (this.currentIndex + direction + menuItems.length) % menuItems.length;
|
|
113
|
+
return menuItems[this.currentIndex];
|
|
114
|
+
}
|
|
115
|
+
focusToParentAndCloseMenu() {
|
|
116
|
+
const menuButton = this.hostElement.shadowRoot.querySelector(".menu-label");
|
|
117
|
+
menuButton.focus();
|
|
118
|
+
this.currentIndex = -1;
|
|
119
|
+
this.open = false;
|
|
120
|
+
}
|
|
23
121
|
onOpenChanged() {
|
|
24
122
|
if (this.open) {
|
|
25
123
|
this.reflow(true);
|
|
@@ -32,8 +130,10 @@ const ZMenu = class {
|
|
|
32
130
|
registerInstance(this, hostRef);
|
|
33
131
|
this.opened = createEvent(this, "opened", 7);
|
|
34
132
|
this.closed = createEvent(this, "closed", 7);
|
|
133
|
+
this.currentIndex = -1;
|
|
134
|
+
this.currentCanvasOpenStatus = false;
|
|
35
135
|
this.active = undefined;
|
|
36
|
-
this.floating =
|
|
136
|
+
this.floating = true;
|
|
37
137
|
this.open = false;
|
|
38
138
|
this.verticalContext = false;
|
|
39
139
|
this.hasHeader = undefined;
|
|
@@ -44,6 +144,9 @@ const ZMenu = class {
|
|
|
44
144
|
this.onItemsChange = this.onItemsChange.bind(this);
|
|
45
145
|
}
|
|
46
146
|
componentWillLoad() {
|
|
147
|
+
const menuItems = Array.from(this.hostElement.parentElement.querySelectorAll('[slot="menu"]'));
|
|
148
|
+
this.firstElMenu = menuItems[0];
|
|
149
|
+
this.lastElMenu = menuItems[menuItems.length - 1];
|
|
47
150
|
this.checkContent();
|
|
48
151
|
}
|
|
49
152
|
/**
|
|
@@ -87,17 +190,25 @@ const ZMenu = class {
|
|
|
87
190
|
const items = this.hostElement.querySelectorAll("[slot=item]");
|
|
88
191
|
items.forEach((item) => {
|
|
89
192
|
item.setAttribute("role", "menuitem");
|
|
193
|
+
item.setAttribute("tabindex", "-1");
|
|
90
194
|
item.dataset.text = item.textContent;
|
|
91
195
|
});
|
|
92
196
|
}
|
|
197
|
+
focusFirstItemOnKeyUp() {
|
|
198
|
+
const firstElement = this.hostElement.querySelectorAll("[slot='item']")[0];
|
|
199
|
+
if (firstElement) {
|
|
200
|
+
firstElement.focus();
|
|
201
|
+
this.currentIndex = 0;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
93
204
|
renderMenuLabel() {
|
|
94
205
|
if (this.hasContent) {
|
|
95
|
-
return (h("button", { class: "menu-label", "aria-expanded": this.open ? "true" : "false", "aria-label": this.open ? "Chiudi menù" : "Apri menù", onClick: this.toggle }, h("div", { class: "menu-label-content" }, h("slot", { onSlotchange: this.onLabelSlotChange }), h("z-icon", { name: this.open ? "chevron-up" : "chevron-down" }))));
|
|
206
|
+
return (h("div", { class: "menu-wrapper" }, h("button", { class: "menu-label", "aria-expanded": this.open ? "true" : "false", "aria-label": this.open ? "Chiudi menù" : "Apri menù", onClick: this.toggle, onKeyUp: this.focusFirstItemOnKeyUp.bind(this) }, h("div", { class: "menu-label-content" }, h("slot", { onSlotchange: this.onLabelSlotChange }), h("z-icon", { name: this.open ? "chevron-up" : "chevron-down" })))));
|
|
96
207
|
}
|
|
97
|
-
return (h("div", { class: "menu-label" }, h("div", { class: "menu-label-content" }, h("slot", { onSlotchange: this.onLabelSlotChange }))));
|
|
208
|
+
return (h("div", { class: "menu-wrapper" }, h("div", { class: "menu-label" }, h("div", { class: "menu-label-content" }, h("slot", { onSlotchange: this.onLabelSlotChange })))));
|
|
98
209
|
}
|
|
99
210
|
render() {
|
|
100
|
-
return (h(Host, { key: '
|
|
211
|
+
return (h(Host, { key: 'e2ab0535d927c4ef1dbaf75746a1e7ee1a87858a' }, this.renderMenuLabel(), this.hasContent && (h("div", { key: '3f0a5da5e77bd229ff0ee232afbbf0273d4245cf', class: "content", ref: (el) => (this.content = el) }, this.hasHeader && (h("header", { key: '4264de0204704ad5f16cb1b0617532220ab121fb', class: "header" }, h("slot", { key: '6b88411ff1c87fa1d12f2e6dedcec19605921df9', name: "header", onSlotchange: this.checkContent }))), h("div", { key: '4fab11ecc9b79b5b95d3238da7f25b05b6e36ec9', class: "items", role: "menu" }, h("slot", { key: '42d1e2006d0588e337a5cb9df4688081e128c9f9', name: "item", onSlotchange: this.onItemsChange }))))));
|
|
101
212
|
}
|
|
102
213
|
get hostElement() { return getElement(this); }
|
|
103
214
|
static get watchers() { return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"z-menu.entry.js","mappings":"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","names":[],"sources":["src/components/z-menu/styles.css?tag=z-menu&encapsulation=shadow","src/components/z-menu/index.tsx"],"sourcesContent":[":host,\n::slotted(*),\n* {\n box-sizing: border-box;\n}\n\n:host {\n position: relative;\n display: inline-flex;\n flex-direction: column;\n\n --z-menu-label-color: var(--color-default-text);\n}\n\n::slotted(a) {\n text-decoration: none;\n}\n\n::slotted(*) {\n color: var(--color-default-text);\n font-family: var(--font-family-sans);\n font-weight: var(--font-rg);\n}\n\n.menu-label {\n padding: 0;\n border: 0;\n margin: 0;\n background: transparent;\n border-radius: 0;\n color: inherit;\n outline: none;\n text-align: left;\n}\n\nbutton.menu-label {\n cursor: pointer;\n}\n\n.menu-label:focus-within {\n z-index: 1;\n padding-right: calc(var(--space-unit) * 0.5);\n padding-left: calc(var(--space-unit) * 0.5);\n margin-right: calc(var(--space-unit) * -0.5);\n margin-left: calc(var(--space-unit) * -0.5);\n box-shadow: var(--shadow-focus-primary);\n}\n\n.menu-label .menu-label-content {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n:host(:is([active], [open])) .menu-label-content,\n.menu-label:focus-within .menu-label-content {\n font-weight: var(--font-bd);\n}\n\n:host(:is([active], [open])) .menu-label-content ::slotted(*),\n.menu-label:focus-within .menu-label-content ::slotted(*) {\n letter-spacing: normal;\n}\n\n:host .menu-label .menu-label-content ::slotted(*:not([slot]):focus:focus-visible) {\n box-shadow: none !important;\n}\n\n/* border */\n:host(:is([active], [open], [vertical-context])) .menu-label .menu-label-content::after,\n.menu-label .menu-label-content:hover::after,\n.menu-label:focus-within .menu-label-content::after {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n content: \"\";\n pointer-events: none;\n}\n\n:host([vertical-context]) .menu-label-content::after {\n height: var(--border-size-small);\n background-color: var(--color-surface03);\n}\n\n:host(:is([active], [open])) .menu-label .menu-label-content::after,\n.menu-label .menu-label-content:hover::after,\n.menu-label:focus-within .menu-label-content::after {\n height: var(--border-size-large);\n background-color: var(--color-secondary01);\n}\n\n/* Prevents layout shifts on font-weight changes.\nThe trick is to put an hidden copy of the text already set to bold,\nso the needed space is correctly calculated before any hover/active state changes the\nfont-weight of the real text.\nThe hidden text has an height of 0px so it can expand the width without changing the height\nwhen placed below the real text using `flex-direction: column`. */\n::slotted([data-text])::after {\n height: 0;\n content: attr(data-text);\n content: attr(data-text) / \"\";\n font-weight: var(--font-bd);\n letter-spacing: normal;\n pointer-events: none;\n user-select: none;\n visibility: hidden;\n}\n\n@media speech {\n ::slotted([data-text])::after {\n display: none;\n }\n}\n\n::slotted([data-text]) {\n display: inline-flex;\n flex-direction: column;\n}\n\n.menu-label .menu-label-content ::slotted(*) {\n display: inline-flex;\n width: 100%;\n margin: 0;\n appearance: none;\n color: var(--z-menu-label-color);\n font-family: var(--font-family-sans);\n font-size: var(--font-size-5);\n font-weight: inherit;\n letter-spacing: 0.36px; /* increasing the letter spacing of the regular text helps reduce the size difference between regular and bold text */\n line-height: 1.2;\n outline: none;\n}\n\n.menu-label .menu-label-content ::slotted(*),\n.menu-label .menu-label-content z-icon {\n padding: var(--space-unit) 0;\n}\n\n.menu-label .menu-label-content z-icon {\n margin-left: calc(var(--space-unit) * 1.5);\n fill: currentcolor;\n}\n\n.content {\n background: var(--color-surface01);\n}\n\n:host(:not([open])) .content {\n display: none;\n}\n\n:host([floating]) .content {\n position: absolute;\n top: 100%;\n left: 0;\n width: 375px;\n min-width: 100%;\n max-width: 100vw;\n padding: var(--space-unit) var(--space-unit) calc(var(--space-unit) * 2);\n box-shadow: var(--shadow-2);\n}\n\n:host(:not([floating])) .content {\n width: 100%;\n}\n\n.header {\n display: flex;\n align-items: center;\n padding: var(--space-unit) 0 calc(var(--space-unit) * 2);\n}\n\n.header ::slotted(img[slot=\"header\"]) {\n width: calc(var(--space-unit) * 11.25);\n height: auto;\n object-fit: contain;\n}\n\n.header ::slotted([slot=\"header\"]:not(:first-child)) {\n margin: auto 0;\n margin-left: calc(var(--space-unit) * 2.5);\n font-size: var(--font-size-3);\n font-weight: var(--font-sb);\n line-height: 1.5;\n}\n\n.items {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n background: inherit;\n}\n\n.items > ::slotted([slot=\"item\"]) {\n width: 100%;\n margin: 0;\n font-size: var(--font-size-3);\n line-height: 1.25;\n outline: none;\n}\n\n.items > ::slotted([slot=\"item\"]:focus:focus-visible) {\n box-shadow: var(--shadow-focus-primary);\n}\n\n.items > ::slotted([slot=\"item\"]:not(z-menu-section)) {\n padding: calc(var(--space-unit) * 2) calc(var(--space-unit) * 0.5);\n border-bottom: var(--border-size-small) solid var(--color-surface05);\n}\n\n.items > ::slotted([slot=\"item\"]:hover),\n.items > ::slotted([slot=\"item\"]:focus:focus-visible),\n.items > ::slotted([slot=\"item\"]:active) {\n border-color: var(--color-secondary01);\n font-weight: var(--font-bd);\n}\n","import {Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h} from \"@stencil/core\";\n\n/**\n * @slot - Menu label\n * @slot header - Header to display as the first entry of the open menu.\n * @slot item - Single entry of the section. Can be slotted multiple times to insert items onto the menu. Use `z-menu-section` for submenus.\n * @cssprop --z-menu-label-color - Color of the label's text.\n */\n@Component({\n tag: \"z-menu\",\n styleUrl: \"styles.css\",\n shadow: true,\n})\nexport class ZMenu {\n @Element() hostElement: HTMLZMenuElement;\n\n /** Flag to set the active status of the menu. */\n @Prop({reflect: true})\n active?: boolean;\n\n /**\n * Flag to set the display mode of the list.\n * If true, the list will be absolutely positioned under the menu label,\n * stacked beneath it otherwise.\n */\n @Prop({reflect: true})\n floating? = false;\n\n /** The opening state of the menu. */\n @Prop({mutable: true, reflect: true})\n open = false;\n\n /**\n * Tells the component that it's placed in a vertical context with other `ZMenu`s (e.g. in the ZAppHeader's offcanvas).\n * A small border is placed under it as a separator from other elements.\n */\n @Prop({reflect: true})\n verticalContext = false;\n\n @State()\n hasHeader: boolean;\n\n @State()\n hasContent: boolean;\n\n private content: HTMLElement;\n\n /** Animation frame request id. */\n private raf: number;\n\n /** The menu has been opened. */\n @Event()\n opened: EventEmitter;\n\n /** The menu has been closed. */\n @Event()\n closed: EventEmitter;\n\n private toggle(): void {\n if (!this.hasContent) {\n return;\n }\n\n this.open = !this.open;\n this.open ? this.opened.emit() : this.closed.emit();\n }\n\n /** Close the floating list when a click is performed outside of this Element. */\n @Listen(\"click\", {target: \"document\"})\n handleClick(ev: MouseEvent): void {\n if (!this.floating || !this.open || this.hostElement.contains(ev.target as Element)) {\n return;\n }\n\n this.reflow();\n this.open = false;\n this.closed.emit();\n }\n\n @Watch(\"open\")\n onOpenChanged(): void {\n if (this.open) {\n this.reflow(true);\n } else {\n cancelAnimationFrame(this.raf);\n }\n }\n\n constructor() {\n this.toggle = this.toggle.bind(this);\n this.checkContent = this.checkContent.bind(this);\n this.onLabelSlotChange = this.onLabelSlotChange.bind(this);\n this.onItemsChange = this.onItemsChange.bind(this);\n }\n\n componentWillLoad(): void {\n this.checkContent();\n }\n\n /**\n * Sets slotted item text as `data-text` attribute value, to let CSS use it through `attr()`.\n * @param ev Slotchange event\n */\n private onLabelSlotChange(ev: Event): void {\n const labelElement = (ev.target as HTMLSlotElement).assignedElements()[0] as HTMLElement;\n labelElement.dataset.text = labelElement?.textContent;\n }\n\n /**\n * Correctly set position of the floating menu in order to prevent overflow.\n * @param live Should run the method on every refresh frame.\n */\n private reflow(live = false): void {\n if (this.content) {\n const {style} = this.content;\n const {left} = this.hostElement.getBoundingClientRect();\n const widthPx = getComputedStyle(this.content).width;\n const width = widthPx ? parseFloat(widthPx.replace(\"px\", \"\")) : 375;\n const safeScrollbarSpace = 30;\n style.left = `${Math.min(window.innerWidth - left - width - safeScrollbarSpace, 0)}px`;\n }\n if (live) {\n this.raf = requestAnimationFrame(this.reflow.bind(this, live));\n }\n }\n\n /**\n * Check if some content slot is set.\n */\n private checkContent(): void {\n this.hasHeader = !!this.hostElement.querySelectorAll(\"[slot=header]\").length;\n this.hasContent = !!this.hostElement.querySelectorAll(\"[slot=item]\").length || this.hasHeader;\n }\n\n /**\n * Set `menuitem` role to all menu items.\n * Set the item's inner text to the `data-text` attribute (this is for using bold text avoiding layout shifts).\n */\n private onItemsChange(): void {\n this.checkContent();\n const items = this.hostElement.querySelectorAll<HTMLElement>(\"[slot=item]\");\n items.forEach((item) => {\n item.setAttribute(\"role\", \"menuitem\");\n item.dataset.text = item.textContent;\n });\n }\n\n private renderMenuLabel(): HTMLButtonElement | HTMLDivElement {\n if (this.hasContent) {\n return (\n <button\n class=\"menu-label\"\n aria-expanded={this.open ? \"true\" : \"false\"}\n aria-label={this.open ? \"Chiudi menù\" : \"Apri menù\"}\n onClick={this.toggle}\n >\n <div class=\"menu-label-content\">\n <slot onSlotchange={this.onLabelSlotChange}></slot>\n <z-icon name={this.open ? \"chevron-up\" : \"chevron-down\"} />\n </div>\n </button>\n );\n }\n\n return (\n <div class=\"menu-label\">\n <div class=\"menu-label-content\">\n <slot onSlotchange={this.onLabelSlotChange}></slot>\n </div>\n </div>\n );\n }\n\n render(): HTMLZMenuElement {\n return (\n <Host>\n {this.renderMenuLabel()}\n\n {this.hasContent && (\n <div\n class=\"content\"\n ref={(el) => (this.content = el)}\n >\n {this.hasHeader && (\n <header class=\"header\">\n <slot\n name=\"header\"\n onSlotchange={this.checkContent}\n ></slot>\n </header>\n )}\n\n <div\n class=\"items\"\n role=\"menu\"\n >\n <slot\n name=\"item\"\n onSlotchange={this.onItemsChange}\n ></slot>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"z-menu.entry.js","mappings":"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","names":[],"sources":["src/components/z-menu/styles.css?tag=z-menu&encapsulation=shadow","src/components/z-menu/index.tsx"],"sourcesContent":[":host,\n::slotted(*),\n* {\n box-sizing: border-box;\n outline: none;\n}\n\n:host {\n position: relative;\n display: inline-flex;\n flex-direction: column;\n flex-shrink: 0;\n\n --z-menu-label-color: var(--color-default-text);\n}\n\n::slotted(a) {\n text-decoration: none;\n}\n\n::slotted(*) {\n color: var(--color-default-text);\n font-family: var(--font-family-sans);\n font-weight: var(--font-rg);\n}\n\n.menu-label {\n width: 100%;\n padding: 0;\n border: 0;\n margin: 0;\n background: transparent;\n border-radius: 0;\n color: inherit;\n outline: none;\n text-align: left;\n}\n\n.menu-wrapper {\n display: flex;\n align-items: center;\n}\n\n.menu-wrapper:focus-visible,\n.menu-label-content:focus-visible,\nbutton:focus-visible {\n outline: none;\n}\n\nbutton.menu-label {\n cursor: pointer;\n}\n\n.menu-label:focus-within {\n z-index: 1;\n box-shadow: var(--shadow-focus-primary);\n}\n\n.menu-label .menu-label-content {\n position: relative;\n display: flex;\n height: 30px;\n align-items: center;\n}\n\n:host(:is([active], [open])) .menu-label-content,\n.menu-label:focus-within .menu-label-content {\n color: var(--color-primary01);\n font-weight: var(--font-bd);\n}\n\n:host(:is([active], [open])) .menu-label-content ::slotted(*),\n.menu-label:focus-within .menu-label-content ::slotted(*),\n.menu-label:focus-within .menu-label-content z-icon {\n color: var(--color-primary01);\n letter-spacing: normal;\n}\n\n:host .menu-label .menu-label-content ::slotted(*:not([slot]):focus:focus-visible) {\n box-shadow: none !important;\n}\n\n/* border */\n:host(:is([active], [open], [vertical-context])) .menu-label .menu-label-content::after,\n.menu-label .menu-label-content:hover::after,\n.menu-label:focus-within .menu-label-content::after {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n content: \"\";\n pointer-events: none;\n}\n\n:host([vertical-context]) .menu-label-content::after {\n height: var(--border-size-small);\n background-color: var(--color-surface03);\n}\n\n:host(:is([active], [open])) .menu-label .menu-label-content::after,\n.menu-label .menu-label-content:hover::after,\n.menu-label:focus-within .menu-label-content::after {\n height: var(--border-size-large);\n background-color: var(--color-secondary01);\n}\n\n/* Prevents layout shifts on font-weight changes.\nThe trick is to put an hidden copy of the text already set to bold,\nso the needed space is correctly calculated before any hover/active state changes the\nfont-weight of the real text.\nThe hidden text has an height of 0px so it can expand the width without changing the height\nwhen placed below the real text using `flex-direction: column`. */\n::slotted([data-text])::after {\n height: 0;\n content: attr(data-text);\n content: attr(data-text) / \"\";\n font-weight: var(--font-bd);\n letter-spacing: normal;\n pointer-events: none;\n user-select: none;\n visibility: hidden;\n}\n\n@media speech {\n ::slotted([data-text])::after {\n display: none;\n }\n}\n\n::slotted([data-text]) {\n display: inline-flex;\n flex-direction: column;\n}\n\n.menu-label .menu-label-content ::slotted(*) {\n display: inline-flex;\n width: 100%;\n min-width: fit-content;\n margin: 0;\n appearance: none;\n color: var(--z-menu-label-color);\n font-family: var(--font-family-sans);\n font-size: var(--font-size-3);\n font-weight: inherit;\n outline: none;\n}\n\n.menu-label .menu-label-content ::slotted(*),\n.menu-label .menu-label-content z-icon {\n padding: var(--space-unit) 0;\n}\n\n.menu-label .menu-label-content z-icon {\n margin-left: calc(var(--space-unit) * 1.5);\n fill: currentcolor;\n}\n\n.content {\n background: var(--color-surface01);\n}\n\n:host(:not([open])) .content {\n display: none;\n}\n\n:host([floating]) .content {\n position: absolute;\n top: 100%;\n left: 0;\n width: 375px;\n min-width: 100%;\n max-width: 100vw;\n padding: var(--space-unit) var(--space-unit) calc(var(--space-unit) * 2);\n box-shadow: var(--shadow-2);\n}\n\n:host(:not([floating])) .content {\n width: 100%;\n}\n\n.header {\n display: flex;\n align-items: center;\n padding: var(--space-unit) 0 calc(var(--space-unit) * 2);\n}\n\n.header ::slotted(img[slot=\"header\"]) {\n width: calc(var(--space-unit) * 11.25);\n height: auto;\n object-fit: contain;\n}\n\n.header ::slotted([slot=\"header\"]:not(:first-child)) {\n margin: auto 0;\n margin-left: calc(var(--space-unit) * 2.5);\n font-size: var(--font-size-3);\n font-weight: var(--font-sb);\n line-height: 1.5;\n}\n\n.items {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n background: inherit;\n}\n\n.items > ::slotted([slot=\"item\"]) {\n width: 100%;\n margin: 0;\n font-size: var(--font-size-3);\n line-height: 1.25;\n outline: none;\n}\n\n.items > ::slotted([slot=\"item\"]:focus:focus-visible) {\n box-shadow: var(--shadow-focus-primary);\n}\n\n.items > ::slotted([slot=\"item\"]:not(z-menu-section)) {\n padding: calc(var(--space-unit) * 2) calc(var(--space-unit) * 0.5);\n border-bottom: var(--border-size-small) solid var(--color-surface05);\n}\n\n.items > ::slotted([slot=\"item\"]:hover),\n.items > ::slotted([slot=\"item\"]:focus:focus-visible),\n.items > ::slotted([slot=\"item\"]:active) {\n border-color: var(--color-secondary01);\n font-weight: var(--font-bd);\n}\n","import {Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h} from \"@stencil/core\";\nimport {KeyboardCode} from \"../../beans\";\n\n/**\n * @slot - Menu label\n * @slot header - Header to display as the first entry of the open menu.\n * @slot item - Single entry of the section. Can be slotted multiple times to insert items onto the menu. Use `z-menu-section` for submenus.\n * @cssprop --z-menu-label-color - Color of the label's text.\n */\n@Component({\n tag: \"z-menu\",\n styleUrl: \"styles.css\",\n shadow: true,\n})\nexport class ZMenu {\n @Element() hostElement: HTMLZMenuElement;\n\n /** Flag to set the active status of the menu. */\n @Prop({reflect: true})\n active?: boolean;\n\n /**\n * Flag to set the display mode of the list.\n * If true, the list will be absolutely positioned under the menu label,\n * stacked beneath it otherwise.\n */\n @Prop({reflect: true})\n floating? = true;\n\n /** The opening state of the menu. */\n @Prop({mutable: true, reflect: true})\n open = false;\n\n /**\n * Tells the component that it's placed in a vertical context with other `ZMenu`s (e.g. in the ZAppHeader's offcanvas).\n * A small border is placed under it as a separator from other elements.\n */\n @Prop({reflect: true})\n verticalContext = false;\n\n @State()\n hasHeader: boolean;\n\n @State()\n hasContent: boolean;\n\n private content: HTMLElement;\n\n /** Animation frame request id. */\n private raf: number;\n\n /** The menu has been opened. */\n @Event()\n opened: EventEmitter;\n\n /** The menu has been closed. */\n @Event()\n closed: EventEmitter;\n\n private currentIndex = -1;\n\n private currentCanvasOpenStatus = false;\n\n private firstElMenu: HTMLMenuElement;\n\n private lastElMenu: HTMLMenuElement;\n\n private toggle(): void {\n if (!this.hasContent) {\n return;\n }\n\n this.open = !this.open;\n this.open ? this.opened.emit() : this.closed.emit();\n }\n\n /** Close the floating list when a click is performed outside of this Element. */\n @Listen(\"click\", {target: \"document\"})\n handleClick(ev: MouseEvent): void {\n if (!this.floating || !this.open || this.hostElement.contains(ev.target as Element)) {\n return;\n }\n\n this.reflow();\n this.open = false;\n this.closed.emit();\n }\n\n @Listen(\"canvasOpenStatusChanged\", {target: \"document\"})\n canvasOpenStatusChanged(e: CustomEvent): void {\n this.currentCanvasOpenStatus = e.detail;\n }\n\n @Listen(\"keydown\")\n handleKeyDown(e: KeyboardEvent): void {\n if (e.code === KeyboardCode.ENTER) {\n return;\n }\n\n if (this.open && !this.currentCanvasOpenStatus) {\n this.handleNavigationSideArrow(e);\n }\n\n this.handleArrowsNav(e);\n }\n\n private handleNavigationSideArrow(e: KeyboardEvent): void {\n if (e.code !== KeyboardCode.ARROW_RIGHT && e.code !== KeyboardCode.ARROW_LEFT) {\n return;\n }\n\n if (e.code === KeyboardCode.ARROW_RIGHT) {\n const nextElement = this.hostElement.nextElementSibling;\n\n if (!nextElement) {\n const firstMenuItem = this.firstElMenu.shadowRoot.querySelector(\".menu-label\") as HTMLElement;\n firstMenuItem.focus();\n this.open = false;\n }\n\n if (nextElement && nextElement.tagName === \"Z-MENU\") {\n const menuButton = nextElement.shadowRoot.querySelector(\".menu-label\") as HTMLElement;\n menuButton.focus();\n\n if (nextElement.children.length > 1) {\n nextElement.setAttribute(\"open\", \"true\");\n }\n this.open = false;\n }\n } else if (e.code === KeyboardCode.ARROW_LEFT) {\n const prevElement = this.hostElement.previousElementSibling;\n if (prevElement.tagName !== \"Z-MENU\") {\n const lastElMenuItem = this.lastElMenu.shadowRoot.querySelector(\".menu-label\") as HTMLElement;\n lastElMenuItem.focus();\n this.open = false;\n }\n if (prevElement && prevElement.tagName === \"Z-MENU\") {\n const menuButton = prevElement.shadowRoot.querySelector(\".menu-label\") as HTMLElement;\n menuButton.focus();\n if (prevElement.children.length > 1) {\n prevElement.setAttribute(\"open\", \"true\");\n }\n this.open = false;\n }\n }\n }\n\n private handleArrowsNav(e: KeyboardEvent): void {\n const menuItems = Array.from(this.hostElement.querySelectorAll(\"[slot='item']\")) as HTMLElement[];\n const newMenuItems = menuItems.map((el) => {\n if (el.tagName === \"Z-MENU-SECTION\") {\n return el.shadowRoot.querySelector(\"button\");\n }\n\n return el;\n });\n\n if (this.open) {\n e.preventDefault();\n e.stopPropagation();\n\n if (e.code === KeyboardCode.ARROW_DOWN || e.code === KeyboardCode.ARROW_UP) {\n let nextFocusableItem: HTMLElement;\n // INFO: reset focus on all menu items\n newMenuItems.forEach((item: HTMLElement) => item.setAttribute(\"tabindex\", \"-1\"));\n\n if (e.code === KeyboardCode.ARROW_DOWN) {\n nextFocusableItem = this.getNextItem(newMenuItems, 1);\n } else if (e.code === KeyboardCode.ARROW_UP) {\n nextFocusableItem = this.getNextItem(newMenuItems, -1);\n }\n\n if (nextFocusableItem) {\n nextFocusableItem.setAttribute(\"tabindex\", \"0\");\n nextFocusableItem.focus();\n }\n } else if (e.code === KeyboardCode.ESC) {\n this.focusToParentAndCloseMenu();\n } else if (e.shiftKey && e.code === KeyboardCode.TAB) {\n this.focusToParentAndCloseMenu();\n }\n }\n }\n\n private getNextItem(menuItems: HTMLElement[], direction: number): HTMLElement {\n if (this.currentIndex === -1) {\n this.currentIndex = direction === 1 ? 0 : menuItems.length - 1;\n\n return menuItems[this.currentIndex];\n }\n\n this.currentIndex = (this.currentIndex + direction + menuItems.length) % menuItems.length;\n\n return menuItems[this.currentIndex];\n }\n\n private focusToParentAndCloseMenu(): void {\n const menuButton = this.hostElement.shadowRoot.querySelector(\".menu-label\") as HTMLElement;\n menuButton.focus();\n this.currentIndex = -1;\n this.open = false;\n }\n\n @Watch(\"open\")\n onOpenChanged(): void {\n if (this.open) {\n this.reflow(true);\n } else {\n cancelAnimationFrame(this.raf);\n }\n }\n\n constructor() {\n this.toggle = this.toggle.bind(this);\n this.checkContent = this.checkContent.bind(this);\n this.onLabelSlotChange = this.onLabelSlotChange.bind(this);\n this.onItemsChange = this.onItemsChange.bind(this);\n }\n\n componentWillLoad(): void {\n const menuItems = Array.from(this.hostElement.parentElement.querySelectorAll('[slot=\"menu\"]'));\n this.firstElMenu = menuItems[0] as HTMLMenuElement;\n this.lastElMenu = menuItems[menuItems.length - 1] as HTMLMenuElement;\n\n this.checkContent();\n }\n\n /**\n * Sets slotted item text as `data-text` attribute value, to let CSS use it through `attr()`.\n * @param ev Slotchange event\n */\n private onLabelSlotChange(ev: Event): void {\n const labelElement = (ev.target as HTMLSlotElement).assignedElements()[0] as HTMLElement;\n labelElement.dataset.text = labelElement?.textContent;\n }\n\n /**\n * Correctly set position of the floating menu in order to prevent overflow.\n * @param live Should run the method on every refresh frame.\n */\n private reflow(live = false): void {\n if (this.content) {\n const {style} = this.content;\n const {left} = this.hostElement.getBoundingClientRect();\n const widthPx = getComputedStyle(this.content).width;\n const width = widthPx ? parseFloat(widthPx.replace(\"px\", \"\")) : 375;\n const safeScrollbarSpace = 30;\n style.left = `${Math.min(window.innerWidth - left - width - safeScrollbarSpace, 0)}px`;\n }\n if (live) {\n this.raf = requestAnimationFrame(this.reflow.bind(this, live));\n }\n }\n\n /**\n * Check if some content slot is set.\n */\n private checkContent(): void {\n this.hasHeader = !!this.hostElement.querySelectorAll(\"[slot=header]\").length;\n this.hasContent = !!this.hostElement.querySelectorAll(\"[slot=item]\").length || this.hasHeader;\n }\n\n /**\n * Set `menuitem` role to all menu items.\n * Set the item's inner text to the `data-text` attribute (this is for using bold text avoiding layout shifts).\n */\n private onItemsChange(): void {\n this.checkContent();\n const items = this.hostElement.querySelectorAll<HTMLElement>(\"[slot=item]\");\n items.forEach((item) => {\n item.setAttribute(\"role\", \"menuitem\");\n item.setAttribute(\"tabindex\", \"-1\");\n item.dataset.text = item.textContent;\n });\n }\n\n private focusFirstItemOnKeyUp(): void {\n const firstElement = this.hostElement.querySelectorAll(\"[slot='item']\")[0] as HTMLElement;\n if (firstElement) {\n firstElement.focus();\n this.currentIndex = 0;\n }\n }\n\n private renderMenuLabel(): HTMLButtonElement | HTMLDivElement {\n if (this.hasContent) {\n return (\n <div class=\"menu-wrapper\">\n <button\n class=\"menu-label\"\n aria-expanded={this.open ? \"true\" : \"false\"}\n aria-label={this.open ? \"Chiudi menù\" : \"Apri menù\"}\n onClick={this.toggle}\n onKeyUp={this.focusFirstItemOnKeyUp.bind(this)}\n >\n <div class=\"menu-label-content\">\n <slot onSlotchange={this.onLabelSlotChange}></slot>\n <z-icon name={this.open ? \"chevron-up\" : \"chevron-down\"} />\n </div>\n </button>\n </div>\n );\n }\n\n return (\n <div class=\"menu-wrapper\">\n <div class=\"menu-label\">\n <div class=\"menu-label-content\">\n <slot onSlotchange={this.onLabelSlotChange}></slot>\n </div>\n </div>\n </div>\n );\n }\n\n render(): HTMLZMenuElement {\n return (\n <Host>\n {this.renderMenuLabel()}\n\n {this.hasContent && (\n <div\n class=\"content\"\n ref={(el) => (this.content = el)}\n >\n {this.hasHeader && (\n <header class=\"header\">\n <slot\n name=\"header\"\n onSlotchange={this.checkContent}\n ></slot>\n </header>\n )}\n\n <div\n class=\"items\"\n role=\"menu\"\n >\n <slot\n name=\"item\"\n onSlotchange={this.onItemsChange}\n ></slot>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h } from './index-
|
|
2
|
-
import { o as AlertType } from './index-
|
|
1
|
+
import { r as registerInstance, c as createEvent, h } from './index-a2130b6a.js';
|
|
2
|
+
import { o as AlertType } from './index-b7dbacb4.js';
|
|
3
3
|
|
|
4
4
|
const stylesCss = ":host{position:absolute;z-index:2;top:0;left:0;width:100%;font-family:var(--font-family-sans);font-weight:var(--font-rg)}:host>z-alert{height:calc(var(--space-unit) * 6)}.relative-container{position:relative;display:grid;align-items:center;padding:0;grid-column-gap:var(--space-unit);grid-template-columns:18px auto 46px;grid-template-rows:1fr;outline:none}.relative-container::-moz-focus-inner{border:0}.alert-external-wrapper.remove-alert{border:var(--border-size-medium) solid var(--color-surface02);border-top:none}:host div.add-alert{background:var(--color-success-inverse)}:host div.remove-alert{background:var(--color-warning-inverse)}:host div>.content-text{color:var(--color-surface05);font-size:14px;letter-spacing:0.16px;line-height:20px}:host div>.content-action{height:20px;color:var(--color-primary01);cursor:pointer;font-size:12px;font-weight:var(--font-sb);letter-spacing:0.32px;line-height:20px}:host div>z-icon{justify-self:center}";
|
|
5
5
|
const ZMyzCardAlertStyle0 = stylesCss;
|
|
@@ -52,7 +52,7 @@ const ZMyzCardAlert = class {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
render() {
|
|
55
|
-
return (h("div", { key: '
|
|
55
|
+
return (h("div", { key: 'e488b304fcdd145b3ce0ba375d36a997a646eec9', class: "alert-external-wrapper " + this.retrieveClass() }, h("z-alert", { key: '256f5d68375a9c8c187785cfdbd6272b8cc449f9', type: this.getAlertType() }, h("div", { key: '9f3d7e43b28f3fc92bf1e627475af9a9f0464799', class: "relative-container" }, h("z-icon", { key: '6c9e26abc686e0d6020d7c6398a8575e6e8ac543', name: this.iconname, width: 18, height: 18, class: this.retrieveClass() }), h("span", { key: 'b4b997286c4e5250c5b856f0d375ad49162c92df', class: "content-text" }, this.contenttext), this.actiontext && !!this.actiontext.trim().length && (h("span", { key: '18020fe9e8180577a168a25c0ba17464cedf70c0', role: "button", tabindex: "0", class: "content-action", onClick: (e) => {
|
|
56
56
|
this.handleActionButtonClick(e);
|
|
57
57
|
}, onKeyPress: (e) => {
|
|
58
58
|
this.handleSpaceKeyPress(e);
|