@ukic/web-components 3.9.0 → 3.11.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-8354f6e6.js +189 -0
- package/dist/cjs/constants-8354f6e6.js.map +1 -0
- package/dist/cjs/core.cjs.js +1 -1
- package/dist/cjs/{helpers-a0e78e2e.js → helpers-ffe1c2d9.js} +6 -187
- package/dist/cjs/helpers-ffe1c2d9.js.map +1 -0
- package/dist/cjs/ic-accordion-group.cjs.entry.js +2 -1
- package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-accordion.cjs.entry.js +2 -1
- package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-action-chip.cjs.entry.js +2 -1
- package/dist/cjs/ic-action-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-alert.cjs.entry.js +4 -3
- package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-back-to-top.cjs.entry.js +2 -1
- package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-badge.cjs.entry.js +2 -1
- package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +2 -1
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-breadcrumb.cjs.entry.js +2 -1
- package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js +27 -20
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-card-vertical.cjs.entry.js +2 -1
- package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox-group.cjs.entry.js +4 -3
- package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox.cjs.entry.js +5 -4
- package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-chip.cjs.entry.js +2 -1
- package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
- package/dist/cjs/ic-data-row.cjs.entry.js +4 -3
- package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-dialog.cjs.entry.js +7 -4
- package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-divider.cjs.entry.js +2 -1
- package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-empty-state.cjs.entry.js +4 -3
- package/dist/cjs/ic-empty-state.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -1
- package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer-link.cjs.entry.js +4 -3
- package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer.cjs.entry.js +10 -9
- package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-hero.cjs.entry.js +6 -5
- package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +8 -7
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +12 -11
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-label_2.cjs.entry.js +26 -12
- package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-layout-grid-item.cjs.entry.js +2 -2
- package/dist/cjs/ic-layout-grid.cjs.entry.js +2 -2
- package/dist/cjs/ic-link.cjs.entry.js +5 -4
- package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu-group.cjs.entry.js +3 -2
- package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu-item.cjs.entry.js +2 -1
- package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-button.cjs.entry.js +3 -2
- package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js +3 -2
- package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +2 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-menu.cjs.entry.js +6 -5
- package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-page-header.cjs.entry.js +8 -7
- package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination-item.cjs.entry.js +3 -2
- package/dist/cjs/ic-pagination-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination.cjs.entry.js +6 -5
- package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-popover-menu.cjs.entry.js +6 -5
- package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js +6 -5
- package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js +6 -5
- package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +11 -10
- package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
- package/dist/cjs/ic-select.cjs.entry.js +13 -11
- package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-side-navigation.cjs.entry.js +6 -5
- package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
- package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
- package/dist/cjs/ic-status-tag.cjs.entry.js +4 -3
- package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-step.cjs.entry.js +15 -14
- package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-stepper.cjs.entry.js +4 -3
- package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-switch.cjs.entry.js +6 -5
- package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-context.cjs.entry.js +10 -2
- package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-group.cjs.entry.js +4 -3
- package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
- package/dist/cjs/ic-tab.cjs.entry.js +2 -1
- package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-text-field.cjs.entry.js +32 -23
- package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-theme.cjs.entry.js +5 -4
- package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
- package/dist/cjs/ic-toast.cjs.entry.js +7 -6
- package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js +4 -3
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toggle-button.cjs.entry.js +4 -3
- package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-top-navigation.cjs.entry.js +2 -1
- package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-typography.cjs.entry.js +4 -3
- package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
- package/dist/cjs/index.cjs.js +15 -0
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/assets/ai-icon.svg +1 -1
- package/dist/collection/assets/error-icon.svg +4 -4
- package/dist/collection/assets/info-icon.svg +4 -4
- package/dist/collection/assets/neutral-icon.svg +4 -4
- package/dist/collection/assets/success-icon.svg +4 -4
- package/dist/collection/assets/warning-icon.svg +4 -4
- package/dist/collection/components/ic-alert/ic-alert.js +1 -1
- package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
- package/dist/collection/components/ic-back-to-top/ic-back-to-top.stories.js +179 -0
- package/dist/collection/components/ic-button/ic-button.js +14 -8
- package/dist/collection/components/ic-button/ic-button.js.map +1 -1
- package/dist/collection/components/ic-button/ic-button.stories.js +191 -0
- package/dist/collection/components/ic-card-vertical/ic-card-vertical.stories.js +10 -10
- package/dist/collection/components/ic-checkbox/ic-checkbox.css +5 -0
- package/dist/collection/components/ic-checkbox/ic-checkbox.js +2 -2
- package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +2 -2
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +11 -28
- package/dist/collection/components/ic-data-list/ic-data-list.js +2 -2
- package/dist/collection/components/ic-data-list/ic-data-list.stories.js +30 -6
- package/dist/collection/components/ic-data-row/ic-data-row.js +2 -2
- package/dist/collection/components/ic-dialog/ic-dialog.js +5 -3
- package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
- package/dist/collection/components/ic-dialog/ic-dialog.stories.js +40 -1
- package/dist/collection/components/ic-empty-state/ic-empty-state.js +2 -2
- package/dist/collection/components/ic-footer/ic-footer.stories.js +72 -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-hero/ic-hero.stories.js +72 -0
- package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.css +8 -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.js +3 -3
- package/dist/collection/components/ic-input-container/ic-input-container.js +2 -2
- package/dist/collection/components/ic-input-label/ic-input-label.js +2 -2
- package/dist/collection/components/ic-input-validation/ic-input-validation.css +5 -0
- package/dist/collection/components/ic-input-validation/ic-input-validation.js +22 -6
- package/dist/collection/components/ic-input-validation/ic-input-validation.js.map +1 -1
- package/dist/collection/components/ic-input-validation/ic-input-validation.types.js.map +1 -1
- package/dist/collection/components/ic-layout-grid/ic-layout-grid.js +2 -2
- package/dist/collection/components/ic-layout-grid-item/ic-layout-grid-item.js +2 -2
- package/dist/collection/components/ic-link/ic-link.js +1 -1
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +5 -5
- package/dist/collection/components/ic-menu/ic-menu.css +2 -2
- package/dist/collection/components/ic-menu/ic-menu.js +4 -4
- package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
- package/dist/collection/components/ic-menu-group/ic-menu-group.js +1 -1
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +1 -1
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -4
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
- package/dist/collection/components/ic-page-header/ic-page-header.js +6 -6
- package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
- package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +1 -1
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +4 -4
- package/dist/collection/components/ic-radio-group/ic-radio-group.js +4 -4
- package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
- package/dist/collection/components/ic-radio-group/ic-radio-group.stories.js +14 -15
- package/dist/collection/components/ic-radio-option/ic-radio-option.js +4 -4
- package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
- package/dist/collection/components/ic-search-bar/ic-search-bar.js +9 -9
- package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
- package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
- package/dist/collection/components/ic-section-container/ic-section-container.stories.js +39 -0
- package/dist/collection/components/ic-select/ic-select.js +10 -9
- package/dist/collection/components/ic-select/ic-select.js.map +1 -1
- package/dist/collection/components/ic-select/ic-select_(multi).stories.js +8 -6
- package/dist/collection/components/ic-select/ic-select_(searchable).stories.js +6 -3
- package/dist/collection/components/ic-select/ic-select_(single).stories.js +8 -6
- package/dist/collection/components/ic-select/test/a11y/ic-select.test.a11y.js +60 -0
- package/dist/collection/components/ic-select/test/a11y/ic-select.test.a11y.js.map +1 -0
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +4 -4
- package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
- package/dist/collection/components/ic-skip-link/ic-skip-link.js +2 -2
- package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
- package/dist/collection/components/ic-step/ic-step.js +13 -13
- package/dist/collection/components/ic-stepper/ic-stepper.js +2 -2
- package/dist/collection/components/ic-switch/ic-switch.js +4 -4
- package/dist/collection/components/ic-tab-context/ic-tab-context.js +27 -2
- package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
- package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
- package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
- package/dist/collection/components/ic-text-field/ic-text-field.css +4 -0
- package/dist/collection/components/ic-text-field/ic-text-field.js +53 -19
- package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
- package/dist/collection/components/ic-text-field/ic-text-field.stories.js +102 -4
- package/dist/collection/components/ic-theme/ic-theme.js +1 -1
- package/dist/collection/components/ic-toast/ic-toast.js +3 -3
- package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
- package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
- package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +2 -2
- package/dist/collection/components/ic-toggle-button/ic-toggle-button.js.map +1 -1
- package/dist/collection/components/ic-toggle-button/ic-toggle-button.stories.js +236 -0
- package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +2 -2
- package/dist/collection/components/ic-tooltip/ic-tooltip.js +6 -4
- package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
- package/dist/collection/components/ic-typography/ic-typography.js +2 -2
- package/dist/collection/index.js +1 -1
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/utils/types.js.map +1 -1
- package/dist/components/constants.js +176 -0
- package/dist/components/constants.js.map +1 -0
- package/dist/components/helpers.js +2 -174
- package/dist/components/helpers.js.map +1 -1
- package/dist/components/ic-action-chip.js +1 -1
- package/dist/components/ic-alert.js +3 -2
- package/dist/components/ic-alert.js.map +1 -1
- package/dist/components/ic-back-to-top.js +1 -1
- package/dist/components/ic-back-to-top.js.map +1 -1
- package/dist/components/ic-badge.js +1 -1
- package/dist/components/ic-breadcrumb-group.js +1 -1
- package/dist/components/ic-breadcrumb2.js +1 -1
- package/dist/components/ic-button2.js +17 -11
- package/dist/components/ic-button2.js.map +1 -1
- package/dist/components/ic-card-vertical.js +1 -1
- package/dist/components/ic-checkbox-group.js +3 -3
- package/dist/components/ic-checkbox.js +4 -4
- package/dist/components/ic-checkbox.js.map +1 -1
- package/dist/components/ic-chip.js +1 -1
- package/dist/components/ic-data-list.js +2 -2
- package/dist/components/ic-data-row.js +3 -3
- package/dist/components/ic-dialog.js +6 -4
- package/dist/components/ic-dialog.js.map +1 -1
- package/dist/components/ic-divider2.js +1 -1
- package/dist/components/ic-empty-state.js +3 -3
- package/dist/components/ic-footer-link-group.js +1 -1
- package/dist/components/ic-footer-link.js +3 -3
- package/dist/components/ic-footer.js +2 -1
- package/dist/components/ic-footer.js.map +1 -1
- package/dist/components/ic-hero.js +5 -5
- package/dist/components/ic-horizontal-scroll2.js +7 -7
- package/dist/components/ic-horizontal-scroll2.js.map +1 -1
- package/dist/components/ic-input-component-container2.js +5 -4
- package/dist/components/ic-input-component-container2.js.map +1 -1
- package/dist/components/ic-input-container2.js +2 -2
- package/dist/components/ic-input-label2.js +3 -3
- package/dist/components/ic-input-validation2.js +23 -7
- package/dist/components/ic-input-validation2.js.map +1 -1
- package/dist/components/ic-layout-grid-item.js +2 -2
- package/dist/components/ic-layout-grid.js +2 -2
- package/dist/components/ic-link2.js +3 -2
- package/dist/components/ic-link2.js.map +1 -1
- package/dist/components/ic-loading-indicator2.js +5 -5
- package/dist/components/ic-menu-group.js +2 -2
- package/dist/components/ic-menu-item2.js +1 -1
- package/dist/components/ic-menu2.js +6 -6
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-navigation-button.js +2 -1
- package/dist/components/ic-navigation-button.js.map +1 -1
- package/dist/components/ic-navigation-group.js +2 -2
- package/dist/components/ic-navigation-item.js +1 -1
- package/dist/components/ic-navigation-menu2.js +5 -5
- package/dist/components/ic-navigation-menu2.js.map +1 -1
- package/dist/components/ic-page-header.js +7 -7
- package/dist/components/ic-pagination-item2.js +2 -2
- package/dist/components/ic-pagination.js +4 -4
- package/dist/components/ic-pagination.js.map +1 -1
- package/dist/components/ic-popover-menu.js +5 -5
- package/dist/components/ic-popover-menu.js.map +1 -1
- package/dist/components/ic-radio-group.js +5 -5
- package/dist/components/ic-radio-group.js.map +1 -1
- 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 +10 -10
- package/dist/components/ic-search-bar.js.map +1 -1
- package/dist/components/ic-section-container2.js +2 -2
- package/dist/components/ic-select.js +12 -10
- package/dist/components/ic-select.js.map +1 -1
- package/dist/components/ic-side-navigation.js +5 -5
- 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-status-tag.js.map +1 -1
- package/dist/components/ic-step.js +14 -14
- package/dist/components/ic-stepper.js +2 -2
- package/dist/components/ic-switch.js +5 -5
- package/dist/components/ic-tab-context.js +11 -2
- package/dist/components/ic-tab-context.js.map +1 -1
- package/dist/components/ic-tab-group.js +2 -2
- package/dist/components/ic-tab-panel.js +2 -2
- package/dist/components/ic-tab-panel.js.map +1 -1
- package/dist/components/ic-text-field.js +31 -21
- package/dist/components/ic-text-field.js.map +1 -1
- package/dist/components/ic-theme.js +3 -2
- package/dist/components/ic-theme.js.map +1 -1
- package/dist/components/ic-toast-region.js +1 -1
- package/dist/components/ic-toast.js +5 -4
- package/dist/components/ic-toast.js.map +1 -1
- package/dist/components/ic-toggle-button-group.js +2 -2
- package/dist/components/ic-toggle-button.js +3 -3
- package/dist/components/ic-toggle-button.js.map +1 -1
- package/dist/components/ic-tooltip2.js +6 -4
- package/dist/components/ic-tooltip2.js.map +1 -1
- package/dist/components/ic-top-navigation.js +1 -1
- package/dist/components/ic-typography2.js +2 -2
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/core/core.css +32 -4
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/index.esm.js +1 -1
- package/dist/core/p-01aeffca.entry.js +2 -0
- package/dist/core/{p-b52000d9.entry.js.map → p-01aeffca.entry.js.map} +1 -1
- package/dist/core/p-0201abbf.entry.js +2 -0
- package/dist/core/{p-ea778379.entry.js.map → p-0201abbf.entry.js.map} +1 -1
- package/dist/core/p-02c2c31f.entry.js +2 -0
- package/dist/core/{p-6a576a8b.entry.js.map → p-02c2c31f.entry.js.map} +1 -1
- package/dist/core/p-0809aff4.entry.js +2 -0
- package/dist/core/{p-1e2f40b0.entry.js.map → p-0809aff4.entry.js.map} +1 -1
- package/dist/core/p-19366be6.entry.js +2 -0
- package/dist/core/{p-19cf2327.entry.js.map → p-19366be6.entry.js.map} +1 -1
- package/dist/core/p-1ab63899.entry.js +2 -0
- package/dist/core/{p-ef4b5469.entry.js.map → p-1ab63899.entry.js.map} +1 -1
- package/dist/core/p-1d4dfef1.entry.js +2 -0
- package/dist/core/{p-661ae402.entry.js.map → p-1d4dfef1.entry.js.map} +1 -1
- package/dist/core/p-1dab47b1.entry.js +2 -0
- package/dist/core/{p-72a9909c.entry.js.map → p-1dab47b1.entry.js.map} +1 -1
- package/dist/core/p-23b223bf.entry.js +2 -0
- package/dist/core/{p-f309d3af.entry.js.map → p-23b223bf.entry.js.map} +1 -1
- package/dist/core/p-35ee7c53.entry.js +2 -0
- package/dist/core/{p-9eeb5e85.entry.js.map → p-35ee7c53.entry.js.map} +1 -1
- package/dist/core/{p-287e5c17.entry.js → p-37d217b5.entry.js} +2 -2
- package/dist/core/{p-df88ff5b.entry.js → p-37daa8fe.entry.js} +2 -2
- package/dist/core/p-3a78bf6e.entry.js +2 -0
- package/dist/core/{p-2f4f392f.entry.js.map → p-3a78bf6e.entry.js.map} +1 -1
- package/dist/core/p-3f55bb5b.entry.js +2 -0
- package/dist/core/p-3f55bb5b.entry.js.map +1 -0
- package/dist/core/p-402813c9.entry.js +2 -0
- package/dist/core/{p-9323c234.entry.js.map → p-402813c9.entry.js.map} +1 -1
- package/dist/core/p-402c2455.entry.js +2 -0
- package/dist/core/{p-5daa7915.entry.js.map → p-402c2455.entry.js.map} +1 -1
- package/dist/core/p-46423f42.entry.js +2 -0
- package/dist/core/{p-b0d488d0.entry.js.map → p-46423f42.entry.js.map} +1 -1
- package/dist/core/{p-45dd12ee.entry.js → p-4747c39f.entry.js} +2 -2
- package/dist/core/p-4747c39f.entry.js.map +1 -0
- package/dist/core/{p-ffac41d6.entry.js → p-492fcb51.entry.js} +2 -2
- package/dist/core/p-4a2c02b2.entry.js +2 -0
- package/dist/core/{p-711bfeed.entry.js.map → p-4a2c02b2.entry.js.map} +1 -1
- package/dist/core/p-4dd8add9.entry.js +2 -0
- package/dist/core/{p-6ed0ac48.entry.js.map → p-4dd8add9.entry.js.map} +1 -1
- package/dist/core/p-515ded3f.entry.js +2 -0
- package/dist/core/{p-41f92698.entry.js.map → p-515ded3f.entry.js.map} +1 -1
- package/dist/core/p-52a2f800.entry.js +2 -0
- package/dist/core/p-52a2f800.entry.js.map +1 -0
- package/dist/core/{p-6e8ef73c.entry.js → p-57721431.entry.js} +2 -2
- package/dist/core/p-57803949.entry.js +2 -0
- package/dist/core/{p-f6a02202.entry.js.map → p-57803949.entry.js.map} +1 -1
- package/dist/core/p-58b8d154.entry.js +2 -0
- package/dist/core/{p-cbe0d1bb.entry.js.map → p-58b8d154.entry.js.map} +1 -1
- package/dist/core/p-5c6efed3.entry.js +2 -0
- package/dist/core/{p-3dc54847.entry.js.map → p-5c6efed3.entry.js.map} +1 -1
- package/dist/core/{p-5fbc8e62.entry.js → p-5fcfcfb6.entry.js} +2 -2
- package/dist/core/p-641c26c4.js +2 -0
- package/dist/core/p-641c26c4.js.map +1 -0
- package/dist/core/p-65a3c216.entry.js +2 -0
- package/dist/core/{p-15dbccc2.entry.js.map → p-65a3c216.entry.js.map} +1 -1
- package/dist/core/p-69412f61.entry.js +2 -0
- package/dist/core/{p-21cf2beb.entry.js.map → p-69412f61.entry.js.map} +1 -1
- package/dist/core/p-69cc0f7d.entry.js +2 -0
- package/dist/core/{p-6014ab64.entry.js.map → p-69cc0f7d.entry.js.map} +1 -1
- package/dist/core/p-6ceedfa8.js +2 -0
- package/dist/core/p-6ceedfa8.js.map +1 -0
- package/dist/core/p-75a9b2e4.entry.js +2 -0
- package/dist/core/p-75a9b2e4.entry.js.map +1 -0
- package/dist/core/p-75e0278a.entry.js +2 -0
- package/dist/core/{p-4ca782eb.entry.js.map → p-75e0278a.entry.js.map} +1 -1
- package/dist/core/p-8326db29.entry.js +2 -0
- package/dist/core/{p-3e5d7a3d.entry.js.map → p-8326db29.entry.js.map} +1 -1
- package/dist/core/p-8af9413c.entry.js +2 -0
- package/dist/core/p-8af9413c.entry.js.map +1 -0
- package/dist/core/p-8d1fbbeb.entry.js +2 -0
- package/dist/core/{p-7cd4f6a6.entry.js.map → p-8d1fbbeb.entry.js.map} +1 -1
- package/dist/core/p-8d29c0fa.entry.js +2 -0
- package/dist/core/{p-52748d5c.entry.js.map → p-8d29c0fa.entry.js.map} +1 -1
- package/dist/core/{p-ea061ccf.entry.js → p-9a8bcb78.entry.js} +2 -2
- package/dist/core/{p-8b5022bc.entry.js → p-9cf6ccfd.entry.js} +2 -2
- package/dist/core/p-a468df37.entry.js +2 -0
- package/dist/core/{p-fc3b1155.entry.js.map → p-a468df37.entry.js.map} +1 -1
- package/dist/core/p-a48b581a.entry.js +2 -0
- package/dist/core/{p-9f36791b.entry.js.map → p-a48b581a.entry.js.map} +1 -1
- package/dist/core/p-a4e67ab8.entry.js +2 -0
- package/dist/core/{p-4d1a3036.entry.js.map → p-a4e67ab8.entry.js.map} +1 -1
- package/dist/core/p-aab838e5.entry.js +2 -0
- package/dist/core/{p-9c013333.entry.js.map → p-aab838e5.entry.js.map} +1 -1
- package/dist/core/p-abb9dccb.entry.js +2 -0
- package/dist/core/{p-af9c391d.entry.js.map → p-abb9dccb.entry.js.map} +1 -1
- package/dist/core/{p-999f0a5d.entry.js → p-b4a2f6fa.entry.js} +2 -2
- package/dist/core/p-b80d408f.entry.js +2 -0
- package/dist/core/p-b80d408f.entry.js.map +1 -0
- package/dist/core/p-b9018261.entry.js +2 -0
- package/dist/core/{p-0d680d19.entry.js.map → p-b9018261.entry.js.map} +1 -1
- package/dist/core/p-c81ffadd.entry.js +2 -0
- package/dist/core/{p-595a4d06.entry.js.map → p-c81ffadd.entry.js.map} +1 -1
- package/dist/core/p-cd63bcf2.entry.js +2 -0
- package/dist/core/p-cd63bcf2.entry.js.map +1 -0
- package/dist/core/p-cdd04ec2.entry.js +2 -0
- package/dist/core/{p-41ef74a7.entry.js.map → p-cdd04ec2.entry.js.map} +1 -1
- package/dist/core/p-d27e46ac.entry.js +2 -0
- package/dist/core/{p-cf631191.entry.js.map → p-d27e46ac.entry.js.map} +1 -1
- package/dist/core/p-d35f8bd4.entry.js +2 -0
- package/dist/core/{p-493eaabb.entry.js.map → p-d35f8bd4.entry.js.map} +1 -1
- package/dist/core/p-d6b3e02f.entry.js +2 -0
- package/dist/core/p-d6b3e02f.entry.js.map +1 -0
- package/dist/core/p-d7bd5aa0.entry.js +2 -0
- package/dist/core/p-d7bd5aa0.entry.js.map +1 -0
- package/dist/core/p-ed69f110.entry.js +2 -0
- package/dist/core/p-ed69f110.entry.js.map +1 -0
- package/dist/core/p-eddc5517.entry.js +2 -0
- package/dist/core/{p-313a8a2f.entry.js.map → p-eddc5517.entry.js.map} +1 -1
- package/dist/core/p-f045f59d.entry.js +2 -0
- package/dist/core/{p-317e005f.entry.js.map → p-f045f59d.entry.js.map} +1 -1
- package/dist/core/p-f086d6df.entry.js +2 -0
- package/dist/core/{p-43324339.entry.js.map → p-f086d6df.entry.js.map} +1 -1
- package/dist/core/p-f17e1525.entry.js +2 -0
- package/dist/core/{p-a77364f5.entry.js.map → p-f17e1525.entry.js.map} +1 -1
- package/dist/core/p-f78f34ce.entry.js +2 -0
- package/dist/core/{p-1d37ac1c.entry.js.map → p-f78f34ce.entry.js.map} +1 -1
- package/dist/core/p-fd488ed7.entry.js +2 -0
- package/dist/core/{p-a602a8e1.entry.js.map → p-fd488ed7.entry.js.map} +1 -1
- package/dist/core/p-ffc608a1.entry.js +2 -0
- package/dist/core/{p-8a4b12e4.entry.js.map → p-ffc608a1.entry.js.map} +1 -1
- package/dist/esm/constants-48759bda.js +176 -0
- package/dist/esm/constants-48759bda.js.map +1 -0
- package/dist/esm/core.js +1 -1
- package/dist/esm/{helpers-56631aa0.js → helpers-d8189e9d.js} +3 -175
- package/dist/esm/helpers-d8189e9d.js.map +1 -0
- package/dist/esm/ic-accordion-group.entry.js +2 -1
- package/dist/esm/ic-accordion-group.entry.js.map +1 -1
- package/dist/esm/ic-accordion.entry.js +2 -1
- package/dist/esm/ic-accordion.entry.js.map +1 -1
- package/dist/esm/ic-action-chip.entry.js +2 -1
- package/dist/esm/ic-action-chip.entry.js.map +1 -1
- package/dist/esm/ic-alert.entry.js +3 -2
- package/dist/esm/ic-alert.entry.js.map +1 -1
- package/dist/esm/ic-back-to-top.entry.js +2 -1
- package/dist/esm/ic-back-to-top.entry.js.map +1 -1
- package/dist/esm/ic-badge.entry.js +2 -1
- package/dist/esm/ic-badge.entry.js.map +1 -1
- package/dist/esm/ic-breadcrumb-group.entry.js +2 -1
- package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
- package/dist/esm/ic-breadcrumb.entry.js +2 -1
- package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
- package/dist/esm/ic-button_3.entry.js +25 -18
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-card-vertical.entry.js +2 -1
- package/dist/esm/ic-card-vertical.entry.js.map +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +4 -3
- package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
- package/dist/esm/ic-checkbox.entry.js +5 -4
- package/dist/esm/ic-checkbox.entry.js.map +1 -1
- package/dist/esm/ic-chip.entry.js +2 -1
- package/dist/esm/ic-chip.entry.js.map +1 -1
- package/dist/esm/ic-data-list.entry.js +2 -2
- package/dist/esm/ic-data-row.entry.js +4 -3
- package/dist/esm/ic-data-row.entry.js.map +1 -1
- package/dist/esm/ic-dialog.entry.js +7 -4
- package/dist/esm/ic-dialog.entry.js.map +1 -1
- package/dist/esm/ic-divider.entry.js +2 -1
- package/dist/esm/ic-divider.entry.js.map +1 -1
- package/dist/esm/ic-empty-state.entry.js +4 -3
- package/dist/esm/ic-empty-state.entry.js.map +1 -1
- package/dist/esm/ic-footer-link-group.entry.js +2 -1
- package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
- package/dist/esm/ic-footer-link.entry.js +4 -3
- package/dist/esm/ic-footer-link.entry.js.map +1 -1
- package/dist/esm/ic-footer.entry.js +2 -1
- package/dist/esm/ic-footer.entry.js.map +1 -1
- package/dist/esm/ic-hero.entry.js +6 -5
- package/dist/esm/ic-hero.entry.js.map +1 -1
- package/dist/esm/ic-horizontal-scroll.entry.js +8 -7
- package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
- package/dist/esm/ic-input-component-container_3.entry.js +12 -11
- package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
- package/dist/esm/ic-input-label_2.entry.js +23 -9
- package/dist/esm/ic-input-label_2.entry.js.map +1 -1
- package/dist/esm/ic-layout-grid-item.entry.js +2 -2
- package/dist/esm/ic-layout-grid.entry.js +2 -2
- package/dist/esm/ic-link.entry.js +3 -2
- package/dist/esm/ic-link.entry.js.map +1 -1
- package/dist/esm/ic-menu-group.entry.js +3 -2
- package/dist/esm/ic-menu-group.entry.js.map +1 -1
- package/dist/esm/ic-menu-item.entry.js +2 -1
- package/dist/esm/ic-menu-item.entry.js.map +1 -1
- package/dist/esm/ic-navigation-button.entry.js +2 -1
- package/dist/esm/ic-navigation-button.entry.js.map +1 -1
- package/dist/esm/ic-navigation-group.entry.js +3 -2
- package/dist/esm/ic-navigation-group.entry.js.map +1 -1
- package/dist/esm/ic-navigation-item.entry.js +2 -1
- package/dist/esm/ic-navigation-item.entry.js.map +1 -1
- package/dist/esm/ic-navigation-menu.entry.js +6 -5
- package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
- package/dist/esm/ic-page-header.entry.js +8 -7
- package/dist/esm/ic-page-header.entry.js.map +1 -1
- package/dist/esm/ic-pagination-item.entry.js +3 -2
- package/dist/esm/ic-pagination-item.entry.js.map +1 -1
- package/dist/esm/ic-pagination.entry.js +6 -5
- package/dist/esm/ic-pagination.entry.js.map +1 -1
- package/dist/esm/ic-popover-menu.entry.js +6 -5
- package/dist/esm/ic-popover-menu.entry.js.map +1 -1
- package/dist/esm/ic-radio-group.entry.js +6 -5
- package/dist/esm/ic-radio-group.entry.js.map +1 -1
- package/dist/esm/ic-radio-option.entry.js +6 -5
- package/dist/esm/ic-radio-option.entry.js.map +1 -1
- package/dist/esm/ic-search-bar.entry.js +11 -10
- package/dist/esm/ic-search-bar.entry.js.map +1 -1
- package/dist/esm/ic-section-container.entry.js +2 -2
- package/dist/esm/ic-select.entry.js +12 -10
- package/dist/esm/ic-select.entry.js.map +1 -1
- package/dist/esm/ic-side-navigation.entry.js +6 -5
- package/dist/esm/ic-side-navigation.entry.js.map +1 -1
- package/dist/esm/ic-skeleton.entry.js +2 -2
- package/dist/esm/ic-skip-link.entry.js +2 -2
- package/dist/esm/ic-status-tag.entry.js +4 -3
- package/dist/esm/ic-status-tag.entry.js.map +1 -1
- package/dist/esm/ic-step.entry.js +15 -14
- package/dist/esm/ic-step.entry.js.map +1 -1
- package/dist/esm/ic-stepper.entry.js +4 -3
- package/dist/esm/ic-stepper.entry.js.map +1 -1
- package/dist/esm/ic-switch.entry.js +6 -5
- package/dist/esm/ic-switch.entry.js.map +1 -1
- package/dist/esm/ic-tab-context.entry.js +10 -2
- package/dist/esm/ic-tab-context.entry.js.map +1 -1
- package/dist/esm/ic-tab-group.entry.js +4 -3
- package/dist/esm/ic-tab-group.entry.js.map +1 -1
- package/dist/esm/ic-tab-panel.entry.js +2 -2
- package/dist/esm/ic-tab.entry.js +2 -1
- package/dist/esm/ic-tab.entry.js.map +1 -1
- package/dist/esm/ic-text-field.entry.js +30 -21
- package/dist/esm/ic-text-field.entry.js.map +1 -1
- package/dist/esm/ic-theme.entry.js +3 -2
- package/dist/esm/ic-theme.entry.js.map +1 -1
- package/dist/esm/ic-toast-region.entry.js +1 -1
- package/dist/esm/ic-toast.entry.js +5 -4
- package/dist/esm/ic-toast.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button-group.entry.js +4 -3
- package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button.entry.js +4 -3
- package/dist/esm/ic-toggle-button.entry.js.map +1 -1
- package/dist/esm/ic-top-navigation.entry.js +2 -1
- package/dist/esm/ic-top-navigation.entry.js.map +1 -1
- package/dist/esm/ic-typography.entry.js +4 -3
- package/dist/esm/ic-typography.entry.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-button/ic-button.d.ts +1 -0
- package/dist/types/components/ic-dialog/ic-dialog.d.ts +1 -0
- package/dist/types/components/ic-input-validation/ic-input-validation.d.ts +2 -0
- package/dist/types/components/ic-input-validation/ic-input-validation.types.d.ts +1 -1
- package/dist/types/components/ic-select/test/a11y/ic-select.test.a11y.d.ts +1 -0
- package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +4 -0
- package/dist/types/components/ic-text-field/ic-text-field.d.ts +6 -1
- package/dist/types/components.d.ts +14 -2
- package/dist/types/index.d.ts +1 -0
- package/dist/types/utils/types.d.ts +1 -0
- package/hydrate/index.js +244 -204
- package/hydrate/index.mjs +244 -204
- package/package.json +3 -3
- package/vscode-data.json +21 -0
- package/dist/cjs/helpers-a0e78e2e.js.map +0 -1
- package/dist/core/p-0d680d19.entry.js +0 -2
- package/dist/core/p-15dbccc2.entry.js +0 -2
- package/dist/core/p-19cf2327.entry.js +0 -2
- package/dist/core/p-1d37ac1c.entry.js +0 -2
- package/dist/core/p-1e2f40b0.entry.js +0 -2
- package/dist/core/p-21cf2beb.entry.js +0 -2
- package/dist/core/p-25007ec9.js +0 -2
- package/dist/core/p-25007ec9.js.map +0 -1
- package/dist/core/p-28efe829.entry.js +0 -2
- package/dist/core/p-28efe829.entry.js.map +0 -1
- package/dist/core/p-2f4f392f.entry.js +0 -2
- package/dist/core/p-313a8a2f.entry.js +0 -2
- package/dist/core/p-317e005f.entry.js +0 -2
- package/dist/core/p-3dc54847.entry.js +0 -2
- package/dist/core/p-3e5d7a3d.entry.js +0 -2
- package/dist/core/p-41ef74a7.entry.js +0 -2
- package/dist/core/p-41f92698.entry.js +0 -2
- package/dist/core/p-43324339.entry.js +0 -2
- package/dist/core/p-45dd12ee.entry.js.map +0 -1
- package/dist/core/p-493eaabb.entry.js +0 -2
- package/dist/core/p-4ca782eb.entry.js +0 -2
- package/dist/core/p-4d1a3036.entry.js +0 -2
- package/dist/core/p-52748d5c.entry.js +0 -2
- package/dist/core/p-595a4d06.entry.js +0 -2
- package/dist/core/p-5daa7915.entry.js +0 -2
- package/dist/core/p-5f68f62b.entry.js +0 -2
- package/dist/core/p-5f68f62b.entry.js.map +0 -1
- package/dist/core/p-6014ab64.entry.js +0 -2
- package/dist/core/p-661ae402.entry.js +0 -2
- package/dist/core/p-6a576a8b.entry.js +0 -2
- package/dist/core/p-6ed0ac48.entry.js +0 -2
- package/dist/core/p-711bfeed.entry.js +0 -2
- package/dist/core/p-72a9909c.entry.js +0 -2
- package/dist/core/p-742a9181.entry.js +0 -2
- package/dist/core/p-742a9181.entry.js.map +0 -1
- package/dist/core/p-7cd4f6a6.entry.js +0 -2
- package/dist/core/p-8a4b12e4.entry.js +0 -2
- package/dist/core/p-9323c234.entry.js +0 -2
- package/dist/core/p-948f89a0.entry.js +0 -2
- package/dist/core/p-948f89a0.entry.js.map +0 -1
- package/dist/core/p-97b93ddf.entry.js +0 -2
- package/dist/core/p-97b93ddf.entry.js.map +0 -1
- package/dist/core/p-9c013333.entry.js +0 -2
- package/dist/core/p-9eeb5e85.entry.js +0 -2
- package/dist/core/p-9f36791b.entry.js +0 -2
- package/dist/core/p-a602a8e1.entry.js +0 -2
- package/dist/core/p-a77364f5.entry.js +0 -2
- package/dist/core/p-af9c391d.entry.js +0 -2
- package/dist/core/p-b0d488d0.entry.js +0 -2
- package/dist/core/p-b25d33d8.entry.js +0 -2
- package/dist/core/p-b25d33d8.entry.js.map +0 -1
- package/dist/core/p-b52000d9.entry.js +0 -2
- package/dist/core/p-cbe0d1bb.entry.js +0 -2
- package/dist/core/p-ceea1712.entry.js +0 -2
- package/dist/core/p-ceea1712.entry.js.map +0 -1
- package/dist/core/p-cf631191.entry.js +0 -2
- package/dist/core/p-e652ab09.entry.js +0 -2
- package/dist/core/p-e652ab09.entry.js.map +0 -1
- package/dist/core/p-e876e47c.entry.js +0 -2
- package/dist/core/p-e876e47c.entry.js.map +0 -1
- package/dist/core/p-ea778379.entry.js +0 -2
- package/dist/core/p-ef4b5469.entry.js +0 -2
- package/dist/core/p-f309d3af.entry.js +0 -2
- package/dist/core/p-f6a02202.entry.js +0 -2
- package/dist/core/p-fc3b1155.entry.js +0 -2
- package/dist/esm/helpers-56631aa0.js.map +0 -1
- /package/dist/core/{p-287e5c17.entry.js.map → p-37d217b5.entry.js.map} +0 -0
- /package/dist/core/{p-df88ff5b.entry.js.map → p-37daa8fe.entry.js.map} +0 -0
- /package/dist/core/{p-ffac41d6.entry.js.map → p-492fcb51.entry.js.map} +0 -0
- /package/dist/core/{p-6e8ef73c.entry.js.map → p-57721431.entry.js.map} +0 -0
- /package/dist/core/{p-5fbc8e62.entry.js.map → p-5fcfcfb6.entry.js.map} +0 -0
- /package/dist/core/{p-ea061ccf.entry.js.map → p-9a8bcb78.entry.js.map} +0 -0
- /package/dist/core/{p-8b5022bc.entry.js.map → p-9cf6ccfd.entry.js.map} +0 -0
- /package/dist/core/{p-999f0a5d.entry.js.map → p-b4a2f6fa.entry.js.map} +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["icCheckboxGroupCss","IcCheckboxGroupStyle0","CHECKBOX_SELECTOR","CheckboxGroup","constructor","hostRef","this","disabled","helperText","hideLabel","required","size","theme","validationStatus","validationText","watchDisabledHandler","removeDisabledFalse","el","labelNameHandler","newValue","oldValue","propName","Array","from","querySelectorAll","forEach","checkbox","groupLabel","name","watchThemeHandler","handleChange","ev","target","tagName","stopImmediatePropagation","componentWillLoad","componentDidLoad","onComponentRequiredPropUndefined","prop","label","selectHandler","checkedOptions","filter","checked","icChange","emit","value","map","opt","textFieldValue","_a","querySelector","selectedOption","render","describedBy","getInputDescribedByText","renderSRText","h","Host","key","class","id","trim","useLabelTag","slot","hasValidationStatus","for","ariaLiveMode","status","message"],"sources":["src/components/ic-checkbox-group/ic-checkbox-group.css?tag=ic-checkbox-group&encapsulation=shadow","src/components/ic-checkbox-group/ic-checkbox-group.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: block;\n\n --ic-input-label-text-color: var(--ic-checkbox-group-label);\n --ic-input-label-helper-text-color: var(--ic-checkbox-group-subtitle);\n --ic-input-validation-error: var(--ic-checkbox-state-icon-error);\n --ic-input-validation-status-text-color: var(--ic-checkbox-state-text);\n}\n\n:host(.ic-checkbox-group-disabled) {\n --ic-input-label-text-color: var(--ic-checkbox-group-label-disabled);\n --ic-input-label-helper-text-color: var(\n --ic-checkbox-group-subtitle-disabled\n );\n}\n\nic-input-label.error {\n color: var(--ic-checkbox-group-label-error);\n\n --ic-typography-color: var(--ic-checkbox-group-label-error);\n --ic-input-label-helper-text-color: var(--ic-checkbox-group-subtitle-error);\n}\n\nic-input-label:not(.with-helper) .ic-typography-label,\nic-input-label .helpertext {\n margin-bottom: var(--ic-space-sm);\n}\n\n:host(.ic-checkbox-group-small)\n ic-input-label:not(.with-helper)\n .ic-typography-label,\n:host(.ic-checkbox-group-small) ic-input-label .helpertext {\n margin-bottom: calc(var(--ic-space-sm) / 2);\n}\n\n:host(.ic-checkbox-group-large)\n ic-input-label:not(.with-helper)\n .ic-typography-label,\n:host(.ic-checkbox-group-large) ic-input-label .helpertext {\n margin-bottom: calc(var(--ic-space-sm) * 1.5);\n}\n\nic-input-label .helpertext {\n display: block;\n}\n\nic-input-validation {\n margin-top: var(--ic-space-sm);\n}\n\n:host(.ic-checkbox-group-small) ic-input-validation {\n margin-top: calc(var(--ic-space-sm) / 2);\n}\n\n:host(.ic-checkbox-group-large) ic-input-validation {\n margin-top: calc(var(--ic-space-sm) * 1.5);\n}\n\n.checkboxes-container {\n margin-bottom: calc(-1 * var(--ic-space-xxs));\n}\n\n:host(.ic-checkbox-group-small) .checkboxes-container {\n margin-bottom: calc(-1 * var(--ic-space-xxxs));\n}\n\n.screen-reader-only-text {\n position: absolute;\n left: -9999px;\n background-color: #fff;\n color: #000;\n text-transform: none;\n}\n\n.screen-reader-only-text:dir(rtl) {\n right: -9999px;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Listen,\n Element,\n Event,\n EventEmitter,\n Watch,\n} from \"@stencil/core\";\nimport {\n getInputDescribedByText,\n hasValidationStatus,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\nimport {\n IcInformationStatusOrEmpty,\n IcSizes,\n IcThemeMode,\n} from \"../../utils/types\";\nimport { IcChangeEventDetail } from \"./ic-checkbox-group.types\";\n\nconst CHECKBOX_SELECTOR = \"ic-checkbox\";\n\n/**\n * @slot helper-text - Content is set as the helper text for the checkbox group.\n */\n@Component({\n tag: \"ic-checkbox-group\",\n styleUrl: \"ic-checkbox-group.css\",\n shadow: true,\n})\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class CheckboxGroup {\n @Element() el: HTMLIcCheckboxGroupElement;\n\n /**\n * If `true`, the checkbox group will be set to the disabled state.\n */\n @Prop() disabled: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText: string = \"\";\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel: boolean = false;\n\n /**\n * The label for the checkbox group to be displayed.\n */\n @Prop() label!: string;\n\n /**\n * The name for the checkbox group to differentiate from other groups.\n */\n @Prop() name!: string;\n\n @Watch(\"label\")\n @Watch(\"name\")\n labelNameHandler(\n newValue: string,\n oldValue: string,\n propName: \"label\" | \"name\"\n ): void {\n Array.from(this.el.querySelectorAll(CHECKBOX_SELECTOR)).forEach(\n (checkbox) => {\n if (propName === \"label\") checkbox.groupLabel = newValue;\n else if (checkbox.name === oldValue) {\n // If the checkbox name has been set by the parent, then override it\n checkbox.name = newValue;\n }\n }\n );\n }\n\n /**\n * If `true`, the checkbox group will require a value.\n */\n @Prop() required: boolean = false;\n\n /**\n * The size of the checkboxes to be displayed. This does not affect the font size of the label.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n @Watch(\"theme\")\n watchThemeHandler(newValue: IcThemeMode): void {\n Array.from(this.el.querySelectorAll(CHECKBOX_SELECTOR)).forEach(\n (checkbox) => {\n checkbox.theme = newValue;\n }\n );\n }\n\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message.\n */\n @Prop() validationText: string = \"\";\n\n /**\n * Emitted when a checkbox is checked.\n */\n @Event() icChange: EventEmitter<IcChangeEventDetail>;\n\n @Listen(\"icChange\")\n handleChange(ev: CustomEvent): void {\n //don't pass on the event if it has come from slotted text field\n //otherwise any icChange handler bound to the checkbox group will also run\n if ((ev.target as HTMLElement).tagName === \"IC-TEXT-FIELD\") {\n ev.stopImmediatePropagation();\n }\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n this.watchThemeHandler(this.theme);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [\n { prop: this.label, propName: \"label\" },\n { prop: this.name, propName: \"name\" },\n ],\n \"Checkbox Group\"\n );\n }\n\n @Listen(\"icCheck\")\n selectHandler({ target }: CustomEvent): void {\n const checkedOptions = Array.from(\n this.el.querySelectorAll(CHECKBOX_SELECTOR)\n ).filter(({ checked, disabled }) => checked && !disabled);\n this.icChange.emit({\n value: checkedOptions.map(({ value }) => value),\n checkedOptions: checkedOptions.map((opt) => ({\n checkbox: opt,\n textFieldValue: opt.querySelector(\"ic-text-field\")?.value,\n })),\n selectedOption: target as HTMLIcCheckboxElement,\n });\n }\n\n render() {\n const {\n disabled,\n helperText,\n hideLabel,\n label,\n name,\n required,\n size,\n theme,\n validationStatus,\n validationText,\n } = this;\n\n const describedBy = getInputDescribedByText(\n this.el,\n name,\n helperText !== \"\",\n validationStatus !== \"\"\n );\n\n const renderSRText = validationStatus === \"error\" || required || hideLabel;\n\n return (\n <Host\n class={{\n \"ic-checkbox-group-disabled\": !!disabled,\n [`ic-checkbox-group-${size}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n {renderSRText && (\n <span\n id=\"screenReaderOnlyText\"\n class=\"screen-reader-only-text\"\n aria-hidden=\"true\"\n >\n {label} {validationStatus === \"error\" ? \"invalid data \" : null}{\" \"}\n {required ? \"required\" : null}\n </span>\n )}\n <fieldset\n id={name}\n aria-labelledby={`${\n renderSRText ? \"screenReaderOnlyText\" : \"\"\n } ${describedBy}`.trim()}\n disabled={disabled}\n >\n {!hideLabel && (\n <legend>\n <ic-input-label\n class={{ [`${validationStatus}`]: true }}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabled}\n useLabelTag={false}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\n </ic-input-label>\n </legend>\n )}\n <div class=\"checkboxes-container\">\n <slot></slot>\n </div>\n </fieldset>\n {hasValidationStatus(validationStatus, disabled) && (\n <ic-input-validation\n for={name}\n ariaLiveMode=\"polite\"\n status={validationStatus}\n message={validationText}\n ></ic-input-validation>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["icCheckboxGroupCss","IcCheckboxGroupStyle0","CHECKBOX_SELECTOR","CheckboxGroup","constructor","hostRef","this","disabled","helperText","hideLabel","required","size","theme","validationStatus","validationText","watchDisabledHandler","removeDisabledFalse","el","labelNameHandler","newValue","oldValue","propName","Array","from","querySelectorAll","forEach","checkbox","groupLabel","name","watchThemeHandler","handleChange","ev","target","tagName","stopImmediatePropagation","componentWillLoad","componentDidLoad","onComponentRequiredPropUndefined","prop","label","selectHandler","checkedOptions","filter","checked","icChange","emit","value","map","opt","textFieldValue","_a","querySelector","selectedOption","render","describedBy","getInputDescribedByText","renderSRText","h","Host","key","class","id","trim","useLabelTag","slot","hasValidationStatus","for","ariaLiveMode","status","message"],"sources":["src/components/ic-checkbox-group/ic-checkbox-group.css?tag=ic-checkbox-group&encapsulation=shadow","src/components/ic-checkbox-group/ic-checkbox-group.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: block;\n\n --ic-input-label-text-color: var(--ic-checkbox-group-label);\n --ic-input-label-helper-text-color: var(--ic-checkbox-group-subtitle);\n --ic-input-validation-error: var(--ic-checkbox-state-icon-error);\n --ic-input-validation-status-text-color: var(--ic-checkbox-state-text);\n}\n\n:host(.ic-checkbox-group-disabled) {\n --ic-input-label-text-color: var(--ic-checkbox-group-label-disabled);\n --ic-input-label-helper-text-color: var(\n --ic-checkbox-group-subtitle-disabled\n );\n}\n\nic-input-label.error {\n color: var(--ic-checkbox-group-label-error);\n\n --ic-typography-color: var(--ic-checkbox-group-label-error);\n --ic-input-label-helper-text-color: var(--ic-checkbox-group-subtitle-error);\n}\n\nic-input-label:not(.with-helper) .ic-typography-label,\nic-input-label .helpertext {\n margin-bottom: var(--ic-space-sm);\n}\n\n:host(.ic-checkbox-group-small)\n ic-input-label:not(.with-helper)\n .ic-typography-label,\n:host(.ic-checkbox-group-small) ic-input-label .helpertext {\n margin-bottom: calc(var(--ic-space-sm) / 2);\n}\n\n:host(.ic-checkbox-group-large)\n ic-input-label:not(.with-helper)\n .ic-typography-label,\n:host(.ic-checkbox-group-large) ic-input-label .helpertext {\n margin-bottom: calc(var(--ic-space-sm) * 1.5);\n}\n\nic-input-label .helpertext {\n display: block;\n}\n\nic-input-validation {\n margin-top: var(--ic-space-sm);\n}\n\n:host(.ic-checkbox-group-small) ic-input-validation {\n margin-top: calc(var(--ic-space-sm) / 2);\n}\n\n:host(.ic-checkbox-group-large) ic-input-validation {\n margin-top: calc(var(--ic-space-sm) * 1.5);\n}\n\n.checkboxes-container {\n margin-bottom: calc(-1 * var(--ic-space-xxs));\n}\n\n:host(.ic-checkbox-group-small) .checkboxes-container {\n margin-bottom: calc(-1 * var(--ic-space-xxxs));\n}\n\n.screen-reader-only-text {\n position: absolute;\n left: -9999px;\n background-color: #fff;\n color: #000;\n text-transform: none;\n}\n\n.screen-reader-only-text:dir(rtl) {\n right: -9999px;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Listen,\n Element,\n Event,\n EventEmitter,\n Watch,\n} from \"@stencil/core\";\nimport {\n getInputDescribedByText,\n hasValidationStatus,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\nimport {\n IcInformationStatusOrEmpty,\n IcSizes,\n IcThemeMode,\n} from \"../../utils/types\";\nimport { IcChangeEventDetail } from \"./ic-checkbox-group.types\";\n\nconst CHECKBOX_SELECTOR = \"ic-checkbox\";\n\n/**\n * @slot helper-text - Content is set as the helper text for the checkbox group.\n */\n@Component({\n tag: \"ic-checkbox-group\",\n styleUrl: \"ic-checkbox-group.css\",\n shadow: true,\n})\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class CheckboxGroup {\n @Element() el: HTMLIcCheckboxGroupElement;\n\n /**\n * If `true`, the checkbox group will be set to the disabled state.\n */\n @Prop() disabled: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText: string = \"\";\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel: boolean = false;\n\n /**\n * The label for the checkbox group to be displayed.\n */\n @Prop() label!: string;\n\n /**\n * The name for the checkbox group to differentiate from other groups.\n */\n @Prop() name!: string;\n\n @Watch(\"label\")\n @Watch(\"name\")\n labelNameHandler(\n newValue: string,\n oldValue: string,\n propName: \"label\" | \"name\"\n ): void {\n Array.from(this.el.querySelectorAll(CHECKBOX_SELECTOR)).forEach(\n (checkbox) => {\n if (propName === \"label\") checkbox.groupLabel = newValue;\n else if (checkbox.name === oldValue) {\n // If the checkbox name has been set by the parent, then override it\n checkbox.name = newValue;\n }\n }\n );\n }\n\n /**\n * If `true`, the checkbox group will require a value.\n */\n @Prop() required: boolean = false;\n\n /**\n * The size of the checkboxes to be displayed. This does not affect the font size of the label.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n @Watch(\"theme\")\n watchThemeHandler(newValue: IcThemeMode): void {\n Array.from(this.el.querySelectorAll(CHECKBOX_SELECTOR)).forEach(\n (checkbox) => {\n checkbox.theme = newValue;\n }\n );\n }\n\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message.\n */\n @Prop() validationText: string = \"\";\n\n /**\n * Emitted when a checkbox is checked.\n */\n @Event() icChange: EventEmitter<IcChangeEventDetail>;\n\n @Listen(\"icChange\")\n handleChange(ev: CustomEvent): void {\n //don't pass on the event if it has come from slotted text field\n //otherwise any icChange handler bound to the checkbox group will also run\n if ((ev.target as HTMLElement).tagName === \"IC-TEXT-FIELD\") {\n ev.stopImmediatePropagation();\n }\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n this.watchThemeHandler(this.theme);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [\n { prop: this.label, propName: \"label\" },\n { prop: this.name, propName: \"name\" },\n ],\n \"Checkbox Group\"\n );\n }\n\n @Listen(\"icCheck\")\n selectHandler({ target }: CustomEvent): void {\n const checkedOptions = Array.from(\n this.el.querySelectorAll(CHECKBOX_SELECTOR)\n ).filter(({ checked, disabled }) => checked && !disabled);\n this.icChange.emit({\n value: checkedOptions.map(({ value }) => value),\n checkedOptions: checkedOptions.map((opt) => ({\n checkbox: opt,\n textFieldValue: opt.querySelector(\"ic-text-field\")?.value,\n })),\n selectedOption: target as HTMLIcCheckboxElement,\n });\n }\n\n render() {\n const {\n disabled,\n helperText,\n hideLabel,\n label,\n name,\n required,\n size,\n theme,\n validationStatus,\n validationText,\n } = this;\n\n const describedBy = getInputDescribedByText(\n this.el,\n name,\n helperText !== \"\",\n validationStatus !== \"\"\n );\n\n const renderSRText = validationStatus === \"error\" || required || hideLabel;\n\n return (\n <Host\n class={{\n \"ic-checkbox-group-disabled\": !!disabled,\n [`ic-checkbox-group-${size}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n {renderSRText && (\n <span\n id=\"screenReaderOnlyText\"\n class=\"screen-reader-only-text\"\n aria-hidden=\"true\"\n >\n {label} {validationStatus === \"error\" ? \"invalid data \" : null}{\" \"}\n {required ? \"required\" : null}\n </span>\n )}\n <fieldset\n id={name}\n aria-labelledby={`${\n renderSRText ? \"screenReaderOnlyText\" : \"\"\n } ${describedBy}`.trim()}\n disabled={disabled}\n >\n {!hideLabel && (\n <legend>\n <ic-input-label\n class={{ [`${validationStatus}`]: true }}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabled}\n useLabelTag={false}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\n </ic-input-label>\n </legend>\n )}\n <div class=\"checkboxes-container\">\n <slot></slot>\n </div>\n </fieldset>\n {hasValidationStatus(validationStatus, disabled) && (\n <ic-input-validation\n for={name}\n ariaLiveMode=\"polite\"\n status={validationStatus}\n message={validationText}\n ></ic-input-validation>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import{r as e,c as t,h as i,H as o,g as n}from"./p-8e4e97b4.js";import{r as a,i as s}from"./p-6ceedfa8.js";import{C as r}from"./p-3b185c32.js";import"./p-641c26c4.js";const c='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;border-bottom:var(--ic-space-1px) solid var(--ic-accordion-divider)}:host .expand-chevron{color:var(--ic-accordion-chevron)}:host(.ic-accordion-disabled) .expand-chevron{color:var(--ic-accordion-chevron-disabled)}.section-button.small{padding:var(--ic-space-xxs) var(--ic-space-xs)}.section-button.large{padding:var(--ic-space-sm) var(--ic-space-xs)}:host(:first-of-type){border-top:var(--ic-space-1px) solid var(--ic-accordion-divider)}:focus{outline:none}.section-button{background-color:transparent;display:flex;align-items:center;width:100%;padding:var(--ic-space-xs);font-weight:var(--ic-font-weight-bold);border:none}.section-header{--ic-typography-color:var(--ic-accordion-heading-text);color:var(--ic-accordion-heading-text);text-align:left;flex:1 0}:host(.ic-accordion-disabled) .section-header{--ic-typography-color:var(--ic-accordion-heading-text-disabled);color:var(--ic-accordion-heading-text-disabled)}button:hover{background-color:var(--ic-accordion-background-hover);cursor:pointer}button:active{background-color:var(--ic-accordion-background-pressed)}button:focus{box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);transition:var(--ic-transition-duration-fast)}button:disabled{pointer-events:none}.icon-container{margin:0 var(--ic-space-xs) 0 0;display:flex;align-items:center;width:var(--ic-space-lg);height:var(--ic-space-lg);color:var(--ic-accordion-icon)}:host(.ic-accordion-disabled) .icon-container{color:var(--ic-accordion-icon-disabled)}::slotted(svg){width:var(--ic-space-md);height:var(--ic-space-md)}.expand-chevron{width:var(--ic-space-lg);height:var(--ic-space-lg);margin-left:calc(var(--ic-space-xl) + var(--ic-space-xs));transform:rotate(90deg);justify-self:end}.content-expanded-chevron{transform:rotate(-90deg)}.expanded-content{--ic-typography-color:var(--ic-accordion-body-text);color:var(--ic-accordion-body-text);height:0;overflow:hidden;display:flex;flex-direction:column;visibility:var(--ic-expanded-content-visibility, hidden)}.expanded-content-inner{padding:var(--ic-space-xs)}.expanded-content-opened{overflow:visible}@media (forced-colors: active){button:focus{border:var(--ic-border-hc) !important}}';const d=c;let l=0;const h="expanded-content-opened";const b=class{constructor(i){e(this,i);this.accordionClicked=t(this,"accordionClicked",7);this.accordionId=`ic-accordion-${l++}`;this.CONTENT_VISIBILITY_PROPERTY="--ic-expanded-content-visibility";this.disabled=false;this.expanded=false;this.heading="";this.message="";this.size="medium";this.theme="inherit";this.toggleExpanded=()=>{this.expanded=!this.expanded;this.accordionClicked.emit({id:this.accordionId})};this.setAccordionAnimation=(e,t,i,o)=>{e.style.transitionDuration=`${t}ms`;e.style.transitionProperty=i;e.style.transitionDelay=o};this.setExpandedContentStyle=(e,t)=>{if(e.propertyName==="height"&&t.clientHeight>0){t.classList.add(h);t.style.height="auto"}};this.hideExpandedContent=(e,t)=>{if(e.propertyName==="height"&&t.clientHeight===0){t.style.setProperty(this.CONTENT_VISIBILITY_PROPERTY,"hidden")}};this.animateExpandedContent=()=>{if(this.expandedContentEl){const e=this.expandedContentEl;const t=e.scrollHeight;if(t>0&&this.expanded){e.style.setProperty(this.CONTENT_VISIBILITY_PROPERTY,"visible");e.style.height=`${t}px`;this.setAccordionAnimation(e,"300","height","ease-out");e.addEventListener("transitionend",(t=>{this.setExpandedContentStyle(t,e)}))}else if(!this.expanded){const e=this.expandedContentEl;e.style.height=`${e.scrollHeight}px`;if(e.scrollHeight>0&&!this.expanded){e.style.height="0";this.setAccordionAnimation(e,"300","height","ease-in");e.classList.remove(h)}e.addEventListener("transitionend",(t=>{this.hideExpandedContent(t,e)}))}}}}watchDisabledHandler(){a(this.disabled,this.el)}handleExpandedWatch(){this.animateExpandedContent()}async setFocus(){var e;(e=this.accordionBtnHeading)===null||e===void 0?void 0:e.focus()}componentWillLoad(){a(this.disabled,this.el)}disconnectedCallback(){const e=this.expandedContentEl;if(e){e.removeEventListener("transitionend",(t=>this.setExpandedContentStyle(t,e)),true);e.removeEventListener("transitionend",(t=>this.hideExpandedContent(t,e)),true)}}componentDidLoad(){if(this.expanded&&this.expandedContentEl){this.expandedContentEl.style.height="auto";this.expandedContentEl.style.setProperty(this.CONTENT_VISIBILITY_PROPERTY,"visible");this.expandedContentEl.classList.add(h)}}render(){const{size:e,disabled:t,expanded:n,theme:a}=this;return i(o,{key:"9fff7c4dc37187f9a2d03ae477c48012ff17c870",id:this.accordionId,class:{["ic-accordion-disabled"]:!!t,[`ic-theme-${a}`]:a!=="inherit"},"aria-disabled":t?"true":"false"},i("button",{key:"0f83275fbfc435eb5b640bd76b9a9582fcb3dca0",ref:e=>this.accordionBtnHeading=e,id:`${this.accordionId}-button`,disabled:t,tabindex:t?-1:0,class:{[`${e}`]:true,["section-button"]:true,["section-button-open"]:!!n&&!t},"aria-expanded":`${n}`,"aria-controls":"expanded-content-area",onClick:this.toggleExpanded},s(this.el,"icon")&&i("div",{key:"41c88884df97917d026fbecb500c35b393045c7d",class:"icon-container"},i("slot",{key:"ddc6894db8ab81e27c971350e261d99b51759756",name:"icon"})),i("ic-typography",{key:"e0ca73dbe5a2d46dbe2f893d4405e3d82fd2a862",variant:"subtitle-large",class:"section-header"},s(this.el,"heading")?i("slot",{name:"heading"}):this.heading),i("span",{key:"a95fad35c3e3f38415da026a93112079f74de4d7",class:{["expand-chevron"]:true,["content-expanded-chevron"]:!!n&&!t},"aria-hidden":"true",innerHTML:r})),i("div",{key:"65b6322d5dde677528891631ecd9b95189948771",class:{["expanded-content"]:true},"aria-labelledby":`${this.accordionId}-button`,role:"region","aria-hidden":`${!n}`,id:"expanded-content-area",ref:e=>this.expandedContentEl=e},i("div",{key:"de9ec00d55757be20c097082817529b652200263",class:"expanded-content-inner"},this.message?i("ic-typography",{variant:"body"},this.message):i("slot",null))))}get el(){return n(this)}static get watchers(){return{disabled:["watchDisabledHandler"],expanded:["handleExpandedWatch"]}}};b.style=d;export{b as ic_accordion};
|
2
|
+
//# sourceMappingURL=p-aab838e5.entry.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["icAccordionCss","IcAccordionStyle0","accordionIds","EXPANDED_CONTENT_OPENED_CLASS","Accordion","constructor","hostRef","this","accordionId","CONTENT_VISIBILITY_PROPERTY","disabled","expanded","heading","message","size","theme","toggleExpanded","accordionClicked","emit","id","setAccordionAnimation","el","duration","property","delay","style","transitionDuration","transitionProperty","transitionDelay","setExpandedContentStyle","ev","expandedContent","propertyName","clientHeight","classList","add","height","hideExpandedContent","setProperty","animateExpandedContent","expandedContentEl","elementHeight","scrollHeight","addEventListener","e","remove","watchDisabledHandler","removeDisabledFalse","handleExpandedWatch","setFocus","_a","accordionBtnHeading","focus","componentWillLoad","disconnectedCallback","removeEventListener","componentDidLoad","render","h","Host","key","class","ref","tabindex","onClick","isSlotUsed","name","variant","innerHTML","chevronIcon","role"],"sources":["src/components/ic-accordion/ic-accordion.css?tag=ic-accordion&encapsulation=shadow","src/components/ic-accordion/ic-accordion.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: block;\n border-bottom: var(--ic-space-1px) solid var(--ic-accordion-divider);\n}\n\n:host .expand-chevron {\n color: var(--ic-accordion-chevron);\n}\n\n:host(.ic-accordion-disabled) .expand-chevron {\n color: var(--ic-accordion-chevron-disabled);\n}\n\n.section-button.small {\n padding: var(--ic-space-xxs) var(--ic-space-xs);\n}\n\n.section-button.large {\n padding: var(--ic-space-sm) var(--ic-space-xs);\n}\n\n:host(:first-of-type) {\n border-top: var(--ic-space-1px) solid var(--ic-accordion-divider);\n}\n\n:focus {\n outline: none;\n}\n\n.section-button {\n background-color: transparent;\n display: flex;\n align-items: center;\n width: 100%;\n padding: var(--ic-space-xs);\n font-weight: var(--ic-font-weight-bold);\n border: none;\n}\n\n.section-header {\n --ic-typography-color: var(--ic-accordion-heading-text);\n\n color: var(--ic-accordion-heading-text);\n text-align: left;\n flex: 1 0;\n}\n\n:host(.ic-accordion-disabled) .section-header {\n --ic-typography-color: var(--ic-accordion-heading-text-disabled);\n\n color: var(--ic-accordion-heading-text-disabled);\n}\n\nbutton:hover {\n background-color: var(--ic-accordion-background-hover);\n cursor: pointer;\n}\n\nbutton:active {\n background-color: var(--ic-accordion-background-pressed);\n}\n\nbutton:focus {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n transition: var(--ic-transition-duration-fast);\n}\n\nbutton:disabled {\n pointer-events: none;\n}\n\n.icon-container {\n margin: 0 var(--ic-space-xs) 0 0;\n display: flex;\n align-items: center;\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n color: var(--ic-accordion-icon);\n}\n\n:host(.ic-accordion-disabled) .icon-container {\n color: var(--ic-accordion-icon-disabled);\n}\n\n::slotted(svg) {\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n}\n\n.expand-chevron {\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n margin-left: calc(var(--ic-space-xl) + var(--ic-space-xs));\n transform: rotate(90deg);\n justify-self: end;\n}\n\n.content-expanded-chevron {\n transform: rotate(-90deg);\n}\n\n.expanded-content {\n --ic-typography-color: var(--ic-accordion-body-text);\n\n color: var(--ic-accordion-body-text);\n height: 0;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n visibility: var(--ic-expanded-content-visibility, hidden);\n}\n\n.expanded-content-inner {\n padding: var(--ic-space-xs);\n}\n\n.expanded-content-opened {\n overflow: visible;\n}\n\n@media (forced-colors: active) {\n button:focus {\n border: var(--ic-border-hc) !important;\n }\n}\n","import {\n Component,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Host,\n Watch,\n Method,\n} from \"@stencil/core\";\nimport { isSlotUsed, removeDisabledFalse } from \"../../utils/helpers\";\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\nimport { IcSizes, IcThemeMode } from \"../../utils/types\";\n\nlet accordionIds = 0;\nconst EXPANDED_CONTENT_OPENED_CLASS = \"expanded-content-opened\";\n\n/**\n * @slot heading - Content is placed as the accordion heading.\n * @slot icon - Content is placed to the left of the heading.\n */\n\n@Component({\n tag: \"ic-accordion\",\n styleUrl: \"ic-accordion.css\",\n shadow: true,\n})\nexport class Accordion {\n private accordionId = `ic-accordion-${accordionIds++}`;\n private expandedContentEl?: HTMLDivElement;\n private accordionBtnHeading?: HTMLButtonElement;\n private CONTENT_VISIBILITY_PROPERTY = \"--ic-expanded-content-visibility\";\n\n @Element() el: HTMLIcAccordionElement;\n\n /**\n * If `true`, the accordion will be disabled.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the accordion appears expanded.\n */\n @Prop({ mutable: true }) expanded?: boolean = false;\n\n /**\n * The section header outlining section content.\n */\n @Prop() heading?: string = \"\";\n\n /**\n * The main body message of the accordion.\n */\n @Prop() message?: string = \"\";\n\n /**\n * The size of the accordion.\n */\n @Prop() size?: IcSizes = \"medium\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * @internal Emitted when accordion is clicked.\n */\n @Event() accordionClicked: EventEmitter<{ id: string }>;\n\n // Every time expanded is set via toggleExpanded or accordionGroup, animate to open or close\n @Watch(\"expanded\")\n handleExpandedWatch(): void {\n this.animateExpandedContent();\n }\n\n /**\n * Sets focus on accordion heading.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.accordionBtnHeading?.focus();\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n disconnectedCallback(): void {\n const expandedContentEl = this.expandedContentEl;\n if (expandedContentEl) {\n expandedContentEl.removeEventListener(\n \"transitionend\",\n (e) => this.setExpandedContentStyle(e, expandedContentEl),\n true\n );\n expandedContentEl.removeEventListener(\n \"transitionend\",\n (e) => this.hideExpandedContent(e, expandedContentEl),\n true\n );\n }\n }\n\n componentDidLoad(): void {\n // So accordion opens by default if expanded set to true\n if (this.expanded && this.expandedContentEl) {\n this.expandedContentEl.style.height = \"auto\";\n this.expandedContentEl.style.setProperty(\n this.CONTENT_VISIBILITY_PROPERTY,\n \"visible\"\n );\n this.expandedContentEl.classList.add(EXPANDED_CONTENT_OPENED_CLASS);\n }\n }\n\n private toggleExpanded = (): void => {\n this.expanded = !this.expanded;\n this.accordionClicked.emit({ id: this.accordionId });\n };\n\n // Set accordion animation\n private setAccordionAnimation = (\n el: HTMLElement,\n duration: string,\n property: string,\n delay: string\n ) => {\n el.style.transitionDuration = `${duration}ms`;\n el.style.transitionProperty = property;\n el.style.transitionDelay = delay;\n };\n\n private setExpandedContentStyle = (\n ev: TransitionEvent,\n expandedContent: HTMLDivElement\n ) => {\n if (ev.propertyName === \"height\" && expandedContent.clientHeight > 0) {\n expandedContent.classList.add(EXPANDED_CONTENT_OPENED_CLASS);\n expandedContent.style.height = \"auto\";\n }\n };\n\n private hideExpandedContent = (\n ev: TransitionEvent,\n expandedContent: HTMLDivElement\n ) => {\n if (ev.propertyName === \"height\" && expandedContent.clientHeight === 0) {\n expandedContent.style.setProperty(\n this.CONTENT_VISIBILITY_PROPERTY,\n \"hidden\"\n );\n }\n };\n\n private animateExpandedContent = () => {\n if (this.expandedContentEl) {\n const expandedContentEl = this.expandedContentEl;\n const elementHeight = expandedContentEl.scrollHeight;\n if (elementHeight > 0 && this.expanded) {\n expandedContentEl.style.setProperty(\n this.CONTENT_VISIBILITY_PROPERTY,\n \"visible\"\n );\n expandedContentEl.style.height = `${elementHeight}px`;\n this.setAccordionAnimation(\n expandedContentEl,\n \"300\",\n \"height\",\n \"ease-out\"\n );\n\n expandedContentEl.addEventListener(\n \"transitionend\",\n (e: TransitionEvent) => {\n this.setExpandedContentStyle(e, expandedContentEl);\n }\n );\n } else if (!this.expanded) {\n const expandedContentEl = this.expandedContentEl;\n expandedContentEl.style.height = `${expandedContentEl.scrollHeight}px`;\n if (expandedContentEl.scrollHeight > 0 && !this.expanded) {\n expandedContentEl.style.height = \"0\";\n this.setAccordionAnimation(\n expandedContentEl,\n \"300\",\n \"height\",\n \"ease-in\"\n );\n expandedContentEl.classList.remove(EXPANDED_CONTENT_OPENED_CLASS);\n }\n expandedContentEl.addEventListener(\"transitionend\", (e) => {\n this.hideExpandedContent(e, expandedContentEl);\n });\n }\n }\n };\n\n render() {\n const { size, disabled, expanded, theme } = this;\n return (\n <Host\n id={this.accordionId}\n class={{\n [\"ic-accordion-disabled\"]: !!disabled,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n aria-disabled={disabled ? \"true\" : \"false\"}\n >\n <button\n ref={(el) => (this.accordionBtnHeading = el)}\n id={`${this.accordionId}-button`}\n disabled={disabled}\n tabindex={disabled ? -1 : 0}\n class={{\n [`${size}`]: true,\n [\"section-button\"]: true,\n [\"section-button-open\"]: !!expanded && !disabled,\n }}\n aria-expanded={`${expanded}`}\n aria-controls=\"expanded-content-area\"\n onClick={this.toggleExpanded}\n >\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon-container\">\n <slot name=\"icon\" />\n </div>\n )}\n <ic-typography variant=\"subtitle-large\" class=\"section-header\">\n {isSlotUsed(this.el, \"heading\") ? (\n <slot name=\"heading\" />\n ) : (\n this.heading\n )}\n </ic-typography>\n <span\n class={{\n [\"expand-chevron\"]: true,\n [\"content-expanded-chevron\"]: !!expanded && !disabled,\n }}\n aria-hidden=\"true\"\n innerHTML={chevronIcon}\n />\n </button>\n <div\n class={{\n [\"expanded-content\"]: true,\n }}\n aria-labelledby={`${this.accordionId}-button`}\n role=\"region\"\n aria-hidden={`${!expanded}`}\n id=\"expanded-content-area\"\n ref={(el) => (this.expandedContentEl = el)}\n >\n <div class=\"expanded-content-inner\">\n {this.message ? (\n <ic-typography variant=\"body\">{this.message}</ic-typography>\n ) : (\n <slot />\n )}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["icAccordionCss","IcAccordionStyle0","accordionIds","EXPANDED_CONTENT_OPENED_CLASS","Accordion","constructor","hostRef","this","accordionId","CONTENT_VISIBILITY_PROPERTY","disabled","expanded","heading","message","size","theme","toggleExpanded","accordionClicked","emit","id","setAccordionAnimation","el","duration","property","delay","style","transitionDuration","transitionProperty","transitionDelay","setExpandedContentStyle","ev","expandedContent","propertyName","clientHeight","classList","add","height","hideExpandedContent","setProperty","animateExpandedContent","expandedContentEl","elementHeight","scrollHeight","addEventListener","e","remove","watchDisabledHandler","removeDisabledFalse","handleExpandedWatch","setFocus","_a","accordionBtnHeading","focus","componentWillLoad","disconnectedCallback","removeEventListener","componentDidLoad","render","h","Host","key","class","ref","tabindex","onClick","isSlotUsed","name","variant","innerHTML","chevronIcon","role"],"sources":["src/components/ic-accordion/ic-accordion.css?tag=ic-accordion&encapsulation=shadow","src/components/ic-accordion/ic-accordion.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: block;\n border-bottom: var(--ic-space-1px) solid var(--ic-accordion-divider);\n}\n\n:host .expand-chevron {\n color: var(--ic-accordion-chevron);\n}\n\n:host(.ic-accordion-disabled) .expand-chevron {\n color: var(--ic-accordion-chevron-disabled);\n}\n\n.section-button.small {\n padding: var(--ic-space-xxs) var(--ic-space-xs);\n}\n\n.section-button.large {\n padding: var(--ic-space-sm) var(--ic-space-xs);\n}\n\n:host(:first-of-type) {\n border-top: var(--ic-space-1px) solid var(--ic-accordion-divider);\n}\n\n:focus {\n outline: none;\n}\n\n.section-button {\n background-color: transparent;\n display: flex;\n align-items: center;\n width: 100%;\n padding: var(--ic-space-xs);\n font-weight: var(--ic-font-weight-bold);\n border: none;\n}\n\n.section-header {\n --ic-typography-color: var(--ic-accordion-heading-text);\n\n color: var(--ic-accordion-heading-text);\n text-align: left;\n flex: 1 0;\n}\n\n:host(.ic-accordion-disabled) .section-header {\n --ic-typography-color: var(--ic-accordion-heading-text-disabled);\n\n color: var(--ic-accordion-heading-text-disabled);\n}\n\nbutton:hover {\n background-color: var(--ic-accordion-background-hover);\n cursor: pointer;\n}\n\nbutton:active {\n background-color: var(--ic-accordion-background-pressed);\n}\n\nbutton:focus {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n transition: var(--ic-transition-duration-fast);\n}\n\nbutton:disabled {\n pointer-events: none;\n}\n\n.icon-container {\n margin: 0 var(--ic-space-xs) 0 0;\n display: flex;\n align-items: center;\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n color: var(--ic-accordion-icon);\n}\n\n:host(.ic-accordion-disabled) .icon-container {\n color: var(--ic-accordion-icon-disabled);\n}\n\n::slotted(svg) {\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n}\n\n.expand-chevron {\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n margin-left: calc(var(--ic-space-xl) + var(--ic-space-xs));\n transform: rotate(90deg);\n justify-self: end;\n}\n\n.content-expanded-chevron {\n transform: rotate(-90deg);\n}\n\n.expanded-content {\n --ic-typography-color: var(--ic-accordion-body-text);\n\n color: var(--ic-accordion-body-text);\n height: 0;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n visibility: var(--ic-expanded-content-visibility, hidden);\n}\n\n.expanded-content-inner {\n padding: var(--ic-space-xs);\n}\n\n.expanded-content-opened {\n overflow: visible;\n}\n\n@media (forced-colors: active) {\n button:focus {\n border: var(--ic-border-hc) !important;\n }\n}\n","import {\n Component,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Host,\n Watch,\n Method,\n} from \"@stencil/core\";\nimport { isSlotUsed, removeDisabledFalse } from \"../../utils/helpers\";\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\nimport { IcSizes, IcThemeMode } from \"../../utils/types\";\n\nlet accordionIds = 0;\nconst EXPANDED_CONTENT_OPENED_CLASS = \"expanded-content-opened\";\n\n/**\n * @slot heading - Content is placed as the accordion heading.\n * @slot icon - Content is placed to the left of the heading.\n */\n\n@Component({\n tag: \"ic-accordion\",\n styleUrl: \"ic-accordion.css\",\n shadow: true,\n})\nexport class Accordion {\n private accordionId = `ic-accordion-${accordionIds++}`;\n private expandedContentEl?: HTMLDivElement;\n private accordionBtnHeading?: HTMLButtonElement;\n private CONTENT_VISIBILITY_PROPERTY = \"--ic-expanded-content-visibility\";\n\n @Element() el: HTMLIcAccordionElement;\n\n /**\n * If `true`, the accordion will be disabled.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the accordion appears expanded.\n */\n @Prop({ mutable: true }) expanded?: boolean = false;\n\n /**\n * The section header outlining section content.\n */\n @Prop() heading?: string = \"\";\n\n /**\n * The main body message of the accordion.\n */\n @Prop() message?: string = \"\";\n\n /**\n * The size of the accordion.\n */\n @Prop() size?: IcSizes = \"medium\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * @internal Emitted when accordion is clicked.\n */\n @Event() accordionClicked: EventEmitter<{ id: string }>;\n\n // Every time expanded is set via toggleExpanded or accordionGroup, animate to open or close\n @Watch(\"expanded\")\n handleExpandedWatch(): void {\n this.animateExpandedContent();\n }\n\n /**\n * Sets focus on accordion heading.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.accordionBtnHeading?.focus();\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n disconnectedCallback(): void {\n const expandedContentEl = this.expandedContentEl;\n if (expandedContentEl) {\n expandedContentEl.removeEventListener(\n \"transitionend\",\n (e) => this.setExpandedContentStyle(e, expandedContentEl),\n true\n );\n expandedContentEl.removeEventListener(\n \"transitionend\",\n (e) => this.hideExpandedContent(e, expandedContentEl),\n true\n );\n }\n }\n\n componentDidLoad(): void {\n // So accordion opens by default if expanded set to true\n if (this.expanded && this.expandedContentEl) {\n this.expandedContentEl.style.height = \"auto\";\n this.expandedContentEl.style.setProperty(\n this.CONTENT_VISIBILITY_PROPERTY,\n \"visible\"\n );\n this.expandedContentEl.classList.add(EXPANDED_CONTENT_OPENED_CLASS);\n }\n }\n\n private toggleExpanded = (): void => {\n this.expanded = !this.expanded;\n this.accordionClicked.emit({ id: this.accordionId });\n };\n\n // Set accordion animation\n private setAccordionAnimation = (\n el: HTMLElement,\n duration: string,\n property: string,\n delay: string\n ) => {\n el.style.transitionDuration = `${duration}ms`;\n el.style.transitionProperty = property;\n el.style.transitionDelay = delay;\n };\n\n private setExpandedContentStyle = (\n ev: TransitionEvent,\n expandedContent: HTMLDivElement\n ) => {\n if (ev.propertyName === \"height\" && expandedContent.clientHeight > 0) {\n expandedContent.classList.add(EXPANDED_CONTENT_OPENED_CLASS);\n expandedContent.style.height = \"auto\";\n }\n };\n\n private hideExpandedContent = (\n ev: TransitionEvent,\n expandedContent: HTMLDivElement\n ) => {\n if (ev.propertyName === \"height\" && expandedContent.clientHeight === 0) {\n expandedContent.style.setProperty(\n this.CONTENT_VISIBILITY_PROPERTY,\n \"hidden\"\n );\n }\n };\n\n private animateExpandedContent = () => {\n if (this.expandedContentEl) {\n const expandedContentEl = this.expandedContentEl;\n const elementHeight = expandedContentEl.scrollHeight;\n if (elementHeight > 0 && this.expanded) {\n expandedContentEl.style.setProperty(\n this.CONTENT_VISIBILITY_PROPERTY,\n \"visible\"\n );\n expandedContentEl.style.height = `${elementHeight}px`;\n this.setAccordionAnimation(\n expandedContentEl,\n \"300\",\n \"height\",\n \"ease-out\"\n );\n\n expandedContentEl.addEventListener(\n \"transitionend\",\n (e: TransitionEvent) => {\n this.setExpandedContentStyle(e, expandedContentEl);\n }\n );\n } else if (!this.expanded) {\n const expandedContentEl = this.expandedContentEl;\n expandedContentEl.style.height = `${expandedContentEl.scrollHeight}px`;\n if (expandedContentEl.scrollHeight > 0 && !this.expanded) {\n expandedContentEl.style.height = \"0\";\n this.setAccordionAnimation(\n expandedContentEl,\n \"300\",\n \"height\",\n \"ease-in\"\n );\n expandedContentEl.classList.remove(EXPANDED_CONTENT_OPENED_CLASS);\n }\n expandedContentEl.addEventListener(\"transitionend\", (e) => {\n this.hideExpandedContent(e, expandedContentEl);\n });\n }\n }\n };\n\n render() {\n const { size, disabled, expanded, theme } = this;\n return (\n <Host\n id={this.accordionId}\n class={{\n [\"ic-accordion-disabled\"]: !!disabled,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n aria-disabled={disabled ? \"true\" : \"false\"}\n >\n <button\n ref={(el) => (this.accordionBtnHeading = el)}\n id={`${this.accordionId}-button`}\n disabled={disabled}\n tabindex={disabled ? -1 : 0}\n class={{\n [`${size}`]: true,\n [\"section-button\"]: true,\n [\"section-button-open\"]: !!expanded && !disabled,\n }}\n aria-expanded={`${expanded}`}\n aria-controls=\"expanded-content-area\"\n onClick={this.toggleExpanded}\n >\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon-container\">\n <slot name=\"icon\" />\n </div>\n )}\n <ic-typography variant=\"subtitle-large\" class=\"section-header\">\n {isSlotUsed(this.el, \"heading\") ? (\n <slot name=\"heading\" />\n ) : (\n this.heading\n )}\n </ic-typography>\n <span\n class={{\n [\"expand-chevron\"]: true,\n [\"content-expanded-chevron\"]: !!expanded && !disabled,\n }}\n aria-hidden=\"true\"\n innerHTML={chevronIcon}\n />\n </button>\n <div\n class={{\n [\"expanded-content\"]: true,\n }}\n aria-labelledby={`${this.accordionId}-button`}\n role=\"region\"\n aria-hidden={`${!expanded}`}\n id=\"expanded-content-area\"\n ref={(el) => (this.expandedContentEl = el)}\n >\n <div class=\"expanded-content-inner\">\n {this.message ? (\n <ic-typography variant=\"body\">{this.message}</ic-typography>\n ) : (\n <slot />\n )}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import{r as t,c as e,h as o,H as i,g as n}from"./p-8e4e97b4.js";import{r}from"./p-6ceedfa8.js";import"./p-641c26c4.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 a=s;const l="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.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.loading||this.disabled)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:a}=this.lastKeyPressed;if((s||this.selectType!=="single")&&!a||s&&a&&(n===null||n===void 0?void 0:n.tagName)==l){(o=r[0])===null||o===void 0?void 0:o.focus()}else if(!a||(n===null||n===void 0?void 0:n.tagName)==l){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();const 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})}}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:a,theme:l}=this;return o(i,{key:"0411fab0ff536df861d5d69e987a1bbdc25bd722",role:"group","aria-label":t,tabindex: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":!a,[`ic-theme-${l}`]:l!=="inherit"},onFocus:this.handleHostFocus},o("slot",{key:"a031963635f3c0513b7b3786b02c86b75ce1d9c1"}))}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=a;export{d as ic_toggle_button_group};
|
2
|
+
//# sourceMappingURL=p-abb9dccb.entry.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["icToggleButtonGroupCss","IcToggleButtonGroupStyle0","TOGGLE_GROUP","ToggleButtonGroup","constructor","hostRef","this","lastKeyPressed","key","shift","accessibleLabel","disabled","fullWidth","loading","monochrome","outline","selectMethod","selectType","size","theme","tooltipPlacement","variant","keyListener","ev","shiftKey","handleHostFocus","target","relatedTarget","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","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} 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\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 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.loading || this.disabled) return;\n\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 const targetToggle =\n toggleButtonOptions[\n this.getNextItemToSelect(\n toggleButtonOptions.indexOf(\n toggleButtonOptions.filter((el) => el === document.activeElement)[0]\n ),\n key === \"ArrowDown\" || key === \"ArrowRight\"\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={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
|
+
{"version":3,"names":["icToggleButtonGroupCss","IcToggleButtonGroupStyle0","TOGGLE_GROUP","ToggleButtonGroup","constructor","hostRef","this","lastKeyPressed","key","shift","accessibleLabel","disabled","fullWidth","loading","monochrome","outline","selectMethod","selectType","size","theme","tooltipPlacement","variant","keyListener","ev","shiftKey","handleHostFocus","target","relatedTarget","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","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} 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\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 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.loading || this.disabled) return;\n\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 const targetToggle =\n toggleButtonOptions[\n this.getNextItemToSelect(\n toggleButtonOptions.indexOf(\n toggleButtonOptions.filter((el) => el === document.activeElement)[0]\n ),\n key === \"ArrowDown\" || key === \"ArrowRight\"\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={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,2 +1,2 @@
|
|
1
|
-
import{r as e,h as t,H as i,g as a}from"./p-8e4e97b4.js";const o='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block}.heading{--ic-typography-color:var(--ic-data-list-text-heading);color:var(--ic-data-list-text-heading)}.rows{display:flex;flex-direction:column;gap:var(--ic-space-md)}:host(.ic-data-list-small) .rows{gap:var(--ic-space-xs)}.divider{margin-top:var(--ic-space-lg);margin-bottom:var(--ic-space-md);height:var(--ic-border-width);background-color:var(--ic-data-list-keyline-heading)}:host(.ic-data-list-small) .divider{margin-top:var(--ic-space-sm);margin-bottom:var(--ic-space-xs)}@media (forced-colors: active){.divider{background-color:canvastext}}';const n=o;const s=class{constructor(t){e(this,t);this.size="medium";this.theme="inherit"}render(){const{el:e,heading:a,size:o,theme:n}=this;if(o==="small"){Array.from(e.children).forEach((e=>e.setAttribute("size","small")))}return t(i,{key:"
|
2
|
-
//# sourceMappingURL=p-
|
1
|
+
import{r as e,h as t,H as i,g as a}from"./p-8e4e97b4.js";const o='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block}.heading{--ic-typography-color:var(--ic-data-list-text-heading);color:var(--ic-data-list-text-heading)}.rows{display:flex;flex-direction:column;gap:var(--ic-space-md)}:host(.ic-data-list-small) .rows{gap:var(--ic-space-xs)}.divider{margin-top:var(--ic-space-lg);margin-bottom:var(--ic-space-md);height:var(--ic-border-width);background-color:var(--ic-data-list-keyline-heading)}:host(.ic-data-list-small) .divider{margin-top:var(--ic-space-sm);margin-bottom:var(--ic-space-xs)}@media (forced-colors: active){.divider{background-color:canvastext}}';const n=o;const s=class{constructor(t){e(this,t);this.size="medium";this.theme="inherit"}render(){const{el:e,heading:a,size:o,theme:n}=this;if(o==="small"){Array.from(e.children).forEach((e=>e.setAttribute("size","small")))}return t(i,{key:"a050ac5764ea9496f33d53abdd27f1a193185cbb",class:{"ic-data-list-small":o==="small",[`ic-theme-${n}`]:n!=="inherit"}},t("div",{key:"41836f9dce80428fe7f266601c779255195f2a1a",class:"heading",id:"data-list-heading"},t("slot",{key:"0bd2c17f6dc9767364dc021695ac5839acb3040f",name:"heading"},t("ic-typography",{key:"65c4dd118e264af61e6494a81b60e573361ea9d3",variant:"h3"},a))),t("div",{key:"5be1cea50a4d8beef81c14da5e13a74a75347244",class:"divider"}),t("ul",{key:"9b71c57f882aec9aecb018e4a1fb98ff66c6aaf1","aria-labelledby":"data-list-heading",class:"rows"},t("slot",{key:"729e8422e911d6dc7a64e568af78f9e7e1ba32c7"})))}get el(){return a(this)}};s.style=n;export{s as ic_data_list};
|
2
|
+
//# sourceMappingURL=p-b4a2f6fa.entry.js.map
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import{r as e,c as t,f as i,h as a,H as s,g as r}from"./p-8e4e97b4.js";import{K as o,F as n,r as l,E as c,l as d,w as h,k as u,o as b,J as p,q as f,m,n as x,i as v}from"./p-6ceedfa8.js";import{e as g,I as y}from"./p-641c26c4.js";const w='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;--ic-input-label-helpertext-padding:var(--ic-space-xs);--border-color:var(--ic-text-field-border-neutral);--border-color-hover:var(--ic-text-field-border-neutral-hover);--border-color-pressed:var(--ic-text-field-border-neutral-pressed);--border-color-disabled:var(--ic-text-field-border-disabled);--border-color-error:var(--ic-text-field-border-error);--border-color-error-hover:var(--ic-text-field-border-error-hover);--border-color-error-pressed:var(--ic-text-field-border-error-pressed);--border-color-success:var(--ic-text-field-border-success);--border-color-success-hover:var(--ic-text-field-border-success-hover);--border-color-success-pressed:var(--ic-text-field-border-success-pressed);--border-color-warning:var(--ic-text-field-border-warning);--border-color-warning-hover:var(--ic-text-field-border-warning-hover);--border-color-warning-pressed:var(--ic-text-field-border-warning-pressed);--ic-input-label-text-color:var(--ic-text-field-label);--ic-input-label-helper-text-color:var(--ic-text-field-subtitle);--ic-input-validation-status-text-color:var(--ic-text-field-state-text);--ic-input-validation-error:var(--ic-text-field-state-icon-error);--ic-input-validation-warning-icon-color:var(\n --ic-text-field-state-icon-warning\n );--ic-input-validation-success-icon-color:var(\n --ic-text-field-state-icon-success\n );--ic-input-component-container-success-icon-inline-color:var(\n --ic-text-field-state-icon-success\n )}:host(.ic-text-field-disabled){--ic-input-label-text-color:var(--ic-text-field-label-disabled);--ic-input-label-helper-text-color:var(--ic-text-field-subtitle-disabled);--text-field-placeholder-color:var(\n --ic-text-field-text-area-placeholder-text-disabled\n )}:host(.ic-text-field-full-width){width:100%}::-moz-placeholder{color:var(\n --text-field-placeholder-color,\n var(--ic-text-field-placeholder-text)\n );opacity:1}::placeholder{color:var(\n --text-field-placeholder-color,\n var(--ic-text-field-placeholder-text)\n );opacity:1}input,textarea{border:0;border-radius:var(--ic-border-radius);color:var(--text-field-text-color, var(--ic-text-field-text));background-color:var(--input-bg-color, var(--ic-text-field-background));line-height:1.5rem;letter-spacing:0.005rem;width:100%;padding-right:var(--ic-space-xs);padding-left:var(--ic-space-xs);caret-color:var(\n --text-field-typing-cursor,\n var(--ic-text-field-typing-cursor)\n )}textarea{min-height:var(--ic-space-lg);resize:vertical;padding-top:0.375rem}input:focus,textarea:focus{border:0;outline:0}input:disabled,textarea:disabled{color:var(\n --text-field-disabled-text-color,\n var(--ic-text-field-text-disabled)\n )}input.readonly,textarea.readonly{color:var(--ic-text-field-read-only-input-text-internal);background:transparent}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type="number"]{-moz-appearance:textfield}textarea.no-resize{resize:none}.char-count-text{--ic-typography-color:var(--ic-text-field-character-limit);padding-right:var(--ic-space-xxxs)}:host(.ic-text-field-disabled) .char-count-text{--ic-typography-color:var(--ic-text-field-character-limit-disabled)}.no-left-pad{padding-left:0}::slotted([slot="icon"]){fill:var(--ic-text-field-text-disabled)}.has-value ::slotted([slot="icon"]){fill:var(--ic-text-field-input-internal-icon)}.char-count{margin-right:calc(-1 * var(--ic-space-xxxs))}.remaining-char-count-desc{position:absolute;left:-9999px}.hidden-validation{margin:0}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-results-button,input[type="search"]::-webkit-search-results-decoration{display:none}input[type="search"].truncate-value{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media (forced-colors: active){input.readonly,textarea.readonly{color:canvastext}.has-value ::slotted([slot="icon"]){fill:currentcolor}}';const k=w;let z=0;const C=[...y,"title"];const $=class{constructor(a){e(this,a);this.getValidationText=t(this,"getValidationText",7);this.icBlur=t(this,"icBlur",7);this.icChange=t(this,"icChange",7);this.icFocus=t(this,"icFocus",7);this.icInput=t(this,"icInput",7);this.icKeydown=t(this,"icKeydown",7);this.icScroll=t(this,"icScroll",7);this.inheritedAttributes={};this.hostMutationObserver=null;this.numChars=0;this.maxCharactersReached=false;this.maxCharactersWarning=false;this.minCharactersUnattained=false;this.maxValueExceeded=false;this.minValueUnattained=false;this.isFocussed=false;this.validationAriaLive="default";this.autocapitalize="off";this.autocomplete="off";this.autocorrect="off";this.autofocus=false;this.disabled=false;this.fullWidth=false;this.helperText="";this.hideCharCount=false;this.hideLabel=false;this.hiddenInput=true;this.inputId=`ic-text-field-input-${z++}`;this.inputmode="text";this.maxCharacters=0;this.maxCharactersMessage=`Maximum input is ${this.maxCharacters} characters`;this.maxMessage=`Maximum value of ${this.max} exceeded`;this.minCharacters=0;this.minCharactersMessage=`Minimum input is ${this.minCharacters} characters`;this.minMessage=`Minimum value of ${this.min} not met`;this.name=this.inputId;this.placeholder="";this.readonly=false;this.required=false;this.resize=false;this.rows=1;this.size="medium";this.spellcheck=false;this.theme="inherit";this.truncateValue=false;this.type="text";this.validationInline=false;this.validationInlineInternal=false;this.validationStatus="";this.validationText="";this.debounce=0;this.value="";this.initialValue=this.value;this.checkChildHydration=()=>{var e,t;if(this.hideLabel||((t=(e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelector("ic-typography"))===null||t===void 0?void 0:t.classList.contains("hydrated"))){this.setFocus();clearInterval(this.interval)}};this.getNumberOfCharacters=e=>e!==null&&e!==undefined?e.length:0;this.getMaxValueExceeded=e=>{this.numChars=this.getNumberOfCharacters(e);if(this.type==="number"){this.minValueUnattained=!!e&&Number(e)<Number(this.min);this.maxValueExceeded=Number(e)>Number(this.max)}};this.getMaxCharactersReached=e=>{this.numChars=this.getNumberOfCharacters(e);this.maxCharactersReached=this.maxCharacters>0&&this.numChars>=this.maxCharacters;if(this.maxCharactersWarning&&!this.maxCharactersReached){this.maxCharactersWarning=false}};this.onInput=e=>{this.value=e.target.value;this.icInput.emit({value:this.value})};this.onBlur=e=>{const t=e.target;t.removeEventListener("wheel",this.onWheel);const{value:i}=t;this.numChars=i.length;this.minCharactersUnattained=this.minCharacters>0&&this.numChars<this.minCharacters;this.icBlur.emit({value:i});this.isFocussed=false};this.onFocus=e=>{const t=e.target;t.addEventListener("wheel",this.onWheel);this.icFocus.emit({value:t.value});this.isFocussed=true};this.onTextAreaScroll=()=>{this.icScroll.emit()};this.onWheel=e=>{const t=e.target;if(t.type==="number"){t.blur();setTimeout((()=>{t.focus()}),0)}};this.hasStatus=e=>e!==""&&!this.disabled;this.handleFormReset=()=>{this.value=this.initialValue};this.showValidationMargin=()=>{const e=this.readonly?0:this.maxCharacters;const t=o(this.validationStatus)||o(this.validationText);const i=this.minValueUnattained||this.maxValueExceeded;const a=e>0||this.minCharactersUnattained;return(!t||i||a)&&!this.validationInlineInternal};this.hostMutationCallback=e=>{let t=false;e.forEach((({attributeName:e,type:i,addedNodes:a,removedNodes:s})=>{if(e&&C.includes(e)){const i=this.el.getAttribute(e);if(i){this.inheritedAttributes[e]=i}t=true}else if(i==="childList"){t=n(a,s,"icon")}}));if(t){i(this)}}}watchDisabledHandler(){l(this.disabled,this.el)}debounceChanged(){this.icChange=c(this.icChange,this.debounce)}watchValueHandler(e){let t;if(this.maxCharacters>0){t=e.substring(0,this.maxCharacters);if(t.length<e.length){this.maxCharactersWarning=true}this.value=t}else{t=e}if(this.inputEl&&this.inputEl.value!==t){this.inputEl.value=t}this.getMaxValueExceeded(t);this.getMaxCharactersReached(t);this.icChange.emit({value:t})}connectedCallback(){this.debounceChanged()}disconnectedCallback(){var e;d(this.el,this.handleFormReset);(e=this.hostMutationObserver)===null||e===void 0?void 0:e.disconnect()}componentWillLoad(){if(this.value!==this.initialValue){this.watchValueHandler(this.value)}else if(this.maxCharacters>0){this.value=this.value.substring(0,this.maxCharacters)}this.getMaxValueExceeded(this.value);this.getMaxCharactersReached(this.value);this.inheritedAttributes=h(this.el,C);if(this.readonly){this.maxValueExceeded=false;this.minValueUnattained=false}u(this.el,this.handleFormReset);l(this.disabled,this.el)}componentDidLoad(){b([{prop:this.label,propName:"label"}],"Text Field");if(this.validationInlineInternal){this.getValidationText.emit({value:this.validationText})}this.hostMutationObserver=new MutationObserver(this.hostMutationCallback);this.hostMutationObserver.observe(this.el,{attributes:true,childList:true});if(this.autofocus&&!this.disabled&&!this.readonly){this.interval=setInterval(this.checkChildHydration,50)}}handleKeyDown(e){this.icKeydown.emit({event:e});if(!e.ctrlKey&&!g.includes(e.key)){this.maxCharactersWarning=this.maxCharactersReached}}async setFocus(){var e;(e=this.inputEl)===null||e===void 0?void 0:e.focus()}render(){const{inputId:e,name:t,label:i,required:r,size:o,placeholder:n,helperText:l,hideCharCount:c,rows:d,resize:h,disabled:u,value:b,min:g,max:y,numChars:w,readonly:k,maxCharacters:z,maxCharactersMessage:C,maxCharactersWarning:$,maxCharactersReached:I,maxMessage:M,minCharacters:L,minCharactersMessage:F,minCharactersUnattained:N,minMessage:T,minValueUnattained:j,maxValueExceeded:q,validationAriaLive:V,validationStatus:D,validationText:H,validationInline:W,validationInlineInternal:B,spellcheck:O,inputmode:S,fullWidth:A,truncateValue:E,hiddenInput:K,theme:U,hideLabel:_,type:J,autocapitalize:R,ariaActiveDescendant:G,inheritedAttributes:P,ariaExpanded:Q,ariaOwns:X,autocomplete:Y,role:Z,isFocussed:ee}=this;const te=this.el;const ie=k||u;const ae=q||j||N||$?$?p.Warning:p.Error:D;const se=$?C:q?M:j?T:N?F:H;const re=k?0:z;const oe=V==="default"?$||q||j||ae===p.Error?"assertive":"polite":V;const ne=this.hasStatus(ae)&&!(ae==p.Success&&W)&&!B;const le=d>1;const ce=z>0?`${e}-char-count-desc`:"";const de=re-w;const he=z>0?`${e}-remaining-char-count-desc`:"";const ue=`${de} character${de===1?"":"s"} remaining.`;const be=`${ce} ${w>0?he:""} ${f(this.el,e,l!=="",ne)}`.trim();const pe=ie&&!k;const fe=!!this.el.querySelector(`[slot="icon"]`)&&!pe;const me=`${ae===p.Error}`;K?m(this.el,b,t,ie):x(this.el);return a(s,{key:"985b46adc3cee088de75766a4230042e4af8c9c3",class:{"ic-text-field-full-width":A,"ic-text-field-disabled":ie,[`ic-theme-${U}`]:U!=="inherit"}},a("ic-input-container",{key:"4b9794b880ab440c1c2e6cf2072c13d9d88cc1fa",readonly:k,disabled:ie},!_&&a("ic-input-label",{key:"6ccf8091d697ddce0dade9a81d38e7bc17315da9",for:e,label:i,helperText:l,required:r,disabled:pe,readonly:k},a("slot",{key:"0ecf6a100c43efdca46f3b7c03ac6a5a8f7cc972",name:"helper-text",slot:"helper-text"})),a("ic-input-component-container",{key:"a1d649e733cab8590b92db3c0ecda49ea021103f",size:o,validationStatus:ae,multiLine:le,disabled:ie,readonly:k,validationInline:W,fullWidth:A},fe&&a("span",{key:"d3228d1ab97951891316b60608ce8a9fbe6295bb",class:{readonly:k,"has-value":this.getNumberOfCharacters(b)>0},slot:"left-icon"},a("slot",{key:"ea62e21d7abc5048da1a8e9a15f5a5a535c963b3",name:"icon"})),!le?a("input",Object.assign({id:e,name:t,ref:e=>this.inputEl=e,type:J,min:g,max:y,value:b,class:{"no-left-pad":!fe&&k,readonly:k,"truncate-value":E},placeholder:n?n:"",required:r,disabled:ie,readonly:k,onInput:this.onInput,onBlur:this.onBlur,onFocus:this.onFocus,"aria-label":i,"aria-describedby":be,"aria-invalid":me,"aria-activedescendant":G,"aria-expanded":Q,"aria-owns":X,autocomplete:Y,autocapitalize:R,spellcheck:O,inputmode:S,role:Z||undefined,maxlength:I?z:undefined,minlength:N?L:undefined},P)):a("textarea",Object.assign({id:e,class:{"no-resize":h===false||!!k,"no-left-pad":!fe&&!!k,readonly:!!k},name:t,ref:e=>this.inputEl=e,value:b,rows:d,required:r,disabled:ie,placeholder:n,readonly:k,onInput:this.onInput,onBlur:this.onBlur,onFocus:this.onFocus,onScroll:this.onTextAreaScroll,"aria-label":i,"aria-describedby":be,"aria-invalid":me,autocomplete:Y,autocapitalize:R,spellcheck:O,inputmode:S,maxlength:I?z:undefined,minlength:N?L:undefined},P)),v(te,"clear-button")&&a("slot",{key:"e02f69a6fd4c654b7f3b5f1593f7a29c7412d10f",name:"clear-button"}),v(te,"search-submit-button")&&a("slot",{key:"2e32b1afd58a382a804a356537489efa523009ce",name:"search-submit-button"})),v(te,"menu")&&a("slot",{key:"1cbac8ded359309907e51f16033b03d266eb8828",name:"menu"}),a("ic-input-validation",{key:"d5c1c75305e3bebe54a48b1a2a99429f4f64019a",class:{"hidden-validation":!this.showValidationMargin()},status:this.hasStatus(ae)===false||ae===p.Success&&W||B?"":ae,message:ne?se:"",ariaLiveMode:oe,for:e,fullWidth:A},!k&&re>0&&a("div",{key:"8f44917b384aea5179dd8ec7ecb76c4deac324f4",slot:"validation-message-adornment"},!c&&a("ic-typography",{key:"82c4343bc57ca67df98685ef351032e411010c82",variant:"caption",class:"char-count-text"},a("span",{key:"c89807bfa34112d29f906cf540a97639846970fb",class:"char-count"},w,"/",re)),a("span",{key:"24fef83685d9b7ac8c706c8776485b38fea74973",class:"remaining-char-count-desc","aria-live":"polite",hidden:!ee,id:he},ue),a("span",{key:"98d23cac7439da80ea0d72a355cce23b57e5bea4",hidden:true,id:ce},"Field can contain a maximum of ",re," characters.")))))}get el(){return r(this)}static get watchers(){return{disabled:["watchDisabledHandler"],debounce:["debounceChanged"],value:["watchValueHandler"]}}};$.style=k;export{$ as ic_text_field};
|
2
|
+
//# sourceMappingURL=p-b80d408f.entry.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["icTextFieldCss","IcTextFieldStyle0","inputIds","MUTABLE_ATTRIBUTES","IC_INHERITED_ARIA","TextField","constructor","hostRef","this","inheritedAttributes","hostMutationObserver","numChars","maxCharactersReached","maxCharactersWarning","minCharactersUnattained","maxValueExceeded","minValueUnattained","isFocussed","validationAriaLive","autocapitalize","autocomplete","autocorrect","autofocus","disabled","fullWidth","helperText","hideCharCount","hideLabel","hiddenInput","inputId","inputmode","maxCharacters","maxCharactersMessage","maxMessage","max","minCharacters","minCharactersMessage","minMessage","min","name","placeholder","readonly","required","resize","rows","size","spellcheck","theme","truncateValue","type","validationInline","validationInlineInternal","validationStatus","validationText","debounce","value","initialValue","checkChildHydration","_b","_a","el","shadowRoot","querySelector","classList","contains","setFocus","clearInterval","interval","getNumberOfCharacters","undefined","length","getMaxValueExceeded","Number","getMaxCharactersReached","onInput","ev","target","icInput","emit","onBlur","removeEventListener","onWheel","icBlur","onFocus","addEventListener","icFocus","onTextAreaScroll","icScroll","blur","setTimeout","focus","hasStatus","status","handleFormReset","showValidationMargin","maxNumChars","emptyString","isEmptyString","valueOutsideRange","charsOutsideRange","hostMutationCallback","mutationList","forceComponentUpdate","forEach","attributeName","addedNodes","removedNodes","includes","attribute","getAttribute","checkSlotInChildMutations","forceUpdate","watchDisabledHandler","removeDisabledFalse","debounceChanged","icChange","debounceEvent","watchValueHandler","newValue","substring","inputEl","connectedCallback","disconnectedCallback","removeFormResetListener","disconnect","componentWillLoad","inheritAttributes","addFormResetListener","componentDidLoad","onComponentRequiredPropUndefined","prop","label","propName","getValidationText","MutationObserver","observe","attributes","childList","setInterval","handleKeyDown","icKeydown","event","ctrlKey","IGNORED_KEYBOARD_CHARACTERS","key","render","ariaActiveDescendant","ariaExpanded","ariaOwns","role","disabledMode","currentStatus","IcInformationStatus","Warning","Error","currentValidationText","messageAriaLive","showStatusText","Success","multiline","hiddenCharCountDescId","charsRemaining","remainingCharCountDescId","remainingCharCountDesc","describedBy","getInputDescribedByText","trim","disabledText","showLeftIcon","invalid","renderHiddenInput","removeHiddenInput","h","Host","class","for","slot","multiLine","Object","assign","id","ref","maxlength","minlength","onScroll","isSlotUsed","message","ariaLiveMode","variant","hidden"],"sources":["src/components/ic-text-field/ic-text-field.css?tag=ic-text-field&encapsulation=shadow","src/components/ic-text-field/ic-text-field.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n /**\n * @prop --input-width: Width of the input field\n */\n display: block;\n\n --ic-input-label-helpertext-padding: var(--ic-space-xs);\n --border-color: var(--ic-text-field-border-neutral);\n --border-color-hover: var(--ic-text-field-border-neutral-hover);\n --border-color-pressed: var(--ic-text-field-border-neutral-pressed);\n --border-color-disabled: var(--ic-text-field-border-disabled);\n --border-color-error: var(--ic-text-field-border-error);\n --border-color-error-hover: var(--ic-text-field-border-error-hover);\n --border-color-error-pressed: var(--ic-text-field-border-error-pressed);\n --border-color-success: var(--ic-text-field-border-success);\n --border-color-success-hover: var(--ic-text-field-border-success-hover);\n --border-color-success-pressed: var(--ic-text-field-border-success-pressed);\n --border-color-warning: var(--ic-text-field-border-warning);\n --border-color-warning-hover: var(--ic-text-field-border-warning-hover);\n --border-color-warning-pressed: var(--ic-text-field-border-warning-pressed);\n --ic-input-label-text-color: var(--ic-text-field-label);\n --ic-input-label-helper-text-color: var(--ic-text-field-subtitle);\n --ic-input-validation-status-text-color: var(--ic-text-field-state-text);\n --ic-input-validation-error: var(--ic-text-field-state-icon-error);\n --ic-input-validation-warning-icon-color: var(\n --ic-text-field-state-icon-warning\n );\n --ic-input-validation-success-icon-color: var(\n --ic-text-field-state-icon-success\n );\n --ic-input-component-container-success-icon-inline-color: var(\n --ic-text-field-state-icon-success\n );\n}\n\n:host(.ic-text-field-disabled) {\n --ic-input-label-text-color: var(--ic-text-field-label-disabled);\n --ic-input-label-helper-text-color: var(--ic-text-field-subtitle-disabled);\n --text-field-placeholder-color: var(\n --ic-text-field-text-area-placeholder-text-disabled\n );\n}\n\n:host(.ic-text-field-full-width) {\n width: 100%;\n}\n\n::placeholder {\n color: var(\n --text-field-placeholder-color,\n var(--ic-text-field-placeholder-text)\n );\n opacity: 1;\n}\n\ninput,\ntextarea {\n border: 0;\n border-radius: var(--ic-border-radius);\n color: var(--text-field-text-color, var(--ic-text-field-text));\n background-color: var(--input-bg-color, var(--ic-text-field-background));\n line-height: 1.5rem;\n letter-spacing: 0.005rem;\n width: 100%;\n padding-right: var(--ic-space-xs);\n padding-left: var(--ic-space-xs);\n caret-color: var(\n --text-field-typing-cursor,\n var(--ic-text-field-typing-cursor)\n );\n}\n\ntextarea {\n min-height: var(--ic-space-lg);\n resize: vertical;\n padding-top: 0.375rem;\n}\n\ninput:focus,\ntextarea:focus {\n border: 0;\n outline: 0;\n}\n\ninput:disabled,\ntextarea:disabled {\n color: var(\n --text-field-disabled-text-color,\n var(--ic-text-field-text-disabled)\n );\n}\n\ninput.readonly,\ntextarea.readonly {\n color: var(--ic-text-field-read-only-input-text-internal);\n background: transparent;\n}\n\n/* Chrome, Safari, Edge */\ninput::-webkit-outer-spin-button,\ninput::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\n/* Firefox */\ninput[type=\"number\"] {\n -moz-appearance: textfield;\n}\n\ntextarea.no-resize {\n resize: none;\n}\n\n.char-count-text {\n --ic-typography-color: var(--ic-text-field-character-limit);\n\n padding-right: var(--ic-space-xxxs);\n}\n\n:host(.ic-text-field-disabled) .char-count-text {\n --ic-typography-color: var(--ic-text-field-character-limit-disabled);\n}\n\n.no-left-pad {\n padding-left: 0;\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-text-field-text-disabled);\n}\n\n.has-value ::slotted([slot=\"icon\"]) {\n fill: var(--ic-text-field-input-internal-icon);\n}\n\n.char-count {\n margin-right: calc(-1 * var(--ic-space-xxxs));\n}\n\n.remaining-char-count-desc {\n position: absolute;\n left: -9999px;\n}\n\n.hidden-validation {\n margin: 0;\n}\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-results-button,\ninput[type=\"search\"]::-webkit-search-results-decoration {\n display: none;\n}\n\ninput[type=\"search\"].truncate-value {\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n@media (forced-colors: active) {\n input.readonly,\n textarea.readonly {\n color: canvastext;\n }\n\n .has-value ::slotted([slot=\"icon\"]) {\n fill: currentcolor;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n Method,\n h,\n forceUpdate,\n} from \"@stencil/core\";\nimport {\n IcInformationStatus,\n IcAutocompleteTypes,\n IcAutocorrectStates,\n IcInformationStatusOrEmpty,\n IcValueEventDetail,\n IcSizesNoLarge,\n IcThemeMode,\n IcValidationAriaLive,\n} from \"../../utils/types\";\nimport {\n inheritAttributes,\n debounceEvent,\n getInputDescribedByText,\n renderHiddenInput,\n isEmptyString,\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n isSlotUsed,\n removeDisabledFalse,\n checkSlotInChildMutations,\n removeHiddenInput,\n} from \"../../utils/helpers\";\nimport {\n IC_INHERITED_ARIA,\n IGNORED_KEYBOARD_CHARACTERS,\n} from \"../../utils/constants\";\nimport {\n IcAriaAutocompleteTypes,\n IcTextFieldInputModes,\n IcTextFieldTypes,\n} from \"./ic-text-field.types\";\n\nlet inputIds = 0;\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"title\"];\n\n/**\n * @slot helper-text - Content is set as the helper text for the text field.\n * @slot icon - Content will be placed to the left of the text input.\n */\n@Component({\n tag: \"ic-text-field\",\n styleUrl: \"ic-text-field.css\",\n shadow: true,\n})\nexport class TextField {\n private inheritedAttributes: { [k: string]: string } = {};\n private inputEl: HTMLInputElement | HTMLTextAreaElement;\n private hostMutationObserver: MutationObserver | null = null;\n private interval: ReturnType<typeof setInterval>;\n\n @Element() el: HTMLIcTextFieldElement;\n\n @State() numChars: number = 0;\n @State() maxCharactersReached: boolean = false;\n @State() maxCharactersWarning: boolean = false;\n @State() minCharactersUnattained: boolean = false;\n @State() maxValueExceeded: boolean = false;\n @State() minValueUnattained: boolean = false;\n @State() isFocussed: boolean = false;\n\n /**\n * @slot clear-button - an ic-button clear component will render as an end adornment to the input.\n * @slot search-submit-button - an ic-button search submit component will render as an end adornment to the input.\n * @slot menu - an ic-menu component will appear below the input.\n */\n\n /**\n * @internal The active element when focus is on the ic-menu items.\n */\n @Prop() ariaActiveDescendant?: string;\n\n /**\n * @internal Used to identify whether inputting any text triggers more predictions\n */\n @Prop() ariaAutocomplete?: IcAriaAutocompleteTypes;\n\n /**\n * @internal Used to identify if the slotted menu is rendered\n */\n @Prop() ariaExpanded: string | null;\n\n /**\n * @internal Used to identify any related child component\n */\n @Prop() ariaOwns?: string;\n\n /**\n * The value of the `aria-live` attribute on the validation message. When set to \"default\", the `aria-live` value will be handled automatically, e.g. \"assertive\" for `validation-status=\"error\"`.\n */\n @Prop() validationAriaLive: IcValidationAriaLive = \"default\";\n\n /**\n * The automatic capitalisation of the text value as it is entered/edited by the user.\n * Available options: \"off\", \"none\", \"on\", \"sentences\", \"words\", \"characters\".\n */\n @Prop() autocapitalize = \"off\";\n\n /**\n * The state of autocompletion the browser can apply on the text value.\n */\n @Prop() autocomplete?: IcAutocompleteTypes = \"off\";\n\n /**\n * The state of autocorrection the browser can apply when the user is entering/editing the text value.\n */\n @Prop() autocorrect?: IcAutocorrectStates = \"off\";\n\n /**\n * If `true`, the form control will have input focus when the page loads.\n */\n @Prop() autofocus = false;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el as HTMLElement);\n }\n\n /**\n * Specify whether the text field fills the full width of the container.\n * If `true`, this overrides the --input-width CSS variable.\n */\n @Prop() fullWidth = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText = \"\";\n\n /**\n * If `true`, the character count which is displayed when `maxCharacters` is set will be visually hidden.\n */\n @Prop() hideCharCount = false;\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel = false;\n\n /**\n * @internal If `true`, the hidden form input will stop rendering for form submission.\n */\n @Prop() hiddenInput = true;\n\n /**\n * The ID for the input.\n */\n @Prop() inputId = `ic-text-field-input-${inputIds++}`;\n\n /**\n * A hint to the browser for which keyboard to display.\n * Possible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n * `\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.\n */\n @Prop() inputmode: IcTextFieldInputModes = \"text\";\n\n /**\n * The label for the input.\n */\n @Prop() label!: string;\n\n /**\n * The maximum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of max value in `helperText` or `label`)\n */\n @Prop() max?: string | number;\n\n /**\n * The count of characters in the field. Will display a warning if the bound is reached. (NOTE: If the value of the text field has been set using the `value` prop, it will be truncated to this number of characters)\n */\n @Prop() maxCharacters = 0;\n\n /**\n * The text to display as the warning message when the maximum number of characters (the `maxCharacters` prop value) is reached.\n */\n // prettier-ignore\n @Prop() maxCharactersMessage = `Maximum input is ${this.maxCharacters} characters`;\n\n /**\n * The text to display as the error message when the maximum value (the `max` prop value) has been exceeded.\n */\n @Prop() maxMessage = `Maximum value of ${this.max} exceeded`;\n\n /**\n * The minimum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of min value in `helperText` or `label`)\n */\n @Prop() min?: string | number;\n\n /**\n * The minimum number of characters that can be entered in the field.\n */\n @Prop() minCharacters = 0;\n\n /**\n * The text to display as the error message when the minimum number of characters (the `minCharacters` prop value) has not been met.\n */\n // prettier-ignore\n @Prop() minCharactersMessage = `Minimum input is ${this.minCharacters} characters`;\n\n /**\n * The text to display as the error message when the minimum value (the `min` prop value) has not been met.\n */\n @Prop() minMessage = `Minimum value of ${this.min} not met`;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name = this.inputId;\n\n /**\n * The placeholder value to be displayed.\n */\n @Prop() placeholder = \"\";\n\n /**\n * If `true`, the read only state will be set.\n */\n @Prop({ reflect: true }) readonly = false;\n\n /**\n * If `true`, the input will require a value.\n */\n @Prop() required = false;\n\n /**\n * If `true`, the multiline text area will be resizeable.\n */\n @Prop() resize = false;\n\n /**\n * @internal Used to set the role if not default textbox;\n */\n @Prop() role: string | null;\n\n /**\n * The number of rows to transform the text field into a text area with a specific height.\n */\n @Prop() rows = 1;\n\n /**\n * The size of the text field component.\n */\n @Prop() size: IcSizesNoLarge = \"medium\";\n\n /**\n * If `true`, the value of the text field will have its spelling and grammar checked.\n */\n @Prop() spellcheck = false;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n\n /**\n * @internal If `true`, an ellipsis will be displayed at the end of the value if the value is longer than the container.\n */\n @Prop() truncateValue = false;\n\n /**\n * The type of control to display. The default type is text.\n */\n @Prop() type: IcTextFieldTypes = \"text\";\n\n /**\n * If `true`, the icon in input control will be displayed - only applies when validationStatus ='success'.\n */\n @Prop() validationInline = false;\n\n /**\n * @internal If `true`, the validation will display inline.\n */\n @Prop() validationInlineInternal = false;\n\n /**\n * The validation state - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message.\n */\n @Prop() validationText: string = \"\";\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icChange` event after each keystroke.\n */\n @Prop() debounce = 0;\n @Watch(\"debounce\")\n private debounceChanged() {\n this.icChange = debounceEvent(this.icChange, this.debounce);\n }\n\n /**\n * The value of the text field.\n */\n @Prop({ reflect: true, mutable: true }) value = \"\";\n @State() initialValue = this.value;\n @Watch(\"value\")\n private watchValueHandler(newValue: string): void {\n let value;\n\n if (this.maxCharacters > 0) {\n value = newValue.substring(0, this.maxCharacters);\n if (value.length < newValue.length) {\n this.maxCharactersWarning = true;\n }\n this.value = value;\n } else {\n value = newValue;\n }\n\n if (this.inputEl && this.inputEl.value !== value) {\n this.inputEl.value = value;\n }\n\n this.getMaxValueExceeded(value);\n\n this.getMaxCharactersReached(value);\n\n this.icChange.emit({ value });\n }\n\n /**\n * @internal Emitted when the validationInlineInternal is `true`\n */\n @Event() getValidationText: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when input loses focus.\n */\n @Event() icBlur: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when input gains focus.\n */\n @Event() icFocus: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() icInput: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keydown event occurred.\n */\n @Event() icKeydown: EventEmitter<{ event: KeyboardEvent }>;\n\n /**\n * Emitted when the textarea variant is scrolled.\n */\n @Event() icScroll: EventEmitter;\n\n connectedCallback(): void {\n this.debounceChanged();\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el as HTMLElement, this.handleFormReset);\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n if (this.value !== this.initialValue) {\n this.watchValueHandler(this.value);\n } else if (this.maxCharacters > 0) {\n this.value = this.value.substring(0, this.maxCharacters);\n }\n\n this.getMaxValueExceeded(this.value);\n this.getMaxCharactersReached(this.value);\n\n this.inheritedAttributes = inheritAttributes(\n this.el as HTMLElement,\n MUTABLE_ATTRIBUTES\n );\n\n if (this.readonly) {\n this.maxValueExceeded = false;\n this.minValueUnattained = false;\n }\n\n addFormResetListener(this.el as HTMLElement, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el as HTMLElement);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Text Field\"\n );\n if (this.validationInlineInternal) {\n this.getValidationText.emit({ value: this.validationText });\n }\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n });\n\n if (this.autofocus && !this.disabled && !this.readonly) {\n this.interval = setInterval(this.checkChildHydration, 50);\n }\n }\n\n private checkChildHydration = () => {\n if (\n this.hideLabel ||\n this.el.shadowRoot\n ?.querySelector(\"ic-typography\")\n ?.classList.contains(\"hydrated\")\n ) {\n this.setFocus();\n clearInterval(this.interval);\n }\n };\n\n @Listen(\"keydown\", {})\n handleKeyDown(ev: KeyboardEvent): void {\n this.icKeydown.emit({ event: ev });\n\n if (!ev.ctrlKey && !IGNORED_KEYBOARD_CHARACTERS.includes(ev.key)) {\n this.maxCharactersWarning = this.maxCharactersReached;\n }\n }\n\n /**\n * Sets focus on the native `input`.\n */\n\n @Method()\n async setFocus(): Promise<void> {\n this.inputEl?.focus();\n }\n\n private getNumberOfCharacters = (value: string) =>\n value !== null && value !== undefined ? value.length : 0;\n\n private getMaxValueExceeded = (value: string) => {\n this.numChars = this.getNumberOfCharacters(value);\n\n if (this.type === \"number\") {\n this.minValueUnattained = !!value && Number(value) < Number(this.min);\n this.maxValueExceeded = Number(value) > Number(this.max);\n }\n };\n\n private getMaxCharactersReached = (value: string) => {\n this.numChars = this.getNumberOfCharacters(value);\n\n this.maxCharactersReached =\n this.maxCharacters > 0 && this.numChars >= this.maxCharacters;\n\n if (this.maxCharactersWarning && !this.maxCharactersReached) {\n this.maxCharactersWarning = false;\n }\n };\n\n private onInput = (ev: Event) => {\n this.value = (ev.target as HTMLInputElement).value;\n this.icInput.emit({ value: this.value });\n };\n\n private onBlur = (ev: Event) => {\n const target = ev.target as HTMLInputElement;\n target.removeEventListener(\"wheel\", this.onWheel);\n const { value } = target;\n this.numChars = value.length;\n this.minCharactersUnattained =\n this.minCharacters > 0 && this.numChars < this.minCharacters;\n this.icBlur.emit({ value });\n this.isFocussed = false;\n };\n\n private onFocus = (ev: Event) => {\n const target = ev.target as HTMLInputElement;\n target.addEventListener(\"wheel\", this.onWheel);\n this.icFocus.emit({ value: target.value });\n this.isFocussed = true;\n };\n\n private onTextAreaScroll = () => {\n this.icScroll.emit();\n };\n\n private onWheel = (ev: WheelEvent) => {\n const target = ev.target as HTMLInputElement;\n if (target.type === \"number\") {\n target.blur();\n setTimeout(() => {\n target.focus();\n }, 0);\n }\n };\n\n private hasStatus = (status: IcInformationStatusOrEmpty) =>\n status !== \"\" && !this.disabled;\n\n private handleFormReset = (): void => {\n this.value = this.initialValue;\n };\n\n private showValidationMargin = (): boolean => {\n const maxNumChars = this.readonly ? 0 : this.maxCharacters;\n const emptyString =\n isEmptyString(this.validationStatus) ||\n isEmptyString(this.validationText);\n const valueOutsideRange = this.minValueUnattained || this.maxValueExceeded;\n const charsOutsideRange = maxNumChars > 0 || this.minCharactersUnattained;\n return (\n (!emptyString || valueOutsideRange || charsOutsideRange) &&\n !this.validationInlineInternal\n );\n };\n\n // triggered when attributes of host element change\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n let forceComponentUpdate = false;\n mutationList.forEach(\n ({ attributeName, type, addedNodes, removedNodes }) => {\n if (attributeName && MUTABLE_ATTRIBUTES.includes(attributeName)) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute) {\n this.inheritedAttributes[attributeName] = attribute;\n }\n forceComponentUpdate = true;\n } else if (type === \"childList\") {\n forceComponentUpdate = checkSlotInChildMutations(\n addedNodes,\n removedNodes,\n \"icon\"\n );\n }\n }\n );\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n render() {\n const {\n inputId,\n name,\n label,\n required,\n size,\n placeholder,\n helperText,\n hideCharCount,\n rows,\n resize,\n disabled,\n value,\n min,\n max,\n numChars,\n readonly,\n maxCharacters,\n maxCharactersMessage,\n maxCharactersWarning,\n maxCharactersReached,\n maxMessage,\n minCharacters,\n minCharactersMessage,\n minCharactersUnattained,\n minMessage,\n minValueUnattained,\n maxValueExceeded,\n validationAriaLive,\n validationStatus,\n validationText,\n validationInline,\n validationInlineInternal,\n spellcheck,\n inputmode,\n fullWidth,\n truncateValue,\n hiddenInput,\n theme,\n hideLabel,\n type,\n autocapitalize,\n ariaActiveDescendant,\n inheritedAttributes,\n ariaExpanded,\n ariaOwns,\n autocomplete,\n role,\n isFocussed,\n } = this;\n\n const el = this.el as HTMLElement;\n\n const disabledMode = readonly || disabled;\n\n const currentStatus =\n maxValueExceeded ||\n minValueUnattained ||\n minCharactersUnattained ||\n maxCharactersWarning\n ? maxCharactersWarning\n ? IcInformationStatus.Warning\n : IcInformationStatus.Error\n : validationStatus;\n\n const currentValidationText = maxCharactersWarning\n ? maxCharactersMessage\n : maxValueExceeded\n ? maxMessage\n : minValueUnattained\n ? minMessage\n : minCharactersUnattained\n ? minCharactersMessage\n : validationText;\n\n const maxNumChars = readonly ? 0 : maxCharacters;\n const messageAriaLive =\n validationAriaLive === \"default\"\n ? maxCharactersWarning ||\n maxValueExceeded ||\n minValueUnattained ||\n currentStatus === IcInformationStatus.Error\n ? \"assertive\"\n : \"polite\"\n : validationAriaLive;\n\n const showStatusText =\n this.hasStatus(currentStatus) &&\n !(currentStatus == IcInformationStatus.Success && validationInline) &&\n !validationInlineInternal;\n\n const multiline = rows > 1;\n\n const hiddenCharCountDescId =\n maxCharacters > 0 ? `${inputId}-char-count-desc` : \"\";\n\n const charsRemaining = maxNumChars - numChars;\n const remainingCharCountDescId =\n maxCharacters > 0 ? `${inputId}-remaining-char-count-desc` : \"\";\n const remainingCharCountDesc = `${charsRemaining} character${\n charsRemaining === 1 ? \"\" : \"s\"\n } remaining.`;\n\n const describedBy = `${hiddenCharCountDescId} ${\n numChars > 0 ? remainingCharCountDescId : \"\"\n } ${getInputDescribedByText(\n this.el,\n inputId,\n helperText !== \"\",\n showStatusText\n )}`.trim();\n\n const disabledText = disabledMode && !readonly;\n const showLeftIcon =\n !!this.el.querySelector(`[slot=\"icon\"]`) && !disabledText;\n\n const invalid = `${currentStatus === IcInformationStatus.Error}`;\n\n hiddenInput\n ? renderHiddenInput(this.el as HTMLElement, value, name, disabledMode)\n : removeHiddenInput(this.el as HTMLElement);\n\n return (\n <Host\n class={{\n \"ic-text-field-full-width\": fullWidth,\n \"ic-text-field-disabled\": disabledMode,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <ic-input-container readonly={readonly} disabled={disabledMode}>\n {!hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabledText}\n readonly={readonly}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\n </ic-input-label>\n )}\n\n <ic-input-component-container\n size={size}\n validationStatus={currentStatus}\n multiLine={multiline}\n disabled={disabledMode}\n readonly={readonly}\n validationInline={validationInline}\n fullWidth={fullWidth}\n >\n {showLeftIcon && (\n <span\n class={{\n readonly,\n \"has-value\": this.getNumberOfCharacters(value) > 0,\n }}\n slot=\"left-icon\"\n >\n <slot name=\"icon\" />\n </span>\n )}\n\n {!multiline ? (\n <input\n id={inputId}\n name={name}\n ref={(el) => (this.inputEl = el as HTMLInputElement)}\n type={type}\n min={min}\n max={max}\n value={value}\n class={{\n \"no-left-pad\": !showLeftIcon && readonly,\n readonly,\n \"truncate-value\": truncateValue,\n }}\n placeholder={placeholder ? placeholder : \"\"}\n required={required}\n disabled={disabledMode}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n aria-activedescendant={ariaActiveDescendant}\n aria-expanded={ariaExpanded}\n aria-owns={ariaOwns}\n autocomplete={autocomplete}\n autocapitalize={autocapitalize}\n spellcheck={spellcheck}\n inputmode={inputmode}\n role={role || undefined}\n maxlength={maxCharactersReached ? maxCharacters : undefined}\n minlength={minCharactersUnattained ? minCharacters : undefined}\n {...inheritedAttributes}\n ></input>\n ) : (\n <textarea\n id={inputId}\n class={{\n \"no-resize\": resize === false || !!readonly,\n \"no-left-pad\": !showLeftIcon && !!readonly,\n readonly: !!readonly,\n }}\n name={name}\n ref={(el) => (this.inputEl = el as HTMLTextAreaElement)}\n value={value}\n rows={rows}\n required={required}\n disabled={disabledMode}\n placeholder={placeholder}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onScroll={this.onTextAreaScroll}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n autocomplete={autocomplete}\n autocapitalize={autocapitalize}\n spellcheck={spellcheck}\n inputmode={inputmode}\n maxlength={maxCharactersReached ? maxCharacters : undefined}\n minlength={minCharactersUnattained ? minCharacters : undefined}\n {...inheritedAttributes}\n ></textarea>\n )}\n {isSlotUsed(el, \"clear-button\") && (\n <slot name=\"clear-button\"></slot>\n )}\n {isSlotUsed(el, \"search-submit-button\") && (\n <slot name=\"search-submit-button\"></slot>\n )}\n </ic-input-component-container>\n {isSlotUsed(el, \"menu\") && <slot name=\"menu\"></slot>}\n <ic-input-validation\n class={{ \"hidden-validation\": !this.showValidationMargin() }}\n status={\n this.hasStatus(currentStatus) === false ||\n (currentStatus === IcInformationStatus.Success &&\n validationInline) ||\n validationInlineInternal\n ? \"\"\n : currentStatus\n }\n message={showStatusText ? currentValidationText : \"\"}\n ariaLiveMode={messageAriaLive}\n for={inputId}\n fullWidth={fullWidth}\n >\n {!readonly && maxNumChars > 0 && (\n <div slot=\"validation-message-adornment\">\n {!hideCharCount && (\n <ic-typography variant=\"caption\" class=\"char-count-text\">\n <span class=\"char-count\">\n {numChars}/{maxNumChars}\n </span>\n </ic-typography>\n )}\n <span\n class=\"remaining-char-count-desc\"\n aria-live=\"polite\"\n hidden={!isFocussed}\n id={remainingCharCountDescId}\n >\n {remainingCharCountDesc}\n </span>\n <span hidden={true} id={hiddenCharCountDescId}>\n Field can contain a maximum of {maxNumChars} characters.\n </span>\n </div>\n )}\n </ic-input-validation>\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import{r as t,c as i,h as e,H as s,g as a}from"./p-8e4e97b4.js";import{c as o}from"./p-f074ef5b.js";import{V as n}from"./p-641c26c4.js";import{i as r,o as c,M as d,e as l}from"./p-6ceedfa8.js";const h='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}@media (prefers-reduced-motion: no-preference){:host{animation:fadein var(--ic-transition-duration-slow) ease-in-out}:host(.hidden){animation:fadeout var(--ic-transition-duration-slow) ease-in-out}}:host{--bottom-position:var(--ic-space-xl);position:fixed;bottom:var(--bottom-position);left:50%;transform:translate(-50%);z-index:var(--ic-z-index-toast)}:host(.ic-toast-hidden){display:none}:host(:focus){outline:none}.container{max-width:32.5rem;min-width:18rem;box-shadow:var(--ic-elevation-overlay);min-height:3.5rem;background-color:var(--ic-toast-background);display:flex;align-items:center;position:relative;border-radius:var(--ic-border-radius)}.toast-icon-container{height:100%;display:flex;align-items:center}.divider{height:100%;width:var(--ic-space-xs);position:absolute;border-radius:var(--ic-space-xxxs) 0 0 var(--ic-space-xxxs)}.divider-neutral{background-color:var(--ic-toast-status-neutral)}.divider-info{background-color:var(--ic-toast-status-info)}.divider-warning{background-color:var(--ic-toast-status-warning)}.divider-error{background-color:var(--ic-toast-status-error)}.divider-success{background-color:var(--ic-toast-status-success)}.divider-ai{background-color:var(--ic-toast-status-ai)}.toast-icon,::slotted(svg){height:var(--ic-space-lg);width:var(--ic-space-lg);margin-left:var(--ic-space-md)}:host([variant="neutral"]) .toast-icon svg,::slotted(svg){fill:var(--ic-toast-icon-neutral)}:host([variant="info"]) .toast-icon svg{fill:var(--ic-toast-icon-info)}:host([variant="warning"]) .toast-icon svg{fill:var(--ic-toast-icon-warning)}:host([variant="error"]) .toast-icon svg{fill:var(--ic-toast-icon-error)}:host([variant="success"]) .toast-icon svg{fill:var(--ic-toast-icon-success)}:host([variant="ai"]) .toast-icon svg{fill:var(--ic-toast-icon-ai)}.toast-content{margin-left:var(--ic-space-xs);width:100%}.no-icon{margin-left:var(--ic-space-md)}.toast-text{padding:var(--ic-space-xs) var(--ic-space-xs) var(--ic-space-xs) 0}.toast-heading{--ic-typography-color:var(--ic-toast-title)}.toast-message{--ic-typography-color:var(--ic-toast-description)}.toast-action-container{padding-bottom:var(--ic-space-md)}#dismiss-button{padding:var(--ic-space-xs)}#dismiss-button>svg{color:var(--ic-toast-dismiss-button)}ic-loading-indicator{--outer-color:transparent;--inner-color:var(--ic-action-monochrome)}.toast-dismiss-timer{padding:var(--ic-space-sm)}@media (max-width: 576px){:host{--bottom-position:var(--ic-space-lg);width:calc(100% - 2 * var(--ic-space-md))}}@media (min-width: 993px){:host{--bottom-position:calc(var(--ic-space-xl) + var(--ic-space-xs))}}@media (forced-colors: active){.container{border:var(--ic-border-hc)}}@keyframes fadein{from{bottom:0;opacity:0}to{bottom:var(--bottom-position);opacity:1}}@keyframes fadeout{from{bottom:var(--bottom-position);opacity:1}to{bottom:0;opacity:0}}';const m=h;const b=1e3;const u=70;const p=140;const f=class{constructor(e){t(this,e);this.icDismiss=i(this,"icDismiss",7);this.interactiveElements=[];this.timerProgress=100;this.visible=false;this.autoDismissTimeout=5e3;this.dismissButtonAriaLabel="dismiss";this.dismissMode="manual";this.dismissAction=()=>{this.icDismiss.emit()};this.handleProgressChange=()=>{this.timerProgress-=b/this.autoDismissTimeout*100};this.onFocus=()=>{if(this.focusInteractiveElement){this.isManual=true}};this.onBlur=()=>{this.handleTimer({type:"mouseleave"})}}dismissModeChangeHandler(t){this.isManual=t==="manual"}disconnectedCallback(){window.clearTimeout(this.dismissTimeout);window.clearInterval(this.timerRefreshInterval)}componentWillLoad(){var t,i;this.handleLongText(this.heading.length>u,!!this.message&&((t=this.message)===null||t===void 0?void 0:t.length)>p);if(this.autoDismissTimeout<5e3)this.autoDismissTimeout=5e3;if(r(this.el,"action"))this.dismissMode="manual";this.isManual=this.dismissMode==="manual";if(r(this.el,"neutral-icon"))this.variant="neutral";if(this.variant==="neutral"){this.neutralVariantLabel=(i=this.neutralIconAriaLabel)!==null&&i!==void 0?i:n[this.variant].ariaLabel}if(this.isManual){const t=l(this.message)?`. ${this.message}`:"";this.el.setAttribute("aria-label",this.variant?this.neutralVariantLabel||n[this.variant].ariaLabel:this.heading);(this.variant||this.message)&&this.el.setAttribute("aria-description",this.variant?`${this.heading}${t}`:this.message||"")}}componentDidLoad(){c([{prop:this.heading,propName:"heading"}],"Toast")}componentDidUpdate(){var t;if(this.focusInteractiveElement&&this.isManual){this.resetAutoDismissTimer();const i=d(this.el,"action");const e=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("ic-button");if(i)this.interactiveElements.push(i);if(e)this.interactiveElements.push(e);this.focusInteractiveElement=false;this.findNextInteractiveElement(this.shiftKeyPressed).setFocus();this.shiftKeyPressed=false}}watchVisibleHandler(){var t;if(this.visible){const i=d(this.el,"action");const e=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("ic-button");if(i)this.interactiveElements.push(i);if(e)this.interactiveElements.push(e)}else{this.interactiveElements=[]}}handleDismiss(){this.visible=false;this.resetAutoDismissTimer()}handleKeyboard(t){if(this.visible){if(this.isManual){switch(t.key){case"Tab":t.preventDefault();this.findNextInteractiveElement(t.shiftKey).setFocus();break;case"Escape":!t.repeat&&this.dismissAction();t.stopImmediatePropagation();break}}else{if(t.key==="Tab"){this.shiftKeyPressed=t.shiftKey;this.focusInteractiveElement=true}}}}handleTimer(t){switch(t.type){case"mouseenter":if(!this.isManual){this.resetAutoDismissTimer()}this.isManual=true;break;case"mouseleave":if(this.dismissMode==="automatic"){this.isManual=false;this.interactiveElements=[];if(this.visible){this.dismissTimeout=window.setTimeout(this.dismissAction,this.autoDismissTimeout);this.timerRefreshInterval=window.setInterval(this.handleProgressChange,b)}}break}}async setVisible(){if(!this.visible)this.visible=true;if(!this.isManual){this.dismissTimeout=window.setTimeout(this.dismissAction,this.autoDismissTimeout);this.timerRefreshInterval=window.setInterval(this.handleProgressChange,b);return null}else{window.setTimeout((()=>this.interactiveElements[0].setFocus()),200);return document.activeElement}}handleLongText(t,i){if(i||t){console.error(`Too many characters in toast ${t?"heading":""}${t&&i?" and ":""}${i?"message":""}. Refer to character limits specified in the prop description`)}}findNextInteractiveElement(t){const i=this.interactiveElements[0];const e=this.interactiveElements[this.interactiveElements.length-1];if(this.isActive(t?i:e))return t?e:i;let s=0;return this.interactiveElements.some(((t,i)=>{if(!this.isActive(t))return false;s=i;return true}))?this.interactiveElements[s+(t?-1:1)]:i}resetAutoDismissTimer(){window.clearTimeout(this.dismissTimeout);window.clearInterval(this.timerRefreshInterval);this.timerProgress=100}isActive(t){return t===this.el?!!this.el.shadowRoot.activeElement:document.activeElement===t}render(){const{variant:t,heading:i,message:a,visible:c,isManual:d,dismissButtonAriaLabel:l}=this;return e(s,{key:"4e5a088492c0c9fb37f0ca2211d6f458be9e1318",class:{["ic-toast-hidden"]:!c},tabindex:"0",onFocus:this.onFocus,onBlur:this.onBlur,role:d?"dialog":"alert","aria-live":d?null:"polite"},e("div",{key:"5692e63d07ebc6ca0beaf89952f6dea339f46b28",class:"container"},t&&c&&e("div",{key:"a1a33233e9436d44ed398a72519d25d37256d355",class:"toast-icon-container"},e("div",{key:"eea9ec3d6b4d330d07f0d9aff54b040b14406d41",class:{["divider"]:true,[`divider-${t}`]:true}}),t==="neutral"?e("slot",{name:"neutral-icon"}):e("span",{class:"toast-icon",innerHTML:n[t].icon})),e("div",{key:"92552b4b1b4d5de15284d8f5382a56ed81a99d89",class:{["toast-content"]:true,["no-icon"]:t==="neutral"&&!r(this.el,"neutral-icon")}},e("div",{key:"96b38beec1024b8c1eff1b86e823f1f95c1e574d",class:"toast-text"},e("ic-typography",{key:"aacffb589fd0e8180b0b72ad7d1315f4720e67ed",variant:"subtitle-large",class:"toast-heading"},c&&(d?e("h5",null,i):e("p",null,i))),a&&e("ic-typography",{key:"6cbbb428be1211f1d730838a45cb17757d8af28a",variant:"body",class:"toast-message"},c&&e("p",{key:"45191e3180d2b133071d727f515c3b16391ca681"},a))),r(this.el,"action")&&e("div",{key:"4d3555d3dc5bb374ac8aa3c112e91da2da37c66d",class:"toast-action-container"},e("slot",{key:"0fcefdc03a5ff6f20e589f74433e51ea25b2e929",name:"action"}))),!d?e("ic-loading-indicator",{class:"toast-dismiss-timer",theme:"dark",monochrome:true,size:"icon",progress:this.timerProgress,description:"Dismiss timer"}):e("ic-button",{id:"dismiss-button",innerHTML:o,onClick:this.dismissAction,variant:"icon-tertiary","aria-label":l})))}get el(){return a(this)}static get watchers(){return{dismissMode:["dismissModeChangeHandler"],visible:["watchVisibleHandler"]}}};f.style=m;export{f as ic_toast};
|
2
|
+
//# sourceMappingURL=p-b9018261.entry.js.map
|