@ukic/web-components 3.19.0 → 3.21.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 → constants-4d389abc.js} +14 -1
- package/dist/cjs/constants-4d389abc.js.map +1 -0
- package/dist/cjs/core.cjs.js +1 -1
- package/dist/cjs/{helpers-15fae358.js → helpers-3a796e7a.js} +161 -2
- package/dist/cjs/helpers-3a796e7a.js.map +1 -0
- package/dist/cjs/ic-accordion-group.cjs.entry.js +8 -5
- package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-accordion.cjs.entry.js +18 -11
- package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-action-chip.cjs.entry.js +5 -5
- package/dist/cjs/ic-alert.cjs.entry.js +2 -2
- package/dist/cjs/ic-back-to-top.cjs.entry.js +6 -6
- package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-badge.cjs.entry.js +5 -5
- package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +5 -5
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-breadcrumb.cjs.entry.js +4 -4
- package/dist/cjs/ic-button_3.cjs.entry.js +24 -23
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-card-horizontal.cjs.entry.js +174 -0
- package/dist/cjs/ic-card-horizontal.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-card-vertical.cjs.entry.js +7 -7
- package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox-group.cjs.entry.js +4 -4
- package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox.cjs.entry.js +7 -7
- package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-chip.cjs.entry.js +5 -5
- package/dist/cjs/ic-classification-banner.cjs.entry.js +2 -2
- package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
- package/dist/cjs/ic-data-row.cjs.entry.js +4 -4
- package/dist/cjs/ic-dialog.cjs.entry.js +34 -125
- package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-divider.cjs.entry.js +18 -9
- package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-empty-state.cjs.entry.js +4 -4
- package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -2
- package/dist/cjs/ic-footer-link.cjs.entry.js +5 -5
- package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer.cjs.entry.js +5 -5
- package/dist/cjs/ic-hero.cjs.entry.js +6 -6
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +8 -8
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +12 -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 +18 -13
- 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 +4 -4
- package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu-group.cjs.entry.js +3 -3
- package/dist/cjs/ic-menu-item.cjs.entry.js +2 -2
- package/dist/cjs/ic-navigation-button.cjs.entry.js +4 -4
- package/dist/cjs/ic-navigation-group.cjs.entry.js +4 -4
- package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +8 -6
- package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-menu.cjs.entry.js +6 -6
- package/dist/cjs/ic-page-header.cjs.entry.js +9 -9
- package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination-item.cjs.entry.js +4 -4
- package/dist/cjs/ic-pagination-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination.cjs.entry.js +6 -6
- package/dist/cjs/ic-popover-menu.cjs.entry.js +6 -6
- package/dist/cjs/ic-radio-group.cjs.entry.js +6 -6
- package/dist/cjs/ic-radio-option.cjs.entry.js +7 -7
- package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +12 -12
- package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
- package/dist/cjs/ic-select.cjs.entry.js +9 -9
- package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-side-navigation.cjs.entry.js +18 -12
- 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 -4
- package/dist/cjs/ic-step.cjs.entry.js +15 -15
- package/dist/cjs/ic-stepper.cjs.entry.js +4 -4
- package/dist/cjs/ic-switch.cjs.entry.js +7 -7
- package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
- package/dist/cjs/ic-tab-group.cjs.entry.js +4 -4
- package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
- package/dist/cjs/ic-tab.cjs.entry.js +5 -5
- package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-text-field.cjs.entry.js +7 -7
- package/dist/cjs/ic-theme.cjs.entry.js +3 -3
- package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
- package/dist/cjs/ic-toast.cjs.entry.js +7 -7
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js +5 -5
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toggle-button.cjs.entry.js +4 -4
- package/dist/cjs/ic-top-navigation.cjs.entry.js +8 -8
- package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-typography.cjs.entry.js +5 -5
- package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
- package/dist/cjs/index-d337cd8a.js +4 -0
- package/dist/cjs/index.cjs.js +7 -1
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/ic-accordion/ic-accordion.css +6 -0
- package/dist/collection/components/ic-accordion/ic-accordion.js +15 -8
- package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -1
- package/dist/collection/components/ic-accordion/ic-accordion.stories.js +21 -0
- package/dist/collection/components/ic-accordion-group/ic-accordion-group.css +11 -0
- package/dist/collection/components/ic-accordion-group/ic-accordion-group.js +6 -2
- package/dist/collection/components/ic-accordion-group/ic-accordion-group.js.map +1 -1
- package/dist/collection/components/ic-action-chip/ic-action-chip.js +3 -3
- package/dist/collection/components/ic-back-to-top/ic-back-to-top.css +7 -0
- package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +3 -3
- package/dist/collection/components/ic-badge/ic-badge.css +6 -0
- package/dist/collection/components/ic-badge/ic-badge.js +2 -2
- package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +2 -2
- package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.css +8 -0
- package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +2 -2
- package/dist/collection/components/ic-button/ic-button.css +7 -0
- package/dist/collection/components/ic-button/ic-button.js +2 -2
- package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.css +728 -0
- package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js +512 -0
- package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js.map +1 -0
- package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.stories.js +876 -0
- package/dist/collection/components/ic-card-vertical/ic-card-vertical.css +7 -0
- package/dist/collection/components/ic-card-vertical/ic-card-vertical.js +4 -4
- package/dist/collection/components/ic-card-vertical/ic-card-vertical.stories.js +1 -1
- package/dist/collection/components/ic-checkbox/ic-checkbox.css +7 -5
- package/dist/collection/components/ic-checkbox/ic-checkbox.js +4 -4
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +3 -3
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +35 -0
- package/dist/collection/components/ic-chip/ic-chip.js +3 -3
- package/dist/collection/components/ic-classification-banner/ic-classification-banner.js +2 -2
- package/dist/collection/components/ic-data-list/ic-data-list.js +2 -2
- package/dist/collection/components/ic-data-row/ic-data-row.js +2 -2
- package/dist/collection/components/ic-dialog/ic-dialog.js +33 -124
- package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
- package/dist/collection/components/ic-dialog/ic-dialog.stories.js +3 -2
- package/dist/collection/components/ic-divider/ic-divider.js +16 -7
- package/dist/collection/components/ic-divider/ic-divider.js.map +1 -1
- package/dist/collection/components/ic-empty-state/ic-empty-state.js +2 -2
- package/dist/collection/components/ic-footer/ic-footer.js +3 -3
- package/dist/collection/components/ic-footer-link/ic-footer-link.css +6 -0
- 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.css +6 -0
- 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.css +7 -0
- 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 +16 -8
- package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
- package/dist/collection/components/ic-input-validation/ic-input-validation.js +3 -3
- package/dist/collection/components/ic-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.css +7 -0
- 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 +6 -0
- package/dist/collection/components/ic-menu/ic-menu.js +3 -3
- package/dist/collection/components/ic-menu-group/ic-menu-group.js +1 -1
- package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +2 -2
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +9 -0
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +1 -1
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +41 -0
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +5 -3
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -4
- package/dist/collection/components/ic-page-header/ic-page-header.css +1 -2
- 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.css +6 -0
- 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.js +4 -4
- package/dist/collection/components/ic-radio-option/ic-radio-option.css +6 -0
- package/dist/collection/components/ic-radio-option/ic-radio-option.js +4 -4
- package/dist/collection/components/ic-search-bar/ic-search-bar.css +6 -0
- package/dist/collection/components/ic-search-bar/ic-search-bar.js +9 -9
- package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
- package/dist/collection/components/ic-select/ic-select.css +8 -0
- package/dist/collection/components/ic-select/ic-select.js +6 -6
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +46 -21
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +15 -9
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
- package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
- package/dist/collection/components/ic-skip-link/ic-skip-link.js +2 -2
- package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
- package/dist/collection/components/ic-step/ic-step.js +13 -13
- package/dist/collection/components/ic-stepper/ic-stepper.js +2 -2
- package/dist/collection/components/ic-switch/ic-switch.css +7 -0
- package/dist/collection/components/ic-switch/ic-switch.js +4 -4
- package/dist/collection/components/ic-tab/ic-tab.css +6 -0
- package/dist/collection/components/ic-tab/ic-tab.js +2 -2
- package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -1
- package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
- package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
- package/dist/collection/components/ic-text-field/ic-text-field.js +5 -5
- package/dist/collection/components/ic-theme/ic-theme.js +1 -1
- package/dist/collection/components/ic-toast/ic-toast.js +5 -5
- package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
- package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +2 -2
- package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.css +6 -0
- package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +2 -2
- package/dist/collection/components/ic-tooltip/ic-tooltip.css +1 -1
- package/dist/collection/components/ic-tooltip/ic-tooltip.js +13 -12
- package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +8 -4
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +5 -5
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.stories.js +100 -0
- package/dist/collection/components/ic-typography/ic-typography.css +6 -0
- package/dist/collection/components/ic-typography/ic-typography.js +2 -2
- package/dist/collection/utils/constants.js +7 -0
- package/dist/collection/utils/constants.js.map +1 -1
- package/dist/collection/utils/helpers.js +169 -2
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/collection/utils/types.js.map +1 -1
- package/dist/components/constants.js +8 -1
- package/dist/components/constants.js.map +1 -1
- package/dist/components/helpers.js +157 -2
- package/dist/components/helpers.js.map +1 -1
- package/dist/components/ic-accordion-group.js +6 -3
- package/dist/components/ic-accordion-group.js.map +1 -1
- package/dist/components/ic-accordion.js +16 -9
- package/dist/components/ic-accordion.js.map +1 -1
- package/dist/components/ic-action-chip.js +3 -3
- package/dist/components/ic-back-to-top.js +4 -4
- package/dist/components/ic-back-to-top.js.map +1 -1
- package/dist/components/ic-badge.js +3 -3
- package/dist/components/ic-badge.js.map +1 -1
- package/dist/components/ic-breadcrumb-group.js +3 -3
- package/dist/components/ic-breadcrumb-group.js.map +1 -1
- package/dist/components/ic-breadcrumb2.js +2 -2
- package/dist/components/ic-button2.js +3 -3
- package/dist/components/ic-button2.js.map +1 -1
- package/dist/components/ic-card-horizontal.d.ts +11 -0
- package/dist/components/ic-card-horizontal.js +214 -0
- package/dist/components/ic-card-horizontal.js.map +1 -0
- package/dist/components/ic-card-vertical.js +5 -5
- package/dist/components/ic-card-vertical.js.map +1 -1
- package/dist/components/ic-checkbox-group.js +2 -2
- package/dist/components/ic-checkbox-group.js.map +1 -1
- package/dist/components/ic-checkbox.js +5 -5
- package/dist/components/ic-checkbox.js.map +1 -1
- package/dist/components/ic-chip.js +3 -3
- package/dist/components/ic-classification-banner.js +2 -2
- package/dist/components/ic-classification-banner.js.map +1 -1
- package/dist/components/ic-data-list.js +2 -2
- package/dist/components/ic-data-row.js +2 -2
- package/dist/components/ic-dialog.js +33 -124
- package/dist/components/ic-dialog.js.map +1 -1
- package/dist/components/ic-divider2.js +17 -8
- package/dist/components/ic-divider2.js.map +1 -1
- package/dist/components/ic-empty-state.js +2 -2
- package/dist/components/ic-footer-link.js +3 -3
- package/dist/components/ic-footer-link.js.map +1 -1
- package/dist/components/ic-footer.js +4 -4
- package/dist/components/ic-hero.js +4 -4
- package/dist/components/ic-horizontal-scroll2.js +7 -7
- package/dist/components/ic-horizontal-scroll2.js.map +1 -1
- package/dist/components/ic-input-component-container2.js +4 -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 +13 -8
- package/dist/components/ic-input-label2.js.map +1 -1
- package/dist/components/ic-input-validation2.js +4 -4
- 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 +2 -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 +1 -1
- package/dist/components/ic-menu2.js +5 -5
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-navigation-button.js +3 -3
- package/dist/components/ic-navigation-group.js +3 -3
- package/dist/components/ic-navigation-group.js.map +1 -1
- package/dist/components/ic-navigation-item.js +7 -5
- package/dist/components/ic-navigation-item.js.map +1 -1
- package/dist/components/ic-navigation-menu2.js +5 -5
- package/dist/components/ic-page-header.js +7 -7
- package/dist/components/ic-page-header.js.map +1 -1
- package/dist/components/ic-pagination-item2.js +3 -3
- package/dist/components/ic-pagination-item2.js.map +1 -1
- package/dist/components/ic-pagination.js +4 -4
- package/dist/components/ic-popover-menu.js +4 -4
- package/dist/components/ic-popover-menu.js.map +1 -1
- package/dist/components/ic-radio-group.js +4 -4
- package/dist/components/ic-radio-option.js +5 -5
- package/dist/components/ic-radio-option.js.map +1 -1
- package/dist/components/ic-search-bar.js +11 -11
- 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 +8 -8
- package/dist/components/ic-select.js.map +1 -1
- package/dist/components/ic-side-navigation.js +17 -11
- package/dist/components/ic-side-navigation.js.map +1 -1
- package/dist/components/ic-skeleton.js +2 -2
- package/dist/components/ic-skip-link.js +2 -2
- package/dist/components/ic-status-tag.js +2 -2
- package/dist/components/ic-step.js +13 -13
- package/dist/components/ic-stepper.js +2 -2
- package/dist/components/ic-switch.js +5 -5
- package/dist/components/ic-switch.js.map +1 -1
- package/dist/components/ic-tab-context.js +1 -1
- package/dist/components/ic-tab-group.js +2 -2
- package/dist/components/ic-tab-panel.js +2 -2
- package/dist/components/ic-tab.js +3 -3
- package/dist/components/ic-tab.js.map +1 -1
- package/dist/components/ic-text-field.js +6 -6
- package/dist/components/ic-theme.js +2 -2
- package/dist/components/ic-toast-region.js +1 -1
- package/dist/components/ic-toast.js +6 -6
- package/dist/components/ic-toggle-button-group.js +3 -3
- package/dist/components/ic-toggle-button-group.js.map +1 -1
- package/dist/components/ic-toggle-button.js +3 -3
- package/dist/components/ic-tooltip2.js +14 -13
- package/dist/components/ic-tooltip2.js.map +1 -1
- package/dist/components/ic-top-navigation.js +7 -7
- package/dist/components/ic-top-navigation.js.map +1 -1
- package/dist/components/ic-typography2.js +3 -3
- package/dist/components/ic-typography2.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/core/core.css +4 -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-3b13d191.entry.js → p-04c77b2d.entry.js} +2 -2
- package/dist/core/p-04c77b2d.entry.js.map +1 -0
- package/dist/core/{p-7552c8a1.entry.js → p-07075461.entry.js} +2 -2
- package/dist/core/p-0a24c536.entry.js +2 -0
- package/dist/core/p-0a24c536.entry.js.map +1 -0
- package/dist/core/{p-6b6c1491.entry.js → p-0aba9e31.entry.js} +2 -2
- package/dist/core/p-0d7fd892.entry.js +2 -0
- package/dist/core/{p-06b3ae40.entry.js → p-0da2caa2.entry.js} +2 -2
- package/dist/core/{p-c4ffcc64.entry.js → p-1590fd69.entry.js} +2 -2
- package/dist/core/p-1590fd69.entry.js.map +1 -0
- package/dist/core/{p-62b9e7bf.entry.js → p-1edf2689.entry.js} +2 -2
- package/dist/core/{p-70e1dd4d.entry.js → p-208f470f.entry.js} +2 -2
- package/dist/core/p-29b61bb5.entry.js +3 -0
- package/dist/core/p-29b61bb5.entry.js.map +1 -0
- package/dist/core/{p-21efc36e.entry.js → p-2af89564.entry.js} +2 -2
- package/dist/core/{p-a86785dd.entry.js → p-2ca7f050.entry.js} +2 -2
- package/dist/core/{p-3785c740.entry.js → p-3021290f.entry.js} +2 -2
- package/dist/core/p-3021290f.entry.js.map +1 -0
- package/dist/core/{p-5cf704e3.entry.js → p-387b7bca.entry.js} +2 -2
- package/dist/core/p-41a5da12.entry.js +2 -0
- package/dist/core/p-41a5da12.entry.js.map +1 -0
- package/dist/core/p-43cc0f1d.entry.js +2 -0
- package/dist/core/{p-a8dc3162.entry.js.map → p-43cc0f1d.entry.js.map} +1 -1
- package/dist/core/{p-e0423c7e.entry.js → p-4aa56990.entry.js} +2 -2
- package/dist/core/p-4aa56990.entry.js.map +1 -0
- package/dist/core/p-4aadabc8.entry.js +2 -0
- package/dist/core/p-4aadabc8.entry.js.map +1 -0
- package/dist/core/{p-bddf799a.js → p-6215e2ae.js} +2 -2
- package/dist/core/p-6215e2ae.js.map +1 -0
- package/dist/core/{p-bfd03fb4.entry.js → p-707ae6e9.entry.js} +2 -2
- package/dist/core/{p-bb3a5130.entry.js → p-716e7eaf.entry.js} +2 -2
- package/dist/core/p-716e7eaf.entry.js.map +1 -0
- package/dist/core/p-780babc0.entry.js +2 -0
- package/dist/core/p-780babc0.entry.js.map +1 -0
- package/dist/core/{p-fb43abd6.entry.js → p-78a54069.entry.js} +2 -2
- package/dist/core/{p-5e1a77aa.entry.js → p-79949920.entry.js} +2 -2
- package/dist/core/p-7b8e5926.entry.js +2 -0
- package/dist/core/p-7b8e5926.entry.js.map +1 -0
- package/dist/core/{p-43356493.entry.js → p-7f279c8a.entry.js} +2 -2
- package/dist/core/{p-9452b9ac.entry.js → p-808e1ef5.entry.js} +2 -2
- package/dist/core/{p-082e0068.entry.js → p-812c5e61.entry.js} +2 -2
- package/dist/core/p-812c5e61.entry.js.map +1 -0
- package/dist/core/{p-f4e2e41f.entry.js → p-85e15d01.entry.js} +2 -2
- package/dist/core/{p-1cc402b8.entry.js → p-880afd4b.entry.js} +2 -2
- package/dist/core/{p-af02add9.entry.js → p-8da90b72.entry.js} +2 -2
- package/dist/core/p-8fe4e0ad.entry.js +2 -0
- package/dist/core/p-8fe4e0ad.entry.js.map +1 -0
- package/dist/core/{p-4fa7fbc4.entry.js → p-9057a186.entry.js} +2 -2
- package/dist/core/p-9057a186.entry.js.map +1 -0
- package/dist/core/{p-091a7fbf.entry.js → p-94916588.entry.js} +2 -2
- package/dist/core/{p-a7f21494.entry.js → p-949d08d3.entry.js} +2 -2
- package/dist/core/{p-8abcc114.entry.js → p-96bc7d24.entry.js} +2 -2
- package/dist/core/p-96bc7d24.entry.js.map +1 -0
- package/dist/core/{p-dfc2a0b1.entry.js → p-99687bce.entry.js} +2 -2
- package/dist/core/{p-a5295f66.entry.js → p-99951365.entry.js} +2 -2
- package/dist/core/p-99951365.entry.js.map +1 -0
- package/dist/core/p-9a4e067f.entry.js +2 -0
- package/dist/core/p-9a4e067f.entry.js.map +1 -0
- package/dist/core/p-a03bb31c.entry.js +2 -0
- package/dist/core/p-a03bb31c.entry.js.map +1 -0
- package/dist/core/{p-49444c33.entry.js → p-a0af1b0a.entry.js} +2 -2
- package/dist/core/p-a1b2f483.entry.js +2 -0
- package/dist/core/p-a1b2f483.entry.js.map +1 -0
- package/dist/core/{p-44fbe8c2.entry.js → p-a3dea729.entry.js} +2 -2
- package/dist/core/p-a674b13b.entry.js +2 -0
- package/dist/core/p-a674b13b.entry.js.map +1 -0
- package/dist/core/{p-6e8ef73c.entry.js → p-a851eb65.entry.js} +2 -2
- package/dist/core/{p-bdda404b.entry.js → p-aed1c7e7.entry.js} +2 -2
- package/dist/core/p-b4e322fe.entry.js +2 -0
- package/dist/core/p-b4e322fe.entry.js.map +1 -0
- package/dist/core/{p-3a94849e.entry.js → p-b8c0c142.entry.js} +2 -2
- package/dist/core/{p-b00efb15.entry.js → p-c156e6e9.entry.js} +2 -2
- package/dist/core/p-c5b9519d.entry.js +2 -0
- package/dist/core/p-c5b9519d.entry.js.map +1 -0
- package/dist/core/{p-d8200098.entry.js → p-cad23b7d.entry.js} +2 -2
- package/dist/core/{p-411527a1.entry.js → p-cfd43558.entry.js} +2 -2
- package/dist/core/p-cfd43558.entry.js.map +1 -0
- package/dist/core/{p-8798cc6b.entry.js → p-d1730d4d.entry.js} +2 -2
- package/dist/core/{p-4637c326.entry.js → p-d25d0aad.entry.js} +2 -2
- package/dist/core/p-d25d0aad.entry.js.map +1 -0
- package/dist/core/{p-296a41ce.entry.js → p-db17a793.entry.js} +2 -2
- package/dist/core/p-db17a793.entry.js.map +1 -0
- package/dist/core/p-dbc8bf0c.js +2 -0
- package/dist/core/p-dbc8bf0c.js.map +1 -0
- package/dist/core/{p-355d0914.entry.js → p-dce11b9d.entry.js} +2 -2
- package/dist/core/p-dce11b9d.entry.js.map +1 -0
- package/dist/core/{p-28c9a6e4.entry.js → p-ded4cd76.entry.js} +2 -2
- package/dist/core/p-ded4cd76.entry.js.map +1 -0
- package/dist/core/{p-0eafbaa1.entry.js → p-ea890d3d.entry.js} +2 -2
- package/dist/core/{p-ae7dcbd5.entry.js → p-ec14c783.entry.js} +2 -2
- package/dist/core/{p-539b975f.entry.js → p-f0ecb80b.entry.js} +2 -2
- package/dist/core/p-f0ecb80b.entry.js.map +1 -0
- package/dist/core/{p-77a6c3f7.entry.js → p-f3406b42.entry.js} +2 -2
- package/dist/core/p-f3406b42.entry.js.map +1 -0
- package/dist/core/{p-6fb29846.entry.js → p-f6de08fb.entry.js} +2 -2
- package/dist/core/{p-911b4aa4.entry.js → p-f700b759.entry.js} +2 -2
- package/dist/core/{p-a7645717.entry.js → p-fdb587ab.entry.js} +2 -2
- package/dist/core/{p-287e5c17.entry.js → p-feef7c2c.entry.js} +2 -2
- package/dist/esm/{constants-7960cba4.js → constants-ab12fdcf.js} +9 -2
- package/dist/esm/constants-ab12fdcf.js.map +1 -0
- package/dist/esm/core.js +1 -1
- package/dist/esm/{helpers-dcedb279.js → helpers-0f85537f.js} +158 -3
- package/dist/esm/helpers-0f85537f.js.map +1 -0
- package/dist/esm/ic-accordion-group.entry.js +8 -5
- package/dist/esm/ic-accordion-group.entry.js.map +1 -1
- package/dist/esm/ic-accordion.entry.js +18 -11
- package/dist/esm/ic-accordion.entry.js.map +1 -1
- package/dist/esm/ic-action-chip.entry.js +5 -5
- package/dist/esm/ic-alert.entry.js +2 -2
- package/dist/esm/ic-back-to-top.entry.js +6 -6
- package/dist/esm/ic-back-to-top.entry.js.map +1 -1
- package/dist/esm/ic-badge.entry.js +5 -5
- package/dist/esm/ic-badge.entry.js.map +1 -1
- package/dist/esm/ic-breadcrumb-group.entry.js +5 -5
- package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
- package/dist/esm/ic-breadcrumb.entry.js +4 -4
- package/dist/esm/ic-button_3.entry.js +24 -23
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-card-horizontal.entry.js +170 -0
- package/dist/esm/ic-card-horizontal.entry.js.map +1 -0
- package/dist/esm/ic-card-vertical.entry.js +7 -7
- package/dist/esm/ic-card-vertical.entry.js.map +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +4 -4
- package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
- package/dist/esm/ic-checkbox.entry.js +7 -7
- package/dist/esm/ic-checkbox.entry.js.map +1 -1
- package/dist/esm/ic-chip.entry.js +5 -5
- package/dist/esm/ic-classification-banner.entry.js +2 -2
- package/dist/esm/ic-data-list.entry.js +2 -2
- package/dist/esm/ic-data-row.entry.js +4 -4
- package/dist/esm/ic-dialog.entry.js +34 -125
- package/dist/esm/ic-dialog.entry.js.map +1 -1
- package/dist/esm/ic-divider.entry.js +18 -9
- package/dist/esm/ic-divider.entry.js.map +1 -1
- package/dist/esm/ic-empty-state.entry.js +4 -4
- package/dist/esm/ic-footer-link-group.entry.js +2 -2
- package/dist/esm/ic-footer-link.entry.js +5 -5
- package/dist/esm/ic-footer-link.entry.js.map +1 -1
- package/dist/esm/ic-footer.entry.js +5 -5
- package/dist/esm/ic-hero.entry.js +6 -6
- package/dist/esm/ic-horizontal-scroll.entry.js +8 -8
- package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
- package/dist/esm/ic-input-component-container_3.entry.js +12 -12
- package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
- package/dist/esm/ic-input-label_2.entry.js +18 -13
- 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 +4 -4
- package/dist/esm/ic-link.entry.js.map +1 -1
- package/dist/esm/ic-menu-group.entry.js +3 -3
- package/dist/esm/ic-menu-item.entry.js +2 -2
- package/dist/esm/ic-navigation-button.entry.js +4 -4
- package/dist/esm/ic-navigation-group.entry.js +4 -4
- package/dist/esm/ic-navigation-group.entry.js.map +1 -1
- package/dist/esm/ic-navigation-item.entry.js +8 -6
- package/dist/esm/ic-navigation-item.entry.js.map +1 -1
- package/dist/esm/ic-navigation-menu.entry.js +6 -6
- package/dist/esm/ic-page-header.entry.js +9 -9
- package/dist/esm/ic-page-header.entry.js.map +1 -1
- package/dist/esm/ic-pagination-item.entry.js +4 -4
- package/dist/esm/ic-pagination-item.entry.js.map +1 -1
- package/dist/esm/ic-pagination.entry.js +6 -6
- package/dist/esm/ic-popover-menu.entry.js +6 -6
- package/dist/esm/ic-radio-group.entry.js +6 -6
- package/dist/esm/ic-radio-option.entry.js +7 -7
- package/dist/esm/ic-radio-option.entry.js.map +1 -1
- package/dist/esm/ic-search-bar.entry.js +12 -12
- package/dist/esm/ic-search-bar.entry.js.map +1 -1
- package/dist/esm/ic-section-container.entry.js +2 -2
- package/dist/esm/ic-select.entry.js +9 -9
- package/dist/esm/ic-select.entry.js.map +1 -1
- package/dist/esm/ic-side-navigation.entry.js +18 -12
- 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 -4
- package/dist/esm/ic-step.entry.js +15 -15
- package/dist/esm/ic-stepper.entry.js +4 -4
- package/dist/esm/ic-switch.entry.js +7 -7
- package/dist/esm/ic-switch.entry.js.map +1 -1
- package/dist/esm/ic-tab-context.entry.js +1 -1
- package/dist/esm/ic-tab-group.entry.js +4 -4
- package/dist/esm/ic-tab-panel.entry.js +2 -2
- package/dist/esm/ic-tab.entry.js +5 -5
- package/dist/esm/ic-tab.entry.js.map +1 -1
- package/dist/esm/ic-text-field.entry.js +7 -7
- package/dist/esm/ic-theme.entry.js +3 -3
- package/dist/esm/ic-toast-region.entry.js +1 -1
- package/dist/esm/ic-toast.entry.js +7 -7
- package/dist/esm/ic-toggle-button-group.entry.js +5 -5
- package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button.entry.js +4 -4
- package/dist/esm/ic-top-navigation.entry.js +8 -8
- package/dist/esm/ic-top-navigation.entry.js.map +1 -1
- package/dist/esm/ic-typography.entry.js +5 -5
- package/dist/esm/ic-typography.entry.js.map +1 -1
- package/dist/esm/index-a7a720e7.js +4 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-accordion-group/ic-accordion-group.d.ts +1 -0
- package/dist/types/components/ic-card-horizontal/ic-card-horizontal.d.ts +89 -0
- package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +1 -0
- package/dist/types/components/ic-dialog/ic-dialog.d.ts +2 -15
- package/dist/types/components/ic-divider/ic-divider.d.ts +2 -0
- package/dist/types/components/ic-input-label/ic-input-label.d.ts +4 -1
- package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +1 -1
- package/dist/types/components.d.ts +123 -2
- package/dist/types/utils/constants.d.ts +6 -0
- package/dist/types/utils/helpers.d.ts +69 -2
- package/dist/types/utils/types.d.ts +2 -0
- package/hydrate/index.js +683 -373
- package/hydrate/index.mjs +683 -373
- package/package.json +2 -2
- package/vscode-data.json +117 -0
- package/dist/cjs/constants-3a9ba64a.js.map +0 -1
- package/dist/cjs/helpers-15fae358.js.map +0 -1
- package/dist/core/p-012e058a.entry.js +0 -3
- package/dist/core/p-012e058a.entry.js.map +0 -1
- package/dist/core/p-0257d59e.entry.js +0 -2
- package/dist/core/p-0257d59e.entry.js.map +0 -1
- package/dist/core/p-082e0068.entry.js.map +0 -1
- package/dist/core/p-128e2cbb.entry.js +0 -2
- package/dist/core/p-128e2cbb.entry.js.map +0 -1
- package/dist/core/p-28c9a6e4.entry.js.map +0 -1
- package/dist/core/p-296a41ce.entry.js.map +0 -1
- package/dist/core/p-34cc376c.entry.js +0 -2
- package/dist/core/p-34cc376c.entry.js.map +0 -1
- package/dist/core/p-355d0914.entry.js.map +0 -1
- package/dist/core/p-3785c740.entry.js.map +0 -1
- package/dist/core/p-3b13d191.entry.js.map +0 -1
- package/dist/core/p-411527a1.entry.js.map +0 -1
- package/dist/core/p-44aaf454.entry.js +0 -2
- package/dist/core/p-44aaf454.entry.js.map +0 -1
- package/dist/core/p-4637c326.entry.js.map +0 -1
- package/dist/core/p-4fa7fbc4.entry.js.map +0 -1
- package/dist/core/p-52fa3eec.entry.js +0 -2
- package/dist/core/p-52fa3eec.entry.js.map +0 -1
- package/dist/core/p-539b975f.entry.js.map +0 -1
- package/dist/core/p-614953c5.entry.js +0 -2
- package/dist/core/p-614953c5.entry.js.map +0 -1
- package/dist/core/p-72ac8bb9.entry.js +0 -2
- package/dist/core/p-72ac8bb9.entry.js.map +0 -1
- package/dist/core/p-77a6c3f7.entry.js.map +0 -1
- package/dist/core/p-8abcc114.entry.js.map +0 -1
- package/dist/core/p-a45de09d.entry.js +0 -2
- package/dist/core/p-a45de09d.entry.js.map +0 -1
- package/dist/core/p-a5295f66.entry.js.map +0 -1
- package/dist/core/p-a5658054.js +0 -2
- package/dist/core/p-a5658054.js.map +0 -1
- package/dist/core/p-a8dc3162.entry.js +0 -2
- package/dist/core/p-ad6632a9.entry.js +0 -2
- package/dist/core/p-ad6632a9.entry.js.map +0 -1
- package/dist/core/p-ae861bb8.entry.js +0 -2
- package/dist/core/p-bb3a5130.entry.js.map +0 -1
- package/dist/core/p-bddf799a.js.map +0 -1
- package/dist/core/p-c397b33f.entry.js +0 -2
- package/dist/core/p-c397b33f.entry.js.map +0 -1
- package/dist/core/p-c4ffcc64.entry.js.map +0 -1
- package/dist/core/p-e0423c7e.entry.js.map +0 -1
- package/dist/core/p-f247db14.entry.js +0 -2
- package/dist/core/p-f247db14.entry.js.map +0 -1
- package/dist/esm/constants-7960cba4.js.map +0 -1
- package/dist/esm/helpers-dcedb279.js.map +0 -1
- /package/dist/core/{p-7552c8a1.entry.js.map → p-07075461.entry.js.map} +0 -0
- /package/dist/core/{p-6b6c1491.entry.js.map → p-0aba9e31.entry.js.map} +0 -0
- /package/dist/core/{p-ae861bb8.entry.js.map → p-0d7fd892.entry.js.map} +0 -0
- /package/dist/core/{p-06b3ae40.entry.js.map → p-0da2caa2.entry.js.map} +0 -0
- /package/dist/core/{p-62b9e7bf.entry.js.map → p-1edf2689.entry.js.map} +0 -0
- /package/dist/core/{p-70e1dd4d.entry.js.map → p-208f470f.entry.js.map} +0 -0
- /package/dist/core/{p-21efc36e.entry.js.map → p-2af89564.entry.js.map} +0 -0
- /package/dist/core/{p-a86785dd.entry.js.map → p-2ca7f050.entry.js.map} +0 -0
- /package/dist/core/{p-5cf704e3.entry.js.map → p-387b7bca.entry.js.map} +0 -0
- /package/dist/core/{p-bfd03fb4.entry.js.map → p-707ae6e9.entry.js.map} +0 -0
- /package/dist/core/{p-fb43abd6.entry.js.map → p-78a54069.entry.js.map} +0 -0
- /package/dist/core/{p-5e1a77aa.entry.js.map → p-79949920.entry.js.map} +0 -0
- /package/dist/core/{p-43356493.entry.js.map → p-7f279c8a.entry.js.map} +0 -0
- /package/dist/core/{p-9452b9ac.entry.js.map → p-808e1ef5.entry.js.map} +0 -0
- /package/dist/core/{p-f4e2e41f.entry.js.map → p-85e15d01.entry.js.map} +0 -0
- /package/dist/core/{p-1cc402b8.entry.js.map → p-880afd4b.entry.js.map} +0 -0
- /package/dist/core/{p-af02add9.entry.js.map → p-8da90b72.entry.js.map} +0 -0
- /package/dist/core/{p-091a7fbf.entry.js.map → p-94916588.entry.js.map} +0 -0
- /package/dist/core/{p-a7f21494.entry.js.map → p-949d08d3.entry.js.map} +0 -0
- /package/dist/core/{p-dfc2a0b1.entry.js.map → p-99687bce.entry.js.map} +0 -0
- /package/dist/core/{p-49444c33.entry.js.map → p-a0af1b0a.entry.js.map} +0 -0
- /package/dist/core/{p-44fbe8c2.entry.js.map → p-a3dea729.entry.js.map} +0 -0
- /package/dist/core/{p-6e8ef73c.entry.js.map → p-a851eb65.entry.js.map} +0 -0
- /package/dist/core/{p-bdda404b.entry.js.map → p-aed1c7e7.entry.js.map} +0 -0
- /package/dist/core/{p-3a94849e.entry.js.map → p-b8c0c142.entry.js.map} +0 -0
- /package/dist/core/{p-b00efb15.entry.js.map → p-c156e6e9.entry.js.map} +0 -0
- /package/dist/core/{p-d8200098.entry.js.map → p-cad23b7d.entry.js.map} +0 -0
- /package/dist/core/{p-8798cc6b.entry.js.map → p-d1730d4d.entry.js.map} +0 -0
- /package/dist/core/{p-0eafbaa1.entry.js.map → p-ea890d3d.entry.js.map} +0 -0
- /package/dist/core/{p-ae7dcbd5.entry.js.map → p-ec14c783.entry.js.map} +0 -0
- /package/dist/core/{p-6fb29846.entry.js.map → p-f6de08fb.entry.js.map} +0 -0
- /package/dist/core/{p-911b4aa4.entry.js.map → p-f700b759.entry.js.map} +0 -0
- /package/dist/core/{p-a7645717.entry.js.map → p-fdb587ab.entry.js.map} +0 -0
- /package/dist/core/{p-287e5c17.entry.js.map → p-feef7c2c.entry.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["icDividerCss","IcDividerStyle0","Divider","constructor","hostRef","this","foregroundColor","getBrandForegroundAppearance","borderStyle","labelPlacement","monochrome","orientation","theme","weight","brandChangeHandler","ev","detail","mode","updateMonochromeState","parentEl","el","parentElement","isBottomSideNav","classList","contains","isBottomWrapper","_a","tagName","add","componentWillRender","render","label","invalidPropCombination","placement","console","error","charAt","toUpperCase","slice","getTypographyVariant","renderLabel","slotHasContent","h","class","name","isPropDefined","variant","Host","Object","assign","isEmptyString","role"],"sources":["src/components/ic-divider/ic-divider.css?tag=ic-divider&encapsulation=scoped","src/components/ic-divider/ic-divider.tsx"],"sourcesContent":["/**\n * @prop --ic-divider-vertical-height: The height of a vertical divider. The default value is `inherit`. \n */\n\n/**\n * @prop --ic-divider-horizontal-width: The width of a horizontal divider. The default value is `inherit`.\n */\n\n/**\n * @prop --ic-divider-label-width: The max-width of the divider label. When orientation is set to `horizontal`, the default value is `max(20rem, 60%)`. When orientation is set to `vertical`, the default value is `20 rem`.\n */\n\n/* IC-DIVIDER COLORS */\n\n/**\n * @internal @prop --ic-divider-background\n */\n\n/**\n * @internal @prop --ic-divider-background-monochrome\n */\n\n/**\n * @internal @prop --ic-divider-label\n */\n\n/**\n * @internal @prop --ic-divider-label-monochrome\n */\n\n/* Horizontal Divider */\n:host(.ic-divider-horizontal) {\n display: flex;\n width: var(--ic-divider-horizontal-width, 100%);\n align-items: center;\n -moz-column-gap: var(--ic-space-xxs);\n column-gap: var(--ic-space-xxs);\n}\n\nhr {\n padding: 0;\n margin: 0;\n border: none;\n border-bottom: solid var(--ic-space-1px) var(--ic-divider-background);\n width: inherit;\n}\n\n:host(.ic-divider-horizontal)::before,\n:host(.ic-divider-horizontal)::after {\n border-left: none !important;\n}\n\n:host(.ic-divider-horizontal.ic-divider-label-right)::before,\n:host(.ic-divider-horizontal.ic-divider-label-center)::before,\n:host(.ic-divider-horizontal.ic-divider-label-left)::after,\n:host(.ic-divider-horizontal.ic-divider-label-center)::after {\n content: \"\";\n border: none;\n width: 100%;\n}\n\n/* Vertical Divider */\n:host(.ic-divider-vertical) {\n display: flex;\n flex-direction: column;\n height: var(--ic-divider-vertical-height, inherit);\n width: -moz-max-content;\n width: max-content;\n align-items: center;\n -moz-column-gap: var(--ic-space-xxs);\n column-gap: var(--ic-space-xxs);\n border: none;\n}\n\n:host(.ic-divider-vertical) div.vertical-divider {\n display: flex;\n height: inherit;\n}\n\n:host(.ic-divider-vertical.ic-divider-label-bottom)::before,\n:host(.ic-divider-vertical.ic-divider-label-center)::before,\n:host(.ic-divider-vertical.ic-divider-label-top)::after,\n:host(.ic-divider-vertical.ic-divider-label-center)::after {\n content: \"\";\n height: 100%;\n}\n\n/* Theme */\nhr,\n:host(.ic-divider-horizontal.ic-divider-label-right)::before,\n:host(.ic-divider-horizontal.ic-divider-label-center)::before,\n:host(.ic-divider-horizontal.ic-divider-label-left)::after,\n:host(.ic-divider-horizontal.ic-divider-label-center)::after {\n border-bottom: solid var(--ic-space-1px) var(--ic-divider-background);\n}\n\n:host(.ic-divider-monochrome) hr,\n:host(.ic-divider-monochrome.ic-divider-horizontal.ic-divider-label-right)::before,\n:host(.ic-divider-monochrome.ic-divider-horizontal.ic-divider-label-center)::before,\n:host(.ic-divider-monochrome.ic-divider-horizontal.ic-divider-label-left)::after,\n:host(.ic-divider-monochrome.ic-divider-horizontal.ic-divider-label-center)::after {\n border-bottom-color: var(--ic-divider-background-monochrome);\n}\n\n:host() div.vertical-divider,\n:host(.ic-divider-vertical.ic-divider-label-bottom)::before,\n:host(.ic-divider-vertical.ic-divider-label-center)::before,\n:host(.ic-divider-vertical.ic-divider-label-top)::after,\n:host(.ic-divider-vertical.ic-divider-label-center)::after {\n border-left: solid var(--ic-space-1px) var(--ic-divider-background);\n}\n\n:host(.ic-divider-monochrome) div.vertical-divider,\n:host(.ic-divider-monochrome.ic-divider-vertical.ic-divider-label-bottom)::before,\n:host(.ic-divider-monochrome.ic-divider-vertical.ic-divider-label-center)::before,\n:host(.ic-divider-monochrome.ic-divider-vertical.ic-divider-label-top)::after,\n:host(.ic-divider-monochrome.ic-divider-vertical.ic-divider-label-center)::after {\n border-left-color: var(--ic-divider-background-monochrome);\n}\n\n/* Divider in ic-side-navigation */\n:host(.ic-side-navigation-keyline.ic-theme-dark) {\n --ic-side-navigation-keyline: var(--ic-state-layer-lighten-20);\n}\n\n:host(.ic-side-navigation-keyline.ic-theme-light) {\n --ic-side-navigation-keyline: var(--ic-state-layer-darken-20);\n}\n\n:host(.ic-side-navigation-keyline.ic-theme-dark) hr,\n:host(.ic-side-navigation-keyline.ic-theme-dark.ic-divider-horizontal.ic-divider-label-right)::before,\n:host(.ic-side-navigation-keyline.ic-theme-dark.ic-divider-horizontal.ic-divider-label-center)::before,\n:host(.ic-side-navigation-keyline.ic-theme-dark.ic-divider-horizontal.ic-divider-label-left)::after,\n:host(.ic-side-navigation-keyline.ic-theme-dark.ic-divider-horizontal.ic-divider-label-center)::after {\n border-bottom-color: var(--ic-side-navigation-keyline);\n}\n\n:host(.ic-side-navigation-keyline.ic-theme-dark) div.vertical-divider,\n:host(.ic-side-navigation-keyline.ic-theme-dark.ic-divider-vertical.ic-divider-label-bottom)::before,\n:host(.ic-side-navigation-keyline.ic-theme-dark.ic-divider-vertical.ic-divider-label-center)::before,\n:host(.ic-side-navigation-keyline.ic-theme-dark.ic-divider-vertical.ic-divider-label-top)::after,\n:host(.ic-side-navigation-keyline.ic-theme-dark.ic-divider-vertical.ic-divider-label-center)::after {\n border-left-color: var(--ic-side-navigation-keyline);\n}\n\n:host(.ic-side-navigation-keyline.ic-theme-light) hr,\n:host(.ic-side-navigation-keyline.ic-theme-light.ic-divider-horizontal.ic-divider-label-right)::before,\n:host(.ic-side-navigation-keyline.ic-theme-light.ic-divider-horizontal.ic-divider-label-center)::before,\n:host(.ic-side-navigation-keyline.ic-theme-light.ic-divider-horizontal.ic-divider-label-left)::after,\n:host(.ic-side-navigation-keyline.ic-theme-light.ic-divider-horizontal.ic-divider-label-center)::after {\n border-bottom-color: var(--ic-side-navigation-keyline);\n}\n\n:host(.ic-side-navigation-keyline.ic-theme-light) div.vertical-divider,\n:host(.ic-side-navigation-keyline.ic-theme-light.ic-divider-vertical.ic-divider-label-bottom)::before,\n:host(.ic-side-navigation-keyline.ic-theme-light.ic-divider-vertical.ic-divider-label-center)::before,\n:host(.ic-side-navigation-keyline.ic-theme-light.ic-divider-vertical.ic-divider-label-top)::after,\n:host(.ic-side-navigation-keyline.ic-theme-light.ic-divider-vertical.ic-divider-label-center)::after {\n border-left-color: var(--ic-divider-background-monochrome);\n}\n\n/* Weight */\n:host(.ic-divider-very-thick) hr,\n:host(.ic-divider-very-thick.ic-divider-label-right)::before,\n:host(.ic-divider-very-thick.ic-divider-label-center)::before,\n:host(.ic-divider-very-thick.ic-divider-label-left)::after,\n:host(.ic-divider-very-thick.ic-divider-label-center)::after {\n border-bottom-width: var(--ic-space-xs);\n}\n\n:host(.ic-divider-very-thick) .vertical-divider,\n:host(.ic-divider-very-thick.ic-divider-label-bottom)::before,\n:host(.ic-divider-very-thick.ic-divider-label-center)::before,\n:host(.ic-divider-very-thick.ic-divider-label-top)::after,\n:host(.ic-divider-very-thick.ic-divider-label-center)::after {\n border-left-width: var(--ic-space-xs);\n}\n\n:host(.ic-divider-thick) hr,\n:host(.ic-divider-thick.ic-divider-label-right)::before,\n:host(.ic-divider-thick.ic-divider-label-center)::before,\n:host(.ic-divider-thick.ic-divider-label-left)::after,\n:host(.ic-divider-thick.ic-divider-label-center)::after {\n border-bottom-width: var(--ic-space-xxs);\n}\n\n:host(.ic-divider-thick) .vertical-divider,\n:host(.ic-divider-thick.ic-divider-label-bottom)::before,\n:host(.ic-divider-thick.ic-divider-label-center)::before,\n:host(.ic-divider-thick.ic-divider-label-top)::after,\n:host(.ic-divider-thick.ic-divider-label-center)::after {\n border-left-width: var(--ic-space-xxs);\n}\n\n:host(.ic-divider-medium) hr,\n:host(.ic-divider-medium.ic-divider-label-right)::before,\n:host(.ic-divider-medium.ic-divider-label-center)::before,\n:host(.ic-divider-medium.ic-divider-label-left)::after,\n:host(.ic-divider-medium.ic-divider-label-center)::after {\n border-bottom-width: var(--ic-space-xxxs);\n}\n\n:host(.ic-divider-medium) .vertical-divider,\n:host(.ic-divider-medium.ic-divider-label-bottom)::before,\n:host(.ic-divider-medium.ic-divider-label-center)::before,\n:host(.ic-divider-medium.ic-divider-label-top)::after,\n:host(.ic-divider-medium.ic-divider-label-center)::after {\n border-left-width: var(--ic-space-xxxs);\n}\n\n:host(.ic-divider-thin) hr,\n:host(.ic-divider-thin.ic-divider-label-right)::before,\n:host(.ic-divider-thin.ic-divider-label-center)::before,\n:host(.ic-divider-thin.ic-divider-label-left)::after,\n:host(.ic-divider-thin.ic-divider-label-center)::after {\n border-bottom-width: var(--ic-space-1px);\n}\n\n:host(.ic-divider-thin) .vertical-divider,\n:host(.ic-divider-thin.ic-divider-label-bottom)::before,\n:host(.ic-divider-thin.ic-divider-vertical.ic-divider-label-center)::before,\n:host(.ic-divider-thin.ic-divider-label-top)::after,\n:host(.ic-divider-thin.ic-divider-vertical.ic-divider-label-center)::after {\n border-left-width: var(--ic-space-1px);\n}\n\n/* Border styling */\n:host(.ic-divider-dashed) hr,\n:host(.ic-divider-dashed.ic-divider-label-right)::before,\n:host(.ic-divider-dashed.ic-divider-label-center)::before,\n:host(.ic-divider-dashed.ic-divider-label-left)::after,\n:host(.ic-divider-dashed.ic-divider-label-center)::after {\n border-bottom-style: dashed;\n}\n\n:host(.ic-divider-dashed) .vertical-divider,\n:host(.ic-divider-dashed.ic-divider-label-bottom)::before,\n:host(.ic-divider-dashed.ic-divider-label-center)::before,\n:host(.ic-divider-dashed.ic-divider-label-top)::after,\n:host(.ic-divider-dashed.ic-divider-label-center)::after {\n border-left-style: dashed;\n}\n\n/* Label styling */\n:host() .ic-divider-label {\n text-wrap: wrap;\n text-align: left;\n width: -moz-max-content;\n width: max-content;\n max-width: var(--ic-divider-label-width, max(20rem, 60%));\n}\n\n:host(.ic-divider-horizontal.ic-divider-label-center) .ic-divider-label {\n text-align: center;\n}\n\n:host(.ic-divider-vertical) .ic-divider-label {\n text-align: center;\n max-width: var(--ic-divider-label-width, 20rem);\n}\n\n:host() .ic-divider-label-container {\n width: -moz-max-content;\n width: max-content;\n max-width: var(--ic-divider-label-width, max(20rem, 60%));\n}\n\n:host(.ic-divider-vertical) .ic-divider-label-container {\n max-width: var(--ic-divider-label-width, 20rem);\n}\n\n:host() .ic-divider-label p {\n width: -moz-max-content;\n width: max-content;\n max-width: 100%;\n}\n\n:host() .ic-divider-label,\n:host() ::slotted(*) {\n color: var(--ic-divider-label);\n}\n\n:host(.ic-divider-monochrome) .ic-divider-label,\n:host(.ic-divider-monochrome) ::slotted(*) {\n color: var(--ic-divider-label-monochrome);\n}\n\n/* High contrast */\n@media (forced-colors: active) {\n hr,\n :host(.ic-divider-horizontal.ic-divider-label-right)::before,\n :host(.ic-divider-horizontal.ic-divider-label-center)::before,\n :host(.ic-divider-horizontal.ic-divider-label-left)::after,\n :host(.ic-divider-horizontal.ic-divider-label-center)::after {\n border-bottom-color: transparent;\n }\n\n :host() div.vertical-divider,\n :host(.ic-divider-vertical.ic-divider-label-bottom)::before,\n :host(.ic-divider-vertical.ic-divider-label-center)::before,\n :host(.ic-divider-vertical.ic-divider-label-top)::after,\n :host(.ic-divider-vertical.ic-divider-label-center)::after {\n border-left-color: transparent;\n }\n}\n","import {\n h,\n Component,\n Host,\n Listen,\n State,\n Prop,\n Element,\n} from \"@stencil/core\";\n\nimport {\n getBrandForegroundAppearance,\n isPropDefined,\n slotHasContent,\n isEmptyString,\n} from \"../../utils/helpers\";\n\nimport {\n IcBrand,\n IcOrientation,\n IcBrandForeground,\n IcThemeMode,\n} from \"../../utils/types\";\n\nimport {\n IcDividerLabelPlacement,\n IcDividerStyles,\n IcDividerWeights,\n} from \"./ic-divider.types\";\n\n@Component({\n tag: \"ic-divider\",\n styleUrl: \"ic-divider.css\",\n scoped: true,\n})\nexport class Divider {\n @Element() el: HTMLIcDividerElement;\n\n @State() foregroundColor: IcBrandForeground = getBrandForegroundAppearance();\n\n /**\n * The line style of the divider.\n */\n @Prop() borderStyle?: IcDividerStyles = \"solid\";\n\n /**\n * The label for the divider. The label placement will need to be set for the label to be displayed correctly.\n */\n @Prop() label?: string;\n\n /**\n * The position the label is placed on the divider. `Left` and `right` placement is only applicable when orientation is set to `horizontal`. `Top` and `bottom` placement is only applicable when orientation is set to `vertical`. `Center` placement is applicable for both orientations.\n */\n @Prop() labelPlacement?: IcDividerLabelPlacement = \"center\";\n\n /** If `true`, the divider will be displayed in a grey colour. */\n @Prop() monochrome?: boolean = false;\n\n /**\n * The orientation of the divider.\n */\n @Prop() orientation?: IcOrientation = \"horizontal\";\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 | IcBrandForeground = \"inherit\";\n\n /**\n * The thickness of the divider.\n */\n @Prop() weight?: IcDividerWeights = \"thin\";\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler(ev: CustomEvent<IcBrand>): void {\n this.foregroundColor = ev.detail.mode;\n }\n\n private updateMonochromeState(): void {\n const parentEl = this.el.parentElement;\n if (parentEl) {\n const isBottomSideNav = parentEl.classList.contains(\"bottom-side-nav\");\n const isBottomWrapper =\n parentEl.parentElement?.classList.contains(\"bottom-wrapper\");\n\n if (\n parentEl.tagName === \"IC-SIDE-NAVIGATION\" ||\n (isBottomSideNav && isBottomWrapper)\n ) {\n this.el.classList.add(\"ic-side-navigation-keyline\");\n if (this.foregroundColor === \"light\") {\n this.theme = \"dark\";\n } else {\n this.theme = \"light\";\n }\n }\n }\n }\n\n componentWillRender(): void {\n this.updateMonochromeState();\n }\n\n render() {\n const {\n borderStyle,\n label,\n labelPlacement,\n monochrome,\n orientation,\n weight,\n } = this;\n\n const { theme } = this;\n\n const invalidPropCombination = (\n placement: IcDividerLabelPlacement\n ): void => {\n console.error(\n `${\n placement.charAt(0).toUpperCase() + placement.slice(1)\n } label placement is not applicable for a ${orientation} ic-divider (web-components) / IcDivider (react)`\n );\n };\n\n if (\n ((labelPlacement === \"left\" || labelPlacement === \"right\") &&\n orientation === \"vertical\") ||\n ((labelPlacement === \"top\" || labelPlacement === \"bottom\") &&\n orientation === \"horizontal\")\n ) {\n invalidPropCombination(labelPlacement);\n }\n\n const getTypographyVariant = (weight: string) => {\n switch (weight) {\n case \"very-thick\":\n return \"h4\";\n case \"thick\":\n return \"subtitle-large\";\n default:\n return \"label\";\n }\n };\n\n const renderLabel = () => {\n if (slotHasContent(this.el, \"label\")) {\n return (\n <div class=\"ic-divider-label-container\">\n <slot name=\"label\"></slot>\n </div>\n );\n } else if (isPropDefined(label)) {\n return (\n <ic-typography\n class=\"ic-divider-label\"\n variant={getTypographyVariant(weight!)}\n >\n <p>{label}</p>\n </ic-typography>\n );\n }\n return null;\n };\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [`ic-divider-monochrome`]: !!monochrome,\n [`ic-divider-${orientation}`]: true,\n [`ic-divider-${weight}`]: true,\n [`ic-divider-${borderStyle}`]: true,\n [`ic-divider-label-${labelPlacement}`]:\n slotHasContent(this.el, \"label\") || !isEmptyString(label),\n }}\n {...((orientation === \"vertical\" ||\n (!!renderLabel() && !!isPropDefined(labelPlacement))) && {\n \"aria-orientation\": orientation,\n role: \"separator\",\n })}\n >\n {orientation === \"horizontal\" &&\n (!renderLabel() || !isPropDefined(labelPlacement)) && <hr />}\n {!!isPropDefined(labelPlacement) && !!renderLabel() && renderLabel()}\n {orientation === \"vertical\" &&\n (!renderLabel() || !isPropDefined(labelPlacement)) && (\n <div class=\"vertical-divider\"></div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"qIAAA,MAAMA,EAAe,u/VACrB,MAAAC,EAAeD,E,MCkCFE,EAAO,MALpB,WAAAC,CAAAC,G,UAQWC,KAAAC,gBAAqCC,IAKtCF,KAAAG,YAAgC,QAUhCH,KAAAI,eAA2C,SAG3CJ,KAAAK,WAAuB,MAKvBL,KAAAM,YAA8B,aAKbN,KAAAO,MAA0C,UAK3DP,KAAAQ,OAA4B,M,CAGpC,kBAAAC,CAAmBC,GACjBV,KAAKC,gBAAkBS,EAAGC,OAAOC,I,CAG3B,qBAAAC,G,MACN,MAAMC,EAAWd,KAAKe,GAAGC,cACzB,GAAIF,EAAU,CACZ,MAAMG,EAAkBH,EAASI,UAAUC,SAAS,mBACpD,MAAMC,GACJC,EAAAP,EAASE,iBAAa,MAAAK,SAAA,SAAAA,EAAEH,UAAUC,SAAS,kBAE7C,GACEL,EAASQ,UAAY,sBACpBL,GAAmBG,EACpB,CACApB,KAAKe,GAAGG,UAAUK,IAAI,8BACtB,GAAIvB,KAAKC,kBAAoB,QAAS,CACpCD,KAAKO,MAAQ,M,KACR,CACLP,KAAKO,MAAQ,O,IAMrB,mBAAAiB,GACExB,KAAKa,uB,CAGP,MAAAY,GACE,MAAMtB,YACJA,EAAWuB,MACXA,EAAKtB,eACLA,EAAcC,WACdA,EAAUC,YACVA,EAAWE,OACXA,GACER,KAEJ,MAAMO,MAAEA,GAAUP,KAElB,MAAM2B,EACJC,IAEAC,QAAQC,MACN,GACEF,EAAUG,OAAO,GAAGC,cAAgBJ,EAAUK,MAAM,8CACV3B,oDAC7C,EAGH,IACIF,IAAmB,QAAUA,IAAmB,UAChDE,IAAgB,aAChBF,IAAmB,OAASA,IAAmB,WAC/CE,IAAgB,aAClB,CACAqB,EAAuBvB,E,CAGzB,MAAM8B,EAAwB1B,IAC5B,OAAQA,GACN,IAAK,aACH,MAAO,KACT,IAAK,QACH,MAAO,iBACT,QACE,MAAO,Q,EAIb,MAAM2B,EAAc,KAClB,GAAIC,EAAepC,KAAKe,GAAI,SAAU,CACpC,OACEsB,EAAA,OAAKC,MAAM,8BACTD,EAAA,QAAME,KAAK,U,MAGV,GAAIC,EAAcd,GAAQ,CAC/B,OACEW,EAAA,iBACEC,MAAM,mBACNG,QAASP,EAAqB1B,IAE9B6B,EAAA,SAAIX,G,CAIV,OAAO,IAAI,EAGb,OACEW,EAACK,EAAIC,OAAAC,OAAA,CACHN,MAAO,CACL,CAAC,YAAY/B,KAAUA,IAAU,UACjC,CAAC,2BAA4BF,EAC7B,CAAC,cAAcC,KAAgB,KAC/B,CAAC,cAAcE,KAAW,KAC1B,CAAC,cAAcL,KAAgB,KAC/B,CAAC,oBAAoBC,KACnBgC,EAAepC,KAAKe,GAAI,WAAa8B,EAAcnB,MAEjDpB,IAAgB,cACjB6B,OAAmBK,EAAcpC,KAAqB,CACzD,mBAAoBE,EACpBwC,KAAM,cAGPxC,IAAgB,gBACb6B,MAAkBK,EAAcpC,KAAoBiC,EAAA,aACrDG,EAAcpC,MAAqB+B,KAAiBA,IACtD7B,IAAgB,cACb6B,MAAkBK,EAAcpC,KAChCiC,EAAA,OAAKC,MAAM,qB","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["icTabCss","IcTabStyle0","Tab","constructor","hostRef","this","focusFromClick","isInitialRender","contextId","disabled","monochrome","selected","theme","handleClick","tabClick","emit","tabId","position","tabPosition","tabFocus","handleFocus","focusTabId","handleMouseDown","watchDisabledHandler","removeDisabledFalse","el","disabledWatchHandler","tabEnabled","connectedCallback","tabCreated","disconnectedCallback","_a","document","querySelector","tabRemovedHandler","componentWillLoad","componentDidUpdate","setFocus","focus","render","h","Host","key","class","role","onClick","onFocus","onMouseDown","tabindex","isSlotUsed","name","variant"],"sources":["src/components/ic-tab/ic-tab.css?tag=ic-tab&encapsulation=shadow","src/components/ic-tab/ic-tab.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n --indicator-initial-color: rgba(23 89 188 / 0%);\n --focus-indicator: var(--ic-border-focus);\n\n display: flex;\n align-items: center;\n border-radius: 0;\n color: var(--ic-tab-label);\n\n --ic-typography-color: var(--ic-tab-label);\n\n height: 2.5rem;\n padding: 0 var(--ic-space-md);\n cursor: pointer;\n position: relative;\n border-bottom: var(--ic-space-xxs) solid var(--indicator-initial-color);\n gap: var(--ic-space-xs);\n transition: all var(--ic-easing-transition-fast);\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-tab-icon);\n}\n\n:host(.ic-tab-disabled) ::slotted([slot=\"icon\"]) {\n fill: var(--ic-tab-icon-disabled);\n}\n\n:host(:focus) {\n box-shadow: var(--focus-indicator);\n border-radius: var(--ic-border-radius);\n}\n\n:host(:focus-visible) {\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(:hover) {\n background-color: var(--ic-tab-item-hover);\n}\n\n:host(:active) {\n background-color: var(--ic-tab-item-pressed);\n}\n\n:host(.ic-tab-selected) {\n border-bottom: var(--ic-space-xxs) solid var(--ic-tab-item);\n}\n\n:host(.ic-tab-disabled) {\n pointer-events: none;\n color: var(--ic-architectural-300);\n}\n\n:host(.ic-tab-disabled) ic-typography {\n --ic-typography-color: var(--ic-tab-label-disabled);\n}\n\n:host(.ic-tab-monochrome) {\n color: var(--ic-tab-label-monochrome);\n}\n\n:host(.ic-tab-monochrome.ic-tab-disabled) ic-typography {\n color: var(--ic-tab-label-monochrome-disabled);\n}\n\n:host(.ic-tab-monochrome) ::slotted([slot=\"icon\"]) {\n fill: var(--ic-tab-icon-monochrome);\n}\n\n:host(.ic-tab-monochrome.ic-tab-disabled) ::slotted([slot=\"icon\"]) {\n fill: var(--ic-tab-icon-monochrome-disabled);\n}\n\n:host(.ic-tab-monochrome.ic-tab-selected) {\n border-bottom: var(--ic-space-xxs) solid var(--ic-tab-item-monochrome);\n}\n\n:host(.ic-tab-monochrome:hover) {\n background-color: var(--ic-tab-item-hover-monochrome);\n}\n\n:host(.ic-tab-monochrome:active) {\n background-color: var(--ic-tab-item-pressed-monochrome);\n}\n\n@media (prefers-reduced-motion: no-preference) {\n :host(.ic-tab-selected.with-transition) {\n transition: all var(--ic-easing-transition-slow),\n border-color var(--ic-transition-duration-slow);\n }\n}\n\n.ic-tab-label {\n pointer-events: none;\n text-wrap: nowrap;\n}\n\n::slotted(svg) {\n fill: currentcolor;\n}\n\n@media (forced-colors: active) {\n :host {\n border-bottom: var(--ic-space-xxs) solid canvas;\n }\n\n :host(.ic-tab-disabled) {\n color: GrayText;\n }\n\n :host(.ic-tab-disabled) ic-typography {\n color: GrayText;\n\n --ic-typography-color: GrayText;\n }\n}\n\n/* Add back in after storybook has the `color-scheme: light dark` code */\n\n/* @media (prefers-color-scheme: dark) and (not (forced-colors: active)) {\n :host(ic-tab) .ic-tab-label {\n color: var(--ic-architectural-white);\n }\n :host(ic-tab.ic-tab-disabled) .ic-tab-label {\n color: inherit;\n }\n} */\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n h,\n Method,\n Watch,\n} from \"@stencil/core\";\n\nimport { IcTabClickEventDetail } from \"./ic-tab.types\";\nimport { IcThemeMode } from \"../../utils/types\";\nimport { isSlotUsed, removeDisabledFalse } from \"../../utils/helpers\";\n\n/**\n * @slot icon - Content will be rendered next to the tab label.\n * @slot badge - Badge component displayed inline with the tab.\n */\n@Component({\n tag: \"ic-tab\",\n styleUrl: \"ic-tab.css\",\n shadow: true,\n})\nexport class Tab {\n private focusFromClick: boolean = false;\n private focusTabId: string;\n private isInitialRender: boolean = true;\n\n @Element() el: HTMLIcTabElement;\n\n /** @internal The unique context needed if using multiple tabs inside one another i.e. rendering another tabs inside a tab panel. */\n @Prop({ reflect: true }) contextId?: string = \"default\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /** @internal Determines whether black variant of the tabs should be displayed. */\n @Prop() monochrome?: boolean = false;\n\n /** @internal If `true`, the tab will display with a selected indicator and tabIndex will be set. */\n @Prop({ reflect: true }) selected?: boolean = false;\n\n /** @internal The shared ID between panel and tab. */\n @Prop({ reflect: true }) tabId!: string;\n\n /** @internal The position of the tab inside the tabs array in context. */\n @Prop() tabPosition!: number;\n\n /** @internal Determines whether the light or dark variant of the tabs should be displayed. */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n @Watch(\"disabled\")\n disabledWatchHandler(): void {\n this.tabEnabled.emit();\n }\n\n /**\n * @internal Emitted when a tab is selected.\n */\n @Event() tabClick: EventEmitter<IcTabClickEventDetail>;\n\n /**\n * @internal Emitted when a tab is dynamically created.\n */\n @Event() tabCreated: EventEmitter<HTMLIcTabElement>;\n\n /**\n * @internal Emitted when a tab's disabled prop changes\n */\n @Event() tabEnabled: EventEmitter<void>;\n\n /**\n * @internal Emitted when a tab is focussed.\n */\n @Event() tabFocus: EventEmitter<IcTabClickEventDetail>;\n\n /**\n * @internal Emitted when a tab is unmounted.\n */\n @Event() tabRemoved: EventEmitter<void>;\n\n connectedCallback(): void {\n this.tabCreated.emit(this.el);\n }\n\n disconnectedCallback(): void {\n document\n .querySelector<HTMLIcTabContextElement>(\n `ic-tab-context[context-id=${this.contextId}]`\n )\n ?.tabRemovedHandler(!!this.focusTabId);\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidUpdate(): void {\n this.isInitialRender = false;\n }\n\n /**\n * Sets focus on the tab.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el) {\n this.el.focus();\n }\n }\n\n private handleClick = () => {\n this.tabClick.emit({\n tabId: this.tabId,\n contextId: this.contextId!,\n position: this.tabPosition,\n });\n if (this.focusFromClick) {\n this.tabFocus.emit({\n tabId: this.tabId,\n contextId: this.contextId!,\n position: this.tabPosition,\n });\n this.focusFromClick = false;\n }\n };\n\n private handleFocus = () => {\n if (!this.focusFromClick) {\n this.focusTabId = this.tabId;\n\n this.tabFocus.emit({\n tabId: this.tabId,\n contextId: this.contextId!,\n position: this.tabPosition,\n });\n }\n };\n\n private handleMouseDown = () => {\n //set flag so that focus gets handled after click\n //there is a timing issue where a long click only causes focus to happen & not the click\n //the focus does need to be a separate event though to handle focus from keyboard\n this.focusFromClick = true;\n };\n\n render() {\n const {\n disabled,\n selected,\n theme,\n monochrome,\n handleClick,\n handleFocus,\n handleMouseDown,\n } = this;\n return (\n <Host\n class={{\n [\"with-transition\"]: !this.isInitialRender,\n [\"ic-tab-selected\"]: !!selected,\n [\"ic-tab-disabled\"]: !!disabled,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [\"ic-tab-monochrome\"]: !!monochrome,\n }}\n role=\"tab\"\n aria-selected={`${selected}`}\n onClick={handleClick}\n onFocus={handleFocus}\n onMouseDown={handleMouseDown}\n aria-disabled={`${disabled}`}\n tabindex={selected ? 0 : -1}\n >\n {isSlotUsed(this.el, \"icon\") && <slot name=\"icon\"></slot>}\n <ic-typography class=\"ic-tab-label\" variant=\"label\">\n <span>\n <slot></slot>\n </span>\n </ic-typography>\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n </Host>\n );\n }\n}\n"],"mappings":"mIAAA,MAAMA,EAAW,0/IACjB,MAAAC,EAAeD,E,MCwBFE,EAAG,MALhB,WAAAC,CAAAC,G,qMAMUC,KAAAC,eAA0B,MAE1BD,KAAAE,gBAA2B,KAKVF,KAAAG,UAAqB,UAKtCH,KAAAI,SAAqB,MAOrBJ,KAAAK,WAAuB,MAGNL,KAAAM,SAAqB,MAStCN,KAAAO,MAAsB,UA8DtBP,KAAAQ,YAAc,KACpBR,KAAKS,SAASC,KAAK,CACjBC,MAAOX,KAAKW,MACZR,UAAWH,KAAKG,UAChBS,SAAUZ,KAAKa,cAEjB,GAAIb,KAAKC,eAAgB,CACvBD,KAAKc,SAASJ,KAAK,CACjBC,MAAOX,KAAKW,MACZR,UAAWH,KAAKG,UAChBS,SAAUZ,KAAKa,cAEjBb,KAAKC,eAAiB,K,GAIlBD,KAAAe,YAAc,KACpB,IAAKf,KAAKC,eAAgB,CACxBD,KAAKgB,WAAahB,KAAKW,MAEvBX,KAAKc,SAASJ,KAAK,CACjBC,MAAOX,KAAKW,MACZR,UAAWH,KAAKG,UAChBS,SAAUZ,KAAKa,a,GAKbb,KAAAiB,gBAAkB,KAIxBjB,KAAKC,eAAiB,IAAI,C,CA/G5B,oBAAAiB,GACEC,EAAoBnB,KAAKI,SAAUJ,KAAKoB,G,CAmB1C,oBAAAC,GACErB,KAAKsB,WAAWZ,M,CA4BlB,iBAAAa,GACEvB,KAAKwB,WAAWd,KAAKV,KAAKoB,G,CAG5B,oBAAAK,G,OACEC,EAAAC,SACGC,cACC,6BAA6B5B,KAAKG,iBACnC,MAAAuB,SAAA,SAAAA,EACCG,oBAAoB7B,KAAKgB,W,CAG/B,iBAAAc,GACEX,EAAoBnB,KAAKI,SAAUJ,KAAKoB,G,CAG1C,kBAAAW,GACE/B,KAAKE,gBAAkB,K,CAOzB,cAAM8B,GACJ,GAAIhC,KAAKoB,GAAI,CACXpB,KAAKoB,GAAGa,O,EAuCZ,MAAAC,GACE,MAAM9B,SACJA,EAAQE,SACRA,EAAQC,MACRA,EAAKF,WACLA,EAAUG,YACVA,EAAWO,YACXA,EAAWE,gBACXA,GACEjB,KACJ,OACEmC,EAACC,EAAI,CAAAC,IAAA,2CACHC,MAAO,CACL,CAAC,oBAAqBtC,KAAKE,gBAC3B,CAAC,qBAAsBI,EACvB,CAAC,qBAAsBF,EACvB,CAAC,YAAYG,KAAUA,IAAU,UACjC,CAAC,uBAAwBF,GAE3BkC,KAAK,MAAK,gBACK,GAAGjC,IAClBkC,QAAShC,EACTiC,QAAS1B,EACT2B,YAAazB,EAAe,gBACb,GAAGb,IAClBuC,SAAUrC,EAAW,GAAK,GAEzBsC,EAAW5C,KAAKoB,GAAI,SAAWe,EAAA,QAAAE,IAAA,2CAAMQ,KAAK,SAC3CV,EAAA,iBAAAE,IAAA,2CAAeC,MAAM,eAAeQ,QAAQ,SAC1CX,EAAA,QAAAE,IAAA,4CACEF,EAAA,QAAAE,IAAA,+CAGHO,EAAW5C,KAAKoB,GAAI,UAAYe,EAAA,QAAAE,IAAA,2CAAMQ,KAAK,U","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["icLinkCss","IcLinkStyle0","Link","constructor","hostRef","this","inheritedAttributes","hostMutationObserver","download","monochrome","theme","hostMutationCallback","mutationList","forceComponentUpdate","forEach","attributeName","attribute","el","getAttribute","IC_INHERITED_ARIA","includes","forceUpdate","setDownloadAttribute","value","undefined","componentWillLoad","inheritAttributes","updateTheme","setAttribute","componentDidLoad","MutationObserver","observe","attributes","disconnectedCallback","_a","disconnect","brandChangeHandler","detail","mode","setFocus","_b","shadowRoot","querySelector","focus","getBrandFromContext","IcBrandForegroundEnum","Default","Light","Dark","hasRouterSlot","routerSlot","ariaLabel","textContent","render","href","hreflang","referrerpolicy","rel","target","h","Host","key","class","name","Object","assign","hrefLang","referrerPolicy","tabindex","part","innerHTML","OpenInNew"],"sources":["src/components/ic-link/ic-link.css?tag=ic-link&encapsulation=shadow","src/components/ic-link/ic-link.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host(.ic-link) .link,\n:host(.ic-link) ::slotted(a) {\n color: var(--ic-link-text);\n text-decoration: underline;\n font-weight: var(--ic-font-weight-bold);\n transition: var(--ic-easing-transition-fast);\n}\n\n:host(.ic-link) .link:visited,\n:host(.ic-link) ::slotted(a:visited),\n:host(.ic-link) .link:visited:hover,\n:host(.ic-link) ::slotted(a:visited:hover),\n:host(.ic-link) .link:visited:active,\n:host(.ic-link) ::slotted(a:visited:active),\n:host(.ic-link) .link:visited:focus,\n:host(.ic-link) ::slotted(a:visited:focus) {\n color: var(--ic-link-text-visited);\n}\n\n:host(.ic-link) .link:hover {\n color: var(--ic-link-text-hover);\n}\n\n:host(.ic-link) .link:active {\n color: var(--ic-link-text-pressed);\n}\n\n:host(.ic-link) .link:focus {\n color: var(--ic-link-text-focused);\n}\n\n:host(.ic-link-monochrome) .link:hover {\n color: var(--ic-link-text-hover-monochrome);\n}\n\n:host(.ic-link-monochrome) .link:active {\n color: var(--ic-link-text-pressed-monochrome);\n}\n\n:host(.ic-link-monochrome) .link:focus {\n color: var(--ic-link-text-focused-monochrome);\n}\n\n:host(.ic-link) .link:hover,\n:host(.ic-link) .link:focus,\n:host(.ic-link) ::slotted(a:hover),\n:host(.ic-link) ::slotted(a:focus) {\n outline: none;\n border-bottom: 0.25rem solid !important;\n margin-bottom: -0.25rem !important;\n text-decoration: none;\n}\n\n@supports (text-underline-offset: 10%) {\n :host(.ic-link) .link:hover,\n :host(.ic-link) .link:focus,\n :host(.ic-link) ::slotted(a:hover),\n :host(.ic-link) ::slotted(a:focus) {\n text-decoration-line: underline;\n text-decoration-thickness: 25%;\n text-underline-offset: 10%;\n border-bottom: 0 !important;\n margin-bottom: 0 !important;\n }\n}\n\n:host(.ic-link) .link:active,\n:host(.ic-link) .link:focus:active,\n:host(.ic-link) .link:visited:active,\n:host(.ic-link) ::slotted(a:active),\n:host(.ic-link) ::slotted(a:focus:active),\n:host(.ic-link) ::slotted(a:visited:active) {\n text-decoration: none;\n}\n\n.ic-link-open-in-new-icon {\n vertical-align: middle;\n margin-left: var(--ic-space-xxs);\n}\n\n.ic-link-open-in-new-icon > svg {\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n fill: var(--ic-link-icon-launch);\n}\n\n.link:visited > .ic-link-open-in-new-icon > svg {\n fill: var(--ic-link-icon-launch-visited);\n}\n\n:host(.ic-link-monochrome) .link,\n:host(.ic-link-monochrome) ::slotted(a) {\n color: var(--ic-link-text-monochrome);\n}\n\n:host(.ic-link-monochrome) .link:visited,\n:host(.ic-link-monochrome) ::slotted(a:visited),\n:host(.ic-link-monochrome) .link:visited:hover,\n:host(.ic-link-monochrome) ::slotted(a:visited:hover),\n:host(.ic-link-monochrome) .link:visited:active,\n:host(.ic-link-monochrome) ::slotted(a:visited:active),\n:host(.ic-link-monochrome) .link:visited:focus,\n:host(.ic-link-monochrome) ::slotted(a:visited:focus) {\n color: var(--ic-link-text-visited-monochrome);\n}\n\n:host(.ic-link-monochrome) .link > .ic-link-open-in-new-icon > svg {\n fill: var(--ic-link-icon-launch-monochrome);\n}\n\n:host(.ic-link-monochrome) .link:visited > .ic-link-open-in-new-icon > svg {\n fill: var(--ic-link-icon-launch-visited-monochrome);\n}\n\n:host(.breadcrumb-link) .link {\n display: var(--breadcrumb-link-display);\n align-items: var(--breadcrumb-link-align-items);\n gap: var(--breadcrumb-link-gap);\n}\n\n:host(.breadcrumb-link) .link ::slotted(.back-icon) {\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n}\n\n:host(.breadcrumb-link.current-page) a,\n:host(.breadcrumb-link.current-page) ::slotted(a) {\n font-weight: normal;\n color: inherit;\n text-decoration: none;\n display: flex;\n align-items: center;\n}\n\n:host(.breadcrumb-link.current-page) .link,\n:host(.breadcrumb-link.current-page) ::slotted(a:focus) {\n outline: var(--ic-hc-focus-outline);\n text-decoration: none;\n}\n\n:host(.breadcrumb-link.current-page) .link:visited {\n color: var(--ic-color-text-primary);\n}\n\n/* Footer link */\n\n:host(.footer-link) ::slotted(a) {\n color: var(--ic-footer-link) !important;\n}\n\n:host(.footer-link) .ic-link-open-in-new-icon > svg {\n fill: var(--ic-footer-icon) !important;\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n :host(.ic-link) .ic-link-open-in-new-icon > svg {\n fill: currentcolor !important;\n }\n}\n","import {\n Component,\n Element,\n Prop,\n h,\n Host,\n Listen,\n Method,\n forceUpdate,\n} from \"@stencil/core\";\n\nimport OpenInNew from \"../../assets/OpenInNew.svg\";\nimport { getBrandFromContext, inheritAttributes } from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundEnum,\n IcThemeMode,\n} from \"../../utils/types\";\n\n/**\n * @slot router-item - Handle routing by nesting your routes in this slot.\n */\n\n@Component({\n tag: \"ic-link\",\n styleUrl: \"ic-link.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Link {\n private inheritedAttributes: { [k: string]: string } = {};\n private routerSlot: HTMLElement | null;\n private hostMutationObserver: MutationObserver | null = null;\n\n @Element() el: HTMLIcLinkElement;\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it. If the value is a string, it will be used as the filename for the download.\n */\n @Prop() download?: string | boolean = false;\n\n /**\n * The URL that the link points to.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * If `true`, the link will display as black in the light theme, and white in the dark theme.\n */\n @Prop({ mutable: true }) monochrome?: boolean = false;\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, IC_INHERITED_ARIA);\n this.updateTheme();\n this.el.setAttribute(\"exportparts\", \"link\");\n }\n\n componentDidLoad(): void {\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n });\n }\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler({ detail }: CustomEvent<IcBrand>): void {\n this.updateTheme(detail.mode);\n }\n\n /**\n * Sets focus on the link.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.el.shadowRoot?.querySelector(\"a\")?.focus();\n }\n\n private updateTheme(mode: IcBrandForeground | null = null): void {\n const theme = getBrandFromContext(this.el, mode);\n\n if (theme !== IcBrandForegroundEnum.Default) {\n this.monochrome = true;\n this.theme =\n theme === IcBrandForegroundEnum.Light\n ? IcBrandForegroundEnum.Dark\n : IcBrandForegroundEnum.Light;\n }\n }\n\n private hasRouterSlot(): boolean {\n this.routerSlot = this.el.querySelector('[slot=\"router-item\"]');\n if (this.routerSlot) {\n this.routerSlot.ariaLabel = this.routerSlot.textContent;\n }\n return !!this.routerSlot;\n }\n\n // triggered when attributes of host element change\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n let forceComponentUpdate = false;\n mutationList.forEach(({ attributeName }) => {\n if (attributeName) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute && IC_INHERITED_ARIA.includes(attributeName)) {\n this.inheritedAttributes[attributeName] = attribute;\n forceComponentUpdate = true;\n }\n }\n });\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n private setDownloadAttribute = (\n value: string | boolean | undefined\n ): string | undefined => {\n if (typeof value === \"boolean\") {\n return value ? \"\" : undefined;\n } else {\n return value === \"true\" ? \"\" : value === \"false\" ? undefined : value;\n }\n };\n\n render() {\n const {\n download,\n href,\n hreflang,\n referrerpolicy,\n rel,\n target,\n monochrome,\n theme,\n } = this;\n\n return (\n <Host\n class={{\n [\"ic-link\"]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [\"ic-link-monochrome\"]: !!monochrome,\n }}\n >\n {this.hasRouterSlot() ? (\n <slot name=\"router-item\"></slot>\n ) : (\n <a\n class={{\n [\"link\"]: !!href,\n }}\n download={this.setDownloadAttribute(download)}\n href={href}\n hrefLang={hreflang}\n referrerPolicy={referrerpolicy}\n rel={rel}\n target={target}\n tabindex={href ? \"0\" : \"-1\"}\n {...this.inheritedAttributes}\n part=\"link\"\n >\n <slot />\n {target === \"_blank\" && (\n <span class=\"ic-link-open-in-new-icon\" innerHTML={OpenInNew} />\n )}\n </a>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"0LAAA,MAAMA,EAAY,y/LAClB,MAAAC,EAAeD,E,MC+BFE,EAAI,MAPjB,WAAAC,CAAAC,G,UAQUC,KAAAC,oBAA+C,GAE/CD,KAAAE,qBAAgD,KAOhDF,KAAAG,SAA8B,MAebH,KAAAI,WAAuB,MAoBvBJ,KAAAK,MAAsB,UAqDvCL,KAAAM,qBAAwBC,IAC9B,IAAIC,EAAuB,MAC3BD,EAAaE,SAAQ,EAAGC,oBACtB,GAAIA,EAAe,CACjB,MAAMC,EAAYX,KAAKY,GAAGC,aAAaH,GACvC,GAAIC,GAAaG,EAAkBC,SAASL,GAAgB,CAC1DV,KAAKC,oBAAoBS,GAAiBC,EAC1CH,EAAuB,I,MAI7B,GAAIA,EAAsB,CACxBQ,EAAYhB,K,GAIRA,KAAAiB,qBACNC,IAEA,UAAWA,IAAU,UAAW,CAC9B,OAAOA,EAAQ,GAAKC,S,KACf,CACL,OAAOD,IAAU,OAAS,GAAKA,IAAU,QAAUC,UAAYD,C,GAzEnE,iBAAAE,GACEpB,KAAKC,oBAAsBoB,EAAkBrB,KAAKY,GAAIE,GACtDd,KAAKsB,cACLtB,KAAKY,GAAGW,aAAa,cAAe,O,CAGtC,gBAAAC,GACExB,KAAKE,qBAAuB,IAAIuB,iBAAiBzB,KAAKM,sBACtDN,KAAKE,qBAAqBwB,QAAQ1B,KAAKY,GAAI,CACzCe,WAAY,M,CAIhB,oBAAAC,G,OACEC,EAAA7B,KAAKE,wBAAoB,MAAA2B,SAAA,SAAAA,EAAEC,Y,CAI7B,kBAAAC,EAAmBC,OAAEA,IACnBhC,KAAKsB,YAAYU,EAAOC,K,CAO1B,cAAMC,G,SACJC,GAAAN,EAAA7B,KAAKY,GAAGwB,cAAU,MAAAP,SAAA,SAAAA,EAAEQ,cAAc,QAAI,MAAAF,SAAA,SAAAA,EAAEG,O,CAGlC,WAAAhB,CAAYW,EAAiC,MACnD,MAAM5B,EAAQkC,EAAoBvC,KAAKY,GAAIqB,GAE3C,GAAI5B,IAAUmC,EAAsBC,QAAS,CAC3CzC,KAAKI,WAAa,KAClBJ,KAAKK,MACHA,IAAUmC,EAAsBE,MAC5BF,EAAsBG,KACtBH,EAAsBE,K,EAIxB,aAAAE,GACN5C,KAAK6C,WAAa7C,KAAKY,GAAGyB,cAAc,wBACxC,GAAIrC,KAAK6C,WAAY,CACnB7C,KAAK6C,WAAWC,UAAY9C,KAAK6C,WAAWE,W,CAE9C,QAAS/C,KAAK6C,U,CA8BhB,MAAAG,GACE,MAAM7C,SACJA,EAAQ8C,KACRA,EAAIC,SACJA,EAAQC,eACRA,EAAcC,IACdA,EAAGC,OACHA,EAAMjD,WACNA,EAAUC,MACVA,GACEL,KAEJ,OACEsD,EAACC,EAAI,CAAAC,IAAA,2CACHC,MAAO,CACL,CAAC,WAAY,KACb,CAAC,YAAYpD,KAAUA,IAAU,UACjC,CAAC,wBAAyBD,IAG3BJ,KAAK4C,gBACJU,EAAA,QAAMI,KAAK,gBAEXJ,EAAA,IAAAK,OAAAC,OAAA,CACEH,MAAO,CACL,CAAC,UAAWR,GAEd9C,SAAUH,KAAKiB,qBAAqBd,GACpC8C,KAAMA,EACNY,SAAUX,EACVY,eAAgBX,EAChBC,IAAKA,EACLC,OAAQA,EACRU,SAAUd,EAAO,IAAM,MACnBjD,KAAKC,oBAAmB,CAC5B+D,KAAK,SAELV,EAAA,aACCD,IAAW,UACVC,EAAA,QAAMG,MAAM,2BAA2BQ,UAAWC,K","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["icCardVerticalCss","IcCardVerticalStyle0","CardVertical","constructor","hostRef","this","hostMutationObserver","areaExpanded","isFocussed","monochrome","parentEl","parentIsAnchorTag","clickable","disabled","expandable","fullWidth","hreflang","message","theme","parentFocussed","parentBlurred","toggleExpanded","watchDisabledHandler","removeDisabledFalse","el","disconnectedCallback","removeEventListener","_a","disconnect","componentWillLoad","parentElement","tagName","classList","add","addEventListener","componentDidLoad","isSlotUsed","onComponentRequiredPropUndefined","prop","heading","propName","updateTheme","MutationObserver","mutationList","renderDynamicChildSlots","observe","childList","handleHostClick","event","stopImmediatePropagation","brandChangeHandler","ev","detail","mode","setFocus","shadowRoot","querySelector","focus","_b","foregroundColor","getBrandFromContext","IcBrandForegroundEnum","Default","Light","Dark","render","href","referrerpolicy","rel","subheading","target","Component","undefined","attrs","hrefLang","referrerPolicy","h","Host","key","class","Object","assign","card","fullwidth","focussed","tabindex","name","variant","id","label","silent","onClick","innerHTML","chevronIcon"],"sources":["src/components/ic-card-vertical/ic-card-vertical.css?tag=ic-card-vertical&encapsulation=shadow","src/components/ic-card-vertical/ic-card-vertical.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: flex;\n}\n\na {\n text-decoration: none !important;\n color: var(--ic-card-text-primary) !important;\n}\n\na:visited {\n color: var(--ic-card-link-action-dark) !important;\n}\n\nbutton {\n border: none;\n background-color: transparent;\n outline: var(--ic-hc-focus-outline);\n}\n\n.card {\n display: flex;\n flex-direction: column;\n border: var(--ic-space-1px) solid var(--ic-card-border-primary);\n border-radius: var(--ic-border-radius);\n box-sizing: border-box;\n padding: var(--ic-space-md);\n text-align: left;\n color: var(--ic-card-text-primary);\n transition: var(--ic-easing-transition-fast);\n position: relative;\n width: inherit;\n min-width: fit-content;\n height: fit-content;\n min-height: 100%;\n\n ::slotted(svg) {\n fill: var(--ic-card-icon);\n }\n\n &.monochrome {\n border: var(--ic-border-width) solid var(--ic-card-border-monochrome);\n }\n\n &.fullwidth {\n width: 100%;\n }\n\n &.clickable {\n &:hover {\n background-color: var(--ic-card-background-hover);\n border: var(--ic-space-1px) solid var(--ic-card-hover-border-color);\n cursor: pointer;\n }\n\n &.focussed,\n &:focus {\n background-color: var(--ic-card-background-hover);\n box-shadow: var(--ic-border-focus);\n outline: var(--ic-hc-focus-outline);\n border: var(--ic-space-1px) solid var(--ic-card-pressed-border-color);\n }\n\n &:active {\n background-color: var(--ic-card-background-pressed);\n box-shadow: var(--ic-border-focus);\n\n .card-title {\n text-decoration: none;\n }\n }\n\n .card-title {\n --ic-typography-color: var(--ic-card-clickable-text);\n\n color: var(--ic-card-clickable-text);\n text-decoration: underline;\n text-decoration-thickness: var(--ic-space-1px);\n margin-bottom: var(--ic-space-xxs);\n }\n\n .interaction-button,\n .icon {\n margin-bottom: var(--ic-space-xxs);\n }\n }\n\n &.disabled {\n border: var(--ic-space-1px) dashed var(--ic-card-disabled-border-color);\n\n .card-message,\n .subheading,\n .card-title {\n --ic-typography-color: var(--ic-card-disabled-text);\n }\n\n .card-title {\n text-decoration: underline;\n text-decoration-thickness: var(--ic-space-1px);\n text-decoration-color: var(--ic-card-disabled-text);\n color: var(--ic-card-disabled-text);\n }\n\n ::slotted(svg) {\n fill: var(--ic-card-icon-disabled);\n }\n }\n}\n\n.card-header {\n display: flex;\n align-items: center;\n}\n\n.icon {\n display: flex;\n align-items: center;\n padding-right: var(--ic-space-xs);\n}\n\n.card.clickable:hover .card-title,\n.card.clickable:focus .card-title,\n.card.clickable.focussed .card-title {\n display: inline-block;\n border-bottom: 0.25rem solid !important;\n margin-bottom: 0 !important;\n text-decoration: none;\n}\n\n@supports (text-underline-offset: 25%) {\n .card.clickable:hover .card-title,\n .card.clickable:focus .card-title,\n .card.clickable.focussed .card-title {\n text-decoration-line: underline;\n text-decoration-thickness: 25%;\n text-underline-offset: 25%;\n border-bottom: 0 !important;\n margin-bottom: 0.25rem !important;\n }\n}\n\n.subheading {\n margin-top: var(--ic-space-xxs);\n}\n\n.adornment {\n margin-top: var(--ic-space-xxs);\n}\n\n.card-message {\n margin-top: var(--ic-space-md);\n align-items: left;\n}\n\n.interaction-button {\n margin-left: auto;\n}\n\n.image-top {\n margin-bottom: var(--ic-space-md);\n display: flex;\n justify-content: center;\n}\n\n.image-mid {\n margin-top: var(--ic-space-md);\n display: flex;\n justify-content: center;\n}\n\n.interaction-area {\n display: flex;\n flex-grow: 1;\n gap: var(--ic-space-md);\n margin-top: var(--ic-space-md);\n align-items: flex-end;\n}\n\n.interaction-controls {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--ic-space-sm);\n}\n\n.toggle-button {\n width: 2.5rem;\n height: 2.5rem;\n padding: var(--ic-space-xs);\n margin: var(--ic-space-1px) 0;\n min-width: 0;\n cursor: pointer;\n transition: var(--ic-easing-transition-fast);\n border-radius: var(--ic-border-radius);\n display: inline-flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n background: none;\n border: none;\n box-sizing: border-box;\n white-space: nowrap;\n vertical-align: middle;\n\n &:hover {\n background-color: var(--ic-card-background-hover);\n }\n\n &:focus {\n box-shadow: var(--ic-border-focus);\n }\n\n &:active:not(:focus) {\n background-color: var(--ic-card-background-pressed);\n }\n\n svg {\n pointer-events: none;\n width: 100% !important;\n height: 100% !important;\n fill: currentcolor !important;\n }\n}\n\n#ic-tooltip-expand-button {\n margin-left: auto;\n position: relative;\n}\n\n.toggle-button-closed svg {\n transform: rotate(90deg);\n}\n\n.toggle-button-expanded svg {\n transform: rotate(-90deg);\n}\n\n.expanded-content {\n margin-top: var(--ic-space-md);\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n .card {\n ::slotted(svg) {\n fill: currentcolor;\n }\n\n &.disabled {\n border-color: GrayText !important;\n\n ::slotted(svg) {\n fill: GrayText !important;\n }\n\n .card-message,\n .subheading,\n .card-title {\n color: GrayText;\n\n --ic-typography-color: GrayText;\n }\n }\n }\n\n .toggle-button:focus,\n .toggle-button:hover {\n outline-color: Highlight;\n }\n}\n","import {\n Component,\n Element,\n Listen,\n Prop,\n State,\n h,\n Method,\n Host,\n Watch,\n} from \"@stencil/core\";\nimport {\n onComponentRequiredPropUndefined,\n isSlotUsed,\n getBrandFromContext,\n removeDisabledFalse,\n renderDynamicChildSlots,\n} from \"../../utils/helpers\";\nimport {\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundEnum,\n IcThemeMode,\n} from \"../../utils/types\";\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\n\n/**\n * @slot heading - Content will be placed at the top of the card to the right of the icon.\n * @slot message - Content will be placed in the main body of the card.\n * @slot subheading - Content will be placed below the card heading.\n * @slot adornment - Content will be placed below the card subheading.\n * @slot image-top - Content will be placed at the top of the card above all other content.\n * @slot image-mid - Content will be placed below the card heading section.\n * @slot icon - Content will be placed to the left of the card heading.\n * @slot interaction-button - Content will be placed in the top right corner of the heading section.\n * @slot interaction-controls - Content will be placed below the card message.\n * @slot expanded-content - Content will be placed below the interaction controls but will not initially be rendered.\n * @slot badge - Badge component overlaying the top right of the card.\n */\n@Component({\n tag: \"ic-card-vertical\",\n styleUrl: \"ic-card-vertical.css\",\n shadow: true,\n})\nexport class CardVertical {\n private hostMutationObserver: MutationObserver | null = null;\n\n @Element() el: HTMLIcCardVerticalElement;\n\n @State() areaExpanded: boolean = false;\n @State() isFocussed: boolean = false;\n @State() monochrome: boolean = false;\n @State() parentEl: HTMLElement | null = null;\n @State() parentIsAnchorTag: boolean = false;\n\n /**\n * If `true`, the card will be a clickable variant, instead of static.\n */\n @Prop({ mutable: true }) clickable?: boolean = false;\n\n /**\n * If `true`, the card will be disabled if it is clickable.\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 card will have an expandable area and expansion toggle button.\n */\n @Prop() expandable?: boolean = false;\n\n /**\n * If `true`, the card will fill the width of the container.\n */\n @Prop() fullWidth?: boolean = false;\n\n /**\n * The heading for the card. This is required, unless a slotted heading is used.\n */\n @Prop() heading?: string;\n\n /**\n * The URL that the clickable card link points to. If set, the clickable card will render as an \"a\" tag, otherwise it will render as a button.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string = \"\";\n\n /**\n * The main body message of the card.\n */\n @Prop() message?: 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 subheading for the card.\n */\n @Prop() subheading?: 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 disconnectedCallback(): void {\n if (this.parentEl && this.parentIsAnchorTag) {\n this.parentEl.removeEventListener(\"focus\", this.parentFocussed);\n this.parentEl.removeEventListener(\"blur\", this.parentBlurred);\n }\n\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.parentEl = this.el.parentElement;\n\n if (this.parentEl?.tagName === \"A\") {\n this.clickable = true;\n this.parentIsAnchorTag = true;\n this.parentEl.classList.add(\"ic-card-wrapper-link\");\n this.parentEl.addEventListener(\"focus\", this.parentFocussed);\n this.parentEl.addEventListener(\"blur\", this.parentBlurred);\n }\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n !isSlotUsed(this.el, \"heading\") &&\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Card\"\n );\n this.updateTheme();\n\n this.hostMutationObserver = new MutationObserver((mutationList) =>\n renderDynamicChildSlots(\n mutationList,\n [\n \"message\",\n \"adornment\",\n \"expanded-content\",\n \"image-top\",\n \"image-mid\",\n \"icon\",\n \"interaction-button\",\n \"badge\",\n \"interaction-controls\",\n ],\n this\n )\n );\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(event: Event): void {\n if (this.disabled) {\n event.stopImmediatePropagation();\n }\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler(ev: CustomEvent<IcBrand>): void {\n this.updateTheme(ev.detail.mode);\n }\n\n /**\n * Sets focus on the card.\n */\n @Method()\n async setFocus(): Promise<void> {\n const shadowRoot = this.el.shadowRoot;\n\n if (shadowRoot) {\n if (shadowRoot.querySelector(\"a\")) {\n shadowRoot.querySelector(\"a\")?.focus();\n } else if (shadowRoot.querySelector(\"button\")) {\n shadowRoot.querySelector(\"button\")?.focus();\n }\n }\n }\n\n private parentFocussed = (): void => {\n this.isFocussed = true;\n };\n\n private parentBlurred = (): void => {\n this.isFocussed = false;\n };\n\n private updateTheme(mode: IcBrandForeground | null = null): void {\n const foregroundColor = getBrandFromContext(this.el, mode);\n\n if (foregroundColor !== IcBrandForegroundEnum.Default) {\n this.monochrome = true;\n this.theme =\n foregroundColor === IcBrandForegroundEnum.Light\n ? IcBrandForegroundEnum.Dark\n : IcBrandForegroundEnum.Light;\n }\n }\n\n private toggleExpanded = (): void => {\n this.areaExpanded = !this.areaExpanded;\n };\n\n render() {\n const {\n clickable,\n disabled,\n expandable,\n fullWidth,\n heading,\n isFocussed,\n message,\n monochrome,\n href,\n hreflang,\n parentIsAnchorTag,\n referrerpolicy,\n rel,\n subheading,\n target,\n theme,\n } = this;\n\n const Component =\n parentIsAnchorTag || !clickable\n ? \"div\"\n : href === undefined\n ? \"button\"\n : \"a\";\n\n const attrs = Component == \"a\" && {\n href: href,\n hrefLang: hreflang,\n referrerPolicy: referrerpolicy,\n rel: rel,\n target: target,\n };\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <Component\n class={{\n card: true,\n clickable: !!clickable && !disabled,\n disabled: !!disabled,\n fullwidth: !!fullWidth,\n focussed: isFocussed,\n monochrome: monochrome,\n }}\n tabindex={clickable && !parentIsAnchorTag ? 0 : undefined}\n aria-disabled={disabled ? \"true\" : null}\n disabled={disabled}\n {...attrs}\n >\n {isSlotUsed(this.el, \"image-top\") && (\n <div class=\"image-top\">\n <slot name=\"image-top\"></slot>\n </div>\n )}\n <div class=\"card-header\">\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon\">\n <slot name=\"icon\" />\n </div>\n )}\n <div class=\"card-title\">\n <slot name=\"heading\">\n <ic-typography variant=\"h4\">\n <p>{heading}</p>\n </ic-typography>\n </slot>\n </div>\n {isSlotUsed(this.el, \"interaction-button\") && (\n <div class=\"interaction-button\">\n <slot name=\"interaction-button\"></slot>\n </div>\n )}\n </div>\n {(subheading || isSlotUsed(this.el, \"subheading\")) && (\n <div class=\"subheading\">\n <slot name=\"subheading\">\n <ic-typography variant=\"subtitle-small\">\n {subheading}\n </ic-typography>\n </slot>\n </div>\n )}\n {isSlotUsed(this.el, \"adornment\") && (\n <div class=\"adornment\">\n <slot name=\"adornment\"></slot>\n </div>\n )}\n {isSlotUsed(this.el, \"image-mid\") && (\n <div class=\"image-mid\">\n <slot name=\"image-mid\"></slot>\n </div>\n )}\n {(message || isSlotUsed(this.el, \"message\")) && (\n <div class=\"card-message\">\n {message && (\n <ic-typography variant=\"body\">{message}</ic-typography>\n )}\n {isSlotUsed(this.el, \"message\") && <slot name=\"message\"></slot>}\n </div>\n )}\n {(isSlotUsed(this.el, \"interaction-controls\") || expandable) && (\n <div class=\"interaction-area\">\n <div class=\"interaction-controls\">\n <slot name=\"interaction-controls\"></slot>\n </div>\n {expandable && (\n <ic-tooltip\n id=\"ic-tooltip-expand-button\"\n label=\"Toggle expandable area\"\n silent\n >\n <button\n class={{\n \"toggle-button\": true,\n [`toggle-button-${\n this.areaExpanded ? \"expanded\" : \"closed\"\n }`]: true,\n }}\n aria-label=\"Toggle expandable area\"\n aria-expanded={`${this.areaExpanded}`}\n aria-controls={\n this.areaExpanded ? \"expanded-content-area\" : null\n }\n onClick={this.toggleExpanded}\n innerHTML={chevronIcon}\n ></button>\n </ic-tooltip>\n )}\n </div>\n )}\n {isSlotUsed(this.el, \"expanded-content\") && this.areaExpanded && (\n <div class=\"expanded-content\" id=\"expanded-content-area\">\n <slot name=\"expanded-content\"></slot>\n </div>\n )}\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n </Component>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,c as e,h as o,H as i,g as n}from"./p-8e4e97b4.js";import{r}from"./p-a5658054.js";import"./p-bddf799a.js";const s='/*! 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}:root{display:block}:host{display:flex;flex-direction:row;width:-moz-fit-content;width:fit-content;min-width:-moz-min-content;min-width:min-content;border:var(--ic-border-width) solid var(--ic-toggle-button-unselected-border);border-radius:var(--ic-border-radius)}:host(.ic-toggle-button-group-full-width){width:100%;max-width:100%}:host(.ic-toggle-button-group-loading){min-width:-moz-max-content;min-width:max-content}:host(:focus){box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);transition:var(--ic-transition-duration-fast);outline:none}::slotted(ic-toggle-button){flex-grow:1;width:-moz-min-content;width:min-content;--toggle-button-border:none !important;--toggle-button-border-hover:none !important;--toggle-button-border-active:none !important}::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border)}:host(.ic-toggle-button-group-disabled){border:var(--ic-space-1px) dashed\n var(--ic-toggle-button-unselected-border-disabled);pointer-events:none}:host(.ic-toggle-button-group-disabled) ::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-space-1px) dashed\n var(--ic-toggle-button-unselected-border-disabled)}:host(.ic-toggle-button-group-monochrome){border:var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-monochrome)}:host(.ic-toggle-button-group-monochrome) ::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-monochrome)}:host(.ic-toggle-button-group-disabled.ic-toggle-button-group-monochrome){border:var(--ic-border-width) dashed\n var(--ic-toggle-button-unselected-border-disabled-monochrome)}:host(.ic-toggle-button-group-disabled.ic-toggle-button-group-monochrome) ::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-disabled-monochrome)}:host(.ic-toggle-button-group-hide-outline){--ic-toggle-button-unselected-border:transparent;--ic-toggle-button-unselected-border-disabled:transparent;--ic-toggle-button-unselected-border-monochrome:transparent;--ic-toggle-button-unselected-border-disabled-monochrome:transparent}';const l=s;const a="IC-TOGGLE-BUTTON-GROUP";const d=class{constructor(o){t(this,o);this.icChange=e(this,"icChange",7);this.lastKeyPressed={key:null,shift:false};this.externallySetActiveToggle=null;this.accessibleLabel="Toggle button group";this.disabled=false;this.fullWidth=false;this.loading=false;this.monochrome=false;this.outline=true;this.selectMethod="manual";this.selectType="single";this.size="medium";this.theme="inherit";this.tooltipPlacement="bottom";this.variant="default";this.keyListener=t=>{this.lastKeyPressed={key:t.key,shift:t.shiftKey}};this.handleHostFocus=({target:t,relatedTarget:e})=>{var o;if(this.disabled){t===null||t===void 0?void 0:t.blur();return}if(this.loading)return;const i=t;const n=e;const r=Array.from((i===null||i===void 0?void 0:i.querySelectorAll("ic-toggle-button"))||[]);const s=r.every((t=>!t.checked));const{shift:l}=this.lastKeyPressed;if((s||this.selectType!=="single")&&!l||s&&l&&(n===null||n===void 0?void 0:n.tagName)==a){(o=r[0])===null||o===void 0?void 0:o.focus()}else if(!l||(n===null||n===void 0?void 0:n.tagName)==a){r.filter((t=>t.checked))[0].focus()}};this.handleKeyDown=({key:t})=>{if(t!=="ArrowDown"&&t!=="ArrowRight"&&t!=="ArrowLeft"&&t!=="ArrowUp")return;const e=this.getAllToggleButtons();let o;if(this.externallySetActiveToggle){o=e[this.getNextItemToSelect(e.indexOf(e.filter((t=>t===this.externallySetActiveToggle))[0]),t==="ArrowDown"||t==="ArrowRight")]}else{o=e[this.getNextItemToSelect(e.indexOf(e.filter((t=>t===document.activeElement))[0]),t==="ArrowDown"||t==="ArrowRight")]}if(this.selectMethod==="auto"){o.checked=true;this.selectHandler(new CustomEvent("icToggleChecked",{detail:{checked:o.checked}}),o)}else{o.focus()}};this.getNextItemToSelect=(t,e)=>{const o=this.getAllToggleButtons();const i=o.length-1;if(t<1){t=0}let n=e?t+1:t-1;if(n<0){n=i}else if(n>i){n=0}if(o[n].disabled){n=this.getNextItemToSelect(n,e)}return n};this.getAllToggleButtons=()=>Array.from(this.el.querySelectorAll("ic-toggle-button"))}watchDisabledHandler(){this.getAllToggleButtons().forEach((t=>{t.disabled=this.disabled}));r(this.disabled,this.el)}watchFullWidthHandler(){this.getAllToggleButtons().forEach((t=>{t.fullWidth=this.fullWidth}))}watchLoadingHandler(){this.getAllToggleButtons().forEach((t=>{t.loading=this.loading}))}watchMonochromeHandler(){this.getAllToggleButtons().forEach((t=>{t.monochrome=this.monochrome}))}watchOutlineHandler(){this.getAllToggleButtons().forEach((t=>{t.outline=this.outline}))}watchSizeHandler(){this.getAllToggleButtons().forEach((t=>{t.size=this.size}))}watchThemeHandler(){this.getAllToggleButtons().forEach((t=>{t.theme=this.theme}))}watchTooltipPlacementHandler(){this.getAllToggleButtons().forEach((t=>{t.tooltipPlacement=this.tooltipPlacement}))}watchVariantHandler(){this.getAllToggleButtons().forEach((t=>{t.variant=this.variant}))}selectHandler(t,e){const o=this.getAllToggleButtons();let i=t.target;if(e)e.focus();if(this.selectType==="single"){if(!i&&e){i=e}o.forEach((t=>{if(t.id!==i.id&&t.checked){t.checked=false}}));this.icChange.emit({checked:t.detail.checked,selectedOption:i})}else{const t=o.filter((t=>t.checked&&!t.disabled));this.icChange.emit({checked:t.map((t=>t.checked)),toggledOptions:t.map((t=>({toggleButton:t}))),selectedOption:i})}}async setActiveToggle(t){this.externallySetActiveToggle=t}componentWillLoad(){if(this.selectType==="multi")this.selectMethod="manual";document.addEventListener("keydown",this.keyListener);r(this.disabled,this.el)}componentDidLoad(){this.getAllToggleButtons().forEach(((t,e)=>{var o,i,n;const r=(n=(i=(o=t.shadowRoot)===null||o===void 0?void 0:o.querySelector("ic-button"))===null||i===void 0?void 0:i.shadowRoot)===null||n===void 0?void 0:n.querySelector("button");if(r){const t=r.getAttribute("aria-label");const e=t?`${t}, `:"";r.setAttribute("aria-label",`${e}${this.accessibleLabel}`)}t.id=e.toString();t.tabIndex=-1;t.addEventListener("keydown",(t=>{this.handleKeyDown(t)}));t.classList.add("expand-toggle-group-child")}))}disconnectedCallback(){document===null||document===void 0?void 0:document.removeEventListener("keydown",this.keyListener)}render(){const{accessibleLabel:t,disabled:e,fullWidth:n,loading:r,monochrome:s,outline:l,theme:a}=this;return o(i,{key:"d166c6c17f134bde60a09a1a2bf80cb1681e4c19",role:"group","aria-label":t,tabindex:e?-1:0,class:{"ic-toggle-button-group-disabled":e,"ic-toggle-button-group-full-width":n,"ic-toggle-button-group-loading":r,"ic-toggle-button-group-monochrome":s,"ic-toggle-button-group-hide-outline":!l,[`ic-theme-${a}`]:a!=="inherit"},onFocus:this.handleHostFocus},o("slot",{key:"1f20b0c477f837e482fc15bf6632e56c82e5c825"}))}get el(){return n(this)}static get watchers(){return{disabled:["watchDisabledHandler"],fullWidth:["watchFullWidthHandler"],loading:["watchLoadingHandler"],monochrome:["watchMonochromeHandler"],outline:["watchOutlineHandler"],size:["watchSizeHandler"],theme:["watchThemeHandler"],tooltipPlacement:["watchTooltipPlacementHandler"],variant:["watchVariantHandler"]}}};d.style=l;export{d as ic_toggle_button_group};
|
|
2
|
-
//# sourceMappingURL=p-44aaf454.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["icToggleButtonGroupCss","IcToggleButtonGroupStyle0","TOGGLE_GROUP","ToggleButtonGroup","constructor","hostRef","this","lastKeyPressed","key","shift","externallySetActiveToggle","accessibleLabel","disabled","fullWidth","loading","monochrome","outline","selectMethod","selectType","size","theme","tooltipPlacement","variant","keyListener","ev","shiftKey","handleHostFocus","target","relatedTarget","blur","el","relEl","toggleButtons","Array","from","querySelectorAll","noToggleButtonsChecked","every","checked","tagName","_a","focus","filter","handleKeyDown","toggleButtonOptions","getAllToggleButtons","targetToggle","getNextItemToSelect","indexOf","document","activeElement","selectHandler","CustomEvent","detail","currentItem","movingDown","numToggles","length","nextItem","watchDisabledHandler","forEach","removeDisabledFalse","watchFullWidthHandler","watchLoadingHandler","watchMonochromeHandler","watchOutlineHandler","watchSizeHandler","watchThemeHandler","watchTooltipPlacementHandler","watchVariantHandler","tabTarget","allToggles","clickedToggle","id","icChange","emit","selectedOption","toggledOptions","map","opt","toggleButton","setActiveToggle","toggle","componentWillLoad","addEventListener","componentDidLoad","i","btn","_c","_b","shadowRoot","querySelector","btnAriaLabel","getAttribute","aria","setAttribute","toString","tabIndex","classList","add","disconnectedCallback","removeEventListener","render","h","Host","role","tabindex","class","onFocus"],"sources":["src/components/ic-toggle-button-group/ic-toggle-button-group.css?tag=ic-toggle-button-group&encapsulation=shadow","src/components/ic-toggle-button-group/ic-toggle-button-group.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/* PARENT HOST */\n\n:root {\n display: block;\n}\n\n:host {\n display: flex;\n flex-direction: row;\n width: fit-content;\n min-width: min-content;\n border: var(--ic-border-width) solid var(--ic-toggle-button-unselected-border);\n border-radius: var(--ic-border-radius);\n}\n\n:host(.ic-toggle-button-group-full-width) {\n width: 100%;\n max-width: 100%;\n}\n\n:host(.ic-toggle-button-group-loading) {\n min-width: max-content;\n}\n\n:host(:focus) {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n transition: var(--ic-transition-duration-fast);\n outline: none;\n}\n\n/* CHILDREN SLOTTED */\n\n::slotted(ic-toggle-button) {\n flex-grow: 1;\n width: min-content;\n\n --toggle-button-border: none !important;\n --toggle-button-border-hover: none !important;\n --toggle-button-border-active: none !important;\n}\n\n::slotted(ic-toggle-button:not(:last-of-type)) {\n border-right: var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border);\n}\n\n/* DISABLED */\n:host(.ic-toggle-button-group-disabled) {\n border: var(--ic-space-1px) dashed\n var(--ic-toggle-button-unselected-border-disabled);\n pointer-events: none;\n}\n\n:host(.ic-toggle-button-group-disabled)\n ::slotted(ic-toggle-button:not(:last-of-type)) {\n border-right: var(--ic-space-1px) dashed\n var(--ic-toggle-button-unselected-border-disabled);\n}\n\n:host(.ic-toggle-button-group-monochrome) {\n border: var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-monochrome);\n}\n\n:host(.ic-toggle-button-group-monochrome)\n ::slotted(ic-toggle-button:not(:last-of-type)) {\n border-right: var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-monochrome);\n}\n\n:host(.ic-toggle-button-group-disabled.ic-toggle-button-group-monochrome) {\n border: var(--ic-border-width) dashed\n var(--ic-toggle-button-unselected-border-disabled-monochrome);\n}\n\n:host(.ic-toggle-button-group-disabled.ic-toggle-button-group-monochrome)\n ::slotted(ic-toggle-button:not(:last-of-type)) {\n border-right: var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-disabled-monochrome);\n}\n\n:host(.ic-toggle-button-group-hide-outline) {\n --ic-toggle-button-unselected-border: transparent;\n --ic-toggle-button-unselected-border-disabled: transparent;\n --ic-toggle-button-unselected-border-monochrome: transparent;\n --ic-toggle-button-unselected-border-disabled-monochrome: transparent;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Listen,\n Element,\n Event,\n EventEmitter,\n State,\n Watch,\n Method,\n} from \"@stencil/core\";\nimport {\n IcSizes,\n IcSelectTypes,\n IcSelectMethodTypes,\n IcThemeMode,\n IcButtonTooltipPlacement,\n IcIconPlacementOptions,\n} from \"../../utils/types\";\nimport { IcChangeEventDetail } from \"./ic-toggle-button-group.types\";\nimport { removeDisabledFalse } from \"../../utils/helpers\";\n\ninterface lastKey {\n key: string | null;\n shift: boolean;\n}\n\nconst TOGGLE_GROUP = \"IC-TOGGLE-BUTTON-GROUP\";\n\n@Component({\n tag: \"ic-toggle-button-group\",\n styleUrl: \"ic-toggle-button-group.css\",\n shadow: true,\n})\nexport class ToggleButtonGroup {\n @Element() el: HTMLIcToggleButtonGroupElement;\n\n @State() lastKeyPressed: lastKey = {\n key: null,\n shift: false,\n };\n @State() externallySetActiveToggle: HTMLIcToggleButtonElement | null = null;\n\n /**\n * The accessible label of the toggle button group component to provide context for screen reader users.\n */\n @Prop() accessibleLabel = \"Toggle button group\";\n\n /**\n * If `true`, the toggle button group will be set to the disabled state.\n */\n @Prop() disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n this.getAllToggleButtons().forEach((el) => {\n el.disabled = this.disabled;\n });\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the toggle button group will fill the width of the container.\n */\n @Prop() fullWidth = false;\n @Watch(\"fullWidth\")\n watchFullWidthHandler(): void {\n this.getAllToggleButtons().forEach((el) => {\n el.fullWidth = this.fullWidth;\n });\n }\n\n /**\n * The placement of the icons in relation to the toggle button labels.\n */\n @Prop() iconPlacement?: IcIconPlacementOptions;\n\n /**\n * If `true`, the toggle button group will be in loading state.\n */\n @Prop() loading = false;\n @Watch(\"loading\")\n watchLoadingHandler(): void {\n this.getAllToggleButtons().forEach((el) => {\n el.loading = this.loading;\n });\n }\n\n /**\n * If `true`, the toggle button group will display as black in the light theme, and white in dark theme.\n */\n @Prop() monochrome = false;\n @Watch(\"monochrome\")\n watchMonochromeHandler(): void {\n this.getAllToggleButtons().forEach((el) => {\n el.monochrome = this.monochrome;\n });\n }\n\n /**\n * If `true`, the toggle button group will display with an outline.\n */\n @Prop() outline = true;\n @Watch(\"outline\")\n watchOutlineHandler(): void {\n this.getAllToggleButtons().forEach((el) => {\n el.outline = this.outline;\n });\n }\n\n /**\n * If `auto`, controls are toggled automatically when navigated to. If `manual`, the controls must be actioned to change their toggled state. The value of this prop is ignored if `selectType` is set to`multi`.\n */\n @Prop({ mutable: true }) selectMethod: IcSelectMethodTypes = \"manual\";\n\n /**\n * Sets whether single or multiple options can be toggled. If `multi`, then the `selectMethod` is always `manual`.\n */\n @Prop() selectType: IcSelectTypes = \"single\";\n\n /**\n * The size of the toggle buttons to be displayed. This does not affect the font size of the accessible label.\n */\n @Prop() size: IcSizes = \"medium\";\n @Watch(\"size\")\n watchSizeHandler(): void {\n this.getAllToggleButtons().forEach((el) => {\n el.size = this.size;\n });\n }\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 @Watch(\"theme\")\n watchThemeHandler(): void {\n this.getAllToggleButtons().forEach((el) => {\n el.theme = this.theme;\n });\n }\n\n /**\n * The position of the tooltip in relation to the toggle buttons.\n */\n @Prop() tooltipPlacement: IcButtonTooltipPlacement = \"bottom\";\n @Watch(\"tooltipPlacement\")\n watchTooltipPlacementHandler(): void {\n this.getAllToggleButtons().forEach((el) => {\n el.tooltipPlacement = this.tooltipPlacement;\n });\n }\n\n /**\n * The variant of the toggle button.\n */\n @Prop({ reflect: true }) variant: \"default\" | \"icon\" = \"default\";\n @Watch(\"variant\")\n watchVariantHandler(): void {\n this.getAllToggleButtons().forEach((el) => {\n el.variant = this.variant;\n });\n }\n\n /**\n * Emitted when a toggle button is selected.\n */\n @Event() icChange: EventEmitter<IcChangeEventDetail>;\n\n @Listen(\"icToggleChecked\")\n selectHandler(ev: CustomEvent, tabTarget?: HTMLIcToggleButtonElement): void {\n const allToggles = this.getAllToggleButtons();\n let clickedToggle = ev.target as HTMLIcToggleButtonElement;\n\n if (tabTarget) tabTarget.focus(); // tabTarget used in proxySelectHandler\n\n if (this.selectType === \"single\") {\n if (!clickedToggle && tabTarget) {\n clickedToggle = tabTarget;\n }\n allToggles.forEach((el) => {\n if (el.id !== clickedToggle.id && el.checked) {\n el.checked = false;\n }\n });\n\n this.icChange.emit({\n checked: ev.detail.checked,\n selectedOption: clickedToggle,\n });\n } else {\n const toggledOptions = allToggles.filter(\n (el) => el.checked && !el.disabled\n );\n\n this.icChange.emit({\n checked: toggledOptions.map((opt) => opt.checked),\n toggledOptions: toggledOptions.map((opt) => ({\n toggleButton: opt,\n })),\n selectedOption: clickedToggle,\n });\n }\n }\n\n /**\n * @internal Used to enable other components to set the active toggle button when toggle button group is in a shadow dom.\n */\n @Method()\n async setActiveToggle(toggle: HTMLIcToggleButtonElement): Promise<void> {\n this.externallySetActiveToggle = toggle;\n }\n\n componentWillLoad(): void {\n if (this.selectType === \"multi\") this.selectMethod = \"manual\";\n if (this.selectMethod === \"auto\") this.selectType === \"single\";\n document.addEventListener(\"keydown\", this.keyListener);\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n this.getAllToggleButtons().forEach((el, i) => {\n const btn = el.shadowRoot\n ?.querySelector(\"ic-button\")\n ?.shadowRoot?.querySelector(\"button\");\n if (btn) {\n const btnAriaLabel = btn.getAttribute(\"aria-label\");\n const aria = btnAriaLabel ? `${btnAriaLabel}, ` : \"\";\n btn.setAttribute(\"aria-label\", `${aria}${this.accessibleLabel}`);\n }\n\n el.id = i.toString();\n el.tabIndex = -1;\n el.addEventListener(\"keydown\", (ev) => {\n this.handleKeyDown(ev);\n });\n el.classList.add(\"expand-toggle-group-child\");\n });\n }\n\n disconnectedCallback(): void {\n document?.removeEventListener(\"keydown\", this.keyListener);\n }\n\n private keyListener = (ev: KeyboardEvent) => {\n this.lastKeyPressed = {\n key: ev.key,\n shift: ev.shiftKey,\n };\n };\n\n private handleHostFocus = ({ target, relatedTarget }: FocusEvent) => {\n if (this.disabled) {\n (target as HTMLElement)?.blur();\n return;\n }\n if (this.loading) return;\n const el = target as HTMLIcToggleButtonGroupElement | null;\n const relEl = relatedTarget as HTMLIcToggleButtonElement | null;\n const toggleButtons = Array.from(\n el?.querySelectorAll(\"ic-toggle-button\") || []\n );\n const noToggleButtonsChecked = toggleButtons.every((el) => !el.checked);\n const { shift } = this.lastKeyPressed;\n if (\n ((noToggleButtonsChecked || this.selectType !== \"single\") && !shift) ||\n (noToggleButtonsChecked && shift && relEl?.tagName == TOGGLE_GROUP)\n ) {\n toggleButtons[0]?.focus();\n } else if (!shift || relEl?.tagName == TOGGLE_GROUP) {\n // if checked is true and selectMethod is \"single\", focus that toggle\n toggleButtons.filter((el) => el.checked)[0].focus();\n }\n };\n\n private handleKeyDown = ({ key }: KeyboardEvent) => {\n if (\n key !== \"ArrowDown\" &&\n key !== \"ArrowRight\" &&\n key !== \"ArrowLeft\" &&\n key !== \"ArrowUp\"\n )\n return;\n\n const toggleButtonOptions = this.getAllToggleButtons();\n let targetToggle: HTMLIcToggleButtonElement;\n if (this.externallySetActiveToggle) {\n targetToggle =\n toggleButtonOptions[\n this.getNextItemToSelect(\n toggleButtonOptions.indexOf(\n toggleButtonOptions.filter(\n (el) => el === this.externallySetActiveToggle\n )[0]\n ),\n key === \"ArrowDown\" || key === \"ArrowRight\"\n )\n ];\n } else {\n targetToggle =\n toggleButtonOptions[\n this.getNextItemToSelect(\n toggleButtonOptions.indexOf(\n toggleButtonOptions.filter(\n (el) => el === document.activeElement\n )[0]\n ),\n key === \"ArrowDown\" || key === \"ArrowRight\"\n )\n ];\n }\n\n if (this.selectMethod === \"auto\") {\n // trigger selectHandler when unable to add 'target'\n targetToggle.checked = true;\n this.selectHandler(\n new CustomEvent(\"icToggleChecked\", {\n detail: {\n checked: targetToggle.checked,\n },\n }),\n targetToggle\n );\n } else {\n targetToggle.focus();\n }\n };\n\n private getNextItemToSelect = (currentItem: number, movingDown: boolean) => {\n const toggleButtonOptions = this.getAllToggleButtons();\n const numToggles = toggleButtonOptions.length - 1;\n\n if (currentItem < 1) {\n currentItem = 0;\n }\n\n let nextItem = movingDown ? currentItem + 1 : currentItem - 1;\n if (nextItem < 0) {\n nextItem = numToggles;\n } else if (nextItem > numToggles) {\n nextItem = 0;\n }\n\n if (toggleButtonOptions[nextItem].disabled) {\n nextItem = this.getNextItemToSelect(nextItem, movingDown);\n }\n\n return nextItem;\n };\n\n private getAllToggleButtons = () =>\n Array.from(this.el.querySelectorAll(\"ic-toggle-button\"));\n\n render() {\n const {\n accessibleLabel,\n disabled,\n fullWidth,\n loading,\n monochrome,\n outline,\n theme,\n } = this;\n\n return (\n <Host\n role=\"group\"\n aria-label={accessibleLabel}\n tabindex={disabled ? -1 : 0}\n class={{\n \"ic-toggle-button-group-disabled\": disabled,\n \"ic-toggle-button-group-full-width\": fullWidth,\n \"ic-toggle-button-group-loading\": loading,\n \"ic-toggle-button-group-monochrome\": monochrome,\n \"ic-toggle-button-group-hide-outline\": !outline,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n onFocus={this.handleHostFocus}\n >\n <slot></slot>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["icFooterLinkCss","IcFooterLinkStyle0","FooterLink","constructor","hostRef","this","deviceSize","DEVICE_SIZES","XL","footerConfig","small","grouped","foregroundColor","getBrandForegroundAppearance","download","componentWillLoad","inferConfig","el","footerResizeHandler","footerBrandChangeHandler","ev","detail","mode","e","parentElement","classList","contains","render","href","hreflang","referrerpolicy","rel","target","isLogoLink","closest","h","Host","key","class","role","undefined"],"sources":["src/components/ic-footer-link/ic-footer-link.css?tag=ic-footer-link&encapsulation=shadow","src/components/ic-footer-link/ic-footer-link.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host(.footer-link-ungrouped-sparse) {\n --footer-link-margin-left: 0;\n --footer-link-margin-right: 2.5rem;\n --footer-link-margin-bottom: 0;\n}\n\n:host(.footer-link-ungrouped-small) {\n --footer-link-margin-left: 0;\n --footer-link-margin-right: 0;\n --footer-link-margin-bottom: var(--ic-space-md);\n}\n\n:host(.footer-link-grouped-sparse) {\n --footer-link-margin-left: 0;\n --footer-link-margin-right: 0;\n --footer-link-margin-bottom: var(--ic-space-md);\n}\n\n:host(.footer-link-grouped-small) {\n --footer-link-margin-left: var(--ic-space-md);\n --footer-link-margin-right: 0;\n --footer-link-margin-bottom: var(--ic-space-md);\n}\n\n:host(.footer-link) {\n margin-left: var(--footer-link-margin-left);\n margin-right: var(--footer-link-margin-right);\n margin-bottom: var(--footer-link-margin-bottom);\n}\n\n.ic-link-open-in-new-icon {\n vertical-align: middle;\n margin-left: var(--ic-space-xxs);\n}\n\n.ic-link > .ic-link-open-in-new-icon {\n fill: var(--ic-color-hyperlink-default);\n}\n\n.ic-link-open-in-new-icon > svg {\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n fill: currentcolor;\n}\n\n.ic-link:visited > .ic-link-open-in-new-icon {\n fill: var(--ic-color-hyperlink-visited);\n}\n\n.ic-link.light:visited > .ic-link-open-in-new-icon {\n fill: var(--ic-color-hyperlink-contrast-visited);\n}\n\n:host(.breadcrumb-link) .ic-link {\n display: var(--breadcrumb-link-display);\n align-items: var(--breadcrumb-link-align-items);\n gap: var(--breadcrumb-link-gap);\n}\n\n:host(.breadcrumb-link) .ic-link ::slotted(.back-icon) {\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n}\n\n:host(.breadcrumb-link.current-page) a,\n:host(.breadcrumb-link.current-page) ::slotted(a) {\n font-weight: normal;\n color: inherit;\n text-decoration: none;\n display: flex;\n align-items: center;\n}\n\n:host(.breadcrumb-link.current-page) .ic-link,\n:host(.breadcrumb-link.current-page) ::slotted(a:focus) {\n outline: var(--ic-hc-focus-outline);\n text-decoration: none;\n}\n\n:host(.breadcrumb-link.current-page) .ic-link:visited {\n color: var(--ic-color-text-primary);\n}\n\n:host(.footer-link-light) ::part(link),\n:host(.footer-link-dark) ::part(link) {\n color: var(--ic-footer-link);\n}\n\n:host(.footer-link-light) ::slotted(svg),\n:host(.footer-link-dark) ::slotted(svg) {\n fill: var(--ic-footer-logo);\n}\n\n:host(.footer-logo-link) {\n transition: var(--ic-easing-transition-fast);\n}\n\n:host(.footer-logo-link:hover) {\n background-color: var(--ic-footer-hover);\n}\n\n:host(.footer-logo-link:active) {\n background-color: var(--ic-footer-pressed);\n}\n\n:host(.footer-logo-link:focus) {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n outline: var(--ic-hc-focus-outline);\n}\n\n@media (forced-colors: active) {\n :host(.footer-link-light) ::slotted(svg),\n :host(.footer-link-dark) ::slotted(svg) {\n fill: currentcolor;\n }\n}\n","import {\n Component,\n Element,\n Host,\n Listen,\n Prop,\n h,\n State,\n} from \"@stencil/core\";\nimport {\n DEVICE_SIZES,\n getBrandForegroundAppearance,\n} from \"../../utils/helpers\";\nimport { IcBrand, IcBrandForeground } from \"../../utils/types\";\n\ntype FooterConfig = { small: boolean; grouped: boolean };\n\n@Component({\n tag: \"ic-footer-link\",\n styleUrl: \"ic-footer-link.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class FooterLink {\n @Element() el: HTMLIcFooterLinkElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() footerConfig: FooterConfig = { small: false, grouped: false };\n @State() foregroundColor: IcBrandForeground = getBrandForegroundAppearance();\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.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: 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 componentWillLoad(): void {\n this.footerConfig = this.inferConfig(this.el);\n }\n\n @Listen(\"footerResized\", { target: \"document\" })\n footerResizeHandler(): void {\n this.footerConfig = this.inferConfig(this.el);\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n footerBrandChangeHandler(ev: CustomEvent<IcBrand>): void {\n this.foregroundColor = ev.detail.mode;\n }\n\n private inferConfig(e: HTMLElement): FooterConfig {\n if (e.parentElement !== null) {\n if (e.parentElement.classList.contains(\"ic-footer\")) {\n return {\n small: e.parentElement.classList.contains(\"ic-footer-small\"),\n grouped: e.parentElement.classList.contains(\"ic-footer-grouped\"),\n };\n } else {\n return this.inferConfig(e.parentElement);\n }\n } else {\n return { small: false, grouped: false };\n }\n }\n\n render() {\n const {\n footerConfig,\n href,\n hreflang,\n referrerpolicy,\n rel,\n target,\n download,\n } = this;\n const { small, grouped } = footerConfig;\n\n const isLogoLink = !!this.el.closest(\"div[slot='logo']\");\n\n return (\n <Host\n class={{\n \"footer-link\": true,\n [`footer-link-${grouped ? \"grouped\" : \"ungrouped\"}-${\n small ? \"small\" : \"sparse\"\n }`]: true,\n [`footer-link-${this.foregroundColor}`]: true,\n \"footer-logo-link\": isLogoLink,\n }}\n role=\"listitem\"\n >\n <ic-link\n class=\"footer-link\"\n href={href}\n hreflang={hreflang}\n referrerpolicy={referrerpolicy}\n rel={rel}\n download={download !== false ? download : undefined}\n target={target}\n >\n <slot />\n </ic-link>\n </Host>\n );\n }\n}\n"],"mappings":"4HAAA,MAAMA,EAAkB,g0JACxB,MAAAC,EAAeD,E,MCuBFE,EAAU,MAPvB,WAAAC,CAAAC,G,UAUWC,KAAAC,WAAqBC,EAAaC,GAClCH,KAAAI,aAA6B,CAAEC,MAAO,MAAOC,QAAS,OACtDN,KAAAO,gBAAqCC,IAKtCR,KAAAS,SAA8B,K,CA2BtC,iBAAAC,GACEV,KAAKI,aAAeJ,KAAKW,YAAYX,KAAKY,G,CAI5C,mBAAAC,GACEb,KAAKI,aAAeJ,KAAKW,YAAYX,KAAKY,G,CAI5C,wBAAAE,CAAyBC,GACvBf,KAAKO,gBAAkBQ,EAAGC,OAAOC,I,CAG3B,WAAAN,CAAYO,GAClB,GAAIA,EAAEC,gBAAkB,KAAM,CAC5B,GAAID,EAAEC,cAAcC,UAAUC,SAAS,aAAc,CACnD,MAAO,CACLhB,MAAOa,EAAEC,cAAcC,UAAUC,SAAS,mBAC1Cf,QAASY,EAAEC,cAAcC,UAAUC,SAAS,qB,KAEzC,CACL,OAAOrB,KAAKW,YAAYO,EAAEC,c,MAEvB,CACL,MAAO,CAAEd,MAAO,MAAOC,QAAS,M,EAIpC,MAAAgB,GACE,MAAMlB,aACJA,EAAYmB,KACZA,EAAIC,SACJA,EAAQC,eACRA,EAAcC,IACdA,EAAGC,OACHA,EAAMlB,SACNA,GACET,KACJ,MAAMK,MAAEA,EAAKC,QAAEA,GAAYF,EAE3B,MAAMwB,IAAe5B,KAAKY,GAAGiB,QAAQ,oBAErC,OACEC,EAACC,EAAI,CAAAC,IAAA,2CACHC,MAAO,CACL,cAAe,KACf,CAAC,eAAe3B,EAAU,UAAY,eACpCD,EAAQ,QAAU,YACf,KACL,CAAC,eAAeL,KAAKO,mBAAoB,KACzC,mBAAoBqB,GAEtBM,KAAK,YAELJ,EAAA,WAAAE,IAAA,2CACEC,MAAM,cACNV,KAAMA,EACNC,SAAUA,EACVC,eAAgBA,EAChBC,IAAKA,EACLjB,SAAUA,IAAa,MAAQA,EAAW0B,UAC1CR,OAAQA,GAERG,EAAA,QAAAE,IAAA,8C","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["icButtonCss","IcButtonStyle0","buttonIds","Button","constructor","hostRef","this","buttonIdNum","hasTooltip","inheritedAttributes","describedbyEl","mutationObserver","hostMutationObserver","ariaLabel","title","accept","disabled","disableTooltip","download","dropdown","dropdownExpanded","fileUpload","fileInputName","fullWidth","loading","monochrome","multiple","size","theme","tooltipFixedPositioning","tooltipPlacement","transparentBackground","type","variant","getSlottedIcon","position","el","querySelector","handleClick","hasRouterSlot","form","closest","document","handleHiddenFormButtonClick","handleKeyDown","ev","key","closeButtonTooltip","onFocus","icFocus","emit","onBlur","icBlur","updateAriaDescribedbyClone","describedbyNode","wrapper","_a","shadowRoot","_b","appendChild","Object","assign","createElement","id","className","firstChild","remove","mutationCallback","cloneNode","hostMutationCallback","mutationList","forceComponentUpdate","forEach","attributeName","attribute","getAttribute","IC_INHERITED_ARIA","includes","forceUpdate","setHasTooltip","isIconVariant","startsWith","arrangeRouterItem","setStyles","element","styles","entries","value","style","setProperty","routerSlot","icTypography","gap","icon","iconSlot","iconWrapper","fill","display","marginPlacement","append","badge","label","textContent","trim","watchDescribedbyNodeHandler","watchDisabledHandler","removeDisabledFalse","watchVariantHandler","newVariant","disconnectedCallback","disconnect","componentWillUpdate","getBoundingClientRect","width","componentWillLoad","inheritAttributes","restInheritedAttributes","__rest","setAttribute","describedById","componentDidLoad","updateTheme","MutationObserver","observe","characterData","childList","subtree","attributes","componentWillRender","iconEl","handleHostClick","event","renderFileHiddenInput","icFileSelection","selectedFiles","stopImmediatePropagation","brandChangeHandler","detail","mode","setFocus","buttonEl","focus","tooltip","isTooltipVisible","displayTooltip","preventDefault","foregroundColor","getBrandFromContext","IcBrandForegroundEnum","Default","Light","Dark","render","ariaControlsId","ariaOwnsId","formaction","formenctype","formmethod","formnovalidate","formtarget","href","hreflang","referrerpolicy","rel","target","TagType","buttonAttrs","buttonId","undefined","describedby","hasLeftIcon","hasRightIcon","ButtonContent","h","name","class","tabindex","ref","part","Fragment","innerHTML","arrowDropdown","Host","background","isSlotUsed","onClick","onKeyDown","placement","fixedPositioning","silent","icLoadingIndicatorCss","IcLoadingIndicatorStyle0","LOADING_INDICATOR_WIDTHS","large","medium","small","LoadingIndicator","labelList","circularDiameter","circularLineWidth","circularDimensions","x","y","r","clipInnerElement","internalType","description","labelDuration","max","min","getLabel","labelIndex","Promise","interval","setInterval","length","indicatorLabel","getLabelVariant","calculateWidth","outerElement","offsetWidth","window","getComputedStyle","match","parseFloat","parentWidth","_c","parentElement","calculateProportion","progress","minProgress","Math","setLinearDeterminateWidth","innerElement","proportion","classList","add","setInternalType","updateLabel","setCircleDimensions","nextRadius","dashArray","PI","dashOffset","watchPropHandler","handleProgressChange","handleIconSize","setIndicatorDimensions","diameter","clearInterval","innerLabel","role","viewBox","cx","cy","icTooltipCss","IcTooltipStyle0","Tooltip","delayedHideEvents","instantHideEvents","mouseOverTool","persistTooltip","showEvents","disableHover","disableClick","popperProps","show","toolTip","dialogContentArea","popperInstance","createPopper","strategy","modifiers","options","offset","arrow","scroll","resize","boundary","padding","console","warn","hide","removeAttribute","destroy","checkCloseTooltip","setTimeout","mouseEnterTooltip","mouseLeaveTooltip","manageEventListeners","action","method","updateTooltipEvents","watchDisableClickHandler","watchDisableHoverHandler","watchLabelHandler","hasAttribute","update","setExternalPopperProps","props","dialog","getRootNode","host","onComponentRequiredPropUndefined","prop","propName","componentDidRender","typographyEl","maxLines","resolve","isSafari"],"sources":["src/components/ic-button/ic-button.css?tag=ic-button&encapsulation=shadow","src/components/ic-button/ic-button.tsx","src/components/ic-loading-indicator/ic-loading-indicator.css?tag=ic-loading-indicator&encapsulation=shadow","src/components/ic-loading-indicator/ic-loading-indicator.tsx","src/components/ic-tooltip/ic-tooltip.css?tag=ic-tooltip&encapsulation=shadow","src/components/ic-tooltip/ic-tooltip.tsx"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n/**\n* @prop --min-width: Minimum width of the button.\n* @prop --height: The height of the button.\n*/\n\n:host {\n display: inline-block;\n position: relative;\n\n --icon-width: 100%;\n --icon-height: 100%;\n}\n\n.button,\n::slotted(a) {\n font-family: var(--ic-font-body-family);\n text-decoration: none;\n font-weight: 600;\n font-size: 0.875rem;\n transition: var(--ic-easing-transition-fast);\n border-radius: var(--ic-border-radius);\n min-width: var(--min-width, 6.25rem);\n display: inline-flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n background: none;\n border: none;\n box-sizing: border-box;\n white-space: nowrap;\n vertical-align: middle;\n}\n\n:host(.with-badge) .button {\n border-radius: 0.2188rem;\n}\n\n.button:hover,\n::slotted(a:hover) {\n cursor: pointer;\n}\n\n.button:focus,\n::slotted(a:focus) {\n box-shadow: var(--ic-border-focus);\n}\n\n.button:focus-visible,\n::slotted(a:focus-visible) {\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(.ic-button-disabled),\n:host(.ic-button-disabled) .button,\n:host(.ic-button-disabled) ::slotted(a),\n:host(.ic-button-loading),\n:host(.ic-button-loading) .button {\n pointer-events: none;\n}\n\n:host(.top-icon) .button {\n flex-direction: column;\n\n --height: fit-content;\n}\n\n:host(.top-icon) .button .icon-container {\n margin-right: 0;\n}\n\n/* Variants */\n\n/* Primary */\n\n:host(.ic-button-variant-primary) .button,\n:host(.ic-button-variant-icon-primary) .button {\n color: var(--ic-button-primary-text);\n background-color: var(--ic-button-primary-background);\n}\n\n:host(.ic-button-variant-primary:not(.ic-button-disabled)) ::slotted(svg) {\n color: var(--ic-button-primary-icon);\n}\n\n:host(.ic-button-variant-primary) ::slotted(a),\n:host(.ic-button-variant-icon-primary) ::slotted(a) {\n --ic-typography-color: var(--ic-button-primary-text);\n\n color: var(--ic-button-primary-text);\n background-color: var(--ic-button-primary-background) !important;\n}\n\n:host(.ic-button-variant-primary) .button:hover,\n:host(.ic-button-variant-icon-primary) .button:hover {\n background-color: var(--ic-button-primary-background-hover);\n}\n\n:host(.ic-button-variant-primary) ::slotted(a:hover),\n:host(.ic-button-variant-icon-primary) ::slotted(a:hover) {\n background-color: var(--ic-button-primary-background-hover) !important;\n}\n\n:host(.ic-button-variant-primary.ic-button-loading) .button,\n:host(.ic-button-variant-primary) .button:active,\n:host(.ic-button-variant-icon-primary.ic-button-loading) .button,\n:host(.ic-button-variant-icon-primary) .button:active {\n background-color: var(--ic-button-primary-background-pressed);\n\n --button-loading-inner-color: var(--ic-button-primary-text);\n --button-loading-outer-color: var(--ic-button-primary-background-pressed);\n}\n\n:host(.ic-button-variant-primary) ::slotted(a:active),\n:host(.ic-button-variant-icon-primary) ::slotted(a:active) {\n background-color: var(--ic-button-primary-background-pressed) !important;\n}\n\n:host(.ic-button-variant-primary.ic-button-disabled) .button,\n:host(.ic-button-variant-icon-primary.ic-button-disabled) .button {\n background: var(--ic-button-primary-background-disabled);\n color: var(--ic-button-primary-text-disabled);\n}\n\n:host(.ic-button-variant-primary.ic-button-disabled) ::slotted(a),\n:host(.ic-button-variant-icon-primary.ic-button-disabled) ::slotted(a) {\n background: var(--ic-button-primary-background-disabled) !important;\n\n --ic-typography-color: var(--ic-button-primary-text-disabled) !important;\n\n color: var(--ic-button-primary-text-disabled) !important;\n}\n\n/* Primary - monochrome */\n\n:host(.ic-button-variant-primary.monochrome) .button,\n:host(.ic-button-variant-icon-primary.monochrome) .button {\n color: var(--ic-button-primary-text-monochrome);\n background-color: var(--ic-button-primary-background-monochrome);\n}\n\n:host(.ic-button-variant-primary.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-primary.monochrome) ::slotted(a) {\n background-color: var(--ic-button-primary-background-monochrome) !important;\n}\n\n:host(.ic-button-variant-primary.monochrome) .button:hover,\n:host(.ic-button-variant-icon-primary.monochrome) .button:hover {\n background-color: var(--ic-button-primary-background-hover-monochrome);\n}\n\n:host(.ic-button-variant-primary.monochrome) ::slotted(a:hover),\n:host(.ic-button-variant-icon-primary.monochrome) ::slotted(a:hover) {\n background-color: var(\n --ic-button-primary-background-hover-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-primary.ic-button-loading.monochrome) .button,\n:host(.ic-button-variant-primary.monochrome) .button:active,\n:host(.ic-button-variant-icon-primary.ic-button-loading.monochrome) .button,\n:host(.ic-button-variant-icon-primary.monochrome) .button:active {\n background-color: var(--ic-button-primary-background-pressed-monochrome);\n\n --button-loading-inner-color: var(--ic-button-primary-text-monochrome);\n --button-loading-outer-color: var(--ic-button-primary-background-monochrome);\n}\n\n:host(.ic-button-variant-primary.monochrome) ::slotted(a:active),\n:host(.ic-button-variant-icon-primary.monochrome) ::slotted(a:active) {\n background-color: var(\n --ic-button-primary-background-pressed-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-primary.ic-button-disabled.monochrome) .button,\n:host(.ic-button-variant-icon-primary.ic-button-disabled.monochrome) .button {\n background-color: var(--ic-button-primary-background-disabled-monochrome);\n color: var(--ic-button-primary-text-disabled-monochrome);\n}\n\n:host(.ic-button-variant-primary.ic-button-disabled.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-primary.ic-button-disabled.monochrome)\n ::slotted(a) {\n background-color: var(\n --ic-button-primary-background-disabled-monochrome\n ) !important;\n}\n\n/* Secondary */\n\n:host(.ic-button-variant-secondary) .button,\n:host(.ic-button-variant-icon-secondary) .button {\n border: var(--ic-border-width) solid var(--ic-button-secondary-border);\n color: var(--ic-button-secondary-text);\n}\n\n:host(.ic-button-variant-secondary) ::slotted(a),\n:host(.ic-button-variant-icon-secondary) ::slotted(a) {\n border: var(--ic-border-width) solid var(--ic-button-secondary-border) !important;\n color: var(--ic-button-secondary-text) !important;\n\n --ic-typography-color: var(--ic-button-secondary-text) !important;\n}\n\n:host(.ic-button-variant-secondary) .button:hover,\n:host(.ic-button-variant-icon-secondary) .button:hover {\n background-color: var(--ic-button-secondary-background-hover-active);\n border-color: var(--ic-button-secondary-border-hover);\n color: var(--ic-button-secondary-text-hover-active);\n}\n\n:host(.ic-button-variant-secondary) ::slotted(a:hover),\n:host(.ic-button-variant-icon-secondary) ::slotted(a:hover) {\n background-color: var(\n --ic-button-secondary-background-hover-active\n ) !important;\n}\n\n:host(.ic-button-variant-secondary) .button:active,\n:host(.ic-button-variant-icon-secondary) .button:active {\n border-color: var(--ic-button-secondary-border-pressed);\n background-color: var(--ic-button-secondary-background-pressed-active);\n color: var(--ic-button-secondary-text-pressed-active);\n}\n\n:host(.ic-button-variant-secondary) ::slotted(a:active),\n:host(.ic-button-variant-icon-secondary) ::slotted(a:active) {\n background-color: var(\n --ic-button-secondary-background-pressed-active\n ) !important;\n}\n\n:host(.ic-button-variant-secondary.ic-button-loading) .button,\n:host(.ic-button-variant-icon-secondary.ic-button-loading) .button {\n border-color: var(--ic-button-secondary-border-pressed);\n background-color: var(\n --loading-button-background,\n var(--ic-button-secondary-background-pressed-active)\n ) !important;\n color: var(--ic-button-secondary-text-pressed-active);\n\n --button-loading-inner-color: var(--ic-button-secondary-border-pressed);\n --button-loading-outer-color: var(\n --ic-button-secondary-background-pressed-active\n );\n}\n\n:host(.ic-button-variant-secondary.ic-button-disabled) .button,\n:host(.ic-button-variant-icon-secondary.ic-button-disabled) .button {\n border-color: var(--ic-button-secondary-border-disabled);\n color: var(--ic-button-secondary-text-disabled);\n background: none;\n}\n\n:host(.ic-button-variant-secondary.ic-button-disabled) ::slotted(a),\n:host(.ic-button-variant-icon-secondary.ic-button-disabled) ::slotted(a) {\n background: none !important;\n}\n\n/* Secondary - non-transparent background */\n\n:host(.ic-button-variant-secondary.background) .button,\n:host(.ic-button-variant-icon-secondary.background) .button {\n background-color: var(--ic-button-secondary-background);\n}\n\n:host(.ic-button-variant-secondary.background) ::slotted(a),\n:host(.ic-button-variant-icon-secondary.background) ::slotted(a) {\n background-color: var(--ic-button-secondary-background) !important;\n}\n\n:host(.ic-button-variant-secondary.background) .button:hover,\n:host(.ic-button-variant-icon-secondary.background) .button:hover {\n background-image: var(--ic-button-secondary-background-non-transparent-hover);\n}\n\n:host(.ic-button-variant-secondary.background) ::slotted(a:hover),\n:host(.ic-button-variant-icon-secondary.background) ::slotted(a:hover) {\n background-image: var(\n --ic-button-secondary-background-non-transparent-hover\n ) !important;\n}\n\n:host(.ic-button-variant-secondary.background) .button:active,\n:host(.ic-button-variant-icon-secondary.background) .button:active {\n background-image: var(\n --ic-button-secondary-background-non-transparent-active\n );\n}\n\n:host(.ic-button-variant-secondary.background) ::slotted(a:active),\n:host(.ic-button-variant-icon-secondary.background) ::slotted(a:active) {\n background-image: var(\n --ic-button-secondary-background-non-transparent-active\n ) !important;\n}\n\n/* Secondary - monochrome */\n\n:host(.ic-button-variant-secondary.monochrome) .button,\n:host(.ic-button-variant-icon-secondary.monochrome) .button {\n background-color: none;\n border: var(--ic-border-width) solid\n var(--ic-button-secondary-border-monochrome);\n color: var(--ic-button-secondary-text-monochrome);\n}\n\n:host(.ic-button-variant-secondary.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-secondary.monochrome) ::slotted(a) {\n background-color: none !important;\n}\n\n:host(.ic-button-variant-secondary.monochrome) .button:hover,\n:host(.ic-button-variant-icon-secondary.monochrome) .button:hover {\n background-color: var(--ic-button-secondary-background-hover-monochrome);\n border-color: var(--ic-button-secondary-border-hover-monochrome);\n color: var(--ic-button-secondary-text-hover-monochrome);\n}\n\n:host(.ic-button-variant-secondary.monochrome) ::slotted(a:hover),\n:host(.ic-button-variant-icon-secondary.monochrome) ::slotted(a:hover) {\n background-color: var(\n --ic-button-secondary-background-hover-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-secondary.monochrome) .button:active,\n:host(.ic-button-variant-icon-secondary.monochrome) .button:active {\n background-color: var(--ic-button-secondary-background-pressed-monochrome);\n border-color: var(--ic-button-secondary-border-pressed-monochrome);\n color: var(--ic-button-secondary-text-pressed-monochrome);\n}\n\n:host(.ic-button-variant-secondary.monochrome) ::slotted(a:active),\n:host(.ic-button-variant-icon-secondary.monochrome) ::slotted(a:active) {\n background-color: var(\n --ic-button-secondary-background-pressed-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-secondary.ic-button-loading.monochrome) .button,\n:host(.ic-button-variant-icon-secondary.ic-button-loading.monochrome) .button {\n background-color: var(\n --ic-button-secondary-background-pressed-monochrome\n ) !important;\n border-color: var(--ic-button-secondary-border-pressed-monochrome);\n color: var(--ic-button-secondary-text-pressed-monochrome);\n\n --button-loading-inner-color: var(\n --ic-button-secondary-text-pressed-monochrome\n );\n --button-loading-outer-color: var(\n --ic-button-secondary-background-pressed-monochrome\n );\n}\n\n:host(.ic-button-variant-secondary.ic-button-disabled.monochrome) .button,\n:host(.ic-button-variant-icon-secondary.ic-button-disabled.monochrome) .button {\n background: none;\n border-color: var(--ic-button-secondary-border-disabled-monochrome);\n color: var(--ic-button-secondary-text-disabled-monochrome);\n}\n\n:host(.ic-button-variant-secondary.ic-button-disabled.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-secondary.ic-button-disabled.monochrome)\n ::slotted(a) {\n background: none !important;\n}\n\n/* Secondary - non-transparent background - monochrome */\n\n:host(.ic-button-variant-secondary.background.monochrome) .button,\n:host(.ic-button-variant-icon-secondary.background.monochrome) .button {\n background-color: var(--ic-button-secondary-background-monochrome);\n}\n\n:host(.ic-button-variant-secondary.background.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-secondary.background.monochrome) ::slotted(a) {\n background-color: var(--ic-button-secondary-background-monochrome) !important;\n}\n\n:host(.ic-button-variant-secondary.background.monochrome) .button:hover,\n:host(.ic-button-variant-icon-secondary.background.monochrome) .button:hover {\n background-image: var(\n --ic-button-secondary-background-non-transparent-monochrome-hover\n );\n}\n\n:host(.ic-button-variant-secondary.background.monochrome) ::slotted(a:hover),\n:host(.ic-button-variant-icon-secondary.background.monochrome)\n ::slotted(a:hover) {\n background-image: var(\n --ic-button-secondary-background-non-transparent-monochrome-hover\n ) !important;\n}\n\n:host(.ic-button-variant-secondary.background.monochrome) .button:active,\n:host(.ic-button-variant-icon-secondary.background.monochrome) .button:active {\n background-image: var(\n --ic-button-secondary-background-non-transparent-monochrome-active\n );\n}\n\n:host(.ic-button-variant-secondary.background.monochrome) ::slotted(a:active),\n:host(.ic-button-variant-icon-secondary.background.monochrome)\n ::slotted(a:active) {\n background-image: var(\n --ic-button-secondary-background-non-transparent-monochrome-active\n ) !important;\n}\n\n/* Tertiary */\n\n:host(.ic-button-variant-tertiary) .button,\n:host(.ic-button-variant-icon-tertiary) .button,\n:host(.ic-button-variant-tertiary) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary) ::slotted(a) {\n color: var(--ic-button-tertiary-text-active);\n\n --ic-typography-color: var(--ic-button-tertiary-text-active);\n}\n\n:host(.ic-button-variant-tertiary) .button:hover,\n:host(.ic-button-variant-icon-tertiary) .button:hover {\n background-color: var(--ic-button-tertiary-background-hover-active);\n color: var(--ic-button-tertiary-text-hover-active);\n}\n\n:host(.ic-button-variant-tertiary) ::slotted(a:hover),\n:host(.ic-button-variant-icon-tertiary) ::slotted(a:hover) {\n background-color: var(\n --ic-button-tertiary-background-hover-active\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary) .button:active,\n:host(.ic-button-variant-tertiary.ic-button-loading) .button,\n:host(.ic-button-variant-icon-tertiary) .button:active,\n:host(.ic-button-variant-icon-tertiary.ic-button-loading) .button {\n background-color: var(--ic-button-tertiary-background-pressed-active);\n color: var(--ic-button-tertiary-text-pressed-active);\n\n --button-loading-inner-color: var(--ic-button-tertiary-text-pressed-active);\n --button-loading-outer-color: var(--ic-button-tertiary-background-pressed);\n}\n\n:host(.ic-button-variant-tertiary) ::slotted(a:active),\n:host(.ic-button-variant-icon-tertiary) ::slotted(a:active) {\n background-color: var(\n --ic-button-tertiary-background-pressed-active\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary.ic-button-disabled) .button,\n:host(.ic-button-variant-icon-tertiary.ic-button-disabled) .button {\n color: var(--ic-button-tertiary-text-disabled);\n background: none;\n}\n\n:host(.ic-button-variant-tertiary.ic-button-disabled) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary.ic-button-disabled) ::slotted(a) {\n background: none !important;\n}\n\n/* Tertiary - non-transparent background */\n\n:host(.ic-button-variant-tertiary.background) .button,\n:host(.ic-button-variant-icon-tertiary.background) .button {\n background-color: var(--ic-button-tertiary-background);\n}\n\n:host(.ic-button-variant-tertiary.background) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary.background) ::slotted(a) {\n background-color: var(--ic-button-tertiary-background) !important;\n}\n\n:host(.ic-button-variant-tertiary.background) .button:hover,\n:host(.ic-button-variant-icon-tertiary.background) .button:hover {\n background-image: var(--ic-button-tertiary-background-non-transparent-hover);\n}\n\n:host(.ic-button-variant-tertiary.background) ::slotted(a:hover),\n:host(.ic-button-variant-icon-tertiary.background) ::slotted(a:hover) {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-hover\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary.background) .button:active,\n:host(.ic-button-variant-icon-tertiary.background) .button:active {\n background-image: var(--ic-button-tertiary-background-non-transparent-active);\n}\n\n:host(.ic-button-variant-tertiary.background) ::slotted(a:active),\n:host(.ic-button-variant-icon-tertiary.background) ::slotted(a:active) {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-active\n ) !important;\n}\n\n/* Tertiary - monochrome */\n\n:host(.ic-button-variant-tertiary.monochrome) .button,\n:host(.ic-button-variant-tertiary.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary.monochrome) .button,\n:host(.ic-button-variant-icon-tertiary.monochrome) ::slotted(a) {\n color: var(--ic-button-tertiary-text-monochrome);\n\n --ic-typography-color: var(--ic-button-tertiary-text-monochrome);\n}\n\n:host(.ic-button-variant-tertiary.monochrome) .button:hover,\n:host(.ic-button-variant-icon-tertiary.monochrome) .button:hover {\n background-color: var(--ic-button-tertiary-background-hover-monochrome);\n color: var(--ic-button-tertiary-text-hover-monochrome);\n}\n\n:host(.ic-button-variant-tertiary.monochrome) ::slotted(a:hover),\n:host(.ic-button-variant-icon-tertiary.monochrome) ::slotted(a:hover) {\n background-color: var(\n --ic-button-tertiary-background-hover-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary.monochrome) .button:active,\n:host(.ic-button-variant-tertiary.ic-button-loading.monochrome) .button,\n:host(.ic-button-variant-icon-tertiary.monochrome) .button:active,\n:host(.ic-button-variant-icon-tertiary.ic-button-loading.monochrome) .button {\n background-color: var(--ic-button-tertiary-background-pressed-monochrome);\n color: var(--ic-button-tertiary-text-pressed-monochrome);\n\n --button-loading-inner-color: var(\n --ic-button-tertiary-text-pressed-monochrome\n );\n --button-loading-outer-color: var(\n --ic-button-tertiary-background-pressed-monochrome\n );\n}\n\n:host(.ic-button-variant-tertiary.monochrome) ::slotted(a:active),\n:host(.ic-button-variant-icon-tertiary.monochrome) ::slotted(a:active) {\n background-color: var(\n --ic-button-tertiary-background-pressed-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary.ic-button-disabled.monochrome) .button,\n:host(.ic-button-variant-icon-tertiary.ic-button-disabled.monochrome) .button {\n color: var(--ic-button-tertiary-text-disabled-monochrome);\n background: none;\n}\n\n:host(.ic-button-variant-tertiary.ic-button-disabled.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary.ic-button-disabled.monochrome)\n ::slotted(a) {\n background: none !important;\n}\n\n/* Tertiary - non-transparent background - monochrome */\n\n:host(.ic-button-variant-tertiary.background.monochrome) .button,\n:host(.ic-button-variant-icon-tertiary.background.monochrome) .button {\n background-color: var(--ic-button-tertiary-background-monochrome);\n}\n\n:host(.ic-button-variant-tertiary.background.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary.background.monochrome) ::slotted(a) {\n background-color: var(--ic-button-tertiary-background-monochrome) !important;\n}\n\n:host(.ic-button-variant-tertiary.background.monochrome) .button:hover,\n:host(.ic-button-variant-icon-tertiary.background.monochrome) .button:hover {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-monochrome-hover\n );\n}\n\n:host(.ic-button-variant-tertiary.background.monochrome) ::slotted(a:hover),\n:host(.ic-button-variant-icon-tertiary.background.monochrome)\n ::slotted(a:hover) {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-monochrome-hover\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary.background.monochrome) .button:active,\n:host(.ic-button-variant-icon-tertiary.background.monochrome) .button:active {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-monochrome-active\n );\n}\n\n:host(.ic-button-variant-tertiary.background.monochrome) ::slotted(a:active),\n:host(.ic-button-variant-icon-tertiary.background.monochrome)\n ::slotted(a:active) {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-monochrome-active\n ) !important;\n}\n\n/* Destructive */\n\n:host(.ic-button-variant-destructive) .button,\n:host(.ic-button-variant-icon-destructive) .button {\n color: var(--ic-button-destructive-text);\n background-color: var(--ic-button-destructive-background);\n text-transform: uppercase;\n}\n\n:host(.ic-button-variant-destructive) ::slotted(a),\n:host(.ic-button-variant-icon-destructive) ::slotted(a) {\n color: var(--ic-button-destructive-text) !important;\n\n --ic-typography-color: var(--ic-button-destructive-text) !important;\n\n background-color: var(--ic-button-destructive-background) !important;\n text-transform: uppercase !important;\n}\n\n:host(.ic-button-variant-destructive) .button:hover,\n:host(.ic-button-variant-icon-destructive) .button:hover {\n background-color: var(--ic-button-destructive-background-hover);\n}\n\n:host(.ic-button-variant-destructive) ::slotted(a:hover),\n:host(.ic-button-variant-icon-destructive) ::slotted(a:hover) {\n background-color: var(--ic-button-destructive-background-hover) !important;\n}\n\n:host(.ic-button-variant-destructive) .button:active,\n:host(.ic-button-variant-destructive.ic-button-loading) .button,\n:host(.ic-button-variant-icon-destructive.ic-button-loading) .button {\n color: var(--ic-button-primary-text);\n background-color: var(--ic-button-destructive-background-pressed);\n\n --button-loading-inner-color: var(--ic-button-primary-text);\n --button-loading-outer-color: var(--ic-button-destructive-background-pressed);\n}\n\n:host(.ic-button-variant-destructive) ::slotted(a:active),\n:host(.ic-button-variant-icon-destructive) ::slotted(a:active) {\n background-color: var(--ic-button-destructive-background-pressed) !important;\n}\n\n:host(.ic-button-variant-destructive.ic-button-disabled) .button,\n:host(.ic-button-variant-icon-destructive.ic-button-disabled) .button {\n background-color: var(--ic-button-destructive-background-disabled);\n color: var(--ic-button-destructive-text-disabled);\n}\n\n:host(.ic-button-variant-destructive.ic-button-disabled) ::slotted(a),\n:host(.ic-button-variant-icon-destructive.ic-button-disabled) ::slotted(a) {\n background-color: var(--ic-button-destructive-background-disabled) !important;\n}\n\n/***********************\n Icon Variants\n ***********************/\n\n/* Icon */\n\n:host(.ic-button-variant-icon) .button {\n color: var(--ic-button-icon-color);\n background-color: var(--ic-button-icon-color-background);\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.ic-button-variant-icon) ::slotted(a) {\n color: var(--ic-button-icon-color);\n background-color: var(--ic-button-icon-color-background) !important;\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.ic-button-variant-icon) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n}\n\n:host(.ic-button-variant-icon) .button:hover {\n color: var(--ic-button-icon-color-hover);\n background-color: var(--ic-button-icon-color-background-hover);\n}\n\n:host(.ic-button-variant-icon) ::slotted(a:hover) {\n color: var(--ic-button-icon-color-hover);\n background-color: var(--ic-button-icon-color-background-hover) !important;\n}\n\n:host(.ic-button-variant-icon) .button:active:not(:focus),\n:host(.ic-button-variant-icon.ic-button-loading) .button {\n color: var(--ic-button-icon-color-active);\n background-color: var(--ic-button-icon-color-background-active);\n}\n\n:host(.ic-button-variant-icon) ::slotted(a:active:not(:focus)) {\n color: var(--ic-button-icon-color-active);\n background-color: var(--ic-button-icon-color-background-active) !important;\n}\n\n:host(.ic-button-variant-icon.ic-button-disabled) .button {\n color: var(--ic-color-icon-disabled-mid);\n background: none;\n}\n\n:host(.ic-button-variant-icon.ic-button-disabled) ::slotted(a) {\n color: var(--ic-color-icon-disabled-mid);\n background: none !important;\n}\n\n/* Icon-primary */\n\n:host(.ic-button-variant-icon-primary) .button,\n:host(.ic-button-variant-icon-primary) ::slotted(a) {\n min-width: 0;\n gap: var(--ic-space-xs);\n color: var(--ic-button-primary-icon);\n}\n\n:host(.ic-button-variant-icon-primary.monochrome) .button,\n:host(.ic-button-variant-primary.monochrome:not(.ic-button-disabled))\n ::slotted(svg) {\n color: var(--ic-button-primary-icon-monochrome);\n}\n\n:host(.ic-button-variant-icon-primary) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n margin: 0;\n pointer-events: none;\n}\n\n:host(.ic-button-variant-icon.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon.monochrome) ::slotted(svg) {\n color: var(--ic-button-icon-monochrome);\n}\n\n/* Icon-secondary */\n\n:host(.ic-button-variant-icon-secondary) .button,\n:host(.ic-button-variant-icon-secondary) ::slotted(a) {\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.ic-button-variant-icon-secondary) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n margin: 0;\n pointer-events: none;\n}\n\n/* Icon-tertiary */\n\n:host(.ic-button-variant-icon-tertiary) .button,\n:host(.ic-button-variant-icon-tertiary) ::slotted(a) {\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.ic-button-variant-icon-tertiary) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n margin: 0;\n pointer-events: none;\n}\n\n/* Icon-destructive */\n\n:host(.ic-button-variant-icon-destructive) .button,\n:host(.ic-button-variant-icon-destructive) ::slotted(a) {\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.ic-button-variant-icon-destructive) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n margin: 0;\n pointer-events: none;\n}\n\n/* Sizing */\n\n:host(.ic-button-size-medium) .button {\n height: var(--height, 2.5rem);\n padding: var(--ic-space-xs) var(--ic-space-md);\n}\n\n:host(.ic-button-size-medium) ::slotted(a) {\n height: var(--height, 2.5rem) !important;\n padding: var(--ic-space-xs) var(--ic-space-md) !important;\n}\n\n:host(.ic-button-size-small) .button {\n height: var(--height, var(--ic-space-xl));\n padding: var(--ic-space-xxs) var(--ic-space-md);\n}\n\n:host(.ic-button-size-small) ::slotted(a) {\n height: var(--height, var(--ic-space-xl)) !important;\n padding: var(--ic-space-xxs) var(--ic-space-md) !important;\n}\n\n:host(.ic-button-size-large) .button {\n height: var(--height, var(--ic-space-xxl));\n padding: var(--ic-space-sm) var(--ic-space-md);\n}\n\n:host(.ic-button-size-large) ::slotted(a) {\n height: var(--height, var(--ic-space-xxl)) !important;\n padding: var(--ic-space-sm) var(--ic-space-md) !important;\n}\n\n:host(.ic-button-size-medium.ic-button-variant-icon) .button,\n:host(.ic-button-size-medium.ic-button-variant-icon-primary) .button,\n:host(.ic-button-size-medium.ic-button-variant-icon-secondary) .button,\n:host(.ic-button-size-medium.ic-button-variant-icon-tertiary) .button,\n:host(.ic-button-size-medium.ic-button-variant-icon-destructive) .button {\n height: var(--height, var(--ic-space-xl));\n width: var(--ic-space-xl);\n padding: 0.375rem;\n}\n\n:host(.ic-button-size-medium.ic-button-variant-icon-primary) ::slotted(a),\n:host(.ic-button-size-medium.ic-button-variant-icon-secondary) ::slotted(a),\n:host(.ic-button-size-medium.ic-button-variant-icon-tertiary) ::slotted(a),\n:host(.ic-button-size-medium.ic-button-variant-icon-destructive) ::slotted(a) {\n height: var(--height, var(--ic-space-xl)) !important;\n width: var(--ic-space-xl) !important;\n padding: 0.375rem !important;\n}\n\n:host(.ic-button-size-small.ic-button-variant-icon) .button,\n:host(.ic-button-size-small.ic-button-variant-icon-primary) .button,\n:host(.ic-button-size-small.ic-button-variant-icon-secondary) .button,\n:host(.ic-button-size-small.ic-button-variant-icon-tertiary) .button,\n:host(.ic-button-size-small.ic-button-variant-icon-destructive) .button {\n height: var(--height, var(--ic-space-lg));\n width: var(--ic-space-lg);\n padding: var(--ic-space-xxs);\n}\n\n:host(.ic-button-size-small.ic-button-variant-icon-primary) ::slotted(a),\n:host(.ic-button-size-small.ic-button-variant-icon-secondary) ::slotted(a),\n:host(.ic-button-size-small.ic-button-variant-icon-tertiary) ::slotted(a),\n:host(.ic-button-size-small.ic-button-variant-icon-destructive) ::slotted(a),\n:host(.ic-button-size-small.ic-button-variant-icon) ::slotted(a) {\n height: var(--height, var(--ic-space-lg)) !important;\n width: var(--ic-space-lg) !important;\n padding: var(--ic-space-xxs) !important;\n}\n\n:host(.ic-button-size-large.ic-button-variant-icon) .button,\n:host(.ic-button-size-large.ic-button-variant-icon-primary) .button,\n:host(.ic-button-size-large.ic-button-variant-icon-secondary) .button,\n:host(.ic-button-size-large.ic-button-variant-icon-tertiary) .button,\n:host(.ic-button-size-large.ic-button-variant-icon-destructive) .button {\n height: var(--height, 2.5rem);\n width: 2.5rem;\n padding: var(--ic-space-xs);\n}\n\n:host(.ic-button-size-large.ic-button-variant-icon-destructive) .button,\n:host(.ic-button-size-large.ic-button-variant-icon-primary) ::slotted(a),\n:host(.ic-button-size-large.ic-button-variant-icon-secondary) ::slotted(a),\n:host(.ic-button-size-large.ic-button-variant-icon-tertiary) ::slotted(a),\n:host(.ic-button-size-large.ic-button-variant-icon-destructive) ::slotted(a),\n:host(.ic-button-size-large.ic-button-variant-icon) ::slotted(a) {\n height: var(--height, 2.5rem) !important;\n width: 2.5rem !important;\n padding: var(--ic-space-xs) !important;\n}\n\n/* Width */\n:host(.ic-button-full-width),\n:host(.ic-button-full-width) .button {\n width: 100%;\n}\n\n:host(.ic-button-full-width) ::slotted(a) {\n width: 100% !important;\n}\n\n/* Loading */\n\ndiv.loading-container {\n position: relative;\n align-items: center;\n width: 100%;\n}\n\n.loading-indicator-icon-button {\n --circular-diameter: var(--ic-space-md);\n}\n\n:host(.ic-button-size-small) .loading-indicator-icon-button {\n --circular-diameter: calc(var(--ic-space-sm) + var(--ic-space-xxxs));\n}\n\n:host(.ic-button-size-large) .loading-indicator-icon-button {\n --circular-diameter: calc(var(--ic-space-sm) + var(--ic-space-xs));\n}\n\nic-loading-indicator {\n --inner-color: var(--button-loading-inner-color);\n --outer-color: var(--button-loading-outer-color), transparent;\n}\n\n@keyframes loading-animation {\n 0% {\n width: 0%;\n left: 0%;\n }\n\n 25% {\n width: 0%;\n left: 0%;\n opacity: 0;\n }\n\n 50% {\n width: 100%;\n left: 0%;\n opacity: 1;\n }\n\n 75% {\n width: 0%;\n left: 100%;\n }\n\n 100% {\n width: 0%;\n left: 100%;\n opacity: 0;\n }\n}\n\n/* Icons */\n\ndiv.icon-container {\n box-sizing: border-box;\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: var(--ic-space-xs);\n}\n\ndiv.right-icon {\n margin-right: auto;\n margin-left: var(--ic-space-xs);\n}\n\n:host(.ic-button-full-width) .right-icon {\n margin-right: var(--ic-space-xs);\n}\n\n::slotted(:not(ic-badge)) {\n width: var(--icon-width) !important;\n height: var(--icon-height) !important;\n fill: currentcolor !important;\n pointer-events: none;\n}\n\n:host(.ic-button-variant-icon) .button .icon-container {\n margin: 0;\n pointer-events: none;\n}\n\n/** SEARCH **/\n\n:host(.search-submit-button) ::slotted(svg) {\n --icon-height: 1.25rem;\n --icon-width: 1.25rem;\n\n color: var(--ic-atoms-input-search-button);\n}\n\n:host(.search-submit-button-small) ::slotted(svg) {\n --icon-height: 1rem;\n --icon-width: 1rem;\n\n color: var(--ic-atoms-input-search-button);\n}\n\n:host(.search-submit-button) .button:focus {\n box-shadow: none;\n}\n\n:host(.search-submit-button) .button:not(:active):focus {\n box-shadow: none;\n background-color: var(--ic-action-default-bg-hover);\n}\n\n:host(.search-submit-button) .button:not(:active):focus ::slotted(svg) {\n color: var(--ic-button-primary-text);\n}\n\n:host(.search-submit-button) {\n display: flex;\n align-items: center;\n margin: 0 var(--ic-space-xxs);\n}\n\n/** CLEAR & DISMISS **/\n\n:host(.ic-button-variant-icon) .button,\n:host(.ic-button-variant-icon) ::slotted(a) {\n background-color: inherit;\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.button-variant-icon) .button,\n:host(.button-variant-icon) ::slotted(a) {\n color: var(--button-default);\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.button-variant-icon) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n}\n\n:host(.button-variant-icon) .button:hover,\n:host(.button-variant-icon) ::slotted(a:hover) {\n background-color: var(--button-default-background-hover);\n color: var(--button-default-hover);\n}\n\n:host(.button-variant-icon) .button:active:not(:focus),\n:host(.button-variant-icon) ::slotted(a:active:not(:focus)),\n:host(.button-variant-icon.loading) .button {\n background-color: var(--button-default-background-active);\n color: var(--button-default-active);\n}\n\n:host(.button-variant-icon.disabled) .button,\n:host(.button-variant-icon.disabled) ::slotted(a) {\n color: var(--ic-color-icon-disabled-mid);\n background: none;\n}\n\n:host(.clear-button) {\n color: var(--ic-atoms-input-clear-button);\n margin: 0 var(--ic-space-xxs);\n}\n\n:host(.clear-button) .button:focus,\n:host(.calendar-button) .button:focus,\n:host(.clock-button) .button:focus {\n box-shadow: none;\n}\n\n:host(.clear-button) .button,\n:host(.clear-button) ::slotted(a) {\n background-color: inherit;\n color: var(--ic-atoms-input-clear-button);\n}\n\n:host(.clear-button) .button:hover,\n:host(.clear-button) ::slotted(a:hover) {\n color: var(--ic-atoms-input-clear-button);\n}\n\n:host(.clear-button) .button:not(:active):focus ::slotted(svg) {\n background-color: var(--ic-atoms-input-clear-button-focus-inner);\n color: var(--ic-button-primary-text);\n\n /* border: var(--ic-atoms-input-clear-button-focus-outer); */\n}\n\n:host(.menu-close-button) ::slotted(svg) {\n --icon-height: 0.875rem;\n --icon-width: 0.875rem;\n\n color: var(--ic-top-navigation-icon-active);\n}\n\n:host(.popout-menu-button) .button {\n height: var(--height);\n justify-content: left;\n border-radius: 0;\n white-space: pre-line;\n text-align: start;\n}\n\n:host(.popout-menu-button) div.icon-container {\n flex: none;\n}\n\n:host(.popout-menu-button) .button:focus {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n}\n\n.ic-button-describedby {\n display: none;\n}\n\n:host .ic-tooltip {\n display: block;\n}\n\n/** Dropdown **/\n\n:host .arrow-dropdown {\n margin-top: auto;\n}\n\n:host .dropdown-expanded {\n transform: rotate(180deg);\n margin-bottom: var(--ic-space-xxxs);\n}\n\n:host(.dropdown-no-icon) .button {\n padding-right: var(--ic-space-xs);\n}\n\n/** Slotted router item **/\n\nslot[name=\"router-item\"]::slotted(a) {\n pointer-events: all;\n}\n\n::slotted(a) {\n font-size: 0.875rem !important;\n border: none !important;\n vertical-align: middle !important;\n}\n\n/** menu button on top navigation\\side navigation \n * uses secondary monochrome tokens which are duplicated here to avoid multiple copies in each component\n */\n\n:host(#menu-button.ic-theme-dark) {\n --ic-button-secondary-background-hover-monochrome: var(\n --ic-action-dark-bg-hover\n );\n --ic-button-secondary-background-pressed-monochrome: var(\n --ic-action-dark-bg-pressed\n );\n --ic-button-secondary-text-hover-monochrome: var(\n --ic-action-monochrome-hover-dark\n );\n --ic-button-secondary-text-pressed-monochrome: var(\n --ic-action-monochrome-pressed-dark\n );\n --ic-button-secondary-border-hover-monochrome: var(\n --ic-color-border-neutral-hover-dark\n );\n --ic-button-secondary-border-pressed-monochrome: var(\n --ic-color-border-neutral-pressed-dark\n );\n}\n\n:host(#menu-button.ic-theme-light) {\n --ic-button-secondary-background-hover-monochrome: var(\n --ic-action-light-bg-hover\n );\n --ic-button-secondary-background-pressed-monochrome: var(\n --ic-action-light-bg-pressed\n );\n --ic-button-secondary-text-hover-monochrome: var(\n --ic-action-monochrome-hover\n );\n --ic-button-secondary-text-pressed-monochrome: var(\n --ic-action-monochrome-pressed\n );\n --ic-button-secondary-border-hover-monochrome: var(\n --ic-color-border-neutral-hover-light\n );\n --ic-button-secondary-border-pressed-monochrome: var(\n --ic-color-border-neutral-default\n );\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n .button,\n ::slotted(a) {\n border: 0.125rem solid transparent !important;\n }\n\n .search-submit-button ::slotted(a),\n .ic-button-variant-icon ::slotted(a),\n .clear-button ::slotted(a),\n .search-submit-button ::slotted(svg),\n .ic-button-variant-icon ::slotted(svg),\n .clear-button ::slotted(svg) {\n color: HighlightText;\n }\n\n :host(.ic-button-variant-icon.monochrome) ::slotted(a),\n :host(.ic-button-variant-icon.monochrome) ::slotted(svg) {\n color: white;\n }\n\n :host(.clear-button) .button:not(:active):focus ::slotted(svg) {\n color: white !important;\n background-color: inherit;\n }\n\n :host(.ic-button-variant-primary:not(.ic-button-disabled)) ::slotted(svg) {\n color: currentcolor !important;\n }\n}\n\n/** Pagination **/\n\n:host(.flip) ::slotted(svg) {\n transform: scaleX(-1);\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Listen,\n Method,\n Prop,\n State,\n forceUpdate,\n h,\n Watch,\n Fragment,\n} from \"@stencil/core\";\n\nimport {\n getBrandFromContext,\n handleHiddenFormButtonClick,\n inheritAttributes,\n isSlotUsed,\n removeDisabledFalse,\n renderFileHiddenInput,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport { IcButtonTypes, IcButtonVariants } from \"./ic-button.types\";\nimport {\n IcSizes,\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundEnum,\n IcThemeMode,\n IcButtonTooltipPlacement,\n IcIconPlacementOptions,\n} from \"../../utils/types\";\nimport arrowDropdown from \"../../assets/arrow-dropdown.svg\";\n\nlet buttonIds = 0;\n\n/**\n * @slot left-icon - Content will be placed to the left of the button label.\n * @slot right-icon - Content will be placed to the right of the button label.\n * @slot top-icon - Content will be placed above the button label.\n * @slot badge - Badge component overlaying the top right of the button.\n * @slot router-item - Handle routing by nesting your routes in this slot. Setting loading to true will have no impact on this slot.\n */\n@Component({\n tag: \"ic-button\",\n styleUrl: \"ic-button.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Button {\n private buttonEl?: HTMLElement;\n private buttonIdNum = buttonIds++;\n private hasTooltip = false;\n private id: string | null;\n private inheritedAttributes: { [k: string]: string } = {};\n private describedbyEl: HTMLElement | null = null;\n private describedById?: string;\n private mutationObserver: MutationObserver | null = null;\n private hostMutationObserver: MutationObserver | null = null;\n private routerSlot: HTMLElement | null;\n\n @Element() el: HTMLIcButtonElement;\n\n @State() ariaLabel = \"\";\n @State() describedbyNode: Node | null;\n @Watch(\"describedbyNode\")\n watchDescribedbyNodeHandler(): void {\n this.updateAriaDescribedbyClone();\n }\n @State() title = \"\";\n\n /**\n * If `fileUpload` is set to `true`, this is the accepted list of file types.\n */\n @Prop() accept = \"*\";\n\n /**\n * @internal Used to identify any related child component\n */\n @Prop() ariaControlsId?: string | boolean;\n\n /**\n * @internal Used to identify any related child component\n */\n @Prop() ariaOwnsId?: string | boolean;\n\n /**\n * If `true`, the button will be in disabled state.\n */\n @Prop() disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the ic-tooltip which is shown for icon variant will be disabled. Title or aria-label must be set if this prop is not applied.\n */\n @Prop() disableTooltip = 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 * If `true`, the button will show a dropdown icon.\n */\n @Prop() dropdown = false;\n\n /**\n * If `true`, the aria-expanded value will be set to true. This is only applied if the dropdown prop is also true.\n */\n @Prop({ mutable: true, reflect: true }) dropdownExpanded = false;\n\n /**\n * If `true`, when the button is clicked the native file explorer will be launched.\n */\n @Prop() fileUpload = false;\n\n /**\n * The name of the control for the file input, which is submitted with the form data.\n */\n @Prop() fileInputName = `ic-button-file-upload-input-${buttonIds++}`;\n\n /**\n * The <form> element to associate the button with.\n */\n @Prop() form?: string;\n\n /**\n * The URL that processes the information submitted by the button. It overrides the action attribute of the button's form owner. Does nothing if there is no form owner.\n */\n @Prop() formaction?: string;\n\n /**\n * The way the submitted form data is encoded.\n */\n @Prop() formenctype?: string;\n\n /**\n * The HTTP method used to submit the form.\n */\n @Prop() formmethod?: string;\n\n /**\n * If `true`, the form will not be validated when submitted.\n */\n @Prop() formnovalidate?: boolean;\n\n /**\n * The place to display the response from submitting the form. It overrides the target attribute of the button's form owner.\n */\n @Prop() formtarget?: string;\n\n /**\n * If `true`, the button will fill the width of the container.\n */\n @Prop() fullWidth = 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 * If `true`, the button will be in loading state.\n */\n @Prop() loading = false;\n\n /**\n * If `true`, the button will display as monochromatic in either `light` or `dark` theme.\n */\n @Prop({ mutable: true }) monochrome = false;\n\n /**\n * If `fileUpload` is set to `true`, this boolean determines whether multiple files are accepted.\n */\n @Prop() multiple = false;\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 list of the files that have been selected by a user.\n */\n @Prop() selectedFiles?: FileList;\n\n /**\n * The size of the button to be displayed.\n */\n @Prop() size: IcSizes = \"medium\";\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 /**\n * Setting to `true` can help in situations where tooltip content is clipped by a parent element.\n */\n @Prop() tooltipFixedPositioning: boolean = false;\n\n /**\n * The position of the tooltip in relation to the button.\n */\n @Prop() tooltipPlacement: IcButtonTooltipPlacement = \"bottom\";\n\n /**\n * If `true`, the secondary & tertiary variants of button will have a transparent background when not hovered, pressed or loading.\n */\n @Prop() transparentBackground = true;\n\n /**\n * The type of the button.\n */\n @Prop() type: IcButtonTypes = \"button\";\n\n /**\n * The variant of the button to be displayed.\n */\n @Prop({ mutable: true }) variant: IcButtonVariants = \"primary\";\n @Watch(\"variant\")\n watchVariantHandler(newVariant: IcButtonVariants): void {\n if (newVariant === \"icon\") this.variant = \"icon-tertiary\";\n }\n\n /**\n * Emitted when button has blur\n */\n @Event() icBlur!: EventEmitter<void>;\n\n /**\n * If `fileUpload` is set to `true`, this will be emitted when a file is selected in the native explorer.\n */\n @Event() icFileSelection!: EventEmitter<FileList>;\n\n /**\n * Emitted when button has focus\n */\n @Event() icFocus!: EventEmitter<void>;\n\n disconnectedCallback(): void {\n this.mutationObserver?.disconnect();\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillUpdate(): void {\n if (this.loading) {\n this.el.style.setProperty(\n \"--min-width\",\n `${this.el.getBoundingClientRect().width}px`\n );\n }\n this.setHasTooltip();\n }\n\n componentWillLoad(): void {\n const {\n title,\n \"aria-label\": ariaLabel,\n ...restInheritedAttributes\n } = inheritAttributes(this.el, [...IC_INHERITED_ARIA, \"title\"]);\n\n this.title = title;\n this.ariaLabel = ariaLabel;\n this.inheritedAttributes = restInheritedAttributes;\n\n removeDisabledFalse(this.disabled, this.el);\n\n this.el.setAttribute(\"exportparts\", \"button\");\n\n this.id = this.el.id || null;\n this.setHasTooltip();\n\n if (!this.hasTooltip) {\n const describedById = this.inheritedAttributes[\"aria-describedby\"];\n if (describedById) {\n this.describedById = describedById;\n const el = document.querySelector<HTMLElement>(`#${describedById}`);\n if (el) {\n this.describedbyEl = el;\n this.describedbyNode = el.cloneNode(true);\n }\n }\n }\n\n if (this.variant === \"icon\") {\n this.variant = \"icon-tertiary\";\n }\n }\n\n componentDidLoad(): void {\n this.updateTheme();\n\n if (typeof MutationObserver !== \"undefined\") {\n if (this.describedbyEl && this.describedById) {\n this.mutationObserver = new MutationObserver(this.mutationCallback);\n this.mutationObserver.observe(this.describedbyEl, {\n characterData: true,\n childList: true,\n subtree: true,\n });\n }\n\n this.hostMutationObserver = new MutationObserver(\n this.hostMutationCallback\n );\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n });\n\n if (this.hasRouterSlot()) this.arrangeRouterItem();\n }\n\n this.updateAriaDescribedbyClone();\n }\n\n componentWillRender(): void {\n const iconEl = this.getSlottedIcon(\"left\") || this.getSlottedIcon(\"right\");\n iconEl?.setAttribute(\"viewBox\", \"0 0 24 24\");\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(event: Event): void {\n if (!this.hasRouterSlot()) {\n if (this.fileUpload) {\n renderFileHiddenInput(\n this.icFileSelection,\n this.el,\n !!this.multiple,\n !!this.disabled,\n this.accept,\n this.fileInputName,\n this.selectedFiles\n );\n }\n if (this.disabled || this.loading) {\n event.stopImmediatePropagation();\n }\n if (this.dropdown) {\n this.dropdownExpanded = !this.dropdownExpanded;\n }\n }\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler({ detail }: CustomEvent<IcBrand>): void {\n this.updateTheme(detail.mode);\n }\n\n /**\n * Sets focus on the native `button`.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.buttonEl?.focus();\n }\n\n private async closeButtonTooltip(ev: KeyboardEvent) {\n const tooltip = this.el.shadowRoot?.querySelector(\"ic-tooltip\");\n if (tooltip && (await tooltip.isTooltipVisible())) {\n tooltip.displayTooltip(false);\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n }\n\n private getSlottedIcon = (position: IcIconPlacementOptions) =>\n this.el.querySelector(`[slot=\"${position}-icon\"]`);\n\n private hasRouterSlot() {\n this.routerSlot = this.el.querySelector('[slot=\"router-item\"]');\n if (this.routerSlot) {\n this.routerSlot.ariaLabel = this.routerSlot.textContent;\n }\n return !!this.routerSlot;\n }\n\n private handleClick = () => {\n if (\n (this.el.type === \"submit\" || this.el.type === \"reset\") &&\n !this.hasRouterSlot() &&\n (this.form || !!this.el.closest(\"FORM\"))\n ) {\n const form = this.form\n ? document.querySelector<HTMLFormElement>(`form[id=${this.form}]`)\n : this.el.closest<HTMLFormElement>(\"FORM\");\n\n handleHiddenFormButtonClick(form, this.el);\n }\n };\n\n private handleKeyDown = (ev: KeyboardEvent) => {\n if (ev.key === \"Escape\" && this.hasTooltip) {\n this.closeButtonTooltip(ev);\n }\n };\n\n private onFocus = () => {\n this.icFocus.emit();\n };\n\n private onBlur = () => {\n this.icBlur.emit();\n };\n\n private updateTheme(mode: IcBrandForeground | null = null) {\n const foregroundColor = getBrandFromContext(this.el, mode);\n if (foregroundColor !== IcBrandForegroundEnum.Default) {\n this.theme =\n foregroundColor === IcBrandForegroundEnum.Light\n ? IcBrandForegroundEnum.Dark\n : IcBrandForegroundEnum.Light;\n this.monochrome = true;\n }\n }\n\n /**\n * Creates/updates clone of aria-describedby element node tree in shadow dom\n * Required due to ids being scoped to the shadow dom\n */\n private updateAriaDescribedbyClone = () => {\n if (this.describedbyNode) {\n const wrapper = this.el.shadowRoot?.querySelector(\"#describedby-wrapper\");\n if (!wrapper) {\n this.el.shadowRoot?.appendChild(\n Object.assign(document.createElement(\"div\"), {\n id: \"describedby-wrapper\",\n className: \"ic-button-describedby\",\n })\n );\n }\n\n while (wrapper?.firstChild) wrapper.firstChild.remove();\n wrapper?.appendChild(this.describedbyNode);\n }\n };\n\n /**\n * Triggered when light dom aria-describedby element updates\n */\n private mutationCallback = () => {\n if (this.describedbyEl)\n this.describedbyNode = this.describedbyEl?.cloneNode(true);\n };\n\n /**\n * Triggered when attributes of host element change\n * @param mutationList the list of changes made to the host element\n */\n private hostMutationCallback = (mutationList: MutationRecord[]) => {\n let forceComponentUpdate = false;\n mutationList.forEach(({ attributeName }) => {\n if (attributeName) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute) {\n if (attributeName === \"title\") this.title = attribute;\n else if (attributeName === \"aria-label\") this.ariaLabel = attribute;\n\n if (IC_INHERITED_ARIA.includes(attributeName)) {\n this.inheritedAttributes[attributeName] = attribute;\n forceComponentUpdate = true;\n }\n }\n }\n });\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n private setHasTooltip = () => {\n this.hasTooltip =\n !this.disableTooltip && (!!this.title || !!this.isIconVariant());\n };\n\n private isIconVariant = () => this.variant.startsWith(\"icon\");\n\n private arrangeRouterItem = () => {\n const setStyles = (\n element: HTMLElement | SVGElement,\n styles: { [key: string]: string }\n ) => {\n Object.entries(styles).forEach(([key, value]) => {\n element.style.setProperty(key, value);\n });\n };\n\n if (this.routerSlot) {\n const icTypography = document.createElement(\"ic-typography\");\n\n setStyles(icTypography, {\n \"font-family\": \"var(--ic-font-body-family)\",\n \"font-size\": \"0.875rem\",\n \"font-weight\": \"600\",\n });\n setStyles(this.routerSlot, {\n gap: \"0\",\n });\n\n const icon = this.routerSlot.querySelector(\"svg\");\n const iconSlot = icon?.getAttribute(\"slot\");\n const iconWrapper = document.createElement(\"div\");\n\n if (icon) {\n setStyles(icon, {\n fill: \"currentcolor\",\n });\n\n if (iconSlot === \"top-icon\") {\n setStyles(this.routerSlot, {\n display: \"flex\",\n \"flex-direction\": \"column\",\n \"--height\": \"fit-content\",\n });\n } else if (iconSlot) {\n const marginPlacement = iconSlot === \"left-icon\" ? \"right\" : \"left\";\n setStyles(iconWrapper, {\n [`margin-${marginPlacement}`]: \"var(--ic-space-xs)\",\n });\n }\n\n iconWrapper.append(icon);\n }\n\n const badge = this.routerSlot.querySelector(\"ic-badge\");\n const label = this.routerSlot.textContent?.trim();\n\n if (badge) iconWrapper.append(badge);\n if (label) icTypography.textContent = label;\n\n this.routerSlot.textContent = \"\";\n\n if (iconSlot === \"right-icon\") {\n this.routerSlot.append(icTypography);\n this.routerSlot.append(iconWrapper);\n } else {\n this.routerSlot.append(iconWrapper);\n this.routerSlot.append(icTypography);\n }\n }\n };\n\n render() {\n const {\n ariaControlsId,\n ariaLabel,\n ariaOwnsId,\n buttonIdNum,\n describedById,\n disabled,\n download,\n dropdown,\n dropdownExpanded,\n form,\n formaction,\n formenctype,\n formmethod,\n formnovalidate,\n formtarget,\n fullWidth,\n handleClick,\n handleKeyDown,\n hasTooltip,\n href,\n hreflang,\n id,\n inheritedAttributes,\n isIconVariant,\n loading,\n monochrome,\n onBlur,\n onFocus,\n referrerpolicy,\n rel,\n size,\n target,\n theme,\n title,\n tooltipFixedPositioning,\n tooltipPlacement,\n transparentBackground,\n type,\n variant,\n } = this;\n\n const TagType = href ? \"a\" : \"button\";\n const buttonAttrs =\n TagType === \"button\"\n ? {\n type,\n disabled,\n form,\n formaction,\n formenctype,\n formmethod,\n formnovalidate,\n formtarget,\n }\n : {\n download: download !== false ? download : null,\n href,\n rel,\n target,\n referrerpolicy,\n hreflang,\n };\n\n const buttonId = hasTooltip\n ? `ic-button-with-tooltip-${id || buttonIdNum}`\n : undefined;\n\n const describedby = !hasTooltip ? describedById : `ic-tooltip-${buttonId}`;\n\n const hasLeftIcon = !!this.getSlottedIcon(\"left\");\n const hasRightIcon = !!this.getSlottedIcon(\"right\");\n\n const ButtonContent = () =>\n this.hasRouterSlot() ? (\n <slot name=\"router-item\"></slot>\n ) : (\n <TagType\n class=\"button\"\n tabindex={0}\n aria-disabled={loading || disabled ? \"true\" : null}\n aria-label={loading ? \"Loading\" : ariaLabel}\n aria-expanded={dropdown && `${dropdownExpanded}`}\n {...buttonAttrs}\n {...inheritedAttributes}\n onFocus={onFocus}\n onBlur={onBlur}\n ref={(el) => (this.buttonEl = el)}\n aria-describedby={describedby}\n part=\"button\"\n >\n {loading ? (\n <div class=\"loading-container\">\n <ic-loading-indicator\n type={isIconVariant() ? \"circular\" : \"linear\"}\n class={{ \"loading-indicator-icon-button\": isIconVariant() }}\n monochrome={monochrome}\n theme={theme}\n ></ic-loading-indicator>\n </div>\n ) : (\n <Fragment>\n {(hasLeftIcon ||\n (!!this.getSlottedIcon(\"top\") && !hasRightIcon)) && (\n <div class=\"icon-container\">\n <slot name={`${hasLeftIcon ? \"left\" : \"top\"}-icon`} />\n </div>\n )}\n <slot />\n {!dropdown\n ? hasRightIcon && (\n <div class={{ \"icon-container\": true, \"right-icon\": true }}>\n <slot name=\"right-icon\" />\n </div>\n )\n : variant !== \"icon\" &&\n variant !== \"destructive\" && (\n <span\n class={\n dropdownExpanded\n ? \"dropdown-expanded\"\n : \"arrow-dropdown\"\n }\n innerHTML={arrowDropdown}\n />\n )}\n </Fragment>\n )}\n </TagType>\n );\n\n return (\n <Host\n class={{\n \"ic-button-disabled\": disabled && !loading,\n \"ic-button-full-width\": fullWidth,\n \"ic-button-loading\": loading,\n [`ic-button-size-${size}`]: true,\n [`ic-button-variant-${variant}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n background:\n (variant === \"secondary\" || variant === \"tertiary\") &&\n !transparentBackground &&\n !disabled,\n \"dropdown-no-icon\":\n dropdown &&\n !isSlotUsed(this.el, \"icon\") &&\n !isSlotUsed(this.el, \"left-icon\"),\n monochrome,\n \"top-icon\": isSlotUsed(this.el, \"top-icon\"),\n \"with-badge\": isSlotUsed(this.el, \"badge\"),\n }}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n aria-owns={ariaOwnsId}\n aria-controls={ariaControlsId}\n aria-expanded={dropdown && `${dropdownExpanded}`}\n >\n {hasTooltip && (\n <ic-tooltip\n id={describedby}\n label={title || ariaLabel}\n target={buttonId}\n placement={tooltipPlacement}\n fixedPositioning={tooltipFixedPositioning}\n silent={isIconVariant() && !!ariaLabel}\n >\n <ButtonContent />\n </ic-tooltip>\n )}\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n {!hasTooltip && <ButtonContent />}\n </Host>\n );\n }\n}\n","@import \"../../global/normalize.css\";\n\n:host {\n /**\n * @prop --circular-diameter: Diameter of the circular-indicator in px, rem or %\n */\n\n display: block;\n\n --linear-border-radius: 0.25rem;\n --inner-color: var(--ic-loading-indicator-inner-color);\n --outer-color: var(--ic-loading-indicator-outer-color);\n --label-color: var(--ic-loading-indicator-label-color);\n --margin: none;\n --linear-line-height: var(--ic-space-xs);\n}\n\n:host(.ic-loading-indicator-monochrome) {\n --inner-color: var(--ic-loading-indicator-inner-color-monochrome);\n --outer-color: var(--ic-loading-indicator-outer-color-monochrome);\n --label-color: var(--ic-loading-indicator-label-color-monochrome);\n}\n\n.ic-loading-container {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n\n:host(.ic-loading-indicator-size-small) {\n --circular-diameter: 2.5rem;\n --linear-line-height: var(--ic-space-xxs);\n}\n\n:host(.ic-loading-indicator-size-medium) {\n --circular-diameter: 5rem;\n}\n\n:host(.ic-loading-indicator-size-large) {\n --circular-diameter: 7.5rem;\n}\n\n:host(.ic-loading-indicator-size-icon) {\n display: inline-block;\n\n --margin: var(--ic-space-xxxs);\n --circular-diameter: 1.25rem;\n}\n\n:host(.ic-loading-indicator-label) {\n --margin: 0 0 var(--ic-space-xs) 0;\n}\n\n.ic-loading-label {\n --ic-typography-color: var(--label-color);\n\n margin-left: var(--label-margin-left);\n}\n\n.ic-loading-circular-outer {\n height: var(--circular-diameter);\n width: var(--circular-diameter);\n}\n\n.ic-loading-circular-outer.indeterminate {\n animation: circular-animation 1s linear;\n animation-iteration-count: infinite;\n}\n\n@keyframes circular-animation {\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.ic-loading-circular-outer,\n.ic-loading-linear-outer {\n margin: var(--margin);\n}\n\n.ic-loading-linear-outer {\n background-color: var(--outer-color);\n height: var(--linear-line-height);\n width: 100%;\n border-radius: var(--linear-border-radius);\n overflow: hidden;\n}\n\n.ic-loading-circular-outer[aria-valuenow=\"0\"] .ic-loading-circular-inner,\n.ic-loading-linear-outer[aria-valuenow=\"0\"] .ic-loading-linear-inner {\n --inner-color: var(--outer-color);\n}\n\n.ic-loading-linear-inner {\n position: relative;\n height: 100%;\n background-color: var(--inner-color);\n border-radius: var(--linear-border-radius);\n}\n\n.indeterminate > .ic-loading-linear-inner {\n animation: linear-animation 2s infinite;\n}\n\n.determinate > .ic-loading-linear-inner {\n transition: width 0.5s;\n width: var(--linear-width);\n}\n\n:host(.ic-loading-indicator-full-width) {\n --linear-border-radius: none;\n}\n\n@keyframes linear-animation {\n 0% {\n width: 0%;\n left: -1%;\n }\n\n 25% {\n width: 0%;\n left: -1%;\n }\n\n 50% {\n width: 101%;\n left: -1%;\n }\n\n 75% {\n width: 0%;\n left: 101%;\n }\n\n 100% {\n width: 0%;\n left: 101%;\n }\n}\n\n.ic-loading-circular-svg {\n position: relative;\n width: 100%;\n height: 100%;\n transform: rotate(-90deg);\n}\n\n.ic-loading-circular-svg circle {\n width: 100%;\n height: 100%;\n fill: none;\n stroke: var(--compact-step-outer-color, var(--outer-color));\n stroke-width: var(--circular-line-width);\n stroke-linecap: round;\n}\n\n/* --stroke-dash-array calculated via dashArray method */\n.ic-loading-circular-svg circle:nth-child(2) {\n --circular-indeterminate: calc(\n (0.25 * var(--stroke-dasharray)) - var(--stroke-dasharray)\n );\n\n stroke-dasharray: var(--stroke-dasharray), var(--stroke-dasharray);\n stroke-dashoffset: var(--stroke-dashoffset, var(--circular-indeterminate));\n stroke: var(--compact-step-inner-color, var(--inner-color));\n}\n\n.inner-label {\n height: 100%;\n display: grid;\n}\n\n.inner-label .ic-loading-circular-svg,\n.inner-text {\n grid-column: 1;\n grid-row: 1;\n}\n\n/** ic-stepper **/\n:host(.not-required.compact-step-progress-indicator)\n .ic-loading-circular-svg\n circle:nth-child(2) {\n stroke: var(--ic-architectural-300);\n}\n\n.inner-text {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--ic-space-lg);\n height: inherit;\n overflow: hidden;\n margin: auto;\n\n --ic-typography-color: var(\n --ic-step-indicator-text-current,\n var(--ic-status-info-default)\n );\n}\n\n:host(.not-required.compact-step-progress-indicator) .inner-text {\n --ic-typography-color: var(--ic-step-indicator-text-disabled);\n}\n\n:host(.ic-loading-indicator-light.not-required.compact-step-progress-indicator)\n .inner-text {\n --ic-typography-color: var(--ic-architectural-400);\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n .indeterminate > .ic-loading-circular-inner {\n forced-color-adjust: none;\n }\n\n .ic-loading-linear-outer {\n border: var(--ic-border-hc);\n }\n\n .ic-loading-linear-inner {\n background-color: canvastext;\n }\n\n .ic-loading-circular-svg circle {\n stroke: Background;\n }\n\n .ic-loading-circular-svg circle:nth-child(2) {\n stroke: canvastext;\n }\n\n :host(.not-required.compact-step-progress-indicator)\n .ic-loading-circular-svg\n circle:nth-child(2) {\n stroke: GrayText;\n }\n}\n","import { Component, Element, h, Host, Prop, State, Watch } from \"@stencil/core\";\nimport {\n IcLoadingCircleXYR,\n IcLoadingSizes,\n IcLoadingTypes,\n} from \"./ic-loading-indicator.types\";\nimport { IcThemeMode } from \"../../utils/types\";\n\nconst LOADING_INDICATOR_WIDTHS = {\n large: 120,\n medium: 80,\n small: 40,\n icon: 20,\n};\n\n@Component({\n tag: \"ic-loading-indicator\",\n styleUrl: \"ic-loading-indicator.css\",\n shadow: true,\n})\nexport class LoadingIndicator {\n private innerElement?: HTMLDivElement;\n private interval: ReturnType<typeof setInterval>;\n private labelList: string[] = [];\n private outerElement?: HTMLDivElement;\n\n @Element() el: HTMLIcLoadingIndicatorElement;\n\n @State() circularDiameter = 0;\n @State() circularLineWidth = 0;\n @State() circularDimensions: IcLoadingCircleXYR = {\n x: 0,\n y: 0,\n r: 0,\n };\n @State() indicatorLabel?: string;\n @State() clipInnerElement = false;\n @State() internalType: IcLoadingTypes = \"circular\";\n\n /**\n * The description that will be set as the aria-label of the loading indicator when not using a visible label.\n */\n @Prop() description = \"Loading\";\n\n /**\n * If `true`, when linear, the full-width variant (i.e. without a border radius) will be displayed.\n */\n @Prop({ reflect: true }) fullWidth = false;\n\n /**\n * @internal The step number of a compact step, managed by ic-step.\n */\n @Prop() innerLabel?: number;\n\n /**\n * The label to be displayed beneath the loading indicator.\n * Display a changing label by supplying an array of messages.\n */\n @Prop() label?: string | string[];\n @Watch(\"label\")\n watchPropHandler(): void {\n this.updateLabel();\n }\n\n /**\n * The time in milliseconds before the label changes.\n */\n @Prop() labelDuration = 8000;\n\n /**\n * The maximum value that the progress value can take.\n * Used to calculate the proportional width of the progress bar.\n */\n @Prop() max = 100;\n\n /**\n * The minimum value that the progress value can take.\n * Used to calculate the proportional width of the progress bar.\n */\n @Prop() min = 0;\n\n /**\n * If `true`, the element will display as black and white.\n */\n @Prop() monochrome = false;\n\n /**\n * The current amount of progress made.\n * If not provided, component acts as an indeterminate loading indicator.\n */\n @Prop() progress?: number;\n @Watch(\"max\")\n @Watch(\"min\")\n @Watch(\"progress\")\n handleProgressChange(): void {\n if (this.internalType === \"linear\") {\n this.setLinearDeterminateWidth();\n } else {\n this.setCircleDimensions();\n }\n }\n\n /**\n * The size of the loading indicator.\n */\n @Prop({ reflect: true }) size: IcLoadingSizes = \"medium\";\n @Watch(\"size\")\n handleIconSize(): void {\n this.setIndicatorDimensions();\n }\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 type of indicator, either linear or circular. When size is set to 'icon' the type will be set to circular.\n */\n @Prop({ reflect: true }) type: IcLoadingTypes = \"circular\";\n @Watch(\"type\")\n setIndicatorDimensions(): void {\n this.setInternalType();\n if (this.internalType === \"circular\") {\n // Sets the circular indicator line width - accounting for the circle size being altered using the CSS custom property\n const diameter = this.calculateWidth();\n if (this.outerElement && diameter !== this.circularDiameter) {\n this.circularLineWidth = diameter * 0.1;\n this.circularDiameter = diameter;\n this.outerElement.style.setProperty(\n \"--circular-line-width\",\n `${this.circularLineWidth}px`\n );\n }\n this.setCircleDimensions();\n } else {\n this.setLinearDeterminateWidth();\n }\n }\n\n disconnectedCallback(): void {\n clearInterval(this.interval);\n }\n\n componentWillLoad(): void {\n this.updateLabel();\n this.el.setAttribute(\"exportparts\", \"ic-loading-container\");\n }\n\n componentDidLoad(): void {\n this.setIndicatorDimensions();\n }\n\n private getLabel = (labelIndex: number) =>\n new Promise(() => {\n this.interval = setInterval(() => {\n if (labelIndex < this.labelList.length - 1) {\n labelIndex++;\n } else {\n labelIndex = 0;\n }\n this.indicatorLabel = this.labelList[labelIndex];\n }, this.labelDuration);\n });\n\n private getLabelVariant = () => {\n const width = this.internalType === \"circular\" ? this.calculateWidth() : 0;\n\n if (this.size === \"small\" || (width && width < 60)) {\n return \"label\";\n } else if (this.size === \"large\" || width >= 120) {\n return \"h2\";\n }\n return \"h4\";\n };\n\n private calculateWidth = () => {\n if (this.outerElement?.offsetWidth) return this.outerElement.offsetWidth;\n\n if (this.outerElement) {\n const { width } = window.getComputedStyle(this.outerElement);\n\n if (width) {\n // Regex to check the units of the css string\n if (width.match(/\\D+$/)?.[0] !== \"%\") return parseFloat(width);\n\n const parentWidth = this.outerElement.parentElement?.offsetWidth;\n if (parentWidth) return parentWidth * (parseFloat(width) / 100);\n }\n }\n\n return LOADING_INDICATOR_WIDTHS[this.size];\n };\n\n private calculateProportion = (progress: number) => {\n const minProgress = Math.min(this.max, Math.max(this.min, progress));\n return (minProgress - this.min) / (this.max - this.min);\n };\n\n private setLinearDeterminateWidth = () => {\n // Ensure progress cannot be out of bounds\n if (!this.innerElement || !this.progress) return;\n\n const proportion = this.calculateProportion(this.progress);\n this.clipInnerElement = proportion > 0.5;\n if (this.clipInnerElement) {\n this.innerElement.classList.remove(\"clip\");\n } else {\n this.innerElement.classList.add(\"clip\");\n }\n this.innerElement.style.setProperty(\n \"--linear-width\",\n `${proportion * 100}%`\n );\n };\n\n private setInternalType = () => {\n this.internalType = this.type;\n if (this.type == \"linear\") {\n this.internalType = this.size == \"icon\" ? \"circular\" : \"linear\";\n }\n };\n\n private updateLabel = () => {\n if (!this.label) return;\n\n if (typeof this.label === \"string\") {\n this.indicatorLabel = this.label;\n } else {\n this.labelList = this.label;\n this.indicatorLabel = this.labelList[0];\n if (this.labelList.length > 1) {\n this.getLabel(0);\n }\n }\n };\n\n private setCircleDimensions = () => {\n if (this.circularDiameter <= 0) return;\n\n const r = this.circularDiameter / 2;\n const nextRadius = r - this.circularLineWidth / 2;\n const dashArray = 2 * Math.PI * nextRadius;\n\n this.circularDimensions = {\n x: r,\n y: r,\n r: nextRadius,\n dashArray: `${dashArray}px`,\n dashOffset: this.progress\n ? `${(-1 - this.calculateProportion(this.progress)) * dashArray}px`\n : undefined,\n };\n };\n\n render() {\n const {\n circularDiameter,\n circularDimensions: { x, y, r, dashArray, dashOffset },\n description,\n fullWidth,\n indicatorLabel,\n innerLabel,\n internalType,\n label,\n max,\n min,\n monochrome,\n progress,\n size,\n theme,\n } = this;\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n \"ic-loading-indicator-full-width\": fullWidth,\n \"ic-loading-indicator-label\": !!label,\n \"ic-loading-indicator-monochrome\": monochrome,\n [`ic-loading-indicator-size-${size}`]: true,\n }}\n >\n <div class=\"ic-loading-container\" part=\"ic-loading-container\">\n <div\n ref={(el) => (this.outerElement = el)}\n class={{\n [`ic-loading-${internalType}-outer`]: true,\n [progress === undefined ? \"indeterminate\" : \"determinate\"]: true,\n }}\n role=\"progressbar\"\n aria-labelledby={label && size !== \"icon\" && \"ic-loading-label\"}\n aria-label={description}\n aria-valuenow={progress}\n aria-valuemin={min}\n aria-valuemax={max}\n >\n <div\n ref={(el) => (this.innerElement = el)}\n class={{\n [`ic-loading-${internalType}-inner`]: true,\n \"inner-label\": !!innerLabel,\n }}\n >\n {innerLabel && size === \"small\" && (\n <ic-typography variant=\"subtitle-small\" class=\"inner-text\">\n {innerLabel}\n </ic-typography>\n )}\n {internalType === \"circular\" && (\n <svg\n class=\"ic-loading-circular-svg\"\n viewBox={`0 0 ${circularDiameter} ${circularDiameter}`}\n >\n <circle cx={x} cy={y} r={r}></circle>\n <circle\n style={{\n \"--circular-steps-max\": progress ? `${max}` : undefined,\n \"--progress-value\":\n progress !== undefined ? `${progress}` : undefined,\n \"--stroke-dasharray\": dashArray,\n \"--stroke-dashoffset\": dashOffset,\n }}\n cx={x}\n cy={y}\n r={r}\n ></circle>\n </svg>\n )}\n </div>\n </div>\n {label && size !== \"icon\" && (\n <ic-typography\n id=\"ic-loading-label\"\n class=\"ic-loading-label\"\n role=\"alert\"\n variant={this.getLabelVariant()}\n >\n <p>{indicatorLabel}</p>\n </ic-typography>\n )}\n </div>\n </Host>\n );\n }\n}\n","@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-tooltip: z-index of tooltip\n */\n\n:host(.ic-tooltip) {\n width: max-content;\n height: max-content;\n\n --ic-tooltip-background: var(--ic-color-background-primary-dark);\n --ic-tooltip-text: var(--ic-color-text-primary-dark);\n --ic-tooltip-border: var(--ic-color-border-neutral-grey-light);\n}\n\n:host(.ic-tooltip) .ic-tooltip-container {\n background-color: var(--ic-tooltip-background);\n text-align: center;\n padding: var(--ic-space-xxxs) var(--ic-space-xs);\n border-radius: var(--ic-border-radius);\n border: var(--ic-border-width) solid var(--ic-tooltip-border);\n position: absolute;\n max-width: 20rem;\n display: none;\n z-index: var(--ic-z-index-tooltip);\n box-shadow: var(--ic-elevation-overlay);\n width: max-content;\n}\n\n:host(.ic-tooltip) ic-typography {\n --ic-typography-color: var(--ic-tooltip-text);\n}\n\n:host(.tooltip-navigation-item:not(.tooltip-navigation-item-side-nav-collapsed))\n .ic-tooltip-container,\n:host(.tooltip-disabled) .ic-tooltip-container {\n display: none !important;\n}\n\n:host(.tooltip-long-label-navigation-item-side-nav-expanded)\n .ic-tooltip-container[data-show] {\n display: block !important;\n}\n\n:host(.ic-tooltip) .ic-tooltip-arrow,\n:host(.ic-tooltip) .ic-tooltip-arrow::before {\n position: absolute;\n background: inherit;\n}\n\n:host(.ic-tooltip) .ic-tooltip-arrow {\n visibility: hidden;\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n}\n\n:host(.ic-tooltip) .ic-tooltip-arrow::before {\n visibility: visible;\n content: \"\";\n border: var(--ic-border-width) solid var(--ic-tooltip-border);\n width: 100%;\n height: 100%;\n}\n\n:host(.ic-tooltip) .ic-tooltip-container[data-show] {\n display: block;\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"top\"]\n > .ic-tooltip-arrow {\n height: var(--ic-space-xxxs);\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"top\"]\n > .ic-tooltip-arrow::before {\n border-radius: 0 0 var(--ic-border-radius) var(--ic-border-radius);\n left: 0;\n top: var(--ic-space-xxxs);\n border-top: 0;\n transform: translateX(var(--tooltip-arrow-translate));\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"bottom\"]\n > .ic-tooltip-arrow {\n top: calc(-1 * var(--ic-space-xxs));\n height: var(--ic-space-xxxs);\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"bottom\"]\n > .ic-tooltip-arrow::before {\n border-radius: var(--ic-border-radius) var(--ic-border-radius) 0 0;\n left: 0;\n top: var(--ic-space-1px);\n border-bottom: 0;\n transform: translateX(var(--tooltip-arrow-translate));\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"left\"]\n > .ic-tooltip-arrow {\n width: var(--ic-space-xxxs);\n right: calc(-1 * var(--ic-space-1px));\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"left\"]\n > .ic-tooltip-arrow::before {\n border-radius: 0 var(--ic-border-radius) var(--ic-border-radius) 0;\n border-left: 0;\n top: calc(-1 * var(--ic-space-1px));\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"right\"]\n > .ic-tooltip-arrow {\n width: var(--ic-space-xxxs);\n left: calc(-1 * var(--ic-space-xxs));\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"right\"]\n > .ic-tooltip-arrow::before {\n border-radius: var(--ic-border-radius) 0 0 var(--ic-border-radius);\n border-right: 0;\n top: calc(-1 * var(--ic-space-1px));\n}\n\n:host(.ic-tooltip-on-dialog) {\n display: inline-block;\n}\n\n@media screen and (max-width: 576px) {\n :host(.ic-tooltip) .ic-tooltip-container {\n max-width: 18.875rem;\n }\n}\n\n@media (forced-colors: active) {\n :host(.ic-tooltip) .ic-tooltip-container,\n :host(.ic-tooltip) .ic-tooltip-arrow::before {\n border: var(--ic-border-hc);\n }\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n h,\n Method,\n State,\n Watch,\n} from \"@stencil/core\";\nimport { Instance, Options, createPopper } from \"@popperjs/core\";\nimport { IcTooltipPlacements } from \"./ic-tooltip.types\";\nimport {\n isSafari,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport { IcThemeMode } from \"../../utils/types\";\n\n@Component({\n tag: \"ic-tooltip\",\n styleUrl: \"ic-tooltip.css\",\n shadow: true,\n})\nexport class Tooltip {\n private arrow: HTMLDivElement;\n private delayedHideEvents = [\"mouseleave\"];\n private dialogContentArea: HTMLDivElement | null;\n private instantHideEvents = [\"focusout\"];\n private mouseOverTool: boolean = false;\n private persistTooltip = false;\n private popperInstance: Instance;\n private showEvents = [\n !this.disableHover && \"mouseenter\",\n !this.disableHover && \"focusin\",\n !this.disableClick && \"click\",\n ];\n private toolTip: HTMLDivElement;\n\n @Element() el: HTMLIcTooltipElement;\n\n /**\n * If `true`, the tooltip will not be displayed on click, it will require hover or using the display method.\n */\n @Prop() disableClick?: boolean = false;\n\n @Watch(\"disableClick\")\n watchDisableClickHandler(): void {\n if (this.disableClick) {\n this.hide();\n }\n this.updateTooltipEvents();\n }\n\n /**\n * If `true`, the tooltip will not be displayed on hover, it will require a click.\n */\n @Prop() disableHover?: boolean = false;\n\n @Watch(\"disableHover\")\n watchDisableHoverHandler(): void {\n if (this.disableHover) {\n this.hide();\n }\n this.updateTooltipEvents();\n }\n\n /**\n * Setting to `true` can help in situations where tooltip content is clipped by a parent element.\n */\n @Prop() fixedPositioning: boolean = false;\n\n /**\n * The number of lines to display before truncating the text.\n */\n @Prop() maxLines?: number;\n\n /**\n * The position of the tooltip in relation to the parent element.\n */\n @Prop() placement?: IcTooltipPlacements = \"bottom\";\n\n /**\n * @internal Sets the tooltip to aria-hidden, when used as part of components that are already announced.\n */\n @Prop() silent?: boolean = false;\n\n /**\n * The ID of the element the tooltip is describing - for when aria-labelledby or aria-describedby is used.\n */\n @Prop({ reflect: true }) target?: string;\n\n /**\n * Sets the tooltip to the dark or light theme colors. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The text to display on the tooltip.\n */\n @Prop() label!: string;\n @Watch(\"label\")\n watchLabelHandler(): void {\n if (this.toolTip?.hasAttribute(\"data-show\") && this.popperInstance) {\n this.popperInstance.update();\n }\n }\n\n @State() popperProps: Partial<Options> = {};\n\n /**\n * @internal This method allows props to be added to the PopperJS createPopper instance outside of tooltip\n * @param props object - createPopper props set externally\n */\n @Method()\n async setExternalPopperProps<T extends Partial<Options>>(props: T) {\n this.popperProps = props;\n }\n\n disconnectedCallback(): void {\n this.manageEventListeners(\"remove\");\n if (this.popperInstance !== undefined) {\n this.popperInstance.destroy();\n }\n }\n\n componentDidLoad(): void {\n this.manageEventListeners(\"add\");\n\n let dialog: HTMLIcDialogElement | null;\n if ((this.el.getRootNode() as ShadowRoot).host) {\n dialog = (this.el.getRootNode() as ShadowRoot).host.closest(\"ic-dialog\");\n } else {\n dialog = this.el.closest(\"ic-dialog\");\n }\n this.dialogContentArea =\n dialog?.shadowRoot?.querySelector(\".content-area\") ?? null;\n\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Tooltip\"\n );\n }\n\n componentDidRender(): void {\n const typographyEl = this.el.shadowRoot?.querySelector(\n \".ic-tooltip-container > ic-typography\"\n );\n this.maxLines &&\n this.maxLines > 0 &&\n typographyEl?.setAttribute(\n \"style\",\n `--truncation-max-lines: ${this.maxLines}`\n );\n }\n /**\n * Method to programmatically show/hide the tooltip without needing to interact with an anchor element\n * @param show Whether to show or hide the tooltip\n * @param persistTooltip Whether the tooltip should stay on the screen when actions are performed that would previously dismiss the tooltip, such as on hover\n */\n @Method()\n async displayTooltip(show: boolean, persistTooltip?: boolean): Promise<void> {\n this.persistTooltip = !!persistTooltip;\n show ? this.show() : this.hide();\n }\n\n /**\n * @internal Method to return if tooltip is currently visible.\n */\n @Method()\n async isTooltipVisible(): Promise<boolean> {\n return Promise.resolve(this.toolTip.hasAttribute(\"data-show\"));\n }\n\n private show = () => {\n if (this.label) {\n this.toolTip.setAttribute(\"data-show\", \"\");\n\n if (this.dialogContentArea) {\n this.el.classList.add(\"ic-tooltip-on-dialog\");\n }\n\n this.popperInstance = createPopper(this.el, this.toolTip, {\n strategy: this.fixedPositioning ? \"fixed\" : \"absolute\",\n placement: this.placement,\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 10],\n },\n },\n {\n name: \"arrow\",\n options: {\n element: this.arrow,\n },\n },\n {\n name: \"eventListeners\",\n options: { scroll: false, resize: false },\n },\n ...(this.dialogContentArea\n ? [\n {\n name: \"preventOverflow\",\n options: {\n boundary: this.dialogContentArea,\n padding: 8,\n },\n },\n {\n name: \"flip\",\n options: {\n boundary: this.dialogContentArea,\n },\n },\n ]\n : []),\n ],\n ...this.popperProps,\n });\n } else {\n console.warn(`Tooltip can't display without prop 'label' set`);\n }\n };\n\n private hide = () => {\n if (this.toolTip !== undefined) {\n this.toolTip.removeAttribute(\"data-show\");\n this.persistTooltip = false;\n }\n if (this.popperInstance !== undefined) {\n this.popperInstance.destroy();\n }\n };\n\n private checkCloseTooltip = () => {\n setTimeout(() => {\n if (!this.mouseOverTool && !this.persistTooltip) {\n this.hide();\n }\n }, 100);\n };\n\n private mouseEnterTooltip = () => {\n this.mouseOverTool = true;\n };\n\n private mouseLeaveTooltip = () => {\n this.mouseOverTool = false;\n this.checkCloseTooltip();\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\" && !this.persistTooltip) {\n this.hide();\n }\n };\n\n private manageEventListeners = (action: \"add\" | \"remove\") => {\n const method =\n action === \"add\" ? \"addEventListener\" : \"removeEventListener\";\n\n this.showEvents.forEach((event) => {\n if (event) {\n this.el[method](event, this.show);\n if (this.toolTip !== undefined) {\n this.toolTip[method](event, this.mouseEnterTooltip);\n }\n }\n });\n\n if (!this.persistTooltip) {\n this.instantHideEvents.forEach((event) => {\n this.el[method](event, this.hide);\n });\n }\n\n this.delayedHideEvents.forEach((event) => {\n this.el[method](event, this.checkCloseTooltip);\n if (this.toolTip !== undefined) {\n this.toolTip[method](event, this.mouseLeaveTooltip);\n }\n });\n\n document[method](\"keydown\", this.handleKeyDown as EventListener);\n };\n\n private updateTooltipEvents = () => {\n this.manageEventListeners(\"remove\");\n this.showEvents = [\n !this.disableHover && \"mouseenter\",\n !this.disableHover && \"focusin\",\n !this.disableClick && \"click\",\n ];\n this.manageEventListeners(\"add\");\n };\n\n render() {\n const { label, maxLines, silent, theme } = this;\n return (\n <Host\n class={{\n \"ic-tooltip\": true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n aria-label={isSafari && label} // accessible name needs to be in light dom to be announced by VoiceOver. Replace in v4 as aria-label on element with no role is not well-supported\n >\n <div\n ref={(el) => (this.toolTip = el as HTMLDivElement)}\n role=\"tooltip\"\n class=\"ic-tooltip-container\"\n aria-hidden={`${silent}`}\n >\n <ic-typography maxLines={maxLines} variant=\"caption\">\n {label}\n </ic-typography>\n <div\n ref={(el) => (this.arrow = el as HTMLDivElement)}\n class=\"ic-tooltip-arrow\"\n ></div>\n </div>\n <slot></slot>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|