@ukic/web-components 3.10.0 → 3.12.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/constants-3a9ba64a.js +191 -0
- package/dist/cjs/constants-3a9ba64a.js.map +1 -0
- package/dist/cjs/core.cjs.js +1 -1
- package/dist/cjs/{helpers-a0e78e2e.js → helpers-478d1107.js} +6 -187
- package/dist/cjs/helpers-478d1107.js.map +1 -0
- package/dist/cjs/ic-accordion-group.cjs.entry.js +2 -1
- package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-accordion.cjs.entry.js +2 -1
- package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-action-chip.cjs.entry.js +2 -1
- package/dist/cjs/ic-action-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-alert.cjs.entry.js +4 -3
- package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-back-to-top.cjs.entry.js +2 -1
- package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-badge.cjs.entry.js +2 -1
- package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +2 -1
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-breadcrumb.cjs.entry.js +2 -1
- package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js +27 -20
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-card-vertical.cjs.entry.js +2 -1
- package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox-group.cjs.entry.js +8 -4
- package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox.cjs.entry.js +5 -4
- package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-chip.cjs.entry.js +7 -5
- package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
- package/dist/cjs/ic-data-row.cjs.entry.js +4 -3
- package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-dialog.cjs.entry.js +7 -4
- package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-divider.cjs.entry.js +2 -1
- package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-empty-state.cjs.entry.js +4 -3
- package/dist/cjs/ic-empty-state.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -1
- package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer-link.cjs.entry.js +4 -3
- package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer.cjs.entry.js +10 -9
- package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-hero.cjs.entry.js +6 -5
- package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +7 -6
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +1388 -12
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-label_2.cjs.entry.js +27 -12
- package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-layout-grid-item.cjs.entry.js +2 -2
- package/dist/cjs/ic-layout-grid.cjs.entry.js +2 -2
- package/dist/cjs/ic-link.cjs.entry.js +5 -4
- package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu-group.cjs.entry.js +3 -2
- package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu-item.cjs.entry.js +2 -1
- package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-button.cjs.entry.js +3 -2
- package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js +3 -2
- package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +2 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-menu.cjs.entry.js +6 -5
- package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-page-header.cjs.entry.js +8 -7
- package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination-item.cjs.entry.js +3 -2
- package/dist/cjs/ic-pagination-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination.cjs.entry.js +6 -5
- package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-popover-menu.cjs.entry.js +6 -5
- package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js +15 -7
- package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js +7 -6
- package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +11 -10
- 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 +21 -13
- package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-side-navigation.cjs.entry.js +6 -5
- 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 +4 -3
- package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-step.cjs.entry.js +67 -54
- package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-stepper.cjs.entry.js +21 -3
- package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-switch.cjs.entry.js +6 -5
- package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-context.cjs.entry.js +10 -2
- package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-group.cjs.entry.js +4 -3
- package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
- package/dist/cjs/ic-tab.cjs.entry.js +2 -1
- package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-text-field.cjs.entry.js +32 -23
- package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-theme.cjs.entry.js +5 -4
- package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
- package/dist/cjs/ic-toast.cjs.entry.js +7 -6
- package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js +4 -3
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toggle-button.cjs.entry.js +4 -3
- package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-top-navigation.cjs.entry.js +2 -1
- package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-typography.cjs.entry.js +4 -3
- package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
- package/dist/cjs/index.cjs.js +16 -0
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/assets/ai-icon.svg +1 -1
- package/dist/collection/assets/error-icon.svg +4 -4
- package/dist/collection/assets/info-icon.svg +4 -4
- package/dist/collection/assets/neutral-icon.svg +4 -4
- package/dist/collection/assets/success-icon.svg +4 -4
- package/dist/collection/assets/warning-icon.svg +4 -4
- package/dist/collection/components/ic-alert/ic-alert.js +1 -1
- package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
- package/dist/collection/components/ic-button/ic-button.js +14 -8
- package/dist/collection/components/ic-button/ic-button.js.map +1 -1
- package/dist/collection/components/ic-button/ic-button.stories.js +191 -0
- package/dist/collection/components/ic-card-vertical/ic-card-vertical.stories.js +10 -10
- package/dist/collection/components/ic-checkbox/ic-checkbox.css +5 -0
- package/dist/collection/components/ic-checkbox/ic-checkbox.js +2 -2
- package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.css +3 -3
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +5 -2
- 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 +11 -28
- package/dist/collection/components/ic-chip/ic-chip.css +4 -0
- package/dist/collection/components/ic-chip/ic-chip.js +4 -3
- package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
- package/dist/collection/components/ic-data-list/ic-data-list.js +2 -2
- package/dist/collection/components/ic-data-list/ic-data-list.stories.js +30 -6
- package/dist/collection/components/ic-data-row/ic-data-row.js +2 -2
- package/dist/collection/components/ic-dialog/ic-dialog.js +5 -3
- package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
- package/dist/collection/components/ic-dialog/ic-dialog.stories.js +40 -1
- package/dist/collection/components/ic-empty-state/ic-empty-state.js +2 -2
- 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.js +2 -2
- package/dist/collection/components/ic-input-validation/ic-input-validation.css +9 -1
- package/dist/collection/components/ic-input-validation/ic-input-validation.js +27 -10
- package/dist/collection/components/ic-input-validation/ic-input-validation.js.map +1 -1
- package/dist/collection/components/ic-layout-grid/ic-layout-grid.js +2 -2
- package/dist/collection/components/ic-layout-grid-item/ic-layout-grid-item.js +2 -2
- package/dist/collection/components/ic-link/ic-link.js +1 -1
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +5 -5
- package/dist/collection/components/ic-menu/ic-menu.css +2 -2
- package/dist/collection/components/ic-menu/ic-menu.js +6 -5
- 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-group/ic-navigation-group.js +1 -1
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -4
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
- 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.js +4 -4
- package/dist/collection/components/ic-radio-group/ic-radio-group.css +2 -2
- package/dist/collection/components/ic-radio-group/ic-radio-group.js +40 -7
- 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 +178 -15
- package/dist/collection/components/ic-radio-option/ic-radio-option.css +37 -1
- package/dist/collection/components/ic-radio-option/ic-radio-option.js +4 -4
- package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
- package/dist/collection/components/ic-search-bar/ic-search-bar.js +9 -9
- package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
- package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
- package/dist/collection/components/ic-select/ic-select.js +44 -11
- package/dist/collection/components/ic-select/ic-select.js.map +1 -1
- package/dist/collection/components/ic-select/ic-select_(multi).stories.js +22 -8
- package/dist/collection/components/ic-select/ic-select_(searchable).stories.js +16 -3
- package/dist/collection/components/ic-select/ic-select_(single).stories.js +119 -10
- package/dist/collection/components/ic-select/test/a11y/ic-select.test.a11y.js +60 -0
- package/dist/collection/components/ic-select/test/a11y/ic-select.test.a11y.js.map +1 -0
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +4 -4
- 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 +89 -53
- package/dist/collection/components/ic-step/ic-step.js.map +1 -1
- package/dist/collection/components/ic-step/ic-step.types.js.map +1 -1
- package/dist/collection/components/ic-stepper/ic-stepper.js +43 -2
- package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
- package/dist/collection/components/ic-stepper/ic-stepper.stories.js +75 -0
- package/dist/collection/components/ic-switch/ic-switch.js +4 -4
- package/dist/collection/components/ic-tab-context/ic-tab-context.js +27 -2
- package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +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 +4 -0
- package/dist/collection/components/ic-text-field/ic-text-field.js +53 -19
- 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 +102 -4
- 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/ic-toast.js.map +1 -1
- 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/ic-toggle-button.js.map +1 -1
- package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +2 -2
- package/dist/collection/components/ic-tooltip/ic-tooltip.js +6 -4
- package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
- package/dist/collection/components/ic-typography/ic-typography.js +2 -2
- package/dist/collection/index.js +1 -1
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/utils/common-helpers.js +17 -0
- package/dist/collection/utils/common-helpers.js.map +1 -0
- package/dist/collection/utils/constants.js +1 -0
- package/dist/collection/utils/constants.js.map +1 -1
- package/dist/collection/utils/types.js.map +1 -1
- package/dist/components/constants.js +177 -0
- package/dist/components/constants.js.map +1 -0
- package/dist/components/helpers.js +2 -174
- package/dist/components/helpers.js.map +1 -1
- package/dist/components/ic-action-chip.js +1 -1
- package/dist/components/ic-alert.js +3 -2
- package/dist/components/ic-alert.js.map +1 -1
- package/dist/components/ic-back-to-top.js +1 -1
- package/dist/components/ic-badge.js +1 -1
- package/dist/components/ic-breadcrumb-group.js +1 -1
- package/dist/components/ic-breadcrumb2.js +1 -1
- package/dist/components/ic-button2.js +17 -11
- package/dist/components/ic-button2.js.map +1 -1
- package/dist/components/ic-card-vertical.js +1 -1
- package/dist/components/ic-checkbox-group.js +7 -4
- package/dist/components/ic-checkbox-group.js.map +1 -1
- package/dist/components/ic-checkbox.js +4 -4
- package/dist/components/ic-checkbox.js.map +1 -1
- package/dist/components/ic-chip.js +6 -5
- package/dist/components/ic-chip.js.map +1 -1
- package/dist/components/ic-data-list.js +2 -2
- package/dist/components/ic-data-row.js +3 -3
- package/dist/components/ic-dialog.js +6 -4
- package/dist/components/ic-dialog.js.map +1 -1
- package/dist/components/ic-divider2.js +1 -1
- package/dist/components/ic-empty-state.js +3 -3
- package/dist/components/ic-footer-link-group.js +1 -1
- package/dist/components/ic-footer-link.js +3 -3
- package/dist/components/ic-footer.js +2 -1
- package/dist/components/ic-footer.js.map +1 -1
- package/dist/components/ic-hero.js +5 -5
- package/dist/components/ic-horizontal-scroll2.js +6 -6
- package/dist/components/ic-input-component-container2.js +5 -4
- package/dist/components/ic-input-component-container2.js.map +1 -1
- package/dist/components/ic-input-container2.js +2 -2
- package/dist/components/ic-input-label2.js +3 -3
- package/dist/components/ic-input-validation2.js +24 -7
- package/dist/components/ic-input-validation2.js.map +1 -1
- package/dist/components/ic-layout-grid-item.js +2 -2
- package/dist/components/ic-layout-grid.js +2 -2
- package/dist/components/ic-link2.js +3 -2
- package/dist/components/ic-link2.js.map +1 -1
- package/dist/components/ic-loading-indicator2.js +5 -5
- package/dist/components/ic-menu-group.js +2 -2
- package/dist/components/ic-menu-item2.js +1 -1
- package/dist/components/ic-menu2.js +1383 -7
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-navigation-button.js +2 -1
- package/dist/components/ic-navigation-button.js.map +1 -1
- package/dist/components/ic-navigation-group.js +2 -2
- package/dist/components/ic-navigation-item.js +1 -1
- package/dist/components/ic-navigation-menu2.js +5 -5
- package/dist/components/ic-navigation-menu2.js.map +1 -1
- package/dist/components/ic-page-header.js +7 -7
- package/dist/components/ic-pagination-item2.js +2 -2
- package/dist/components/ic-pagination.js +4 -4
- package/dist/components/ic-popover-menu.js +5 -5
- package/dist/components/ic-popover-menu.js.map +1 -1
- package/dist/components/ic-radio-group.js +15 -7
- package/dist/components/ic-radio-group.js.map +1 -1
- package/dist/components/ic-radio-option.js +6 -6
- package/dist/components/ic-radio-option.js.map +1 -1
- package/dist/components/ic-search-bar.js +10 -10
- 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 +21 -12
- package/dist/components/ic-select.js.map +1 -1
- package/dist/components/ic-side-navigation.js +5 -5
- 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 +67 -54
- package/dist/components/ic-step.js.map +1 -1
- package/dist/components/ic-stepper.js +20 -2
- package/dist/components/ic-stepper.js.map +1 -1
- package/dist/components/ic-switch.js +5 -5
- package/dist/components/ic-tab-context.js +11 -2
- package/dist/components/ic-tab-context.js.map +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 +31 -21
- package/dist/components/ic-text-field.js.map +1 -1
- package/dist/components/ic-theme.js +3 -2
- package/dist/components/ic-theme.js.map +1 -1
- package/dist/components/ic-toast-region.js +1 -1
- package/dist/components/ic-toast.js +5 -4
- package/dist/components/ic-toast.js.map +1 -1
- package/dist/components/ic-toggle-button-group.js +2 -2
- package/dist/components/ic-toggle-button.js +3 -3
- package/dist/components/ic-toggle-button.js.map +1 -1
- package/dist/components/ic-tooltip2.js +6 -4
- package/dist/components/ic-tooltip2.js.map +1 -1
- package/dist/components/ic-top-navigation.js +1 -1
- package/dist/components/ic-typography2.js +2 -2
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/core/core.css +32 -4
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/index.esm.js +1 -1
- package/dist/core/p-0123dde7.entry.js +2 -0
- package/dist/core/p-0123dde7.entry.js.map +1 -0
- package/dist/core/p-01e018cb.entry.js +2 -0
- package/dist/core/{p-f309d3af.entry.js.map → p-01e018cb.entry.js.map} +1 -1
- package/dist/core/p-02af2b59.entry.js +2 -0
- package/dist/core/{p-ef4b5469.entry.js.map → p-02af2b59.entry.js.map} +1 -1
- package/dist/core/p-05036675.entry.js +2 -0
- package/dist/core/p-05036675.entry.js.map +1 -0
- package/dist/core/p-0c36ce84.entry.js +2 -0
- package/dist/core/{p-661ae402.entry.js.map → p-0c36ce84.entry.js.map} +1 -1
- package/dist/core/p-0ec76cff.entry.js +2 -0
- package/dist/core/{p-1d37ac1c.entry.js.map → p-0ec76cff.entry.js.map} +1 -1
- package/dist/core/p-13e093d0.entry.js +2 -0
- package/dist/core/{p-9eeb5e85.entry.js.map → p-13e093d0.entry.js.map} +1 -1
- package/dist/core/p-1423bd4a.entry.js +2 -0
- package/dist/core/{p-9f36791b.entry.js.map → p-1423bd4a.entry.js.map} +1 -1
- package/dist/core/p-2126d37b.entry.js +2 -0
- package/dist/core/{p-0c0c6a9e.entry.js.map → p-2126d37b.entry.js.map} +1 -1
- package/dist/core/p-228bc12d.entry.js +2 -0
- package/dist/core/{p-41f92698.entry.js.map → p-228bc12d.entry.js.map} +1 -1
- package/dist/core/p-25bef09d.entry.js +2 -0
- package/dist/core/{p-cf631191.entry.js.map → p-25bef09d.entry.js.map} +1 -1
- package/dist/core/p-27e67d45.entry.js +2 -0
- package/dist/core/{p-313a8a2f.entry.js.map → p-27e67d45.entry.js.map} +1 -1
- package/dist/core/p-2800fc30.entry.js +2 -0
- package/dist/core/{p-6ed0ac48.entry.js.map → p-2800fc30.entry.js.map} +1 -1
- package/dist/core/p-33582352.entry.js +2 -0
- package/dist/core/{p-317e005f.entry.js.map → p-33582352.entry.js.map} +1 -1
- package/dist/core/p-33789b23.entry.js +3 -0
- package/dist/core/p-33789b23.entry.js.map +1 -0
- package/dist/core/{p-287e5c17.entry.js → p-37d217b5.entry.js} +2 -2
- package/dist/core/{p-df88ff5b.entry.js → p-37daa8fe.entry.js} +2 -2
- package/dist/core/p-3e36f281.entry.js +2 -0
- package/dist/core/{p-711bfeed.entry.js.map → p-3e36f281.entry.js.map} +1 -1
- package/dist/core/p-45097448.entry.js +2 -0
- package/dist/core/{p-cbe0d1bb.entry.js.map → p-45097448.entry.js.map} +1 -1
- package/dist/core/{p-45dd12ee.entry.js → p-4747c39f.entry.js} +2 -2
- package/dist/core/p-4747c39f.entry.js.map +1 -0
- package/dist/core/{p-ffac41d6.entry.js → p-492fcb51.entry.js} +2 -2
- package/dist/core/p-514daffe.entry.js +2 -0
- package/dist/core/p-514daffe.entry.js.map +1 -0
- package/dist/core/p-54803e3b.entry.js +2 -0
- package/dist/core/{p-2f4f392f.entry.js.map → p-54803e3b.entry.js.map} +1 -1
- package/dist/core/{p-6e8ef73c.entry.js → p-57721431.entry.js} +2 -2
- package/dist/core/{p-5fbc8e62.entry.js → p-5fcfcfb6.entry.js} +2 -2
- package/dist/core/p-6058d4c9.entry.js +2 -0
- package/dist/core/{p-ea778379.entry.js.map → p-6058d4c9.entry.js.map} +1 -1
- package/dist/core/p-675bb3e4.entry.js +2 -0
- package/dist/core/{p-52748d5c.entry.js.map → p-675bb3e4.entry.js.map} +1 -1
- package/dist/core/p-6dbe70f1.entry.js +2 -0
- package/dist/core/{p-4ca782eb.entry.js.map → p-6dbe70f1.entry.js.map} +1 -1
- package/dist/core/p-6e139e6e.entry.js +2 -0
- package/dist/core/{p-0d680d19.entry.js.map → p-6e139e6e.entry.js.map} +1 -1
- package/dist/core/p-80317cd1.entry.js +2 -0
- package/dist/core/{p-9c013333.entry.js.map → p-80317cd1.entry.js.map} +1 -1
- package/dist/core/p-80e0f66e.entry.js +2 -0
- package/dist/core/{p-493eaabb.entry.js.map → p-80e0f66e.entry.js.map} +1 -1
- package/dist/core/p-813ad03c.entry.js +2 -0
- package/dist/core/{p-6a576a8b.entry.js.map → p-813ad03c.entry.js.map} +1 -1
- package/dist/core/p-8558b9b7.entry.js +2 -0
- package/dist/core/{p-21cf2beb.entry.js.map → p-8558b9b7.entry.js.map} +1 -1
- package/dist/core/p-8684efeb.entry.js +2 -0
- package/dist/core/{p-fc3b1155.entry.js.map → p-8684efeb.entry.js.map} +1 -1
- package/dist/core/p-8b99a806.entry.js +2 -0
- package/dist/core/{p-8a4b12e4.entry.js.map → p-8b99a806.entry.js.map} +1 -1
- package/dist/core/p-93479c36.entry.js +2 -0
- package/dist/core/{p-19cf2327.entry.js.map → p-93479c36.entry.js.map} +1 -1
- package/dist/core/p-95d3d1a7.entry.js +2 -0
- package/dist/core/{p-6014ab64.entry.js.map → p-95d3d1a7.entry.js.map} +1 -1
- package/dist/core/p-99793b64.entry.js +2 -0
- package/dist/core/p-99793b64.entry.js.map +1 -0
- package/dist/core/{p-ea061ccf.entry.js → p-9a8bcb78.entry.js} +2 -2
- package/dist/core/{p-8b5022bc.entry.js → p-9cf6ccfd.entry.js} +2 -2
- package/dist/core/p-a06c1e4e.entry.js +2 -0
- package/dist/core/{p-f6a02202.entry.js.map → p-a06c1e4e.entry.js.map} +1 -1
- package/dist/core/p-a1857d24.entry.js +2 -0
- package/dist/core/p-a1857d24.entry.js.map +1 -0
- package/dist/core/p-a1e2e029.entry.js +2 -0
- package/dist/core/{p-a77364f5.entry.js.map → p-a1e2e029.entry.js.map} +1 -1
- package/dist/core/p-abd88929.entry.js +2 -0
- package/dist/core/{p-af9c391d.entry.js.map → p-abd88929.entry.js.map} +1 -1
- package/dist/core/p-b0376079.entry.js +2 -0
- package/dist/core/{p-41ef74a7.entry.js.map → p-b0376079.entry.js.map} +1 -1
- package/dist/core/p-b1838ad8.entry.js +2 -0
- package/dist/core/p-b1838ad8.entry.js.map +1 -0
- package/dist/core/{p-999f0a5d.entry.js → p-b4a2f6fa.entry.js} +2 -2
- package/dist/core/p-b57e59b7.js +2 -0
- package/dist/core/p-b57e59b7.js.map +1 -0
- package/dist/core/p-b9bdd9a9.entry.js +2 -0
- package/dist/core/p-b9bdd9a9.entry.js.map +1 -0
- package/dist/core/p-bddf799a.js +2 -0
- package/dist/core/p-bddf799a.js.map +1 -0
- package/dist/core/p-c04e1fab.entry.js +2 -0
- package/dist/core/{p-1e2f40b0.entry.js.map → p-c04e1fab.entry.js.map} +1 -1
- package/dist/core/p-c2d5e301.entry.js +2 -0
- package/dist/core/p-c2d5e301.entry.js.map +1 -0
- package/dist/core/p-c975cced.entry.js +2 -0
- package/dist/core/{p-15dbccc2.entry.js.map → p-c975cced.entry.js.map} +1 -1
- package/dist/core/p-cc00cbce.entry.js +2 -0
- package/dist/core/p-cc00cbce.entry.js.map +1 -0
- package/dist/core/p-cf868a24.entry.js +2 -0
- package/dist/core/p-cf868a24.entry.js.map +1 -0
- package/dist/core/p-d58ad080.entry.js +2 -0
- package/dist/core/{p-b52000d9.entry.js.map → p-d58ad080.entry.js.map} +1 -1
- package/dist/core/p-de32a223.entry.js +2 -0
- package/dist/core/{p-43324339.entry.js.map → p-de32a223.entry.js.map} +1 -1
- package/dist/core/p-e6dacbe2.entry.js +2 -0
- package/dist/core/{p-b0d488d0.entry.js.map → p-e6dacbe2.entry.js.map} +1 -1
- package/dist/core/p-e9d28e02.entry.js +2 -0
- package/dist/core/p-e9d28e02.entry.js.map +1 -0
- package/dist/core/p-ea06792a.entry.js +2 -0
- package/dist/core/{p-72a9909c.entry.js.map → p-ea06792a.entry.js.map} +1 -1
- package/dist/core/p-eb0e7153.entry.js +2 -0
- package/dist/core/{p-3dc54847.entry.js.map → p-eb0e7153.entry.js.map} +1 -1
- package/dist/core/p-f609ca37.entry.js +2 -0
- package/dist/core/{p-9323c234.entry.js.map → p-f609ca37.entry.js.map} +1 -1
- package/dist/core/p-fb69fbc0.entry.js +2 -0
- package/dist/core/{p-7cd4f6a6.entry.js.map → p-fb69fbc0.entry.js.map} +1 -1
- package/dist/core/p-fb734a59.entry.js +2 -0
- package/dist/core/p-fb734a59.entry.js.map +1 -0
- package/dist/esm/constants-7960cba4.js +177 -0
- package/dist/esm/constants-7960cba4.js.map +1 -0
- package/dist/esm/core.js +1 -1
- package/dist/esm/{helpers-56631aa0.js → helpers-4ddac6ed.js} +3 -175
- package/dist/esm/helpers-4ddac6ed.js.map +1 -0
- package/dist/esm/ic-accordion-group.entry.js +2 -1
- package/dist/esm/ic-accordion-group.entry.js.map +1 -1
- package/dist/esm/ic-accordion.entry.js +2 -1
- package/dist/esm/ic-accordion.entry.js.map +1 -1
- package/dist/esm/ic-action-chip.entry.js +2 -1
- package/dist/esm/ic-action-chip.entry.js.map +1 -1
- package/dist/esm/ic-alert.entry.js +3 -2
- package/dist/esm/ic-alert.entry.js.map +1 -1
- package/dist/esm/ic-back-to-top.entry.js +2 -1
- package/dist/esm/ic-back-to-top.entry.js.map +1 -1
- package/dist/esm/ic-badge.entry.js +2 -1
- package/dist/esm/ic-badge.entry.js.map +1 -1
- package/dist/esm/ic-breadcrumb-group.entry.js +2 -1
- package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
- package/dist/esm/ic-breadcrumb.entry.js +2 -1
- package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
- package/dist/esm/ic-button_3.entry.js +25 -18
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-card-vertical.entry.js +2 -1
- package/dist/esm/ic-card-vertical.entry.js.map +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +8 -4
- package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
- package/dist/esm/ic-checkbox.entry.js +5 -4
- package/dist/esm/ic-checkbox.entry.js.map +1 -1
- package/dist/esm/ic-chip.entry.js +7 -5
- package/dist/esm/ic-chip.entry.js.map +1 -1
- package/dist/esm/ic-data-list.entry.js +2 -2
- package/dist/esm/ic-data-row.entry.js +4 -3
- package/dist/esm/ic-data-row.entry.js.map +1 -1
- package/dist/esm/ic-dialog.entry.js +7 -4
- package/dist/esm/ic-dialog.entry.js.map +1 -1
- package/dist/esm/ic-divider.entry.js +2 -1
- package/dist/esm/ic-divider.entry.js.map +1 -1
- package/dist/esm/ic-empty-state.entry.js +4 -3
- package/dist/esm/ic-empty-state.entry.js.map +1 -1
- package/dist/esm/ic-footer-link-group.entry.js +2 -1
- package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
- package/dist/esm/ic-footer-link.entry.js +4 -3
- package/dist/esm/ic-footer-link.entry.js.map +1 -1
- package/dist/esm/ic-footer.entry.js +2 -1
- package/dist/esm/ic-footer.entry.js.map +1 -1
- package/dist/esm/ic-hero.entry.js +6 -5
- package/dist/esm/ic-hero.entry.js.map +1 -1
- package/dist/esm/ic-horizontal-scroll.entry.js +7 -6
- package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
- package/dist/esm/ic-input-component-container_3.entry.js +1388 -12
- package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
- package/dist/esm/ic-input-label_2.entry.js +24 -9
- package/dist/esm/ic-input-label_2.entry.js.map +1 -1
- package/dist/esm/ic-layout-grid-item.entry.js +2 -2
- package/dist/esm/ic-layout-grid.entry.js +2 -2
- package/dist/esm/ic-link.entry.js +3 -2
- package/dist/esm/ic-link.entry.js.map +1 -1
- package/dist/esm/ic-menu-group.entry.js +3 -2
- package/dist/esm/ic-menu-group.entry.js.map +1 -1
- package/dist/esm/ic-menu-item.entry.js +2 -1
- package/dist/esm/ic-menu-item.entry.js.map +1 -1
- package/dist/esm/ic-navigation-button.entry.js +2 -1
- package/dist/esm/ic-navigation-button.entry.js.map +1 -1
- package/dist/esm/ic-navigation-group.entry.js +3 -2
- package/dist/esm/ic-navigation-group.entry.js.map +1 -1
- package/dist/esm/ic-navigation-item.entry.js +2 -1
- package/dist/esm/ic-navigation-item.entry.js.map +1 -1
- package/dist/esm/ic-navigation-menu.entry.js +6 -5
- package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
- package/dist/esm/ic-page-header.entry.js +8 -7
- package/dist/esm/ic-page-header.entry.js.map +1 -1
- package/dist/esm/ic-pagination-item.entry.js +3 -2
- package/dist/esm/ic-pagination-item.entry.js.map +1 -1
- package/dist/esm/ic-pagination.entry.js +6 -5
- package/dist/esm/ic-pagination.entry.js.map +1 -1
- package/dist/esm/ic-popover-menu.entry.js +6 -5
- package/dist/esm/ic-popover-menu.entry.js.map +1 -1
- package/dist/esm/ic-radio-group.entry.js +15 -7
- package/dist/esm/ic-radio-group.entry.js.map +1 -1
- package/dist/esm/ic-radio-option.entry.js +7 -6
- package/dist/esm/ic-radio-option.entry.js.map +1 -1
- package/dist/esm/ic-search-bar.entry.js +11 -10
- 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 +20 -12
- package/dist/esm/ic-select.entry.js.map +1 -1
- package/dist/esm/ic-side-navigation.entry.js +6 -5
- 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 +4 -3
- package/dist/esm/ic-status-tag.entry.js.map +1 -1
- package/dist/esm/ic-step.entry.js +67 -54
- package/dist/esm/ic-step.entry.js.map +1 -1
- package/dist/esm/ic-stepper.entry.js +21 -3
- package/dist/esm/ic-stepper.entry.js.map +1 -1
- package/dist/esm/ic-switch.entry.js +6 -5
- package/dist/esm/ic-switch.entry.js.map +1 -1
- package/dist/esm/ic-tab-context.entry.js +10 -2
- package/dist/esm/ic-tab-context.entry.js.map +1 -1
- package/dist/esm/ic-tab-group.entry.js +4 -3
- package/dist/esm/ic-tab-group.entry.js.map +1 -1
- package/dist/esm/ic-tab-panel.entry.js +2 -2
- package/dist/esm/ic-tab.entry.js +2 -1
- package/dist/esm/ic-tab.entry.js.map +1 -1
- package/dist/esm/ic-text-field.entry.js +30 -21
- package/dist/esm/ic-text-field.entry.js.map +1 -1
- package/dist/esm/ic-theme.entry.js +3 -2
- package/dist/esm/ic-theme.entry.js.map +1 -1
- package/dist/esm/ic-toast-region.entry.js +1 -1
- package/dist/esm/ic-toast.entry.js +5 -4
- package/dist/esm/ic-toast.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button-group.entry.js +4 -3
- package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button.entry.js +4 -3
- package/dist/esm/ic-toggle-button.entry.js.map +1 -1
- package/dist/esm/ic-top-navigation.entry.js +2 -1
- package/dist/esm/ic-top-navigation.entry.js.map +1 -1
- package/dist/esm/ic-typography.entry.js +4 -3
- package/dist/esm/ic-typography.entry.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-button/ic-button.d.ts +1 -0
- package/dist/types/components/ic-dialog/ic-dialog.d.ts +1 -0
- package/dist/types/components/ic-input-validation/ic-input-validation.d.ts +4 -3
- package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +6 -2
- package/dist/types/components/ic-select/ic-select.d.ts +5 -1
- package/dist/types/components/ic-select/test/a11y/ic-select.test.a11y.d.ts +1 -0
- package/dist/types/components/ic-step/ic-step.d.ts +5 -1
- package/dist/types/components/ic-step/ic-step.types.d.ts +10 -0
- package/dist/types/components/ic-stepper/ic-stepper.d.ts +5 -1
- package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +4 -0
- package/dist/types/components/ic-text-field/ic-text-field.d.ts +6 -1
- package/dist/types/components.d.ts +51 -9
- package/dist/types/index.d.ts +1 -0
- package/dist/types/interface.d.ts +0 -1
- package/dist/types/utils/common-helpers.d.ts +2 -0
- package/dist/types/utils/constants.d.ts +1 -0
- package/dist/types/utils/types.d.ts +2 -0
- package/hydrate/index.js +1721 -254
- package/hydrate/index.mjs +1721 -254
- package/package.json +5 -4
- package/vscode-data.json +51 -0
- package/dist/cjs/helpers-a0e78e2e.js.map +0 -1
- package/dist/collection/components/ic-input-validation/ic-input-validation.types.js +0 -2
- package/dist/collection/components/ic-input-validation/ic-input-validation.types.js.map +0 -1
- package/dist/core/p-0c0c6a9e.entry.js +0 -2
- package/dist/core/p-0d680d19.entry.js +0 -2
- package/dist/core/p-15dbccc2.entry.js +0 -2
- package/dist/core/p-19cf2327.entry.js +0 -2
- package/dist/core/p-1d37ac1c.entry.js +0 -2
- package/dist/core/p-1e2f40b0.entry.js +0 -2
- package/dist/core/p-21cf2beb.entry.js +0 -2
- package/dist/core/p-25007ec9.js +0 -2
- package/dist/core/p-25007ec9.js.map +0 -1
- package/dist/core/p-28efe829.entry.js +0 -2
- package/dist/core/p-28efe829.entry.js.map +0 -1
- package/dist/core/p-2f4f392f.entry.js +0 -2
- package/dist/core/p-313a8a2f.entry.js +0 -2
- package/dist/core/p-317e005f.entry.js +0 -2
- package/dist/core/p-3dc54847.entry.js +0 -2
- package/dist/core/p-3e5d7a3d.entry.js +0 -2
- package/dist/core/p-3e5d7a3d.entry.js.map +0 -1
- package/dist/core/p-41ef74a7.entry.js +0 -2
- package/dist/core/p-41f92698.entry.js +0 -2
- package/dist/core/p-43324339.entry.js +0 -2
- package/dist/core/p-45dd12ee.entry.js.map +0 -1
- package/dist/core/p-47f6dac2.entry.js +0 -2
- package/dist/core/p-47f6dac2.entry.js.map +0 -1
- package/dist/core/p-493eaabb.entry.js +0 -2
- package/dist/core/p-4ca782eb.entry.js +0 -2
- package/dist/core/p-4d1a3036.entry.js +0 -2
- package/dist/core/p-4d1a3036.entry.js.map +0 -1
- package/dist/core/p-52748d5c.entry.js +0 -2
- package/dist/core/p-595a4d06.entry.js +0 -2
- package/dist/core/p-595a4d06.entry.js.map +0 -1
- package/dist/core/p-5f68f62b.entry.js +0 -2
- package/dist/core/p-5f68f62b.entry.js.map +0 -1
- package/dist/core/p-6014ab64.entry.js +0 -2
- package/dist/core/p-661ae402.entry.js +0 -2
- package/dist/core/p-6a576a8b.entry.js +0 -2
- package/dist/core/p-6ed0ac48.entry.js +0 -2
- package/dist/core/p-711bfeed.entry.js +0 -2
- package/dist/core/p-72a9909c.entry.js +0 -2
- package/dist/core/p-742a9181.entry.js +0 -2
- package/dist/core/p-742a9181.entry.js.map +0 -1
- package/dist/core/p-7cd4f6a6.entry.js +0 -2
- package/dist/core/p-8a4b12e4.entry.js +0 -2
- package/dist/core/p-9323c234.entry.js +0 -2
- package/dist/core/p-97b93ddf.entry.js +0 -2
- package/dist/core/p-97b93ddf.entry.js.map +0 -1
- package/dist/core/p-9c013333.entry.js +0 -2
- package/dist/core/p-9eeb5e85.entry.js +0 -2
- package/dist/core/p-9f36791b.entry.js +0 -2
- package/dist/core/p-a602a8e1.entry.js +0 -2
- package/dist/core/p-a602a8e1.entry.js.map +0 -1
- package/dist/core/p-a77364f5.entry.js +0 -2
- package/dist/core/p-af9c391d.entry.js +0 -2
- package/dist/core/p-b0d488d0.entry.js +0 -2
- package/dist/core/p-b52000d9.entry.js +0 -2
- package/dist/core/p-bb4ce810.entry.js +0 -2
- package/dist/core/p-bb4ce810.entry.js.map +0 -1
- package/dist/core/p-cbe0d1bb.entry.js +0 -2
- package/dist/core/p-ceea1712.entry.js +0 -2
- package/dist/core/p-ceea1712.entry.js.map +0 -1
- package/dist/core/p-cf631191.entry.js +0 -2
- package/dist/core/p-e652ab09.entry.js +0 -2
- package/dist/core/p-e652ab09.entry.js.map +0 -1
- package/dist/core/p-e876e47c.entry.js +0 -2
- package/dist/core/p-e876e47c.entry.js.map +0 -1
- package/dist/core/p-ea778379.entry.js +0 -2
- package/dist/core/p-ef4b5469.entry.js +0 -2
- package/dist/core/p-f309d3af.entry.js +0 -2
- package/dist/core/p-f6a02202.entry.js +0 -2
- package/dist/core/p-fc3b1155.entry.js +0 -2
- package/dist/esm/helpers-56631aa0.js.map +0 -1
- package/dist/types/components/ic-input-validation/ic-input-validation.types.d.ts +0 -1
- /package/dist/core/{p-287e5c17.entry.js.map → p-37d217b5.entry.js.map} +0 -0
- /package/dist/core/{p-df88ff5b.entry.js.map → p-37daa8fe.entry.js.map} +0 -0
- /package/dist/core/{p-ffac41d6.entry.js.map → p-492fcb51.entry.js.map} +0 -0
- /package/dist/core/{p-6e8ef73c.entry.js.map → p-57721431.entry.js.map} +0 -0
- /package/dist/core/{p-5fbc8e62.entry.js.map → p-5fcfcfb6.entry.js.map} +0 -0
- /package/dist/core/{p-ea061ccf.entry.js.map → p-9a8bcb78.entry.js.map} +0 -0
- /package/dist/core/{p-8b5022bc.entry.js.map → p-9cf6ccfd.entry.js.map} +0 -0
- /package/dist/core/{p-999f0a5d.entry.js.map → p-b4a2f6fa.entry.js.map} +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["icToggleButtonCss","IcToggleButtonStyle0","TRACKED_ATTRIBUTES","ToggleButton","constructor","hostRef","this","checked","disabled","fullWidth","iconPlacement","loading","monochrome","outline","size","theme","tooltipPlacement","variant","handleFocus","ev","stopImmediatePropagation","handleClick","icToggleChecked","emit","watchDisabledHandler","removeDisabledFalse","el","componentWillLoad","isSlottedInGroup","parentAttributes","_a","parentElement","attributes","i","length","attribute","getNamedItem","name","value","componentDidLoad","onComponentRequiredPropUndefined","prop","accessibleLabel","label","propName","handleHostClick","e","render","iconVariant","h","Host","key","class","onFocus","onClick","title","isSlotUsed","slot"],"sources":["src/components/ic-toggle-button/ic-toggle-button.css?tag=ic-toggle-button&encapsulation=shadow","src/components/ic-toggle-button/ic-toggle-button.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/* VARIABLES FOR IC-TOGGLE-BUTTON-GROUP */\n:host {\n --toggle-button-border: var(--ic-toggle-button-unselected-border);\n --toggle-button-text-colour: var(--ic-toggle-button-unselected-text);\n --toggle-button-border-hover: var(--ic-toggle-button-unselected-border-hover);\n --toggle-button-text-colour-hover: var(\n --ic-toggle-button-unselected-text-hover\n );\n --toggle-button-border-active: var(\n --ic-toggle-button-unselected-border-pressed\n );\n --toggle-button-text-colour-active: var(\n --ic-toggle-button-unselected-text-pressed\n );\n}\n\n:host(:not(.expand-toggle-group-child)) {\n display: inline-block;\n border-radius: var(--ic-border-radius);\n border: var(--ic-border-width) solid var(--toggle-button-border);\n}\n\n:host(.ic-toggle-button-full-width:not(.expand-toggle-group-child)) {\n width: 100%;\n}\n\n:host(.ic-toggle-button-checked) {\n --toggle-button-border: var(--ic-toggle-button-selected-border);\n --toggle-button-text-colour: var(--ic-toggle-button-selected-text);\n --toggle-button-border-hover: var(--ic-toggle-button-selected-border-hover);\n --toggle-button-text-colour-hover: var(--ic-toggle-button-selected-text);\n --toggle-button-border-active: var(\n --ic-toggle-button-selected-border-pressed\n );\n --toggle-button-text-colour-active: var(--ic-toggle-button-selected-text);\n}\n\n:host(.ic-toggle-button-monochrome) {\n --toggle-button-border: var(--ic-toggle-button-unselected-border-monochrome);\n --toggle-button-text-colour: var(\n --ic-toggle-button-unselected-text-monochrome\n );\n --toggle-button-border-hover: var(\n --ic-toggle-button-unselected-border-hover-monochrome\n );\n --toggle-button-text-colour-hover: var(\n --ic-toggle-button-unselected-text-monochrome\n );\n --toggle-button-border-active: var(\n --ic-toggle-button-unselected-border-pressed-monochrome\n );\n --toggle-button-text-colour-active: var(\n --ic-toggle-button-unselected-text-monochrome\n );\n}\n\n:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) {\n --toggle-button-border: var(--ic-toggle-button-selected-border-monochrome);\n --toggle-button-text-colour: var(--ic-toggle-button-selected-text-monochrome);\n --toggle-button-border-hover: var(\n --ic-toggle-button-selected-border-hover-monochrome\n );\n --toggle-button-text-colour-hover: var(\n --ic-toggle-button-selected-text-monochrome\n );\n --toggle-button-border-active: var(\n --ic-toggle-button-selected-border-pressed-monochrome\n );\n --toggle-button-text-colour-active: var(\n --ic-toggle-button-selected-text-monochrome\n );\n}\n\n:host(.ic-toggle-button-disabled) {\n --toggle-button-border: var(--ic-toggle-button-unselected-border-disabled);\n --toggle-button-text-colour: var(--ic-toggle-button-unselected-text-disabled);\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-monochrome) {\n --toggle-button-border: var(\n --ic-toggle-button-unselected-border-disabled-monochrome\n );\n --toggle-button-text-colour: var(\n --ic-toggle-button-unselected-text-disabled-monochrome\n );\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-checked) {\n --toggle-button-border: var(--ic-toggle-button-selected-border-disabled);\n --toggle-button-text-colour: var(--ic-toggle-button-selected-text-disabled);\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome) {\n --toggle-button-border: var(\n --ic-toggle-button-selected-border-disabled-monochrome\n );\n --toggle-button-text-colour: var(\n --ic-toggle-button-selected-text-disabled-monochrome\n );\n}\n\n:host(.expand-toggle-group-child) ::part(button) {\n width: 100%;\n}\n\n:host(.expand-toggle-group-child:not(.ic-toggle-button-loading))\n ::part(button) {\n min-height: inherit;\n height: auto;\n}\n\n:host ic-button {\n --icon-width: var(--ic-space-lg);\n --icon-height: var(--ic-space-lg);\n}\n\n:host(.expand-toggle-group-child) ic-button {\n min-width: 100%;\n min-height: 100%;\n height: 100%;\n}\n\n:host(.expand-toggle-group-child) ::part(button):focus,\n:host(.expand-toggle-group-child.ic-toggle-button-checked)\n ::part(button):focus {\n box-shadow: inset 0 0 0 var(--ic-space-xxxs) var(--ic-action-default),\n var(--ic-border-focus);\n}\n\n:host(.expand-toggle-group-child.ic-toggle-button-light) ::part(button):focus,\n:host(.expand-toggle-group-child.ic-toggle-button-dark) ::part(button):focus {\n box-shadow: inset 0 0 0 var(--ic-space-xxxs) var(--ic-action-monochrome-dark),\n var(--ic-border-focus);\n}\n\n:host(:focus) {\n z-index: 1;\n}\n\n:host ::part(button) {\n border: none;\n color: var(--toggle-button-text-colour);\n}\n\n:host ::part(button):hover {\n color: var(--toggle-button-text-colour-hover);\n background-color: var(--ic-toggle-button-unselected-background-hover);\n}\n\n:host ::part(button):active {\n color: var(--toggle-button-text-colour-active);\n background-color: var(--ic-toggle-button-unselected-background-pressed);\n}\n\n:host ::part(button):focus {\n border: var(--ic-border-width) solid var(--toggle-button-border);\n}\n\n:host ::part(button):hover:focus {\n border: var(--ic-border-width) solid var(--toggle-button-border-hover);\n}\n\n:host ::part(button):active:focus {\n border: var(--ic-border-width) solid var(--toggle-button-border-active);\n}\n\n:host(.ic-toggle-button-disabled) ::part(button) {\n color: var(--toggle-button-text-colour);\n}\n\n:host(:not(.expand-toggle-group-child)):has(ic-button:hover) {\n border: var(--ic-border-width) solid var(--toggle-button-border-hover);\n}\n\n:host(:not(.expand-toggle-group-child)):has(ic-button:active) {\n border: var(--ic-border-width) solid var(--toggle-button-border-active);\n}\n\n:host(:not(.expand-toggle-group-child).ic-toggle-button-disabled) {\n border: var(--ic-border-width) dashed var(--toggle-button-border);\n}\n\n:host(.ic-toggle-button-checked) ::part(button) {\n background-color: var(--ic-toggle-button-selected-background);\n box-shadow: inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-text);\n}\n\n:host(.ic-toggle-button-checked) ::part(button):focus {\n box-shadow: inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-border-focus),\n var(--ic-border-focus);\n}\n\n:host(.ic-toggle-button-checked) ::part(button):hover {\n background-color: var(--ic-toggle-button-selected-background-hover);\n}\n\n:host(.ic-toggle-button-checked) ::part(button):active,\n:host(.ic-toggle-button-icon.ic-toggle-button-checked) ::part(button):active {\n background-color: var(--ic-toggle-button-selected-background-pressed);\n}\n\n:host(.ic-toggle-button-monochrome) ::part(button):hover {\n background-color: var(\n --ic-toggle-button-unselected-background-hover-monochrome\n );\n}\n\n:host(.ic-toggle-button-monochrome) ::part(button):active {\n background-color: var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n );\n}\n\n:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button) {\n background-color: var(--ic-toggle-button-selected-background-monochrome);\n}\n\n:host(.ic-toggle-button-monochrome.ic-toggle-button-checked)\n ::part(button):hover {\n background-color: var(\n --ic-toggle-button-selected-background-hover-monochrome\n );\n}\n\n:host(.ic-toggle-button-monochrome.ic-toggle-button-checked)\n ::part(button):active,\n:host(.ic-toggle-button-icon.ic-toggle-button-monochrome.ic-toggle-button-checked)\n ::part(button):active {\n background-color: var(\n --ic-toggle-button-selected-background-pressed-monochrome\n );\n}\n\n:host(.ic-toggle-button-monochrome.ic-toggle-button-checked)\n ::part(button):focus {\n box-shadow: inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-text),\n var(--ic-border-focus);\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button),\n:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked)\n ::part(button) {\n background-color: transparent;\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button),\n:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked)\n ::part(button)::before {\n background-image: radial-gradient(\n var(--ic-toggle-button-selected-background-disabled) 95%,\n white 20%\n );\n background-repeat: no-repeat;\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome)\n ::part(button),\n:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome)\n ::part(button)::before {\n background-image: radial-gradient(\n var(--ic-toggle-button-selected-background-disabled-monochrome) 95%,\n white 20%\n );\n background-repeat: no-repeat;\n}\n\n:host(.ic-toggle-button-icon) ::part(button) {\n height: calc(var(--ic-space-xl) + var(--ic-space-xs));\n width: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n:host(.ic-toggle-button-icon) ::part(button):active {\n background-color: var(--ic-action-default-bg-pressed);\n}\n\n:host(.ic-toggle-button-icon.ic-toggle-button-dark) ::part(button):active {\n background-color: var(--ic-action-dark-bg-pressed);\n}\n\n:host(.ic-toggle-button-icon.ic-toggle-button-light) ::part(button):active {\n background-color: var(--ic-action-light-bg-pressed);\n}\n\n:host(.ic-toggle-button-icon.ic-toggle-button-small) ::part(button) {\n height: var(--ic-space-xl);\n width: var(--ic-space-xl);\n}\n\n:host(.ic-toggle-button-icon.ic-toggle-button-large) ::part(button) {\n height: var(--ic-space-xxl);\n width: var(--ic-space-xxl);\n}\n\n:host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(button) {\n --loading-button-background: var(\n --ic-toggle-button-selected-background-pressed\n );\n\n background-color: var(--ic-toggle-button-selected-background-pressed);\n}\n\n:host(.ic-toggle-button-loading) ::part(button) {\n --loading-button-background: var(\n --ic-toggle-button-unselected-background-pressed\n );\n\n background-color: var(--ic-toggle-button-unselected-background-pressed);\n}\n\n:host(.ic-toggle-button-checked.ic-toggle-button-loading)\n ::part(ic-loading-container) {\n --inner-color: var(--ic-toggle-button-loading-bar);\n}\n\n:host(.ic-toggle-button-loading) ::part(ic-loading-container) {\n --inner-color: var(--ic-toggle-button-selected-loading-bar);\n}\n\n:host(.ic-toggle-button-checked.ic-toggle-button-loading.ic-toggle-button-monochrome)\n ::part(button) {\n --loading-button-background: var(\n --ic-toggle-button-selected-background-pressed-monochrome\n );\n\n background-color: var(\n --ic-toggle-button-selected-background-pressed-monochrome\n );\n}\n\n:host(.ic-toggle-button-loading.ic-toggle-button-monochrome) ::part(button) {\n --loading-button-background: var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n );\n\n background-color: var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n );\n}\n\n:host(.ic-toggle-button-hide-outline) {\n --toggle-button-border: transparent !important;\n --toggle-button-border-hover: transparent !important;\n --toggle-button-border-active: transparent !important;\n}\n\n:host(.ic-toggle-button-hide-outline) ::part(button):focus {\n border: none;\n}\n\n:host(.expand-toggle-group-child.ic-toggle-button-hide-outline)\n ::part(button):focus,\n:host(.expand-toggle-group-child.ic-toggle-button-hide-outline.ic-toggle-button-checked)\n ::part(button):focus {\n box-shadow: var(--ic-border-focus);\n}\n\n@media (forced-colors: active) {\n :host(.ic-toggle-button-checked) ::part(button),\n :host(.ic-toggle-button-checked) ::part(button):hover {\n background-color: Highlight;\n }\n\n :host(.ic-toggle-button-checked.ic-toggle-button-light) ::part(button),\n :host(.ic-toggle-button-checked.ic-toggle-button-light) ::part(button):hover {\n background-color: Highlight;\n }\n\n :host(.ic-toggle-button-checked.ic-toggle-button-dark) ::part(button),\n :host(.ic-toggle-button-checked.ic-toggle-button-dark) ::part(button):hover {\n background-color: Highlight;\n }\n\n :host(.ic-toggle-button-checked.ic-toggle-button-disabled) ::part(button) {\n background-color: GrayText;\n }\n\n :host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(button),\n :host(.ic-toggle-button-checked.ic-toggle-button-loading)\n ::part(button):hover {\n --loading-button-background: Highlight;\n }\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n Event,\n EventEmitter,\n Listen,\n h,\n Watch,\n} from \"@stencil/core\";\nimport {\n isSlotUsed,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n isSlottedInGroup,\n} from \"../../utils/helpers\";\nimport {\n IcSizes,\n IcThemeMode,\n IcIconPlacementOptions,\n IcButtonTooltipPlacement,\n} from \"../../utils/types\";\n\nconst TRACKED_ATTRIBUTES = [\n \"loading\",\n \"disabled\",\n \"full-width\",\n \"icon-placement\",\n \"variant\",\n \"size\",\n \"theme\",\n \"monochrome\",\n \"outline\",\n];\n\n/**\n * @slot icon - Content will be displayed alongside the toggle button label.\n * @slot badge - Badge component overlaying the top right of the toggle button.\n */\n\n@Component({\n tag: \"ic-toggle-button\",\n styleUrl: \"ic-toggle-button.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class ToggleButton {\n @Element() el: HTMLIcToggleButtonElement;\n\n /**\n * The accessible label that will be applied to the toggle button. This is required for the icon variant of toggle buttons.\n */\n @Prop() accessibleLabel?: string;\n\n /**\n * If `true`, the toggle button will be in a checked state.\n */\n @Prop({ mutable: true, reflect: true }) checked = false;\n\n /**\n * If `true`, the toggle button will be in disabled state.\n */\n @Prop({ mutable: true }) disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the toggle button will fill the width of the container.\n */\n @Prop({ mutable: true }) fullWidth = false;\n\n /**\n * The placement of the icon in relation to the toggle button label.\n */\n @Prop() iconPlacement: IcIconPlacementOptions = \"left\";\n\n /**\n * The label to display in the toggle button. This is required for the default variant of toggle buttons.\n */\n @Prop() label?: string;\n\n /**\n * If `true`, the toggle button will be in loading state.\n */\n @Prop({ mutable: true }) loading = false;\n\n /**\n * If `true`, the toggle button will display as black in the light theme, and white in dark theme.\n */\n @Prop({ mutable: true }) monochrome = false;\n\n /**\n * If `true`, the toggle button will display with an outline.\n */\n @Prop({ mutable: true }) outline = true;\n\n /**\n * The size of the toggle button to be displayed.\n */\n @Prop({ mutable: true }) size: IcSizes = \"medium\";\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 /**\n * The position of the tooltip in relation to the toggle button.\n */\n @Prop() tooltipPlacement: IcButtonTooltipPlacement = \"bottom\";\n\n /**\n * The variant of the toggle button.\n */\n @Prop({ reflect: true, mutable: true }) variant: \"default\" | \"icon\" =\n \"default\";\n\n /**\n * Emitted when the user clicks a toggle button.\n */\n @Event() icToggleChecked: EventEmitter<{\n checked: boolean;\n }>;\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n\n if (!isSlottedInGroup(this.el)) return;\n\n const parentAttributes = this.el.parentElement?.attributes;\n if (!parentAttributes) return;\n\n for (let i = 0; i < TRACKED_ATTRIBUTES.length; i++) {\n const attribute = parentAttributes.getNamedItem(TRACKED_ATTRIBUTES[i]);\n if (!attribute) continue;\n\n switch (attribute.name) {\n case TRACKED_ATTRIBUTES[0]:\n this.loading = attribute.value !== \"false\";\n break;\n case TRACKED_ATTRIBUTES[1]:\n this.disabled = attribute.value !== \"false\";\n break;\n case TRACKED_ATTRIBUTES[2]:\n this.fullWidth = attribute.value !== \"false\";\n break;\n case TRACKED_ATTRIBUTES[3]:\n this.iconPlacement = attribute.value as IcIconPlacementOptions;\n break;\n case TRACKED_ATTRIBUTES[4]:\n this.variant = attribute.value as \"default\" | \"icon\";\n break;\n case TRACKED_ATTRIBUTES[5]:\n this.size = attribute.value as IcSizes;\n break;\n case TRACKED_ATTRIBUTES[6]:\n this.theme = attribute.value as IcThemeMode;\n break;\n case TRACKED_ATTRIBUTES[7]:\n this.monochrome = attribute.value !== \"false\";\n break;\n case TRACKED_ATTRIBUTES[8]:\n this.outline = attribute.value !== \"false\";\n break;\n }\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [\n {\n prop: this.variant === \"icon\" ? this.accessibleLabel : this.label,\n propName: this.variant === \"icon\" ? \"accessible-label\" : \"label\",\n },\n ],\n \"Toggle button\"\n );\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(e: Event): void {\n if (this.disabled) {\n e.stopImmediatePropagation();\n } else if (!this.loading) {\n this.checked = !this.checked;\n }\n }\n\n private handleFocus = (ev: FocusEvent) => {\n ev.stopImmediatePropagation();\n };\n\n private handleClick = () => {\n if (!this.loading && !this.disabled) {\n this.icToggleChecked.emit({\n checked: this.checked,\n });\n }\n };\n\n render() {\n const {\n accessibleLabel,\n checked,\n disabled,\n fullWidth,\n iconPlacement,\n monochrome,\n label,\n loading,\n outline,\n size,\n theme,\n tooltipPlacement,\n variant,\n } = this;\n\n const iconVariant = variant === \"icon\";\n\n return (\n <Host\n class={{\n \"ic-toggle-button-checked\": checked,\n \"ic-toggle-button-disabled\": disabled,\n \"ic-toggle-button-icon\": iconVariant,\n \"ic-toggle-button-loading\": loading,\n \"ic-toggle-button-monochrome\": monochrome,\n \"ic-toggle-button-full-width\": fullWidth,\n \"ic-toggle-button-hide-outline\": !outline,\n [`ic-toggle-button-${size}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n onFocus={this.handleFocus}\n >\n <ic-button\n aria-pressed={`${checked}`}\n variant={iconVariant ? \"icon\" : \"secondary\"}\n onClick={this.handleClick}\n title={accessibleLabel}\n aria-label={`${accessibleLabel ? accessibleLabel : label}, ${\n checked ? \"ticked\" : \"unticked\"\n }`}\n disabled={disabled}\n size={size}\n fullWidth={fullWidth}\n loading={loading}\n tooltipPlacement={tooltipPlacement}\n >\n {!iconVariant && label}\n <slot />\n {isSlotUsed(this.el, \"icon\") && (\n <slot name=\"icon\" slot={`${iconPlacement}-icon`}></slot>\n )}\n {isSlotUsed(this.el, \"badge\") && (\n <slot name=\"badge\" slot=\"badge\"></slot>\n )}\n </ic-button>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["icToggleButtonCss","IcToggleButtonStyle0","TRACKED_ATTRIBUTES","ToggleButton","constructor","hostRef","this","checked","disabled","fullWidth","iconPlacement","loading","monochrome","outline","size","theme","tooltipPlacement","variant","handleFocus","ev","stopImmediatePropagation","handleClick","icToggleChecked","emit","watchDisabledHandler","removeDisabledFalse","el","componentWillLoad","isSlottedInGroup","parentAttributes","_a","parentElement","attributes","i","length","attribute","getNamedItem","name","value","componentDidLoad","onComponentRequiredPropUndefined","prop","accessibleLabel","label","propName","handleHostClick","e","render","iconVariant","h","Host","key","class","onFocus","onClick","title","isSlotUsed","slot"],"sources":["src/components/ic-toggle-button/ic-toggle-button.css?tag=ic-toggle-button&encapsulation=shadow","src/components/ic-toggle-button/ic-toggle-button.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/* VARIABLES FOR IC-TOGGLE-BUTTON-GROUP */\n:host {\n --toggle-button-border: var(--ic-toggle-button-unselected-border);\n --toggle-button-text-colour: var(--ic-toggle-button-unselected-text);\n --toggle-button-border-hover: var(--ic-toggle-button-unselected-border-hover);\n --toggle-button-text-colour-hover: var(\n --ic-toggle-button-unselected-text-hover\n );\n --toggle-button-border-active: var(\n --ic-toggle-button-unselected-border-pressed\n );\n --toggle-button-text-colour-active: var(\n --ic-toggle-button-unselected-text-pressed\n );\n}\n\n:host(:not(.expand-toggle-group-child)) {\n display: inline-block;\n border-radius: var(--ic-border-radius);\n border: var(--ic-border-width) solid var(--toggle-button-border);\n}\n\n:host(.ic-toggle-button-full-width:not(.expand-toggle-group-child)) {\n width: 100%;\n}\n\n:host(.ic-toggle-button-checked) {\n --toggle-button-border: var(--ic-toggle-button-selected-border);\n --toggle-button-text-colour: var(--ic-toggle-button-selected-text);\n --toggle-button-border-hover: var(--ic-toggle-button-selected-border-hover);\n --toggle-button-text-colour-hover: var(--ic-toggle-button-selected-text);\n --toggle-button-border-active: var(\n --ic-toggle-button-selected-border-pressed\n );\n --toggle-button-text-colour-active: var(--ic-toggle-button-selected-text);\n}\n\n:host(.ic-toggle-button-monochrome) {\n --toggle-button-border: var(--ic-toggle-button-unselected-border-monochrome);\n --toggle-button-text-colour: var(\n --ic-toggle-button-unselected-text-monochrome\n );\n --toggle-button-border-hover: var(\n --ic-toggle-button-unselected-border-hover-monochrome\n );\n --toggle-button-text-colour-hover: var(\n --ic-toggle-button-unselected-text-monochrome\n );\n --toggle-button-border-active: var(\n --ic-toggle-button-unselected-border-pressed-monochrome\n );\n --toggle-button-text-colour-active: var(\n --ic-toggle-button-unselected-text-monochrome\n );\n}\n\n:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) {\n --toggle-button-border: var(--ic-toggle-button-selected-border-monochrome);\n --toggle-button-text-colour: var(--ic-toggle-button-selected-text-monochrome);\n --toggle-button-border-hover: var(\n --ic-toggle-button-selected-border-hover-monochrome\n );\n --toggle-button-text-colour-hover: var(\n --ic-toggle-button-selected-text-monochrome\n );\n --toggle-button-border-active: var(\n --ic-toggle-button-selected-border-pressed-monochrome\n );\n --toggle-button-text-colour-active: var(\n --ic-toggle-button-selected-text-monochrome\n );\n}\n\n:host(.ic-toggle-button-disabled) {\n --toggle-button-border: var(--ic-toggle-button-unselected-border-disabled);\n --toggle-button-text-colour: var(--ic-toggle-button-unselected-text-disabled);\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-monochrome) {\n --toggle-button-border: var(\n --ic-toggle-button-unselected-border-disabled-monochrome\n );\n --toggle-button-text-colour: var(\n --ic-toggle-button-unselected-text-disabled-monochrome\n );\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-checked) {\n --toggle-button-border: var(--ic-toggle-button-selected-border-disabled);\n --toggle-button-text-colour: var(--ic-toggle-button-selected-text-disabled);\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome) {\n --toggle-button-border: var(\n --ic-toggle-button-selected-border-disabled-monochrome\n );\n --toggle-button-text-colour: var(\n --ic-toggle-button-selected-text-disabled-monochrome\n );\n}\n\n:host(.expand-toggle-group-child) ::part(button) {\n width: 100%;\n}\n\n:host(.expand-toggle-group-child:not(.ic-toggle-button-loading))\n ::part(button) {\n min-height: inherit;\n height: auto;\n}\n\n:host ic-button {\n --icon-width: var(--ic-space-lg);\n --icon-height: var(--ic-space-lg);\n}\n\n:host(.expand-toggle-group-child) ic-button {\n min-width: 100%;\n min-height: 100%;\n height: 100%;\n}\n\n:host(.expand-toggle-group-child) ::part(button):focus,\n:host(.expand-toggle-group-child.ic-toggle-button-checked)\n ::part(button):focus {\n box-shadow: inset 0 0 0 var(--ic-space-xxxs) var(--ic-action-default),\n var(--ic-border-focus);\n}\n\n:host(.expand-toggle-group-child.ic-toggle-button-light) ::part(button):focus,\n:host(.expand-toggle-group-child.ic-toggle-button-dark) ::part(button):focus {\n box-shadow: inset 0 0 0 var(--ic-space-xxxs) var(--ic-action-monochrome-dark),\n var(--ic-border-focus);\n}\n\n:host(:focus) {\n z-index: 1;\n}\n\n:host ::part(button) {\n border: none;\n color: var(--toggle-button-text-colour);\n}\n\n:host ::part(button):hover {\n color: var(--toggle-button-text-colour-hover);\n background-color: var(--ic-toggle-button-unselected-background-hover);\n}\n\n:host ::part(button):active {\n color: var(--toggle-button-text-colour-active);\n background-color: var(--ic-toggle-button-unselected-background-pressed);\n}\n\n:host ::part(button):focus {\n border: var(--ic-border-width) solid var(--toggle-button-border);\n}\n\n:host ::part(button):hover:focus {\n border: var(--ic-border-width) solid var(--toggle-button-border-hover);\n}\n\n:host ::part(button):active:focus {\n border: var(--ic-border-width) solid var(--toggle-button-border-active);\n}\n\n:host(.ic-toggle-button-disabled) ::part(button) {\n color: var(--toggle-button-text-colour);\n}\n\n:host(:not(.expand-toggle-group-child)):has(ic-button:hover) {\n border: var(--ic-border-width) solid var(--toggle-button-border-hover);\n}\n\n:host(:not(.expand-toggle-group-child)):has(ic-button:active) {\n border: var(--ic-border-width) solid var(--toggle-button-border-active);\n}\n\n:host(:not(.expand-toggle-group-child).ic-toggle-button-disabled) {\n border: var(--ic-border-width) dashed var(--toggle-button-border);\n}\n\n:host(.ic-toggle-button-checked) ::part(button) {\n background-color: var(--ic-toggle-button-selected-background);\n box-shadow: inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-text);\n}\n\n:host(.ic-toggle-button-checked) ::part(button):focus {\n box-shadow: inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-border-focus),\n var(--ic-border-focus);\n}\n\n:host(.ic-toggle-button-checked) ::part(button):hover {\n background-color: var(--ic-toggle-button-selected-background-hover);\n}\n\n:host(.ic-toggle-button-checked) ::part(button):active,\n:host(.ic-toggle-button-icon.ic-toggle-button-checked) ::part(button):active {\n background-color: var(--ic-toggle-button-selected-background-pressed);\n}\n\n:host(.ic-toggle-button-monochrome) ::part(button):hover {\n background-color: var(\n --ic-toggle-button-unselected-background-hover-monochrome\n );\n}\n\n:host(.ic-toggle-button-monochrome) ::part(button):active {\n background-color: var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n );\n}\n\n:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button) {\n background-color: var(--ic-toggle-button-selected-background-monochrome);\n}\n\n:host(.ic-toggle-button-monochrome.ic-toggle-button-checked)\n ::part(button):hover {\n background-color: var(\n --ic-toggle-button-selected-background-hover-monochrome\n );\n}\n\n:host(.ic-toggle-button-monochrome.ic-toggle-button-checked)\n ::part(button):active,\n:host(.ic-toggle-button-icon.ic-toggle-button-monochrome.ic-toggle-button-checked)\n ::part(button):active {\n background-color: var(\n --ic-toggle-button-selected-background-pressed-monochrome\n );\n}\n\n:host(.ic-toggle-button-monochrome.ic-toggle-button-checked)\n ::part(button):focus {\n box-shadow: inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-text),\n var(--ic-border-focus);\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button),\n:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked)\n ::part(button) {\n background-color: transparent;\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button),\n:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked)\n ::part(button)::before {\n background-image: radial-gradient(\n var(--ic-toggle-button-selected-background-disabled) 95%,\n white 20%\n );\n background-repeat: no-repeat;\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome)\n ::part(button),\n:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome)\n ::part(button)::before {\n background-image: radial-gradient(\n var(--ic-toggle-button-selected-background-disabled-monochrome) 95%,\n white 20%\n );\n background-repeat: no-repeat;\n}\n\n:host(.ic-toggle-button-icon) ::part(button) {\n height: calc(var(--ic-space-xl) + var(--ic-space-xs));\n width: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n:host(.ic-toggle-button-icon) ::part(button):active {\n background-color: var(--ic-action-default-bg-pressed);\n}\n\n:host(.ic-toggle-button-icon.ic-toggle-button-dark) ::part(button):active {\n background-color: var(--ic-action-dark-bg-pressed);\n}\n\n:host(.ic-toggle-button-icon.ic-toggle-button-light) ::part(button):active {\n background-color: var(--ic-action-light-bg-pressed);\n}\n\n:host(.ic-toggle-button-icon.ic-toggle-button-small) ::part(button) {\n height: var(--ic-space-xl);\n width: var(--ic-space-xl);\n}\n\n:host(.ic-toggle-button-icon.ic-toggle-button-large) ::part(button) {\n height: var(--ic-space-xxl);\n width: var(--ic-space-xxl);\n}\n\n:host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(button) {\n --loading-button-background: var(\n --ic-toggle-button-selected-background-pressed\n );\n\n background-color: var(--ic-toggle-button-selected-background-pressed);\n}\n\n:host(.ic-toggle-button-loading) ::part(button) {\n --loading-button-background: var(\n --ic-toggle-button-unselected-background-pressed\n );\n\n background-color: var(--ic-toggle-button-unselected-background-pressed);\n}\n\n:host(.ic-toggle-button-checked.ic-toggle-button-loading)\n ::part(ic-loading-container) {\n --inner-color: var(--ic-toggle-button-loading-bar);\n}\n\n:host(.ic-toggle-button-loading) ::part(ic-loading-container) {\n --inner-color: var(--ic-toggle-button-selected-loading-bar);\n}\n\n:host(.ic-toggle-button-checked.ic-toggle-button-loading.ic-toggle-button-monochrome)\n ::part(button) {\n --loading-button-background: var(\n --ic-toggle-button-selected-background-pressed-monochrome\n );\n\n background-color: var(\n --ic-toggle-button-selected-background-pressed-monochrome\n );\n}\n\n:host(.ic-toggle-button-loading.ic-toggle-button-monochrome) ::part(button) {\n --loading-button-background: var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n );\n\n background-color: var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n );\n}\n\n:host(.ic-toggle-button-hide-outline) {\n --toggle-button-border: transparent !important;\n --toggle-button-border-hover: transparent !important;\n --toggle-button-border-active: transparent !important;\n}\n\n:host(.ic-toggle-button-hide-outline) ::part(button):focus {\n border: none;\n}\n\n:host(.expand-toggle-group-child.ic-toggle-button-hide-outline)\n ::part(button):focus,\n:host(.expand-toggle-group-child.ic-toggle-button-hide-outline.ic-toggle-button-checked)\n ::part(button):focus {\n box-shadow: var(--ic-border-focus);\n}\n\n@media (forced-colors: active) {\n :host(.ic-toggle-button-checked) ::part(button),\n :host(.ic-toggle-button-checked) ::part(button):hover {\n background-color: Highlight;\n }\n\n :host(.ic-toggle-button-checked.ic-toggle-button-light) ::part(button),\n :host(.ic-toggle-button-checked.ic-toggle-button-light) ::part(button):hover {\n background-color: Highlight;\n }\n\n :host(.ic-toggle-button-checked.ic-toggle-button-dark) ::part(button),\n :host(.ic-toggle-button-checked.ic-toggle-button-dark) ::part(button):hover {\n background-color: Highlight;\n }\n\n :host(.ic-toggle-button-checked.ic-toggle-button-disabled) ::part(button) {\n background-color: GrayText;\n }\n\n :host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(button),\n :host(.ic-toggle-button-checked.ic-toggle-button-loading)\n ::part(button):hover {\n --loading-button-background: Highlight;\n }\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n Event,\n EventEmitter,\n Listen,\n h,\n Watch,\n} from \"@stencil/core\";\nimport {\n isSlotUsed,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n isSlottedInGroup,\n} from \"../../utils/helpers\";\nimport {\n IcSizes,\n IcThemeMode,\n IcIconPlacementOptions,\n IcButtonTooltipPlacement,\n} from \"../../utils/types\";\n\nconst TRACKED_ATTRIBUTES = [\n \"loading\",\n \"disabled\",\n \"full-width\",\n \"icon-placement\",\n \"variant\",\n \"size\",\n \"theme\",\n \"monochrome\",\n \"outline\",\n];\n\n/**\n * @slot icon - Content will be displayed alongside the toggle button label.\n * @slot badge - Badge component overlaying the top right of the toggle button.\n */\n\n@Component({\n tag: \"ic-toggle-button\",\n styleUrl: \"ic-toggle-button.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class ToggleButton {\n @Element() el: HTMLIcToggleButtonElement;\n\n /**\n * The accessible label that will be applied to the toggle button. This is required for the icon variant of toggle buttons.\n */\n @Prop() accessibleLabel?: string;\n\n /**\n * If `true`, the toggle button will be in a checked state.\n */\n @Prop({ mutable: true, reflect: true }) checked = false;\n\n /**\n * If `true`, the toggle button will be in disabled state.\n */\n @Prop({ mutable: true }) disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the toggle button will fill the width of the container.\n */\n @Prop({ mutable: true }) fullWidth = false;\n\n /**\n * The placement of the icon in relation to the toggle button label.\n */\n @Prop() iconPlacement: IcIconPlacementOptions = \"left\";\n\n /**\n * The label to display in the toggle button. This is required for the default variant of toggle buttons.\n */\n @Prop() label?: string;\n\n /**\n * If `true`, the toggle button will be in loading state.\n */\n @Prop({ mutable: true }) loading = false;\n\n /**\n * If `true`, the toggle button will display as black in the light theme, and white in dark theme.\n */\n @Prop({ mutable: true }) monochrome = false;\n\n /**\n * If `true`, the toggle button will display with an outline.\n */\n @Prop({ mutable: true }) outline = true;\n\n /**\n * The size of the toggle button to be displayed.\n */\n @Prop({ mutable: true }) size: IcSizes = \"medium\";\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 /**\n * The position of the tooltip in relation to the toggle button.\n */\n @Prop() tooltipPlacement: IcButtonTooltipPlacement = \"bottom\";\n\n /**\n * The variant of the toggle button.\n */\n @Prop({ reflect: true, mutable: true }) variant: \"default\" | \"icon\" =\n \"default\";\n\n /**\n * Emitted when the user clicks a toggle button.\n */\n @Event() icToggleChecked: EventEmitter<{\n checked: boolean;\n }>;\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n\n if (!isSlottedInGroup(this.el)) return;\n\n const parentAttributes = this.el.parentElement?.attributes;\n if (!parentAttributes) return;\n\n for (let i = 0; i < TRACKED_ATTRIBUTES.length; i++) {\n const attribute = parentAttributes.getNamedItem(TRACKED_ATTRIBUTES[i]);\n if (!attribute) continue;\n\n switch (attribute.name) {\n case TRACKED_ATTRIBUTES[0]:\n this.loading = attribute.value !== \"false\";\n break;\n case TRACKED_ATTRIBUTES[1]:\n this.disabled = attribute.value !== \"false\";\n break;\n case TRACKED_ATTRIBUTES[2]:\n this.fullWidth = attribute.value !== \"false\";\n break;\n case TRACKED_ATTRIBUTES[3]:\n this.iconPlacement = attribute.value as IcIconPlacementOptions;\n break;\n case TRACKED_ATTRIBUTES[4]:\n this.variant = attribute.value as \"default\" | \"icon\";\n break;\n case TRACKED_ATTRIBUTES[5]:\n this.size = attribute.value as IcSizes;\n break;\n case TRACKED_ATTRIBUTES[6]:\n this.theme = attribute.value as IcThemeMode;\n break;\n case TRACKED_ATTRIBUTES[7]:\n this.monochrome = attribute.value !== \"false\";\n break;\n case TRACKED_ATTRIBUTES[8]:\n this.outline = attribute.value !== \"false\";\n break;\n }\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [\n {\n prop: this.variant === \"icon\" ? this.accessibleLabel : this.label,\n propName: this.variant === \"icon\" ? \"accessible-label\" : \"label\",\n },\n ],\n \"Toggle button\"\n );\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(e: Event): void {\n if (this.disabled) {\n e.stopImmediatePropagation();\n } else if (!this.loading) {\n this.checked = !this.checked;\n }\n }\n\n private handleFocus = (ev: FocusEvent) => {\n ev.stopImmediatePropagation();\n };\n\n private handleClick = () => {\n if (!this.loading && !this.disabled) {\n this.icToggleChecked.emit({\n checked: this.checked,\n });\n }\n };\n\n render() {\n const {\n accessibleLabel,\n checked,\n disabled,\n fullWidth,\n iconPlacement,\n monochrome,\n label,\n loading,\n outline,\n size,\n theme,\n tooltipPlacement,\n variant,\n } = this;\n\n const iconVariant = variant === \"icon\";\n\n return (\n <Host\n class={{\n \"ic-toggle-button-checked\": checked,\n \"ic-toggle-button-disabled\": disabled,\n \"ic-toggle-button-icon\": iconVariant,\n \"ic-toggle-button-loading\": loading,\n \"ic-toggle-button-monochrome\": monochrome,\n \"ic-toggle-button-full-width\": fullWidth,\n \"ic-toggle-button-hide-outline\": !outline,\n [`ic-toggle-button-${size}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n onFocus={this.handleFocus}\n >\n <ic-button\n aria-pressed={`${checked}`}\n variant={iconVariant ? \"icon-tertiary\" : \"secondary\"}\n onClick={this.handleClick}\n title={accessibleLabel}\n aria-label={`${accessibleLabel ? accessibleLabel : label}, ${\n checked ? \"ticked\" : \"unticked\"\n }`}\n disabled={disabled}\n size={size}\n fullWidth={fullWidth}\n loading={loading}\n tooltipPlacement={tooltipPlacement}\n >\n {!iconVariant && label}\n <slot />\n {isSlotUsed(this.el, \"icon\") && (\n <slot name=\"icon\" slot={`${iconPlacement}-icon`}></slot>\n )}\n {isSlotUsed(this.el, \"badge\") && (\n <slot name=\"badge\" slot=\"badge\"></slot>\n )}\n </ic-button>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import{r as e,h as t,H as i,g as a}from"./p-8e4e97b4.js";import{D as o,i as n,f as s,t as l,h as r}from"./p-b57e59b7.js";import"./p-bddf799a.js";const d='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{position:relative;display:block}.data{display:flex;align-items:center}.text-cells{display:flex;flex-grow:1;min-width:0;--ic-typography-color:var(--ic-data-list-text-cell);color:var(--ic-data-list-text-cell)}.label{width:var(--data-row-label-width, 12.5rem);min-width:12.5rem;margin-right:var(--ic-space-md);--ic-typography-color:var(--ic-data-list-text-label);color:var(--ic-data-list-text-label)}.value{flex-grow:1}slot[name="value"]::slotted(ic-text-field[readonly][hide-label]){margin-top:calc(var(--ic-space-xs) * -1)}slot[name="value"]::slotted(ic-text-field[small][readonly][hide-label]){margin-top:calc(var(--ic-space-xxs) * -1)}slot[name="value"]::slotted(ic-text-field[readonly][hide-label][rows]){margin-top:calc(var(--ic-space-xxs) * -1 - var(--ic-space-xxxs))}.end-component{width:-moz-fit-content;width:fit-content;margin-left:3.5rem}.divider{margin-top:var(--ic-space-md);height:var(--ic-border-width);background-color:var(--ic-data-list-keyline-cell)}:host(.ic-data-row-small) .divider{margin-top:var(--ic-space-xs)}:host(.breakpoint-medium) .label{width:10rem;min-width:10rem}:host(.breakpoint-xs) .text-cells{flex-direction:column}:host(.breakpoint-xs) .label{width:8rem;margin-bottom:var(--ic-space-xs)}:host(.breakpoint-xs) .value{max-width:95%}:host(.breakpoint-xs) .end-component{margin-left:0}@media (forced-colors: active){.divider{background-color:canvastext}}';const c=d;const b=class{constructor(i){e(this,i);this.hasEndComponent=false;this.resizeObserver=null;this.deviceSize=o.XL;this.size="medium";this.theme="inherit";this.runResizeObserver=()=>{this.resizeObserver=new ResizeObserver((()=>{this.checkLabelAbove()}));this.resizeObserver.observe(this.el)};this.renderCellContent=e=>{const i=e==="value";return t("div",{class:e},n(this.el,e)?t("slot",{name:e}):t("ic-typography",{variant:i?"body":this.listSize==="xs"?"label":"subtitle-large"},i?this.value:this.label))}}disconnectedCallback(){var e;(e=this.resizeObserver)===null||e===void 0?void 0:e.disconnect()}componentWillLoad(){this.deviceSize=s();this.hasEndComponent=l(this.el,"end-component");this.checkLabelAbove()}componentDidLoad(){r(this.runResizeObserver);if(this.hasEndComponent)this.labelEndComponent()}checkLabelAbove(){var e;const t=(e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelector(".data");if(t){const e=(t===null||t===void 0?void 0:t.clientWidth)+46;if(e){this.listSize=e<o.S?"xs":e<o.M?"m":"xl"}}}labelEndComponent(){var e;(e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelectorAll("slot[name=end-component]").forEach((e=>e.setAttribute("aria-label",`for ${this.label} row`)))}render(){const{el:e,listSize:a,hasEndComponent:o,label:s,renderCellContent:l,size:r,theme:d,value:c}=this;return t(i,{key:"8a70c9ceda7aebc616eb335f08e626952c87ddf3",class:{["ic-data-row-small"]:r==="small",["breakpoint-medium"]:a==="m",["breakpoint-xs"]:a==="xs",[`ic-theme-${d}`]:d!=="inherit"},role:"listitem"},t("div",{key:"b2f75779fb6392023c42d9c1f8bf58a98b431797",class:"data"},t("div",{key:"059aa84f8a91c9a7cdaea4e118287ea460f1bcdd",class:"text-cells"},(n(e,"label")||s)&&l("label"),(n(e,"value")||c)&&l("value")),o&&t("div",{key:"3bcb9b239d836434ceae03ecd35c1bdc42d73699",class:"end-component"},t("slot",{key:"453e0c7e4d6b875ddfc319a12dc173913057b8bd",name:"end-component"}))),t("div",{key:"f16fd733c8ffd0e8ed8e7461099a3b9b81809cb3",class:"divider"}))}get el(){return a(this)}};b.style=c;export{b as ic_data_row};
|
2
|
+
//# sourceMappingURL=p-675bb3e4.entry.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["icDataRowCss","IcDataRowStyle0","DataRow","constructor","hostRef","this","hasEndComponent","resizeObserver","deviceSize","DEVICE_SIZES","XL","size","theme","runResizeObserver","ResizeObserver","checkLabelAbove","observe","el","renderCellContent","cell","isValue","h","class","isSlotUsed","name","variant","listSize","value","label","disconnectedCallback","_a","disconnect","componentWillLoad","getCurrentDeviceSize","slotHasContent","componentDidLoad","checkResizeObserver","labelEndComponent","row","shadowRoot","querySelector","rowSize","clientWidth","S","M","querySelectorAll","forEach","child","setAttribute","render","Host","key","role"],"sources":["src/components/ic-data-row/ic-data-row.css?tag=ic-data-row&encapsulation=shadow","src/components/ic-data-row/ic-data-row.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n position: relative;\n display: block;\n}\n\n.data {\n display: flex;\n align-items: center;\n}\n\n.text-cells {\n display: flex;\n flex-grow: 1;\n min-width: 0;\n\n --ic-typography-color: var(--ic-data-list-text-cell);\n color: var(--ic-data-list-text-cell);\n}\n\n.label {\n width: var(--data-row-label-width, 12.5rem);\n min-width: 12.5rem;\n margin-right: var(--ic-space-md);\n\n --ic-typography-color: var(--ic-data-list-text-label);\n color: var(--ic-data-list-text-label);\n}\n\n.value {\n flex-grow: 1;\n}\n\nslot[name=\"value\"]::slotted(ic-text-field[readonly][hide-label]) {\n margin-top: calc(var(--ic-space-xs) * -1);\n}\n\nslot[name=\"value\"]::slotted(ic-text-field[small][readonly][hide-label]) {\n margin-top: calc(var(--ic-space-xxs) * -1);\n}\n\nslot[name=\"value\"]::slotted(ic-text-field[readonly][hide-label][rows]) {\n margin-top: calc(var(--ic-space-xxs) * -1 - var(--ic-space-xxxs));\n}\n\n.end-component {\n width: fit-content;\n margin-left: 3.5rem;\n}\n\n.divider {\n margin-top: var(--ic-space-md);\n height: var(--ic-border-width);\n background-color: var(--ic-data-list-keyline-cell);\n}\n\n:host(.ic-data-row-small) .divider {\n margin-top: var(--ic-space-xs);\n}\n\n:host(.breakpoint-medium) .label {\n width: 10rem;\n min-width: 10rem;\n}\n\n:host(.breakpoint-xs) .text-cells {\n flex-direction: column;\n}\n\n:host(.breakpoint-xs) .label {\n width: 8rem;\n margin-bottom: var(--ic-space-xs);\n}\n\n:host(.breakpoint-xs) .value {\n max-width: 95%;\n}\n\n:host(.breakpoint-xs) .end-component {\n margin-left: 0;\n}\n\n@media (forced-colors: active) {\n .divider {\n background-color: canvastext;\n }\n}\n","import { Component, Element, Host, Prop, h, State } from \"@stencil/core\";\nimport {\n checkResizeObserver,\n DEVICE_SIZES,\n getCurrentDeviceSize,\n isSlotUsed,\n slotHasContent,\n} from \"../../utils/helpers\";\nimport { IcSizesNoLarge, IcThemeMode } from \"../../utils/types\";\n\n/**\n * @slot label - Content will be rendered in the leftmost cell.\n * @slot value - Content will be rendered to the right of the label.\n * @slot end-component - Content will be displayed in the rightmost cell.\n */\n@Component({\n tag: \"ic-data-row\",\n styleUrl: \"ic-data-row.css\",\n shadow: true,\n})\nexport class DataRow {\n private hasEndComponent: boolean = false;\n private resizeObserver: ResizeObserver | null = null;\n\n @Element() el: HTMLIcDataRowElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() listSize: \"xl\" | \"m\" | \"xs\";\n\n /**\n * The label in the leftmost cell of the row.\n */\n @Prop() label?: string;\n\n /**\n * The size of the data row component.\n */\n @Prop() size?: IcSizesNoLarge = \"medium\";\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 * The value of the middle (right if no end-component supplied) cell of the row.\n */\n @Prop() value?: string;\n\n disconnectedCallback(): void {\n this.resizeObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.deviceSize = getCurrentDeviceSize();\n this.hasEndComponent = slotHasContent(this.el, \"end-component\");\n this.checkLabelAbove();\n }\n\n componentDidLoad(): void {\n checkResizeObserver(this.runResizeObserver);\n if (this.hasEndComponent) this.labelEndComponent();\n }\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.checkLabelAbove();\n });\n\n this.resizeObserver.observe(this.el);\n };\n\n private checkLabelAbove() {\n const row = this.el.shadowRoot?.querySelector(\".data\");\n if (row) {\n const rowSize = row?.clientWidth + 46;\n if (rowSize) {\n this.listSize =\n rowSize < DEVICE_SIZES.S\n ? \"xs\"\n : rowSize < DEVICE_SIZES.M\n ? \"m\"\n : \"xl\";\n }\n }\n }\n\n private renderCellContent = (cell: \"label\" | \"value\") => {\n const isValue = cell === \"value\";\n return (\n <div class={cell}>\n {isSlotUsed(this.el, cell) ? (\n <slot name={cell}></slot>\n ) : (\n <ic-typography\n variant={\n isValue\n ? \"body\"\n : this.listSize === \"xs\"\n ? \"label\"\n : \"subtitle-large\"\n }\n >\n {isValue ? this.value : this.label}\n </ic-typography>\n )}\n </div>\n );\n };\n\n private labelEndComponent(): void {\n this.el.shadowRoot\n ?.querySelectorAll(\"slot[name=end-component]\")\n .forEach((child) =>\n child.setAttribute(\"aria-label\", `for ${this.label} row`)\n );\n }\n\n render() {\n const {\n el,\n listSize,\n hasEndComponent,\n label,\n renderCellContent,\n size,\n theme,\n value,\n } = this;\n\n return (\n <Host\n class={{\n [\"ic-data-row-small\"]: size === \"small\",\n [\"breakpoint-medium\"]: listSize === \"m\",\n [\"breakpoint-xs\"]: listSize === \"xs\",\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n role=\"listitem\"\n >\n <div class=\"data\">\n <div class=\"text-cells\">\n {(isSlotUsed(el, \"label\") || label) && renderCellContent(\"label\")}\n {(isSlotUsed(el, \"value\") || value) && renderCellContent(\"value\")}\n </div>\n {hasEndComponent && (\n <div class=\"end-component\">\n <slot name=\"end-component\"></slot>\n </div>\n )}\n </div>\n <div class=\"divider\" />\n </Host>\n );\n }\n}\n"],"mappings":"
|
1
|
+
{"version":3,"names":["icDataRowCss","IcDataRowStyle0","DataRow","constructor","hostRef","this","hasEndComponent","resizeObserver","deviceSize","DEVICE_SIZES","XL","size","theme","runResizeObserver","ResizeObserver","checkLabelAbove","observe","el","renderCellContent","cell","isValue","h","class","isSlotUsed","name","variant","listSize","value","label","disconnectedCallback","_a","disconnect","componentWillLoad","getCurrentDeviceSize","slotHasContent","componentDidLoad","checkResizeObserver","labelEndComponent","row","shadowRoot","querySelector","rowSize","clientWidth","S","M","querySelectorAll","forEach","child","setAttribute","render","Host","key","role"],"sources":["src/components/ic-data-row/ic-data-row.css?tag=ic-data-row&encapsulation=shadow","src/components/ic-data-row/ic-data-row.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n position: relative;\n display: block;\n}\n\n.data {\n display: flex;\n align-items: center;\n}\n\n.text-cells {\n display: flex;\n flex-grow: 1;\n min-width: 0;\n\n --ic-typography-color: var(--ic-data-list-text-cell);\n color: var(--ic-data-list-text-cell);\n}\n\n.label {\n width: var(--data-row-label-width, 12.5rem);\n min-width: 12.5rem;\n margin-right: var(--ic-space-md);\n\n --ic-typography-color: var(--ic-data-list-text-label);\n color: var(--ic-data-list-text-label);\n}\n\n.value {\n flex-grow: 1;\n}\n\nslot[name=\"value\"]::slotted(ic-text-field[readonly][hide-label]) {\n margin-top: calc(var(--ic-space-xs) * -1);\n}\n\nslot[name=\"value\"]::slotted(ic-text-field[small][readonly][hide-label]) {\n margin-top: calc(var(--ic-space-xxs) * -1);\n}\n\nslot[name=\"value\"]::slotted(ic-text-field[readonly][hide-label][rows]) {\n margin-top: calc(var(--ic-space-xxs) * -1 - var(--ic-space-xxxs));\n}\n\n.end-component {\n width: fit-content;\n margin-left: 3.5rem;\n}\n\n.divider {\n margin-top: var(--ic-space-md);\n height: var(--ic-border-width);\n background-color: var(--ic-data-list-keyline-cell);\n}\n\n:host(.ic-data-row-small) .divider {\n margin-top: var(--ic-space-xs);\n}\n\n:host(.breakpoint-medium) .label {\n width: 10rem;\n min-width: 10rem;\n}\n\n:host(.breakpoint-xs) .text-cells {\n flex-direction: column;\n}\n\n:host(.breakpoint-xs) .label {\n width: 8rem;\n margin-bottom: var(--ic-space-xs);\n}\n\n:host(.breakpoint-xs) .value {\n max-width: 95%;\n}\n\n:host(.breakpoint-xs) .end-component {\n margin-left: 0;\n}\n\n@media (forced-colors: active) {\n .divider {\n background-color: canvastext;\n }\n}\n","import { Component, Element, Host, Prop, h, State } from \"@stencil/core\";\nimport {\n checkResizeObserver,\n DEVICE_SIZES,\n getCurrentDeviceSize,\n isSlotUsed,\n slotHasContent,\n} from \"../../utils/helpers\";\nimport { IcSizesNoLarge, IcThemeMode } from \"../../utils/types\";\n\n/**\n * @slot label - Content will be rendered in the leftmost cell.\n * @slot value - Content will be rendered to the right of the label.\n * @slot end-component - Content will be displayed in the rightmost cell.\n */\n@Component({\n tag: \"ic-data-row\",\n styleUrl: \"ic-data-row.css\",\n shadow: true,\n})\nexport class DataRow {\n private hasEndComponent: boolean = false;\n private resizeObserver: ResizeObserver | null = null;\n\n @Element() el: HTMLIcDataRowElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() listSize: \"xl\" | \"m\" | \"xs\";\n\n /**\n * The label in the leftmost cell of the row.\n */\n @Prop() label?: string;\n\n /**\n * The size of the data row component.\n */\n @Prop() size?: IcSizesNoLarge = \"medium\";\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 * The value of the middle (right if no end-component supplied) cell of the row.\n */\n @Prop() value?: string;\n\n disconnectedCallback(): void {\n this.resizeObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.deviceSize = getCurrentDeviceSize();\n this.hasEndComponent = slotHasContent(this.el, \"end-component\");\n this.checkLabelAbove();\n }\n\n componentDidLoad(): void {\n checkResizeObserver(this.runResizeObserver);\n if (this.hasEndComponent) this.labelEndComponent();\n }\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.checkLabelAbove();\n });\n\n this.resizeObserver.observe(this.el);\n };\n\n private checkLabelAbove() {\n const row = this.el.shadowRoot?.querySelector(\".data\");\n if (row) {\n const rowSize = row?.clientWidth + 46;\n if (rowSize) {\n this.listSize =\n rowSize < DEVICE_SIZES.S\n ? \"xs\"\n : rowSize < DEVICE_SIZES.M\n ? \"m\"\n : \"xl\";\n }\n }\n }\n\n private renderCellContent = (cell: \"label\" | \"value\") => {\n const isValue = cell === \"value\";\n return (\n <div class={cell}>\n {isSlotUsed(this.el, cell) ? (\n <slot name={cell}></slot>\n ) : (\n <ic-typography\n variant={\n isValue\n ? \"body\"\n : this.listSize === \"xs\"\n ? \"label\"\n : \"subtitle-large\"\n }\n >\n {isValue ? this.value : this.label}\n </ic-typography>\n )}\n </div>\n );\n };\n\n private labelEndComponent(): void {\n this.el.shadowRoot\n ?.querySelectorAll(\"slot[name=end-component]\")\n .forEach((child) =>\n child.setAttribute(\"aria-label\", `for ${this.label} row`)\n );\n }\n\n render() {\n const {\n el,\n listSize,\n hasEndComponent,\n label,\n renderCellContent,\n size,\n theme,\n value,\n } = this;\n\n return (\n <Host\n class={{\n [\"ic-data-row-small\"]: size === \"small\",\n [\"breakpoint-medium\"]: listSize === \"m\",\n [\"breakpoint-xs\"]: listSize === \"xs\",\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n role=\"listitem\"\n >\n <div class=\"data\">\n <div class=\"text-cells\">\n {(isSlotUsed(el, \"label\") || label) && renderCellContent(\"label\")}\n {(isSlotUsed(el, \"value\") || value) && renderCellContent(\"value\")}\n </div>\n {hasEndComponent && (\n <div class=\"end-component\">\n <slot name=\"end-component\"></slot>\n </div>\n )}\n </div>\n <div class=\"divider\" />\n </Host>\n );\n }\n}\n"],"mappings":"iJAAA,MAAMA,EAAe,ktHACrB,MAAAC,EAAeD,E,MCmBFE,EAAO,MALpB,WAAAC,CAAAC,G,UAMUC,KAAAC,gBAA2B,MAC3BD,KAAAE,eAAwC,KAIvCF,KAAAG,WAAqBC,EAAaC,GAWnCL,KAAAM,KAAwB,SAKxBN,KAAAO,MAAsB,UAsBtBP,KAAAQ,kBAAoB,KAC1BR,KAAKE,eAAiB,IAAIO,gBAAe,KACvCT,KAAKU,iBAAiB,IAGxBV,KAAKE,eAAeS,QAAQX,KAAKY,GAAG,EAkB9BZ,KAAAa,kBAAqBC,IAC3B,MAAMC,EAAUD,IAAS,QACzB,OACEE,EAAA,OAAKC,MAAOH,GACTI,EAAWlB,KAAKY,GAAIE,GACnBE,EAAA,QAAMG,KAAML,IAEZE,EAAA,iBACEI,QACEL,EACI,OACAf,KAAKqB,WAAa,KAClB,QACA,kBAGLN,EAAUf,KAAKsB,MAAQtB,KAAKuB,OAG7B,C,CAzDV,oBAAAC,G,OACEC,EAAAzB,KAAKE,kBAAc,MAAAuB,SAAA,SAAAA,EAAEC,Y,CAGvB,iBAAAC,GACE3B,KAAKG,WAAayB,IAClB5B,KAAKC,gBAAkB4B,EAAe7B,KAAKY,GAAI,iBAC/CZ,KAAKU,iB,CAGP,gBAAAoB,GACEC,EAAoB/B,KAAKQ,mBACzB,GAAIR,KAAKC,gBAAiBD,KAAKgC,mB,CAWzB,eAAAtB,G,MACN,MAAMuB,GAAMR,EAAAzB,KAAKY,GAAGsB,cAAU,MAAAT,SAAA,SAAAA,EAAEU,cAAc,SAC9C,GAAIF,EAAK,CACP,MAAMG,GAAUH,IAAG,MAAHA,SAAG,SAAHA,EAAKI,aAAc,GACnC,GAAID,EAAS,CACXpC,KAAKqB,SACHe,EAAUhC,EAAakC,EACnB,KACAF,EAAUhC,EAAamC,EACvB,IACA,I,GA4BJ,iBAAAP,G,OACNP,EAAAzB,KAAKY,GAAGsB,cAAU,MAAAT,SAAA,SAAAA,EACde,iBAAiB,4BAClBC,SAASC,GACRA,EAAMC,aAAa,aAAc,OAAO3C,KAAKuB,c,CAInD,MAAAqB,GACE,MAAMhC,GACJA,EAAES,SACFA,EAAQpB,gBACRA,EAAesB,MACfA,EAAKV,kBACLA,EAAiBP,KACjBA,EAAIC,MACJA,EAAKe,MACLA,GACEtB,KAEJ,OACEgB,EAAC6B,EAAI,CAAAC,IAAA,2CACH7B,MAAO,CACL,CAAC,qBAAsBX,IAAS,QAChC,CAAC,qBAAsBe,IAAa,IACpC,CAAC,iBAAkBA,IAAa,KAChC,CAAC,YAAYd,KAAUA,IAAU,WAEnCwC,KAAK,YAEL/B,EAAA,OAAA8B,IAAA,2CAAK7B,MAAM,QACTD,EAAA,OAAA8B,IAAA,2CAAK7B,MAAM,eACPC,EAAWN,EAAI,UAAYW,IAAUV,EAAkB,UACvDK,EAAWN,EAAI,UAAYU,IAAUT,EAAkB,UAE1DZ,GACCe,EAAA,OAAA8B,IAAA,2CAAK7B,MAAM,iBACTD,EAAA,QAAA8B,IAAA,2CAAM3B,KAAK,oBAIjBH,EAAA,OAAA8B,IAAA,2CAAK7B,MAAM,Y","ignoreList":[]}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import{r as e,f as t,h as i,H as o,g as n}from"./p-8e4e97b4.js";import{I as a}from"./p-bddf799a.js";import{w as s,o as r,x as d,g as l,I as c,i as b}from"./p-b57e59b7.js";const u='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;margin-right:var(--ic-space-xs);list-style:none}:host(.in-side-menu){margin-right:0}:host::part(button){height:100%;min-height:2.5rem}:host(:not(.in-side-menu)) ::part(button):focus{box-shadow:var(--ic-border-focus-light)}:host(:not(.in-side-menu).dark) ::part(button):focus{box-shadow:var(--ic-border-focus-dark)}:host(.in-side-menu) ::part(button){color:var(--ic-top-navigation-icon-active)}:host(.in-side-menu) ::part(button):hover{color:var(--ic-top-navigation-icon-hover);background-color:var(--ic-top-navigation-icon-hover-background)}:host(.in-side-menu) ::part(button):active{color:var(--ic-top-navigation-icon-pressed);background-color:var(--ic-top-navigation-icon-pressed-background)}:host(.in-side-menu) ::slotted(ic-badge){margin-left:var(--ic-space-xs)}';const h=u;const p=[...a,"title"];const m=class{constructor(i){e(this,i);this.inheritedAttributes={};this.hostMutationObserver=null;this.mode="navbar";this.parentThemeDark=false;this.download=false;this.theme="inherit";this.hostMutationCallback=e=>{let i=false;e.forEach((({attributeName:e})=>{if(e){const t=this.el.getAttribute(e);if(t&&p.includes(e)){this.inheritedAttributes[e]=t;i=true}}}));if(i){t(this)}}}componentWillLoad(){this.inheritedAttributes=s(this.el,p)}componentDidLoad(){this.updateTheme();r([{prop:this.label,propName:"label"}],"Navigation Button");this.hostMutationObserver=new MutationObserver(this.hostMutationCallback);this.hostMutationObserver.observe(this.el,{attributes:true})}componentWillRender(){var e;(e=this.el.querySelector(`[slot="icon"]`))===null||e===void 0?void 0:e.setAttribute("viewBox","0 0 24 24");this.parentThemeChangeHandler()}disconnectedCallback(){var e;(e=this.hostMutationObserver)===null||e===void 0?void 0:e.disconnect()}navBarMenuOpenHandler(){this.mode="menu";this.theme=this.el.parentElement.theme}navBarMenuCloseHandler(){this.mode="navbar";this.updateTheme()}brandChangeHandler({detail:{mode:e}}){this.updateTheme(e)}parentThemeChangeHandler(){this.parentThemeDark=d(this.el)==="dark"}async setFocus(){var e;(e=this.buttonEl)===null||e===void 0?void 0:e.setFocus()}updateTheme(e=l()){this.theme=e===c.Light?c.Dark:c.Light}render(){const{download:e,href:t,inheritedAttributes:n,label:a,mode:s,parentThemeDark:r,referrerpolicy:d,rel:l,target:c,theme:u}=this;const h=s==="menu";const p={download:e,href:t,referrerpolicy:d,rel:l,target:c,theme:u};return i(o,{key:"6d5b61877075117e4e5a88b0d1edf1cf986f4bcd",class:{"in-side-menu":h,[`ic-theme-${u}`]:u!=="inherit",dark:r}},i("ic-button",Object.assign({key:"d1e885683fd648f260bec94656aeb818497899e2",ref:e=>this.buttonEl=e,class:{"popout-menu-button":h},"aria-label":!h?a:null,disableTooltip:h,fullWidth:h,monochrome:!h,size:h?"medium":"large",variant:h?"tertiary":"icon-tertiary"},p,n),h?a:"",i("slot",{key:"c3ae147f7bccd4f10f9259d442b86636c1a332ca",slot:"left-icon",name:"icon"}),b(this.el,"badge")&&i("slot",{key:"f5f961eb88638804430696e0e5b3424ad3b9ac6c",name:"badge"})))}static get delegatesFocus(){return true}get el(){return n(this)}};m.style=h;export{m as ic_navigation_button};
|
2
|
+
//# sourceMappingURL=p-6dbe70f1.entry.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["icNavigationButtonCss","IcNavigationButtonStyle0","MUTABLE_ATTRIBUTES","IC_INHERITED_ARIA","NavigationButton","constructor","hostRef","this","inheritedAttributes","hostMutationObserver","mode","parentThemeDark","download","theme","hostMutationCallback","mutationList","forceComponentUpdate","forEach","attributeName","attribute","el","getAttribute","includes","forceUpdate","componentWillLoad","inheritAttributes","componentDidLoad","updateTheme","onComponentRequiredPropUndefined","prop","label","propName","MutationObserver","observe","attributes","componentWillRender","_a","querySelector","setAttribute","parentThemeChangeHandler","disconnectedCallback","disconnect","navBarMenuOpenHandler","parentElement","navBarMenuCloseHandler","brandChangeHandler","detail","getElementInheritedTheme","setFocus","buttonEl","getBrandForegroundAppearance","IcBrandForegroundEnum","Light","Dark","render","href","referrerpolicy","rel","target","isMenuMode","buttonProps","h","Host","key","class","dark","Object","assign","ref","disableTooltip","fullWidth","monochrome","size","variant","slot","name","isSlotUsed"],"sources":["src/components/ic-navigation-button/ic-navigation-button.css?tag=ic-navigation-button&encapsulation=shadow","src/components/ic-navigation-button/ic-navigation-button.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: block;\n margin-right: var(--ic-space-xs);\n list-style: none;\n}\n\n:host(.in-side-menu) {\n margin-right: 0;\n}\n\n:host::part(button) {\n height: 100%;\n min-height: 2.5rem;\n}\n\n:host(:not(.in-side-menu)) ::part(button):focus {\n box-shadow: var(--ic-border-focus-light);\n}\n\n:host(:not(.in-side-menu).dark) ::part(button):focus {\n box-shadow: var(--ic-border-focus-dark);\n}\n\n:host(.in-side-menu) ::part(button) {\n color: var(--ic-top-navigation-icon-active);\n}\n\n:host(.in-side-menu) ::part(button):hover {\n color: var(--ic-top-navigation-icon-hover);\n background-color: var(--ic-top-navigation-icon-hover-background);\n}\n\n:host(.in-side-menu) ::part(button):active {\n color: var(--ic-top-navigation-icon-pressed);\n background-color: var(--ic-top-navigation-icon-pressed-background);\n}\n\n:host(.in-side-menu) ::slotted(ic-badge) {\n margin-left: var(--ic-space-xs);\n}\n","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"],"mappings":"8IAAA,MAAMA,EAAwB,snGAC9B,MAAAC,EAAeD,EC2Bf,MAAME,EAAqB,IAAIC,EAAmB,S,MAcrCC,EAAgB,MAP7B,WAAAC,CAAAC,G,UASUC,KAAAC,oBAA+C,GAC/CD,KAAAE,qBAAgD,KAO/CF,KAAAG,KAAyB,SAKzBH,KAAAI,gBAAkB,MAKnBJ,KAAAK,SAA6B,MAmCZL,KAAAM,MAAqB,UA+DtCN,KAAAO,qBAAwBC,IAC9B,IAAIC,EAAuB,MAC3BD,EAAaE,SAAQ,EAAGC,oBACtB,GAAIA,EAAe,CACjB,MAAMC,EAAYZ,KAAKa,GAAGC,aAAaH,GACvC,GAAIC,GAAajB,EAAmBoB,SAASJ,GAAgB,CAC3DX,KAAKC,oBAAoBU,GAAiBC,EAC1CH,EAAuB,I,MAI7B,GAAIA,EAAsB,CACxBO,EAAYhB,K,GAzEhB,iBAAAiB,GACEjB,KAAKC,oBAAsBiB,EAAkBlB,KAAKa,GAAIlB,E,CAGxD,gBAAAwB,GACEnB,KAAKoB,cACLC,EACE,CAAC,CAAEC,KAAMtB,KAAKuB,MAAOC,SAAU,UAC/B,qBAGFxB,KAAKE,qBAAuB,IAAIuB,iBAAiBzB,KAAKO,sBACtDP,KAAKE,qBAAqBwB,QAAQ1B,KAAKa,GAAI,CACzCc,WAAY,M,CAIhB,mBAAAC,G,OACEC,EAAA7B,KAAKa,GACFiB,cAAc,oBAAgB,MAAAD,SAAA,SAAAA,EAC7BE,aAAa,UAAW,aAC5B/B,KAAKgC,0B,CAGP,oBAAAC,G,OACEJ,EAAA7B,KAAKE,wBAAoB,MAAA2B,SAAA,SAAAA,EAAEK,Y,CAI7B,qBAAAC,GACEnC,KAAKG,KAAO,OACZH,KAAKM,MAASN,KAAKa,GAAGuB,cAA6C9B,K,CAIrE,sBAAA+B,GACErC,KAAKG,KAAO,SACZH,KAAKoB,a,CAIP,kBAAAkB,EAAqBC,QAAQpC,KAAEA,KAC7BH,KAAKoB,YAAYjB,E,CAInB,wBAAA6B,GACEhC,KAAKI,gBAAkBoC,EAAyBxC,KAAKa,MAAQ,M,CAO/D,cAAM4B,G,OACJZ,EAAA7B,KAAK0C,YAAQ,MAAAb,SAAA,SAAAA,EAAEY,U,CAsBT,WAAArB,CACNjB,EAA0BwC,KAE1B3C,KAAKM,MACHH,IAASyC,EAAsBC,MAC3BD,EAAsBE,KACtBF,EAAsBC,K,CAG9B,MAAAE,GACE,MAAM1C,SACJA,EAAQ2C,KACRA,EAAI/C,oBACJA,EAAmBsB,MACnBA,EAAKpB,KACLA,EAAIC,gBACJA,EAAe6C,eACfA,EAAcC,IACdA,EAAGC,OACHA,EAAM7C,MACNA,GACEN,KAEJ,MAAMoD,EAAajD,IAAS,OAE5B,MAAMkD,EAAc,CAClBhD,WACA2C,OACAC,iBACAC,MACAC,SACA7C,SAGF,OACEgD,EAACC,EAAI,CAAAC,IAAA,2CACHC,MAAO,CACL,eAAgBL,EAChB,CAAC,YAAY9C,KAAUA,IAAU,UACjCoD,KAAMtD,IAGRkD,EAAA,YAAAK,OAAAC,OAAA,CAAAJ,IAAA,2CACEK,IAAMhD,GAAQb,KAAK0C,SAAW7B,EAC9B4C,MAAO,CAAE,qBAAsBL,GAAY,cAC9BA,EAAa7B,EAAQ,KAClCuC,eAAgBV,EAChBW,UAAWX,EACXY,YAAaZ,EACba,KAAMb,EAAa,SAAW,QAC9Bc,QAASd,EAAa,WAAa,iBAC/BC,EACApD,GAEHmD,EAAa7B,EAAQ,GACtB+B,EAAA,QAAAE,IAAA,2CAAMW,KAAK,YAAYC,KAAK,SAC3BC,EAAWrE,KAAKa,GAAI,UAAYyC,EAAA,QAAAE,IAAA,2CAAMY,KAAK,W","ignoreList":[]}
|
1
|
+
{"version":3,"names":["icNavigationButtonCss","IcNavigationButtonStyle0","MUTABLE_ATTRIBUTES","IC_INHERITED_ARIA","NavigationButton","constructor","hostRef","this","inheritedAttributes","hostMutationObserver","mode","parentThemeDark","download","theme","hostMutationCallback","mutationList","forceComponentUpdate","forEach","attributeName","attribute","el","getAttribute","includes","forceUpdate","componentWillLoad","inheritAttributes","componentDidLoad","updateTheme","onComponentRequiredPropUndefined","prop","label","propName","MutationObserver","observe","attributes","componentWillRender","_a","querySelector","setAttribute","parentThemeChangeHandler","disconnectedCallback","disconnect","navBarMenuOpenHandler","parentElement","navBarMenuCloseHandler","brandChangeHandler","detail","getElementInheritedTheme","setFocus","buttonEl","getBrandForegroundAppearance","IcBrandForegroundEnum","Light","Dark","render","href","referrerpolicy","rel","target","isMenuMode","buttonProps","h","Host","key","class","dark","Object","assign","ref","disableTooltip","fullWidth","monochrome","size","variant","slot","name","isSlotUsed"],"sources":["src/components/ic-navigation-button/ic-navigation-button.css?tag=ic-navigation-button&encapsulation=shadow","src/components/ic-navigation-button/ic-navigation-button.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: block;\n margin-right: var(--ic-space-xs);\n list-style: none;\n}\n\n:host(.in-side-menu) {\n margin-right: 0;\n}\n\n:host::part(button) {\n height: 100%;\n min-height: 2.5rem;\n}\n\n:host(:not(.in-side-menu)) ::part(button):focus {\n box-shadow: var(--ic-border-focus-light);\n}\n\n:host(:not(.in-side-menu).dark) ::part(button):focus {\n box-shadow: var(--ic-border-focus-dark);\n}\n\n:host(.in-side-menu) ::part(button) {\n color: var(--ic-top-navigation-icon-active);\n}\n\n:host(.in-side-menu) ::part(button):hover {\n color: var(--ic-top-navigation-icon-hover);\n background-color: var(--ic-top-navigation-icon-hover-background);\n}\n\n:host(.in-side-menu) ::part(button):active {\n color: var(--ic-top-navigation-icon-pressed);\n background-color: var(--ic-top-navigation-icon-pressed-background);\n}\n\n:host(.in-side-menu) ::slotted(ic-badge) {\n margin-left: var(--ic-space-xs);\n}\n","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"],"mappings":"2KAAA,MAAMA,EAAwB,snGAC9B,MAAAC,EAAeD,EC2Bf,MAAME,EAAqB,IAAIC,EAAmB,S,MAcrCC,EAAgB,MAP7B,WAAAC,CAAAC,G,UASUC,KAAAC,oBAA+C,GAC/CD,KAAAE,qBAAgD,KAO/CF,KAAAG,KAAyB,SAKzBH,KAAAI,gBAAkB,MAKnBJ,KAAAK,SAA6B,MAmCZL,KAAAM,MAAqB,UA+DtCN,KAAAO,qBAAwBC,IAC9B,IAAIC,EAAuB,MAC3BD,EAAaE,SAAQ,EAAGC,oBACtB,GAAIA,EAAe,CACjB,MAAMC,EAAYZ,KAAKa,GAAGC,aAAaH,GACvC,GAAIC,GAAajB,EAAmBoB,SAASJ,GAAgB,CAC3DX,KAAKC,oBAAoBU,GAAiBC,EAC1CH,EAAuB,I,MAI7B,GAAIA,EAAsB,CACxBO,EAAYhB,K,GAzEhB,iBAAAiB,GACEjB,KAAKC,oBAAsBiB,EAAkBlB,KAAKa,GAAIlB,E,CAGxD,gBAAAwB,GACEnB,KAAKoB,cACLC,EACE,CAAC,CAAEC,KAAMtB,KAAKuB,MAAOC,SAAU,UAC/B,qBAGFxB,KAAKE,qBAAuB,IAAIuB,iBAAiBzB,KAAKO,sBACtDP,KAAKE,qBAAqBwB,QAAQ1B,KAAKa,GAAI,CACzCc,WAAY,M,CAIhB,mBAAAC,G,OACEC,EAAA7B,KAAKa,GACFiB,cAAc,oBAAgB,MAAAD,SAAA,SAAAA,EAC7BE,aAAa,UAAW,aAC5B/B,KAAKgC,0B,CAGP,oBAAAC,G,OACEJ,EAAA7B,KAAKE,wBAAoB,MAAA2B,SAAA,SAAAA,EAAEK,Y,CAI7B,qBAAAC,GACEnC,KAAKG,KAAO,OACZH,KAAKM,MAASN,KAAKa,GAAGuB,cAA6C9B,K,CAIrE,sBAAA+B,GACErC,KAAKG,KAAO,SACZH,KAAKoB,a,CAIP,kBAAAkB,EAAqBC,QAAQpC,KAAEA,KAC7BH,KAAKoB,YAAYjB,E,CAInB,wBAAA6B,GACEhC,KAAKI,gBAAkBoC,EAAyBxC,KAAKa,MAAQ,M,CAO/D,cAAM4B,G,OACJZ,EAAA7B,KAAK0C,YAAQ,MAAAb,SAAA,SAAAA,EAAEY,U,CAsBT,WAAArB,CACNjB,EAA0BwC,KAE1B3C,KAAKM,MACHH,IAASyC,EAAsBC,MAC3BD,EAAsBE,KACtBF,EAAsBC,K,CAG9B,MAAAE,GACE,MAAM1C,SACJA,EAAQ2C,KACRA,EAAI/C,oBACJA,EAAmBsB,MACnBA,EAAKpB,KACLA,EAAIC,gBACJA,EAAe6C,eACfA,EAAcC,IACdA,EAAGC,OACHA,EAAM7C,MACNA,GACEN,KAEJ,MAAMoD,EAAajD,IAAS,OAE5B,MAAMkD,EAAc,CAClBhD,WACA2C,OACAC,iBACAC,MACAC,SACA7C,SAGF,OACEgD,EAACC,EAAI,CAAAC,IAAA,2CACHC,MAAO,CACL,eAAgBL,EAChB,CAAC,YAAY9C,KAAUA,IAAU,UACjCoD,KAAMtD,IAGRkD,EAAA,YAAAK,OAAAC,OAAA,CAAAJ,IAAA,2CACEK,IAAMhD,GAAQb,KAAK0C,SAAW7B,EAC9B4C,MAAO,CAAE,qBAAsBL,GAAY,cAC9BA,EAAa7B,EAAQ,KAClCuC,eAAgBV,EAChBW,UAAWX,EACXY,YAAaZ,EACba,KAAMb,EAAa,SAAW,QAC9Bc,QAASd,EAAa,WAAa,iBAC/BC,EACApD,GAEHmD,EAAa7B,EAAQ,GACtB+B,EAAA,QAAAE,IAAA,2CAAMW,KAAK,YAAYC,KAAK,SAC3BC,EAAWrE,KAAKa,GAAI,UAAYyC,EAAA,QAAAE,IAAA,2CAAMY,KAAK,W","ignoreList":[]}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import{r as t,c as i,h as e,H as s,g as a}from"./p-8e4e97b4.js";import{c as o}from"./p-f074ef5b.js";import{V as n}from"./p-bddf799a.js";import{i as r,o as c,M as d,e as l}from"./p-b57e59b7.js";const h='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}@media (prefers-reduced-motion: no-preference){:host{animation:fadein var(--ic-transition-duration-slow) ease-in-out}:host(.hidden){animation:fadeout var(--ic-transition-duration-slow) ease-in-out}}:host{--bottom-position:var(--ic-space-xl);position:fixed;bottom:var(--bottom-position);left:50%;transform:translate(-50%);z-index:var(--ic-z-index-toast)}:host(.ic-toast-hidden){display:none}:host(:focus){outline:none}.container{max-width:32.5rem;min-width:18rem;box-shadow:var(--ic-elevation-overlay);min-height:3.5rem;background-color:var(--ic-toast-background);display:flex;align-items:center;position:relative;border-radius:var(--ic-border-radius)}.toast-icon-container{height:100%;display:flex;align-items:center}.divider{height:100%;width:var(--ic-space-xs);position:absolute;border-radius:var(--ic-space-xxxs) 0 0 var(--ic-space-xxxs)}.divider-neutral{background-color:var(--ic-toast-status-neutral)}.divider-info{background-color:var(--ic-toast-status-info)}.divider-warning{background-color:var(--ic-toast-status-warning)}.divider-error{background-color:var(--ic-toast-status-error)}.divider-success{background-color:var(--ic-toast-status-success)}.divider-ai{background-color:var(--ic-toast-status-ai)}.toast-icon,::slotted(svg){height:var(--ic-space-lg);width:var(--ic-space-lg);margin-left:var(--ic-space-md)}:host([variant="neutral"]) .toast-icon svg,::slotted(svg){fill:var(--ic-toast-icon-neutral)}:host([variant="info"]) .toast-icon svg{fill:var(--ic-toast-icon-info)}:host([variant="warning"]) .toast-icon svg{fill:var(--ic-toast-icon-warning)}:host([variant="error"]) .toast-icon svg{fill:var(--ic-toast-icon-error)}:host([variant="success"]) .toast-icon svg{fill:var(--ic-toast-icon-success)}:host([variant="ai"]) .toast-icon svg{fill:var(--ic-toast-icon-ai)}.toast-content{margin-left:var(--ic-space-xs);width:100%}.no-icon{margin-left:var(--ic-space-md)}.toast-text{padding:var(--ic-space-xs) var(--ic-space-xs) var(--ic-space-xs) 0}.toast-heading{--ic-typography-color:var(--ic-toast-title)}.toast-message{--ic-typography-color:var(--ic-toast-description)}.toast-action-container{padding-bottom:var(--ic-space-md)}#dismiss-button{padding:var(--ic-space-xs)}#dismiss-button>svg{color:var(--ic-toast-dismiss-button)}ic-loading-indicator{--outer-color:transparent;--inner-color:var(--ic-action-monochrome)}.toast-dismiss-timer{padding:var(--ic-space-sm)}@media (max-width: 576px){:host{--bottom-position:var(--ic-space-lg);width:calc(100% - 2 * var(--ic-space-md))}}@media (min-width: 993px){:host{--bottom-position:calc(var(--ic-space-xl) + var(--ic-space-xs))}}@media (forced-colors: active){.container{border:var(--ic-border-hc)}}@keyframes fadein{from{bottom:0;opacity:0}to{bottom:var(--bottom-position);opacity:1}}@keyframes fadeout{from{bottom:var(--bottom-position);opacity:1}to{bottom:0;opacity:0}}';const b=h;const m=1e3;const u=70;const p=140;const f=class{constructor(e){t(this,e);this.icDismiss=i(this,"icDismiss",7);this.interactiveElements=[];this.timerProgress=100;this.visible=false;this.autoDismissTimeout=5e3;this.dismissButtonAriaLabel="dismiss";this.dismissMode="manual";this.dismissAction=()=>{this.icDismiss.emit()};this.handleProgressChange=()=>{this.timerProgress-=m/this.autoDismissTimeout*100};this.onFocus=()=>{if(this.focusInteractiveElement){this.isManual=true}};this.onBlur=()=>{this.handleTimer({type:"mouseleave"})}}dismissModeChangeHandler(t){this.isManual=t==="manual"}disconnectedCallback(){window.clearTimeout(this.dismissTimeout);window.clearInterval(this.timerRefreshInterval)}componentWillLoad(){var t,i;this.handleLongText(this.heading.length>u,!!this.message&&((t=this.message)===null||t===void 0?void 0:t.length)>p);if(this.autoDismissTimeout<5e3)this.autoDismissTimeout=5e3;if(r(this.el,"action"))this.dismissMode="manual";this.isManual=this.dismissMode==="manual";if(r(this.el,"neutral-icon"))this.variant="neutral";if(this.variant==="neutral"){this.neutralVariantLabel=(i=this.neutralIconAriaLabel)!==null&&i!==void 0?i:n[this.variant].ariaLabel}if(this.isManual){const t=l(this.message)?`. ${this.message}`:"";this.el.setAttribute("aria-label",this.variant?this.neutralVariantLabel||n[this.variant].ariaLabel:this.heading);(this.variant||this.message)&&this.el.setAttribute("aria-description",this.variant?`${this.heading}${t}`:this.message||"")}}componentDidLoad(){c([{prop:this.heading,propName:"heading"}],"Toast")}componentDidUpdate(){var t;if(this.focusInteractiveElement&&this.isManual){this.resetAutoDismissTimer();const i=d(this.el,"action");const e=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("ic-button");if(i)this.interactiveElements.push(i);if(e)this.interactiveElements.push(e);this.focusInteractiveElement=false;this.findNextInteractiveElement(this.shiftKeyPressed).setFocus();this.shiftKeyPressed=false}}watchVisibleHandler(){var t;if(this.visible){const i=d(this.el,"action");const e=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("ic-button");if(i)this.interactiveElements.push(i);if(e)this.interactiveElements.push(e)}else{this.interactiveElements=[]}}handleDismiss(){this.visible=false;this.resetAutoDismissTimer()}handleKeyboard(t){if(this.visible){if(this.isManual){switch(t.key){case"Tab":t.preventDefault();this.findNextInteractiveElement(t.shiftKey).setFocus();break;case"Escape":!t.repeat&&this.dismissAction();t.stopImmediatePropagation();break}}else{if(t.key==="Tab"){this.shiftKeyPressed=t.shiftKey;this.focusInteractiveElement=true}}}}handleTimer(t){switch(t.type){case"mouseenter":if(!this.isManual){this.resetAutoDismissTimer()}this.isManual=true;break;case"mouseleave":if(this.dismissMode==="automatic"){this.isManual=false;this.interactiveElements=[];if(this.visible){this.dismissTimeout=window.setTimeout(this.dismissAction,this.autoDismissTimeout);this.timerRefreshInterval=window.setInterval(this.handleProgressChange,m)}}break}}async setVisible(){if(!this.visible)this.visible=true;if(!this.isManual){this.dismissTimeout=window.setTimeout(this.dismissAction,this.autoDismissTimeout);this.timerRefreshInterval=window.setInterval(this.handleProgressChange,m);return null}else{window.setTimeout((()=>this.interactiveElements[0].setFocus()),200);return document.activeElement}}handleLongText(t,i){if(i||t){console.error(`Too many characters in toast ${t?"heading":""}${t&&i?" and ":""}${i?"message":""}. Refer to character limits specified in the prop description`)}}findNextInteractiveElement(t){const i=this.interactiveElements[0];const e=this.interactiveElements[this.interactiveElements.length-1];if(this.isActive(t?i:e))return t?e:i;let s=0;return this.interactiveElements.some(((t,i)=>{if(!this.isActive(t))return false;s=i;return true}))?this.interactiveElements[s+(t?-1:1)]:i}resetAutoDismissTimer(){window.clearTimeout(this.dismissTimeout);window.clearInterval(this.timerRefreshInterval);this.timerProgress=100}isActive(t){return t===this.el?!!this.el.shadowRoot.activeElement:document.activeElement===t}render(){const{variant:t,heading:i,message:a,visible:c,isManual:d,dismissButtonAriaLabel:l}=this;return e(s,{key:"4e5a088492c0c9fb37f0ca2211d6f458be9e1318",class:{["ic-toast-hidden"]:!c},tabindex:"0",onFocus:this.onFocus,onBlur:this.onBlur,role:d?"dialog":"alert","aria-live":d?null:"polite"},e("div",{key:"5692e63d07ebc6ca0beaf89952f6dea339f46b28",class:"container"},t&&c&&e("div",{key:"a1a33233e9436d44ed398a72519d25d37256d355",class:"toast-icon-container"},e("div",{key:"eea9ec3d6b4d330d07f0d9aff54b040b14406d41",class:{["divider"]:true,[`divider-${t}`]:true}}),t==="neutral"?e("slot",{name:"neutral-icon"}):e("span",{class:"toast-icon",innerHTML:n[t].icon})),e("div",{key:"92552b4b1b4d5de15284d8f5382a56ed81a99d89",class:{["toast-content"]:true,["no-icon"]:t==="neutral"&&!r(this.el,"neutral-icon")}},e("div",{key:"96b38beec1024b8c1eff1b86e823f1f95c1e574d",class:"toast-text"},e("ic-typography",{key:"aacffb589fd0e8180b0b72ad7d1315f4720e67ed",variant:"subtitle-large",class:"toast-heading"},c&&(d?e("h5",null,i):e("p",null,i))),a&&e("ic-typography",{key:"6cbbb428be1211f1d730838a45cb17757d8af28a",variant:"body",class:"toast-message"},c&&e("p",{key:"45191e3180d2b133071d727f515c3b16391ca681"},a))),r(this.el,"action")&&e("div",{key:"4d3555d3dc5bb374ac8aa3c112e91da2da37c66d",class:"toast-action-container"},e("slot",{key:"0fcefdc03a5ff6f20e589f74433e51ea25b2e929",name:"action"}))),!d?e("ic-loading-indicator",{class:"toast-dismiss-timer",theme:"dark",monochrome:true,size:"icon",progress:this.timerProgress,description:"Dismiss timer"}):e("ic-button",{id:"dismiss-button",innerHTML:o,onClick:this.dismissAction,variant:"icon-tertiary","aria-label":l})))}get el(){return a(this)}static get watchers(){return{dismissMode:["dismissModeChangeHandler"],visible:["watchVisibleHandler"]}}};f.style=b;export{f as ic_toast};
|
2
|
+
//# sourceMappingURL=p-6e139e6e.entry.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["icToastCss","IcToastStyle0","AUTO_DISMISS_TIMER_REFRESH_RATE_MS","TOAST_HEADING_CHAR_LIMIT","TOAST_MESSAGE_CHAR_LIMIT","Toast","constructor","hostRef","this","interactiveElements","timerProgress","visible","autoDismissTimeout","dismissButtonAriaLabel","dismissMode","dismissAction","icDismiss","emit","handleProgressChange","onFocus","focusInteractiveElement","isManual","onBlur","handleTimer","type","dismissModeChangeHandler","newValue","disconnectedCallback","window","clearTimeout","dismissTimeout","clearInterval","timerRefreshInterval","componentWillLoad","handleLongText","heading","length","message","_a","isSlotUsed","el","variant","neutralVariantLabel","_b","neutralIconAriaLabel","VARIANT_ICONS","ariaLabel","toastMessage","isPropDefined","setAttribute","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","componentDidUpdate","resetAutoDismissTimer","actionContent","getSlot","dismissButton","shadowRoot","querySelector","push","findNextInteractiveElement","shiftKeyPressed","setFocus","watchVisibleHandler","handleDismiss","handleKeyboard","ev","key","preventDefault","shiftKey","repeat","stopImmediatePropagation","setTimeout","setInterval","setVisible","document","activeElement","headingTooLong","messageTooLong","console","error","isBackwards","firstEl","lastEl","isActive","currentIndex","some","index","targetEl","render","h","Host","class","tabindex","role","name","innerHTML","icon","theme","monochrome","size","progress","description","id","closeIcon","onClick"],"sources":["src/components/ic-toast/ic-toast.css?tag=ic-toast&encapsulation=shadow","src/components/ic-toast/ic-toast.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-toast: z-index of toast\n */\n\n@media (prefers-reduced-motion: no-preference) {\n :host {\n animation: fadein var(--ic-transition-duration-slow) ease-in-out;\n }\n\n :host(.hidden) {\n animation: fadeout var(--ic-transition-duration-slow) ease-in-out;\n }\n}\n\n:host {\n --bottom-position: var(--ic-space-xl);\n\n position: fixed;\n bottom: var(--bottom-position);\n left: 50%;\n transform: translate(-50%);\n z-index: var(--ic-z-index-toast);\n}\n\n:host(.ic-toast-hidden) {\n display: none;\n}\n\n:host(:focus) {\n outline: none;\n}\n\n.container {\n max-width: 32.5rem;\n min-width: 18rem;\n box-shadow: var(--ic-elevation-overlay);\n min-height: 3.5rem;\n background-color: var(--ic-toast-background);\n display: flex;\n align-items: center;\n position: relative;\n border-radius: var(--ic-border-radius);\n}\n\n.toast-icon-container {\n height: 100%;\n display: flex;\n align-items: center;\n}\n\n.divider {\n height: 100%;\n width: var(--ic-space-xs);\n position: absolute;\n border-radius: var(--ic-space-xxxs) 0 0 var(--ic-space-xxxs);\n}\n\n.divider-neutral {\n background-color: var(--ic-toast-status-neutral);\n}\n\n.divider-info {\n background-color: var(--ic-toast-status-info);\n}\n\n.divider-warning {\n background-color: var(--ic-toast-status-warning);\n}\n\n.divider-error {\n background-color: var(--ic-toast-status-error);\n}\n\n.divider-success {\n background-color: var(--ic-toast-status-success);\n}\n\n.divider-ai {\n background-color: var(--ic-toast-status-ai);\n}\n\n.toast-icon,\n::slotted(svg) {\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n margin-left: var(--ic-space-md);\n}\n\n:host([variant=\"neutral\"]) .toast-icon svg,\n::slotted(svg) {\n fill: var(--ic-toast-icon-neutral);\n}\n\n:host([variant=\"info\"]) .toast-icon svg {\n fill: var(--ic-toast-icon-info);\n}\n\n:host([variant=\"warning\"]) .toast-icon svg {\n fill: var(--ic-toast-icon-warning);\n}\n\n:host([variant=\"error\"]) .toast-icon svg {\n fill: var(--ic-toast-icon-error);\n}\n\n:host([variant=\"success\"]) .toast-icon svg {\n fill: var(--ic-toast-icon-success);\n}\n\n:host([variant=\"ai\"]) .toast-icon svg {\n fill: var(--ic-toast-icon-ai);\n}\n\n.toast-content {\n margin-left: var(--ic-space-xs);\n width: 100%;\n}\n\n.no-icon {\n margin-left: var(--ic-space-md);\n}\n\n.toast-text {\n padding: var(--ic-space-xs) var(--ic-space-xs) var(--ic-space-xs) 0;\n}\n\n.toast-heading {\n --ic-typography-color: var(--ic-toast-title);\n}\n\n.toast-message {\n --ic-typography-color: var(--ic-toast-description);\n}\n\n.toast-action-container {\n padding-bottom: var(--ic-space-md);\n}\n\n#dismiss-button {\n padding: var(--ic-space-xs);\n}\n\n#dismiss-button > svg {\n color: var(--ic-toast-dismiss-button);\n}\n\nic-loading-indicator {\n --outer-color: transparent;\n --inner-color: var(--ic-action-monochrome);\n}\n\n.toast-dismiss-timer {\n padding: var(--ic-space-sm);\n}\n\n@media (max-width: 576px) {\n :host {\n --bottom-position: var(--ic-space-lg);\n\n width: calc(100% - 2 * var(--ic-space-md));\n }\n}\n\n@media (min-width: 993px) {\n :host {\n --bottom-position: calc(var(--ic-space-xl) + var(--ic-space-xs));\n }\n}\n\n@media (forced-colors: active) {\n .container {\n border: var(--ic-border-hc);\n }\n}\n\n@keyframes fadein {\n from {\n bottom: 0;\n opacity: 0;\n }\n\n to {\n bottom: var(--bottom-position);\n opacity: 1;\n }\n}\n\n@keyframes fadeout {\n from {\n bottom: var(--bottom-position);\n opacity: 1;\n }\n\n to {\n bottom: 0;\n opacity: 0;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport { VARIANT_ICONS } from \"../../utils/constants\";\nimport {\n getSlot,\n isPropDefined,\n isSlotUsed,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport { IcActivationTypes, IcStatusVariants } from \"../../utils/types\";\nimport { ActionAreaElementTypes } from \"./ic-toast.types\";\n\nconst AUTO_DISMISS_TIMER_REFRESH_RATE_MS = 1000;\nconst TOAST_HEADING_CHAR_LIMIT = 70;\nconst TOAST_MESSAGE_CHAR_LIMIT = 140;\n\n/**\n * @slot action - IcButton or IcLink is placed below header and message. If used will default toast to manual `dismiss` type.\n * @slot neutral-icon - A custom neutral icon is placed on the left side of the component. If used will default toast to `neutral` variant.\n */\n@Component({\n tag: \"ic-toast\",\n styleUrl: \"ic-toast.css\",\n shadow: true,\n})\nexport class Toast {\n private dismissTimeout: number;\n private interactiveElements: ActionAreaElementTypes[] = [];\n private neutralVariantLabel: string;\n private timerRefreshInterval: number;\n private focusInteractiveElement: boolean;\n private shiftKeyPressed: boolean;\n\n @Element() el: HTMLIcToastElement;\n\n @State() isManual: boolean;\n @State() timerProgress = 100;\n @State() visible = false;\n\n /**\n * If toast dismissMode is set to `automatic`, use this prop to define the time before the toast dismisses (in MILLISECONDS)\n * (NOTE: Has a minimum value of `5000ms`)\n */\n @Prop({ mutable: true }) autoDismissTimeout? = 5000;\n\n /**\n * If toast can be manually dismissed, this prop sets a custom aria-label for the ic-button component\n */\n @Prop() dismissButtonAriaLabel? = \"dismiss\";\n\n /**\n * How the toast will be dismissed. If manual will display a dismiss button.\n */\n @Prop({ mutable: true }) dismissMode?: IcActivationTypes = \"manual\";\n @Watch(\"dismissMode\")\n dismissModeChangeHandler(newValue: IcActivationTypes): void {\n this.isManual = newValue === \"manual\";\n }\n\n /**\n * The title to display at the start of the toast. (NOTE: Should be no more than `70` characters)\n */\n @Prop() heading!: string;\n\n /**\n * The main body message of the toast. (NOTE: Should be no more than `140` characters)\n */\n @Prop() message?: string;\n\n /**\n * Provides a custom alt-text to be announced to screen readers, if slotting a custom neutral icon\n */\n @Prop() neutralIconAriaLabel?: string;\n\n /**\n * The variant of the toast being rendered\n */\n @Prop({ mutable: true }) variant?: IcStatusVariants;\n\n /**\n * Is emitted when the user dismisses the toast\n */\n @Event() icDismiss: EventEmitter<void>;\n\n disconnectedCallback(): void {\n window.clearTimeout(this.dismissTimeout);\n window.clearInterval(this.timerRefreshInterval);\n }\n\n componentWillLoad(): void {\n this.handleLongText(\n this.heading.length > TOAST_HEADING_CHAR_LIMIT,\n !!this.message && this.message?.length > TOAST_MESSAGE_CHAR_LIMIT\n );\n\n if (this.autoDismissTimeout! < 5000) this.autoDismissTimeout = 5000;\n\n if (isSlotUsed(this.el, \"action\")) this.dismissMode = \"manual\";\n this.isManual = this.dismissMode === \"manual\";\n\n if (isSlotUsed(this.el, \"neutral-icon\")) this.variant = \"neutral\";\n if (this.variant === \"neutral\") {\n this.neutralVariantLabel =\n this.neutralIconAriaLabel ?? VARIANT_ICONS[this.variant].ariaLabel;\n }\n\n if (this.isManual) {\n const toastMessage: string = isPropDefined(this.message)\n ? `. ${this.message}`\n : \"\";\n this.el.setAttribute(\n \"aria-label\",\n this.variant\n ? this.neutralVariantLabel || VARIANT_ICONS[this.variant].ariaLabel\n : this.heading\n );\n (this.variant || this.message) &&\n this.el.setAttribute(\n \"aria-description\",\n this.variant ? `${this.heading}${toastMessage}` : this.message || \"\"\n );\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Toast\"\n );\n }\n\n componentDidUpdate(): void {\n if (this.focusInteractiveElement && this.isManual) {\n this.resetAutoDismissTimer();\n\n const actionContent = getSlot(\n this.el,\n \"action\"\n ) as ActionAreaElementTypes;\n const dismissButton = this.el.shadowRoot?.querySelector(\"ic-button\");\n if (actionContent) this.interactiveElements.push(actionContent);\n if (dismissButton) this.interactiveElements.push(dismissButton);\n\n this.focusInteractiveElement = false;\n this.findNextInteractiveElement(this.shiftKeyPressed).setFocus();\n this.shiftKeyPressed = false;\n }\n }\n\n @Watch(\"visible\")\n watchVisibleHandler(): void {\n if (this.visible) {\n const actionContent = getSlot(\n this.el,\n \"action\"\n ) as ActionAreaElementTypes;\n const dismissButton = this.el.shadowRoot?.querySelector(\"ic-button\");\n if (actionContent) this.interactiveElements.push(actionContent);\n if (dismissButton) this.interactiveElements.push(dismissButton);\n } else {\n this.interactiveElements = [];\n }\n }\n\n @Listen(\"icDismiss\", { capture: true })\n handleDismiss(): void {\n this.visible = false;\n this.resetAutoDismissTimer();\n }\n\n @Listen(\"keydown\", { target: \"document\" })\n handleKeyboard(ev: KeyboardEvent): void {\n if (this.visible) {\n if (this.isManual) {\n switch (ev.key) {\n case \"Tab\":\n ev.preventDefault();\n this.findNextInteractiveElement(ev.shiftKey).setFocus();\n break;\n case \"Escape\":\n !ev.repeat && this.dismissAction();\n ev.stopImmediatePropagation();\n break;\n }\n } else {\n if (ev.key === \"Tab\") {\n this.shiftKeyPressed = ev.shiftKey;\n this.focusInteractiveElement = true;\n }\n }\n }\n }\n\n @Listen(\"mouseenter\")\n @Listen(\"mouseleave\")\n handleTimer(ev: MouseEvent): void {\n switch (ev.type) {\n case \"mouseenter\":\n if (!this.isManual) {\n this.resetAutoDismissTimer();\n }\n this.isManual = true;\n break;\n case \"mouseleave\":\n if (this.dismissMode === \"automatic\") {\n this.isManual = false;\n this.interactiveElements = [];\n if (this.visible) {\n this.dismissTimeout = window.setTimeout(\n this.dismissAction,\n this.autoDismissTimeout\n );\n this.timerRefreshInterval = window.setInterval(\n this.handleProgressChange,\n AUTO_DISMISS_TIMER_REFRESH_RATE_MS\n );\n }\n }\n break;\n }\n }\n\n /**\n * @internal Used to display the individual toast.\n * @returns The element that previously had focus before the toast appeared\n */\n @Method()\n async setVisible(): Promise<HTMLElement | null> {\n if (!this.visible) this.visible = true;\n if (!this.isManual) {\n this.dismissTimeout = window.setTimeout(\n this.dismissAction,\n this.autoDismissTimeout\n );\n this.timerRefreshInterval = window.setInterval(\n this.handleProgressChange,\n AUTO_DISMISS_TIMER_REFRESH_RATE_MS\n );\n return null;\n } else {\n window.setTimeout(() => this.interactiveElements[0].setFocus(), 200);\n return document.activeElement as HTMLElement;\n }\n }\n\n private dismissAction = (): void => {\n this.icDismiss.emit();\n };\n\n private handleProgressChange = () => {\n this.timerProgress -=\n (AUTO_DISMISS_TIMER_REFRESH_RATE_MS / this.autoDismissTimeout!) * 100;\n };\n\n private handleLongText(\n headingTooLong: boolean,\n messageTooLong?: boolean\n ): void {\n if (messageTooLong || headingTooLong) {\n console.error(\n `Too many characters in toast ${headingTooLong ? \"heading\" : \"\"}${\n headingTooLong && messageTooLong ? \" and \" : \"\"\n }${\n messageTooLong ? \"message\" : \"\"\n }. Refer to character limits specified in the prop description`\n );\n }\n }\n\n private findNextInteractiveElement(\n isBackwards: boolean\n ): ActionAreaElementTypes {\n const firstEl = this.interactiveElements[0];\n const lastEl =\n this.interactiveElements[this.interactiveElements.length - 1];\n\n if (this.isActive(isBackwards ? firstEl : lastEl))\n return isBackwards ? lastEl : firstEl;\n\n let currentIndex = 0;\n\n return this.interactiveElements.some((el, index) => {\n if (!this.isActive(el)) return false;\n currentIndex = index;\n return true;\n })\n ? this.interactiveElements[currentIndex + (isBackwards ? -1 : 1)]\n : firstEl;\n }\n\n private resetAutoDismissTimer(): void {\n window.clearTimeout(this.dismissTimeout);\n window.clearInterval(this.timerRefreshInterval);\n this.timerProgress = 100;\n }\n\n private isActive(targetEl: HTMLElement): boolean {\n return targetEl === this.el\n ? !!this.el.shadowRoot!.activeElement\n : document.activeElement === targetEl;\n }\n\n private onFocus = (): void => {\n if (this.focusInteractiveElement) {\n this.isManual = true;\n }\n };\n\n private onBlur = (): void => {\n this.handleTimer({ type: \"mouseleave\" } as MouseEvent);\n };\n\n render() {\n const {\n variant,\n heading,\n message,\n visible,\n isManual,\n dismissButtonAriaLabel,\n } = this;\n return (\n <Host\n class={{ [\"ic-toast-hidden\"]: !visible }}\n tabindex=\"0\"\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n role={isManual ? \"dialog\" : \"alert\"}\n aria-live={isManual ? null : \"polite\"}\n >\n <div class=\"container\">\n {variant && visible && (\n <div class=\"toast-icon-container\">\n <div\n class={{\n [\"divider\"]: true,\n [`divider-${variant}`]: true,\n }}\n ></div>\n {variant === \"neutral\" ? (\n <slot name=\"neutral-icon\" />\n ) : (\n <span\n class=\"toast-icon\"\n innerHTML={VARIANT_ICONS[variant].icon}\n ></span>\n )}\n </div>\n )}\n <div\n class={{\n [\"toast-content\"]: true,\n [\"no-icon\"]:\n variant === \"neutral\" && !isSlotUsed(this.el, \"neutral-icon\"),\n }}\n >\n <div class=\"toast-text\">\n <ic-typography variant=\"subtitle-large\" class=\"toast-heading\">\n {visible && (isManual ? <h5>{heading}</h5> : <p>{heading}</p>)}\n </ic-typography>\n {message && (\n <ic-typography variant=\"body\" class=\"toast-message\">\n {visible && <p>{message}</p>}\n </ic-typography>\n )}\n </div>\n {isSlotUsed(this.el, \"action\") && (\n <div class=\"toast-action-container\">\n <slot name=\"action\" />\n </div>\n )}\n </div>\n {!isManual ? (\n <ic-loading-indicator\n class=\"toast-dismiss-timer\"\n theme=\"dark\"\n monochrome\n size=\"icon\"\n progress={this.timerProgress}\n description=\"Dismiss timer\"\n ></ic-loading-indicator>\n ) : (\n <ic-button\n id=\"dismiss-button\"\n innerHTML={closeIcon}\n onClick={this.dismissAction}\n variant=\"icon\"\n aria-label={dismissButtonAriaLabel}\n ></ic-button>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["icToastCss","IcToastStyle0","AUTO_DISMISS_TIMER_REFRESH_RATE_MS","TOAST_HEADING_CHAR_LIMIT","TOAST_MESSAGE_CHAR_LIMIT","Toast","constructor","hostRef","this","interactiveElements","timerProgress","visible","autoDismissTimeout","dismissButtonAriaLabel","dismissMode","dismissAction","icDismiss","emit","handleProgressChange","onFocus","focusInteractiveElement","isManual","onBlur","handleTimer","type","dismissModeChangeHandler","newValue","disconnectedCallback","window","clearTimeout","dismissTimeout","clearInterval","timerRefreshInterval","componentWillLoad","handleLongText","heading","length","message","_a","isSlotUsed","el","variant","neutralVariantLabel","_b","neutralIconAriaLabel","VARIANT_ICONS","ariaLabel","toastMessage","isPropDefined","setAttribute","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","componentDidUpdate","resetAutoDismissTimer","actionContent","getSlot","dismissButton","shadowRoot","querySelector","push","findNextInteractiveElement","shiftKeyPressed","setFocus","watchVisibleHandler","handleDismiss","handleKeyboard","ev","key","preventDefault","shiftKey","repeat","stopImmediatePropagation","setTimeout","setInterval","setVisible","document","activeElement","headingTooLong","messageTooLong","console","error","isBackwards","firstEl","lastEl","isActive","currentIndex","some","index","targetEl","render","h","Host","class","tabindex","role","name","innerHTML","icon","theme","monochrome","size","progress","description","id","closeIcon","onClick"],"sources":["src/components/ic-toast/ic-toast.css?tag=ic-toast&encapsulation=shadow","src/components/ic-toast/ic-toast.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-toast: z-index of toast\n */\n\n@media (prefers-reduced-motion: no-preference) {\n :host {\n animation: fadein var(--ic-transition-duration-slow) ease-in-out;\n }\n\n :host(.hidden) {\n animation: fadeout var(--ic-transition-duration-slow) ease-in-out;\n }\n}\n\n:host {\n --bottom-position: var(--ic-space-xl);\n\n position: fixed;\n bottom: var(--bottom-position);\n left: 50%;\n transform: translate(-50%);\n z-index: var(--ic-z-index-toast);\n}\n\n:host(.ic-toast-hidden) {\n display: none;\n}\n\n:host(:focus) {\n outline: none;\n}\n\n.container {\n max-width: 32.5rem;\n min-width: 18rem;\n box-shadow: var(--ic-elevation-overlay);\n min-height: 3.5rem;\n background-color: var(--ic-toast-background);\n display: flex;\n align-items: center;\n position: relative;\n border-radius: var(--ic-border-radius);\n}\n\n.toast-icon-container {\n height: 100%;\n display: flex;\n align-items: center;\n}\n\n.divider {\n height: 100%;\n width: var(--ic-space-xs);\n position: absolute;\n border-radius: var(--ic-space-xxxs) 0 0 var(--ic-space-xxxs);\n}\n\n.divider-neutral {\n background-color: var(--ic-toast-status-neutral);\n}\n\n.divider-info {\n background-color: var(--ic-toast-status-info);\n}\n\n.divider-warning {\n background-color: var(--ic-toast-status-warning);\n}\n\n.divider-error {\n background-color: var(--ic-toast-status-error);\n}\n\n.divider-success {\n background-color: var(--ic-toast-status-success);\n}\n\n.divider-ai {\n background-color: var(--ic-toast-status-ai);\n}\n\n.toast-icon,\n::slotted(svg) {\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n margin-left: var(--ic-space-md);\n}\n\n:host([variant=\"neutral\"]) .toast-icon svg,\n::slotted(svg) {\n fill: var(--ic-toast-icon-neutral);\n}\n\n:host([variant=\"info\"]) .toast-icon svg {\n fill: var(--ic-toast-icon-info);\n}\n\n:host([variant=\"warning\"]) .toast-icon svg {\n fill: var(--ic-toast-icon-warning);\n}\n\n:host([variant=\"error\"]) .toast-icon svg {\n fill: var(--ic-toast-icon-error);\n}\n\n:host([variant=\"success\"]) .toast-icon svg {\n fill: var(--ic-toast-icon-success);\n}\n\n:host([variant=\"ai\"]) .toast-icon svg {\n fill: var(--ic-toast-icon-ai);\n}\n\n.toast-content {\n margin-left: var(--ic-space-xs);\n width: 100%;\n}\n\n.no-icon {\n margin-left: var(--ic-space-md);\n}\n\n.toast-text {\n padding: var(--ic-space-xs) var(--ic-space-xs) var(--ic-space-xs) 0;\n}\n\n.toast-heading {\n --ic-typography-color: var(--ic-toast-title);\n}\n\n.toast-message {\n --ic-typography-color: var(--ic-toast-description);\n}\n\n.toast-action-container {\n padding-bottom: var(--ic-space-md);\n}\n\n#dismiss-button {\n padding: var(--ic-space-xs);\n}\n\n#dismiss-button > svg {\n color: var(--ic-toast-dismiss-button);\n}\n\nic-loading-indicator {\n --outer-color: transparent;\n --inner-color: var(--ic-action-monochrome);\n}\n\n.toast-dismiss-timer {\n padding: var(--ic-space-sm);\n}\n\n@media (max-width: 576px) {\n :host {\n --bottom-position: var(--ic-space-lg);\n\n width: calc(100% - 2 * var(--ic-space-md));\n }\n}\n\n@media (min-width: 993px) {\n :host {\n --bottom-position: calc(var(--ic-space-xl) + var(--ic-space-xs));\n }\n}\n\n@media (forced-colors: active) {\n .container {\n border: var(--ic-border-hc);\n }\n}\n\n@keyframes fadein {\n from {\n bottom: 0;\n opacity: 0;\n }\n\n to {\n bottom: var(--bottom-position);\n opacity: 1;\n }\n}\n\n@keyframes fadeout {\n from {\n bottom: var(--bottom-position);\n opacity: 1;\n }\n\n to {\n bottom: 0;\n opacity: 0;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport { VARIANT_ICONS } from \"../../utils/constants\";\nimport {\n getSlot,\n isPropDefined,\n isSlotUsed,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport { IcActivationTypes, IcStatusVariants } from \"../../utils/types\";\nimport { ActionAreaElementTypes } from \"./ic-toast.types\";\n\nconst AUTO_DISMISS_TIMER_REFRESH_RATE_MS = 1000;\nconst TOAST_HEADING_CHAR_LIMIT = 70;\nconst TOAST_MESSAGE_CHAR_LIMIT = 140;\n\n/**\n * @slot action - IcButton or IcLink is placed below header and message. If used will default toast to manual `dismiss` type.\n * @slot neutral-icon - A custom neutral icon is placed on the left side of the component. If used will default toast to `neutral` variant.\n */\n@Component({\n tag: \"ic-toast\",\n styleUrl: \"ic-toast.css\",\n shadow: true,\n})\nexport class Toast {\n private dismissTimeout: number;\n private interactiveElements: ActionAreaElementTypes[] = [];\n private neutralVariantLabel: string;\n private timerRefreshInterval: number;\n private focusInteractiveElement: boolean;\n private shiftKeyPressed: boolean;\n\n @Element() el: HTMLIcToastElement;\n\n @State() isManual: boolean;\n @State() timerProgress = 100;\n @State() visible = false;\n\n /**\n * If toast dismissMode is set to `automatic`, use this prop to define the time before the toast dismisses (in MILLISECONDS)\n * (NOTE: Has a minimum value of `5000ms`)\n */\n @Prop({ mutable: true }) autoDismissTimeout? = 5000;\n\n /**\n * If toast can be manually dismissed, this prop sets a custom aria-label for the ic-button component\n */\n @Prop() dismissButtonAriaLabel? = \"dismiss\";\n\n /**\n * How the toast will be dismissed. If manual will display a dismiss button.\n */\n @Prop({ mutable: true }) dismissMode?: IcActivationTypes = \"manual\";\n @Watch(\"dismissMode\")\n dismissModeChangeHandler(newValue: IcActivationTypes): void {\n this.isManual = newValue === \"manual\";\n }\n\n /**\n * The title to display at the start of the toast. (NOTE: Should be no more than `70` characters)\n */\n @Prop() heading!: string;\n\n /**\n * The main body message of the toast. (NOTE: Should be no more than `140` characters)\n */\n @Prop() message?: string;\n\n /**\n * Provides a custom alt-text to be announced to screen readers, if slotting a custom neutral icon\n */\n @Prop() neutralIconAriaLabel?: string;\n\n /**\n * The variant of the toast being rendered\n */\n @Prop({ mutable: true }) variant?: IcStatusVariants;\n\n /**\n * Is emitted when the user dismisses the toast\n */\n @Event() icDismiss: EventEmitter<void>;\n\n disconnectedCallback(): void {\n window.clearTimeout(this.dismissTimeout);\n window.clearInterval(this.timerRefreshInterval);\n }\n\n componentWillLoad(): void {\n this.handleLongText(\n this.heading.length > TOAST_HEADING_CHAR_LIMIT,\n !!this.message && this.message?.length > TOAST_MESSAGE_CHAR_LIMIT\n );\n\n if (this.autoDismissTimeout! < 5000) this.autoDismissTimeout = 5000;\n\n if (isSlotUsed(this.el, \"action\")) this.dismissMode = \"manual\";\n this.isManual = this.dismissMode === \"manual\";\n\n if (isSlotUsed(this.el, \"neutral-icon\")) this.variant = \"neutral\";\n if (this.variant === \"neutral\") {\n this.neutralVariantLabel =\n this.neutralIconAriaLabel ?? VARIANT_ICONS[this.variant].ariaLabel;\n }\n\n if (this.isManual) {\n const toastMessage: string = isPropDefined(this.message)\n ? `. ${this.message}`\n : \"\";\n this.el.setAttribute(\n \"aria-label\",\n this.variant\n ? this.neutralVariantLabel || VARIANT_ICONS[this.variant].ariaLabel\n : this.heading\n );\n (this.variant || this.message) &&\n this.el.setAttribute(\n \"aria-description\",\n this.variant ? `${this.heading}${toastMessage}` : this.message || \"\"\n );\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Toast\"\n );\n }\n\n componentDidUpdate(): void {\n if (this.focusInteractiveElement && this.isManual) {\n this.resetAutoDismissTimer();\n\n const actionContent = getSlot(\n this.el,\n \"action\"\n ) as ActionAreaElementTypes;\n const dismissButton = this.el.shadowRoot?.querySelector(\"ic-button\");\n if (actionContent) this.interactiveElements.push(actionContent);\n if (dismissButton) this.interactiveElements.push(dismissButton);\n\n this.focusInteractiveElement = false;\n this.findNextInteractiveElement(this.shiftKeyPressed).setFocus();\n this.shiftKeyPressed = false;\n }\n }\n\n @Watch(\"visible\")\n watchVisibleHandler(): void {\n if (this.visible) {\n const actionContent = getSlot(\n this.el,\n \"action\"\n ) as ActionAreaElementTypes;\n const dismissButton = this.el.shadowRoot?.querySelector(\"ic-button\");\n if (actionContent) this.interactiveElements.push(actionContent);\n if (dismissButton) this.interactiveElements.push(dismissButton);\n } else {\n this.interactiveElements = [];\n }\n }\n\n @Listen(\"icDismiss\", { capture: true })\n handleDismiss(): void {\n this.visible = false;\n this.resetAutoDismissTimer();\n }\n\n @Listen(\"keydown\", { target: \"document\" })\n handleKeyboard(ev: KeyboardEvent): void {\n if (this.visible) {\n if (this.isManual) {\n switch (ev.key) {\n case \"Tab\":\n ev.preventDefault();\n this.findNextInteractiveElement(ev.shiftKey).setFocus();\n break;\n case \"Escape\":\n !ev.repeat && this.dismissAction();\n ev.stopImmediatePropagation();\n break;\n }\n } else {\n if (ev.key === \"Tab\") {\n this.shiftKeyPressed = ev.shiftKey;\n this.focusInteractiveElement = true;\n }\n }\n }\n }\n\n @Listen(\"mouseenter\")\n @Listen(\"mouseleave\")\n handleTimer(ev: MouseEvent): void {\n switch (ev.type) {\n case \"mouseenter\":\n if (!this.isManual) {\n this.resetAutoDismissTimer();\n }\n this.isManual = true;\n break;\n case \"mouseleave\":\n if (this.dismissMode === \"automatic\") {\n this.isManual = false;\n this.interactiveElements = [];\n if (this.visible) {\n this.dismissTimeout = window.setTimeout(\n this.dismissAction,\n this.autoDismissTimeout\n );\n this.timerRefreshInterval = window.setInterval(\n this.handleProgressChange,\n AUTO_DISMISS_TIMER_REFRESH_RATE_MS\n );\n }\n }\n break;\n }\n }\n\n /**\n * @internal Used to display the individual toast.\n * @returns The element that previously had focus before the toast appeared\n */\n @Method()\n async setVisible(): Promise<HTMLElement | null> {\n if (!this.visible) this.visible = true;\n if (!this.isManual) {\n this.dismissTimeout = window.setTimeout(\n this.dismissAction,\n this.autoDismissTimeout\n );\n this.timerRefreshInterval = window.setInterval(\n this.handleProgressChange,\n AUTO_DISMISS_TIMER_REFRESH_RATE_MS\n );\n return null;\n } else {\n window.setTimeout(() => this.interactiveElements[0].setFocus(), 200);\n return document.activeElement as HTMLElement;\n }\n }\n\n private dismissAction = (): void => {\n this.icDismiss.emit();\n };\n\n private handleProgressChange = () => {\n this.timerProgress -=\n (AUTO_DISMISS_TIMER_REFRESH_RATE_MS / this.autoDismissTimeout!) * 100;\n };\n\n private handleLongText(\n headingTooLong: boolean,\n messageTooLong?: boolean\n ): void {\n if (messageTooLong || headingTooLong) {\n console.error(\n `Too many characters in toast ${headingTooLong ? \"heading\" : \"\"}${\n headingTooLong && messageTooLong ? \" and \" : \"\"\n }${\n messageTooLong ? \"message\" : \"\"\n }. Refer to character limits specified in the prop description`\n );\n }\n }\n\n private findNextInteractiveElement(\n isBackwards: boolean\n ): ActionAreaElementTypes {\n const firstEl = this.interactiveElements[0];\n const lastEl =\n this.interactiveElements[this.interactiveElements.length - 1];\n\n if (this.isActive(isBackwards ? firstEl : lastEl))\n return isBackwards ? lastEl : firstEl;\n\n let currentIndex = 0;\n\n return this.interactiveElements.some((el, index) => {\n if (!this.isActive(el)) return false;\n currentIndex = index;\n return true;\n })\n ? this.interactiveElements[currentIndex + (isBackwards ? -1 : 1)]\n : firstEl;\n }\n\n private resetAutoDismissTimer(): void {\n window.clearTimeout(this.dismissTimeout);\n window.clearInterval(this.timerRefreshInterval);\n this.timerProgress = 100;\n }\n\n private isActive(targetEl: HTMLElement): boolean {\n return targetEl === this.el\n ? !!this.el.shadowRoot!.activeElement\n : document.activeElement === targetEl;\n }\n\n private onFocus = (): void => {\n if (this.focusInteractiveElement) {\n this.isManual = true;\n }\n };\n\n private onBlur = (): void => {\n this.handleTimer({ type: \"mouseleave\" } as MouseEvent);\n };\n\n render() {\n const {\n variant,\n heading,\n message,\n visible,\n isManual,\n dismissButtonAriaLabel,\n } = this;\n return (\n <Host\n class={{ [\"ic-toast-hidden\"]: !visible }}\n tabindex=\"0\"\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n role={isManual ? \"dialog\" : \"alert\"}\n aria-live={isManual ? null : \"polite\"}\n >\n <div class=\"container\">\n {variant && visible && (\n <div class=\"toast-icon-container\">\n <div\n class={{\n [\"divider\"]: true,\n [`divider-${variant}`]: true,\n }}\n ></div>\n {variant === \"neutral\" ? (\n <slot name=\"neutral-icon\" />\n ) : (\n <span\n class=\"toast-icon\"\n innerHTML={VARIANT_ICONS[variant].icon}\n ></span>\n )}\n </div>\n )}\n <div\n class={{\n [\"toast-content\"]: true,\n [\"no-icon\"]:\n variant === \"neutral\" && !isSlotUsed(this.el, \"neutral-icon\"),\n }}\n >\n <div class=\"toast-text\">\n <ic-typography variant=\"subtitle-large\" class=\"toast-heading\">\n {visible && (isManual ? <h5>{heading}</h5> : <p>{heading}</p>)}\n </ic-typography>\n {message && (\n <ic-typography variant=\"body\" class=\"toast-message\">\n {visible && <p>{message}</p>}\n </ic-typography>\n )}\n </div>\n {isSlotUsed(this.el, \"action\") && (\n <div class=\"toast-action-container\">\n <slot name=\"action\" />\n </div>\n )}\n </div>\n {!isManual ? (\n <ic-loading-indicator\n class=\"toast-dismiss-timer\"\n theme=\"dark\"\n monochrome\n size=\"icon\"\n progress={this.timerProgress}\n description=\"Dismiss timer\"\n ></ic-loading-indicator>\n ) : (\n <ic-button\n id=\"dismiss-button\"\n innerHTML={closeIcon}\n onClick={this.dismissAction}\n variant=\"icon-tertiary\"\n aria-label={dismissButtonAriaLabel}\n ></ic-button>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import{r as e,c as t,h as i,H as o,g as n}from"./p-8e4e97b4.js";import{r as a,i as s}from"./p-b57e59b7.js";import{C as r}from"./p-3b185c32.js";import"./p-bddf799a.js";const c='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;border-bottom:var(--ic-space-1px) solid var(--ic-accordion-divider)}:host .expand-chevron{color:var(--ic-accordion-chevron)}:host(.ic-accordion-disabled) .expand-chevron{color:var(--ic-accordion-chevron-disabled)}.section-button.small{padding:var(--ic-space-xxs) var(--ic-space-xs)}.section-button.large{padding:var(--ic-space-sm) var(--ic-space-xs)}:host(:first-of-type){border-top:var(--ic-space-1px) solid var(--ic-accordion-divider)}:focus{outline:none}.section-button{background-color:transparent;display:flex;align-items:center;width:100%;padding:var(--ic-space-xs);font-weight:var(--ic-font-weight-bold);border:none}.section-header{--ic-typography-color:var(--ic-accordion-heading-text);color:var(--ic-accordion-heading-text);text-align:left;flex:1 0}:host(.ic-accordion-disabled) .section-header{--ic-typography-color:var(--ic-accordion-heading-text-disabled);color:var(--ic-accordion-heading-text-disabled)}button:hover{background-color:var(--ic-accordion-background-hover);cursor:pointer}button:active{background-color:var(--ic-accordion-background-pressed)}button:focus{box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);transition:var(--ic-transition-duration-fast)}button:disabled{pointer-events:none}.icon-container{margin:0 var(--ic-space-xs) 0 0;display:flex;align-items:center;width:var(--ic-space-lg);height:var(--ic-space-lg);color:var(--ic-accordion-icon)}:host(.ic-accordion-disabled) .icon-container{color:var(--ic-accordion-icon-disabled)}::slotted(svg){width:var(--ic-space-md);height:var(--ic-space-md)}.expand-chevron{width:var(--ic-space-lg);height:var(--ic-space-lg);margin-left:calc(var(--ic-space-xl) + var(--ic-space-xs));transform:rotate(90deg);justify-self:end}.content-expanded-chevron{transform:rotate(-90deg)}.expanded-content{--ic-typography-color:var(--ic-accordion-body-text);color:var(--ic-accordion-body-text);height:0;overflow:hidden;display:flex;flex-direction:column;visibility:var(--ic-expanded-content-visibility, hidden)}.expanded-content-inner{padding:var(--ic-space-xs)}.expanded-content-opened{overflow:visible}@media (forced-colors: active){button:focus{border:var(--ic-border-hc) !important}}';const d=c;let l=0;const h="expanded-content-opened";const b=class{constructor(i){e(this,i);this.accordionClicked=t(this,"accordionClicked",7);this.accordionId=`ic-accordion-${l++}`;this.CONTENT_VISIBILITY_PROPERTY="--ic-expanded-content-visibility";this.disabled=false;this.expanded=false;this.heading="";this.message="";this.size="medium";this.theme="inherit";this.toggleExpanded=()=>{this.expanded=!this.expanded;this.accordionClicked.emit({id:this.accordionId})};this.setAccordionAnimation=(e,t,i,o)=>{e.style.transitionDuration=`${t}ms`;e.style.transitionProperty=i;e.style.transitionDelay=o};this.setExpandedContentStyle=(e,t)=>{if(e.propertyName==="height"&&t.clientHeight>0){t.classList.add(h);t.style.height="auto"}};this.hideExpandedContent=(e,t)=>{if(e.propertyName==="height"&&t.clientHeight===0){t.style.setProperty(this.CONTENT_VISIBILITY_PROPERTY,"hidden")}};this.animateExpandedContent=()=>{if(this.expandedContentEl){const e=this.expandedContentEl;const t=e.scrollHeight;if(t>0&&this.expanded){e.style.setProperty(this.CONTENT_VISIBILITY_PROPERTY,"visible");e.style.height=`${t}px`;this.setAccordionAnimation(e,"300","height","ease-out");e.addEventListener("transitionend",(t=>{this.setExpandedContentStyle(t,e)}))}else if(!this.expanded){const e=this.expandedContentEl;e.style.height=`${e.scrollHeight}px`;if(e.scrollHeight>0&&!this.expanded){e.style.height="0";this.setAccordionAnimation(e,"300","height","ease-in");e.classList.remove(h)}e.addEventListener("transitionend",(t=>{this.hideExpandedContent(t,e)}))}}}}watchDisabledHandler(){a(this.disabled,this.el)}handleExpandedWatch(){this.animateExpandedContent()}async setFocus(){var e;(e=this.accordionBtnHeading)===null||e===void 0?void 0:e.focus()}componentWillLoad(){a(this.disabled,this.el)}disconnectedCallback(){const e=this.expandedContentEl;if(e){e.removeEventListener("transitionend",(t=>this.setExpandedContentStyle(t,e)),true);e.removeEventListener("transitionend",(t=>this.hideExpandedContent(t,e)),true)}}componentDidLoad(){if(this.expanded&&this.expandedContentEl){this.expandedContentEl.style.height="auto";this.expandedContentEl.style.setProperty(this.CONTENT_VISIBILITY_PROPERTY,"visible");this.expandedContentEl.classList.add(h)}}render(){const{size:e,disabled:t,expanded:n,theme:a}=this;return i(o,{key:"9fff7c4dc37187f9a2d03ae477c48012ff17c870",id:this.accordionId,class:{["ic-accordion-disabled"]:!!t,[`ic-theme-${a}`]:a!=="inherit"},"aria-disabled":t?"true":"false"},i("button",{key:"0f83275fbfc435eb5b640bd76b9a9582fcb3dca0",ref:e=>this.accordionBtnHeading=e,id:`${this.accordionId}-button`,disabled:t,tabindex:t?-1:0,class:{[`${e}`]:true,["section-button"]:true,["section-button-open"]:!!n&&!t},"aria-expanded":`${n}`,"aria-controls":"expanded-content-area",onClick:this.toggleExpanded},s(this.el,"icon")&&i("div",{key:"41c88884df97917d026fbecb500c35b393045c7d",class:"icon-container"},i("slot",{key:"ddc6894db8ab81e27c971350e261d99b51759756",name:"icon"})),i("ic-typography",{key:"e0ca73dbe5a2d46dbe2f893d4405e3d82fd2a862",variant:"subtitle-large",class:"section-header"},s(this.el,"heading")?i("slot",{name:"heading"}):this.heading),i("span",{key:"a95fad35c3e3f38415da026a93112079f74de4d7",class:{["expand-chevron"]:true,["content-expanded-chevron"]:!!n&&!t},"aria-hidden":"true",innerHTML:r})),i("div",{key:"65b6322d5dde677528891631ecd9b95189948771",class:{["expanded-content"]:true},"aria-labelledby":`${this.accordionId}-button`,role:"region","aria-hidden":`${!n}`,id:"expanded-content-area",ref:e=>this.expandedContentEl=e},i("div",{key:"de9ec00d55757be20c097082817529b652200263",class:"expanded-content-inner"},this.message?i("ic-typography",{variant:"body"},this.message):i("slot",null))))}get el(){return n(this)}static get watchers(){return{disabled:["watchDisabledHandler"],expanded:["handleExpandedWatch"]}}};b.style=d;export{b as ic_accordion};
|
2
|
+
//# sourceMappingURL=p-80317cd1.entry.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["icAccordionCss","IcAccordionStyle0","accordionIds","EXPANDED_CONTENT_OPENED_CLASS","Accordion","constructor","hostRef","this","accordionId","CONTENT_VISIBILITY_PROPERTY","disabled","expanded","heading","message","size","theme","toggleExpanded","accordionClicked","emit","id","setAccordionAnimation","el","duration","property","delay","style","transitionDuration","transitionProperty","transitionDelay","setExpandedContentStyle","ev","expandedContent","propertyName","clientHeight","classList","add","height","hideExpandedContent","setProperty","animateExpandedContent","expandedContentEl","elementHeight","scrollHeight","addEventListener","e","remove","watchDisabledHandler","removeDisabledFalse","handleExpandedWatch","setFocus","_a","accordionBtnHeading","focus","componentWillLoad","disconnectedCallback","removeEventListener","componentDidLoad","render","h","Host","key","class","ref","tabindex","onClick","isSlotUsed","name","variant","innerHTML","chevronIcon","role"],"sources":["src/components/ic-accordion/ic-accordion.css?tag=ic-accordion&encapsulation=shadow","src/components/ic-accordion/ic-accordion.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: block;\n border-bottom: var(--ic-space-1px) solid var(--ic-accordion-divider);\n}\n\n:host .expand-chevron {\n color: var(--ic-accordion-chevron);\n}\n\n:host(.ic-accordion-disabled) .expand-chevron {\n color: var(--ic-accordion-chevron-disabled);\n}\n\n.section-button.small {\n padding: var(--ic-space-xxs) var(--ic-space-xs);\n}\n\n.section-button.large {\n padding: var(--ic-space-sm) var(--ic-space-xs);\n}\n\n:host(:first-of-type) {\n border-top: var(--ic-space-1px) solid var(--ic-accordion-divider);\n}\n\n:focus {\n outline: none;\n}\n\n.section-button {\n background-color: transparent;\n display: flex;\n align-items: center;\n width: 100%;\n padding: var(--ic-space-xs);\n font-weight: var(--ic-font-weight-bold);\n border: none;\n}\n\n.section-header {\n --ic-typography-color: var(--ic-accordion-heading-text);\n\n color: var(--ic-accordion-heading-text);\n text-align: left;\n flex: 1 0;\n}\n\n:host(.ic-accordion-disabled) .section-header {\n --ic-typography-color: var(--ic-accordion-heading-text-disabled);\n\n color: var(--ic-accordion-heading-text-disabled);\n}\n\nbutton:hover {\n background-color: var(--ic-accordion-background-hover);\n cursor: pointer;\n}\n\nbutton:active {\n background-color: var(--ic-accordion-background-pressed);\n}\n\nbutton:focus {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n transition: var(--ic-transition-duration-fast);\n}\n\nbutton:disabled {\n pointer-events: none;\n}\n\n.icon-container {\n margin: 0 var(--ic-space-xs) 0 0;\n display: flex;\n align-items: center;\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n color: var(--ic-accordion-icon);\n}\n\n:host(.ic-accordion-disabled) .icon-container {\n color: var(--ic-accordion-icon-disabled);\n}\n\n::slotted(svg) {\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n}\n\n.expand-chevron {\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n margin-left: calc(var(--ic-space-xl) + var(--ic-space-xs));\n transform: rotate(90deg);\n justify-self: end;\n}\n\n.content-expanded-chevron {\n transform: rotate(-90deg);\n}\n\n.expanded-content {\n --ic-typography-color: var(--ic-accordion-body-text);\n\n color: var(--ic-accordion-body-text);\n height: 0;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n visibility: var(--ic-expanded-content-visibility, hidden);\n}\n\n.expanded-content-inner {\n padding: var(--ic-space-xs);\n}\n\n.expanded-content-opened {\n overflow: visible;\n}\n\n@media (forced-colors: active) {\n button:focus {\n border: var(--ic-border-hc) !important;\n }\n}\n","import {\n Component,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Host,\n Watch,\n Method,\n} from \"@stencil/core\";\nimport { isSlotUsed, removeDisabledFalse } from \"../../utils/helpers\";\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\nimport { IcSizes, IcThemeMode } from \"../../utils/types\";\n\nlet accordionIds = 0;\nconst EXPANDED_CONTENT_OPENED_CLASS = \"expanded-content-opened\";\n\n/**\n * @slot heading - Content is placed as the accordion heading.\n * @slot icon - Content is placed to the left of the heading.\n */\n\n@Component({\n tag: \"ic-accordion\",\n styleUrl: \"ic-accordion.css\",\n shadow: true,\n})\nexport class Accordion {\n private accordionId = `ic-accordion-${accordionIds++}`;\n private expandedContentEl?: HTMLDivElement;\n private accordionBtnHeading?: HTMLButtonElement;\n private CONTENT_VISIBILITY_PROPERTY = \"--ic-expanded-content-visibility\";\n\n @Element() el: HTMLIcAccordionElement;\n\n /**\n * If `true`, the accordion will be disabled.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the accordion appears expanded.\n */\n @Prop({ mutable: true }) expanded?: boolean = false;\n\n /**\n * The section header outlining section content.\n */\n @Prop() heading?: string = \"\";\n\n /**\n * The main body message of the accordion.\n */\n @Prop() message?: string = \"\";\n\n /**\n * The size of the accordion.\n */\n @Prop() size?: IcSizes = \"medium\";\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 accordion is clicked.\n */\n @Event() accordionClicked: EventEmitter<{ id: string }>;\n\n // Every time expanded is set via toggleExpanded or accordionGroup, animate to open or close\n @Watch(\"expanded\")\n handleExpandedWatch(): void {\n this.animateExpandedContent();\n }\n\n /**\n * Sets focus on accordion heading.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.accordionBtnHeading?.focus();\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n disconnectedCallback(): void {\n const expandedContentEl = this.expandedContentEl;\n if (expandedContentEl) {\n expandedContentEl.removeEventListener(\n \"transitionend\",\n (e) => this.setExpandedContentStyle(e, expandedContentEl),\n true\n );\n expandedContentEl.removeEventListener(\n \"transitionend\",\n (e) => this.hideExpandedContent(e, expandedContentEl),\n true\n );\n }\n }\n\n componentDidLoad(): void {\n // So accordion opens by default if expanded set to true\n if (this.expanded && this.expandedContentEl) {\n this.expandedContentEl.style.height = \"auto\";\n this.expandedContentEl.style.setProperty(\n this.CONTENT_VISIBILITY_PROPERTY,\n \"visible\"\n );\n this.expandedContentEl.classList.add(EXPANDED_CONTENT_OPENED_CLASS);\n }\n }\n\n private toggleExpanded = (): void => {\n this.expanded = !this.expanded;\n this.accordionClicked.emit({ id: this.accordionId });\n };\n\n // Set accordion animation\n private setAccordionAnimation = (\n el: HTMLElement,\n duration: string,\n property: string,\n delay: string\n ) => {\n el.style.transitionDuration = `${duration}ms`;\n el.style.transitionProperty = property;\n el.style.transitionDelay = delay;\n };\n\n private setExpandedContentStyle = (\n ev: TransitionEvent,\n expandedContent: HTMLDivElement\n ) => {\n if (ev.propertyName === \"height\" && expandedContent.clientHeight > 0) {\n expandedContent.classList.add(EXPANDED_CONTENT_OPENED_CLASS);\n expandedContent.style.height = \"auto\";\n }\n };\n\n private hideExpandedContent = (\n ev: TransitionEvent,\n expandedContent: HTMLDivElement\n ) => {\n if (ev.propertyName === \"height\" && expandedContent.clientHeight === 0) {\n expandedContent.style.setProperty(\n this.CONTENT_VISIBILITY_PROPERTY,\n \"hidden\"\n );\n }\n };\n\n private animateExpandedContent = () => {\n if (this.expandedContentEl) {\n const expandedContentEl = this.expandedContentEl;\n const elementHeight = expandedContentEl.scrollHeight;\n if (elementHeight > 0 && this.expanded) {\n expandedContentEl.style.setProperty(\n this.CONTENT_VISIBILITY_PROPERTY,\n \"visible\"\n );\n expandedContentEl.style.height = `${elementHeight}px`;\n this.setAccordionAnimation(\n expandedContentEl,\n \"300\",\n \"height\",\n \"ease-out\"\n );\n\n expandedContentEl.addEventListener(\n \"transitionend\",\n (e: TransitionEvent) => {\n this.setExpandedContentStyle(e, expandedContentEl);\n }\n );\n } else if (!this.expanded) {\n const expandedContentEl = this.expandedContentEl;\n expandedContentEl.style.height = `${expandedContentEl.scrollHeight}px`;\n if (expandedContentEl.scrollHeight > 0 && !this.expanded) {\n expandedContentEl.style.height = \"0\";\n this.setAccordionAnimation(\n expandedContentEl,\n \"300\",\n \"height\",\n \"ease-in\"\n );\n expandedContentEl.classList.remove(EXPANDED_CONTENT_OPENED_CLASS);\n }\n expandedContentEl.addEventListener(\"transitionend\", (e) => {\n this.hideExpandedContent(e, expandedContentEl);\n });\n }\n }\n };\n\n render() {\n const { size, disabled, expanded, theme } = this;\n return (\n <Host\n id={this.accordionId}\n class={{\n [\"ic-accordion-disabled\"]: !!disabled,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n aria-disabled={disabled ? \"true\" : \"false\"}\n >\n <button\n ref={(el) => (this.accordionBtnHeading = el)}\n id={`${this.accordionId}-button`}\n disabled={disabled}\n tabindex={disabled ? -1 : 0}\n class={{\n [`${size}`]: true,\n [\"section-button\"]: true,\n [\"section-button-open\"]: !!expanded && !disabled,\n }}\n aria-expanded={`${expanded}`}\n aria-controls=\"expanded-content-area\"\n onClick={this.toggleExpanded}\n >\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon-container\">\n <slot name=\"icon\" />\n </div>\n )}\n <ic-typography variant=\"subtitle-large\" class=\"section-header\">\n {isSlotUsed(this.el, \"heading\") ? (\n <slot name=\"heading\" />\n ) : (\n this.heading\n )}\n </ic-typography>\n <span\n class={{\n [\"expand-chevron\"]: true,\n [\"content-expanded-chevron\"]: !!expanded && !disabled,\n }}\n aria-hidden=\"true\"\n innerHTML={chevronIcon}\n />\n </button>\n <div\n class={{\n [\"expanded-content\"]: true,\n }}\n aria-labelledby={`${this.accordionId}-button`}\n role=\"region\"\n aria-hidden={`${!expanded}`}\n id=\"expanded-content-area\"\n ref={(el) => (this.expandedContentEl = el)}\n >\n <div class=\"expanded-content-inner\">\n {this.message ? (\n <ic-typography variant=\"body\">{this.message}</ic-typography>\n ) : (\n <slot />\n )}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["icAccordionCss","IcAccordionStyle0","accordionIds","EXPANDED_CONTENT_OPENED_CLASS","Accordion","constructor","hostRef","this","accordionId","CONTENT_VISIBILITY_PROPERTY","disabled","expanded","heading","message","size","theme","toggleExpanded","accordionClicked","emit","id","setAccordionAnimation","el","duration","property","delay","style","transitionDuration","transitionProperty","transitionDelay","setExpandedContentStyle","ev","expandedContent","propertyName","clientHeight","classList","add","height","hideExpandedContent","setProperty","animateExpandedContent","expandedContentEl","elementHeight","scrollHeight","addEventListener","e","remove","watchDisabledHandler","removeDisabledFalse","handleExpandedWatch","setFocus","_a","accordionBtnHeading","focus","componentWillLoad","disconnectedCallback","removeEventListener","componentDidLoad","render","h","Host","key","class","ref","tabindex","onClick","isSlotUsed","name","variant","innerHTML","chevronIcon","role"],"sources":["src/components/ic-accordion/ic-accordion.css?tag=ic-accordion&encapsulation=shadow","src/components/ic-accordion/ic-accordion.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: block;\n border-bottom: var(--ic-space-1px) solid var(--ic-accordion-divider);\n}\n\n:host .expand-chevron {\n color: var(--ic-accordion-chevron);\n}\n\n:host(.ic-accordion-disabled) .expand-chevron {\n color: var(--ic-accordion-chevron-disabled);\n}\n\n.section-button.small {\n padding: var(--ic-space-xxs) var(--ic-space-xs);\n}\n\n.section-button.large {\n padding: var(--ic-space-sm) var(--ic-space-xs);\n}\n\n:host(:first-of-type) {\n border-top: var(--ic-space-1px) solid var(--ic-accordion-divider);\n}\n\n:focus {\n outline: none;\n}\n\n.section-button {\n background-color: transparent;\n display: flex;\n align-items: center;\n width: 100%;\n padding: var(--ic-space-xs);\n font-weight: var(--ic-font-weight-bold);\n border: none;\n}\n\n.section-header {\n --ic-typography-color: var(--ic-accordion-heading-text);\n\n color: var(--ic-accordion-heading-text);\n text-align: left;\n flex: 1 0;\n}\n\n:host(.ic-accordion-disabled) .section-header {\n --ic-typography-color: var(--ic-accordion-heading-text-disabled);\n\n color: var(--ic-accordion-heading-text-disabled);\n}\n\nbutton:hover {\n background-color: var(--ic-accordion-background-hover);\n cursor: pointer;\n}\n\nbutton:active {\n background-color: var(--ic-accordion-background-pressed);\n}\n\nbutton:focus {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n transition: var(--ic-transition-duration-fast);\n}\n\nbutton:disabled {\n pointer-events: none;\n}\n\n.icon-container {\n margin: 0 var(--ic-space-xs) 0 0;\n display: flex;\n align-items: center;\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n color: var(--ic-accordion-icon);\n}\n\n:host(.ic-accordion-disabled) .icon-container {\n color: var(--ic-accordion-icon-disabled);\n}\n\n::slotted(svg) {\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n}\n\n.expand-chevron {\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n margin-left: calc(var(--ic-space-xl) + var(--ic-space-xs));\n transform: rotate(90deg);\n justify-self: end;\n}\n\n.content-expanded-chevron {\n transform: rotate(-90deg);\n}\n\n.expanded-content {\n --ic-typography-color: var(--ic-accordion-body-text);\n\n color: var(--ic-accordion-body-text);\n height: 0;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n visibility: var(--ic-expanded-content-visibility, hidden);\n}\n\n.expanded-content-inner {\n padding: var(--ic-space-xs);\n}\n\n.expanded-content-opened {\n overflow: visible;\n}\n\n@media (forced-colors: active) {\n button:focus {\n border: var(--ic-border-hc) !important;\n }\n}\n","import {\n Component,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Host,\n Watch,\n Method,\n} from \"@stencil/core\";\nimport { isSlotUsed, removeDisabledFalse } from \"../../utils/helpers\";\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\nimport { IcSizes, IcThemeMode } from \"../../utils/types\";\n\nlet accordionIds = 0;\nconst EXPANDED_CONTENT_OPENED_CLASS = \"expanded-content-opened\";\n\n/**\n * @slot heading - Content is placed as the accordion heading.\n * @slot icon - Content is placed to the left of the heading.\n */\n\n@Component({\n tag: \"ic-accordion\",\n styleUrl: \"ic-accordion.css\",\n shadow: true,\n})\nexport class Accordion {\n private accordionId = `ic-accordion-${accordionIds++}`;\n private expandedContentEl?: HTMLDivElement;\n private accordionBtnHeading?: HTMLButtonElement;\n private CONTENT_VISIBILITY_PROPERTY = \"--ic-expanded-content-visibility\";\n\n @Element() el: HTMLIcAccordionElement;\n\n /**\n * If `true`, the accordion will be disabled.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the accordion appears expanded.\n */\n @Prop({ mutable: true }) expanded?: boolean = false;\n\n /**\n * The section header outlining section content.\n */\n @Prop() heading?: string = \"\";\n\n /**\n * The main body message of the accordion.\n */\n @Prop() message?: string = \"\";\n\n /**\n * The size of the accordion.\n */\n @Prop() size?: IcSizes = \"medium\";\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 accordion is clicked.\n */\n @Event() accordionClicked: EventEmitter<{ id: string }>;\n\n // Every time expanded is set via toggleExpanded or accordionGroup, animate to open or close\n @Watch(\"expanded\")\n handleExpandedWatch(): void {\n this.animateExpandedContent();\n }\n\n /**\n * Sets focus on accordion heading.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.accordionBtnHeading?.focus();\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n disconnectedCallback(): void {\n const expandedContentEl = this.expandedContentEl;\n if (expandedContentEl) {\n expandedContentEl.removeEventListener(\n \"transitionend\",\n (e) => this.setExpandedContentStyle(e, expandedContentEl),\n true\n );\n expandedContentEl.removeEventListener(\n \"transitionend\",\n (e) => this.hideExpandedContent(e, expandedContentEl),\n true\n );\n }\n }\n\n componentDidLoad(): void {\n // So accordion opens by default if expanded set to true\n if (this.expanded && this.expandedContentEl) {\n this.expandedContentEl.style.height = \"auto\";\n this.expandedContentEl.style.setProperty(\n this.CONTENT_VISIBILITY_PROPERTY,\n \"visible\"\n );\n this.expandedContentEl.classList.add(EXPANDED_CONTENT_OPENED_CLASS);\n }\n }\n\n private toggleExpanded = (): void => {\n this.expanded = !this.expanded;\n this.accordionClicked.emit({ id: this.accordionId });\n };\n\n // Set accordion animation\n private setAccordionAnimation = (\n el: HTMLElement,\n duration: string,\n property: string,\n delay: string\n ) => {\n el.style.transitionDuration = `${duration}ms`;\n el.style.transitionProperty = property;\n el.style.transitionDelay = delay;\n };\n\n private setExpandedContentStyle = (\n ev: TransitionEvent,\n expandedContent: HTMLDivElement\n ) => {\n if (ev.propertyName === \"height\" && expandedContent.clientHeight > 0) {\n expandedContent.classList.add(EXPANDED_CONTENT_OPENED_CLASS);\n expandedContent.style.height = \"auto\";\n }\n };\n\n private hideExpandedContent = (\n ev: TransitionEvent,\n expandedContent: HTMLDivElement\n ) => {\n if (ev.propertyName === \"height\" && expandedContent.clientHeight === 0) {\n expandedContent.style.setProperty(\n this.CONTENT_VISIBILITY_PROPERTY,\n \"hidden\"\n );\n }\n };\n\n private animateExpandedContent = () => {\n if (this.expandedContentEl) {\n const expandedContentEl = this.expandedContentEl;\n const elementHeight = expandedContentEl.scrollHeight;\n if (elementHeight > 0 && this.expanded) {\n expandedContentEl.style.setProperty(\n this.CONTENT_VISIBILITY_PROPERTY,\n \"visible\"\n );\n expandedContentEl.style.height = `${elementHeight}px`;\n this.setAccordionAnimation(\n expandedContentEl,\n \"300\",\n \"height\",\n \"ease-out\"\n );\n\n expandedContentEl.addEventListener(\n \"transitionend\",\n (e: TransitionEvent) => {\n this.setExpandedContentStyle(e, expandedContentEl);\n }\n );\n } else if (!this.expanded) {\n const expandedContentEl = this.expandedContentEl;\n expandedContentEl.style.height = `${expandedContentEl.scrollHeight}px`;\n if (expandedContentEl.scrollHeight > 0 && !this.expanded) {\n expandedContentEl.style.height = \"0\";\n this.setAccordionAnimation(\n expandedContentEl,\n \"300\",\n \"height\",\n \"ease-in\"\n );\n expandedContentEl.classList.remove(EXPANDED_CONTENT_OPENED_CLASS);\n }\n expandedContentEl.addEventListener(\"transitionend\", (e) => {\n this.hideExpandedContent(e, expandedContentEl);\n });\n }\n }\n };\n\n render() {\n const { size, disabled, expanded, theme } = this;\n return (\n <Host\n id={this.accordionId}\n class={{\n [\"ic-accordion-disabled\"]: !!disabled,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n aria-disabled={disabled ? \"true\" : \"false\"}\n >\n <button\n ref={(el) => (this.accordionBtnHeading = el)}\n id={`${this.accordionId}-button`}\n disabled={disabled}\n tabindex={disabled ? -1 : 0}\n class={{\n [`${size}`]: true,\n [\"section-button\"]: true,\n [\"section-button-open\"]: !!expanded && !disabled,\n }}\n aria-expanded={`${expanded}`}\n aria-controls=\"expanded-content-area\"\n onClick={this.toggleExpanded}\n >\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon-container\">\n <slot name=\"icon\" />\n </div>\n )}\n <ic-typography variant=\"subtitle-large\" class=\"section-header\">\n {isSlotUsed(this.el, \"heading\") ? (\n <slot name=\"heading\" />\n ) : (\n this.heading\n )}\n </ic-typography>\n <span\n class={{\n [\"expand-chevron\"]: true,\n [\"content-expanded-chevron\"]: !!expanded && !disabled,\n }}\n aria-hidden=\"true\"\n innerHTML={chevronIcon}\n />\n </button>\n <div\n class={{\n [\"expanded-content\"]: true,\n }}\n aria-labelledby={`${this.accordionId}-button`}\n role=\"region\"\n aria-hidden={`${!expanded}`}\n id=\"expanded-content-area\"\n ref={(el) => (this.expandedContentEl = el)}\n >\n <div class=\"expanded-content-inner\">\n {this.message ? (\n <ic-typography variant=\"body\">{this.message}</ic-typography>\n ) : (\n <slot />\n )}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import{r as i,c as t,h as e,f as a,H as n,g as o}from"./p-8e4e97b4.js";import{z as s,D as r,g as d,f as l,y as c}from"./p-b57e59b7.js";import{C as v}from"./p-3b185c32.js";import{O as h}from"./p-426ec638.js";import"./p-bddf799a.js";const g='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;--navigation-link-colour:var(--ic-brand-text-color)}:host(:focus-within){z-index:var(--ic-z-index-navigation-item)}svg{width:var(--ic-space-xl);fill:var(--ic-brand-text-color)}.svg{margin-left:auto}.chevron-container svg,.chevron-container .svg{width:var(--ic-space-lg);height:var(--ic-space-lg)}.chevron-container{flex-grow:1}:host(.expandable.navigation-item) .link,:host(.expandable.navigation-item) ::slotted(a){padding-right:0}:host(.navigation-item) .link,:host(.navigation-item) ::slotted(a){height:calc(100% - var(--ic-space-xxs));width:-moz-fit-content;width:fit-content;color:var(--navigation-link-colour);display:flex;align-items:center;justify-content:center;padding:0 var(--ic-space-md) var(--ic-space-xxs);text-decoration:none;transition:var(--ic-easing-transition-fast);position:relative;white-space:nowrap}:host(.navigation-item) ::slotted(a){height:100%;font:var(--ic-font-label) !important;letter-spacing:var(--ic-font-letter-spacing-0pt025) !important;padding:0 var(--ic-space-md) !important}:host(.navigation-item-selected) .link::after,:host(.navigation-item-selected) ::slotted(a.active)::after,:host(.navigation-item-top-nav) ::slotted(a.active)::after{content:"";height:0.25rem;width:100%;position:absolute;bottom:0;background-color:var(--ic-top-navigation-theme)}:host(.navigation-item-selected.navigation-item-page-header) ::slotted(a.active)::after,:host(.navigation-item-selected.navigation-item-page-header) .link::after,:host(.navigation-item.navigation-item-page-header) ::slotted(a.active)::after,:host(.navigation-item-top-nav-child) ::slotted(a.active)::after{content:none}:host(.navigation-item-side-menu-selected) .link,:host(.navigation-item-side-menu) ::slotted(a.active),:host(.navigation-item-top-nav-child) ::slotted(a.active){box-shadow:none}:host(.navigation-item) .link:hover:not(:focus){background-color:var(--ic-brand-hover);cursor:pointer}:host(.navigation-item:not(.navigation-item-page-header,.navigation-item-side-menu,.navigation-item-top-nav-child)) ::slotted(a:hover:not(:focus)),:host(.navigation-item-side-nav.navigation-item) .link:hover:not(:focus){background-color:var(--ic-brand-hover) !important}:host(.navigation-item:not(.navigation-item-top-nav-child,.navigation-item-side-menu,.navigation-item-top-nav-child-selected .navigation-item-side-menu-selected)) .focus-indicator:focus-within{box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius)}:host(.navigation-item) .link:focus,:host(.navigation-item) ::slotted(a:focus){box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);outline:var(--ic-hc-focus-outline);outline-offset:calc(-1 * (var(--ic-space-xxxs) + var(--ic-space-1px) / 2))}:host(.navigation-item-selected) .link:focus,:host(.navigation-item) ::slotted(a.active:focus){box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);outline:var(--ic-hc-focus-outline);outline-offset:calc(-1 * (var(--ic-space-xxxs) + var(--ic-space-1px) / 2))}:host(.navigation-item) .link:active:not(:focus),:host(.navigation-item) ::slotted(a:active:not(:focus)){background-color:var(--ic-brand-active)}:host(.navigation-item-side-menu) .link,:host(.navigation-item-side-menu) ::slotted(a){min-height:2.5rem;height:auto;width:100%;box-sizing:border-box;color:var(--ic-top-navigation-nav-item);--ic-typography-color:var(--ic-top-navigation-nav-item);display:flex;align-items:center;justify-content:flex-start;text-decoration:none;text-wrap:wrap;white-space:normal;transition:box-shadow var(--ic-transition-duration-fast),\n border-radius var(--ic-transition-duration-fast)}:host(.navigation-item-top-nav-child) ::slotted(svg),:host(.navigation-item-side-menu) ::slotted(svg),:host(.navigation-item-page-header) ::slotted(svg){fill:var(--ic-color-text-primary)}:host(.navigation-item-side-menu) ::slotted(a){font:var(--ic-font-body) !important;letter-spacing:var(--ic-font-letter-spacing-0pt005) !important;transition:box-shadow var(--ic-easing-transition-fast),\n background-color var(--ic-easing-transition-fast)}:host(.navigation-item-side-menu) .link:hover:not(:focus){background-color:var(--ic-top-navigation-nav-item-hover)}:host(.navigation-item-side-menu) ::slotted(a:hover:not(:focus)){background-color:var(--ic-top-navigation-nav-item-hover) !important}:host(.navigation-item-side-menu) .focus-indicator:focus-within{box-shadow:none}:host(.navigation-item-side-menu) .link:focus,:host(.navigation-item-side-menu) ::slotted(a:focus){box-shadow:var(--ic-border-focus-inset) !important;width:auto;border-radius:var(--ic-border-radius-inset) !important}:host(.navigation-item-side-menu-selected) .link,:host(.navigation-item-side-menu-selected) ::slotted(a){transition:box-shadow var(--ic-easing-transition-slow),\n background-color var(--ic-easing-transition-slow)}:host(.navigation-item-side-menu-selected) .link:focus,:host(.navigation-item-side-menu) ::slotted(a.active:focus),:host(.navigation-item-top-nav-child) ::slotted(a.active:focus){margin-left:var(--ic-space-xs) !important;padding-left:var(--ic-space-xs) !important}:host(.navigation-item-top-nav-child) .link,:host(.navigation-item-top-nav-child) ::slotted(a){height:2.5rem;width:calc(100% - var(--ic-space-xl));min-width:9.063rem;color:var(--ic-top-navigation-nav-item);display:flex;align-items:center;justify-content:flex-start;padding:0 var(--ic-space-md) !important;text-decoration:none;position:relative;transition:box-shadow var(--ic-transition-duration-fast),\n border-radius var(--ic-transition-duration-slow)}:host(.navigation-item-top-nav-child) ::slotted(a){font:var(--ic-font-body) !important;letter-spacing:var(--ic-font-letter-spacing-0pt005) !important}:host(.navigation-item-top-nav-child) .link:hover:not(:focus),:host(.navigation-item-top-nav-child) ::slotted(a:hover:not(:focus)){background-color:var(--ic-top-navigation-nav-item-hover) !important}:host(.navigation-item-top-nav-child) .link:focus,:host(.navigation-item-top-nav-child) ::slotted(a:focus){z-index:1;outline:var(--ic-hc-focus-outline);border-radius:var(--ic-border-radius-inset);box-shadow:var(--ic-border-focus-inset);transition:border-radius 0s, box-shadow var(--ic-transition-duration-fast)}:host(.navigation-item-top-nav-child) ::slotted(a.active:focus){box-shadow:var(--ic-border-focus-inset);border-radius:var(--ic-border-radius-inset)}:host(.navigation-item-side-menu) .link:active:not(:focus){background-color:var(--ic-top-navigation-nav-item-pressed)}:host(.navigation-item-top-nav-child) .link:active:not(:focus),:host(.navigation-item-top-nav-child) ::slotted(a:active:not(:focus)){outline:var(--ic-hc-focus-outline);background-color:var(--ic-top-navigation-nav-item-pressed)}:host(.navigation-item-top-nav-child) ::slotted(a:active:not(:focus)),:host(.navigation-item-side-menu) ::slotted(a:active:not(:focus)){background-color:var(--ic-top-navigation-nav-item-pressed) !important}:host(.navigation-item-side-menu-selected) *,:host(.navigation-item-top-nav-child-selected) *,:host(.navigation-item-side-menu) ::slotted(a.active),:host(.navigation-item-top-nav-child) ::slotted(a.active){font-weight:700 !important}:host(.navigation-item-top-nav-child) ::slotted(a.active)::before,:host(.navigation-item-top-nav-child-selected) .link::before,:host(.navigation-item-side-menu-selected) .link::before,:host(.navigation-item-side-menu) ::slotted(a.active)::before,:host(.navigation-item-side-menu-selected) .link:focus::before,:host(.navigation-item-side-menu) ::slotted(a.active:focus)::before{content:"";position:absolute;left:0;width:var(--ic-space-xs);height:inherit;min-height:2.5rem;background-color:var(--ic-top-navigation-nav-item-banner);transition:left 0s}:host(.navigation-item-side-menu-selected) .link::before,:host(.navigation-item-side-menu-selected) .link:focus::before{margin-top:var(--ic-space-xxs)}:host(.navigation-item-top-nav-child-selected) .link:focus{margin-left:var(--ic-space-xs);margin-right:calc(-1 * var(--ic-space-xs));padding-left:var(--ic-space-xs) !important}:host(.navigation-item-top-nav-child-selected) .link:focus::before{left:calc(-1 * var(--ic-space-xs));z-index:1}:host(.navigation-item-side-menu-selected) .link::before,:host(.navigation-item-side-menu) ::slotted(a.active)::before,:host(.navigation-item-side-menu-selected) .link:focus::before,:host(.navigation-item-side-menu) ::slotted(a.active:focus)::before{z-index:1}:host(.navigation-item-side-menu-selected) .link:focus::before,:host(.navigation-item-side-menu) ::slotted(a.active:focus)::before,:host(.navigation-item-top-nav-child) ::slotted(a.active:focus)::before{left:calc(-1 * var(--ic-space-xs))}:host(.navigation-item-side-menu-selected) .link::after{display:none}:host(.navigation-item-side-nav-collapsed) .link{height:100%}:host(.navigation-item-side-nav-collapsed) ::slotted(svg),:host(.navigation-item-side-nav-collapsed-with-label) ::slotted(svg){margin:auto;pointer-events:none}:host(.navigation-item-side-nav-collapsed) .icon,:host(.navigation-item-side-nav-collapsed-with-label) .icon,:host(.navigation-item-side-nav-collapsed-with-label) ic-typography{align-items:center;padding:0;margin:auto 0;width:-moz-fit-content;width:fit-content;pointer-events:none}:host(.navigation-item-side-nav-collapsed-with-label) ic-typography{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;text-align:center}:host(.navigation-item-side-nav-collapsed-with-label) .link,:host(.navigation-item-side-nav-collapsed-with-label) ::slotted(a){display:flex;flex-direction:column;height:-moz-fit-content;height:fit-content;padding:var(--ic-space-xs) !important;gap:var(--ic-space-xxs)}:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label) .link,:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label) ::slotted(a){height:auto !important;gap:0;width:auto;padding:var(--ic-space-xs) !important}:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label) ::slotted(a){display:block;text-align:center}:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label) .link ic-typography{opacity:1;min-width:-moz-min-content;min-width:min-content}:host(.navigation-item-side-nav-collapsed) svg,:host(.navigation-item-side-nav-collapsed-with-label) svg{display:none}::slotted(svg){fill:var(--ic-brand-text-color);height:var(--ic-space-lg);width:var(--ic-space-lg);margin-left:var(--ic-space-md)}.icon{height:1.5rem;width:var(--ic-space-xxl);margin-left:calc(-1 * var(--ic-space-md));flex:0 1 0%;position:relative}.icon>::slotted(*){margin-left:var(--ic-space-md) !important;margin-right:var(--ic-space-xs)}.inline-badge{margin-left:var(--ic-space-xs)}.badge{margin-left:0}:host(.navigation-item-side-nav-collapsed) .icon>::slotted(*){margin:auto !important}:host(.navigation-item-side-nav) .icon>::slotted(*){margin-right:0}:host(.navigation-item-side-nav) .link,:host(.navigation-item-side-nav) ::slotted(a){height:var(--navigation-item-height, 4rem);min-height:var(--navigation-item-min-height);width:var(--navigation-item-width, auto);justify-content:var(--navigation-item-justify-content);display:flex;gap:var(--ic-space-xs);box-sizing:border-box;color:var(--navigation-item-child-color) !important;text-decoration:none !important;white-space:nowrap;padding:0 var(--ic-space-md);text-wrap:wrap}:host(.navigation-item-side-nav.navigation-item-top-nav-child) .link,:host(.navigation-item-side-nav.navigation-item-top-nav-child) ::slotted(a){height:var(--navigation-item-child-height);width:var(--navigation-group-width);color:var(--navigation-item-child-color) !important;display:flex;gap:0.625rem;box-sizing:border-box;min-width:0;transition:box-shadow var(--ic-easing-transition-fast);text-decoration:none !important;white-space:nowrap}:host(.navigation-item-side-nav.navigation-item-top-nav-child) .link:focus,:host(.navigation-item-side-nav.navigation-item-top-nav-child) ::slotted(a:focus){box-shadow:var(--ic-border-focus-dark)}:host(.navigation-item-side-nav.navigation-item-side-menu) .link:active{background-color:var(--navigation-item-child-active)}:host(.navigation-item-side-nav.navigation-item-top-nav-child) .link:active,:host(.navigation-item-side-nav.navigation-item-top-nav-child) ::slotted(a:active){background-color:var(--navigation-item-child-active)}:host(.navigation-item-side-nav) a.link ic-typography,:host(.navigation-item-side-nav.navigation-item-top-nav-child) a.link ic-typography,:host(.navigation-item-side-nav) div.link ic-typography,:host(.navigation-item-side-nav.navigation-item-top-nav-child) div.link ic-typography,.navigation-item-side-nav-slotted-text{opacity:var(--navigation-item-label-opacity);transition:opacity var(--ic-easing-transition-slow);white-space:wrap;text-overflow:ellipsis;overflow:hidden}:host(.navigation-item-side-nav.navigation-item-selected) .link,:host(.navigation-item-side-nav.navigation-item) ::slotted(a.active){box-shadow:inset 0.313rem 0 0 var(--ic-brand-text-color)}:host(.navigation-item-side-nav.navigation-item-selected) .link::before,:host(.navigation-item-side-nav) ::slotted(a.active)::before{content:"";display:block;position:absolute;inset:0 0 0 0.313rem;border-radius:0.688rem !important;transition:var(--ic-easing-transition-slow)}:host(.navigation-item-side-nav.navigation-item-selected) .link:focus::before,:host(.navigation-item-side-nav) ::slotted(a.active:focus)::before{box-shadow:var(--ic-border-focus-inset)}:host(:not(.navigation-item-side-nav-collapsed).navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label) .link{opacity:var(--navigation-item-label-opacity);height:auto}:host(.navigation-item-top-nav-child.navigation-item-side-nav-collapsed-with-label) .link,:host(.navigation-item-top-nav-child.navigation-item-side-nav-collapsed-with-label) ::slotted(a){min-width:var(--navigation-group-item-min-width);padding:var(--ic-space-xs) !important;height:auto;gap:0}:host(.navigation-item-top-nav-child.navigation-item-side-nav-collapsed-with-label) ::slotted(a){display:block}:host(.navigation-item-side-nav.navigation-item-selected) .link::after,:host(.navigation-item-side-nav) ::slotted(a.active)::after{display:none}:host(.navigation-item-side-nav.navigation-item) .link:focus,:host(.navigation-item-side-nav.navigation-item) ::slotted(a:focus){box-shadow:var(--ic-border-focus-inset);border-radius:var(--ic-border-radius-inset);background-color:transparent}:host(.navigation-item-side-nav.navigation-item-selected) .link:focus,:host(.navigation-item-side-nav) ::slotted(a.active:focus){margin:0 auto;box-shadow:inset 0.313rem 0 0 var(--ic-brand-text-color);border-radius:0}:host(.navigation-item-page-header).link,:host(.navigation-item-page-header) a,:host(.navigation-item-page-header) ::slotted(a){height:2.5rem !important;color:var(--ic-color-text-primary) !important;transition:all var(--ic-easing-transition-fast) !important;box-shadow:rgba(23 89 188 / 0%) !important}:host(.navigation-item-page-header.navigation-item-selected) .link::after,:host(.navigation-item-page-header) ::slotted(a.active)::after{content:" " !important;position:absolute;bottom:0;left:0;right:0;height:var(--ic-space-xxs);background-color:var(--ic-action-default) !important}:host(.navigation-item-page-header) .link:hover,:host(.navigation-item-page-header) ::slotted(.link:hover),:host(.navigation-item-page-header) ::slotted(a:hover),:host(.navigation-item-page-header) .link:hover:not(:focus){background-color:var(--ic-action-default-bg-hover) !important;cursor:pointer}:host(.navigation-item-page-header) .link:focus,:host(.navigation-item-page-header) ::slotted(a:focus){box-shadow:var(--ic-border-focus)}:host(.navigation-item-page-header) .link:active,:host(.navigation-item-page-header) ::slotted(a:active){background-color:var(--ic-action-default-bg-pressed) !important}:host(.navigation-item-page-header.navigation-item-selected) .link:focus::after,:host(.navigation-item-page-header) ::slotted(a.active:focus)::after{border-bottom-left-radius:var(--ic-border-radius);border-bottom-right-radius:var(--ic-border-radius)}:host(.navigation-item-page-header.navigation-item-selected.with-transition) .link,:host(.navigation-item-page-header.navigation-item-selected.with-transition) ::slotted(a.active){transition:all var(--ic-easing-transition-fast),\n border-color var(--ic-transition-duration-fast)}:host(.navigation-item-page-header) ::slotted(a.active)::before,:host(.navigation-item-page-header) ::slotted(a.active:focus)::before,:host(.navigation-item-page-header.navigation-item-selected) .link:focus::before{display:none}.open-in-new-icon{flex:1}.open-in-new-icon svg{margin-top:var(--ic-space-xxs);padding-left:var(--ic-space-xs)}:host(.navigation-item-side-nav) .open-in-new-icon{margin-left:calc(-1 * var(--ic-space-xs))}:host(.navigation-item-top-nav) .open-in-new-icon svg,:host(.navigation-item-page-header) .open-in-new-icon svg,:host(.navigation-item-side-nav) .open-in-new-icon svg{height:0.875rem;width:0.875rem}:host(.navigation-item-side-menu) .open-in-new-icon svg,:host(.navigation-item-top-nav-child) .open-in-new-icon svg{height:var(--ic-space-md);width:var(--ic-space-md)}:host(.navigation-item-page-header) .open-in-new-icon svg,:host(.navigation-item-top-nav-child) .open-in-new-icon svg,:host(.navigation-item-side-menu) .open-in-new-icon svg{fill:var(--ic-color-text-primary)}@media (forced-colors: active){.open-in-new-icon svg{fill:currentcolor}}';const m=g;const p=class{constructor(n){i(this,n);this.childBlur=t(this,"childBlur",7);this.navItemClicked=t(this,"navItemClicked",7);this.isInitialRender=true;this.hostMutationObserver=null;this.ANIMATION_DURATION=parseInt(s("--ic-transition-duration-slow"))||0;this.ARIA_LABEL_STRING="aria-label";this.isInSideNav=false;this.deviceSize=r.XL;this.focusStyle=d();this.inTopNavSideMenu=false;this.isSideNavMobile=false;this.isTopNavChild=false;this.sideNavExpanded=false;this.ariaLabel="";this.collapsedIconLabel=false;this.displayNavigationTooltip=false;this.download=false;this.expandable=false;this.href="";this.selected=false;this.theme="inherit";this.displayDefaultNavigationItem=(i,t,a,n,o,s,r)=>{const d=this.isTopNavChild||this.inTopNavSideMenu?"body":"label";const l=this.expandable&&e("div",{class:{svg:true},innerHTML:v});const c=this.el.querySelector('[slot="badge"]');const g=c&&e("div",{class:"inline-badge"},e("slot",{name:"badge"}));const m=this.el.querySelector('[slot="icon"]')&&e("div",{class:"icon"},e("slot",{name:"icon"}),this.isInSideNav&&g);return i!==""?e("a",{href:i,target:n,rel:o,hreflang:a,referrerPolicy:s,download:r!==false?r:null,class:"link",ref:i=>this.itemEl=i,part:"link","aria-label":this.ariaLabel?this.ariaLabel:null},m,e("ic-typography",{variant:d},t),n==="_blank"&&e("span",{class:"open-in-new-icon",innerHTML:h}),g,e("div",{class:"chevron-container"},l)):e("div",{tabindex:"0",class:"link",ref:i=>this.itemEl=i},m,e("ic-typography",{variant:d},t),l,g)};this.topNavResizedHandler=({detail:i})=>{var t;const{size:e}=i;if(e!==this.deviceSize){this.deviceSize=e;this.inTopNavSideMenu=e<=(((t=this.parentEl)===null||t===void 0?void 0:t.customMobileBreakpoint)||r.L)}};this.sideNavExpandHandler=({detail:i})=>{const{sideNavExpanded:t,sideNavMobile:e}=i;this.sideNavExpanded=t;this.isSideNavMobile=e;this.sideNavToggleTooltip(!t&&!e)};this.handleBlur=({relatedTarget:i})=>{if(i===null||i.tagName!=="IC-NAVIGATION-ITEM"){this.childBlur.emit()}};this.handleClick=()=>this.navItemClicked.emit();this.hostMutationCallback=i=>{let t=false;i.forEach((({attributeName:i})=>{if(i){const e=this.el.getAttribute(i);if(e&&i===this.ARIA_LABEL_STRING){this.ariaLabel=e;t=true}}}));if(t){a(this)}};this.generateTooltipLabel=()=>{var i;if(this.label){return this.label}if(this.navigationSlot){return this.navigationSlot.textContent||""}return((i=this.el.children[0])===null||i===void 0?void 0:i.textContent)||""};this.renderNavigationItemContent=()=>{if(!this.label&&!this.navigationSlot)return e("slot",null);return this.label?this.displayDefaultNavigationItem(this.href,this.label,this.hreflang,this.target,this.rel,this.referrerpolicy,this.download):e("slot",{name:"navigation-item"})};this.sideNavToggleTooltip=i=>{var t;const e=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("ic-tooltip");const a="tooltip-navigation-item-side-nav-collapsed";let n;if(!e)return;if(i){e.displayTooltip(false);n=setTimeout((()=>{e.classList.add(a)}),this.ANIMATION_DURATION)}else{clearTimeout(n);e.classList.remove(a)}}}navigationTypeChangeHandler(){this.isInSideNav=this.navigationType==="side"}disconnectedCallback(){var i,t,e;if(this.isInSideNav){(i=this.parentEl)===null||i===void 0?void 0:i.removeEventListener("icSideNavExpanded",this.sideNavExpandHandler)}else if(this.navigationType==="top"){(t=this.parentEl)===null||t===void 0?void 0:t.removeEventListener("icTopNavResized",this.topNavResizedHandler)}(e=this.hostMutationObserver)===null||e===void 0?void 0:e.disconnect()}componentWillLoad(){var i,t,e,a,n,o;const{navType:s,parent:r}=c(this.el);this.navigationType=s;this.isInSideNav=this.navigationType==="side";this.parentEl=r;this.deviceSize=l();this.sideNavExpanded=((i=this.parentEl)===null||i===void 0?void 0:i.classList.contains("sm-expanded"))||((t=this.parentEl)===null||t===void 0?void 0:t.classList.contains("xs-menu-open"))||false;if(this.isInSideNav){(e=this.parentEl)===null||e===void 0?void 0:e.addEventListener("icSideNavExpanded",this.sideNavExpandHandler)}else if(this.navigationType==="top"){(a=this.parentEl)===null||a===void 0?void 0:a.addEventListener("icTopNavResized",this.topNavResizedHandler);if(((n=this.el.parentElement)===null||n===void 0?void 0:n.tagName)==="IC-NAVIGATION-GROUP")this.isTopNavChild=true;if(this.deviceSize<=this.parentEl.customMobileBreakpoint)this.inTopNavSideMenu=true}this.navigationSlot=this.el.querySelector('[slot="navigation-item"]');if(this.navigationSlot){this.navigationSlot.ariaLabel=((o=this.navigationSlot.textContent)===null||o===void 0?void 0:o.trim())||null}if(this.el.hasAttribute(this.ARIA_LABEL_STRING)){this.ariaLabel=this.el.getAttribute(this.ARIA_LABEL_STRING)||""}}componentDidLoad(){this.hostMutationObserver=new MutationObserver(this.hostMutationCallback);this.hostMutationObserver.observe(this.el,{attributes:true})}componentDidUpdate(){this.isInitialRender=false}brandChangeHandler({detail:i}){this.focusStyle=i.mode}async setFocus(){var i;this.itemEl?this.itemEl.focus():(i=this.el.querySelector("a"))===null||i===void 0?void 0:i.focus()}render(){const{inTopNavSideMenu:i,isTopNavChild:t,selected:a,navigationType:o,focusStyle:s,isInitialRender:r,sideNavExpanded:d,displayNavigationTooltip:l,collapsedIconLabel:c,isSideNavMobile:v,expandable:h,isInSideNav:g,theme:m}=this;const p=t&&!i;return e(n,{key:"6d3d330011cb09ae9fd95b59f98a9d18ffc25ba0",class:{"navigation-item":true,"navigation-item-selected":!t&&a,"navigation-item-top-nav":!i&&o==="top","navigation-item-top-nav-child":p,"navigation-item-top-nav-child-selected":p&&a,"navigation-item-side-menu":i,"navigation-item-side-menu-selected":i&&a,"navigation-item-page-header":o==="page-header","navigation-item-side-nav":g,"navigation-item-side-nav-collapsed":(!d||l)&&g,"navigation-item-side-nav-collapsed-with-label":!d&&g&&c&&!v,"with-transition":!r,expandable:h,[s]:t?g:!i,[`ic-theme-${m}`]:m!=="inherit"},onBlur:p?this.handleBlur:null,onClick:this.handleClick,"aria-current":a?"page":null,role:"listitem"},e("ic-tooltip",{key:"af3a3de698b102182ff030ffcfb66b419d7ac857",label:this.generateTooltipLabel(),target:"navigation-item",placement:"right",class:{"tooltip-navigation-item":true,"tooltip-navigation-item-side-nav-collapsed":l&&g,"tooltip-long-label-navigation-item-side-nav-expanded":this.el.hasAttribute("[display-navigation-tooltip = 'true']")}},this.renderNavigationItemContent()))}static get delegatesFocus(){return true}get el(){return o(this)}static get watchers(){return{navigationType:["navigationTypeChangeHandler"]}}};p.style=m;export{p as ic_navigation_item};
|
2
|
+
//# sourceMappingURL=p-80e0f66e.entry.js.map
|