@ukic/web-components 3.4.0 → 3.6.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/dist/cjs/core.cjs.js +1 -1
- package/dist/cjs/{helpers-fc4016d2.js → helpers-8217daf4.js} +42 -32
- package/dist/cjs/helpers-8217daf4.js.map +1 -0
- package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
- package/dist/cjs/ic-alert.cjs.entry.js +8 -8
- package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
- package/dist/cjs/ic-badge.cjs.entry.js +13 -4
- package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js +143 -148
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-card-vertical.cjs.entry.js +1 -1
- package/dist/cjs/ic-checkbox-group.cjs.entry.js +5 -5
- package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox.cjs.entry.js +9 -8
- package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-chip.cjs.entry.js +1 -1
- package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
- package/dist/cjs/ic-data-row.cjs.entry.js +3 -3
- package/dist/cjs/ic-dialog.cjs.entry.js +3 -3
- package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-divider.cjs.entry.js +1 -1
- package/dist/cjs/ic-empty-state.cjs.entry.js +3 -3
- package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-footer-link.cjs.entry.js +4 -4
- package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer.cjs.entry.js +1 -1
- package/dist/cjs/ic-hero.cjs.entry.js +5 -5
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +6 -6
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +19 -14
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-label_2.cjs.entry.js +36 -13
- package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-link.cjs.entry.js +3 -3
- package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
- package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-button.cjs.entry.js +40 -40
- package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js +7 -4
- package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +5 -8
- package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-menu.cjs.entry.js +5 -5
- package/dist/cjs/ic-page-header.cjs.entry.js +7 -7
- package/dist/cjs/ic-pagination-item.cjs.entry.js +2 -2
- package/dist/cjs/ic-pagination.cjs.entry.js +5 -5
- package/dist/cjs/ic-popover-menu.cjs.entry.js +16 -11
- package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js +6 -6
- package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js +5 -5
- package/dist/cjs/ic-search-bar.cjs.entry.js +29 -13
- package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
- package/dist/cjs/ic-select.cjs.entry.js +9 -9
- package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-side-navigation.cjs.entry.js +16 -17
- package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
- package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
- package/dist/cjs/ic-status-tag.cjs.entry.js +3 -3
- package/dist/cjs/ic-step.cjs.entry.js +14 -14
- package/dist/cjs/ic-stepper.cjs.entry.js +3 -3
- package/dist/cjs/ic-switch.cjs.entry.js +6 -6
- package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
- package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
- package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
- package/dist/cjs/ic-tab.cjs.entry.js +1 -1
- package/dist/cjs/ic-text-field.cjs.entry.js +9 -9
- package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-theme.cjs.entry.js +2 -2
- package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
- package/dist/cjs/ic-toast.cjs.entry.js +4 -4
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js +3 -3
- package/dist/cjs/ic-toggle-button.cjs.entry.js +3 -3
- package/dist/cjs/ic-top-navigation.cjs.entry.js +15 -9
- package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-typography.cjs.entry.js +3 -3
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/ag-theme-icds.css +24 -4
- package/dist/collection/components/ic-alert/ic-alert.js +7 -7
- package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
- package/dist/collection/components/ic-badge/ic-badge.js +12 -3
- package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
- package/dist/collection/components/ic-button/ic-button.css +8 -0
- package/dist/collection/components/ic-button/ic-button.js +3 -3
- package/dist/collection/components/ic-button/ic-button.js.map +1 -1
- package/dist/collection/components/ic-button/ic-button.stories.js +13 -5
- package/dist/collection/components/ic-checkbox/ic-checkbox.css +4 -1
- package/dist/collection/components/ic-checkbox/ic-checkbox.js +7 -6
- package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.css +21 -2
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +6 -3
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +22 -0
- package/dist/collection/components/ic-data-list/ic-data-list.js +2 -2
- package/dist/collection/components/ic-data-row/ic-data-row.js +2 -2
- package/dist/collection/components/ic-dialog/ic-dialog.js +2 -2
- package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
- package/dist/collection/components/ic-dialog/ic-dialog.stories.js +39 -30
- package/dist/collection/components/ic-divider/ic-divider.stories.js +3 -3
- package/dist/collection/components/ic-empty-state/ic-empty-state.js +2 -2
- package/dist/collection/components/ic-footer/ic-footer.stories.js +1 -1
- package/dist/collection/components/ic-footer-link/ic-footer-link.css +1 -1
- package/dist/collection/components/ic-footer-link/ic-footer-link.js +2 -2
- package/dist/collection/components/ic-hero/ic-hero.js +4 -4
- package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +5 -5
- package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +3 -3
- package/dist/collection/components/ic-input-container/ic-input-container.js +2 -2
- package/dist/collection/components/ic-input-label/ic-input-label.css +3 -2
- package/dist/collection/components/ic-input-label/ic-input-label.js +31 -8
- package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
- package/dist/collection/components/ic-input-validation/ic-input-validation.js +3 -3
- package/dist/collection/components/ic-link/ic-link.css +6 -2
- package/dist/collection/components/ic-link/ic-link.js +1 -1
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +3 -3
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +208 -214
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.stories.js +5 -5
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.types.js.map +1 -1
- package/dist/collection/components/ic-menu/ic-menu.js +56 -10
- package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
- package/dist/collection/components/ic-menu-group/ic-menu-group.js +1 -1
- package/dist/collection/components/ic-navigation-button/ic-navigation-button.css +8 -0
- package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +53 -47
- package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +26 -4
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +7 -6
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +3 -6
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -4
- package/dist/collection/components/ic-page-header/ic-page-header.js +6 -6
- package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
- package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +1 -1
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.css +0 -1
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +57 -11
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
- package/dist/collection/components/ic-radio-group/ic-radio-group.css +10 -2
- package/dist/collection/components/ic-radio-group/ic-radio-group.js +7 -4
- package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
- package/dist/collection/components/ic-radio-group/ic-radio-group.stories.js +22 -0
- package/dist/collection/components/ic-radio-option/ic-radio-option.js +4 -4
- package/dist/collection/components/ic-search-bar/ic-search-bar.css +1 -1
- package/dist/collection/components/ic-search-bar/ic-search-bar.js +53 -11
- package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
- package/dist/collection/components/ic-search-bar/ic-search-bar.stories.js +20 -10
- package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
- package/dist/collection/components/ic-select/ic-select.css +2 -2
- package/dist/collection/components/ic-select/ic-select.js +8 -7
- package/dist/collection/components/ic-select/ic-select.js.map +1 -1
- package/dist/collection/components/ic-select/ic-select_(multi).stories.js +21 -13
- package/dist/collection/components/ic-select/ic-select_(searchable).stories.js +21 -13
- package/dist/collection/components/ic-select/ic-select_(single).stories.js +17 -9
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +15 -16
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.stories.js +143 -0
- package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
- package/dist/collection/components/ic-skip-link/ic-skip-link.js +2 -2
- package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
- package/dist/collection/components/ic-step/ic-step.js +13 -13
- package/dist/collection/components/ic-stepper/ic-stepper.js +2 -2
- package/dist/collection/components/ic-switch/ic-switch.css +5 -11
- package/dist/collection/components/ic-switch/ic-switch.js +5 -4
- package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
- package/dist/collection/components/ic-switch/ic-switch.stories.js +8 -1
- package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -1
- package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
- package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
- package/dist/collection/components/ic-text-field/ic-text-field.css +1 -1
- package/dist/collection/components/ic-text-field/ic-text-field.js +8 -7
- package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
- package/dist/collection/components/ic-text-field/ic-text-field.stories.js +12 -1
- package/dist/collection/components/ic-theme/ic-theme.js +1 -1
- package/dist/collection/components/ic-toast/ic-toast.js +3 -3
- package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
- package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +2 -2
- package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +2 -2
- package/dist/collection/components/ic-tooltip/ic-tooltip.js +11 -2
- package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
- package/dist/collection/components/ic-tooltip/ic-tooltip.stories.js +33 -0
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +1 -0
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +13 -7
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.stories.js +19 -2
- package/dist/collection/components/ic-typography/ic-typography.js +2 -2
- package/dist/collection/patterns/z-index.stories.js +2 -1
- package/dist/collection/utils/constants.js +1 -1
- package/dist/collection/utils/constants.js.map +1 -1
- package/dist/collection/utils/helpers.js +39 -30
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/components/helpers.js +41 -32
- package/dist/components/helpers.js.map +1 -1
- package/dist/components/ic-alert.js +7 -7
- package/dist/components/ic-alert.js.map +1 -1
- package/dist/components/ic-badge.js +12 -3
- package/dist/components/ic-badge.js.map +1 -1
- package/dist/components/ic-button2.js +4 -4
- package/dist/components/ic-button2.js.map +1 -1
- package/dist/components/ic-checkbox-group.js +4 -4
- package/dist/components/ic-checkbox-group.js.map +1 -1
- package/dist/components/ic-checkbox.js +8 -7
- package/dist/components/ic-checkbox.js.map +1 -1
- package/dist/components/ic-data-list.js +2 -2
- package/dist/components/ic-data-row.js +2 -2
- package/dist/components/ic-dialog.js +2 -2
- package/dist/components/ic-dialog.js.map +1 -1
- package/dist/components/ic-empty-state.js +2 -2
- package/dist/components/ic-footer-link.js +3 -3
- package/dist/components/ic-footer-link.js.map +1 -1
- package/dist/components/ic-hero.js +4 -4
- package/dist/components/ic-horizontal-scroll2.js +5 -5
- package/dist/components/ic-input-component-container2.js +3 -3
- package/dist/components/ic-input-container2.js +2 -2
- package/dist/components/ic-input-label2.js +33 -10
- package/dist/components/ic-input-label2.js.map +1 -1
- package/dist/components/ic-input-validation2.js +3 -3
- package/dist/components/ic-link2.js +2 -2
- package/dist/components/ic-link2.js.map +1 -1
- package/dist/components/ic-loading-indicator2.js +136 -145
- package/dist/components/ic-loading-indicator2.js.map +1 -1
- package/dist/components/ic-menu-group.js +1 -1
- package/dist/components/ic-menu2.js +16 -9
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-navigation-button.js +43 -43
- package/dist/components/ic-navigation-button.js.map +1 -1
- package/dist/components/ic-navigation-group.js +8 -5
- package/dist/components/ic-navigation-group.js.map +1 -1
- package/dist/components/ic-navigation-item.js +5 -8
- package/dist/components/ic-navigation-item.js.map +1 -1
- package/dist/components/ic-navigation-menu2.js +5 -5
- package/dist/components/ic-page-header.js +6 -6
- package/dist/components/ic-pagination-item2.js +2 -2
- package/dist/components/ic-pagination.js +4 -4
- package/dist/components/ic-popover-menu.js +18 -11
- package/dist/components/ic-popover-menu.js.map +1 -1
- package/dist/components/ic-radio-group.js +5 -5
- package/dist/components/ic-radio-group.js.map +1 -1
- package/dist/components/ic-radio-option.js +4 -4
- package/dist/components/ic-search-bar.js +32 -13
- package/dist/components/ic-search-bar.js.map +1 -1
- package/dist/components/ic-section-container2.js +2 -2
- package/dist/components/ic-select.js +9 -9
- package/dist/components/ic-select.js.map +1 -1
- package/dist/components/ic-side-navigation.js +16 -17
- package/dist/components/ic-side-navigation.js.map +1 -1
- package/dist/components/ic-skeleton.js +2 -2
- package/dist/components/ic-skip-link.js +2 -2
- package/dist/components/ic-status-tag.js +2 -2
- package/dist/components/ic-step.js +13 -13
- package/dist/components/ic-stepper.js +2 -2
- package/dist/components/ic-switch.js +5 -5
- package/dist/components/ic-switch.js.map +1 -1
- package/dist/components/ic-tab-context.js +1 -1
- package/dist/components/ic-tab-group.js +2 -2
- package/dist/components/ic-tab-panel.js +2 -2
- package/dist/components/ic-text-field.js +9 -9
- package/dist/components/ic-text-field.js.map +1 -1
- package/dist/components/ic-theme.js +2 -2
- package/dist/components/ic-toast-region.js +1 -1
- package/dist/components/ic-toast.js +4 -4
- package/dist/components/ic-toggle-button-group.js +2 -2
- package/dist/components/ic-toggle-button.js +3 -3
- package/dist/components/ic-tooltip2.js +12 -4
- package/dist/components/ic-tooltip2.js.map +1 -1
- package/dist/components/ic-top-navigation.js +15 -9
- package/dist/components/ic-top-navigation.js.map +1 -1
- package/dist/components/ic-typography2.js +2 -2
- package/dist/core/ag-theme-icds.css +24 -4
- package/dist/core/core.css +67 -49
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/{p-2c371198.entry.js → p-0179fbd3.entry.js} +2 -2
- package/dist/core/{p-d8ce39ac.entry.js → p-0549305b.entry.js} +2 -2
- package/dist/core/p-056be0df.entry.js +2 -0
- package/dist/core/p-056be0df.entry.js.map +1 -0
- package/dist/core/{p-56fb0298.entry.js → p-06b0d0f6.entry.js} +2 -2
- package/dist/core/{p-fa38ad2e.entry.js → p-06e80441.entry.js} +2 -2
- package/dist/core/{p-aad2abbf.entry.js → p-08567369.entry.js} +2 -2
- package/dist/core/p-08567369.entry.js.map +1 -0
- package/dist/core/{p-c5ffe2cf.entry.js → p-0f86ea09.entry.js} +2 -2
- package/dist/core/{p-56e0de32.entry.js → p-29468171.entry.js} +2 -2
- package/dist/core/{p-9c47521d.entry.js → p-2ec0d11c.entry.js} +2 -2
- package/dist/core/{p-9a6dc8b1.entry.js → p-3194e46c.entry.js} +2 -2
- package/dist/core/{p-dee21f6d.entry.js → p-3448c713.entry.js} +2 -2
- package/dist/core/p-421b5f2d.entry.js +2 -0
- package/dist/core/p-421b5f2d.entry.js.map +1 -0
- package/dist/core/{p-cfa9ed7d.entry.js → p-4301e11e.entry.js} +2 -2
- package/dist/core/{p-1d254b71.entry.js → p-43b98687.entry.js} +2 -2
- package/dist/core/{p-1d254b71.entry.js.map → p-43b98687.entry.js.map} +1 -1
- package/dist/core/{p-87fa5add.entry.js → p-4935b899.entry.js} +2 -2
- package/dist/core/p-4935b899.entry.js.map +1 -0
- package/dist/core/p-4b8bfb59.entry.js +2 -0
- package/dist/core/p-4b8bfb59.entry.js.map +1 -0
- package/dist/core/{p-a17499ff.entry.js → p-4cd83bfe.entry.js} +2 -2
- package/dist/core/{p-6eea869b.entry.js → p-50d13439.entry.js} +2 -2
- package/dist/core/p-554c555f.entry.js +2 -0
- package/dist/core/p-554c555f.entry.js.map +1 -0
- package/dist/core/p-57309502.entry.js +2 -0
- package/dist/core/p-57309502.entry.js.map +1 -0
- package/dist/core/{p-d82b27df.entry.js → p-5fb58cc8.entry.js} +2 -2
- package/dist/core/p-627f7172.entry.js +2 -0
- package/dist/core/p-627f7172.entry.js.map +1 -0
- package/dist/core/{p-d4903dcd.entry.js → p-6dd73165.entry.js} +2 -2
- package/dist/core/p-70abcb2b.js +2 -0
- package/dist/core/p-70abcb2b.js.map +1 -0
- package/dist/core/p-773ded36.entry.js +2 -0
- package/dist/core/p-773ded36.entry.js.map +1 -0
- package/dist/core/{p-c8cf1ad5.entry.js → p-77750efc.entry.js} +2 -2
- package/dist/core/p-7b9e10a0.entry.js +2 -0
- package/dist/core/p-7b9e10a0.entry.js.map +1 -0
- package/dist/core/{p-26dfc4db.entry.js → p-7cada631.entry.js} +2 -2
- package/dist/core/p-7cada631.entry.js.map +1 -0
- package/dist/core/{p-51b49429.entry.js → p-8a5b0fb0.entry.js} +2 -2
- package/dist/core/{p-60aad45d.entry.js → p-91f6884a.entry.js} +2 -2
- package/dist/core/{p-60aad45d.entry.js.map → p-91f6884a.entry.js.map} +1 -1
- package/dist/core/p-939adcae.entry.js +2 -0
- package/dist/core/p-939adcae.entry.js.map +1 -0
- package/dist/core/{p-628c32b8.entry.js → p-948086f4.entry.js} +2 -2
- package/dist/core/{p-5eb2ac90.entry.js → p-97f67617.entry.js} +2 -2
- package/dist/core/{p-5aec3757.entry.js → p-98869fe7.entry.js} +2 -2
- package/dist/core/{p-8958c60f.entry.js → p-9caa9e7b.entry.js} +2 -2
- package/dist/core/{p-aad10013.entry.js → p-9d5e4b62.entry.js} +2 -2
- package/dist/core/{p-3cb4ecef.entry.js → p-9e051db4.entry.js} +2 -2
- package/dist/core/{p-e38fddbb.entry.js → p-9ed5f11d.entry.js} +2 -2
- package/dist/core/p-9ed5f11d.entry.js.map +1 -0
- package/dist/core/{p-dcce0dfd.entry.js → p-a2ae5d9e.entry.js} +2 -2
- package/dist/core/p-a591ef38.entry.js +2 -0
- package/dist/core/p-a591ef38.entry.js.map +1 -0
- package/dist/core/p-ae2ea264.entry.js +2 -0
- package/dist/core/{p-887e00bb.entry.js.map → p-ae2ea264.entry.js.map} +1 -1
- package/dist/core/{p-ef36181d.entry.js → p-afde0edc.entry.js} +2 -2
- package/dist/core/{p-e2629bfe.entry.js → p-b1b27b7e.entry.js} +2 -2
- package/dist/core/p-b730963a.entry.js +2 -0
- package/dist/core/p-b730963a.entry.js.map +1 -0
- package/dist/core/{p-6cd0b010.entry.js → p-b83cca09.entry.js} +2 -2
- package/dist/core/{p-ef4b752c.entry.js → p-ba89fa16.entry.js} +2 -2
- package/dist/core/{p-dfc8cba6.entry.js → p-bb21268f.entry.js} +2 -2
- package/dist/core/p-bb21268f.entry.js.map +1 -0
- package/dist/core/{p-a140bcaa.entry.js → p-c100724d.entry.js} +2 -2
- package/dist/core/p-cd42b7c0.entry.js +2 -0
- package/dist/core/p-cd42b7c0.entry.js.map +1 -0
- package/dist/core/{p-8c77dd65.entry.js → p-cd8dab55.entry.js} +2 -2
- package/dist/core/{p-513628ef.entry.js → p-ce916f35.entry.js} +2 -2
- package/dist/core/{p-de1e04ac.entry.js → p-d281c3cf.entry.js} +2 -2
- package/dist/core/p-d7c8f10d.entry.js +2 -0
- package/dist/core/p-d7c8f10d.entry.js.map +1 -0
- package/dist/core/{p-fc4f7180.entry.js → p-e29ba8bd.entry.js} +2 -2
- package/dist/core/{p-7d2c07e2.entry.js → p-ec1657fc.entry.js} +2 -2
- package/dist/core/{p-4a2acb2e.entry.js → p-f4ee5fbb.entry.js} +2 -2
- package/dist/core/p-f9491692.entry.js +2 -0
- package/dist/core/p-f9491692.entry.js.map +1 -0
- package/dist/core/{p-23536595.entry.js → p-fb6e6ac4.entry.js} +2 -2
- package/dist/core/{p-bf3b853e.entry.js → p-fc5661ac.entry.js} +2 -2
- package/dist/core/{p-1d172032.entry.js → p-ff47772c.entry.js} +2 -2
- package/dist/esm/core.js +1 -1
- package/dist/esm/{helpers-f2ffaa7c.js → helpers-f5ff3b42.js} +42 -33
- package/dist/esm/helpers-f5ff3b42.js.map +1 -0
- package/dist/esm/ic-accordion-group.entry.js +1 -1
- package/dist/esm/ic-accordion.entry.js +1 -1
- package/dist/esm/ic-alert.entry.js +8 -8
- package/dist/esm/ic-alert.entry.js.map +1 -1
- package/dist/esm/ic-back-to-top.entry.js +1 -1
- package/dist/esm/ic-badge.entry.js +13 -4
- package/dist/esm/ic-badge.entry.js.map +1 -1
- package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
- package/dist/esm/ic-breadcrumb.entry.js +1 -1
- package/dist/esm/ic-button_3.entry.js +143 -148
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-card-vertical.entry.js +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +5 -5
- package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
- package/dist/esm/ic-checkbox.entry.js +9 -8
- package/dist/esm/ic-checkbox.entry.js.map +1 -1
- package/dist/esm/ic-chip.entry.js +1 -1
- package/dist/esm/ic-data-list.entry.js +2 -2
- package/dist/esm/ic-data-row.entry.js +3 -3
- package/dist/esm/ic-dialog.entry.js +3 -3
- package/dist/esm/ic-dialog.entry.js.map +1 -1
- package/dist/esm/ic-divider.entry.js +1 -1
- package/dist/esm/ic-empty-state.entry.js +3 -3
- package/dist/esm/ic-footer-link-group.entry.js +1 -1
- package/dist/esm/ic-footer-link.entry.js +4 -4
- package/dist/esm/ic-footer-link.entry.js.map +1 -1
- package/dist/esm/ic-footer.entry.js +1 -1
- package/dist/esm/ic-hero.entry.js +5 -5
- package/dist/esm/ic-horizontal-scroll.entry.js +6 -6
- package/dist/esm/ic-input-component-container_3.entry.js +19 -14
- package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
- package/dist/esm/ic-input-label_2.entry.js +36 -13
- package/dist/esm/ic-input-label_2.entry.js.map +1 -1
- package/dist/esm/ic-link.entry.js +3 -3
- package/dist/esm/ic-link.entry.js.map +1 -1
- package/dist/esm/ic-menu-group.entry.js +2 -2
- package/dist/esm/ic-menu-item.entry.js +1 -1
- package/dist/esm/ic-navigation-button.entry.js +40 -40
- package/dist/esm/ic-navigation-button.entry.js.map +1 -1
- package/dist/esm/ic-navigation-group.entry.js +7 -4
- package/dist/esm/ic-navigation-group.entry.js.map +1 -1
- package/dist/esm/ic-navigation-item.entry.js +5 -8
- package/dist/esm/ic-navigation-item.entry.js.map +1 -1
- package/dist/esm/ic-navigation-menu.entry.js +5 -5
- package/dist/esm/ic-page-header.entry.js +7 -7
- package/dist/esm/ic-pagination-item.entry.js +2 -2
- package/dist/esm/ic-pagination.entry.js +5 -5
- package/dist/esm/ic-popover-menu.entry.js +16 -11
- package/dist/esm/ic-popover-menu.entry.js.map +1 -1
- package/dist/esm/ic-radio-group.entry.js +6 -6
- package/dist/esm/ic-radio-group.entry.js.map +1 -1
- package/dist/esm/ic-radio-option.entry.js +5 -5
- package/dist/esm/ic-search-bar.entry.js +29 -13
- package/dist/esm/ic-search-bar.entry.js.map +1 -1
- package/dist/esm/ic-section-container.entry.js +2 -2
- package/dist/esm/ic-select.entry.js +9 -9
- package/dist/esm/ic-select.entry.js.map +1 -1
- package/dist/esm/ic-side-navigation.entry.js +16 -17
- package/dist/esm/ic-side-navigation.entry.js.map +1 -1
- package/dist/esm/ic-skeleton.entry.js +2 -2
- package/dist/esm/ic-skip-link.entry.js +2 -2
- package/dist/esm/ic-status-tag.entry.js +3 -3
- package/dist/esm/ic-step.entry.js +14 -14
- package/dist/esm/ic-stepper.entry.js +3 -3
- package/dist/esm/ic-switch.entry.js +6 -6
- package/dist/esm/ic-switch.entry.js.map +1 -1
- package/dist/esm/ic-tab-context.entry.js +1 -1
- package/dist/esm/ic-tab-group.entry.js +3 -3
- package/dist/esm/ic-tab-panel.entry.js +2 -2
- package/dist/esm/ic-tab.entry.js +1 -1
- package/dist/esm/ic-text-field.entry.js +9 -9
- package/dist/esm/ic-text-field.entry.js.map +1 -1
- package/dist/esm/ic-theme.entry.js +2 -2
- package/dist/esm/ic-toast-region.entry.js +1 -1
- package/dist/esm/ic-toast.entry.js +4 -4
- package/dist/esm/ic-toggle-button-group.entry.js +3 -3
- package/dist/esm/ic-toggle-button.entry.js +3 -3
- package/dist/esm/ic-top-navigation.entry.js +15 -9
- package/dist/esm/ic-top-navigation.entry.js.map +1 -1
- package/dist/esm/ic-typography.entry.js +3 -3
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-badge/ic-badge.d.ts +1 -0
- package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +3 -0
- package/dist/types/components/ic-input-label/ic-input-label.d.ts +2 -0
- package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +29 -33
- package/dist/types/components/ic-loading-indicator/ic-loading-indicator.types.d.ts +2 -0
- package/dist/types/components/ic-menu/ic-menu.d.ts +7 -0
- package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +13 -5
- package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +4 -1
- package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +7 -0
- package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +3 -0
- package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +11 -0
- package/dist/types/components/ic-select/ic-select.d.ts +1 -0
- package/dist/types/components/ic-switch/ic-switch.d.ts +1 -0
- package/dist/types/components/ic-text-field/ic-text-field.d.ts +1 -0
- package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +1 -0
- package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +1 -0
- package/dist/types/components.d.ts +37 -13
- package/dist/types/utils/constants.d.ts +1 -1
- package/dist/types/utils/helpers.d.ts +3 -2
- package/hydrate/index.js +525 -439
- package/hydrate/index.mjs +525 -439
- package/package.json +3 -5
- package/vscode-data.json +8 -0
- package/dist/cjs/helpers-fc4016d2.js.map +0 -1
- package/dist/core/p-0fb68b4f.entry.js +0 -2
- package/dist/core/p-0fb68b4f.entry.js.map +0 -1
- package/dist/core/p-15b7adaf.entry.js +0 -2
- package/dist/core/p-15b7adaf.entry.js.map +0 -1
- package/dist/core/p-26dfc4db.entry.js.map +0 -1
- package/dist/core/p-3676ac4e.entry.js +0 -2
- package/dist/core/p-3676ac4e.entry.js.map +0 -1
- package/dist/core/p-432aeae0.entry.js +0 -2
- package/dist/core/p-432aeae0.entry.js.map +0 -1
- package/dist/core/p-4dc97b03.entry.js +0 -2
- package/dist/core/p-4dc97b03.entry.js.map +0 -1
- package/dist/core/p-4e48a671.entry.js +0 -2
- package/dist/core/p-4e48a671.entry.js.map +0 -1
- package/dist/core/p-554845c4.entry.js +0 -2
- package/dist/core/p-554845c4.entry.js.map +0 -1
- package/dist/core/p-59b48450.entry.js +0 -2
- package/dist/core/p-59b48450.entry.js.map +0 -1
- package/dist/core/p-7d352865.entry.js +0 -2
- package/dist/core/p-7d352865.entry.js.map +0 -1
- package/dist/core/p-7deaf128.entry.js +0 -2
- package/dist/core/p-7deaf128.entry.js.map +0 -1
- package/dist/core/p-803f2eb8.entry.js +0 -2
- package/dist/core/p-803f2eb8.entry.js.map +0 -1
- package/dist/core/p-8242c24f.js +0 -2
- package/dist/core/p-8242c24f.js.map +0 -1
- package/dist/core/p-87fa5add.entry.js.map +0 -1
- package/dist/core/p-887e00bb.entry.js +0 -2
- package/dist/core/p-aad2abbf.entry.js.map +0 -1
- package/dist/core/p-bdcc79dd.entry.js +0 -2
- package/dist/core/p-bdcc79dd.entry.js.map +0 -1
- package/dist/core/p-c59fd23e.entry.js +0 -2
- package/dist/core/p-c59fd23e.entry.js.map +0 -1
- package/dist/core/p-dfc8cba6.entry.js.map +0 -1
- package/dist/core/p-e38fddbb.entry.js.map +0 -1
- package/dist/core/p-eca6e215.entry.js +0 -2
- package/dist/core/p-eca6e215.entry.js.map +0 -1
- package/dist/esm/helpers-f2ffaa7c.js.map +0 -1
- /package/dist/core/{p-2c371198.entry.js.map → p-0179fbd3.entry.js.map} +0 -0
- /package/dist/core/{p-d8ce39ac.entry.js.map → p-0549305b.entry.js.map} +0 -0
- /package/dist/core/{p-56fb0298.entry.js.map → p-06b0d0f6.entry.js.map} +0 -0
- /package/dist/core/{p-fa38ad2e.entry.js.map → p-06e80441.entry.js.map} +0 -0
- /package/dist/core/{p-c5ffe2cf.entry.js.map → p-0f86ea09.entry.js.map} +0 -0
- /package/dist/core/{p-56e0de32.entry.js.map → p-29468171.entry.js.map} +0 -0
- /package/dist/core/{p-9c47521d.entry.js.map → p-2ec0d11c.entry.js.map} +0 -0
- /package/dist/core/{p-9a6dc8b1.entry.js.map → p-3194e46c.entry.js.map} +0 -0
- /package/dist/core/{p-dee21f6d.entry.js.map → p-3448c713.entry.js.map} +0 -0
- /package/dist/core/{p-cfa9ed7d.entry.js.map → p-4301e11e.entry.js.map} +0 -0
- /package/dist/core/{p-a17499ff.entry.js.map → p-4cd83bfe.entry.js.map} +0 -0
- /package/dist/core/{p-6eea869b.entry.js.map → p-50d13439.entry.js.map} +0 -0
- /package/dist/core/{p-d82b27df.entry.js.map → p-5fb58cc8.entry.js.map} +0 -0
- /package/dist/core/{p-d4903dcd.entry.js.map → p-6dd73165.entry.js.map} +0 -0
- /package/dist/core/{p-c8cf1ad5.entry.js.map → p-77750efc.entry.js.map} +0 -0
- /package/dist/core/{p-51b49429.entry.js.map → p-8a5b0fb0.entry.js.map} +0 -0
- /package/dist/core/{p-628c32b8.entry.js.map → p-948086f4.entry.js.map} +0 -0
- /package/dist/core/{p-5eb2ac90.entry.js.map → p-97f67617.entry.js.map} +0 -0
- /package/dist/core/{p-5aec3757.entry.js.map → p-98869fe7.entry.js.map} +0 -0
- /package/dist/core/{p-8958c60f.entry.js.map → p-9caa9e7b.entry.js.map} +0 -0
- /package/dist/core/{p-aad10013.entry.js.map → p-9d5e4b62.entry.js.map} +0 -0
- /package/dist/core/{p-3cb4ecef.entry.js.map → p-9e051db4.entry.js.map} +0 -0
- /package/dist/core/{p-dcce0dfd.entry.js.map → p-a2ae5d9e.entry.js.map} +0 -0
- /package/dist/core/{p-ef36181d.entry.js.map → p-afde0edc.entry.js.map} +0 -0
- /package/dist/core/{p-e2629bfe.entry.js.map → p-b1b27b7e.entry.js.map} +0 -0
- /package/dist/core/{p-6cd0b010.entry.js.map → p-b83cca09.entry.js.map} +0 -0
- /package/dist/core/{p-ef4b752c.entry.js.map → p-ba89fa16.entry.js.map} +0 -0
- /package/dist/core/{p-a140bcaa.entry.js.map → p-c100724d.entry.js.map} +0 -0
- /package/dist/core/{p-8c77dd65.entry.js.map → p-cd8dab55.entry.js.map} +0 -0
- /package/dist/core/{p-513628ef.entry.js.map → p-ce916f35.entry.js.map} +0 -0
- /package/dist/core/{p-de1e04ac.entry.js.map → p-d281c3cf.entry.js.map} +0 -0
- /package/dist/core/{p-fc4f7180.entry.js.map → p-e29ba8bd.entry.js.map} +0 -0
- /package/dist/core/{p-7d2c07e2.entry.js.map → p-ec1657fc.entry.js.map} +0 -0
- /package/dist/core/{p-4a2acb2e.entry.js.map → p-f4ee5fbb.entry.js.map} +0 -0
- /package/dist/core/{p-23536595.entry.js.map → p-fb6e6ac4.entry.js.map} +0 -0
- /package/dist/core/{p-bf3b853e.entry.js.map → p-fc5661ac.entry.js.map} +0 -0
- /package/dist/core/{p-1d172032.entry.js.map → p-ff47772c.entry.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Host,
|
|
2
|
-
import { getBrandForegroundAppearance, inheritAttributes, onComponentRequiredPropUndefined, isSlotUsed, } from "../../utils/helpers";
|
|
1
|
+
import { Host, forceUpdate, h, } from "@stencil/core";
|
|
3
2
|
import { IC_INHERITED_ARIA } from "../../utils/constants";
|
|
3
|
+
import { getBrandForegroundAppearance, getElementInheritedTheme, inheritAttributes, isSlotUsed, onComponentRequiredPropUndefined, } from "../../utils/helpers";
|
|
4
4
|
import { IcBrandForegroundEnum, } from "../../utils/types";
|
|
5
5
|
const MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, "title"];
|
|
6
6
|
/**
|
|
@@ -11,11 +11,14 @@ export class NavigationButton {
|
|
|
11
11
|
constructor() {
|
|
12
12
|
this.inheritedAttributes = {};
|
|
13
13
|
this.hostMutationObserver = null;
|
|
14
|
-
this.initialAppearance = getBrandForegroundAppearance();
|
|
15
14
|
/**
|
|
16
15
|
* The display mode.
|
|
17
16
|
*/
|
|
18
17
|
this.mode = "navbar";
|
|
18
|
+
/**
|
|
19
|
+
* The parent theme used to inherit external colour tokens such as focus indicator.
|
|
20
|
+
*/
|
|
21
|
+
this.parentThemeDark = false;
|
|
19
22
|
/**
|
|
20
23
|
* If `true`, the user can save the linked URL instead of navigating to it.
|
|
21
24
|
*/
|
|
@@ -24,7 +27,9 @@ export class NavigationButton {
|
|
|
24
27
|
* Sets the theme color to the dark or light theme color. "inherit" will set the color based on the system settings or ic-theme component.
|
|
25
28
|
*/
|
|
26
29
|
this.theme = "inherit";
|
|
27
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Triggered when attributes of host element change
|
|
32
|
+
*/
|
|
28
33
|
this.hostMutationCallback = (mutationList) => {
|
|
29
34
|
let forceComponentUpdate = false;
|
|
30
35
|
mutationList.forEach(({ attributeName }) => {
|
|
@@ -45,6 +50,7 @@ export class NavigationButton {
|
|
|
45
50
|
this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);
|
|
46
51
|
}
|
|
47
52
|
componentDidLoad() {
|
|
53
|
+
this.updateTheme();
|
|
48
54
|
onComponentRequiredPropUndefined([{ prop: this.label, propName: "label" }], "Navigation Button");
|
|
49
55
|
this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);
|
|
50
56
|
this.hostMutationObserver.observe(this.el, {
|
|
@@ -52,8 +58,10 @@ export class NavigationButton {
|
|
|
52
58
|
});
|
|
53
59
|
}
|
|
54
60
|
componentWillRender() {
|
|
55
|
-
|
|
56
|
-
|
|
61
|
+
var _a;
|
|
62
|
+
(_a = this.el
|
|
63
|
+
.querySelector(`[slot="icon"]`)) === null || _a === void 0 ? void 0 : _a.setAttribute("viewBox", "0 0 24 24");
|
|
64
|
+
this.parentThemeChangeHandler();
|
|
57
65
|
}
|
|
58
66
|
disconnectedCallback() {
|
|
59
67
|
var _a;
|
|
@@ -61,55 +69,47 @@ export class NavigationButton {
|
|
|
61
69
|
}
|
|
62
70
|
navBarMenuOpenHandler() {
|
|
63
71
|
this.mode = "menu";
|
|
72
|
+
this.theme = this.el.parentElement.theme;
|
|
64
73
|
}
|
|
65
74
|
navBarMenuCloseHandler() {
|
|
66
75
|
this.mode = "navbar";
|
|
76
|
+
this.updateTheme();
|
|
77
|
+
}
|
|
78
|
+
brandChangeHandler({ detail: { mode } }) {
|
|
79
|
+
this.updateTheme(mode);
|
|
67
80
|
}
|
|
68
|
-
|
|
69
|
-
this.
|
|
81
|
+
parentThemeChangeHandler() {
|
|
82
|
+
this.parentThemeDark = getElementInheritedTheme(this.el) === "dark";
|
|
70
83
|
}
|
|
71
84
|
/**
|
|
72
85
|
* Sets focus on the native `button`.
|
|
73
86
|
*/
|
|
74
87
|
async setFocus() {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
88
|
+
var _a;
|
|
89
|
+
(_a = this.buttonEl) === null || _a === void 0 ? void 0 : _a.setFocus();
|
|
90
|
+
}
|
|
91
|
+
updateTheme(mode = getBrandForegroundAppearance()) {
|
|
92
|
+
this.theme =
|
|
93
|
+
mode === IcBrandForegroundEnum.Light
|
|
94
|
+
? IcBrandForegroundEnum.Dark
|
|
95
|
+
: IcBrandForegroundEnum.Light;
|
|
78
96
|
}
|
|
79
97
|
render() {
|
|
80
|
-
const { href,
|
|
81
|
-
|
|
82
|
-
let className = "";
|
|
83
|
-
let variant = "icon";
|
|
84
|
-
let appearance = this.initialAppearance;
|
|
85
|
-
let size = "large";
|
|
86
|
-
let fullWidth = false;
|
|
87
|
-
let disableTooltip = false;
|
|
88
|
-
if (this.mode === "menu") {
|
|
89
|
-
label = this.label;
|
|
90
|
-
variant = "tertiary";
|
|
91
|
-
appearance = IcBrandForegroundEnum.Default;
|
|
92
|
-
size = "medium";
|
|
93
|
-
fullWidth = true;
|
|
94
|
-
className = "popout-menu-button";
|
|
95
|
-
disableTooltip = true;
|
|
96
|
-
}
|
|
98
|
+
const { download, href, inheritedAttributes, label, mode, parentThemeDark, referrerpolicy, rel, target, theme, } = this;
|
|
99
|
+
const isMenuMode = mode === "menu";
|
|
97
100
|
const buttonProps = {
|
|
98
|
-
variant,
|
|
99
|
-
appearance,
|
|
100
|
-
size,
|
|
101
|
-
href,
|
|
102
|
-
target,
|
|
103
|
-
rel,
|
|
104
101
|
download,
|
|
102
|
+
href,
|
|
105
103
|
referrerpolicy,
|
|
106
|
-
|
|
107
|
-
|
|
104
|
+
rel,
|
|
105
|
+
target,
|
|
106
|
+
theme,
|
|
108
107
|
};
|
|
109
|
-
return (h(Host, { key: '
|
|
110
|
-
|
|
111
|
-
[`ic-theme-${
|
|
112
|
-
|
|
108
|
+
return (h(Host, { key: '6798f875b7e5ba35703800d95c76a8f0e532f09b', class: {
|
|
109
|
+
"in-side-menu": isMenuMode,
|
|
110
|
+
[`ic-theme-${theme}`]: theme !== "inherit",
|
|
111
|
+
dark: parentThemeDark,
|
|
112
|
+
} }, h("ic-button", Object.assign({ key: '94bb6ce72a9f7ad8298e3244c65abefeae577891', ref: (el) => (this.buttonEl = el), class: { "popout-menu-button": isMenuMode }, "aria-label": !isMenuMode ? label : null, disableTooltip: isMenuMode, fullWidth: isMenuMode, monochrome: !isMenuMode, size: isMenuMode ? "medium" : "large", variant: isMenuMode ? "tertiary" : "icon-tertiary" }, buttonProps, inheritedAttributes), isMenuMode ? label : "", h("slot", { key: '7f9fbb6283627d5eb425067939da08f53e5295b2', slot: "left-icon", name: "icon" }), isSlotUsed(this.el, "badge") && h("slot", { key: '3b0766eaf9b37e4b1953868b667c2c1d88eaaead', name: "badge" }))));
|
|
113
113
|
}
|
|
114
114
|
static get is() { return "ic-navigation-button"; }
|
|
115
115
|
static get encapsulation() { return "shadow"; }
|
|
@@ -131,11 +131,11 @@ export class NavigationButton {
|
|
|
131
131
|
"mutable": false,
|
|
132
132
|
"complexType": {
|
|
133
133
|
"original": "string | boolean",
|
|
134
|
-
"resolved": "boolean | string
|
|
134
|
+
"resolved": "boolean | string",
|
|
135
135
|
"references": {}
|
|
136
136
|
},
|
|
137
137
|
"required": false,
|
|
138
|
-
"optional":
|
|
138
|
+
"optional": false,
|
|
139
139
|
"docs": {
|
|
140
140
|
"tags": [],
|
|
141
141
|
"text": "If `true`, the user can save the linked URL instead of navigating to it."
|
|
@@ -267,10 +267,10 @@ export class NavigationButton {
|
|
|
267
267
|
},
|
|
268
268
|
"theme": {
|
|
269
269
|
"type": "string",
|
|
270
|
-
"mutable":
|
|
270
|
+
"mutable": true,
|
|
271
271
|
"complexType": {
|
|
272
272
|
"original": "IcThemeMode",
|
|
273
|
-
"resolved": "\"dark\" | \"inherit\" | \"light\"
|
|
273
|
+
"resolved": "\"dark\" | \"inherit\" | \"light\"",
|
|
274
274
|
"references": {
|
|
275
275
|
"IcThemeMode": {
|
|
276
276
|
"location": "import",
|
|
@@ -280,7 +280,7 @@ export class NavigationButton {
|
|
|
280
280
|
}
|
|
281
281
|
},
|
|
282
282
|
"required": false,
|
|
283
|
-
"optional":
|
|
283
|
+
"optional": false,
|
|
284
284
|
"docs": {
|
|
285
285
|
"tags": [],
|
|
286
286
|
"text": "Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component."
|
|
@@ -295,8 +295,8 @@ export class NavigationButton {
|
|
|
295
295
|
}
|
|
296
296
|
static get states() {
|
|
297
297
|
return {
|
|
298
|
-
"
|
|
299
|
-
"
|
|
298
|
+
"mode": {},
|
|
299
|
+
"parentThemeDark": {}
|
|
300
300
|
};
|
|
301
301
|
}
|
|
302
302
|
static get methods() {
|
|
@@ -340,6 +340,12 @@ export class NavigationButton {
|
|
|
340
340
|
"target": "document",
|
|
341
341
|
"capture": false,
|
|
342
342
|
"passive": false
|
|
343
|
+
}, {
|
|
344
|
+
"name": "icThemeChange",
|
|
345
|
+
"method": "parentThemeChangeHandler",
|
|
346
|
+
"target": "document",
|
|
347
|
+
"capture": false,
|
|
348
|
+
"passive": false
|
|
343
349
|
}];
|
|
344
350
|
}
|
|
345
351
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ic-navigation-button.js","sourceRoot":"","sources":["../../../src/components/ic-navigation-button/ic-navigation-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Prop,\n State,\n h,\n Listen,\n Method,\n forceUpdate,\n} from \"@stencil/core\";\n\nimport {\n getBrandForegroundAppearance,\n inheritAttributes,\n onComponentRequiredPropUndefined,\n isSlotUsed,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundEnum,\n IcBrandForegroundNoDefault,\n IcThemeMode,\n} from \"../../utils/types\";\nimport { IcNavButtonModes } from \"./ic-navigation-button.types\";\n\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"title\"];\n\n/**\n * @slot icon - Content will be placed to the left of the button label.\n * @slot badge - Badge component overlaying the top right of the button.\n */\n\n@Component({\n tag: \"ic-navigation-button\",\n styleUrl: \"ic-navigation-button.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class NavigationButton {\n private buttonEl?: HTMLIcButtonElement;\n private inheritedAttributes: { [k: string]: string } = {};\n private hostMutationObserver: MutationObserver | null = null;\n\n @Element() el: HTMLIcNavigationButtonElement;\n\n @State() initialAppearance: IcBrandForegroundNoDefault | IcBrandForeground =\n getBrandForegroundAppearance();\n /**\n * The display mode.\n */\n @State() mode: IcNavButtonModes = \"navbar\";\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n @Prop() download?: string | boolean = false;\n\n /**\n * The URL that the link points to. This will render the button as an \"a\" tag.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * The label info to display.\n */\n @Prop() label!: string;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n componentWillLoad(): void {\n this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Navigation Button\"\n );\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n });\n }\n\n componentWillRender(): void {\n const iconEl = this.el.querySelector(`[slot=\"icon\"]`);\n iconEl !== null && iconEl.setAttribute(\"viewBox\", \"0 0 24 24\");\n }\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n }\n\n @Listen(\"icNavigationMenuOpened\", { target: \"document\" })\n navBarMenuOpenHandler(): void {\n this.mode = \"menu\";\n }\n\n @Listen(\"icNavigationMenuClosed\", { target: \"document\" })\n navBarMenuCloseHandler(): void {\n this.mode = \"navbar\";\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler(ev: CustomEvent<IcBrand>): void {\n this.initialAppearance = ev.detail.mode;\n }\n\n /**\n * Sets focus on the native `button`.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.buttonEl) {\n this.buttonEl.focus();\n }\n }\n\n // triggered when attributes of host element change\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n let forceComponentUpdate = false;\n mutationList.forEach(({ attributeName }) => {\n if (attributeName) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute && MUTABLE_ATTRIBUTES.includes(attributeName)) {\n this.inheritedAttributes[attributeName] = attribute;\n forceComponentUpdate = true;\n }\n }\n });\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n render() {\n const { href, target, rel, download, referrerpolicy } = this;\n\n let label = \"\";\n let className = \"\";\n let variant: \"icon\" | \"tertiary\" = \"icon\";\n let appearance: IcBrandForeground | IcBrandForegroundEnum.Default =\n this.initialAppearance;\n let size: \"medium\" | \"large\" = \"large\";\n let fullWidth = false;\n let disableTooltip = false;\n\n if (this.mode === \"menu\") {\n label = this.label;\n variant = \"tertiary\";\n appearance = IcBrandForegroundEnum.Default;\n size = \"medium\";\n fullWidth = true;\n className = \"popout-menu-button\";\n disableTooltip = true;\n }\n\n const buttonProps = {\n variant,\n appearance,\n size,\n href,\n target,\n rel,\n download,\n referrerpolicy,\n fullWidth,\n disableTooltip,\n };\n\n return (\n <Host\n class={{\n [\"in-side-menu\"]: this.mode === \"menu\",\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n }}\n >\n <ic-button\n class={className}\n aria-label={variant == \"icon\" ? this.label : null}\n ref={(el) => (this.buttonEl = el)}\n {...buttonProps}\n {...this.inheritedAttributes}\n monochrome={this.mode !== \"menu\"}\n theme={getBrandForegroundAppearance() == \"light\" ? \"light\" : \"dark\"}\n >\n {label}\n <slot slot=\"left-icon\" name=\"icon\"></slot>\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n </ic-button>\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ic-navigation-button.js","sourceRoot":"","sources":["../../../src/components/ic-navigation-button/ic-navigation-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Listen,\n Method,\n Prop,\n State,\n forceUpdate,\n h,\n} from \"@stencil/core\";\n\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n getBrandForegroundAppearance,\n getElementInheritedTheme,\n inheritAttributes,\n isSlotUsed,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport {\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundEnum,\n IcThemeMode,\n} from \"../../utils/types\";\nimport { IcNavButtonModes } from \"./ic-navigation-button.types\";\n\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"title\"];\n\n/**\n * @slot icon - Content will be placed to the left of the button label.\n * @slot badge - Badge component overlaying the top right of the button.\n */\n\n@Component({\n tag: \"ic-navigation-button\",\n styleUrl: \"ic-navigation-button.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class NavigationButton {\n private buttonEl?: HTMLIcButtonElement;\n private inheritedAttributes: { [k: string]: string } = {};\n private hostMutationObserver: MutationObserver | null = null;\n\n @Element() el: HTMLIcNavigationButtonElement;\n\n /**\n * The display mode.\n */\n @State() mode: IcNavButtonModes = \"navbar\";\n\n /**\n * The parent theme used to inherit external colour tokens such as focus indicator.\n */\n @State() parentThemeDark = false;\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n @Prop() download: string | boolean = false;\n\n /**\n * The URL that the link points to. This will render the button as an \"a\" tag.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * The label info to display.\n */\n @Prop() label!: string;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop({ mutable: true }) theme: IcThemeMode = \"inherit\";\n\n componentWillLoad(): void {\n this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);\n }\n\n componentDidLoad(): void {\n this.updateTheme();\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Navigation Button\"\n );\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n });\n }\n\n componentWillRender(): void {\n this.el\n .querySelector(`[slot=\"icon\"]`)\n ?.setAttribute(\"viewBox\", \"0 0 24 24\");\n this.parentThemeChangeHandler();\n }\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n }\n\n @Listen(\"icNavigationMenuOpened\", { target: \"document\" })\n navBarMenuOpenHandler(): void {\n this.mode = \"menu\";\n this.theme = (this.el.parentElement as HTMLIcTopNavigationElement).theme;\n }\n\n @Listen(\"icNavigationMenuClosed\", { target: \"document\" })\n navBarMenuCloseHandler(): void {\n this.mode = \"navbar\";\n this.updateTheme();\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler({ detail: { mode } }: CustomEvent<IcBrand>): void {\n this.updateTheme(mode);\n }\n\n @Listen(\"icThemeChange\", { target: \"document\" })\n parentThemeChangeHandler(): void {\n this.parentThemeDark = getElementInheritedTheme(this.el) === \"dark\";\n }\n\n /**\n * Sets focus on the native `button`.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.buttonEl?.setFocus();\n }\n\n /**\n * Triggered when attributes of host element change\n */\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n let forceComponentUpdate = false;\n mutationList.forEach(({ attributeName }) => {\n if (attributeName) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute && MUTABLE_ATTRIBUTES.includes(attributeName)) {\n this.inheritedAttributes[attributeName] = attribute;\n forceComponentUpdate = true;\n }\n }\n });\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n private updateTheme(\n mode: IcBrandForeground = getBrandForegroundAppearance()\n ) {\n this.theme =\n mode === IcBrandForegroundEnum.Light\n ? IcBrandForegroundEnum.Dark\n : IcBrandForegroundEnum.Light;\n }\n\n render() {\n const {\n download,\n href,\n inheritedAttributes,\n label,\n mode,\n parentThemeDark,\n referrerpolicy,\n rel,\n target,\n theme,\n } = this;\n\n const isMenuMode = mode === \"menu\";\n\n const buttonProps = {\n download,\n href,\n referrerpolicy,\n rel,\n target,\n theme,\n };\n\n return (\n <Host\n class={{\n \"in-side-menu\": isMenuMode,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n dark: parentThemeDark,\n }}\n >\n <ic-button\n ref={(el) => (this.buttonEl = el)}\n class={{ \"popout-menu-button\": isMenuMode }}\n aria-label={!isMenuMode ? label : null}\n disableTooltip={isMenuMode}\n fullWidth={isMenuMode}\n monochrome={!isMenuMode}\n size={isMenuMode ? \"medium\" : \"large\"}\n variant={isMenuMode ? \"tertiary\" : \"icon-tertiary\"}\n {...buttonProps}\n {...inheritedAttributes}\n >\n {isMenuMode ? label : \"\"}\n <slot slot=\"left-icon\" name=\"icon\"></slot>\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n </ic-button>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -12,7 +12,6 @@ export class NavigationGroup {
|
|
|
12
12
|
this.mouseGate = false;
|
|
13
13
|
this.deviceSize = DEVICE_SIZES.XL;
|
|
14
14
|
this.dropdownOpen = false;
|
|
15
|
-
this.expanded = true;
|
|
16
15
|
this.focusStyle = getBrandForegroundAppearance();
|
|
17
16
|
this.inTopNavSideMenu = false;
|
|
18
17
|
this.isSideNavExpanded = false;
|
|
@@ -20,6 +19,10 @@ export class NavigationGroup {
|
|
|
20
19
|
* If `true`, the group will be expandable when in an ic-side-navigation component, or, when in an ic-top-navigation component, in the side menu displayed at small screen sizes.
|
|
21
20
|
*/
|
|
22
21
|
this.expandable = false;
|
|
22
|
+
/**
|
|
23
|
+
* If `true`, the expandable group will be expanded by default when in an ic-side-navigation component. To enable this prop, `expandable` must also be set to `true`.
|
|
24
|
+
*/
|
|
25
|
+
this.expanded = true;
|
|
23
26
|
/**
|
|
24
27
|
* Sets the theme color to the dark or light theme color. "inherit" will set the color based on the system settings or ic-theme component.
|
|
25
28
|
*/
|
|
@@ -258,7 +261,7 @@ export class NavigationGroup {
|
|
|
258
261
|
const isTopNav = this.navigationType === "top";
|
|
259
262
|
const isTopNavDesktop = !inTopNavSideMenu && isTopNav;
|
|
260
263
|
const ariaExpanded = (isSideNav && expanded) || (isTopNav && dropdownOpen);
|
|
261
|
-
return (h(Host, { key: '
|
|
264
|
+
return (h(Host, { key: '1c16958eaa37fb0d37d04178e7bd2d469af832f6', class: {
|
|
262
265
|
"in-side-menu": inTopNavSideMenu,
|
|
263
266
|
"ic-navigation-group-expandable": expandable,
|
|
264
267
|
"ic-navigation-group-side-nav": isSideNav,
|
|
@@ -266,7 +269,7 @@ export class NavigationGroup {
|
|
|
266
269
|
[`ic-theme-${theme}`]: theme !== "inherit",
|
|
267
270
|
}, role: "listitem" }, expandable || isTopNavDesktop ? (h("button", { onMouseEnter: isTopNavDesktop ? this.handleMouseEnter : undefined, onMouseLeave: isTopNav ? this.handleMouseLeave : undefined, onBlur: this.handleBlur, onClick: this.handleClick, onKeyDown: this.handleKeydown, class: navGroupTitleClassNames, ref: (el) => (this.groupEl = el), "aria-expanded": `${ariaExpanded}`, "aria-haspopup": `${isTopNavDesktop}` }, this.renderGroupTitleText(), isSideNav && expandable && (h("div", { class: {
|
|
268
271
|
"chevron-toggle-icon-wrapper": true,
|
|
269
|
-
"chevron-toggle-icon-closed": expanded,
|
|
272
|
+
"chevron-toggle-icon-closed": !!expanded,
|
|
270
273
|
}, innerHTML: chevronIcon })))) : ((!isSideNav || isSideNavExpanded) && (h("div", { class: navGroupTitleClassNames }, this.renderGroupTitleText()))), this.renderNavigationItems()));
|
|
271
274
|
}
|
|
272
275
|
static get is() { return "ic-navigation-group"; }
|
|
@@ -304,6 +307,26 @@ export class NavigationGroup {
|
|
|
304
307
|
"reflect": false,
|
|
305
308
|
"defaultValue": "false"
|
|
306
309
|
},
|
|
310
|
+
"expanded": {
|
|
311
|
+
"type": "boolean",
|
|
312
|
+
"mutable": true,
|
|
313
|
+
"complexType": {
|
|
314
|
+
"original": "boolean",
|
|
315
|
+
"resolved": "boolean",
|
|
316
|
+
"references": {}
|
|
317
|
+
},
|
|
318
|
+
"required": false,
|
|
319
|
+
"optional": false,
|
|
320
|
+
"docs": {
|
|
321
|
+
"tags": [],
|
|
322
|
+
"text": "If `true`, the expandable group will be expanded by default when in an ic-side-navigation component. To enable this prop, `expandable` must also be set to `true`."
|
|
323
|
+
},
|
|
324
|
+
"getter": false,
|
|
325
|
+
"setter": false,
|
|
326
|
+
"attribute": "expanded",
|
|
327
|
+
"reflect": false,
|
|
328
|
+
"defaultValue": "true"
|
|
329
|
+
},
|
|
307
330
|
"label": {
|
|
308
331
|
"type": "string",
|
|
309
332
|
"mutable": false,
|
|
@@ -355,7 +378,6 @@ export class NavigationGroup {
|
|
|
355
378
|
return {
|
|
356
379
|
"deviceSize": {},
|
|
357
380
|
"dropdownOpen": {},
|
|
358
|
-
"expanded": {},
|
|
359
381
|
"focusStyle": {},
|
|
360
382
|
"inTopNavSideMenu": {},
|
|
361
383
|
"navigationType": {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ic-navigation-group.js","sourceRoot":"","sources":["../../../src/components/ic-navigation-group/ic-navigation-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Prop,\n State,\n Listen,\n h,\n Method,\n Event,\n EventEmitter,\n} from \"@stencil/core\";\n\nimport {\n DEVICE_SIZES,\n getCurrentDeviceSize,\n getBrandForegroundAppearance,\n getNavItemParentDetails,\n} from \"../../utils/helpers\";\nimport {\n IcNavType,\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundNoDefault,\n IcThemeMode,\n} from \"../../utils/types\";\n\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\nimport {\n IcNavigationExpandEventDetail,\n IcNavigationOpenEventDetail,\n} from \"./ic-navigation-group.types\";\n\nconst IC_NAVIGATION_ITEM = \"ic-navigation-item\";\nconst DYNAMIC_GROUPED_LINKS_HEIGHT_MS = 100;\nconst NODE_NAME = \"IC-NAVIGATION-GROUP\";\n\n@Component({\n tag: \"ic-navigation-group\",\n styleUrl: \"ic-navigation-group.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class NavigationGroup {\n private allGroupedNavigationItemHeights = \"\";\n private collapsedNavItemsHeight: string | null = null;\n private dropdown?: HTMLElement;\n private expandedNavItemsHeight: string | null = null;\n private groupEl?: HTMLElement;\n private mouseGate = false;\n private linkWrapper?: HTMLUListElement;\n\n @Element() el: HTMLIcNavigationGroupElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() dropdownOpen = false;\n @State() expanded = true;\n @State() focusStyle: IcBrandForegroundNoDefault | IcBrandForeground =\n getBrandForegroundAppearance();\n @State() inTopNavSideMenu = false;\n @State() navigationType: IcNavType | \"\";\n @State() parentEl: HTMLElement | null;\n @State() isSideNavExpanded = false;\n\n /**\n * If `true`, the group will be expandable when in an ic-side-navigation component, or, when in an ic-top-navigation component, in the side menu displayed at small screen sizes.\n */\n @Prop() expandable = false;\n\n /**\n * The label to display on the group.\n */\n @Prop() label!: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n\n /**\n * @internal Emitted when a navigation group is opened - when within an ic-top-navigation at large screen sizes.\n */\n @Event() navigationGroupOpened: EventEmitter<IcNavigationOpenEventDetail>;\n\n /**\n * @internal Emitted when a navigation group is expanded - when within an ic-top-navigation at small screen sizes.\n */\n @Event() navigationGroupExpanded: EventEmitter<IcNavigationExpandEventDetail>;\n\n disconnectedCallback(): void {\n if (this.navigationType === \"side\") {\n this.parentEl?.removeEventListener(\n \"icSideNavExpanded\",\n this.sideNavExpandHandler as EventListener\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl?.removeEventListener(\n \"icTopNavResized\",\n this.topNavResizedHandler as EventListener\n );\n }\n }\n\n componentWillLoad(): void {\n this.deviceSize = getCurrentDeviceSize();\n const { navType, parent } = getNavItemParentDetails(this.el);\n this.navigationType = navType;\n this.parentEl = parent;\n\n if (this.navigationType === \"side\") {\n this.parentEl?.addEventListener(\n \"icSideNavExpanded\",\n this.sideNavExpandHandler as EventListener\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl?.addEventListener(\n \"icTopNavResized\",\n this.topNavResizedHandler as EventListener\n );\n if (\n this.deviceSize <=\n (this.parentEl as HTMLIcTopNavigationElement).customMobileBreakpoint\n )\n this.inTopNavSideMenu = true;\n }\n }\n\n componentDidLoad(): void {\n this.allGroupedNavigationItemHeights = `${Array.from(\n this.el.querySelectorAll(IC_NAVIGATION_ITEM)\n ).reduce(\n (childrenHeights, { offsetHeight }) => childrenHeights + offsetHeight,\n 0\n )}px`;\n\n /**\n * debounce is required as the incorrect height was retrieved instantly after\n * componentDidLoad is invoked.\n */\n setTimeout(() => {\n if (!this.linkWrapper || !this.expanded) return;\n\n if (!this.isSideNavExpanded)\n this.collapsedNavItemsHeight = this.allGroupedNavigationItemHeights;\n else this.expandedNavItemsHeight = this.allGroupedNavigationItemHeights;\n\n this.setGroupedLinksElementHeight(this.allGroupedNavigationItemHeights);\n }, DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n\n @Listen(\"childBlur\")\n childBlurHandler(): void {\n this.hideDropdown();\n }\n\n @Listen(\"navigationGroupOpened\", { target: \"document\" })\n handleNavigationGroupOpened(event: CustomEvent): void {\n if (event.detail.source !== this.el) {\n this.hideDropdown();\n }\n }\n\n @Listen(\"navItemClicked\")\n navItemClickHandler(): void {\n this.hideDropdown();\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler(ev: CustomEvent<IcBrand>): void {\n this.focusStyle = ev.detail.mode;\n }\n\n /**\n * Sets focus on the nav item.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.groupEl?.focus();\n }\n\n private sideNavExpandHandler = (event: CustomEvent) => {\n this.isSideNavExpanded = event.detail.sideNavExpanded;\n\n if (!this.linkWrapper || !this.expanded) return;\n\n const navItemsHeight = this.isSideNavExpanded\n ? this.expandedNavItemsHeight\n : this.collapsedNavItemsHeight;\n\n if (navItemsHeight) {\n this.setGroupedLinksElementHeight(navItemsHeight);\n } else {\n setTimeout(() => {\n if (this.isSideNavExpanded) {\n this.expandedNavItemsHeight = this.allGroupedNavigationItemHeights;\n } else {\n this.collapsedNavItemsHeight = this.allGroupedNavigationItemHeights;\n }\n\n this.setGroupedLinksElementHeight(this.allGroupedNavigationItemHeights);\n }, DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n };\n\n private topNavResizedHandler = ({\n detail: { size },\n }: CustomEvent<{ size: number }>) => {\n if (size === this.deviceSize) return;\n\n this.deviceSize = size;\n this.inTopNavSideMenu =\n size <=\n ((this.parentEl as HTMLIcTopNavigationElement)?.customMobileBreakpoint ||\n DEVICE_SIZES.L);\n };\n\n private toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n if (this.inTopNavSideMenu) {\n this.navigationGroupExpanded.emit({ expanded: this.dropdownOpen });\n }\n }\n\n private toggleExpanded = () => {\n this.expanded = !this.expanded;\n if (!this.linkWrapper) return;\n\n this.setGroupedLinksElementHeight(\n !this.expanded\n ? \"0\"\n : this.isSideNavExpanded\n ? this.expandedNavItemsHeight\n : this.collapsedNavItemsHeight\n );\n\n this.el.querySelectorAll(IC_NAVIGATION_ITEM).forEach((navigationItem) => {\n const navItem =\n navigationItem.shadowRoot?.querySelector(\"a\") ||\n navigationItem.querySelector(\"a\");\n navItem?.setAttribute(\"tabindex\", this.expanded ? \"0\" : \"-1\");\n });\n };\n\n private showDropdown() {\n if (!this.dropdownOpen) {\n this.navigationGroupOpened.emit({\n source: this.el,\n });\n\n this.toggleDropdown();\n }\n }\n\n private hideDropdown() {\n document.removeEventListener(\"keydown\", this.handleKeydown);\n if (this.dropdownOpen) {\n this.toggleDropdown();\n }\n }\n\n private handleClick = (ev: MouseEvent) => {\n if (this.navigationType === \"top\" && ev.detail) {\n this.toggleDropdown();\n } else {\n this.toggleExpanded();\n }\n };\n\n private handleBlur = (ev: FocusEvent) => {\n if (!this.el.contains(ev.relatedTarget as HTMLElement)) {\n this.hideDropdown();\n }\n };\n\n private handleKeydown = (ev: KeyboardEvent) => {\n const { key } = ev;\n if (key !== \"Enter\" && key !== \" \" && key !== \"Escape\") return;\n\n switch (this.navigationType) {\n case \"top\":\n if (key === \" \" || key === \"Enter\") {\n this.toggleDropdown();\n } else if (!this.inTopNavSideMenu) {\n this.hideDropdown();\n }\n break;\n case \"side\":\n this.toggleExpanded();\n ev.preventDefault();\n break;\n default:\n this.toggleExpanded();\n break;\n }\n };\n\n private handleMouseLeave = (ev: MouseEvent) => {\n const relTarget = ev.relatedTarget as HTMLElement;\n\n this.mouseGate = false;\n\n if (\n this.el.contains(relTarget) ||\n relTarget === this.dropdown ||\n this.el.contains(document.activeElement)\n )\n return;\n\n if (\n document.activeElement !== this.el &&\n relTarget?.nodeName === NODE_NAME &&\n this.dropdownOpen\n ) {\n this.mouseGate = true;\n this.hideDropdown();\n } else {\n this.mouseGate = false;\n setTimeout(() => {\n this.dropdownOpen ? this.hideDropdown() : null;\n }, 500);\n }\n };\n\n private handleMouseEnter = (ev: MouseEvent) => {\n const relTarget = ev.relatedTarget as HTMLElement | null;\n document.addEventListener(\"keydown\", this.handleKeydown);\n\n if (relTarget?.nodeName === NODE_NAME && this.mouseGate) {\n this.showDropdown();\n } else if (!this.dropdownOpen && !this.mouseGate) {\n this.mouseGate = true;\n setTimeout(() => {\n if (this.mouseGate) this.showDropdown();\n }, 500);\n }\n };\n\n private renderGroupTitleText = () => (\n <ic-typography\n id=\"nav-group-title\"\n variant={this.navigationType === \"side\" ? \"caption\" : \"label\"}\n >\n {this.label}\n </ic-typography>\n );\n\n private renderNavigationItems = () => {\n if (this.dropdownOpen || (this.inTopNavSideMenu && !this.expandable)) {\n return (\n <div\n class={{\n [this.inTopNavSideMenu\n ? \"navigation-group-dropdown-side-menu\"\n : \"navigation-group-dropdown\"]: true,\n selected: this.dropdownOpen && !this.inTopNavSideMenu,\n }}\n onMouseLeave={\n !this.inTopNavSideMenu ? this.handleMouseLeave : undefined\n }\n ref={(el) => (this.dropdown = el)}\n >\n <nav\n class={{\n \"navigation-group-dropdown-items\": !this.inTopNavSideMenu,\n }}\n aria-labelledby=\"nav-group-title\"\n >\n <ul>\n <slot></slot>\n </ul>\n </nav>\n </div>\n );\n }\n\n if (this.navigationType !== \"top\") {\n return (\n <ul ref={(el) => (this.linkWrapper = el)} class=\"grouped-links-wrapper\">\n <slot></slot>\n </ul>\n );\n }\n\n return null;\n };\n\n private setGroupedLinksElementHeight = (height: string | null) => {\n this.linkWrapper?.style.setProperty(\n \"--navigation-child-items-height\",\n height\n );\n };\n\n render() {\n const {\n dropdownOpen,\n expanded,\n inTopNavSideMenu,\n expandable,\n theme,\n isSideNavExpanded,\n focusStyle,\n } = this;\n\n const getExpandedClassSuffix = (prop: boolean) =>\n prop ? \"expanded\" : \"collapsed\";\n\n const navGroupTitleClassNames = {\n \"navigation-group\": true,\n [focusStyle]: !inTopNavSideMenu,\n [`navigation-group-side-menu-${getExpandedClassSuffix(dropdownOpen)}`]:\n inTopNavSideMenu && expandable,\n selected: dropdownOpen && !inTopNavSideMenu,\n };\n\n const isSideNav = this.navigationType === \"side\";\n const isTopNav = this.navigationType === \"top\";\n const isTopNavDesktop = !inTopNavSideMenu && isTopNav;\n\n const ariaExpanded = (isSideNav && expanded) || (isTopNav && dropdownOpen);\n\n return (\n <Host\n class={{\n \"in-side-menu\": inTopNavSideMenu,\n \"ic-navigation-group-expandable\": expandable,\n \"ic-navigation-group-side-nav\": isSideNav,\n [`ic-navigation-group-${getExpandedClassSuffix(expanded)}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n role=\"listitem\"\n >\n {expandable || isTopNavDesktop ? (\n <button\n onMouseEnter={isTopNavDesktop ? this.handleMouseEnter : undefined}\n onMouseLeave={isTopNav ? this.handleMouseLeave : undefined}\n onBlur={this.handleBlur}\n onClick={this.handleClick}\n onKeyDown={this.handleKeydown}\n class={navGroupTitleClassNames}\n ref={(el) => (this.groupEl = el)}\n aria-expanded={`${ariaExpanded}`}\n aria-haspopup={`${isTopNavDesktop}`}\n >\n {this.renderGroupTitleText()}\n {isSideNav && expandable && (\n <div\n class={{\n \"chevron-toggle-icon-wrapper\": true,\n \"chevron-toggle-icon-closed\": expanded,\n }}\n innerHTML={chevronIcon}\n ></div>\n )}\n </button>\n ) : (\n (!isSideNav || isSideNavExpanded) && (\n <div class={navGroupTitleClassNames}>\n {this.renderGroupTitleText()}\n </div>\n )\n )}\n {this.renderNavigationItems()}\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ic-navigation-group.js","sourceRoot":"","sources":["../../../src/components/ic-navigation-group/ic-navigation-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Prop,\n State,\n Listen,\n h,\n Method,\n Event,\n EventEmitter,\n} from \"@stencil/core\";\n\nimport {\n DEVICE_SIZES,\n getCurrentDeviceSize,\n getBrandForegroundAppearance,\n getNavItemParentDetails,\n} from \"../../utils/helpers\";\nimport {\n IcNavType,\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundNoDefault,\n IcThemeMode,\n} from \"../../utils/types\";\n\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\nimport {\n IcNavigationExpandEventDetail,\n IcNavigationOpenEventDetail,\n} from \"./ic-navigation-group.types\";\n\nconst IC_NAVIGATION_ITEM = \"ic-navigation-item\";\nconst DYNAMIC_GROUPED_LINKS_HEIGHT_MS = 100;\nconst NODE_NAME = \"IC-NAVIGATION-GROUP\";\n\n@Component({\n tag: \"ic-navigation-group\",\n styleUrl: \"ic-navigation-group.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class NavigationGroup {\n private allGroupedNavigationItemHeights = \"\";\n private collapsedNavItemsHeight: string | null = null;\n private dropdown?: HTMLElement;\n private expandedNavItemsHeight: string | null = null;\n private groupEl?: HTMLElement;\n private mouseGate = false;\n private linkWrapper?: HTMLUListElement;\n\n @Element() el: HTMLIcNavigationGroupElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() dropdownOpen = false;\n @State() focusStyle: IcBrandForegroundNoDefault | IcBrandForeground =\n getBrandForegroundAppearance();\n @State() inTopNavSideMenu = false;\n @State() navigationType: IcNavType | \"\";\n @State() parentEl: HTMLElement | null;\n @State() isSideNavExpanded = false;\n\n /**\n * If `true`, the group will be expandable when in an ic-side-navigation component, or, when in an ic-top-navigation component, in the side menu displayed at small screen sizes.\n */\n @Prop() expandable = false;\n\n /**\n * If `true`, the expandable group will be expanded by default when in an ic-side-navigation component. To enable this prop, `expandable` must also be set to `true`.\n */\n @Prop({ mutable: true }) expanded = true;\n\n /**\n * The label to display on the group.\n */\n @Prop() label!: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n\n /**\n * @internal Emitted when a navigation group is opened - when within an ic-top-navigation at large screen sizes.\n */\n @Event() navigationGroupOpened: EventEmitter<IcNavigationOpenEventDetail>;\n\n /**\n * @internal Emitted when a navigation group is expanded - when within an ic-top-navigation at small screen sizes.\n */\n @Event() navigationGroupExpanded: EventEmitter<IcNavigationExpandEventDetail>;\n\n disconnectedCallback(): void {\n if (this.navigationType === \"side\") {\n this.parentEl?.removeEventListener(\n \"icSideNavExpanded\",\n this.sideNavExpandHandler as EventListener\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl?.removeEventListener(\n \"icTopNavResized\",\n this.topNavResizedHandler as EventListener\n );\n }\n }\n\n componentWillLoad(): void {\n this.deviceSize = getCurrentDeviceSize();\n const { navType, parent } = getNavItemParentDetails(this.el);\n this.navigationType = navType;\n this.parentEl = parent;\n\n if (this.navigationType === \"side\") {\n this.parentEl?.addEventListener(\n \"icSideNavExpanded\",\n this.sideNavExpandHandler as EventListener\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl?.addEventListener(\n \"icTopNavResized\",\n this.topNavResizedHandler as EventListener\n );\n if (\n this.deviceSize <=\n (this.parentEl as HTMLIcTopNavigationElement).customMobileBreakpoint\n )\n this.inTopNavSideMenu = true;\n }\n }\n\n componentDidLoad(): void {\n this.allGroupedNavigationItemHeights = `${Array.from(\n this.el.querySelectorAll(IC_NAVIGATION_ITEM)\n ).reduce(\n (childrenHeights, { offsetHeight }) => childrenHeights + offsetHeight,\n 0\n )}px`;\n\n /**\n * debounce is required as the incorrect height was retrieved instantly after\n * componentDidLoad is invoked.\n */\n setTimeout(() => {\n if (!this.linkWrapper || !this.expanded) return;\n\n if (!this.isSideNavExpanded)\n this.collapsedNavItemsHeight = this.allGroupedNavigationItemHeights;\n else this.expandedNavItemsHeight = this.allGroupedNavigationItemHeights;\n\n this.setGroupedLinksElementHeight(this.allGroupedNavigationItemHeights);\n }, DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n\n @Listen(\"childBlur\")\n childBlurHandler(): void {\n this.hideDropdown();\n }\n\n @Listen(\"navigationGroupOpened\", { target: \"document\" })\n handleNavigationGroupOpened(event: CustomEvent): void {\n if (event.detail.source !== this.el) {\n this.hideDropdown();\n }\n }\n\n @Listen(\"navItemClicked\")\n navItemClickHandler(): void {\n this.hideDropdown();\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler(ev: CustomEvent<IcBrand>): void {\n this.focusStyle = ev.detail.mode;\n }\n\n /**\n * Sets focus on the nav item.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.groupEl?.focus();\n }\n\n private sideNavExpandHandler = (event: CustomEvent) => {\n this.isSideNavExpanded = event.detail.sideNavExpanded;\n\n if (!this.linkWrapper || !this.expanded) return;\n\n const navItemsHeight = this.isSideNavExpanded\n ? this.expandedNavItemsHeight\n : this.collapsedNavItemsHeight;\n\n if (navItemsHeight) {\n this.setGroupedLinksElementHeight(navItemsHeight);\n } else {\n setTimeout(() => {\n if (this.isSideNavExpanded) {\n this.expandedNavItemsHeight = this.allGroupedNavigationItemHeights;\n } else {\n this.collapsedNavItemsHeight = this.allGroupedNavigationItemHeights;\n }\n\n this.setGroupedLinksElementHeight(this.allGroupedNavigationItemHeights);\n }, DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n };\n\n private topNavResizedHandler = ({\n detail: { size },\n }: CustomEvent<{ size: number }>) => {\n if (size === this.deviceSize) return;\n\n this.deviceSize = size;\n this.inTopNavSideMenu =\n size <=\n ((this.parentEl as HTMLIcTopNavigationElement)?.customMobileBreakpoint ||\n DEVICE_SIZES.L);\n };\n\n private toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n if (this.inTopNavSideMenu) {\n this.navigationGroupExpanded.emit({ expanded: this.dropdownOpen });\n }\n }\n\n private toggleExpanded = () => {\n this.expanded = !this.expanded;\n if (!this.linkWrapper) return;\n\n this.setGroupedLinksElementHeight(\n !this.expanded\n ? \"0\"\n : this.isSideNavExpanded\n ? this.expandedNavItemsHeight\n : this.collapsedNavItemsHeight\n );\n\n this.el.querySelectorAll(IC_NAVIGATION_ITEM).forEach((navigationItem) => {\n const navItem =\n navigationItem.shadowRoot?.querySelector(\"a\") ||\n navigationItem.querySelector(\"a\");\n navItem?.setAttribute(\"tabindex\", this.expanded ? \"0\" : \"-1\");\n });\n };\n\n private showDropdown() {\n if (!this.dropdownOpen) {\n this.navigationGroupOpened.emit({\n source: this.el,\n });\n\n this.toggleDropdown();\n }\n }\n\n private hideDropdown() {\n document.removeEventListener(\"keydown\", this.handleKeydown);\n if (this.dropdownOpen) {\n this.toggleDropdown();\n }\n }\n\n private handleClick = (ev: MouseEvent) => {\n if (this.navigationType === \"top\" && ev.detail) {\n this.toggleDropdown();\n } else {\n this.toggleExpanded();\n }\n };\n\n private handleBlur = (ev: FocusEvent) => {\n if (!this.el.contains(ev.relatedTarget as HTMLElement)) {\n this.hideDropdown();\n }\n };\n\n private handleKeydown = (ev: KeyboardEvent) => {\n const { key } = ev;\n if (key !== \"Enter\" && key !== \" \" && key !== \"Escape\") return;\n\n switch (this.navigationType) {\n case \"top\":\n if (key === \" \" || key === \"Enter\") {\n this.toggleDropdown();\n } else if (!this.inTopNavSideMenu) {\n this.hideDropdown();\n }\n break;\n case \"side\":\n this.toggleExpanded();\n ev.preventDefault();\n break;\n default:\n this.toggleExpanded();\n break;\n }\n };\n\n private handleMouseLeave = (ev: MouseEvent) => {\n const relTarget = ev.relatedTarget as HTMLElement;\n\n this.mouseGate = false;\n\n if (\n this.el.contains(relTarget) ||\n relTarget === this.dropdown ||\n this.el.contains(document.activeElement)\n )\n return;\n\n if (\n document.activeElement !== this.el &&\n relTarget?.nodeName === NODE_NAME &&\n this.dropdownOpen\n ) {\n this.mouseGate = true;\n this.hideDropdown();\n } else {\n this.mouseGate = false;\n setTimeout(() => {\n this.dropdownOpen ? this.hideDropdown() : null;\n }, 500);\n }\n };\n\n private handleMouseEnter = (ev: MouseEvent) => {\n const relTarget = ev.relatedTarget as HTMLElement | null;\n document.addEventListener(\"keydown\", this.handleKeydown);\n\n if (relTarget?.nodeName === NODE_NAME && this.mouseGate) {\n this.showDropdown();\n } else if (!this.dropdownOpen && !this.mouseGate) {\n this.mouseGate = true;\n setTimeout(() => {\n if (this.mouseGate) this.showDropdown();\n }, 500);\n }\n };\n\n private renderGroupTitleText = () => (\n <ic-typography\n id=\"nav-group-title\"\n variant={this.navigationType === \"side\" ? \"caption\" : \"label\"}\n >\n {this.label}\n </ic-typography>\n );\n\n private renderNavigationItems = () => {\n if (this.dropdownOpen || (this.inTopNavSideMenu && !this.expandable)) {\n return (\n <div\n class={{\n [this.inTopNavSideMenu\n ? \"navigation-group-dropdown-side-menu\"\n : \"navigation-group-dropdown\"]: true,\n selected: this.dropdownOpen && !this.inTopNavSideMenu,\n }}\n onMouseLeave={\n !this.inTopNavSideMenu ? this.handleMouseLeave : undefined\n }\n ref={(el) => (this.dropdown = el)}\n >\n <nav\n class={{\n \"navigation-group-dropdown-items\": !this.inTopNavSideMenu,\n }}\n aria-labelledby=\"nav-group-title\"\n >\n <ul>\n <slot></slot>\n </ul>\n </nav>\n </div>\n );\n }\n\n if (this.navigationType !== \"top\") {\n return (\n <ul ref={(el) => (this.linkWrapper = el)} class=\"grouped-links-wrapper\">\n <slot></slot>\n </ul>\n );\n }\n\n return null;\n };\n\n private setGroupedLinksElementHeight = (height: string | null) => {\n this.linkWrapper?.style.setProperty(\n \"--navigation-child-items-height\",\n height\n );\n };\n\n render() {\n const {\n dropdownOpen,\n expanded,\n inTopNavSideMenu,\n expandable,\n theme,\n isSideNavExpanded,\n focusStyle,\n } = this;\n\n const getExpandedClassSuffix = (prop: boolean) =>\n prop ? \"expanded\" : \"collapsed\";\n\n const navGroupTitleClassNames = {\n \"navigation-group\": true,\n [focusStyle]: !inTopNavSideMenu,\n [`navigation-group-side-menu-${getExpandedClassSuffix(dropdownOpen)}`]:\n inTopNavSideMenu && expandable,\n selected: dropdownOpen && !inTopNavSideMenu,\n };\n\n const isSideNav = this.navigationType === \"side\";\n const isTopNav = this.navigationType === \"top\";\n const isTopNavDesktop = !inTopNavSideMenu && isTopNav;\n\n const ariaExpanded = (isSideNav && expanded) || (isTopNav && dropdownOpen);\n\n return (\n <Host\n class={{\n \"in-side-menu\": inTopNavSideMenu,\n \"ic-navigation-group-expandable\": expandable,\n \"ic-navigation-group-side-nav\": isSideNav,\n [`ic-navigation-group-${getExpandedClassSuffix(expanded)}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n role=\"listitem\"\n >\n {expandable || isTopNavDesktop ? (\n <button\n onMouseEnter={isTopNavDesktop ? this.handleMouseEnter : undefined}\n onMouseLeave={isTopNav ? this.handleMouseLeave : undefined}\n onBlur={this.handleBlur}\n onClick={this.handleClick}\n onKeyDown={this.handleKeydown}\n class={navGroupTitleClassNames}\n ref={(el) => (this.groupEl = el)}\n aria-expanded={`${ariaExpanded}`}\n aria-haspopup={`${isTopNavDesktop}`}\n >\n {this.renderGroupTitleText()}\n {isSideNav && expandable && (\n <div\n class={{\n \"chevron-toggle-icon-wrapper\": true,\n \"chevron-toggle-icon-closed\": !!expanded,\n }}\n innerHTML={chevronIcon}\n ></div>\n )}\n </button>\n ) : (\n (!isSideNav || isSideNavExpanded) && (\n <div class={navGroupTitleClassNames}>\n {this.renderGroupTitleText()}\n </div>\n )\n )}\n {this.renderNavigationItems()}\n </Host>\n );\n }\n}\n"]}
|
|
@@ -533,6 +533,12 @@ svg {
|
|
|
533
533
|
cursor: pointer;
|
|
534
534
|
}
|
|
535
535
|
|
|
536
|
+
:host(.navigation-item:not(.navigation-item-page-header, .navigation-item-side-menu, .navigation-item-top-nav-child))
|
|
537
|
+
::slotted(a:hover:not(:focus)),
|
|
538
|
+
:host(.navigation-item-side-nav.navigation-item) .link:hover:not(:focus) {
|
|
539
|
+
background-color: var(--ic-brand-hover) !important;
|
|
540
|
+
}
|
|
541
|
+
|
|
536
542
|
:host(.navigation-item:not(.navigation-item-top-nav-child, .navigation-item-side-menu, .navigation-item-top-nav-child-selected
|
|
537
543
|
.navigation-item-side-menu-selected))
|
|
538
544
|
.focus-indicator:focus-within {
|
|
@@ -629,8 +635,7 @@ svg {
|
|
|
629
635
|
:host(.navigation-item-top-nav-child) .link,
|
|
630
636
|
:host(.navigation-item-top-nav-child) ::slotted(a) {
|
|
631
637
|
height: 2.5rem;
|
|
632
|
-
width: -
|
|
633
|
-
width: fit-content;
|
|
638
|
+
width: calc(100% - var(--ic-space-xl));
|
|
634
639
|
min-width: 9.063rem;
|
|
635
640
|
color: var(--ic-top-navigation-nav-item);
|
|
636
641
|
display: flex;
|
|
@@ -964,10 +969,6 @@ svg {
|
|
|
964
969
|
border-radius: 0;
|
|
965
970
|
}
|
|
966
971
|
|
|
967
|
-
:host(.navigation-item-side-nav.navigation-item) .link:hover:not(:focus) {
|
|
968
|
-
background-color: var(--ic-brand-hover) !important;
|
|
969
|
-
}
|
|
970
|
-
|
|
971
972
|
:host(.navigation-item-page-header).link,
|
|
972
973
|
:host(.navigation-item-page-header) a,
|
|
973
974
|
:host(.navigation-item-page-header) ::slotted(a) {
|
|
@@ -53,10 +53,7 @@ export class NavigationItem {
|
|
|
53
53
|
const variant = this.isTopNavChild || this.inTopNavSideMenu ? "body" : "label";
|
|
54
54
|
const ChevronIconComponent = this.expandable && (h("div", { class: { svg: true }, innerHTML: chevronIcon }));
|
|
55
55
|
const slottedBadgeEl = this.el.querySelector('[slot="badge"]');
|
|
56
|
-
const BadgeComponent = slottedBadgeEl && (h("div", { class:
|
|
57
|
-
this.inTopNavSideMenu
|
|
58
|
-
? "inline-badge"
|
|
59
|
-
: "badge" }, h("slot", { name: "badge" })));
|
|
56
|
+
const BadgeComponent = slottedBadgeEl && (h("div", { class: "inline-badge" }, h("slot", { name: "badge" })));
|
|
60
57
|
const IconComponent = this.el.querySelector('[slot="icon"]') && (h("div", { class: "icon" }, h("slot", { name: "icon" }), this.isInSideNav && BadgeComponent));
|
|
61
58
|
return href !== "" ? (h("a", { href: href, target: target, rel: rel, hreflang: hreflang, referrerPolicy: referrerpolicy, download: download !== false ? download : null, class: "link", ref: (el) => (this.itemEl = el), part: "link", "aria-label": this.ariaLabel ? this.ariaLabel : null }, IconComponent, h("ic-typography", { variant: variant }, label), target === "_blank" && (h("span", { class: "open-in-new-icon", innerHTML: OpenInNew })), BadgeComponent, h("div", { class: "chevron-container" }, ChevronIconComponent))) : (h("div", { tabindex: "0", class: "link", ref: (el) => (this.itemEl = el) }, IconComponent, h("ic-typography", { variant: variant }, label), ChevronIconComponent, BadgeComponent));
|
|
62
59
|
};
|
|
@@ -207,7 +204,7 @@ export class NavigationItem {
|
|
|
207
204
|
render() {
|
|
208
205
|
const { inTopNavSideMenu, isTopNavChild, selected, navigationType, focusStyle, isInitialRender, sideNavExpanded, displayNavigationTooltip, collapsedIconLabel, isSideNavMobile, expandable, isInSideNav, theme, } = this;
|
|
209
206
|
const isTopNavChildDesktop = isTopNavChild && !inTopNavSideMenu;
|
|
210
|
-
return (h(Host, { key: '
|
|
207
|
+
return (h(Host, { key: 'fbc3ed6180f0dcf2430f28de0a8c94f397269054', class: {
|
|
211
208
|
"navigation-item": true,
|
|
212
209
|
"navigation-item-selected": !isTopNavChild && selected,
|
|
213
210
|
"navigation-item-top-nav": !inTopNavSideMenu && navigationType === "top",
|
|
@@ -226,7 +223,7 @@ export class NavigationItem {
|
|
|
226
223
|
expandable,
|
|
227
224
|
[focusStyle]: isTopNavChild ? isInSideNav : !inTopNavSideMenu,
|
|
228
225
|
[`ic-theme-${theme}`]: theme !== "inherit",
|
|
229
|
-
}, onBlur: isTopNavChildDesktop ? this.handleBlur : null, onClick: this.handleClick, onKeyDown: this.handleClick, "aria-current": selected ? "page" : null, role: "listitem" }, h("ic-tooltip", { key: '
|
|
226
|
+
}, onBlur: isTopNavChildDesktop ? this.handleBlur : null, onClick: this.handleClick, onKeyDown: this.handleClick, "aria-current": selected ? "page" : null, role: "listitem" }, h("ic-tooltip", { key: 'd308ed029016a9d3c6c0d2400880b74eaa1e0b2e', label: this.generateTooltipLabel(), target: "navigation-item", placement: "right", class: {
|
|
230
227
|
"tooltip-navigation-item": true,
|
|
231
228
|
"tooltip-navigation-item-side-nav-collapsed": displayNavigationTooltip && isInSideNav,
|
|
232
229
|
"tooltip-long-label-navigation-item-side-nav-expanded": this.el.hasAttribute("[display-navigation-tooltip = 'true']"),
|