@ukic/web-components 3.0.0-alpha.12 → 3.0.0-alpha.13
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/app-globals-3a1e7e63.js +7 -0
- package/dist/cjs/app-globals-3a1e7e63.js.map +1 -0
- package/dist/cjs/core.cjs.js +13 -11
- package/dist/cjs/core.cjs.js.map +1 -1
- package/dist/cjs/{helpers-eca4c27e.js → helpers-08a9ec1c.js} +31 -26
- package/dist/cjs/helpers-08a9ec1c.js.map +1 -0
- package/dist/cjs/ic-accordion-group.cjs.entry.js +31 -14
- package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-accordion.cjs.entry.js +65 -42
- package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-alert.cjs.entry.js +37 -16
- package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-back-to-top.cjs.entry.js +27 -15
- package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-badge.cjs.entry.js +41 -22
- package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +31 -16
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-breadcrumb.cjs.entry.js +35 -21
- package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js +246 -144
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-card-vertical.cjs.entry.js +53 -32
- package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox-group.cjs.entry.js +32 -9
- package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox.cjs.entry.js +48 -29
- package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-chip.cjs.entry.js +44 -23
- package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-classification-banner.cjs.entry.js +20 -4
- package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-list.cjs.entry.js +11 -5
- package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-row.cjs.entry.js +28 -18
- package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-dialog.cjs.entry.js +141 -98
- package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-divider.cjs.entry.js +35 -15
- package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-empty-state.cjs.entry.js +15 -9
- package/dist/cjs/ic-empty-state.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer-link-group.cjs.entry.js +8 -8
- package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer-link.cjs.entry.js +9 -10
- package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-footer.cjs.entry.js +32 -19
- package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-hero.cjs.entry.js +29 -17
- package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +32 -20
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +126 -68
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-label_2.cjs.entry.js +45 -17
- package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-link.cjs.entry.js +28 -21
- package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu-group.cjs.entry.js +5 -5
- package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu-item.cjs.entry.js +20 -18
- package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-button.cjs.entry.js +25 -19
- package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js +45 -27
- package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +69 -48
- package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-menu.cjs.entry.js +23 -15
- package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-page-header.cjs.entry.js +45 -25
- package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination-item.cjs.entry.js +27 -14
- package/dist/cjs/ic-pagination-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination.cjs.entry.js +60 -27
- package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-popover-menu.cjs.entry.js +57 -42
- package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js +53 -28
- package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js +35 -23
- package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +153 -63
- package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-section-container.cjs.entry.js +12 -5
- package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-select.cjs.entry.js +229 -135
- package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-side-navigation.cjs.entry.js +104 -71
- package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-skeleton.cjs.entry.js +11 -4
- package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-skip-link.cjs.entry.js +54 -0
- package/dist/cjs/ic-skip-link.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-status-tag.cjs.entry.js +25 -6
- package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-step.cjs.entry.js +33 -32
- package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-stepper.cjs.entry.js +50 -35
- package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-switch.cjs.entry.js +50 -22
- package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-context.cjs.entry.js +44 -24
- package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-group.cjs.entry.js +14 -9
- package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-panel.cjs.entry.js +12 -7
- package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab.cjs.entry.js +21 -15
- package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-text-field.cjs.entry.js +175 -69
- package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-theme.cjs.entry.js +13 -7
- package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toast-region.cjs.entry.js +2 -3
- package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toast.cjs.entry.js +29 -21
- package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js +61 -29
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toggle-button.cjs.entry.js +81 -48
- package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-top-navigation.cjs.entry.js +60 -31
- package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-typography.cjs.entry.js +53 -27
- package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
- package/dist/cjs/index-d337cd8a.js +2611 -0
- package/dist/cjs/index-d337cd8a.js.map +1 -0
- package/dist/cjs/loader.cjs.js +5 -3
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/collection/collection-manifest.json +5 -4
- package/dist/collection/components/ic-accordion/ic-accordion.js +80 -46
- package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -1
- package/dist/collection/components/ic-accordion-group/ic-accordion-group.js +49 -21
- package/dist/collection/components/ic-accordion-group/ic-accordion-group.js.map +1 -1
- package/dist/collection/components/ic-alert/ic-alert.js +58 -22
- package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
- package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +35 -16
- package/dist/collection/components/ic-back-to-top/ic-back-to-top.js.map +1 -1
- package/dist/collection/components/ic-badge/ic-badge.js +69 -32
- package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
- package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +49 -24
- package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
- package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +41 -19
- package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map +1 -1
- package/dist/collection/components/ic-button/ic-button.css +0 -8
- package/dist/collection/components/ic-button/ic-button.js +211 -98
- package/dist/collection/components/ic-button/ic-button.js.map +1 -1
- package/dist/collection/components/ic-card-vertical/ic-card-vertical.js +88 -42
- package/dist/collection/components/ic-card-vertical/ic-card-vertical.js.map +1 -1
- package/dist/collection/components/ic-checkbox/ic-checkbox.js +91 -45
- package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +62 -20
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
- package/dist/collection/components/ic-chip/ic-chip.js +67 -30
- package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
- package/dist/collection/components/ic-classification-banner/ic-classification-banner.js +32 -7
- package/dist/collection/components/ic-classification-banner/ic-classification-banner.js.map +1 -1
- package/dist/collection/components/ic-data-list/ic-data-list.js +18 -7
- package/dist/collection/components/ic-data-list/ic-data-list.js.map +1 -1
- package/dist/collection/components/ic-data-row/ic-data-row.js +38 -21
- package/dist/collection/components/ic-data-row/ic-data-row.js.map +1 -1
- package/dist/collection/components/ic-dialog/ic-dialog.js +176 -110
- package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
- package/dist/collection/components/ic-dialog/ic-dialog.stories.js +100 -49
- package/dist/collection/components/ic-divider/ic-divider.js +55 -22
- package/dist/collection/components/ic-divider/ic-divider.js.map +1 -1
- package/dist/collection/components/ic-divider/ic-divider.stories.js +2 -2
- package/dist/collection/components/ic-empty-state/ic-empty-state.js +32 -13
- package/dist/collection/components/ic-empty-state/ic-empty-state.js.map +1 -1
- package/dist/collection/components/ic-footer/ic-footer.js +49 -25
- package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
- package/dist/collection/components/ic-footer-link/ic-footer-link.js +24 -15
- package/dist/collection/components/ic-footer-link/ic-footer-link.js.map +1 -1
- package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js +6 -5
- package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js.map +1 -1
- package/dist/collection/components/ic-hero/ic-hero.css +1 -1
- package/dist/collection/components/ic-hero/ic-hero.js +54 -25
- package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
- package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +40 -21
- package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js.map +1 -1
- package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +9 -0
- package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +55 -20
- package/dist/collection/components/ic-input-component-container/ic-input-component-container.js.map +1 -1
- package/dist/collection/components/ic-input-container/ic-input-container.js +16 -6
- package/dist/collection/components/ic-input-container/ic-input-container.js.map +1 -1
- package/dist/collection/components/ic-input-label/ic-input-label.js +48 -11
- package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
- package/dist/collection/components/ic-input-validation/ic-input-validation.js +31 -14
- package/dist/collection/components/ic-input-validation/ic-input-validation.js.map +1 -1
- package/dist/collection/components/ic-link/ic-link.js +49 -28
- package/dist/collection/components/ic-link/ic-link.js.map +1 -1
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +124 -66
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
- package/dist/collection/components/ic-menu/ic-menu.js +136 -74
- package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
- package/dist/collection/components/ic-menu/ic-menu.types.js.map +1 -1
- package/dist/collection/components/ic-menu-group/ic-menu-group.js +4 -5
- package/dist/collection/components/ic-menu-group/ic-menu-group.js.map +1 -1
- package/dist/collection/components/ic-menu-item/ic-menu-item.js +53 -28
- package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
- package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +44 -23
- package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +83 -28
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.types.js +2 -0
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.types.js.map +1 -0
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +107 -63
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +30 -17
- 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 +68 -31
- package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
- package/dist/collection/components/ic-pagination/ic-pagination.js +100 -44
- package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
- package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +48 -22
- package/dist/collection/components/ic-pagination-item/ic-pagination-item.js.map +1 -1
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +80 -52
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
- package/dist/collection/components/ic-radio-group/ic-radio-group.js +87 -41
- package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
- package/dist/collection/components/ic-radio-option/ic-radio-option.js +64 -33
- 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 +252 -101
- package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
- package/dist/collection/components/ic-search-bar/ic-search-bar.types.js.map +1 -1
- package/dist/collection/components/ic-section-container/ic-section-container.js +15 -5
- package/dist/collection/components/ic-section-container/ic-section-container.js.map +1 -1
- package/dist/collection/components/ic-select/ic-select.js +329 -176
- package/dist/collection/components/ic-select/ic-select.js.map +1 -1
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +1 -2
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +143 -89
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
- package/dist/collection/components/ic-skeleton/ic-skeleton.js +14 -4
- package/dist/collection/components/ic-skeleton/ic-skeleton.js.map +1 -1
- package/dist/collection/components/ic-skip-link/ic-skip-link.css +26 -0
- package/dist/collection/components/ic-skip-link/ic-skip-link.js +202 -0
- package/dist/collection/components/ic-skip-link/ic-skip-link.js.map +1 -0
- package/dist/collection/components/ic-skip-link/ic-skip-link.stories.js +160 -0
- package/dist/collection/components/ic-status-tag/ic-status-tag.js +41 -9
- package/dist/collection/components/ic-status-tag/ic-status-tag.js.map +1 -1
- package/dist/collection/components/ic-step/ic-step.js +66 -40
- package/dist/collection/components/ic-step/ic-step.js.map +1 -1
- package/dist/collection/components/ic-stepper/ic-stepper.js +61 -37
- package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
- package/dist/collection/components/ic-switch/ic-switch.js +72 -27
- package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
- package/dist/collection/components/ic-tab/ic-tab.js +40 -21
- package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
- package/dist/collection/components/ic-tab-context/ic-tab-context.js +59 -29
- 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 +21 -9
- package/dist/collection/components/ic-tab-group/ic-tab-group.js.map +1 -1
- package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +26 -10
- package/dist/collection/components/ic-tab-panel/ic-tab-panel.js.map +1 -1
- package/dist/collection/components/ic-text-field/ic-text-field.js +321 -140
- package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
- package/dist/collection/components/ic-theme/ic-theme.js +19 -9
- package/dist/collection/components/ic-theme/ic-theme.js.map +1 -1
- package/dist/collection/components/ic-toast/ic-toast.js +49 -28
- package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
- package/dist/collection/components/ic-toast-region/ic-toast-region.js +6 -5
- package/dist/collection/components/ic-toast-region/ic-toast-region.js.map +1 -1
- package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +116 -60
- package/dist/collection/components/ic-toggle-button/ic-toggle-button.js.map +1 -1
- package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +90 -35
- package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js.map +1 -1
- package/dist/collection/components/ic-tooltip/ic-tooltip.js +65 -33
- package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +91 -45
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
- package/dist/collection/components/ic-typography/ic-typography.js +73 -32
- package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
- package/dist/collection/utils/helpers.js +29 -24
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/collection/utils/testa11y.helpers.js +2 -1
- package/dist/collection/utils/testa11y.helpers.js.map +1 -1
- package/dist/collection/utils/types.js.map +1 -1
- package/dist/components/helpers.js +29 -24
- package/dist/components/helpers.js.map +1 -1
- package/dist/components/ic-accordion-group.js +29 -12
- package/dist/components/ic-accordion-group.js.map +1 -1
- package/dist/components/ic-accordion.js +63 -40
- package/dist/components/ic-accordion.js.map +1 -1
- package/dist/components/ic-alert.js +35 -14
- package/dist/components/ic-alert.js.map +1 -1
- package/dist/components/ic-back-to-top.js +25 -13
- package/dist/components/ic-back-to-top.js.map +1 -1
- package/dist/components/ic-badge.js +39 -20
- package/dist/components/ic-badge.js.map +1 -1
- package/dist/components/ic-breadcrumb-group.js +29 -14
- package/dist/components/ic-breadcrumb-group.js.map +1 -1
- package/dist/components/ic-breadcrumb2.js +33 -19
- package/dist/components/ic-breadcrumb2.js.map +1 -1
- package/dist/components/ic-button2.js +113 -63
- package/dist/components/ic-button2.js.map +1 -1
- package/dist/components/ic-card-vertical.js +51 -30
- package/dist/components/ic-card-vertical.js.map +1 -1
- package/dist/components/ic-checkbox-group.js +30 -7
- package/dist/components/ic-checkbox-group.js.map +1 -1
- package/dist/components/ic-checkbox.js +46 -27
- package/dist/components/ic-checkbox.js.map +1 -1
- package/dist/components/ic-chip.js +42 -21
- package/dist/components/ic-chip.js.map +1 -1
- package/dist/components/ic-classification-banner.js +19 -3
- package/dist/components/ic-classification-banner.js.map +1 -1
- package/dist/components/ic-data-list.js +10 -4
- package/dist/components/ic-data-list.js.map +1 -1
- package/dist/components/ic-data-row.js +27 -17
- package/dist/components/ic-data-row.js.map +1 -1
- package/dist/components/ic-dialog.js +139 -96
- package/dist/components/ic-dialog.js.map +1 -1
- package/dist/components/ic-divider2.js +33 -13
- package/dist/components/ic-divider2.js.map +1 -1
- package/dist/components/ic-empty-state.js +13 -7
- package/dist/components/ic-empty-state.js.map +1 -1
- package/dist/components/ic-footer-link-group.js +6 -6
- package/dist/components/ic-footer-link-group.js.map +1 -1
- package/dist/components/ic-footer-link.js +7 -8
- package/dist/components/ic-footer-link.js.map +1 -1
- package/dist/components/ic-footer.js +31 -18
- package/dist/components/ic-footer.js.map +1 -1
- package/dist/components/ic-hero.js +27 -15
- package/dist/components/ic-hero.js.map +1 -1
- package/dist/components/ic-horizontal-scroll2.js +30 -18
- package/dist/components/ic-horizontal-scroll2.js.map +1 -1
- package/dist/components/ic-input-component-container2.js +31 -9
- package/dist/components/ic-input-component-container2.js.map +1 -1
- package/dist/components/ic-input-container2.js +12 -5
- package/dist/components/ic-input-container2.js.map +1 -1
- package/dist/components/ic-input-label2.js +28 -8
- package/dist/components/ic-input-label2.js.map +1 -1
- package/dist/components/ic-input-validation2.js +15 -7
- package/dist/components/ic-input-validation2.js.map +1 -1
- package/dist/components/ic-link2.js +26 -19
- package/dist/components/ic-link2.js.map +1 -1
- package/dist/components/ic-loading-indicator2.js +89 -54
- package/dist/components/ic-loading-indicator2.js.map +1 -1
- package/dist/components/ic-menu-group.js +3 -3
- package/dist/components/ic-menu-group.js.map +1 -1
- package/dist/components/ic-menu-item2.js +18 -16
- package/dist/components/ic-menu-item2.js.map +1 -1
- package/dist/components/ic-menu2.js +81 -52
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-navigation-button.js +23 -17
- package/dist/components/ic-navigation-button.js.map +1 -1
- package/dist/components/ic-navigation-group.js +45 -27
- package/dist/components/ic-navigation-group.js.map +1 -1
- package/dist/components/ic-navigation-item.js +68 -47
- package/dist/components/ic-navigation-item.js.map +1 -1
- package/dist/components/ic-navigation-menu2.js +21 -13
- package/dist/components/ic-navigation-menu2.js.map +1 -1
- package/dist/components/ic-page-header.js +44 -24
- package/dist/components/ic-page-header.js.map +1 -1
- package/dist/components/ic-pagination-item2.js +25 -12
- package/dist/components/ic-pagination-item2.js.map +1 -1
- package/dist/components/ic-pagination.js +58 -25
- package/dist/components/ic-pagination.js.map +1 -1
- package/dist/components/ic-popover-menu.js +55 -40
- package/dist/components/ic-popover-menu.js.map +1 -1
- package/dist/components/ic-radio-group.js +51 -26
- package/dist/components/ic-radio-group.js.map +1 -1
- package/dist/components/ic-radio-option.js +33 -21
- package/dist/components/ic-radio-option.js.map +1 -1
- package/dist/components/ic-search-bar.js +151 -61
- package/dist/components/ic-search-bar.js.map +1 -1
- package/dist/components/ic-section-container2.js +11 -4
- package/dist/components/ic-section-container2.js.map +1 -1
- package/dist/components/ic-select.js +227 -133
- package/dist/components/ic-select.js.map +1 -1
- package/dist/components/ic-side-navigation.js +103 -70
- package/dist/components/ic-side-navigation.js.map +1 -1
- package/dist/components/ic-skeleton.js +10 -3
- package/dist/components/ic-skeleton.js.map +1 -1
- package/dist/components/ic-skip-link.d.ts +11 -0
- package/dist/components/ic-skip-link.js +82 -0
- package/dist/components/ic-skip-link.js.map +1 -0
- package/dist/components/ic-status-tag.js +23 -4
- package/dist/components/ic-status-tag.js.map +1 -1
- package/dist/components/ic-step.js +31 -30
- package/dist/components/ic-step.js.map +1 -1
- package/dist/components/ic-stepper.js +48 -33
- package/dist/components/ic-stepper.js.map +1 -1
- package/dist/components/ic-switch.js +48 -20
- package/dist/components/ic-switch.js.map +1 -1
- package/dist/components/ic-tab-context.js +43 -23
- package/dist/components/ic-tab-context.js.map +1 -1
- package/dist/components/ic-tab-group.js +12 -7
- package/dist/components/ic-tab-group.js.map +1 -1
- package/dist/components/ic-tab-panel.js +11 -6
- package/dist/components/ic-tab-panel.js.map +1 -1
- package/dist/components/ic-tab.js +19 -13
- package/dist/components/ic-tab.js.map +1 -1
- package/dist/components/ic-text-field.js +173 -67
- package/dist/components/ic-text-field.js.map +1 -1
- package/dist/components/ic-theme.js +11 -5
- package/dist/components/ic-theme.js.map +1 -1
- package/dist/components/ic-toast-region.js +1 -2
- package/dist/components/ic-toast-region.js.map +1 -1
- package/dist/components/ic-toast.js +27 -19
- package/dist/components/ic-toast.js.map +1 -1
- package/dist/components/ic-toggle-button-group.js +59 -27
- package/dist/components/ic-toggle-button-group.js.map +1 -1
- package/dist/components/ic-toggle-button.js +79 -46
- package/dist/components/ic-toggle-button.js.map +1 -1
- package/dist/components/ic-tooltip2.js +42 -25
- package/dist/components/ic-tooltip2.js.map +1 -1
- package/dist/components/ic-top-navigation.js +59 -30
- package/dist/components/ic-top-navigation.js.map +1 -1
- package/dist/components/ic-typography2.js +51 -25
- package/dist/components/ic-typography2.js.map +1 -1
- package/dist/core/core.css +38 -27
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/index.esm.js.map +1 -1
- package/dist/core/p-052d1ff0.entry.js +2 -0
- package/dist/core/p-052d1ff0.entry.js.map +1 -0
- package/dist/core/p-08fbea60.entry.js +2 -0
- package/dist/core/p-08fbea60.entry.js.map +1 -0
- package/dist/core/p-0b757d78.entry.js +2 -0
- package/dist/core/p-0b757d78.entry.js.map +1 -0
- package/dist/core/{p-73a208c7.entry.js → p-0f34465d.entry.js} +2 -2
- package/dist/core/p-0f34465d.entry.js.map +1 -0
- package/dist/core/p-111b3186.entry.js +2 -0
- package/dist/core/p-111b3186.entry.js.map +1 -0
- package/dist/core/p-144a31ec.entry.js +2 -0
- package/dist/core/p-144a31ec.entry.js.map +1 -0
- package/dist/core/{p-ca11666f.entry.js → p-180ea8ac.entry.js} +2 -2
- package/dist/core/p-180ea8ac.entry.js.map +1 -0
- package/dist/core/{p-39ab6387.entry.js → p-196e3d33.entry.js} +2 -2
- package/dist/core/p-196e3d33.entry.js.map +1 -0
- package/dist/core/{p-96b4ca6e.entry.js → p-1d6638c8.entry.js} +2 -2
- package/dist/core/p-1d6638c8.entry.js.map +1 -0
- package/dist/core/p-1d9a929b.entry.js +2 -0
- package/dist/core/p-1d9a929b.entry.js.map +1 -0
- package/dist/core/{p-27274ca8.entry.js → p-1fccec19.entry.js} +2 -2
- package/dist/core/p-1fccec19.entry.js.map +1 -0
- package/dist/core/p-269f841d.js +2 -0
- package/dist/core/p-269f841d.js.map +1 -0
- package/dist/core/{p-094f51b6.entry.js → p-27de359f.entry.js} +2 -2
- package/dist/core/p-27de359f.entry.js.map +1 -0
- package/dist/core/p-2cb55e86.entry.js +2 -0
- package/dist/core/p-2cb55e86.entry.js.map +1 -0
- package/dist/core/p-30a262d2.entry.js +2 -0
- package/dist/core/p-30a262d2.entry.js.map +1 -0
- package/dist/core/p-3b185c32.js.map +1 -1
- package/dist/core/{p-a178d53c.entry.js → p-40bc1f3e.entry.js} +2 -2
- package/dist/core/p-40bc1f3e.entry.js.map +1 -0
- package/dist/core/p-426ec638.js.map +1 -1
- package/dist/core/p-47b46637.entry.js +2 -0
- package/dist/core/p-47b46637.entry.js.map +1 -0
- package/dist/core/p-4a5ab31e.entry.js +2 -0
- package/dist/core/p-4a5ab31e.entry.js.map +1 -0
- package/dist/core/p-4e4014cd.entry.js +2 -0
- package/dist/core/p-4e4014cd.entry.js.map +1 -0
- package/dist/core/{p-25d3c3a6.entry.js → p-55eb89cc.entry.js} +2 -2
- package/dist/core/p-55eb89cc.entry.js.map +1 -0
- package/dist/core/p-59287779.entry.js +2 -0
- package/dist/core/p-59287779.entry.js.map +1 -0
- package/dist/core/p-59fc58e1.entry.js +2 -0
- package/dist/core/p-59fc58e1.entry.js.map +1 -0
- package/dist/core/p-5b7d8ee9.entry.js +2 -0
- package/dist/core/p-5b7d8ee9.entry.js.map +1 -0
- package/dist/core/{p-b404b307.entry.js → p-5fa5ba50.entry.js} +2 -2
- package/dist/core/p-5fa5ba50.entry.js.map +1 -0
- package/dist/core/p-68a5aaff.js.map +1 -1
- package/dist/core/{p-bbd4f487.entry.js → p-6c8e72b4.entry.js} +2 -2
- package/dist/core/p-6c8e72b4.entry.js.map +1 -0
- package/dist/core/p-6fdb8a79.entry.js +2 -0
- package/dist/core/p-6fdb8a79.entry.js.map +1 -0
- package/dist/core/{p-146b2788.entry.js → p-72140621.entry.js} +2 -2
- package/dist/core/p-72140621.entry.js.map +1 -0
- package/dist/core/p-76bdbc98.entry.js +2 -0
- package/dist/core/p-76bdbc98.entry.js.map +1 -0
- package/dist/core/{p-4cfe1dd8.entry.js → p-78c3ca49.entry.js} +2 -2
- package/dist/core/p-78c3ca49.entry.js.map +1 -0
- package/dist/core/p-78c51cba.entry.js +2 -0
- package/dist/core/p-78c51cba.entry.js.map +1 -0
- package/dist/core/{p-3d565739.entry.js → p-7ea79205.entry.js} +2 -2
- package/dist/core/p-7ea79205.entry.js.map +1 -0
- package/dist/core/p-8577de91.entry.js +2 -0
- package/dist/core/p-8577de91.entry.js.map +1 -0
- package/dist/core/{p-26bc7c62.entry.js → p-8856dff4.entry.js} +2 -2
- package/dist/core/p-8856dff4.entry.js.map +1 -0
- package/dist/core/p-8870d5d8.entry.js +2 -0
- package/dist/core/p-8870d5d8.entry.js.map +1 -0
- package/dist/core/{p-00587c99.entry.js → p-8b928cc9.entry.js} +2 -2
- package/dist/core/p-8b928cc9.entry.js.map +1 -0
- package/dist/core/p-8d1bee7a.entry.js +2 -0
- package/dist/core/p-8d1bee7a.entry.js.map +1 -0
- package/dist/core/p-8e4e97b4.js +3 -0
- package/dist/core/p-8e4e97b4.js.map +1 -0
- package/dist/core/p-8f319e1e.entry.js +2 -0
- package/dist/core/p-8f319e1e.entry.js.map +1 -0
- package/dist/core/p-90de3f5d.entry.js +2 -0
- package/dist/core/p-90de3f5d.entry.js.map +1 -0
- package/dist/core/p-912c8594.entry.js +2 -0
- package/dist/core/p-912c8594.entry.js.map +1 -0
- package/dist/core/{p-67b3cd55.entry.js → p-9206379d.entry.js} +2 -2
- package/dist/core/p-9206379d.entry.js.map +1 -0
- package/dist/core/p-94748b96.entry.js +2 -0
- package/dist/core/p-94748b96.entry.js.map +1 -0
- package/dist/core/{p-d7ccd00f.entry.js → p-98f906ba.entry.js} +2 -2
- package/dist/core/p-98f906ba.entry.js.map +1 -0
- package/dist/core/{p-5b836707.entry.js → p-999102ee.entry.js} +2 -2
- package/dist/core/p-999102ee.entry.js.map +1 -0
- package/dist/core/p-9b741f96.entry.js +2 -0
- package/dist/core/p-9b741f96.entry.js.map +1 -0
- package/dist/core/p-9bcd2c77.entry.js +2 -0
- package/dist/core/p-9bcd2c77.entry.js.map +1 -0
- package/dist/core/p-9ee2fe04.entry.js +2 -0
- package/dist/core/p-9ee2fe04.entry.js.map +1 -0
- package/dist/core/{p-e2cf6e7e.entry.js → p-a56ec6d8.entry.js} +2 -2
- package/dist/core/p-a56ec6d8.entry.js.map +1 -0
- package/dist/core/p-abf767e3.entry.js +2 -0
- package/dist/core/p-abf767e3.entry.js.map +1 -0
- package/dist/core/p-b594bf26.entry.js +2 -0
- package/dist/core/p-b594bf26.entry.js.map +1 -0
- package/dist/core/{p-6e94c79c.entry.js → p-bd802c2f.entry.js} +2 -2
- package/dist/core/p-bd802c2f.entry.js.map +1 -0
- package/dist/core/p-bfee1e84.entry.js +2 -0
- package/dist/core/p-bfee1e84.entry.js.map +1 -0
- package/dist/core/{p-7f984e25.entry.js → p-c19cdc86.entry.js} +2 -2
- package/dist/core/p-c19cdc86.entry.js.map +1 -0
- package/dist/core/p-c2e091d7.js.map +1 -1
- package/dist/core/{p-73d6092d.entry.js → p-c3785d57.entry.js} +2 -2
- package/dist/core/p-c3785d57.entry.js.map +1 -0
- package/dist/core/{p-7b26ef60.entry.js → p-caa46d81.entry.js} +2 -2
- package/dist/core/p-caa46d81.entry.js.map +1 -0
- package/dist/core/{p-720428a3.entry.js → p-ce0fb53a.entry.js} +2 -2
- package/dist/core/p-ce0fb53a.entry.js.map +1 -0
- package/dist/core/p-de7542fa.entry.js +2 -0
- package/dist/core/p-de7542fa.entry.js.map +1 -0
- package/dist/core/{p-07aaf9c4.entry.js → p-df56bc50.entry.js} +2 -2
- package/dist/core/p-df56bc50.entry.js.map +1 -0
- package/dist/core/p-e1255160.js +2 -0
- package/dist/core/p-e1255160.js.map +1 -0
- package/dist/core/p-e25feba1.entry.js +2 -0
- package/dist/core/p-e25feba1.entry.js.map +1 -0
- package/dist/core/{p-c1db155d.entry.js → p-e30c6d79.entry.js} +2 -2
- package/dist/core/p-e30c6d79.entry.js.map +1 -0
- package/dist/core/p-f074ef5b.js.map +1 -1
- package/dist/core/{p-abdc2912.entry.js → p-f486d4f4.entry.js} +2 -2
- package/dist/core/p-f486d4f4.entry.js.map +1 -0
- package/dist/core/{p-a87d13b3.entry.js → p-fbce5f9a.entry.js} +2 -2
- package/dist/core/p-fbce5f9a.entry.js.map +1 -0
- package/dist/esm/app-globals-0f993ce5.js +5 -0
- package/dist/esm/app-globals-0f993ce5.js.map +1 -0
- package/dist/esm/core.js +14 -12
- package/dist/esm/core.js.map +1 -1
- package/dist/esm/{helpers-a72a277b.js → helpers-de6293bf.js} +31 -26
- package/dist/esm/helpers-de6293bf.js.map +1 -0
- package/dist/esm/ic-accordion-group.entry.js +31 -14
- package/dist/esm/ic-accordion-group.entry.js.map +1 -1
- package/dist/esm/ic-accordion.entry.js +65 -42
- package/dist/esm/ic-accordion.entry.js.map +1 -1
- package/dist/esm/ic-alert.entry.js +37 -16
- package/dist/esm/ic-alert.entry.js.map +1 -1
- package/dist/esm/ic-back-to-top.entry.js +27 -15
- package/dist/esm/ic-back-to-top.entry.js.map +1 -1
- package/dist/esm/ic-badge.entry.js +41 -22
- package/dist/esm/ic-badge.entry.js.map +1 -1
- package/dist/esm/ic-breadcrumb-group.entry.js +31 -16
- package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
- package/dist/esm/ic-breadcrumb.entry.js +35 -21
- package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
- package/dist/esm/ic-button_3.entry.js +246 -144
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-card-vertical.entry.js +53 -32
- package/dist/esm/ic-card-vertical.entry.js.map +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +32 -9
- package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
- package/dist/esm/ic-checkbox.entry.js +48 -29
- package/dist/esm/ic-checkbox.entry.js.map +1 -1
- package/dist/esm/ic-chip.entry.js +44 -23
- package/dist/esm/ic-chip.entry.js.map +1 -1
- package/dist/esm/ic-classification-banner.entry.js +20 -4
- package/dist/esm/ic-classification-banner.entry.js.map +1 -1
- package/dist/esm/ic-data-list.entry.js +11 -5
- package/dist/esm/ic-data-list.entry.js.map +1 -1
- package/dist/esm/ic-data-row.entry.js +28 -18
- package/dist/esm/ic-data-row.entry.js.map +1 -1
- package/dist/esm/ic-dialog.entry.js +141 -98
- package/dist/esm/ic-dialog.entry.js.map +1 -1
- package/dist/esm/ic-divider.entry.js +35 -15
- package/dist/esm/ic-divider.entry.js.map +1 -1
- package/dist/esm/ic-empty-state.entry.js +15 -9
- package/dist/esm/ic-empty-state.entry.js.map +1 -1
- package/dist/esm/ic-footer-link-group.entry.js +8 -8
- package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
- package/dist/esm/ic-footer-link.entry.js +9 -10
- package/dist/esm/ic-footer-link.entry.js.map +1 -1
- package/dist/esm/ic-footer.entry.js +32 -19
- package/dist/esm/ic-footer.entry.js.map +1 -1
- package/dist/esm/ic-hero.entry.js +29 -17
- package/dist/esm/ic-hero.entry.js.map +1 -1
- package/dist/esm/ic-horizontal-scroll.entry.js +32 -20
- package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
- package/dist/esm/ic-input-component-container_3.entry.js +126 -68
- package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
- package/dist/esm/ic-input-label_2.entry.js +45 -17
- package/dist/esm/ic-input-label_2.entry.js.map +1 -1
- package/dist/esm/ic-link.entry.js +28 -21
- package/dist/esm/ic-link.entry.js.map +1 -1
- package/dist/esm/ic-menu-group.entry.js +5 -5
- package/dist/esm/ic-menu-group.entry.js.map +1 -1
- package/dist/esm/ic-menu-item.entry.js +20 -18
- package/dist/esm/ic-menu-item.entry.js.map +1 -1
- package/dist/esm/ic-navigation-button.entry.js +25 -19
- package/dist/esm/ic-navigation-button.entry.js.map +1 -1
- package/dist/esm/ic-navigation-group.entry.js +45 -27
- package/dist/esm/ic-navigation-group.entry.js.map +1 -1
- package/dist/esm/ic-navigation-item.entry.js +69 -48
- package/dist/esm/ic-navigation-item.entry.js.map +1 -1
- package/dist/esm/ic-navigation-menu.entry.js +23 -15
- package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
- package/dist/esm/ic-page-header.entry.js +45 -25
- package/dist/esm/ic-page-header.entry.js.map +1 -1
- package/dist/esm/ic-pagination-item.entry.js +27 -14
- package/dist/esm/ic-pagination-item.entry.js.map +1 -1
- package/dist/esm/ic-pagination.entry.js +60 -27
- package/dist/esm/ic-pagination.entry.js.map +1 -1
- package/dist/esm/ic-popover-menu.entry.js +57 -42
- package/dist/esm/ic-popover-menu.entry.js.map +1 -1
- package/dist/esm/ic-radio-group.entry.js +53 -28
- package/dist/esm/ic-radio-group.entry.js.map +1 -1
- package/dist/esm/ic-radio-option.entry.js +35 -23
- package/dist/esm/ic-radio-option.entry.js.map +1 -1
- package/dist/esm/ic-search-bar.entry.js +153 -63
- package/dist/esm/ic-search-bar.entry.js.map +1 -1
- package/dist/esm/ic-section-container.entry.js +12 -5
- package/dist/esm/ic-section-container.entry.js.map +1 -1
- package/dist/esm/ic-select.entry.js +229 -135
- package/dist/esm/ic-select.entry.js.map +1 -1
- package/dist/esm/ic-side-navigation.entry.js +104 -71
- package/dist/esm/ic-side-navigation.entry.js.map +1 -1
- package/dist/esm/ic-skeleton.entry.js +11 -4
- package/dist/esm/ic-skeleton.entry.js.map +1 -1
- package/dist/esm/ic-skip-link.entry.js +50 -0
- package/dist/esm/ic-skip-link.entry.js.map +1 -0
- package/dist/esm/ic-status-tag.entry.js +25 -6
- package/dist/esm/ic-status-tag.entry.js.map +1 -1
- package/dist/esm/ic-step.entry.js +33 -32
- package/dist/esm/ic-step.entry.js.map +1 -1
- package/dist/esm/ic-stepper.entry.js +50 -35
- package/dist/esm/ic-stepper.entry.js.map +1 -1
- package/dist/esm/ic-switch.entry.js +50 -22
- package/dist/esm/ic-switch.entry.js.map +1 -1
- package/dist/esm/ic-tab-context.entry.js +44 -24
- package/dist/esm/ic-tab-context.entry.js.map +1 -1
- package/dist/esm/ic-tab-group.entry.js +14 -9
- package/dist/esm/ic-tab-group.entry.js.map +1 -1
- package/dist/esm/ic-tab-panel.entry.js +12 -7
- package/dist/esm/ic-tab-panel.entry.js.map +1 -1
- package/dist/esm/ic-tab.entry.js +21 -15
- package/dist/esm/ic-tab.entry.js.map +1 -1
- package/dist/esm/ic-text-field.entry.js +175 -69
- package/dist/esm/ic-text-field.entry.js.map +1 -1
- package/dist/esm/ic-theme.entry.js +13 -7
- package/dist/esm/ic-theme.entry.js.map +1 -1
- package/dist/esm/ic-toast-region.entry.js +2 -3
- package/dist/esm/ic-toast-region.entry.js.map +1 -1
- package/dist/esm/ic-toast.entry.js +29 -21
- package/dist/esm/ic-toast.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button-group.entry.js +61 -29
- package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button.entry.js +81 -48
- package/dist/esm/ic-toggle-button.entry.js.map +1 -1
- package/dist/esm/ic-top-navigation.entry.js +60 -31
- package/dist/esm/ic-top-navigation.entry.js.map +1 -1
- package/dist/esm/ic-typography.entry.js +53 -27
- package/dist/esm/ic-typography.entry.js.map +1 -1
- package/dist/esm/index-a7a720e7.js +2580 -0
- package/dist/esm/index-a7a720e7.js.map +1 -0
- package/dist/esm/loader.js +6 -4
- package/dist/esm/loader.js.map +1 -1
- package/dist/types/components/ic-accordion/ic-accordion.d.ts +3 -3
- package/dist/types/components/ic-accordion-group/ic-accordion-group.d.ts +5 -5
- package/dist/types/components/ic-alert/ic-alert.d.ts +1 -1
- package/dist/types/components/ic-back-to-top/ic-back-to-top.d.ts +1 -1
- package/dist/types/components/ic-badge/ic-badge.d.ts +1 -1
- package/dist/types/components/ic-breadcrumb/ic-breadcrumb.d.ts +1 -1
- package/dist/types/components/ic-breadcrumb-group/ic-breadcrumb-group.d.ts +2 -2
- package/dist/types/components/ic-button/ic-button.d.ts +6 -6
- package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +10 -10
- package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +6 -6
- package/dist/types/components/ic-data-list/ic-data-list.d.ts +1 -1
- package/dist/types/components/ic-data-row/ic-data-row.d.ts +2 -2
- package/dist/types/components/ic-dialog/ic-dialog.d.ts +9 -6
- package/dist/types/components/ic-divider/ic-divider.d.ts +3 -3
- package/dist/types/components/ic-footer/ic-footer.d.ts +4 -4
- package/dist/types/components/ic-hero/ic-hero.d.ts +3 -3
- package/dist/types/components/ic-input-component-container/ic-input-component-container.d.ts +6 -6
- package/dist/types/components/ic-input-label/ic-input-label.d.ts +2 -2
- package/dist/types/components/ic-input-validation/ic-input-validation.d.ts +4 -4
- package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +2 -2
- package/dist/types/components/ic-menu/ic-menu.d.ts +10 -10
- package/dist/types/components/ic-menu/ic-menu.types.d.ts +1 -1
- package/dist/types/components/ic-menu-item/ic-menu-item.d.ts +2 -2
- package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +1 -1
- package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +11 -4
- package/dist/types/components/ic-navigation-group/ic-navigation-group.types.d.ts +3 -0
- package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +8 -8
- package/dist/types/components/ic-navigation-menu/ic-navigation-menu.d.ts +3 -3
- package/dist/types/components/ic-pagination/ic-pagination.d.ts +9 -9
- package/dist/types/components/ic-pagination-item/ic-pagination-item.d.ts +4 -4
- package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +4 -4
- package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +8 -8
- package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +6 -6
- package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +12 -12
- package/dist/types/components/ic-search-bar/ic-search-bar.types.d.ts +1 -1
- package/dist/types/components/ic-select/ic-select.d.ts +20 -20
- package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +12 -12
- package/dist/types/components/ic-skip-link/ic-skip-link.d.ts +33 -0
- package/dist/types/components/ic-stepper/ic-stepper.d.ts +1 -1
- package/dist/types/components/ic-switch/ic-switch.d.ts +1 -1
- package/dist/types/components/ic-tab/ic-tab.d.ts +2 -2
- package/dist/types/components/ic-text-field/ic-text-field.d.ts +34 -33
- package/dist/types/components/ic-theme/ic-theme.d.ts +2 -2
- package/dist/types/components/ic-toast/ic-toast.d.ts +3 -3
- package/dist/types/components/ic-toast-region/ic-toast-region.d.ts +1 -1
- package/dist/types/components/ic-toggle-button/ic-toggle-button.d.ts +3 -3
- package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +9 -9
- package/dist/types/components/ic-typography/ic-typography.d.ts +1 -1
- package/dist/types/components.d.ts +281 -195
- package/dist/types/stencil-public-runtime.d.ts +9 -10
- package/dist/types/utils/helpers.d.ts +10 -10
- package/dist/types/utils/types.d.ts +8 -4
- package/hydrate/index.d.ts +53 -12
- package/hydrate/index.js +32662 -20747
- package/hydrate/index.mjs +34265 -0
- package/hydrate/package.json +7 -1
- package/loader/cdn.js +1 -3
- package/loader/index.cjs.js +1 -3
- package/loader/index.d.ts +3 -0
- package/loader/index.es2017.js +1 -3
- package/loader/index.js +1 -3
- package/package.json +3 -3
- package/vscode-data.json +50 -330
- package/dist/cjs/helpers-eca4c27e.js.map +0 -1
- package/dist/cjs/index-f982899d.js +0 -3047
- package/dist/cjs/index-f982899d.js.map +0 -1
- package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js +0 -349
- package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js.map +0 -1
- package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js +0 -129
- package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js.map +0 -1
- package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js +0 -329
- package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js.map +0 -1
- package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.spec.js +0 -159
- package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.spec.js.map +0 -1
- package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js +0 -450
- package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js.map +0 -1
- package/dist/collection/components/ic-breadcrumb/test/basic/ic-breadcrumb.spec.js +0 -162
- package/dist/collection/components/ic-breadcrumb/test/basic/ic-breadcrumb.spec.js.map +0 -1
- package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.spec.js +0 -234
- package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.spec.js.map +0 -1
- package/dist/collection/components/ic-button/test/basic/ic-button.spec.js +0 -332
- package/dist/collection/components/ic-button/test/basic/ic-button.spec.js.map +0 -1
- package/dist/collection/components/ic-card-vertical/test/basic/ic-card-vertical.spec.js +0 -214
- package/dist/collection/components/ic-card-vertical/test/basic/ic-card-vertical.spec.js.map +0 -1
- package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js +0 -284
- package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js.map +0 -1
- package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js +0 -188
- package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js.map +0 -1
- package/dist/collection/components/ic-classification-banner/test/basic/ic-classification-banner.spec.js +0 -188
- package/dist/collection/components/ic-classification-banner/test/basic/ic-classification-banner.spec.js.map +0 -1
- package/dist/collection/components/ic-data-list/test/basic/ic-data-list.spec.js +0 -161
- package/dist/collection/components/ic-data-list/test/basic/ic-data-list.spec.js.map +0 -1
- package/dist/collection/components/ic-data-row/test/basic/ic-data-row.spec.js +0 -74
- package/dist/collection/components/ic-data-row/test/basic/ic-data-row.spec.js.map +0 -1
- package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js +0 -448
- package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js.map +0 -1
- package/dist/collection/components/ic-divider/test/basic/ic-divider.spec.js +0 -109
- package/dist/collection/components/ic-divider/test/basic/ic-divider.spec.js.map +0 -1
- package/dist/collection/components/ic-empty-state/test/basic/ic-empty-state.spec.js +0 -101
- package/dist/collection/components/ic-empty-state/test/basic/ic-empty-state.spec.js.map +0 -1
- package/dist/collection/components/ic-footer/test/basic/ic-footer.spec.js +0 -181
- package/dist/collection/components/ic-footer/test/basic/ic-footer.spec.js.map +0 -1
- package/dist/collection/components/ic-footer-link/test/basic/ic-footer-link.spec.js +0 -46
- package/dist/collection/components/ic-footer-link/test/basic/ic-footer-link.spec.js.map +0 -1
- package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js +0 -66
- package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js.map +0 -1
- package/dist/collection/components/ic-hero/test/basic/ic-hero.spec.js +0 -109
- package/dist/collection/components/ic-hero/test/basic/ic-hero.spec.js.map +0 -1
- package/dist/collection/components/ic-horizontal-scroll/test/basic/ic-horizontal-scroll.spec.js +0 -223
- package/dist/collection/components/ic-horizontal-scroll/test/basic/ic-horizontal-scroll.spec.js.map +0 -1
- package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js +0 -172
- package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js.map +0 -1
- package/dist/collection/components/ic-input-container/test/basic/ic-input-container.spec.js +0 -38
- package/dist/collection/components/ic-input-container/test/basic/ic-input-container.spec.js.map +0 -1
- package/dist/collection/components/ic-input-label/test/basic/ic-input-label.spec.js +0 -84
- package/dist/collection/components/ic-input-label/test/basic/ic-input-label.spec.js.map +0 -1
- package/dist/collection/components/ic-input-validation/test/basic/ic-input-validation.spec.js +0 -89
- package/dist/collection/components/ic-input-validation/test/basic/ic-input-validation.spec.js.map +0 -1
- package/dist/collection/components/ic-link/test/basic/ic-link.spec.js +0 -120
- package/dist/collection/components/ic-link/test/basic/ic-link.spec.js.map +0 -1
- package/dist/collection/components/ic-loading-indicator/test/basic/ic-loading-indicator.spec.js +0 -149
- package/dist/collection/components/ic-loading-indicator/test/basic/ic-loading-indicator.spec.js.map +0 -1
- package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js +0 -1108
- package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js.map +0 -1
- package/dist/collection/components/ic-menu-group/test/basic/ic-menu-group.spec.js +0 -94
- package/dist/collection/components/ic-menu-group/test/basic/ic-menu-group.spec.js.map +0 -1
- package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js +0 -121
- package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js.map +0 -1
- package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js +0 -95
- package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js.map +0 -1
- package/dist/collection/components/ic-navigation-group/test/basic/ic-navigation-group.spec.js +0 -309
- package/dist/collection/components/ic-navigation-group/test/basic/ic-navigation-group.spec.js.map +0 -1
- package/dist/collection/components/ic-navigation-item/test/basic/ic-navigation-item.spec.js +0 -130
- package/dist/collection/components/ic-navigation-item/test/basic/ic-navigation-item.spec.js.map +0 -1
- package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.spec.js +0 -176
- package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.spec.js.map +0 -1
- package/dist/collection/components/ic-page-header/test/basic/ic-page-header.spec.js +0 -291
- package/dist/collection/components/ic-page-header/test/basic/ic-page-header.spec.js.map +0 -1
- package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js +0 -390
- package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js.map +0 -1
- package/dist/collection/components/ic-pagination-item/test/basic/ic-pagination-item.spec.js +0 -79
- package/dist/collection/components/ic-pagination-item/test/basic/ic-pagination-item.spec.js.map +0 -1
- package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.spec.js +0 -398
- package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.spec.js.map +0 -1
- package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js +0 -389
- package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js.map +0 -1
- package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.spec.js +0 -553
- package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.spec.js.map +0 -1
- package/dist/collection/components/ic-section-container/test/basic/ic-section-container.spec.js +0 -69
- package/dist/collection/components/ic-section-container/test/basic/ic-section-container.spec.js.map +0 -1
- package/dist/collection/components/ic-select/test/basic/ic-select.spec.js +0 -1672
- package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +0 -1
- package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js +0 -503
- package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js.map +0 -1
- package/dist/collection/components/ic-skeleton/test/basic/ic-skeleton.spec.js +0 -89
- package/dist/collection/components/ic-skeleton/test/basic/ic-skeleton.spec.js.map +0 -1
- package/dist/collection/components/ic-status-tag/test/basic/ic-status-tag.spec.js +0 -26
- package/dist/collection/components/ic-status-tag/test/basic/ic-status-tag.spec.js.map +0 -1
- package/dist/collection/components/ic-step/test/basic/ic-step.spec.js +0 -176
- package/dist/collection/components/ic-step/test/basic/ic-step.spec.js.map +0 -1
- package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js +0 -752
- package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js.map +0 -1
- package/dist/collection/components/ic-switch/test/basic/ic-switch.spec.js +0 -93
- package/dist/collection/components/ic-switch/test/basic/ic-switch.spec.js.map +0 -1
- package/dist/collection/components/ic-tab/test/basic/ic-tab.spec.js +0 -175
- package/dist/collection/components/ic-tab/test/basic/ic-tab.spec.js.map +0 -1
- package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.spec.js +0 -390
- package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.spec.js.map +0 -1
- package/dist/collection/components/ic-tab-panel/test/basic/ic-tab-panel.spec.js +0 -19
- package/dist/collection/components/ic-tab-panel/test/basic/ic-tab-panel.spec.js.map +0 -1
- package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js +0 -312
- package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js.map +0 -1
- package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js +0 -341
- package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js.map +0 -1
- package/dist/collection/components/ic-theme/test/basic/ic-theme.e2e.js +0 -72
- package/dist/collection/components/ic-theme/test/basic/ic-theme.e2e.js.map +0 -1
- package/dist/collection/components/ic-theme/test/basic/ic-theme.spec.js +0 -79
- package/dist/collection/components/ic-theme/test/basic/ic-theme.spec.js.map +0 -1
- package/dist/collection/components/ic-toast/test/basic/ic-toast.spec.js +0 -314
- package/dist/collection/components/ic-toast/test/basic/ic-toast.spec.js.map +0 -1
- package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js +0 -64
- package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js.map +0 -1
- package/dist/collection/components/ic-toggle-button/test/basic/ic-toggle-button.spec.js +0 -126
- package/dist/collection/components/ic-toggle-button/test/basic/ic-toggle-button.spec.js.map +0 -1
- package/dist/collection/components/ic-toggle-button-group/test/ic-toggle-button-group.spec.js +0 -337
- package/dist/collection/components/ic-toggle-button-group/test/ic-toggle-button-group.spec.js.map +0 -1
- package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js +0 -321
- package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js.map +0 -1
- package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js +0 -314
- package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js.map +0 -1
- package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js +0 -407
- package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js.map +0 -1
- package/dist/collection/testspec.setup.js +0 -77
- package/dist/collection/testspec.setup.js.map +0 -1
- package/dist/core/p-00587c99.entry.js.map +0 -1
- package/dist/core/p-07aaf9c4.entry.js.map +0 -1
- package/dist/core/p-094f51b6.entry.js.map +0 -1
- package/dist/core/p-116875ae.entry.js +0 -2
- package/dist/core/p-116875ae.entry.js.map +0 -1
- package/dist/core/p-146b2788.entry.js.map +0 -1
- package/dist/core/p-15082ea5.entry.js +0 -2
- package/dist/core/p-15082ea5.entry.js.map +0 -1
- package/dist/core/p-174de9d7.entry.js +0 -2
- package/dist/core/p-174de9d7.entry.js.map +0 -1
- package/dist/core/p-17f9921d.entry.js +0 -2
- package/dist/core/p-17f9921d.entry.js.map +0 -1
- package/dist/core/p-246ea059.entry.js +0 -2
- package/dist/core/p-246ea059.entry.js.map +0 -1
- package/dist/core/p-25d3c3a6.entry.js.map +0 -1
- package/dist/core/p-26bc7c62.entry.js.map +0 -1
- package/dist/core/p-27274ca8.entry.js.map +0 -1
- package/dist/core/p-31d4bfc3.entry.js +0 -2
- package/dist/core/p-31d4bfc3.entry.js.map +0 -1
- package/dist/core/p-39ab6387.entry.js.map +0 -1
- package/dist/core/p-3d565739.entry.js.map +0 -1
- package/dist/core/p-3ea4a005.entry.js +0 -2
- package/dist/core/p-3ea4a005.entry.js.map +0 -1
- package/dist/core/p-41b7c67c.entry.js +0 -2
- package/dist/core/p-41b7c67c.entry.js.map +0 -1
- package/dist/core/p-4cfe1dd8.entry.js.map +0 -1
- package/dist/core/p-5b836707.entry.js.map +0 -1
- package/dist/core/p-67b3cd55.entry.js.map +0 -1
- package/dist/core/p-67b8a829.entry.js +0 -2
- package/dist/core/p-67b8a829.entry.js.map +0 -1
- package/dist/core/p-6b5e91e2.js +0 -3
- package/dist/core/p-6b5e91e2.js.map +0 -1
- package/dist/core/p-6b9db71a.entry.js +0 -2
- package/dist/core/p-6b9db71a.entry.js.map +0 -1
- package/dist/core/p-6dfa5a4b.entry.js +0 -2
- package/dist/core/p-6dfa5a4b.entry.js.map +0 -1
- package/dist/core/p-6e94c79c.entry.js.map +0 -1
- package/dist/core/p-720428a3.entry.js.map +0 -1
- package/dist/core/p-73a208c7.entry.js.map +0 -1
- package/dist/core/p-73d6092d.entry.js.map +0 -1
- package/dist/core/p-770c52a7.entry.js +0 -2
- package/dist/core/p-770c52a7.entry.js.map +0 -1
- package/dist/core/p-7b26ef60.entry.js.map +0 -1
- package/dist/core/p-7f984e25.entry.js.map +0 -1
- package/dist/core/p-86caada0.entry.js +0 -2
- package/dist/core/p-86caada0.entry.js.map +0 -1
- package/dist/core/p-8c03b8b5.entry.js +0 -2
- package/dist/core/p-8c03b8b5.entry.js.map +0 -1
- package/dist/core/p-8fdb9b16.entry.js +0 -2
- package/dist/core/p-8fdb9b16.entry.js.map +0 -1
- package/dist/core/p-91a221b5.entry.js +0 -2
- package/dist/core/p-91a221b5.entry.js.map +0 -1
- package/dist/core/p-96b4ca6e.entry.js.map +0 -1
- package/dist/core/p-9e0c2c19.entry.js +0 -2
- package/dist/core/p-9e0c2c19.entry.js.map +0 -1
- package/dist/core/p-9f569f90.entry.js +0 -2
- package/dist/core/p-9f569f90.entry.js.map +0 -1
- package/dist/core/p-a178d53c.entry.js.map +0 -1
- package/dist/core/p-a3b7a147.entry.js +0 -2
- package/dist/core/p-a3b7a147.entry.js.map +0 -1
- package/dist/core/p-a72685f6.entry.js +0 -2
- package/dist/core/p-a72685f6.entry.js.map +0 -1
- package/dist/core/p-a87d13b3.entry.js.map +0 -1
- package/dist/core/p-abdc2912.entry.js.map +0 -1
- package/dist/core/p-b404b307.entry.js.map +0 -1
- package/dist/core/p-b6ce9ca3.entry.js +0 -2
- package/dist/core/p-b6ce9ca3.entry.js.map +0 -1
- package/dist/core/p-b6e010f3.entry.js +0 -2
- package/dist/core/p-b6e010f3.entry.js.map +0 -1
- package/dist/core/p-bbd4f487.entry.js.map +0 -1
- package/dist/core/p-bd9f3961.entry.js +0 -2
- package/dist/core/p-bd9f3961.entry.js.map +0 -1
- package/dist/core/p-c1db155d.entry.js.map +0 -1
- package/dist/core/p-c7bcdb8e.entry.js +0 -2
- package/dist/core/p-c7bcdb8e.entry.js.map +0 -1
- package/dist/core/p-ca11666f.entry.js.map +0 -1
- package/dist/core/p-cda4aca9.js +0 -2
- package/dist/core/p-cda4aca9.js.map +0 -1
- package/dist/core/p-d7ccd00f.entry.js.map +0 -1
- package/dist/core/p-dededae6.entry.js +0 -2
- package/dist/core/p-dededae6.entry.js.map +0 -1
- package/dist/core/p-e2cf6e7e.entry.js.map +0 -1
- package/dist/core/p-e6dc3cd1.entry.js +0 -2
- package/dist/core/p-e6dc3cd1.entry.js.map +0 -1
- package/dist/core/p-e831277e.entry.js +0 -2
- package/dist/core/p-e831277e.entry.js.map +0 -1
- package/dist/core/p-eb7c589b.entry.js +0 -2
- package/dist/core/p-eb7c589b.entry.js.map +0 -1
- package/dist/core/p-f65179fe.entry.js +0 -2
- package/dist/core/p-f65179fe.entry.js.map +0 -1
- package/dist/core/p-fd60eef7.entry.js +0 -2
- package/dist/core/p-fd60eef7.entry.js.map +0 -1
- package/dist/core/p-fd9f3fd0.entry.js +0 -2
- package/dist/core/p-fd9f3fd0.entry.js.map +0 -1
- package/dist/esm/helpers-a72a277b.js.map +0 -1
- package/dist/esm/index-d1d2c456.js +0 -3016
- package/dist/esm/index-d1d2c456.js.map +0 -1
- package/dist/esm/polyfills/core-js.js +0 -11
- package/dist/esm/polyfills/dom.js +0 -79
- package/dist/esm/polyfills/es5-html-element.js +0 -1
- package/dist/esm/polyfills/index.js +0 -34
- package/dist/esm/polyfills/system.js +0 -6
- package/dist/types/testspec.setup.d.ts +0 -24
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icNavigationGroupCss","NavigationGroup","this","allGroupedNavigationItems","DYNAMIC_GROUPED_LINKS_HEIGHT_MS","IC_NAVIGATION_ITEM","mouseGate","nodeName","GROUPED_LINKS_WRAPPER_CLASS","sideNavExpandHandler","event","isSideNavExpanded","detail","sideNavExpanded","linkWrapper","el","shadowRoot","querySelector","expanded","expandedNavItemsHeight","setGroupedLinksElementHeight","setTimeout","getNavigationChildItemsHeight","collapsedNavItemsHeight","topNavResizedHandler","size","deviceSize","inTopNavSideMenu","_a","parentEl","customMobileBreakpoint","DEVICE_SIZES","L","setGroupedNavItemTabIndex","tabIndexValue","querySelectorAll","forEach","navigationItem","navItem","setAttribute","toggleGroupedLinkWrapperHeight","wrapper","style","setProperty","toggleExpanded","handleClick","ev","navigationType","toggleDropdown","handleBlur","target","relatedTarget","contains","hideDropdown","handleTopNavKeydown","key","handleKeydown","preventDefault","handleMouseLeave","relTarget","dropdown","document","activeElement","dropdownOpen","handleMouseEnter","addEventListener","showDropdown","renderDropdownGroupedLinks","h","class","onMouseLeave","ref","renderGroupedLinks","navigationChildItemsHeight","offsetHeight","setInitialGroupedLinksWrapperHeight","renderNavigationItems","expandable","XL","getBrandForegroundAppearance","disconnectedCallback","removeEventListener","_b","componentWillLoad","getCurrentDeviceSize","navType","parent","getNavItemParentDetails","componentDidLoad","Array","from","childBlurHandler","navItemClickHandler","brandChangeHandler","focusStyle","mode","setFocus","groupEl","focus","groupedNavItemWrapper","height","render","label","Host","theme","role","onMouseEnter","tabindex","onBlur","onClick","onKeyDown","variant","innerHTML","chevronIcon"],"sources":["src/components/ic-navigation-group/ic-navigation-group.css?tag=ic-navigation-group&encapsulation=shadow","src/components/ic-navigation-group/ic-navigation-group.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-navigation-item: z-index of navigation group item\n */\n\n:host {\n display: block;\n\n --ic-typography-color: currentcolor;\n}\n\n:host(.in-side-menu) {\n border-bottom: var(--ic-border-width) solid\n var(--ic-divider-background-monochrome);\n padding: var(--ic-space-md) 0;\n}\n\n:host .navigation-group {\n height: 100%;\n width: fit-content;\n color: var(--ic-brand-text-color);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 var(--ic-space-md) var(--ic-space-xxs);\n transition: var(--ic-easing-transition-slow);\n position: relative;\n background: none;\n border: none;\n white-space: nowrap;\n}\n\n:host(.in-side-menu) .navigation-group {\n height: 2.5rem;\n width: 100%;\n text-align: left;\n}\n\n:host(.in-side-menu) .navigation-group .ic-typography-label {\n width: 11.875rem;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu {\n color: var(--ic-top-navigation-nav-group-link);\n justify-content: flex-start;\n padding: 0 var(--ic-space-md) 0 var(--ic-space-md);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-collapsed,\n:host(.in-side-menu) .navigation-group-side-menu-expanded {\n color: var(--ic-top-navigation-nav-group-link);\n justify-content: flex-start;\n padding-left: var(--ic-space-md);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded {\n margin-bottom: var(--ic-space-xs);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-collapsed::after,\n:host(.in-side-menu) .navigation-group-side-menu-expanded::after {\n border-style: solid;\n border-width: 0.125em 0.125em 0 0;\n content: \"\";\n display: inline-block;\n height: 0.45em;\n left: 0.75em;\n position: relative;\n top: -0.1em;\n transform: rotate(135deg);\n vertical-align: top;\n width: 0.45em;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded::after {\n top: 0.15em;\n transform: rotate(-45deg);\n}\n\n:host .navigation-group:hover,\n:host .navigation-group:active,\n:host .selected {\n background-color: var(--ic-architectural-20);\n color: var(--ic-color-text-primary-light);\n outline: none;\n cursor: pointer;\n}\n\n:host(:not(.in-side-menu)) .navigation-group:focus {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n outline: var(--ic-hc-focus-outline);\n z-index: var(--ic-z-index-navigation-item);\n transition: box-shadow var(--ic-easing-transition-fast);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu:hover,\n:host(.in-side-menu) .navigation-group-side-menu:focus {\n background-color: var(--ic-top-navigation-nav-group-hover);\n color: var(--ic-top-navigation-nav-group-link);\n cursor: auto;\n box-shadow: none;\n outline: none;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu:active {\n background-color: var(--ic-top-navigation-nav-group-pressed);\n color: var(--ic-top-navigation-nav-group-link);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu:focus {\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:hover:not(:focus),\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:hover:not(:focus) {\n background-color: var(--ic-action-dark-bg-hover);\n color: var(--ic-action-default);\n cursor: pointer;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:active:not(:focus),\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:active:not(:focus) {\n background-color: var(--ic-action-dark-bg-pressed);\n color: var(--ic-action-default);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:focus,\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:focus {\n color: var(--ic-action-default);\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n outline: var(--ic-hc-focus-outline);\n}\n\n:host .navigation-group-dropdown {\n background-color: var(--ic-top-navigation-menu-background);\n border-bottom: var(--ic-space-1px) solid var(--ic-top-navigation-menu-border);\n position: absolute;\n left: 0;\n right: 0;\n padding: var(--ic-space-xs) var(--ic-space-md);\n box-shadow: 0 0.375rem 0.5rem -0.375rem rgba(0 0 0 / 20%);\n z-index: calc(var(--ic-z-index-navigation-item) - 1);\n}\n\n:host .navigation-group-dropdown-items-list {\n list-style: none;\n display: flex;\n flex-flow: column wrap;\n align-content: flex-start;\n padding-left: var(--ic-space-md);\n max-height: 16.5rem;\n}\n\n:host .chevron-toggle-icon-wrapper {\n display: flex;\n align-items: center;\n}\n\n:host .chevron-toggle-icon-wrapper svg {\n transform: rotate(90deg);\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n}\n\n:host .chevron-toggle-icon-closed svg {\n transform: rotate(-90deg);\n}\n\n:host(.ic-navigation-group-expanded) .grouped-links-wrapper {\n height: var(--navigation-child-items-height, auto) !important;\n transition: var(--ic-easing-transition-slow);\n overflow: hidden;\n}\n\n:host(.ic-navigation-group-side-nav) .link,\n:host(.ic-navigation-group-side-nav) ::slotted(a) {\n height: var(--navigation-child-items-height, auto);\n}\n\n:host(.ic-navigation-group-collapsed) .grouped-links-wrapper {\n height: 0;\n transition: var(--ic-easing-transition-slow);\n overflow: hidden;\n}\n\n:host(.ic-navigation-group-side-nav) .navigation-group {\n height: var(--navigation-group-height);\n width: var(--navigation-group-width);\n justify-content: var(--navigation-group-justify-content);\n padding-right: var(--navigation-group-expand-toggle-padding);\n}\n\n:host(.ic-navigation-group-side-nav) .navigation-group:hover,\n:host(.ic-navigation-group-side-nav) .navigation-group:active,\n:host(.ic-navigation-group-side-nav) .selected {\n background-color: var(--navigation-group-hover);\n color: var(--navigation-group-text-hover);\n}\n\n:host(.ic-navigation-group-side-nav) .navigation-group:focus {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n background: none;\n}\n\n:host(.ic-navigation-group-side-nav) .ic-typography-caption {\n position: var(--navigation-group-title-position);\n left: var(--navigation-group-title-position-left);\n white-space: nowrap;\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n State,\n Listen,\n h,\n Method,\n} from \"@stencil/core\";\n\nimport {\n DEVICE_SIZES,\n getCurrentDeviceSize,\n getBrandForegroundAppearance,\n getNavItemParentDetails,\n} from \"../../utils/helpers\";\nimport {\n IcNavType,\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundNoDefault,\n IcThemeMode,\n} from \"../../utils/types\";\n\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\n@Component({\n tag: \"ic-navigation-group\",\n styleUrl: \"ic-navigation-group.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class NavigationGroup {\n private allGroupedNavigationItems: HTMLIcNavigationItemElement[] = [];\n private collapsedNavItemsHeight: string;\n private dropdown: HTMLElement;\n private DYNAMIC_GROUPED_LINKS_HEIGHT_MS = 100;\n private expandedNavItemsHeight: string;\n private groupEl: HTMLElement;\n private IC_NAVIGATION_ITEM = \"ic-navigation-item\";\n private isSideNavExpanded: boolean;\n private mouseGate: boolean = false;\n private nodeName = \"IC-NAVIGATION-GROUP\";\n private GROUPED_LINKS_WRAPPER_CLASS = \".grouped-links-wrapper\";\n\n @Element() el: HTMLIcNavigationGroupElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() dropdownOpen: boolean = false;\n @State() expanded: boolean = true;\n @State() focusStyle: IcBrandForegroundNoDefault | IcBrandForeground =\n getBrandForegroundAppearance();\n @State() inTopNavSideMenu: boolean = false;\n @State() navigationType: IcNavType | \"\";\n @State() parentEl: HTMLElement;\n\n /**\n * If `true`, the group will be expandable in the side menu.\n */\n @Prop() expandable: boolean = false;\n\n /**\n * The label to display on the group.\n */\n @Prop() label: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n disconnectedCallback(): void {\n if (this.navigationType === \"side\") {\n this.parentEl?.removeEventListener(\n \"icSideNavExpanded\",\n this.sideNavExpandHandler\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl?.removeEventListener(\n \"icTopNavResized\",\n this.topNavResizedHandler\n );\n }\n }\n\n componentWillLoad(): void {\n this.deviceSize = getCurrentDeviceSize();\n const { navType, parent } = getNavItemParentDetails(this.el);\n this.navigationType = navType;\n this.parentEl = parent;\n\n if (this.navigationType === \"side\") {\n this.parentEl.addEventListener(\n \"icSideNavExpanded\",\n this.sideNavExpandHandler\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl.addEventListener(\n \"icTopNavResized\",\n this.topNavResizedHandler\n );\n if (\n this.deviceSize <=\n (this.parentEl as HTMLIcTopNavigationElement).customMobileBreakpoint\n )\n this.inTopNavSideMenu = true;\n }\n }\n\n componentDidLoad(): void {\n this.allGroupedNavigationItems = Array.from(\n this.el.querySelectorAll(this.IC_NAVIGATION_ITEM)\n );\n\n /**\n * debounce is required as the incorrect height was retrieved instantly after\n * componentDidLoad is invoked.\n */\n setTimeout(\n () => this.setInitialGroupedLinksWrapperHeight(),\n this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS\n );\n }\n\n @Listen(\"childBlur\")\n childBlurHandler(): void {\n this.hideDropdown();\n }\n\n @Listen(\"navItemClicked\")\n navItemClickHandler(): void {\n this.hideDropdown();\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler(ev: CustomEvent<IcBrand>): void {\n this.focusStyle = ev.detail.mode;\n }\n\n /**\n * Sets focus on the nav item.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.groupEl) {\n this.groupEl.focus();\n }\n }\n\n private sideNavExpandHandler = (event?: CustomEvent): void => {\n this.isSideNavExpanded = event.detail.sideNavExpanded;\n const linkWrapper = this.el.shadowRoot.querySelector(\n this.GROUPED_LINKS_WRAPPER_CLASS\n ) as HTMLElement;\n\n if (!linkWrapper) return;\n\n if (this.isSideNavExpanded) {\n if (this.expanded && this.expandedNavItemsHeight) {\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.expandedNavItemsHeight\n );\n } else if (this.expanded) {\n setTimeout(() => {\n this.expandedNavItemsHeight = this.getNavigationChildItemsHeight();\n\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.expandedNavItemsHeight\n );\n }, this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n } else {\n if (this.expanded && this.collapsedNavItemsHeight) {\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.collapsedNavItemsHeight\n );\n } else if (this.expanded) {\n setTimeout(() => {\n this.collapsedNavItemsHeight = this.getNavigationChildItemsHeight();\n\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.collapsedNavItemsHeight\n );\n }, this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n }\n };\n\n private topNavResizedHandler = ({\n detail,\n }: CustomEvent<{ size: number }>): void => {\n const { size } = detail;\n if (size !== this.deviceSize) {\n this.deviceSize = size;\n this.inTopNavSideMenu =\n size <=\n ((this.parentEl as HTMLIcTopNavigationElement)\n ?.customMobileBreakpoint || DEVICE_SIZES.L);\n }\n };\n\n private toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n }\n\n private setGroupedNavItemTabIndex = (tabIndexValue: string) => {\n this.el\n .querySelectorAll(this.IC_NAVIGATION_ITEM)\n .forEach((navigationItem) => {\n const navItem =\n navigationItem.shadowRoot.querySelector(\"a\") ||\n navigationItem.querySelector(\"a\");\n if (navItem) {\n navItem.setAttribute(\"tabindex\", tabIndexValue);\n }\n });\n };\n\n private toggleGroupedLinkWrapperHeight = (\n wrapper: HTMLElement,\n expanded: boolean\n ) => {\n if (!wrapper) return;\n\n if (expanded) {\n if (this.isSideNavExpanded) {\n this.setGroupedLinksElementHeight(wrapper, this.expandedNavItemsHeight);\n } else {\n this.setGroupedLinksElementHeight(\n wrapper,\n this.collapsedNavItemsHeight\n );\n }\n this.setGroupedNavItemTabIndex(\"0\");\n } else {\n wrapper.style.setProperty(\"--navigation-child-items-height\", \"0\");\n this.setGroupedNavItemTabIndex(\"-1\");\n }\n };\n\n private toggleExpanded = () => {\n this.expanded = !this.expanded;\n const linkWrapper = this.el.shadowRoot.querySelector(\n this.GROUPED_LINKS_WRAPPER_CLASS\n ) as HTMLElement;\n this.toggleGroupedLinkWrapperHeight(linkWrapper, this.expanded);\n };\n\n private showDropdown() {\n if (!this.dropdownOpen) {\n this.toggleDropdown();\n }\n }\n\n private hideDropdown() {\n document.removeEventListener(\"keydown\", this.handleKeydown);\n if (this.dropdownOpen) {\n this.toggleDropdown();\n }\n }\n\n private handleClick = (ev: MouseEvent) => {\n if (this.navigationType === \"top\" && ev.detail) {\n this.toggleDropdown();\n } else {\n this.toggleExpanded();\n }\n };\n\n private handleBlur = (ev: FocusEvent) => {\n const target = ev.relatedTarget as HTMLElement;\n if (!this.el.contains(target)) {\n this.hideDropdown();\n }\n };\n\n private handleTopNavKeydown = (ev: KeyboardEvent) => {\n if (ev.key === \" \" || ev.key === \"Enter\") {\n this.toggleDropdown();\n } else if (!this.inTopNavSideMenu && ev.key === \"Escape\") {\n this.hideDropdown();\n }\n };\n\n private handleKeydown = (ev: KeyboardEvent) => {\n if (ev.key === \"Enter\" || ev.key === \" \" || ev.key === \"Escape\") {\n switch (this.navigationType) {\n case \"top\":\n this.handleTopNavKeydown(ev as KeyboardEvent);\n break;\n case \"side\":\n this.toggleExpanded();\n ev.preventDefault();\n break;\n default:\n this.toggleExpanded();\n break;\n }\n }\n };\n\n private handleMouseLeave = (ev: MouseEvent) => {\n const relTarget = ev.relatedTarget as HTMLElement;\n\n this.mouseGate = false;\n\n if (\n !this.el.contains(relTarget) &&\n relTarget !== this.dropdown &&\n document.activeElement !== this.el &&\n !this.el.contains(document.activeElement) &&\n relTarget?.nodeName === this.nodeName &&\n this.dropdownOpen === true\n ) {\n this.mouseGate = true;\n this.hideDropdown();\n } else if (\n !this.el.contains(relTarget) &&\n relTarget !== this.dropdown &&\n !this.el.contains(document.activeElement)\n ) {\n this.mouseGate = false;\n setTimeout(() => {\n this.dropdownOpen ? this.hideDropdown() : null;\n }, 500);\n }\n };\n\n private handleMouseEnter = (ev: MouseEvent) => {\n const relTarget = ev.relatedTarget as HTMLElement;\n document.addEventListener(\"keydown\", this.handleKeydown);\n\n if (relTarget?.nodeName === this.nodeName && this.mouseGate === true) {\n this.showDropdown();\n } else if (\n this.dropdownOpen === false &&\n relTarget !== null &&\n this.mouseGate === false\n ) {\n this.mouseGate = true;\n setTimeout(() => {\n this.mouseGate && this.showDropdown();\n }, 500);\n }\n };\n\n private renderDropdownGroupedLinks = (): HTMLDivElement => (\n <div\n class={{\n [\"navigation-group-dropdown\"]: !this.inTopNavSideMenu,\n [\"navigation-group-dropdown-side-menu\"]: this.inTopNavSideMenu,\n [\"selected\"]: this.dropdownOpen && !this.inTopNavSideMenu,\n }}\n onMouseLeave={!this.inTopNavSideMenu ? this.handleMouseLeave : null}\n ref={(el) => (this.dropdown = el)}\n >\n <nav\n class={{\n [\"navigation-group-dropdown-items\"]: !this.inTopNavSideMenu,\n }}\n >\n <ul>\n <slot></slot>\n </ul>\n </nav>\n </div>\n );\n\n private renderGroupedLinks = (): HTMLDivElement => (\n <ul class=\"grouped-links-wrapper\">\n <slot></slot>\n </ul>\n );\n\n /**\n * Gets the total height of navigation links to improve\n * smoothness of expand/collapse animations\n */\n private getNavigationChildItemsHeight = (): string => {\n let navigationChildItemsHeight = 0;\n this.allGroupedNavigationItems.forEach((navItem) => {\n navigationChildItemsHeight += navItem.offsetHeight;\n });\n\n return `${navigationChildItemsHeight}px`;\n };\n\n private setInitialGroupedLinksWrapperHeight = () => {\n const linkWrapper = this.el.shadowRoot.querySelector(\n this.GROUPED_LINKS_WRAPPER_CLASS\n ) as HTMLElement;\n\n if (!linkWrapper) return;\n\n if (\n !this.isSideNavExpanded &&\n !this.collapsedNavItemsHeight &&\n this.expanded\n ) {\n this.collapsedNavItemsHeight = this.getNavigationChildItemsHeight();\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.collapsedNavItemsHeight\n );\n }\n\n if (this.isSideNavExpanded && this.expanded) {\n this.expandedNavItemsHeight = this.getNavigationChildItemsHeight();\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.expandedNavItemsHeight\n );\n }\n };\n\n private renderNavigationItems = (): HTMLDivElement | null => {\n if (this.dropdownOpen || (this.inTopNavSideMenu && !this.expandable)) {\n return this.renderDropdownGroupedLinks();\n }\n\n if (this.navigationType !== \"top\") {\n return this.renderGroupedLinks();\n }\n\n return null;\n };\n\n private setGroupedLinksElementHeight(\n groupedNavItemWrapper: HTMLElement,\n height: string\n ) {\n groupedNavItemWrapper.style.setProperty(\n \"--navigation-child-items-height\",\n height\n );\n }\n\n render() {\n const { label, dropdownOpen, inTopNavSideMenu, expandable } = this;\n\n return (\n <Host\n class={{\n [\"in-side-menu\"]: inTopNavSideMenu,\n \"ic-navigation-group-expanded\": this.expanded,\n \"ic-navigation-group-collapsed\": !this.expanded,\n [\"ic-navigation-group-side-nav\"]: this.navigationType === \"side\",\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n }}\n role=\"listitem\"\n >\n <button\n onMouseEnter={\n !inTopNavSideMenu &&\n this.navigationType === \"top\" &&\n this.handleMouseEnter\n }\n onMouseLeave={this.navigationType === \"top\" && this.handleMouseLeave}\n tabindex={inTopNavSideMenu && !expandable ? \"-1\" : \"0\"}\n onBlur={this.handleBlur}\n onClick={expandable ? this.handleClick : null}\n onKeyDown={this.handleKeydown}\n class={{\n [\"navigation-group\"]: true,\n [this.focusStyle]: !inTopNavSideMenu,\n [\"navigation-group-side-menu\"]: inTopNavSideMenu && !expandable,\n [\"navigation-group-side-menu-collapsed\"]:\n inTopNavSideMenu && expandable && !dropdownOpen,\n [\"navigation-group-side-menu-expanded\"]:\n inTopNavSideMenu && expandable && dropdownOpen,\n [\"selected\"]: dropdownOpen && !inTopNavSideMenu,\n }}\n ref={(el) => (this.groupEl = el)}\n aria-expanded={`${dropdownOpen || this.expanded}`}\n aria-haspopup={`${\n !inTopNavSideMenu && this.navigationType === \"top\"\n }`}\n >\n <ic-typography\n variant={this.navigationType === \"side\" ? \"caption\" : \"label\"}\n >\n {label}\n </ic-typography>\n {this.navigationType === \"side\" && expandable && (\n <div\n class={{\n \"chevron-toggle-icon-wrapper\": true,\n \"chevron-toggle-icon-closed\": this.expanded,\n }}\n innerHTML={chevronIcon}\n ></div>\n )}\n </button>\n {this.renderNavigationItems()}\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icStatusTagCss","StatusTag","componentDidLoad","onComponentRequiredPropUndefined","prop","this","label","propName","render","status","variant","size","announced","theme","uppercase","h","Host","class","role"],"sources":["src/components/ic-status-tag/ic-status-tag.css?tag=ic-status-tag&encapsulation=shadow","src/components/ic-status-tag/ic-status-tag.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n.tag {\n padding: var(--ic-space-xxs) var(--ic-space-sm);\n font-size: 0.875rem;\n border-radius: var(--ic-space-md);\n display: inline-block;\n min-width: 2.5rem;\n text-align: center;\n\n --ic-typography-color: var(--ic-status-tag-text);\n}\n\n.small {\n padding: var(--ic-space-xxxs) var(--ic-space-sm);\n border-radius: calc(var(--ic-space-md) - var(--ic-space-xxxs));\n}\n\n.large {\n padding: var(--ic-space-xs) var(--ic-space-sm);\n border-radius: calc(var(--ic-space-md) + var(--ic-space-xxs));\n}\n\n.filled-neutral {\n background-color: var(--ic-status-tag-neutral);\n}\n\n.filled-success {\n background-color: var(--ic-status-tag-success);\n}\n\n.filled-warning {\n background-color: var(--ic-status-tag-warning);\n --ic-typography-color: var(--ic-status-tag-text-inverted);\n}\n\n.filled-danger {\n background-color: var(--ic-status-tag-error);\n}\n\n.outlined {\n padding: calc(var(--ic-space-xxxs) + var(--ic-space-1px))\n calc(var(--ic-space-sm) - var(--ic-space-1px));\n}\n\n.outlined.small {\n padding: var(--ic-space-1px) calc(var(--ic-space-sm) - var(--ic-space-1px));\n}\n\n.outlined.large {\n padding: calc(var(--ic-space-xs) - var(--ic-space-1px))\n calc(var(--ic-space-sm) - var(--ic-space-1px));\n}\n\n.outlined-neutral {\n background-color: var(--ic-status-tag-outlined-background-neutral);\n border: var(--ic-border-width) solid var(--ic-status-tag-outlined-neutral);\n --ic-typography-color: var(--ic-status-tag-text-inverted);\n}\n\n.outlined-success {\n background-color: var(--ic-status-tag-outlined-background-success);\n border: var(--ic-border-width) solid var(--ic-status-tag-outlined-success);\n --ic-typography-color: var(--ic-status-tag-text-inverted);\n}\n\n.outlined-warning {\n background-color: var(--ic-status-tag-outlined-background-warning);\n border: var(--ic-border-width) solid var(--ic-status-tag-outlined-warning);\n --ic-typography-color: var(--ic-status-tag-text-inverted);\n}\n\n.outlined-danger {\n background-color: var(--ic-status-tag-outlined-background-error);\n border: var(--ic-border-width) solid var(--ic-status-tag-outlined-error);\n --ic-typography-color: var(--ic-status-tag-text-inverted);\n}\n\n@media (forced-colors: active) {\n .tag {\n border: var(--ic-border-hc);\n -ms-high-contrast-adjust: none;\n forced-color-adjust: none;\n }\n}\n","import { Component, Host, h, Prop } from \"@stencil/core\";\nimport { onComponentRequiredPropUndefined } from \"../../utils/helpers\";\nimport { IcStatusTagStatuses } from \"./ic-status-tag.types\";\nimport { IcEmphasisType, IcSizes } from \"../../utils/types\";\n\n@Component({\n tag: \"ic-status-tag\",\n styleUrl: \"ic-status-tag.css\",\n shadow: true,\n})\nexport class StatusTag {\n /**\n * If `true`, role='status' is added to the component and it will act as an 'aria-live' region.\n * Screen readers will announce changes to the `label`, but not the initial value.\n */\n @Prop() announced?: boolean = false;\n\n /**\n * The content rendered within the status tag.\n */\n @Prop() label!: string;\n\n /**\n * The size of the status tag component.\n */\n @Prop() size?: IcSizes = \"medium\";\n\n /**\n * The colour of the status tag.\n */\n @Prop() status?: IcStatusTagStatuses = \"neutral\";\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?: \"dark\" | \"light\" | \"inherit\" = \"inherit\";\n\n /**\n * The letter case of the status tag's label.\n */\n @Prop() uppercase?: boolean = true;\n\n /**\n * The emphasis of the status tag.\n */\n @Prop() variant?: IcEmphasisType = \"filled\";\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Status Tag\"\n );\n }\n\n render() {\n const { label, status, variant, size, announced, theme, uppercase } = this;\n return (\n <Host\n class={{ [`ic-theme-${theme}`]: theme !== \"inherit\" }}\n role={announced ? \"status\" : null}\n aria-label=\"Status\"\n >\n <strong\n class={{\n [\"tag\"]: true,\n [`${variant}-${status}`]: true,\n [\"outlined\"]: variant === \"outlined\",\n [`${size}`]: true,\n }}\n >\n <ic-typography\n variant={uppercase ? \"label-uppercase\" : \"label\"}\n apply-vertical-margins={false}\n >\n <span>{label}</span>\n </ic-typography>\n </strong>\n </Host>\n );\n }\n}\n"],"mappings":"sFAAA,MAAMA,EAAiB,o2I,MCUVC,EAAS,M,wCAKU,M,+BAUL,S,YAKc,U,WAKQ,U,eAKjB,K,aAKK,Q,CAEnC,gBAAAC,GACEC,EACE,CAAC,CAAEC,KAAMC,KAAKC,MAAOC,SAAU,UAC/B,a,CAIJ,MAAAC,GACE,MAAMF,MAAEA,EAAKG,OAAEA,EAAMC,QAAEA,EAAOC,KAAEA,EAAIC,UAAEA,EAASC,MAAEA,EAAKC,UAAEA,GAAcT,KACtE,OACEU,EAACC,EAAI,CACHC,MAAO,CAAE,CAAC,YAAYJ,KAAUA,IAAU,WAC1CK,KAAMN,EAAY,SAAW,KAAI,aACtB,UAEXG,EAAA,UACEE,MAAO,CACL,CAAC,OAAQ,KACT,CAAC,GAAGP,KAAWD,KAAW,KAC1B,CAAC,YAAaC,IAAY,WAC1B,CAAC,GAAGC,KAAS,OAGfI,EAAA,iBACEL,QAASI,EAAY,kBAAoB,QAAO,yBACxB,OAExBC,EAAA,YAAOT,K"}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as t,c as e,h as o,H as i,g as n}from"./p-6b5e91e2.js";import{r as s}from"./p-cda4aca9.js";const r='/*! 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)}';const a="IC-TOGGLE-BUTTON-GROUP";const l=class{constructor(o){t(this,o);this.icChange=e(this,"icChange",7);this.keyListener=t=>{this.lastKeyPressed={key:t.key,shift:t.shiftKey}};this.setSlottedAria=t=>{const e=t.shadowRoot.querySelector("ic-button").shadowRoot.querySelector("button");let o=e.getAttribute("aria-label");o+=", ";o+=this.accessibleLabel;e.setAttribute("aria-label",o)};this.handleHostFocus=t=>{if(this.loading||this.disabled){return null}const e=t.target;const o=t.relatedTarget;const i=Array.from(e.querySelectorAll("ic-toggle-button"));if((i.every((t=>!t.checked))||this.selectType!=="single")&&this.lastKeyPressed.shift===false||i.every((t=>!t.checked))&&this.lastKeyPressed.shift===true&&o.tagName==a){i[0].focus()}else if(this.lastKeyPressed.shift===false||this.lastKeyPressed.shift===true&&o.tagName==a){const t=i.filter((t=>t.checked));t[0].focus()}};this.handleKeyDown=t=>{const e=this.getAllToggleButtons();const o=e.indexOf(e.filter((t=>t===document.activeElement))[0]);switch(t.key){case"ArrowDown":case"ArrowRight":this.selectMethod==="auto"?this.proxySelectHandler(e[this.getNextItemToSelect(o,true)]):e[this.getNextItemToSelect(o,true)].focus();break;case"ArrowUp":case"ArrowLeft":this.selectMethod==="auto"?this.proxySelectHandler(e[this.getNextItemToSelect(o,false)]):e[this.getNextItemToSelect(o,false)].focus();break}};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.lastKeyPressed={key:null,shift:false};this.accessibleLabel="Toggle button group";this.disabled=false;this.fullWidth=false;this.iconPlacement=undefined;this.loading=false;this.monochrome=false;this.selectMethod="manual";this.selectType="single";this.size="medium";this.theme="inherit";this.tooltipPlacement="bottom";this.variant="default"}watchDisabledHandler(){this.getAllToggleButtons().forEach((t=>{t.disabled=this.disabled}));s(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}))}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;e&&e.focus();if(this.selectType==="single"){if(!i){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=this.getAllToggleButtons().filter((t=>t.checked&&!t.disabled));this.icChange.emit({checked:t.map((t=>t.checked)),toggledOptions:t.map((t=>({toggleButton:t}))),selectedOption:i})}}componentWillLoad(){this.selectType==="multi"&&(this.selectMethod="manual");document.addEventListener("keydown",this.keyListener);s(this.disabled,this.el)}componentDidLoad(){this.getAllToggleButtons().forEach(((t,e)=>{this.setSlottedAria(t);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)}proxySelectHandler(t){t.checked=true;const e=new CustomEvent("icToggleChecked",{detail:{checked:t.checked}});this.selectHandler(e,t)}getAllToggleButtons(){return Array.from(this.el.querySelectorAll("ic-toggle-button"))}render(){return o(i,{role:"group","aria-label":this.accessibleLabel,tabindex:0,class:{[`ic-theme-${this.theme}`]:this.theme!=="inherit",["ic-toggle-button-group-full-width"]:this.fullWidth,["ic-toggle-button-group-loading"]:this.loading,["ic-toggle-button-group-disabled"]:this.disabled,[`ic-toggle-button-group-monochrome`]:this.monochrome,[`ic-theme-${this.theme}`]:this.theme!=="inherit"},onFocus:this.handleHostFocus},o("slot",null))}get el(){return n(this)}static get watchers(){return{disabled:["watchDisabledHandler"],fullWidth:["watchFullWidthHandler"],loading:["watchLoadingHandler"],monochrome:["watchMonochromeHandler"],size:["watchSizeHandler"],theme:["watchThemeHandler"],tooltipPlacement:["watchTooltipPlacementHandler"],variant:["watchVariantHandler"]}}};l.style=r;export{l as ic_toggle_button_group};
|
2
|
-
//# sourceMappingURL=p-c7bcdb8e.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icToggleButtonGroupCss","TOGGLE_GROUP","ToggleButtonGroup","this","keyListener","ev","lastKeyPressed","key","shift","shiftKey","setSlottedAria","el","btn","shadowRoot","querySelector","aria","getAttribute","accessibleLabel","setAttribute","handleHostFocus","loading","disabled","target","relEl","relatedTarget","toggleButtons","Array","from","querySelectorAll","every","checked","selectType","tagName","focus","toggledButton","filter","handleKeyDown","event","toggleButtonOptions","getAllToggleButtons","focussedChild","indexOf","document","activeElement","selectMethod","proxySelectHandler","getNextItemToSelect","currentItem","movingDown","numToggles","length","nextItem","watchDisabledHandler","forEach","removeDisabledFalse","watchFullWidthHandler","fullWidth","watchLoadingHandler","watchMonochromeHandler","monochrome","watchSizeHandler","size","watchThemeHandler","theme","watchTooltipPlacementHandler","tooltipPlacement","watchVariantHandler","variant","selectHandler","tabTarget","allToggles","clickedToggle","id","icChange","emit","detail","selectedOption","toggledOptions","map","opt","toggleButton","componentWillLoad","addEventListener","componentDidLoad","i","toString","tabIndex","classList","add","disconnectedCallback","removeEventListener","toggle","customEv","CustomEvent","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","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} 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?: string = \"Toggle button group\";\n\n /**\n * If `true`, the toggle button group will be set to the disabled state.\n */\n @Prop() disabled: boolean = 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?: boolean = 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?: \"left\" | \"right\" | \"top\";\n\n /**\n * If `true`, the toggle button group will be in loading state.\n */\n @Prop() loading?: boolean = 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?: boolean = false;\n @Watch(\"monochrome\")\n watchMonochromeHandler(): void {\n this.getAllToggleButtons().forEach((el) => {\n el.monochrome = this.monochrome;\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 // tabTarget used in proxySelectHandler\n tabTarget && tabTarget.focus();\n if (this.selectType === \"single\") {\n if (!clickedToggle) {\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 = this.getAllToggleButtons().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 this.selectType === \"multi\" && (this.selectMethod = \"manual\");\n 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 this.setSlottedAria(el);\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 setSlottedAria = (el: HTMLIcToggleButtonElement) => {\n const btn = el.shadowRoot\n .querySelector(\"ic-button\")\n .shadowRoot.querySelector(\"button\") as HTMLButtonElement;\n let aria = btn.getAttribute(\"aria-label\");\n aria += \", \";\n aria += this.accessibleLabel;\n btn.setAttribute(\"aria-label\", aria);\n };\n\n private handleHostFocus = (ev: FocusEvent): void => {\n if (this.loading || this.disabled) {\n return null;\n }\n const el = ev.target as HTMLIcToggleButtonGroupElement;\n const relEl = ev.relatedTarget as HTMLIcToggleButtonElement;\n const toggleButtons = Array.from(el.querySelectorAll(\"ic-toggle-button\"));\n if (\n ((toggleButtons.every((el) => !el.checked) ||\n this.selectType !== \"single\") &&\n this.lastKeyPressed.shift === false) ||\n (toggleButtons.every((el) => !el.checked) &&\n this.lastKeyPressed.shift === true &&\n relEl.tagName == TOGGLE_GROUP)\n ) {\n toggleButtons[0].focus();\n } else if (\n this.lastKeyPressed.shift === false ||\n (this.lastKeyPressed.shift === true && relEl.tagName == TOGGLE_GROUP)\n ) {\n // if checked is true and selectMethod is \"single\", focus that toggle\n const toggledButton = toggleButtons.filter((el) => el.checked);\n toggledButton[0].focus();\n }\n };\n\n // trigger selectHandler when unable to add 'target'\n private proxySelectHandler(toggle: HTMLIcToggleButtonElement): void {\n toggle.checked = true;\n const customEv = new CustomEvent(\"icToggleChecked\", {\n detail: {\n checked: toggle.checked,\n },\n });\n this.selectHandler(customEv, toggle);\n }\n\n private handleKeyDown = (event: KeyboardEvent): void => {\n const toggleButtonOptions = this.getAllToggleButtons();\n const focussedChild = toggleButtonOptions.indexOf(\n toggleButtonOptions.filter((el) => el === document.activeElement)[0]\n );\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowRight\":\n this.selectMethod === \"auto\"\n ? this.proxySelectHandler(\n toggleButtonOptions[this.getNextItemToSelect(focussedChild, true)]\n )\n : toggleButtonOptions[\n this.getNextItemToSelect(focussedChild, true)\n ].focus();\n break;\n case \"ArrowUp\":\n case \"ArrowLeft\":\n this.selectMethod === \"auto\"\n ? this.proxySelectHandler(\n toggleButtonOptions[\n this.getNextItemToSelect(focussedChild, false)\n ]\n )\n : toggleButtonOptions[\n this.getNextItemToSelect(focussedChild, false)\n ].focus();\n break;\n case \"Tab\":\n break;\n }\n };\n\n private getNextItemToSelect = (\n currentItem: number,\n movingDown: boolean\n ): number => {\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(): HTMLIcToggleButtonElement[] {\n return Array.from(this.el.querySelectorAll(\"ic-toggle-button\"));\n }\n\n render() {\n return (\n <Host\n role=\"group\"\n aria-label={this.accessibleLabel}\n tabindex={0}\n class={{\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n [\"ic-toggle-button-group-full-width\"]: this.fullWidth,\n [\"ic-toggle-button-group-loading\"]: this.loading,\n [\"ic-toggle-button-group-disabled\"]: this.disabled,\n [`ic-toggle-button-group-monochrome`]: this.monochrome,\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n }}\n onFocus={this.handleHostFocus}\n >\n <slot></slot>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icSwitchCss","inputIds","Switch","this","inputId","handleChange","checkedState","icChange","emit","checked","value","onFocus","icFocus","onBlur","icBlur","handleFormReset","initiallyChecked","checkedChangeHandler","watchDisabledHandler","removeDisabledFalse","disabled","el","disconnectedCallback","removeFormResetListener","componentWillLoad","addFormResetListener","componentDidLoad","onComponentRequiredPropUndefined","prop","label","propName","setFocus","_a","shadowRoot","querySelector","focus","render","size","name","hideLabel","helperText","theme","isSmall","renderHiddenInput","h","Host","class","htmlFor","for","readonly","getInputDescribedByText","role","type","id","onChange","focusable","viewBox","xmlns","x1","y1","x2","y2","fill","cx","cy","r"],"sources":["src/components/ic-switch/ic-switch.css?tag=ic-switch&encapsulation=shadow","src/components/ic-switch/ic-switch.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: inline-block;\n\n --ic-input-label-text-color: var(--ic-switch-label);\n --ic-input-label-helper-text-color: var(--ic-switch-help-text);\n}\n\ninput {\n overflow: hidden;\n appearance: none;\n}\n\n.ic-switch-container {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--ic-space-xxs);\n cursor: pointer;\n}\n\n.ic-switch-label {\n margin-left: var(--ic-space-xxs);\n margin-bottom: var(--ic-space-sm);\n}\n\n.ic-switch-label-small {\n margin-bottom: 0.625rem;\n}\n\n.ic-switch-toggle {\n display: flex;\n align-items: center;\n justify-content: space-around;\n width: 4rem;\n height: var(--ic-space-xl);\n position: relative;\n border-radius: 100vw;\n background-color: var(--ic-switch-unchecked-bg);\n border: var(--ic-border-width) solid var(--ic-switch-unchecked);\n box-sizing: border-box;\n transition: var(--ic-transition-duration-fast);\n}\n\n.ic-switch-line-break {\n flex: 1 0 100%;\n}\n\n.ic-switch-toggle::before {\n content: \"\";\n width: 1.333rem;\n height: 1.333rem;\n border-radius: 50%;\n position: absolute;\n z-index: 2;\n top: 50%;\n left: 0.333rem;\n transform: translate(0, -50%);\n background-color: var(--ic-switch-unchecked);\n transition: var(--ic-transition-duration-slow);\n}\n\n.ic-switch-icon {\n display: inline-block;\n vertical-align: middle;\n width: 0.625rem;\n height: 0.625rem;\n}\n\n.ic-switch-icon-circle,\n.ic-switch-icon-line {\n stroke-width: 1;\n}\n\n.ic-switch-icon-circle {\n stroke: var(--ic-switch-indicator-off);\n}\n\n.ic-switch-icon-line {\n stroke: var(--ic-switch-indicator-on);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .ic-switch-toggle::before {\n transition-duration: 0ms;\n }\n}\n\n.ic-switch-input:checked + .ic-switch-toggle {\n background-color: var(--ic-switch-checked-bg);\n border: none;\n}\n\n.ic-switch-input:checked + .ic-switch-toggle::before {\n transform: translate(var(--ic-space-xl), -50%);\n background-color: var(--ic-switch-checked);\n}\n\n.ic-switch-input:not([disabled]) + .ic-switch-toggle:hover::before {\n box-shadow: 0 0 0 0.75rem var(--ic-switch-unchecked-bg-hover);\n}\n\n.ic-switch-input:not([disabled]) + .ic-switch-toggle:active::before {\n box-shadow: 0 0 0 0.75rem var(--ic-switch-unchecked-bg-pressed);\n}\n\n.ic-switch-input:not([disabled]):checked + .ic-switch-toggle:hover::before {\n box-shadow: 0 0 0 0.75rem var(--ic-switch-checked-bg-hover);\n}\n\n.ic-switch-input:not([disabled]):checked + .ic-switch-toggle:active::before {\n box-shadow: 0 0 0 0.75rem var(--ic-switch-checked-bg-pressed);\n}\n\n.ic-switch-input:focus:not([disabled]) + .ic-switch-toggle,\n.ic-switch-input:focus-visible:not([disabled]) + .ic-switch-toggle {\n box-shadow: var(--ic-border-focus);\n}\n\n.ic-switch-disabled {\n cursor: default;\n}\n\n.ic-switch-disabled .ic-switch-icon-circle {\n stroke: var(--ic-switch-indicator-off-disabled);\n}\n\n.ic-switch-disabled .ic-switch-icon-line {\n stroke: var(--ic-switch-indicator-on-disabled);\n}\n\n.ic-switch-input:disabled + .ic-switch-toggle {\n background-color: var(--ic-switch-unchecked-bg-disabled);\n border: var(--ic-space-1px) dashed var(--ic-switch-unchecked-outline-disabled);\n}\n\n.ic-switch-input:disabled + .ic-switch-toggle::before {\n background-color: var(--ic-switch-unchecked-disabled);\n}\n\n.ic-switch-input:disabled:checked + .ic-switch-toggle {\n background-color: var(--ic-switch-checked-bg-disabled);\n border: var(--ic-border-width) dashed\n var(--ic-switch-checked-outline-disabled);\n}\n\n.ic-switch-input:disabled:checked + .ic-switch-toggle::before {\n background-color: var(--ic-switch-checked);\n}\n\n.ic-switch-small {\n gap: var(--ic-space-xxxs);\n}\n\n.ic-switch-small .ic-switch-toggle {\n width: var(--ic-space-xxl);\n height: var(--ic-space-lg);\n}\n\n.ic-switch-small .ic-switch-toggle::before {\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n left: var(--ic-space-xxs);\n}\n\n.ic-switch-small .ic-switch-input:checked + .ic-switch-toggle::before {\n transform: translate(var(--ic-space-lg), -50%);\n}\n\n::slotted(*) {\n margin-left: var(--ic-space-sm);\n}\n\n::slotted(svg) {\n fill: var(--ic-switch-icon);\n}\n\n@media (forced-colors: active) {\n .ic-switch-toggle::before,\n .ic-switch-input:checked + .ic-switch-toggle {\n border: var(--ic-border-hc);\n }\n\n .ic-switch-input:focus + .ic-switch-toggle {\n border-color: highlight;\n outline: var(--ic-space-xxxs) solid highlight;\n }\n\n .ic-switch-input:checked + .ic-switch-toggle::before {\n transform: translate(calc(var(--ic-space-xl) - 0.125rem), -50%);\n }\n\n .ic-switch-input:disabled + .ic-switch-toggle,\n .ic-switch-input:disabled:checked + .ic-switch-toggle,\n .ic-switch-input:disabled + .ic-switch-toggle::before {\n border-color: GrayText;\n }\n\n .ic-switch-disabled .ic-switch-icon-circle,\n .ic-switch-disabled .ic-switch-icon-line {\n stroke: GrayText;\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n getInputDescribedByText,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\nimport { IcSwitchChangeEventDetail } from \"./ic-switch.types\";\nimport { IcSizesNoLarge, IcThemeMode } from \"../../utils/types\";\n\nlet inputIds = 0;\n\n/**\n * @slot right-adornment - Content is placed to the right of switch.\n */\n@Component({\n tag: \"ic-switch\",\n styleUrl: \"ic-switch.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Switch {\n private inputId = `ic-switch-input-${inputIds++}`;\n\n @Element() el: HTMLIcSwitchElement;\n\n @State() checkedState: boolean = false;\n @State() initiallyChecked = this.checked;\n\n /**\n * If `true`, the switch will display as checked.\n */\n @Prop() checked?: boolean = false;\n\n @Watch(\"checked\")\n checkedChangeHandler(): void {\n this.checkedState = this.checked;\n }\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\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 aria-label applied to the switch when no visual 'name' is provided.\n */\n @Prop() label!: string;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name?: string = this.inputId;\n\n /**\n * The size of the switch component.\n */\n @Prop() size?: IcSizesNoLarge = \"medium\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The value of the toggle does not mean if it's checked or not, use the `checked`\n * property for that.\n *\n * The value of a toggle is analogous to the value of a `<input type=\"checkbox\">`,\n * it's only used when the toggle participates in a native `<form>`.\n */\n @Prop() value?: string | null = \"on\";\n\n /**\n * Emitted when the toggle loses focus.\n */\n @Event() icBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the value property has changed.\n */\n @Event() icChange!: EventEmitter<IcSwitchChangeEventDetail>;\n\n /**\n * Emitted when the toggle has focus.\n */\n @Event() icFocus!: EventEmitter<void>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n this.checkedState = this.checked;\n addFormResetListener(this.el, this.handleFormReset);\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Switch\"\n );\n }\n\n /**\n * Sets focus on the switch.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.el.shadowRoot.querySelector(\"input\")?.focus();\n }\n\n private handleChange = () => {\n this.checkedState = !this.checkedState;\n this.icChange.emit({\n checked: this.checkedState,\n value: this.value,\n });\n };\n\n private onFocus = () => {\n this.icFocus.emit();\n };\n\n private onBlur = () => {\n this.icBlur.emit();\n };\n\n private handleFormReset = (): void => {\n this.checkedState = this.initiallyChecked;\n };\n\n render() {\n const {\n label,\n checkedState,\n size,\n disabled,\n name,\n value,\n hideLabel,\n helperText,\n inputId,\n theme,\n } = this;\n\n const isSmall = size === \"small\";\n\n renderHiddenInput(true, this.el, name, checkedState ? value : \"\", disabled);\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <label\n class={{\n \"ic-switch-container\": true,\n \"ic-switch-disabled\": disabled,\n \"ic-switch-small\": isSmall,\n }}\n htmlFor={inputId}\n >\n {!hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n readonly={true}\n disabled={disabled}\n class={{\n \"ic-switch-label\": true,\n \"ic-switch-label-small\": isSmall,\n }}\n ></ic-input-label>\n )}\n {!hideLabel && <span class=\"ic-switch-line-break\"></span>}\n <input\n checked={checkedState}\n disabled={disabled}\n aria-label={label}\n aria-checked={checkedState ? \"true\" : \"false\"}\n aria-describedby={getInputDescribedByText(\n inputId,\n helperText !== \"\",\n false\n )}\n role=\"switch\"\n class=\"ic-switch-input\"\n type=\"checkbox\"\n name=\"toggle\"\n id={inputId}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onChange={this.handleChange}\n />\n <span class=\"ic-switch-toggle\">\n <svg\n class=\"ic-switch-icon\"\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 10 10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <line\n class=\"ic-switch-icon-line\"\n x1=\"9\"\n y1={isSmall ? \"2\" : \"1\"}\n x2=\"9\"\n y2={isSmall ? \"8\" : \"9\"}\n />\n </svg>\n <svg\n class=\"ic-switch-icon\"\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 10 10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"ic-switch-icon-circle\"\n fill=\"none\"\n cx=\"5\"\n cy=\"5\"\n r={isSmall ? \"3.335\" : \"4.445\"}\n />\n </svg>\n </span>\n <slot name=\"right-adornment\"></slot>\n </label>\n </Host>\n );\n }\n}\n"],"mappings":"kIAAA,MAAMA,EAAc,y9MCuBpB,IAAIC,EAAW,E,MAYFC,EAAM,M,4HACTC,KAAAC,QAAU,mBAAmBH,MAyG7BE,KAAAE,aAAe,KACrBF,KAAKG,cAAgBH,KAAKG,aAC1BH,KAAKI,SAASC,KAAK,CACjBC,QAASN,KAAKG,aACdI,MAAOP,KAAKO,OACZ,EAGIP,KAAAQ,QAAU,KAChBR,KAAKS,QAAQJ,MAAM,EAGbL,KAAAU,OAAS,KACfV,KAAKW,OAAON,MAAM,EAGZL,KAAAY,gBAAkB,KACxBZ,KAAKG,aAAeH,KAAKa,gBAAgB,E,kBAtHV,M,sBACLb,KAAKM,Q,aAKL,M,cAUC,M,gBASC,G,eAKA,M,+BAUNN,KAAKC,Q,UAKG,S,WAKF,U,WASE,I,CAlDhC,oBAAAa,GACEd,KAAKG,aAAeH,KAAKM,O,CAQ3B,oBAAAS,GACEC,EAAoBhB,KAAKiB,SAAUjB,KAAKkB,G,CAyD1C,oBAAAC,GACEC,EAAwBpB,KAAKkB,GAAIlB,KAAKY,gB,CAGxC,iBAAAS,GACErB,KAAKG,aAAeH,KAAKM,QACzBgB,EAAqBtB,KAAKkB,GAAIlB,KAAKY,iBACnCI,EAAoBhB,KAAKiB,SAAUjB,KAAKkB,G,CAG1C,gBAAAK,GACEC,EACE,CAAC,CAAEC,KAAMzB,KAAK0B,MAAOC,SAAU,UAC/B,S,CAQJ,cAAMC,G,OACJC,EAAA7B,KAAKkB,GAAGY,WAAWC,cAAc,YAAQ,MAAAF,SAAA,SAAAA,EAAEG,O,CAuB7C,MAAAC,GACE,MAAMP,MACJA,EAAKvB,aACLA,EAAY+B,KACZA,EAAIjB,SACJA,EAAQkB,KACRA,EAAI5B,MACJA,EAAK6B,UACLA,EAASC,WACTA,EAAUpC,QACVA,EAAOqC,MACPA,GACEtC,KAEJ,MAAMuC,EAAUL,IAAS,QAEzBM,EAAkB,KAAMxC,KAAKkB,GAAIiB,EAAMhC,EAAeI,EAAQ,GAAIU,GAElE,OACEwB,EAACC,EAAI,CACHC,MAAO,CACL,CAAC,YAAYL,KAAUA,IAAU,YAGnCG,EAAA,SACEE,MAAO,CACL,sBAAuB,KACvB,qBAAsB1B,EACtB,kBAAmBsB,GAErBK,QAAS3C,IAEPmC,GACAK,EAAA,kBACEI,IAAK5C,EACLyB,MAAOA,EACPW,WAAYA,EACZS,SAAU,KACV7B,SAAUA,EACV0B,MAAO,CACL,kBAAmB,KACnB,wBAAyBJ,MAI7BH,GAAaK,EAAA,QAAME,MAAM,yBAC3BF,EAAA,SACEnC,QAASH,EACTc,SAAUA,EAAQ,aACNS,EAAK,eACHvB,EAAe,OAAS,QAAO,mBAC3B4C,EAChB9C,EACAoC,IAAe,GACf,OAEFW,KAAK,SACLL,MAAM,kBACNM,KAAK,WACLd,KAAK,SACLe,GAAIjD,EACJO,QAASR,KAAKQ,QACdE,OAAQV,KAAKU,OACbyC,SAAUnD,KAAKE,eAEjBuC,EAAA,QAAME,MAAM,oBACVF,EAAA,OACEE,MAAM,iBAAgB,cACV,OACZS,UAAU,QACVC,QAAQ,YACRC,MAAM,8BAENb,EAAA,QACEE,MAAM,sBACNY,GAAG,IACHC,GAAIjB,EAAU,IAAM,IACpBkB,GAAG,IACHC,GAAInB,EAAU,IAAM,OAGxBE,EAAA,OACEE,MAAM,iBAAgB,cACV,OACZS,UAAU,QACVC,QAAQ,YACRC,MAAM,8BAENb,EAAA,UACEE,MAAM,wBACNgB,KAAK,OACLC,GAAG,IACHC,GAAG,IACHC,EAAGvB,EAAU,QAAU,YAI7BE,EAAA,QAAMN,KAAK,qB"}
|
package/dist/core/p-cda4aca9.js
DELETED
@@ -1,2 +0,0 @@
|
|
1
|
-
import{f as n}from"./p-6b5e91e2.js";var t;(function(n){n["Warning"]="warning";n["Error"]="error";n["Success"]="success"})(t||(t={}));var e;(function(n){n["Default"]="default";n["Dark"]="dark";n["Light"]="light"})(e||(e={}));const i=`<svg aria-labelledby="error-title" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000">\n <title id="error-title">Error</title>\n <g id="close-octagon">\n <path id="Vector" d="M8.77 3L3.5 8.27V15.73L8.77 21H16.23L21.5 15.73V8.27L16.23 3M8.91 7L12.5 10.59L16.09 7L17.5 8.41L13.91 12L17.5 15.59L16.09 17L12.5 13.41L8.91 17L7.5 15.59L11.09 12L7.5 8.41" />\n </g>\n</svg>\n`;const a=`<svg aria-labelledby="info-title" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000">\n <title id="info-title">For your information</title>\n <g id="info">\n <path id="Vector" d="M12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM12 17C11.45 17 11 16.55 11 16V12C11 11.45 11.45 11 12 11C12.55 11 13 11.45 13 12V16C13 16.55 12.55 17 12 17ZM13 9H11V7H13V9Z" />\n </g>\n</svg>\n`;const r=`<svg aria-labelledby="neutral-title" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000">\n<title id="neutral-title">Neutral</title>\n <g id="Icon">\n <path id="Vector" d="M19.5 3H5.5C4.4 3 3.5 3.9 3.5 5V19C3.5 20.1 4.4 21 5.5 21H19.5C20.6 21 21.5 20.1 21.5 19V5C21.5 3.9 20.6 3 19.5 3ZM12.51 18C11.81 18 11.25 17.44 11.25 16.74C11.25 16.03 11.81 15.49 12.51 15.49C13.22 15.49 13.76 16.03 13.76 16.74C13.75 17.43 13.22 18 12.51 18ZM15.52 10.6C14.76 11.71 14.04 12.06 13.65 12.77C13.55 12.95 13.49 13.09 13.46 13.4C13.41 13.85 13.01 14.18 12.56 14.18H12.5C11.98 14.18 11.57 13.74 11.62 13.22C11.65 12.88 11.73 12.53 11.92 12.19C12.41 11.32 13.34 10.8 13.88 10.03C14.45 9.22 14.13 7.7 12.51 7.7C11.8 7.7 11.33 8.06 11.04 8.49C10.79 8.85 10.35 9.02 9.94 8.85C9.41 8.64 9.22 8 9.54 7.54C10.15 6.65 11.17 6 12.49 6C13.97 6 14.98 6.67 15.5 7.52C15.94 8.24 16.2 9.59 15.52 10.6Z" />\n </g>\n</svg>\n`;const o=`<svg aria-labelledby="success-title" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000">\n <title id="success-title">Success</title>\n <g id="check_circle">\n <path id="Vector" d="M12.5 2C6.98 2 2.5 6.48 2.5 12C2.5 17.52 6.98 22 12.5 22C18.02 22 22.5 17.52 22.5 12C22.5 6.48 18.02 2 12.5 2ZM9.79 16.29L6.2 12.7C5.81 12.31 5.81 11.68 6.2 11.29C6.59 10.9 7.22 10.9 7.61 11.29L10.5 14.17L17.38 7.29C17.77 6.9 18.4 6.9 18.79 7.29C19.18 7.68 19.18 8.31 18.79 8.7L11.2 16.29C10.82 16.68 10.18 16.68 9.79 16.29Z" />\n </g>\n</svg>\n`;const s=`<svg aria-labelledby="warning-title" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000">\n <title id="warning-title">Warning</title>\n <g id="warning">\n <path id="Vector" d="M4.47 20.5037H19.53C21.07 20.5037 22.03 18.8337 21.26 17.5037L13.73 4.49375C12.96 3.16375 11.04 3.16375 10.27 4.49375L2.74 17.5037C1.97 18.8337 2.93 20.5037 4.47 20.5037ZM12 13.5037C11.45 13.5037 11 13.0537 11 12.5037V10.5037C11 9.95375 11.45 9.50375 12 9.50375C12.55 9.50375 13 9.95375 13 10.5037V12.5037C13 13.0537 12.55 13.5037 12 13.5037ZM13 17.5037H11V15.5037H13V17.5037Z" />\n </g>\n</svg>\n`;const c={neutral:{icon:r,ariaLabel:"Neutral"},info:{icon:a,ariaLabel:"For your information"},warning:{icon:s,ariaLabel:"Warning"},error:{icon:i,ariaLabel:"Error"},success:{icon:o,ariaLabel:"Success"}};const l=["aria-atomic","aria-autocomplete","aria-busy","aria-controls","aria-current","aria-describedby","aria-description","aria-details","aria-disabled","aria-dropeffect","aria-errormessage","aria-expanded","aria-flowto","aria-grabbed","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-live","aria-owns","aria-relevant","aria-roledescription"];const d={XS:576,S:768,M:992,L:1200,XL:99999};const u=["ic-hero","ic-top-navigation","ic-footer","ic-side-navigation","ic-alert"];const p=["ic-alert"];const f={"ic-alert":["ic-link","ic-button"]};const v=136.701;const g=130;const b=133.3505;const C="ic-input";const w="input.ic-input";const m=(n,t=[])=>{const e={};t.forEach((t=>{if(n.hasAttribute(t)){const i=n.getAttribute(t);if(i!==null){e[t]=i}n.removeAttribute(t)}}));return e};const y=(n,t)=>{const e=n._original||n;return{_original:n,emit:L(e.emit.bind(e),t)}};const L=(n,t=0)=>{let e;return(...i)=>{clearTimeout(e);e=setTimeout(n,t,...i)}};const h=(n,t,e,i,a)=>{if(e!==undefined&&(n||N(t))){const n=t.querySelectorAll(w);const r=Array.from(n);const o=r.filter((n=>t===n.parentElement));let s=o[0];if(s===null||s===undefined){s=t.ownerDocument.createElement("input");s.type="hidden";s.classList.add(C);t.appendChild(s)}s.disabled=a;s.name=e;if(i instanceof Date){s.value=i?i.toISOString():null}else{s.value=i||""}}};const x=(n,t,e,i,a,r,o)=>{if(i!==undefined&&N(t)){const s=t.querySelectorAll(w);const c=Array.from(s);const l=c.filter((n=>t===n.parentElement));let d=l[0];if(d===null||d===undefined){d=t.ownerDocument.createElement("input");d.classList.add(C);t.appendChild(d)}d.type="file";d.hidden=true;d.multiple=e;d.name=i;d.files=a;d.disabled=r;d.accept=o;d.onchange=()=>{n.emit(d.files)};d.click()}};const M=n=>{const t=n.querySelectorAll("input.ic-input");const e=Array.from(t);const i=e.filter((t=>n===t.parentElement));const a=i[0];a===null||a===void 0?void 0:a.remove()};const N=n=>!!n.shadowRoot&&!!n.attachShadow;const V=n=>n+"-helper-text";const I=n=>n+"-validation-text";const A=(n,t,e)=>`${t?V(n):""} ${e?I(n):""}`.trim();const k=(n,t=null)=>{var i;const a=n.parentElement||n.getRootNode().host.parentElement;const r=a.closest(u.join(","));if(r!==null){const a=r.tagName.toLowerCase();const o=n.tagName.toLowerCase();if((i=f[a])===null||i===void 0?void 0:i.includes(o)){return e.Default}else if(t!==null&&!p.includes(a)){return t}else if(r.classList.contains(`${a}-${e.Dark}`)||r.classList.contains(e.Dark)){return e.Dark}return e.Light}return e.Default};const $=()=>"maxTouchPoints"in navigator&&"userAgent"in navigator?navigator.maxTouchPoints>0&&/iPad|iPhone|iPod|Android|webOS|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent):false;const T=(n,t)=>{const e=document.createElement("button");e.setAttribute("type",t.type);e.style.display="none";n.appendChild(e);e.click();e.remove()};const Z=n=>n?n.trim().length===0:true;const E=n=>n!==undefined?n:null;const H=(n,t,e="value",i="label")=>{const a=[];if(t.length>0&&t.map){t.map((n=>{if(n.children){n.children.map((n=>a.push(n)))}else{a.push(n)}}));const r=a.find((t=>t[e]===n));if(r!==undefined)return r[i]}return undefined};const O=(n,t,e,i,a="label")=>n.filter((n=>{var r;const o=n[a].toLowerCase();const s=(r=n.description)===null||r===void 0?void 0:r.toLowerCase();const c=e.toLowerCase();return i==="anywhere"?t?o.includes(c)||(s===null||s===void 0?void 0:s.includes(c)):o.includes(c):t?o.startsWith(c)||(s===null||s===void 0?void 0:s.startsWith(c)):o.startsWith(c)}));const S=n=>{const t=[];if(n.length>0&&n.map){n.map((n=>{if(n.children){n.children.map((n=>t.push(n)))}else{t.push(n)}}))}return t.length};const P=n=>window.matchMedia(`(max-width: ${n}px)`).matches;const B=()=>{if(P(j.S)){return j.S}if(P(j.M)){return j.M}if(P(j.L)){return j.L}if(P(j.XL)){return j.XL}return j.UNDEFINED};const G=n=>getComputedStyle(document.documentElement).getPropertyValue(n);const D=()=>{const n=G("--ic-brand-color-primary-r");const t=G("--ic-brand-color-primary-g");const e=G("--ic-brand-color-primary-b");return(parseInt(n)*299+parseInt(t)*587+parseInt(e)*114)/1e3};const F=(n=D())=>n>b?e.Dark:e.Light;const R=(n,t)=>{if(n&&n.querySelector){return n.querySelector(`[slot="${t}"]`)}return null};const W=(n,t)=>R(n,t)!==null;const X=(n,t)=>{const e=R(n,t);if(e){return U(e)}return null};const U=n=>{const t=n.firstElementChild;if(t!==null){const e=t.assignedElements?t.assignedElements():t.childNodes;return e.length?e:n.tagName?[n]:null}else{return n===null?null:[n]}};const _=({parentElement:n})=>{let t={navType:"",parent:null};switch(n.tagName){case"IC-NAVIGATION-GROUP":t=_(n);break;case"IC-TOP-NAVIGATION":t={navType:"top",parent:n};break;case"IC-SIDE-NAVIGATION":t={navType:"side",parent:n};break;case"IC-PAGE-HEADER":t={navType:"page-header",parent:null};break}return t};const j={XS:Number(G("--ic-breakpoint-xs").replace("px","")),S:Number(G("--ic-breakpoint-sm").replace("px","")),M:Number(G("--ic-breakpoint-md").replace("px","")),L:Number(G("--ic-breakpoint-lg").replace("px","")),XL:Number(G("--ic-breakpoint-xl").replace("px","")),UNDEFINED:1200};const q=(n,t)=>!!n&&!t;const z=({children:n},t)=>Array.from(n).some((n=>n.getAttribute("slot")===t));const J=(n,t,e)=>{if(n===undefined&&t!==n){e()}};const K=(n,t)=>{n.forEach((({prop:n,propName:e})=>{if(n===null||n===undefined){console.error(`No ${e} specified for ${t} component - prop '${e}' (web components) / '${Q(e)}' (react) required`)}}))};const Q=n=>n.toLowerCase().split("-").map(((n,t)=>t===0?n:`${n.substring(0,1).toUpperCase()}${n.substring(1)}`)).join("");const Y=n=>{if(typeof window!=="undefined"&&typeof window.ResizeObserver!=="undefined"){n()}};const nn=n=>parseInt(n,16);const tn=n=>{const t=n.replace("#","").split("").map((n=>n.repeat(2)));return{r:nn(n.length===4?t[0]:n.slice(1,3)),g:nn(n.length===4?t[1]:n.slice(3,5)),b:nn(n.length===4?t[2]:n.slice(5)),a:1}};const en=n=>{const t=n.slice(3,4).toLowerCase()==="a";const e=n.substring(t?5:4,n.length-1).replace(/ /g,"").split(",").map(Number);return{r:e[0],g:e[1],b:e[2],a:t?e[3]:1}};const an=({scrollWidth:n,clientWidth:t})=>n>t;const rn=()=>!!document.querySelector("ic-classification-banner:not([inline='true'])");const on=(n,t)=>{var e;(e=n.closest("FORM"))===null||e===void 0?void 0:e.addEventListener("reset",t)};const sn=(n,t)=>{var e;(e=n.closest("FORM"))===null||e===void 0?void 0:e.removeEventListener("reset",t)};const cn=(n,t=16)=>`${1/t*parseInt(n)}rem`;const ln=(n,t)=>{if(!n){t.removeAttribute("disabled")}};const dn=()=>window.navigator.userAgent.toUpperCase().indexOf("MAC")>=0;const un=n=>{const t=n===null||n===void 0?void 0:n.slice(0,1).toLowerCase();return t==="#"?tn(n):t==="r"?en(n):null};const pn=n=>n.charAt(0).toUpperCase()+n.slice(1);const fn=(n,t,e)=>{const i=n=>Array.from(n).some((n=>Array.isArray(e)?e.some((t=>n.slot===t)):n.slot===e));return i(n)||i(t)};const vn=n=>!!n.closest(".ag-cell")&&!!n.closest(".ag-root");const gn=n=>{var t;const e=(n===null||n===void 0?void 0:n.tagName)+"-GROUP";return((t=n===null||n===void 0?void 0:n.parentElement)===null||t===void 0?void 0:t.tagName)===e};const bn=(n,t)=>n.some((({type:n,addedNodes:e,removedNodes:i})=>n==="childList"?fn(e,i,t):false));const Cn=(t,e,i)=>{if(bn(t,e)){n(i)}};export{x as $,O as A,T as B,y as C,j as D,H as E,fn as F,S as G,$ as H,e as I,t as J,Z as K,cn as L,D as M,v as N,R as O,gn as P,X as Q,pn as R,o as S,dn as T,an as U,c as V,g as W,V as X,I as Y,s as Z,i as _,Cn as a,K as b,un as c,E as d,B as e,Y as f,F as g,k as h,z as i,on as j,sn as k,h as l,M as m,A as n,J as o,q as p,vn as q,ln as r,W as s,U as t,d as u,rn as v,m as w,l as x,_ as y,G as z};
|
2
|
-
//# sourceMappingURL=p-cda4aca9.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["IcInformationStatus","IcBrandForegroundEnum","VARIANT_ICONS","neutral","icon","neutralIcon","ariaLabel","info","infoIcon","warning","warningIcon","error","errorIcon","success","successIcon","IC_INHERITED_ARIA","IC_DEVICE_SIZES","XS","S","M","L","XL","IC_BLOCK_COLOR_COMPONENTS","IC_FIXED_COLOR_COMPONENTS","IC_BLOCK_COLOR_EXCEPTIONS","BLACK_MIN_COLOR_BRIGHTNESS","WHITE_MAX_COLOR_BRIGHTNESS","DARK_MODE_THRESHOLD","icInput","linkIcInput","inheritAttributes","element","attributes","attributeObject","forEach","attr","hasAttribute","value","getAttribute","removeAttribute","debounceEvent","event","wait","original","_original","emit","debounce","bind","func","timer","args","clearTimeout","setTimeout","renderHiddenInput","always","container","name","disabled","undefined","hasShadowDom","inputs","querySelectorAll","inputEls","Array","from","filtered","filter","el","parentElement","input","ownerDocument","createElement","type","classList","add","appendChild","Date","toISOString","renderFileHiddenInput","multiple","accept","hidden","files","onchange","click","removeHiddenInput","remove","shadowRoot","attachShadow","getInputHelperTextID","id","getInputValidationTextID","getInputDescribedByText","inputId","helperText","validationText","trim","getBrandFromContext","brandFromEvent","getRootNode","host","blockColorParent","closest","join","parentTag","tagName","toLowerCase","currentTag","_a","includes","Default","contains","Dark","Light","isMobileOrTablet","navigator","maxTouchPoints","test","userAgent","handleHiddenFormButtonClick","form","button","hiddenFormButton","document","setAttribute","style","display","isEmptyString","length","isPropDefined","prop","getLabelFromValue","options","valueField","labelField","ungroupedOptions","map","option","children","push","matchingValue","find","getFilteredMenuOptions","includeDescriptions","searchString","position","label","description","lowerSearchString","startsWith","getOptionsWithoutGroupTitlesCount","optionsWithoutGroupTitles","deviceSizeMatches","size","window","matchMedia","matches","getCurrentDeviceSize","DEVICE_SIZES","UNDEFINED","getCssProperty","cssVar","getComputedStyle","documentElement","getPropertyValue","getBrandColorBrightness","themeRed","themeGreen","themeBlue","parseInt","getBrandForegroundAppearance","brightness","getSlot","querySelector","slotHasContent","getSlotContent","slot","getSlotElements","slotContent","firstElementChild","elements","assignedElements","childNodes","getNavItemParentDetails","navType","parent","Number","replace","hasValidationStatus","status","isSlotUsed","slotName","some","child","onComponentPropUndefinedChange","oldValue","newValue","callback","onComponentRequiredPropUndefined","props","component","propName","console","kebabToCamelCase","kebabCase","split","word","index","substring","toUpperCase","checkResizeObserver","callbackFn","ResizeObserver","hex2dec","v","hexToRgba","hex","hexChars","char","repeat","r","slice","g","b","a","rgbaStrToObj","rgbaStr","isRGBA","rgbValues","elementOverflowsX","scrollWidth","clientWidth","hasClassificationBanner","addFormResetListener","addEventListener","removeFormResetListener","removeEventListener","pxToRem","px","base","removeDisabledFalse","isMacDevice","indexOf","convertToRGBA","color","firstChar","capitalize","text","charAt","checkSlotInChildMutations","addedNodes","removedNodes","hasSlot","nodeList","node","isArray","isElInAGGrid","isSlottedInGroup","hasDynamicChildSlots","mutationList","slotNames","renderDynamicChildSlots","ref","forceUpdate"],"sources":["src/utils/types.ts","src/utils/constants.ts","src/utils/helpers.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nexport type IcFocusableComponents =\n | HTMLIcBreadcrumbElement\n | HTMLIcButtonElement\n | HTMLIcCardVerticalElement\n | HTMLIcCheckboxElement\n | HTMLIcChipElement\n | HTMLIcLinkElement\n | HTMLIcNavigationButtonElement\n | HTMLIcNavigationGroupElement\n | HTMLIcNavigationItemElement\n | HTMLIcRadioOptionElement\n | HTMLIcSearchBarElement\n | HTMLIcSelectElement\n | HTMLIcSwitchElement\n | HTMLIcTabElement\n | HTMLIcTextFieldElement;\n\nexport type IcStatusVariants =\n | \"neutral\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"success\";\n\nexport enum IcInformationStatus {\n Warning = \"warning\",\n Error = \"error\",\n Success = \"success\",\n}\n\nexport type IcSizes = \"medium\" | \"large\" | \"small\";\n\nexport type IcSizesNoLarge = \"medium\" | \"small\";\n\nexport type IcInformationStatusOrEmpty = \"warning\" | \"error\" | \"success\" | \"\";\n\nexport type IcNavType = \"side\" | \"top\" | \"page-header\";\n\n// From: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete\nexport type IcAutocompleteTypes =\n | \"on\"\n | \"off\"\n | \"name\"\n | \"honorific-prefix\"\n | \"given-name\"\n | \"additional-name\"\n | \"family-name\"\n | \"honorific-suffix\"\n | \"nickname\"\n | \"email\"\n | \"username\"\n | \"new-password\"\n | \"current-password\"\n | \"one-time-code\"\n | \"organization-title\"\n | \"organization\"\n | \"street-address\"\n | \"address-line1\"\n | \"address-line2\"\n | \"address-line3\"\n | \"address-level4\"\n | \"address-level3\"\n | \"address-level2\"\n | \"address-level1\"\n | \"country\"\n | \"country-name\"\n | \"postal-code\"\n | \"cc-name\"\n | \"cc-given-name\"\n | \"cc-additional-name\"\n | \"cc-family-name\"\n | \"cc-family-name\"\n | \"cc-number\"\n | \"cc-exp\"\n | \"cc-exp-month\"\n | \"cc-exp-year\"\n | \"cc-csc\"\n | \"cc-type\"\n | \"transaction-currency\"\n | \"transaction-amount\"\n | \"language\"\n | \"bday\"\n | \"bday-day\"\n | \"bday-month\"\n | \"bday-year\"\n | \"sex\"\n | \"tel\"\n | \"tel-country-code\"\n | \"tel-national\"\n | \"tel-area-code\"\n | \"tel-local\"\n | \"tel-extension\"\n | \"impp\"\n | \"url\"\n | \"photo\";\n\nexport type IcAlignment = \"left\" | \"center\" | \"full-width\";\n\nexport enum IcBrandForegroundEnum {\n Default = \"default\",\n Dark = \"dark\",\n Light = \"light\",\n}\n\nexport type IcThemeMode = \"dark\" | \"light\" | \"inherit\";\n\nexport type IcBrandForeground = \"default\" | \"dark\" | \"light\";\n\nexport type IcBrandForegroundNoDefault = \"dark\" | \"light\";\n\nexport type IcBrand = {\n mode: IcBrandForeground;\n color: IcColorRGB;\n};\n\nexport type IcAdditionalFieldTypes = \"static\" | \"dynamic\";\n\nexport type IcColorRGB = {\n r: number;\n g: number;\n b: number;\n};\n\nexport type IcColorRGBA = IcColorRGB & {\n a: number;\n};\n\nexport type IcActivationTypes = \"automatic\" | \"manual\";\n\nexport type IcAutocorrectStates = \"on\" | \"off\";\n\nexport type IcNavParentDetails = {\n navType: IcNavType | \"\";\n parent: HTMLElement;\n};\n\nexport type IcTypographyVariants =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"subtitle-large\"\n | \"subtitle-small\"\n | \"body\"\n | \"label\"\n | \"label-uppercase\"\n | \"caption\"\n | \"caption-uppercase\"\n | \"code-large\"\n | \"code-small\"\n | \"code-extra-small\"\n | \"badge\"\n | \"badge-small\";\n\n/**\n * @interface IcMenuOption\n * @field {string} A label field to options. Defaults to \"label\", but can have any custom name.\n * @field {string} A value field to options. Defaults to \"value\", but can have any custom name.\n */\nexport interface IcMenuOption {\n description?: string;\n disabled?: boolean;\n recommended?: boolean;\n children?: IcMenuOption[];\n loading?: boolean;\n timedOut?: boolean;\n [key: string]: any;\n element?: {\n component: any;\n ariaLabel: string;\n };\n icon?: any;\n}\n\nexport type IcSearchMatchPositions = \"start\" | \"anywhere\";\n\nexport type IcCallbackFunctionNoReturn = (...args: unknown[]) => void;\n\nexport type IcRequiredPropsTypes =\n | string\n | boolean\n | number\n | HTMLElement\n | IcMenuOption[];\n\nexport type IcPropObject = { prop: IcRequiredPropsTypes; propName: string };\n\nexport type IcRelatedTarget = EventTarget | undefined;\n\nexport type IcOrientation = \"horizontal\" | \"vertical\";\n\nexport type IcEmphasisType = \"filled\" | \"outlined\";\n\nexport interface IcValueEventDetail {\n value: string | string[];\n keyPressed?: string;\n}\n\nexport interface IcBlurEventDetail {\n relatedTarget: IcRelatedTarget;\n}\n\nexport type IcSelectTypes = \"single\" | \"multi\";\n\nexport type IcSelectMethodTypes = \"auto\" | \"manual\";\n\nexport type IcDeviceSizes = 0 | 576 | 768 | 992 | 1200;\n\ntype RGB = `rgb(${string})`;\ntype RGBA = `rgba(${string})`;\ntype HEX = `#${string}`;\n\nexport type IcColor = RGB | RGBA | HEX;\n\nexport type IcIconPlacementOptions = \"left\" | \"right\" | \"top\";\n\nexport type IcButtonTooltipPlacement = \"top\" | \"right\" | \"bottom\" | \"left\";\n","import errorIcon from \"../assets/error-icon.svg\";\nimport infoIcon from \"../assets/info-icon.svg\";\nimport neutralIcon from \"../assets/neutral-icon.svg\";\nimport successIcon from \"../assets/success-icon.svg\";\nimport warningIcon from \"../assets/warning-icon.svg\";\n\n// Global status icons\nexport const VARIANT_ICONS = {\n neutral: {\n icon: neutralIcon,\n ariaLabel: \"Neutral\",\n },\n info: {\n icon: infoIcon,\n ariaLabel: \"For your information\",\n },\n warning: {\n icon: warningIcon,\n ariaLabel: \"Warning\",\n },\n error: {\n icon: errorIcon,\n ariaLabel: \"Error\",\n },\n success: {\n icon: successIcon,\n ariaLabel: \"Success\",\n },\n};\n\n// Global ARIA attributes\nexport const IC_INHERITED_ARIA = [\n \"aria-atomic\",\n \"aria-autocomplete\",\n \"aria-busy\",\n \"aria-controls\",\n \"aria-current\",\n \"aria-describedby\",\n \"aria-description\",\n \"aria-details\",\n \"aria-disabled\",\n \"aria-dropeffect\",\n \"aria-errormessage\",\n \"aria-expanded\",\n \"aria-flowto\",\n \"aria-grabbed\",\n \"aria-haspopup\",\n \"aria-hidden\",\n \"aria-invalid\",\n \"aria-keyshortcuts\",\n \"aria-label\",\n \"aria-labelledby\",\n \"aria-live\",\n \"aria-owns\",\n \"aria-relevant\",\n \"aria-roledescription\",\n];\n\nexport const IC_DEVICE_SIZES = {\n XS: 576,\n S: 768,\n M: 992,\n L: 1200,\n XL: 99999,\n};\n\nexport const IC_BLOCK_COLOR_COMPONENTS = [\n \"ic-hero\",\n \"ic-top-navigation\",\n \"ic-footer\",\n \"ic-side-navigation\",\n \"ic-alert\",\n];\n\nexport const IC_FIXED_COLOR_COMPONENTS = [\"ic-alert\"];\n\nexport interface IcColorExceptions {\n [details: string]: string[];\n}\n\nexport const IC_BLOCK_COLOR_EXCEPTIONS: IcColorExceptions = {\n \"ic-alert\": [\"ic-link\", \"ic-button\"],\n};\n\n/* Range within which the chosen theme colour would not have a sufficient brightness difference with either of the black or white foreground colours\n * The brightness difference must be greater than 125 to provide good colour visibility\n * Calculated by:\n * - Using the brightness formula for both colours: https://www.w3.org/TR/AERT/#color-contrast\n * - Adding 125 to the brightness of the black foreground colour - RGB(11, 12, 12)\n * - Subtracting 125 from the brightness of the white foreground colour - RGB(255, 255, 255)\n */\nexport const BLACK_MIN_COLOR_BRIGHTNESS = 136.701;\nexport const WHITE_MAX_COLOR_BRIGHTNESS = 130;\n","import { EventEmitter, forceUpdate } from \"@stencil/core\";\nimport {\n IcCallbackFunctionNoReturn,\n IcInformationStatusOrEmpty,\n IcNavParentDetails,\n IcPropObject,\n IcSearchMatchPositions,\n IcColorRGBA,\n IcDeviceSizes,\n IcColor,\n IcBrandForegroundNoDefault,\n} from \"./types\";\n\nimport {\n IcMenuOption,\n IcBrandForeground,\n IcBrandForegroundEnum,\n} from \"../utils/types\";\nimport {\n IC_BLOCK_COLOR_COMPONENTS,\n IC_BLOCK_COLOR_EXCEPTIONS,\n IC_FIXED_COLOR_COMPONENTS,\n} from \"./constants\";\n\nconst DARK_MODE_THRESHOLD = 133.3505;\nconst icInput = \"ic-input\";\nconst linkIcInput = \"input.ic-input\";\n\n/**\n * converts an enum of strings into an array of strings\n */\nexport const stringEnumToArray = (\n theEnum: Record<string, string | number>\n): string[] => {\n const arr: string[] = [];\n Object.values(theEnum).forEach((val) => {\n if (isNaN(Number(val))) {\n const str = val as string;\n arr.push(str);\n }\n });\n return arr;\n};\n\n/**\n * Used to inherit global attributes set on the host. Called in componentWillLoad and assigned\n * to a variable that is later used in the render function.\n *\n * This does not need to be reactive as changing attributes on the host element\n * does not trigger a re-render.\n */\nexport const inheritAttributes = (\n element: HTMLElement,\n attributes: string[] = []\n): { [key: string]: string } => {\n const attributeObject: { [key: string]: string } = {};\n\n attributes.forEach((attr) => {\n if (element.hasAttribute(attr)) {\n const value = element.getAttribute(attr);\n if (value !== null) {\n attributeObject[attr] = value;\n }\n element.removeAttribute(attr);\n }\n });\n\n return attributeObject;\n};\n\nexport const debounceEvent = (\n event: EventEmitter,\n wait: number\n): EventEmitter => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const original = (event as any)._original || event;\n return {\n _original: event,\n emit: debounce(original.emit.bind(original), wait),\n } as EventEmitter;\n};\n\nexport const debounce = (\n func: (...args: unknown[]) => void,\n wait = 0\n): unknown => {\n let timer: ReturnType<typeof setTimeout>;\n return (...args: unknown[]) => {\n clearTimeout(timer);\n timer = setTimeout(func, wait, ...args);\n };\n};\n\n/**\n * This method is used to add a hidden input to a host element that contains\n * a Shadow DOM. It does not add the input inside of the Shadow root which\n * allows it to be picked up inside of forms. It should contain the same\n * values as the host element.\n *\n * @param always Add a hidden input even if the container does not use Shadow\n * @param container The element where the input will be added\n * @param name The name of the input\n * @param value The value of the input\n * @param disabled If true, the input is disabled\n */\nexport const renderHiddenInput = (\n always: boolean,\n container: HTMLElement,\n name: string,\n value: string | Date | undefined | null,\n disabled: boolean\n): void => {\n if (name !== undefined && (always || hasShadowDom(container))) {\n const inputs = container.querySelectorAll(linkIcInput);\n const inputEls = Array.from(inputs);\n const filtered = inputEls.filter((el) => container === el.parentElement);\n\n let input = filtered[0] as HTMLInputElement;\n if (input === null || input === undefined) {\n input = container.ownerDocument.createElement(\"input\");\n input.type = \"hidden\";\n input.classList.add(icInput);\n container.appendChild(input);\n }\n input.disabled = disabled;\n input.name = name;\n\n if (value instanceof Date) {\n input.value = value ? value.toISOString() : null;\n } else {\n input.value = value || \"\";\n }\n }\n};\n\n/**\n * This method is used to add a hidden file input to a host element that contains\n * a Shadow DOM. It does not add the input inside of the Shadow root which\n * allows it to be picked up inside of forms. It should contain the same\n * values as the host element.\n *\n * @param event: The event that is emitted once a file is selected.\n * @param container The element where the input will be added\n * @param multiple If true, multiple files can be selected\n * @param name The name of the input\n * @param value The value of the input\n * @param disabled If true, the input is disabled\n * @param accept A string of the accepted files\n */\nexport const renderFileHiddenInput = (\n event: EventEmitter,\n container: HTMLElement,\n multiple: boolean,\n name: string,\n value: FileList | undefined | null,\n disabled: boolean,\n accept: string\n): void => {\n if (name !== undefined && hasShadowDom(container)) {\n const inputs = container.querySelectorAll(linkIcInput);\n const inputEls = Array.from(inputs);\n const filtered = inputEls.filter((el) => container === el.parentElement);\n\n let input = filtered[0] as HTMLInputElement;\n if (input === null || input === undefined) {\n input = container.ownerDocument.createElement(\"input\");\n input.classList.add(icInput);\n container.appendChild(input);\n }\n input.type = \"file\";\n input.hidden = true;\n input.multiple = multiple;\n input.name = name;\n input.files = value;\n input.disabled = disabled;\n input.accept = accept;\n input.onchange = () => {\n event.emit(input.files);\n };\n input.click();\n }\n};\n\nexport const removeHiddenInput = (container: HTMLElement): void => {\n const inputs = container.querySelectorAll(\"input.ic-input\");\n const inputEls = Array.from(inputs);\n const filtered = inputEls.filter((el) => container === el.parentElement);\n const input = filtered[0] as HTMLInputElement;\n input?.remove();\n};\n\nexport const hasShadowDom = (el: HTMLElement): boolean =>\n !!el.shadowRoot && !!el.attachShadow;\n\nexport const getInputHelperTextID = (id: string): string => id + \"-helper-text\";\n\nexport const getInputValidationTextID = (id: string): string =>\n id + \"-validation-text\";\n\nexport const getInputDescribedByText = (\n inputId: string,\n helperText: boolean,\n validationText: boolean\n): string =>\n `${helperText ? getInputHelperTextID(inputId) : \"\"} ${\n validationText ? getInputValidationTextID(inputId) : \"\"\n }`.trim();\n\n/**\n * This method helps to understand the context in which a component exists,\n * to assist with choosing appropriate foreground colours to use. For example,\n * this method will help you use the 'white' version of a button if it's within\n * a block colour element using white foreground text.\n *\n * This only works for components/elements passed via <slot> and not if they\n * are part of an IC component.\n *\n * \"\"\n * @returns IcBrandForeground depending on the context\n */\nexport const getBrandFromContext = (\n el: Element,\n brandFromEvent: IcBrandForeground = null\n): IcBrandForeground => {\n const parentElement =\n el.parentElement || (<ShadowRoot>el.getRootNode()).host.parentElement;\n const blockColorParent = parentElement.closest(\n IC_BLOCK_COLOR_COMPONENTS.join(\",\")\n );\n\n // If within a block color component\n if (blockColorParent !== null) {\n const parentTag = blockColorParent.tagName.toLowerCase();\n const currentTag = el.tagName.toLowerCase();\n\n if (IC_BLOCK_COLOR_EXCEPTIONS[parentTag]?.includes(currentTag)) {\n return IcBrandForegroundEnum.Default;\n } else if (\n brandFromEvent !== null &&\n !IC_FIXED_COLOR_COMPONENTS.includes(parentTag)\n ) {\n return brandFromEvent;\n } else if (\n blockColorParent.classList.contains(\n `${parentTag}-${IcBrandForegroundEnum.Dark}`\n ) ||\n blockColorParent.classList.contains(IcBrandForegroundEnum.Dark)\n ) {\n return IcBrandForegroundEnum.Dark;\n }\n\n return IcBrandForegroundEnum.Light;\n }\n\n return IcBrandForegroundEnum.Default;\n};\n\n/**\n * Checks if the current device is a mobile or tablet device.\n * @returns {boolean} Returns true if the device is a mobile or tablet device, otherwise returns false.\n */\nexport const isMobileOrTablet = (): boolean =>\n \"maxTouchPoints\" in navigator && \"userAgent\" in navigator\n ? navigator.maxTouchPoints > 0 &&\n /iPad|iPhone|iPod|Android|webOS|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent\n )\n : false;\n\n/**\n * Will create a button within the lightDOM which interacts with the parent form.\n * This is required as buttons within the shadowDOM will not invoke a submit or reset\n *\n * @param form - parent form element which contains shadowDom button\n * @param button - shadowDOM button\n */\nexport const handleHiddenFormButtonClick = (\n form: HTMLFormElement,\n button: HTMLIcButtonElement | HTMLButtonElement\n): void => {\n const hiddenFormButton = document.createElement(\"button\");\n\n hiddenFormButton.setAttribute(\"type\", button.type);\n hiddenFormButton.style.display = \"none\";\n\n form.appendChild(hiddenFormButton);\n\n hiddenFormButton.click();\n hiddenFormButton.remove();\n};\n\nexport const isEmptyString = (value: string): boolean =>\n value ? value.trim().length === 0 : true;\n\n// A helper function that checks if a prop has been defined\nexport const isPropDefined = (prop: string): string | null =>\n prop !== undefined ? prop : null;\n\n/**\n * Extracts the label using the value from an object. Requires the object to have a label and value property.\n * @param value - value from object\n * @param options - list of menu items\n * @returns - label corresponding to value\n */\nexport const getLabelFromValue = (\n value: string,\n options: IcMenuOption[],\n valueField = \"value\",\n labelField = \"label\"\n): string | undefined => {\n const ungroupedOptions: IcMenuOption[] = [];\n if (options.length > 0 && options.map) {\n options.map((option) => {\n if (option.children) {\n option.children.map((option: IcMenuOption) =>\n ungroupedOptions.push(option)\n );\n } else {\n ungroupedOptions.push(option);\n }\n });\n const matchingValue = ungroupedOptions.find(\n (option) => option[valueField] === value\n );\n if (matchingValue !== undefined) return matchingValue[labelField];\n }\n\n return undefined;\n};\n\n/**\n * Filters the options based on the search string.\n * @param options - array of options\n * @param includeDescriptions - determines whether option descriptions are included when filtering options\n * @param searchString - string used to filter the options\n * @param position - whether the search string matches the start of or anywhere in the options\n * @returns filtered array of options\n */\nexport const getFilteredMenuOptions = (\n options: IcMenuOption[],\n includeDescriptions: boolean,\n searchString: string,\n position: IcSearchMatchPositions,\n labelField = \"label\"\n): IcMenuOption[] =>\n options.filter((option) => {\n const label: string = option[labelField].toLowerCase();\n const description = option.description?.toLowerCase();\n const lowerSearchString = searchString.toLowerCase();\n\n return position === \"anywhere\"\n ? includeDescriptions\n ? label.includes(lowerSearchString) ||\n description?.includes(lowerSearchString)\n : label.includes(lowerSearchString)\n : includeDescriptions\n ? label.startsWith(lowerSearchString) ||\n description?.startsWith(lowerSearchString)\n : label.startsWith(lowerSearchString);\n });\n\n/**\n * Gets count of options where only group title \"parent\" options have been removed.\n * Disabled options are included in the count.\n * @param options - array of options\n * @returns number of options not including group titles\n */\nexport const getOptionsWithoutGroupTitlesCount = (\n options: IcMenuOption[]\n): number => {\n const optionsWithoutGroupTitles: IcMenuOption[] = [];\n\n if (options.length > 0 && options.map) {\n options.map((option) => {\n if (option.children) {\n option.children.map((option) => optionsWithoutGroupTitles.push(option));\n } else {\n optionsWithoutGroupTitles.push(option);\n }\n });\n }\n\n return optionsWithoutGroupTitles.length;\n};\n\nexport const deviceSizeMatches = (size: number): boolean =>\n window.matchMedia(`(max-width: ${size}px)`).matches;\n\nexport const getCurrentDeviceSize = (): number => {\n if (deviceSizeMatches(DEVICE_SIZES.S)) {\n return DEVICE_SIZES.S;\n }\n if (deviceSizeMatches(DEVICE_SIZES.M)) {\n return DEVICE_SIZES.M;\n }\n if (deviceSizeMatches(DEVICE_SIZES.L)) {\n return DEVICE_SIZES.L;\n }\n if (deviceSizeMatches(DEVICE_SIZES.XL)) {\n return DEVICE_SIZES.XL;\n }\n //fallback needed as all of above get initialised to 0 in jest tests\n return DEVICE_SIZES.UNDEFINED;\n};\n\nexport const getCssProperty = (cssVar: string): string =>\n getComputedStyle(document.documentElement).getPropertyValue(cssVar);\n\n/**\n * Returns the brightness of the theme colour, calculated by using the theme RGB CSS values by:\n * - Multiplying each RGB value by a set number: https://www.w3.org/TR/AERT/#color-contrast\n * - Adding them together and dividing by 1000\n * This is a similar calculation to its CSS counterpart: \"--ic-brand-text-color\"\n * @returns number representing the brightness of the theme colour\n */\nexport const getBrandColorBrightness = (): number => {\n const themeRed = getCssProperty(\"--ic-brand-color-primary-r\");\n const themeGreen = getCssProperty(\"--ic-brand-color-primary-g\");\n const themeBlue = getCssProperty(\"--ic-brand-color-primary-b\");\n return (\n (parseInt(themeRed) * 299 +\n parseInt(themeGreen) * 587 +\n parseInt(themeBlue) * 114) /\n 1000\n );\n};\n\n/**\n * Returns if dark or light foreground colors should be used for color contrast reasons\n * @returns \"dark\" or \"light\"\n * @param brightness - Optional custom brightness value. Defaults to `getBrandColorBrightness`\n */\nexport const getBrandForegroundAppearance = (\n brightness = getBrandColorBrightness()\n): IcBrandForegroundNoDefault =>\n brightness > DARK_MODE_THRESHOLD\n ? IcBrandForegroundEnum.Dark\n : IcBrandForegroundEnum.Light;\n\nexport const getSlot = (element: HTMLElement, name: string): Element | null => {\n if (element && element.querySelector) {\n return element.querySelector(`[slot=\"${name}\"]`);\n }\n return null;\n};\n\nexport const slotHasContent = (element: HTMLElement, name: string): boolean =>\n getSlot(element, name) !== null;\n\nexport const getSlotContent = (\n element: HTMLElement,\n name: string\n): Element[] | NodeListOf<ChildNode> | null => {\n const slot = getSlot(element, name);\n if (slot) {\n return getSlotElements(slot);\n }\n\n return null;\n};\n\nexport const getSlotElements = (\n slot: Element\n): NodeListOf<ChildNode> | Element[] => {\n const slotContent = slot.firstElementChild as HTMLSlotElement;\n\n if (slotContent !== null) {\n const elements = slotContent.assignedElements\n ? slotContent.assignedElements()\n : slotContent.childNodes;\n return elements.length ? elements : slot.tagName ? [slot] : null;\n } else {\n //check for single element\n return slot === null ? null : [slot];\n }\n};\n\nexport const getNavItemParentDetails = ({\n parentElement,\n}: HTMLElement): IcNavParentDetails => {\n let navType: IcNavParentDetails = { navType: \"\", parent: null };\n switch (parentElement.tagName) {\n case \"IC-NAVIGATION-GROUP\":\n navType = getNavItemParentDetails(parentElement);\n break;\n case \"IC-TOP-NAVIGATION\":\n navType = { navType: \"top\", parent: parentElement };\n break;\n case \"IC-SIDE-NAVIGATION\":\n navType = { navType: \"side\", parent: parentElement };\n break;\n case \"IC-PAGE-HEADER\":\n navType = { navType: \"page-header\", parent: null };\n break;\n }\n return navType;\n};\n\nexport const DEVICE_SIZES = {\n XS: Number(\n getCssProperty(\"--ic-breakpoint-xs\").replace(\"px\", \"\")\n ) as IcDeviceSizes, // 0\n S: Number(\n getCssProperty(\"--ic-breakpoint-sm\").replace(\"px\", \"\")\n ) as IcDeviceSizes, // 576\n M: Number(\n getCssProperty(\"--ic-breakpoint-md\").replace(\"px\", \"\")\n ) as IcDeviceSizes, // 768\n L: Number(\n getCssProperty(\"--ic-breakpoint-lg\").replace(\"px\", \"\")\n ) as IcDeviceSizes, // 992\n XL: Number(\n getCssProperty(\"--ic-breakpoint-xl\").replace(\"px\", \"\")\n ) as IcDeviceSizes, // 1200\n UNDEFINED: 1200,\n};\n\nexport const hasValidationStatus = (\n status: IcInformationStatusOrEmpty,\n disabled: boolean\n): boolean => !!status && !disabled;\n\nexport const isSlotUsed = (\n { children }: HTMLElement,\n slotName: string\n): boolean =>\n Array.from(children).some((child) => child.getAttribute(\"slot\") === slotName);\n\n// added as a common method to allow detection of gatsby hydration issue, where (camelCase) props are initially undefined & then update\n// with a value. Allows a callback function to be executed when this is the case\nexport const onComponentPropUndefinedChange = (\n oldValue: string | undefined,\n newValue: string | undefined,\n callback: IcCallbackFunctionNoReturn\n): void => {\n if (oldValue === undefined && newValue !== oldValue) {\n callback();\n }\n};\n\nexport const onComponentRequiredPropUndefined = (\n props: IcPropObject[],\n component: string\n): void => {\n props.forEach(({ prop, propName }) => {\n if (prop === null || prop === undefined) {\n console.error(\n `No ${propName} specified for ${component} component - prop '${propName}' (web components) / '${kebabToCamelCase(\n propName\n )}' (react) required`\n );\n }\n });\n};\n\nexport const kebabToCamelCase = (kebabCase: string): string =>\n kebabCase\n .toLowerCase()\n .split(\"-\")\n .map((word, index) =>\n index === 0\n ? word\n : `${word.substring(0, 1).toUpperCase()}${word.substring(1)}`\n )\n .join(\"\");\n\nexport const checkResizeObserver = (\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n if (\n typeof window !== \"undefined\" &&\n typeof window.ResizeObserver !== \"undefined\"\n ) {\n callbackFn();\n }\n};\n\nconst hex2dec = (v: string) => parseInt(v, 16);\n\nexport const hexToRgba = (hex: string): IcColorRGBA => {\n const hexChars = hex\n .replace(\"#\", \"\")\n .split(\"\")\n .map((char) => char.repeat(2));\n return {\n r: hex2dec(hex.length === 4 ? hexChars[0] : hex.slice(1, 3)),\n g: hex2dec(hex.length === 4 ? hexChars[1] : hex.slice(3, 5)),\n b: hex2dec(hex.length === 4 ? hexChars[2] : hex.slice(5)),\n a: 1,\n };\n};\n\nexport const rgbaStrToObj = (rgbaStr: string): IcColorRGBA => {\n const isRGBA = rgbaStr.slice(3, 4).toLowerCase() === \"a\";\n const rgbValues = rgbaStr\n .substring(isRGBA ? 5 : 4, rgbaStr.length - 1)\n .replace(/ /g, \"\")\n .split(\",\")\n .map(Number);\n return {\n r: rgbValues[0],\n g: rgbValues[1],\n b: rgbValues[2],\n a: isRGBA ? rgbValues[3] : 1,\n };\n};\n\nexport const elementOverflowsX = ({\n scrollWidth,\n clientWidth,\n}: HTMLElement): boolean => scrollWidth > clientWidth;\n\nexport const hasClassificationBanner = (): boolean =>\n !!document.querySelector(\"ic-classification-banner:not([inline='true'])\");\n\nexport const addFormResetListener = (\n el: HTMLElement,\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n el.closest(\"FORM\")?.addEventListener(\"reset\", callbackFn);\n};\n\nexport const removeFormResetListener = (\n el: HTMLElement,\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n el.closest(\"FORM\")?.removeEventListener(\"reset\", callbackFn);\n};\n\nexport const pxToRem = (px: string, base = 16): string =>\n `${(1 / base) * parseInt(px)}rem`;\n\n/**\n * Removes the disabled attribute from the provided element when its value is set to false.\n * This effectively makes it null, to not confuse screen readers that cannot interpret the false value\n */\nexport const removeDisabledFalse = (\n disabled: boolean,\n element: HTMLElement\n): void => {\n if (!disabled) {\n element.removeAttribute(\"disabled\");\n }\n};\n\nexport const isMacDevice = (): boolean =>\n window.navigator.userAgent.toUpperCase().indexOf(\"MAC\") >= 0;\n\nexport const isNumeric = (value: string): boolean => /^-?\\d+$/.test(value);\n\nexport async function waitForHydration(): Promise<boolean> {\n const elements = document.getElementsByTagName(\"*\");\n\n for (let i = 0; i < elements.length; i++) {\n if (elements[i].tagName.startsWith(\"IC-\")) {\n if (elements[i].classList.contains(\"hydrated\")) {\n return true;\n }\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nexport const convertToRGBA = (color: IcColor): IcColorRGBA | null => {\n const firstChar = color?.slice(0, 1).toLowerCase();\n return firstChar === \"#\"\n ? hexToRgba(color)\n : firstChar === \"r\"\n ? rgbaStrToObj(color)\n : null;\n};\n\nexport const capitalize = (text: string): string =>\n text.charAt(0).toUpperCase() + text.slice(1);\n\nexport const checkSlotInChildMutations = (\n addedNodes: NodeList,\n removedNodes: NodeList,\n slotName: string | string[]\n): boolean => {\n const hasSlot = (nodeList: NodeList) =>\n Array.from(nodeList).some((node) =>\n Array.isArray(slotName)\n ? slotName.some((name) => (node as Element).slot === name)\n : (node as Element).slot === slotName\n );\n return hasSlot(addedNodes) || hasSlot(removedNodes);\n};\n\nexport const isElInAGGrid = (el: HTMLElement): boolean =>\n !!el.closest(\".ag-cell\") && !!el.closest(\".ag-root\");\n\n/*\n * Checks if the component is slotted in its relevant 'group' component\n * @param component - the component to check\n */\nexport const isSlottedInGroup = (component: any): boolean => {\n const parent = component?.tagName + \"-GROUP\";\n return component?.parentElement?.tagName === parent;\n};\n\nexport const hasDynamicChildSlots = (\n mutationList: MutationRecord[],\n slotNames: string | string[]\n) => {\n return mutationList.some(({ type, addedNodes, removedNodes }) =>\n type === \"childList\"\n ? checkSlotInChildMutations(addedNodes, removedNodes, slotNames)\n : false\n );\n};\n\nexport const renderDynamicChildSlots = (\n mutationList: MutationRecord[],\n slotNames: string | string[],\n ref: any\n): void => {\n if (hasDynamicChildSlots(mutationList, slotNames)) {\n forceUpdate(ref);\n }\n};\n"],"mappings":"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"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icRadioOptionCss","ADDITIONAL_FIELD","RadioOption","this","defaultRadioValue","hasAdditionalField","skipFocus","handleClick","event","clickedAdditionalField","target","matches","disabled","radioElement","stopPropagation","focus","value","_a","getAdditionalField","icCheck","emit","handleKeyDown","preventPropagationElements","document","activeElement","includes","nodeName","handleFormReset","selected","initiallySelected","watchDisabledHandler","removeDisabledFalse","el","watchSelectedHandler","icSelectedChange","handleCheck","ev","additionalFieldDisplay","Array","from","querySelectorAll","disconnectedCallback","removeFormResetListener","componentWillLoad","isSlotUsed","addFormResetListener","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","componentWillRender","hasSlot","slotHasContent","componentDidRender","additionalField","setAttribute","removeAttribute","additionalFieldValueHandler","detail","stopImmediatePropagation","setFocus","setTabIndex","tabIndex","querySelector","hiddenInput","render","dynamicText","form","groupLabel","label","name","theme","id","isPropDefined","h","Host","onClick","onKeyDown","class","container","tabindex","type","checked","ref","variant","htmlFor","hidden"],"sources":["src/components/ic-radio-option/ic-radio-option.css?tag=ic-radio-option","src/components/ic-radio-option/ic-radio-option.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\nic-radio-option {\n display: flex;\n flex-direction: column;\n width: fit-content;\n}\n\n.additional-field-wrapper [slot=\"additional-field\"] {\n margin-top: calc(var(--ic-space-sm) / 2);\n margin-left: var(--ic-space-xl);\n}\n\n/* The label turns grey when disabled */\nic-radio-option.ic-radio-option-disabled,\nic-radio-option.ic-radio-option-disabled .radio-label {\n --ic-typography-color: var(--ic-radio-button-text-option-disabled);\n}\n\n/* Focus states */\n\n.container input:focus + span.checkmark,\n.container:hover input:focus + span.checkmark,\n.container:active input:focus + span.checkmark,\n:host(:focus) .container input:checked + span.checkmark {\n box-shadow: var(--ic-border-focus);\n}\n\n/* The container */\n.container {\n display: grid;\n grid-template-columns: min-content auto;\n position: relative;\n cursor: pointer;\n align-items: center;\n margin: var(--ic-space-xxs) 0 var(--ic-space-xxs) var(--ic-space-xxs);\n}\n\n.container.disabled,\n.container.disabled input:disabled {\n cursor: default;\n}\n\n/* Hide the browser's default radio button */\n.container input {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n display: inline-block;\n position: absolute;\n cursor: pointer;\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n border-radius: 50%;\n border: none;\n}\n\n/* Create a custom radio button */\n.checkmark {\n display: block;\n position: relative;\n top: 0;\n left: 0;\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n background-color: var(--ic-radio-button-background-default);\n border: var(--ic-space-1px) solid var(--ic-radio-button-border-default);\n border-radius: 50%;\n transition: var(--ic-easing-transition-fast);\n box-sizing: border-box;\n}\n\n/* Show the indicator (dot/circle) when checked */\n.container input:checked ~ .checkmark::after {\n display: inline-block;\n}\n\n/* On mouse-over, add a light blue background color */\n.container:hover input ~ .checkmark {\n box-shadow: 0 0 0 0.25rem var(--ic-radio-button-active-hover);\n border: var(--ic-border-width) solid var(--ic-radio-button-default-hover);\n}\n\n.container:hover input:checked ~ .checkmark {\n box-shadow: 0 0 0 0.25rem var(--ic-radio-button-active-hover);\n border: 0.125rem solid var(--ic-radio-button-default-hover);\n}\n\n.container:hover:not(.disabled) input:checked ~ .checkmark::after {\n background-color: var(--ic-radio-button-default-hover);\n}\n\n/* When pressed, adds the active colours */\n.container:active input ~ .checkmark {\n box-shadow: 0 0 0 0.25rem var(--ic-radio-button-active-pressed);\n border: var(--ic-border-width) solid var(--ic-radio-button-default-pressed);\n}\n\n/* When pressed, adds the active colours */\n.container:active input:checked ~ .checkmark {\n border: 0.125rem solid var(--ic-radio-button-default-pressed);\n box-shadow: 0 0 0 0.25rem var(--ic-radio-button-active-pressed);\n}\n\n/* When pressed and selected, adds the active colours */\n.container:active input:checked ~ .checkmark::after {\n background-color: var(--ic-radio-button-default-pressed);\n}\n\n/* When the radio button is checked */\n.container input:checked ~ .checkmark {\n border: 0.125rem solid var(--ic-radio-button-default-active);\n}\n\n/* When the radio button is checked and disabled */\n.container input:checked:disabled ~ .checkmark {\n border: 0.125rem solid var(--ic-radio-button-border-disabled);\n}\n\n/* When the radio button is disabled */\n.container input:disabled ~ .checkmark {\n border: var(--ic-border-width) dashed var(--ic-radio-button-border-disabled);\n}\n\n/* When the radio button is disabled */\n.container input:disabled ~ .checkmark::after {\n background: var(--ic-radio-button-disabled);\n}\n\n/* On mouse-over inactive */\n.container:hover input:disabled ~ .checkmark {\n box-shadow: none;\n border: 0.125rem solid none;\n}\n\n.container:active input:disabled ~ .checkmark::after {\n background-color: var(--ic-radio-button-disabled);\n}\n\n/* Style the indicator (dot/circle) */\n.container .checkmark::after {\n content: \"\";\n position: absolute;\n display: none;\n top: calc(50% - var(--ic-space-xs));\n left: calc(50% - var(--ic-space-xs));\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n border-radius: 50%;\n background: var(--ic-radio-button-default-active);\n}\n\n.radio-label {\n margin-left: var(--ic-space-md);\n --ic-typography-color: var(--ic-radio-button-text-option);\n}\n\n.additional-field-wrapper {\n margin-left: var(--ic-space-xs);\n}\n\n/* The line */\n.branch-corner {\n color: var(--ic-radio-button-required-bar);\n height: var(--ic-space-md);\n width: var(--ic-space-xl);\n border-radius: 0 0 0 0.188rem;\n border-bottom: 0.125rem solid var(--ic-radio-button-required-bar);\n border-left: 0.125rem solid var(--ic-radio-button-required-bar);\n margin-left: calc(-1 * var(--ic-space-1px));\n}\n\n/* The dynamic container */\n.dynamic-container {\n display: flex;\n position: relative;\n margin: var(--ic-space-xxxs) 0 var(--ic-space-xxs) var(--ic-space-md);\n gap: var(--ic-space-xs);\n}\n\n.dynamic-container.hidden {\n display: none;\n}\n\n.dynamic-text {\n color: var(--ic-radio-button-required-text);\n\n --ic-typography-color: var(--ic-radio-button-required-text);\n\n margin-top: calc(var(--ic-space-sm) / 2);\n margin-bottom: var(--ic-space-xs);\n border-radius: 2%;\n}\n\n@media (max-width: 576px) {\n ic-text-field {\n --input-width: 100%;\n }\n}\n\n@media (forced-colors: active) {\n /* Styles here only apply to Forced Colors Mode */\n\n .container input:checked ~ .checkmark,\n .container:active input:checked ~ .checkmark {\n border-color: Highlight;\n }\n\n .container input:checked ~ .checkmark::after,\n .container:active input:checked ~ .checkmark::after {\n background-color: Highlight;\n }\n\n .container input:disabled ~ .checkmark,\n .container input:checked:disabled ~ .checkmark {\n border-color: GrayText;\n }\n\n .container input:disabled ~ .checkmark::after,\n .container:active input:disabled ~ .checkmark::after {\n background-color: GrayText;\n }\n}\n\n/* Right to left */\ninput[type=\"radio\"]:dir(rtl) {\n right: 0;\n}\n\n.radio-label:dir(rtl) {\n padding-right: var(--ic-space-sm);\n padding-left: 0;\n}\n\n.branch-corner:dir(rtl) {\n border-radius: 0 0 0.188rem 0;\n border-right: 0.125rem solid var(--ic-action-default);\n border-left: none;\n}\n\n.dynamic-container:dir(rtl) {\n margin: var(--ic-space-xxxs) var(--ic-space-sm) var(--ic-space-xxs) 0;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Listen,\n State,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcAdditionalFieldTypes,\n IcThemeMode,\n IcValueEventDetail,\n} from \"../../utils/types\";\nimport {\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n isPropDefined,\n isSlotUsed,\n slotHasContent,\n} from \"../../utils/helpers\";\n\nconst ADDITIONAL_FIELD = \"additional-field\";\n\n/**\n * @slot additional-field - Content to displayed alongside a radio option.\n */\n@Component({\n tag: \"ic-radio-option\",\n styleUrl: \"ic-radio-option.css\",\n})\nexport class RadioOption {\n private defaultRadioValue: string = \"\";\n private hasAdditionalField: boolean = false;\n private radioElement: HTMLInputElement;\n private skipFocus = false;\n\n @Element() el: HTMLIcRadioOptionElement;\n\n /**\n * The style of additionalField that will be displayed if used.\n */\n @Prop({ reflect: true }) additionalFieldDisplay: IcAdditionalFieldTypes =\n \"static\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The text to be displayed when dynamic.\n */\n @Prop() dynamicText: string = \"This selection requires additional answers\";\n\n /**\n * The <form> element to associate the radio with.\n */\n @Prop() form?: string;\n\n /**\n * The group label for the radio option.\n */\n @Prop() groupLabel: string;\n\n /**\n * The label for the radio option.\n */\n @Prop() label?: string;\n\n /**\n * The name for the radio option.\n */\n @Prop() name: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The value for the radio option.\n */\n @Prop({ mutable: true }) value!: string;\n\n /**\n * If `true`, the radio option will be displayed in a selected state.\n */\n @Prop({ reflect: true, mutable: true }) selected?: boolean = false;\n @State() initiallySelected = this.selected;\n\n @Watch(\"selected\")\n watchSelectedHandler(): void {\n this.icSelectedChange.emit();\n }\n\n /**\n * Emitted when the radio option is selected.\n */\n @Event() icCheck: EventEmitter<IcValueEventDetail>;\n @Listen(\"icCheck\")\n handleCheck(ev: CustomEvent<IcValueEventDetail>): void {\n if (\n this.additionalFieldDisplay === \"static\" &&\n Array.from(this.el.querySelectorAll(\"ic-radio-option\")).includes(\n ev.target as HTMLIcRadioOptionElement\n )\n )\n this.icCheck.emit({ value: this.value });\n }\n\n /**\n * Emitted when the radio option is selected or deselected.\n */\n @Event() icSelectedChange: EventEmitter<void>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n if (isSlotUsed(this.el, ADDITIONAL_FIELD)) {\n this.hasAdditionalField = true;\n this.getAdditionalField();\n }\n\n this.defaultRadioValue = this.value;\n\n addFormResetListener(this.el, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.value, propName: \"value\" }],\n \"Radio Option\"\n );\n }\n\n componentWillRender(): void {\n const hasSlot = slotHasContent(this.el, ADDITIONAL_FIELD);\n if (hasSlot && !this.hasAdditionalField) {\n this.hasAdditionalField = true;\n this.getAdditionalField();\n } else if (!hasSlot && this.hasAdditionalField) {\n this.hasAdditionalField = false;\n }\n }\n\n componentDidRender(): void {\n if (this.additionalFieldDisplay === \"static\") {\n const additionalField = this.getAdditionalField();\n if (!this.selected || this.disabled) {\n additionalField?.setAttribute(\"disabled\", \"\");\n } else {\n additionalField?.removeAttribute(\"disabled\");\n }\n }\n }\n\n @Listen(\"icChange\")\n additionalFieldValueHandler(event: CustomEvent<{ value: string }>): void {\n if (this.selected) {\n this.value = event.detail.value || this.defaultRadioValue;\n this.icCheck.emit({\n value: this.value,\n });\n }\n\n event.stopImmediatePropagation();\n }\n\n /**\n * Sets focus on the radio option.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.radioElement?.focus();\n }\n\n /**\n * @internal Sets the tabIndex of the radio option.\n */\n @Method()\n async setTabIndex(value: number): Promise<void> {\n this.radioElement.tabIndex = value;\n }\n\n private getAdditionalField(): HTMLIcTextFieldElement {\n const additionalField = this.el.querySelector(\n 'ic-text-field[slot=\"additional-field\"]'\n ) as HTMLIcTextFieldElement;\n if (additionalField) additionalField.hiddenInput = false;\n return additionalField;\n }\n\n private handleClick = (event: MouseEvent) => {\n const clickedAdditionalField = (event.target as Element).matches(\n \".dynamic-container:not(ic-radio-option, .checkmark), .dynamic-container *:not(ic-radio-option, .checkmark)\"\n );\n\n if (\n !this.disabled &&\n (!clickedAdditionalField || event.target === this.radioElement)\n ) {\n event.stopPropagation();\n if (this.skipFocus === false) {\n this.radioElement.focus();\n }\n this.skipFocus = false;\n\n if (this.hasAdditionalField) {\n this.value = this.getAdditionalField()?.value || this.defaultRadioValue;\n }\n\n this.icCheck.emit({\n value: this.value,\n });\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n const preventPropagationElements = [\"IC-DATE-INPUT\", \"IC-DATE-PICKER\"];\n\n if (\n this.getAdditionalField() == document.activeElement &&\n preventPropagationElements.includes(this.getAdditionalField().nodeName)\n ) {\n event.stopPropagation();\n }\n };\n\n private handleFormReset = (): void => {\n this.skipFocus = true;\n this.selected = this.initiallySelected;\n };\n\n render() {\n const {\n additionalFieldDisplay,\n disabled,\n dynamicText,\n form,\n groupLabel,\n handleClick,\n handleKeyDown,\n hasAdditionalField,\n label,\n name,\n selected,\n value,\n theme,\n } = this;\n\n const id = `ic-radio-option-${isPropDefined(label) || value}-${groupLabel}`;\n\n return (\n <Host\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n class={{\n [\"ic-radio-option-disabled\"]: disabled,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div class={{ container: true, disabled }}>\n <div>\n <input\n tabindex={selected ? \"0\" : \"-1\"}\n type=\"radio\"\n name={name}\n id={id}\n value={value}\n disabled={disabled ? true : null}\n checked={selected}\n ref={(el) => (this.radioElement = el)}\n form={form}\n ></input>\n <span class=\"checkmark\"></span>\n </div>\n <ic-typography class=\"radio-label\" variant=\"body\">\n <label htmlFor={id}>{label}</label>\n </ic-typography>\n </div>\n\n {hasAdditionalField && (\n <div\n class={{\n \"dynamic-container\": true,\n hidden: additionalFieldDisplay === \"dynamic\" && !selected,\n }}\n >\n {additionalFieldDisplay === \"dynamic\" && (\n <div class=\"branch-corner\"></div>\n )}\n <div>\n {additionalFieldDisplay === \"dynamic\" && (\n <ic-typography variant=\"caption\">\n <p class=\"dynamic-text\">{dynamicText}</p>\n </ic-typography>\n )}\n <div\n class={{\n \"additional-field-wrapper\":\n additionalFieldDisplay === \"static\",\n }}\n >\n <slot name={ADDITIONAL_FIELD}></slot>\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as e,c as t,h as i,H as o,g as s}from"./p-6b5e91e2.js";import{t as n,d as a}from"./p-cda4aca9.js";import{c as r}from"./p-68a5aaff.js";const l='/*! 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 .opening-from-parent{animation:slide-in var(--ic-transition-duration-slow) ease-in-out}:host .opening-from-child{animation:slide-out var(--ic-transition-duration-slow) ease-in-out}}:host{border-radius:var(--ic-border-radius);color:var(--ic-popover-nav-text);--ic-typography-color:var(--ic-popover-nav-text);position:relative;z-index:var(--ic-z-index-popover);box-sizing:border-box;box-shadow:var(--ic-elevation-overlay);display:none}:host(.on-dialog){inset:auto !important}:host(.on-dialog-fix-translate){transform:translate(0, var(--ic-space-xs)) !important}:host(.on-dialog-translate-y){transform:translate(0, calc(-1 * var(--translate-y))) !important}.menu{border:var(--ic-border-default);border-color:var(--ic-popover-border);border-radius:var(--ic-border-radius);background-color:var(--ic-popover-background);visibility:hidden;height:0}.button{text-decoration:none;list-style-type:none}:host(:focus-within){box-shadow:var(--ic-border-focus)}.menu:focus-visible{outline:none}:host(.ic-popover-menu-open){display:block;min-width:calc(20rem - var(--ic-space-xl));width:var(--popover-width, 20rem);max-width:calc(100vw - var(--ic-space-xl))}:host(.ic-popover-menu-open) .menu{visibility:visible;height:-moz-fit-content;height:fit-content;max-height:var(--max-height, -moz-fit-content);max-height:var(--max-height, fit-content);overflow-y:auto;overflow-x:hidden}.parent-label{--ic-typography-color:var(--ic-popover-parent-label);margin:var(--ic-space-xs) var(--ic-space-xs) 0}@keyframes slide-in{from{opacity:0;transform:translateX(10rem)}to{opacity:1;transform:translateX(0)}}@keyframes slide-out{from{opacity:0;transform:translateX(-10rem)}to{opacity:1;transform:translateX(0)}}';const h=class{constructor(i){e(this,i);this.icPopoverClosed=t(this,"icPopoverClosed",7);this.ARIA_LABEL="aria-label";this.popoverMenuEls=[];this.setButtonFocus=()=>{var e;(e=this.popoverMenuEls[this.currentFocus])===null||e===void 0?void 0:e.focus()};this.findAnchorEl=e=>{let t=null;if(!e){this.submenuId===undefined&&console.error("No anchor specified for popover component")}else{t=document.querySelector(e.indexOf("#")===0?e:"#"+e);if(t===null){console.error(`Popover anchor element '${e}' not found`)}}return t};this.isNotPopoverMenuEl=e=>{const{id:t,tagName:i}=e.target;return t!==this.anchor&&i!=="IC-MENU-ITEM"&&i!=="IC-MENU-GROUP"&&i!=="IC-POPOVER-MENU"};this.getNextItemToSelect=(e,t)=>{const i=this.popoverMenuEls.length-1;if(e<1){e=0}let o=t?e+1:e-1;if(o<0){o=i}else if(o>i){o=0}return o};this.addMenuItems=e=>{for(let t=0;t<e.length;t++){const i=e[t];if(i.tagName==="IC-MENU-ITEM"){this.popoverMenuEls.push(i)}else if(i.tagName==="IC-MENU-GROUP"){const e=i.shadowRoot.querySelector(".menu-items-wrapper");const t=n(e);this.addMenuItems(t)}}};this.getMenuAriaLabel=()=>{const e=this.el.getAttribute(this.ARIA_LABEL);if(a(this.submenuId)){return`${e}, within nested level ${this.submenuLevel} ${this.parentLabel} submenu,`}else{return e}};this.handleBackButtonClick=()=>{this.parentPopover.openFromChild();this.open=false};this.initPopperJS=()=>{this.popperInstance=r(this.anchorEl,this.el,{placement:"bottom-start",modifiers:[{name:"offset",options:{offset:[0,4]}},{name:"flip",options:{fallbackPlacements:["top-start","top-end","bottom-end"],rootBoundary:"viewport"}}]})};this.openingFromChild=false;this.openingFromParent=false;this.anchor=undefined;this.parentLabel=undefined;this.parentPopover=undefined;this.submenuId=undefined;this.submenuLevel=1;this.theme="inherit";this.open=undefined}watchOpenHandler(){var e;const t=(e=this.el.parentElement)===null||e===void 0?void 0:e.querySelectorAll(`ic-popover-menu`);if(this.open){if(t.length>0){t.forEach((e=>{if(e!==this.el){e.open=false}}))}if(this.parentPopover!==undefined&&!this.popoverMenuEls.some((e=>e.id))){this.popoverMenuEls.unshift(this.backButton)}this.currentFocus=0;setTimeout(this.setButtonFocus,50)}else if(this.popperInstance){if(t.length>0){t.forEach((e=>{if(e!==this.el){e.open=false}}))}this.popperInstance.destroy();this.popperInstance=null}}disconnectedCallback(){if(this.popperInstance){this.popperInstance.destroy();this.popperInstance=null}}componentDidLoad(){const e=this.el.shadowRoot.querySelector("ul.button");const t=n(e);if(t!==null){this.addMenuItems(t)}if(this.submenuId===undefined&&this.el.getAttribute(this.ARIA_LABEL)===null){console.error(`No aria-label specified for popover menu component - aria-label required`)}}componentWillRender(){this.anchorEl=this.findAnchorEl(this.anchor)}componentDidRender(){if(this.open&&!this.popperInstance){this.initPopperJS()}}handleMenuItemClick(e){if(!e.detail.submenuTriggerFor&&e.detail.label!=="Back"){this.closeMenu(false,e.detail)}}handleSubmenuChange(e){const t=e.target;this.open=false;const i=document.querySelector(`ic-popover-menu[submenu-id=${t.submenuTriggerFor}]`);i.parentPopover=this.el;i.anchor=this.anchor;i.ariaLabel=this.el.getAttribute(this.ARIA_LABEL);i.openFromParent();i.submenuLevel=this.submenuLevel+1;i.parentLabel=t.label}handleClick(e){if(this.open&&this.isNotPopoverMenuEl(e)){this.closeMenu()}}handleKeyDown(e){switch(e.key){case"ArrowDown":case"ArrowUp":e.preventDefault();this.currentFocus=this.getNextItemToSelect(this.currentFocus,e.key==="ArrowDown");this.setButtonFocus();break;case"Home":this.currentFocus=0;this.setButtonFocus();break;case"End":this.currentFocus=this.popoverMenuEls.length-1;this.setButtonFocus();break;case"Escape":case"Tab":e.preventDefault();if(this.open){this.closeMenu(true);this.el.blur()}break}}async openFromChild(){this.open=true;this.openingFromChild=true;setTimeout((()=>this.openingFromChild=false),1e3)}async openFromParent(){this.open=true;this.openingFromParent=true;setTimeout((()=>this.openingFromParent=false),1e3)}async closeMenu(e=false,t){var i;this.open=false;if(this.parentPopover){this.parentPopover.closeMenu(e,t)}else{if(e){(i=this.anchorEl)===null||i===void 0?void 0:i.focus()}this.icPopoverClosed.emit(t)}}render(){return i(o,{class:{["ic-popover-menu-open"]:this.open,[`ic-theme-${this.theme}`]:this.theme!=="inherit"}},i("div",{id:this.parentPopover===undefined?`ic-popover-submenu-${this.submenuId}`:"",class:{menu:true},tabindex:open?"0":"-1"},i("span",{class:{"opening-from-parent":this.openingFromParent,"opening-from-child":this.openingFromChild}},a(this.submenuId)&&i("span",null,i("span",{role:"menu"},i("ic-menu-item",{class:"ic-popover-submenu-back-button",ref:e=>this.backButton=e,label:"Back",onClick:this.handleBackButtonClick,id:`ic-popover-submenu-back-button-${this.submenuLevel}`},i("svg",{slot:"icon",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"submenu-back-icon"},i("path",{d:"M20 11H7.83L13.42 5.41L12 4L4 12L12 20L13.41 18.59L7.83 13H20V11Z",fill:"currentColor"})))),i("ic-typography",{variant:"subtitle-small",class:"parent-label"},this.parentLabel)),i("ul",{class:"button","aria-label":this.getMenuAriaLabel(),role:"menu"},i("slot",null)))))}static get delegatesFocus(){return true}get el(){return s(this)}static get watchers(){return{open:["watchOpenHandler"]}}};h.style=l;export{h as ic_popover_menu};
|
2
|
-
//# sourceMappingURL=p-dededae6.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icPopoverMenuCss","PopoverMenu","this","ARIA_LABEL","popoverMenuEls","setButtonFocus","_a","currentFocus","focus","findAnchorEl","anchor","anchorElement","submenuId","undefined","console","error","document","querySelector","indexOf","isNotPopoverMenuEl","ev","id","tagName","target","getNextItemToSelect","currentItem","movingDown","numButtons","length","nextItem","addMenuItems","elements","i","el","push","groupSlotWrapper","shadowRoot","menuGroupElements","getSlotElements","getMenuAriaLabel","ariaLabel","getAttribute","isPropDefined","submenuLevel","parentLabel","handleBackButtonClick","parentPopover","openFromChild","open","initPopperJS","popperInstance","createPopper","anchorEl","placement","modifiers","name","options","offset","fallbackPlacements","rootBoundary","watchOpenHandler","popoverArr","parentElement","querySelectorAll","forEach","popover","some","menuItem","unshift","backButton","setTimeout","destroy","disconnectedCallback","componentDidLoad","slotWrapper","popoverMenuElements","componentWillRender","componentDidRender","handleMenuItemClick","detail","submenuTriggerFor","label","closeMenu","handleSubmenuChange","childEl","openFromParent","handleClick","handleKeyDown","key","preventDefault","blur","openingFromChild","openingFromParent","setFocusToAnchor","menuElement","icPopoverClosed","emit","render","h","Host","class","theme","menu","tabindex","role","ref","onClick","slot","viewBox","fill","xmlns","d","variant"],"sources":["src/components/ic-popover-menu/ic-popover-menu.css?tag=ic-popover-menu&encapsulation=shadow","src/components/ic-popover-menu/ic-popover-menu.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n* @prop --ic-z-index-popover: z-index of popover menu. \n* @prop --max-height: Maximum height of the popover menu.\n* @prop --popover-width: Default width of the popover menu.\n*/\n\n@media (prefers-reduced-motion: no-preference) {\n :host .opening-from-parent {\n animation: slide-in var(--ic-transition-duration-slow) ease-in-out;\n }\n\n :host .opening-from-child {\n animation: slide-out var(--ic-transition-duration-slow) ease-in-out;\n }\n}\n\n:host {\n border-radius: var(--ic-border-radius);\n color: var(--ic-popover-nav-text);\n\n --ic-typography-color: var(--ic-popover-nav-text);\n\n position: relative;\n z-index: var(--ic-z-index-popover);\n box-sizing: border-box;\n box-shadow: var(--ic-elevation-overlay);\n display: none;\n}\n\n:host(.on-dialog) {\n inset: auto !important;\n}\n\n:host(.on-dialog-fix-translate) {\n transform: translate(0, var(--ic-space-xs)) !important;\n}\n\n:host(.on-dialog-translate-y) {\n transform: translate(0, calc(-1 * var(--translate-y))) !important;\n}\n\n.menu {\n border: var(--ic-border-default);\n border-color: var(--ic-popover-border);\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-popover-background);\n visibility: hidden;\n height: 0;\n}\n\n.button {\n text-decoration: none;\n list-style-type: none;\n}\n\n:host(:focus-within) {\n box-shadow: var(--ic-border-focus);\n}\n\n.menu:focus-visible {\n outline: none;\n}\n\n:host(.ic-popover-menu-open) {\n display: block;\n min-width: calc(20rem - var(--ic-space-xl));\n width: var(--popover-width, 20rem);\n max-width: calc(100vw - var(--ic-space-xl));\n}\n\n:host(.ic-popover-menu-open) .menu {\n visibility: visible;\n height: fit-content;\n max-height: var(--max-height, fit-content);\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n.parent-label {\n --ic-typography-color: var(--ic-popover-parent-label);\n\n margin: var(--ic-space-xs) var(--ic-space-xs) 0;\n}\n\n@keyframes slide-in {\n from {\n opacity: 0;\n transform: translateX(10rem);\n }\n\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n@keyframes slide-out {\n from {\n opacity: 0;\n transform: translateX(-10rem);\n }\n\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n","import {\n Component,\n Element,\n Host,\n h,\n Prop,\n Listen,\n Watch,\n State,\n Method,\n Event,\n EventEmitter,\n} from \"@stencil/core\";\nimport { getSlotElements, isPropDefined } from \"../../utils/helpers\";\nimport { createPopper, Instance as PopperInstance } from \"@popperjs/core\";\nimport { IcThemeMode } from \"../../utils/types\";\n\n@Component({\n tag: \"ic-popover-menu\",\n styleUrl: \"ic-popover-menu.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class PopoverMenu {\n private anchorEl: HTMLElement;\n private ARIA_LABEL: string = \"aria-label\";\n private backButton: HTMLIcMenuItemElement;\n private currentFocus: number;\n private popoverMenuEls: HTMLIcMenuItemElement[] = [];\n private popperInstance: PopperInstance;\n\n @Element() el: HTMLIcPopoverMenuElement;\n\n @State() openingFromChild: boolean = false;\n @State() openingFromParent: boolean = false;\n\n /**\n * The ID of the element the popover menu will anchor itself to. This is required unless the popover is a submenu.\n */\n @Prop() anchor: string;\n\n /**\n * @internal The parent popover menu of a child popover menu.\n */\n @Prop() parentLabel?: string;\n\n /**\n * @internal The parent popover menu of a child popover menu.\n */\n @Prop() parentPopover?: HTMLIcPopoverMenuElement;\n\n /**\n * The unique identifier for a popover submenu.\n */\n @Prop() submenuId?: string;\n\n /**\n * @internal The level of menu being displayed.\n */\n @Prop() submenuLevel: number = 1;\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 * If `true`, the popover menu will be displayed.\n */\n @Prop({ reflect: true, mutable: true }) open: boolean = undefined;\n\n @Watch(\"open\")\n watchOpenHandler(): void {\n const popoverArr = this.el.parentElement?.querySelectorAll(\n `ic-popover-menu`\n ) as NodeListOf<HTMLIcPopoverMenuElement>;\n if (this.open) {\n if (popoverArr.length > 0) {\n popoverArr.forEach((popover) => {\n if (popover !== this.el) {\n popover.open = false;\n }\n });\n }\n if (\n this.parentPopover !== undefined &&\n !this.popoverMenuEls.some((menuItem) => menuItem.id)\n ) {\n this.popoverMenuEls.unshift(this.backButton);\n }\n\n this.currentFocus = 0;\n // Needed so that anchorEl isn't always focused\n setTimeout(this.setButtonFocus, 50);\n } else if (this.popperInstance) {\n if (popoverArr.length > 0) {\n popoverArr.forEach((popover) => {\n if (popover !== this.el) {\n popover.open = false;\n }\n });\n }\n this.popperInstance.destroy();\n this.popperInstance = null;\n }\n }\n\n /**\n * Emitted when the popover menu is closed.\n */\n @Event() icPopoverClosed: EventEmitter<HTMLIcMenuItemElement>;\n\n disconnectedCallback(): void {\n if (this.popperInstance) {\n this.popperInstance.destroy();\n this.popperInstance = null;\n }\n }\n\n componentDidLoad(): void {\n const slotWrapper = this.el.shadowRoot.querySelector(\"ul.button\");\n const popoverMenuElements = getSlotElements(slotWrapper);\n\n if (popoverMenuElements !== null) {\n this.addMenuItems(popoverMenuElements);\n }\n\n if (\n this.submenuId === undefined &&\n this.el.getAttribute(this.ARIA_LABEL) === null\n ) {\n console.error(\n `No aria-label specified for popover menu component - aria-label required`\n );\n }\n }\n\n componentWillRender(): void {\n this.anchorEl = this.findAnchorEl(this.anchor);\n }\n\n componentDidRender(): void {\n if (this.open && !this.popperInstance) {\n this.initPopperJS();\n }\n }\n\n @Listen(\"handleMenuItemClick\")\n handleMenuItemClick(ev: CustomEvent<HTMLIcMenuItemElement>): void {\n if (!ev.detail.submenuTriggerFor && ev.detail.label !== \"Back\") {\n this.closeMenu(false, ev.detail);\n }\n }\n\n // This is listening for the event emitted when a menu item is acting as a trigger button\n @Listen(\"triggerPopoverMenuInstance\", { capture: true })\n handleSubmenuChange(ev: Event): void {\n // Finds the trigger menu item that has emitted the event\n const target = ev.target as HTMLIcMenuItemElement;\n this.open = false;\n\n // Find the popover menu that the menu item triggers (i.e. submenu-trigger-for === submenu-id).\n const childEl = document.querySelector(\n `ic-popover-menu[submenu-id=${target.submenuTriggerFor}]`\n ) as HTMLIcPopoverMenuElement;\n // Set the parent popover menu of the submenu and open the submenu\n childEl.parentPopover = this.el;\n childEl.anchor = this.anchor;\n childEl.ariaLabel = this.el.getAttribute(this.ARIA_LABEL);\n childEl.openFromParent();\n childEl.submenuLevel = this.submenuLevel + 1;\n // Set the label in the submenu using the label of the menu item that has emitted the event\n childEl.parentLabel = target.label;\n }\n\n @Listen(\"click\", { target: \"document\" })\n handleClick(ev: Event): void {\n if (this.open && this.isNotPopoverMenuEl(ev)) {\n // If menu is open and the next click on the document is not a popover El, close the popover\n this.closeMenu();\n }\n }\n\n // Manages the keyboard navigation in the popover menu\n @Listen(\"keydown\", {})\n handleKeyDown(ev: KeyboardEvent): void {\n switch (ev.key) {\n case \"ArrowDown\":\n case \"ArrowUp\":\n ev.preventDefault();\n this.currentFocus = this.getNextItemToSelect(\n this.currentFocus,\n ev.key === \"ArrowDown\"\n );\n this.setButtonFocus();\n break;\n case \"Home\":\n //Sets home focus as first element, or back button\n this.currentFocus = 0;\n this.setButtonFocus();\n break;\n case \"End\":\n //Sets end focus as last element\n this.currentFocus = this.popoverMenuEls.length - 1;\n this.setButtonFocus();\n break;\n case \"Escape\":\n case \"Tab\":\n ev.preventDefault();\n if (this.open) {\n this.closeMenu(true);\n this.el.blur();\n }\n break;\n }\n }\n\n /**\n * @internal Opens the menu from the child menu.\n */\n @Method()\n async openFromChild(): Promise<void> {\n this.open = true;\n this.openingFromChild = true;\n\n setTimeout(() => (this.openingFromChild = false), 1000);\n }\n\n /**\n * @internal Opens the menu from the parent menu.\n */\n @Method()\n async openFromParent(): Promise<void> {\n this.open = true;\n this.openingFromParent = true;\n\n setTimeout(() => (this.openingFromParent = false), 1000);\n }\n\n private setButtonFocus = () => {\n this.popoverMenuEls[this.currentFocus]?.focus();\n };\n\n // Checks that the popover menu has an anchor\n private findAnchorEl = (anchor: string): HTMLElement => {\n let anchorElement: HTMLElement = null;\n if (!anchor) {\n this.submenuId === undefined &&\n console.error(\"No anchor specified for popover component\");\n } else {\n anchorElement = document.querySelector(\n anchor.indexOf(\"#\") === 0 ? anchor : \"#\" + anchor\n );\n if (anchorElement === null) {\n console.error(`Popover anchor element '${anchor}' not found`);\n }\n }\n return anchorElement;\n };\n\n private isNotPopoverMenuEl = (ev: Event) => {\n const { id, tagName } = ev.target as HTMLElement;\n return (\n id !== this.anchor &&\n tagName !== \"IC-MENU-ITEM\" &&\n tagName !== \"IC-MENU-GROUP\" &&\n tagName !== \"IC-POPOVER-MENU\"\n );\n };\n\n /**\n * @internal Close the menu, emit icPopoverClosed of the root popover\n * @param setFocusToAnchor when true return focus to anchor element when menu is closed\n */\n @Method()\n async closeMenu(\n setFocusToAnchor = false,\n menuElement?: HTMLIcMenuItemElement\n ): Promise<void> {\n this.open = false;\n if (this.parentPopover) {\n this.parentPopover.closeMenu(setFocusToAnchor, menuElement);\n } else {\n if (setFocusToAnchor) {\n this.anchorEl?.focus();\n }\n this.icPopoverClosed.emit(menuElement);\n }\n }\n\n private getNextItemToSelect = (\n currentItem: number,\n movingDown: boolean\n ): number => {\n const numButtons = this.popoverMenuEls.length - 1;\n\n if (currentItem < 1) {\n currentItem = 0;\n }\n\n let nextItem = movingDown ? currentItem + 1 : currentItem - 1;\n\n // Check if wrap around necessary\n if (nextItem < 0) {\n nextItem = numButtons;\n } else if (nextItem > numButtons) {\n nextItem = 0;\n }\n\n return nextItem;\n };\n\n private addMenuItems = (elements: Element[] | NodeListOf<ChildNode>) => {\n for (let i = 0; i < elements.length; i++) {\n const el = elements[i] as HTMLIcMenuItemElement;\n if (el.tagName === \"IC-MENU-ITEM\") {\n this.popoverMenuEls.push(el);\n } else if (el.tagName === \"IC-MENU-GROUP\") {\n const groupSlotWrapper = el.shadowRoot.querySelector(\n \".menu-items-wrapper\"\n );\n const menuGroupElements = getSlotElements(groupSlotWrapper);\n\n this.addMenuItems(menuGroupElements);\n }\n }\n };\n\n private getMenuAriaLabel = (): string => {\n const ariaLabel = this.el.getAttribute(this.ARIA_LABEL);\n\n if (isPropDefined(this.submenuId)) {\n return `${ariaLabel}, within nested level ${this.submenuLevel} ${this.parentLabel} submenu,`;\n } else {\n return ariaLabel;\n }\n };\n\n private handleBackButtonClick = (): void => {\n this.parentPopover.openFromChild();\n this.open = false;\n };\n\n private initPopperJS = () => {\n this.popperInstance = createPopper(this.anchorEl, this.el, {\n placement: \"bottom-start\",\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 4],\n },\n },\n {\n name: \"flip\",\n options: {\n fallbackPlacements: [\"top-start\", \"top-end\", \"bottom-end\"],\n rootBoundary: \"viewport\",\n },\n },\n ],\n });\n };\n\n render() {\n return (\n <Host\n class={{\n [\"ic-popover-menu-open\"]: this.open,\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n }}\n >\n <div\n id={\n this.parentPopover === undefined\n ? `ic-popover-submenu-${this.submenuId}`\n : \"\"\n }\n class={{\n menu: true,\n }}\n tabindex={open ? \"0\" : \"-1\"}\n >\n <span\n class={{\n \"opening-from-parent\": this.openingFromParent,\n \"opening-from-child\": this.openingFromChild,\n }}\n >\n {isPropDefined(this.submenuId) && (\n <span>\n <span role=\"menu\">\n <ic-menu-item\n class=\"ic-popover-submenu-back-button\"\n ref={(el) => (this.backButton = el)}\n label=\"Back\"\n onClick={this.handleBackButtonClick}\n id={`ic-popover-submenu-back-button-${this.submenuLevel}`}\n >\n <svg\n slot=\"icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"submenu-back-icon\"\n >\n <path\n d=\"M20 11H7.83L13.42 5.41L12 4L4 12L12 20L13.41 18.59L7.83 13H20V11Z\"\n fill=\"currentColor\"\n />\n </svg>\n </ic-menu-item>\n </span>\n <ic-typography variant=\"subtitle-small\" class=\"parent-label\">\n {this.parentLabel}\n </ic-typography>\n </span>\n )}\n <ul class=\"button\" aria-label={this.getMenuAriaLabel()} role=\"menu\">\n <slot></slot>\n </ul>\n </span>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icDataRowCss","DataRow","this","hasEndComponent","resizeObserver","runResizeObserver","ResizeObserver","checkLabelAbove","observe","el","renderCellContent","cell","isValue","h","class","isSlotUsed","name","variant","listSize","value","label","DEVICE_SIZES","XL","disconnectedCallback","_a","disconnect","componentWillLoad","deviceSize","getCurrentDeviceSize","slotHasContent","componentDidLoad","checkResizeObserver","labelEndComponent","rowSize","shadowRoot","querySelector","clientWidth","S","M","querySelectorAll","forEach","child","setAttribute","render","size","theme","Host","role"],"sources":["src/components/ic-data-row/ic-data-row.css?tag=ic-data-row&encapsulation=shadow","src/components/ic-data-row/ic-data-row.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n position: relative;\n display: block;\n}\n\n.data {\n display: flex;\n align-items: center;\n}\n\n.text-cells {\n display: flex;\n flex-grow: 1;\n min-width: 0;\n\n --ic-typography-color: var(--ic-data-list-text-cell);\n}\n\n.label {\n width: 12.5rem;\n min-width: 12.5rem;\n margin-right: var(--ic-space-md);\n\n --ic-typography-color: var(--ic-data-list-text-label);\n}\n\n.value {\n flex-grow: 1;\n}\n\nslot[name=\"value\"]::slotted(ic-text-field[readonly][hide-label]) {\n margin-top: calc(var(--ic-space-xs) * -1);\n}\n\nslot[name=\"value\"]::slotted(ic-text-field[small][readonly][hide-label]) {\n margin-top: calc(var(--ic-space-xxs) * -1);\n}\n\nslot[name=\"value\"]::slotted(ic-text-field[readonly][hide-label][rows]) {\n margin-top: calc(var(--ic-space-xxs) * -1 - var(--ic-space-xxxs));\n}\n\n.end-component {\n width: fit-content;\n margin-left: 3.5rem;\n}\n\n.divider {\n margin-top: var(--ic-space-md);\n height: var(--ic-border-width);\n background-color: var(--ic-data-list-keyline-cell);\n}\n\n:host(.ic-data-row-small) .divider {\n margin-top: var(--ic-space-xs);\n}\n\n:host(.breakpoint-medium) .label {\n width: 10rem;\n min-width: 10rem;\n}\n\n:host(.breakpoint-xs) .text-cells {\n flex-direction: column;\n}\n\n:host(.breakpoint-xs) .label {\n width: 8rem;\n margin-bottom: var(--ic-space-xs);\n}\n\n:host(.breakpoint-xs) .value {\n max-width: 95%;\n}\n\n:host(.breakpoint-xs) .end-component {\n margin-left: 0;\n}\n\n@media (forced-colors: active) {\n .divider {\n background-color: canvastext;\n }\n}\n","import { Component, Element, Host, Prop, h, State } from \"@stencil/core\";\nimport {\n checkResizeObserver,\n DEVICE_SIZES,\n getCurrentDeviceSize,\n isSlotUsed,\n slotHasContent,\n} from \"../../utils/helpers\";\nimport { IcSizesNoLarge, IcThemeMode } from \"../../utils/types\";\n\n/**\n * @slot label - Content will be rendered in the leftmost cell.\n * @slot value - Content will be rendered to the right of the label.\n * @slot end-component - Content will be displayed in the rightmost cell.\n */\n@Component({\n tag: \"ic-data-row\",\n styleUrl: \"ic-data-row.css\",\n shadow: true,\n})\nexport class DataRow {\n private hasEndComponent: boolean = false;\n private resizeObserver: ResizeObserver = null;\n\n @Element() el: HTMLIcDataRowElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() listSize: \"xl\" | \"m\" | \"xs\";\n\n /**\n * The label in the leftmost cell of the row.\n */\n @Prop() label: string;\n\n /**\n * The size of the data row component.\n */\n @Prop() size?: IcSizesNoLarge = \"medium\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The value of the middle (right if no end-component supplied) cell of the row.\n */\n @Prop() value: string;\n\n disconnectedCallback(): void {\n this.resizeObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.deviceSize = getCurrentDeviceSize();\n this.hasEndComponent = slotHasContent(this.el, \"end-component\");\n this.checkLabelAbove();\n }\n\n componentDidLoad(): void {\n checkResizeObserver(this.runResizeObserver);\n if (this.hasEndComponent) this.labelEndComponent();\n }\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.checkLabelAbove();\n });\n\n this.resizeObserver.observe(this.el);\n };\n\n private checkLabelAbove() {\n const rowSize = this.el.shadowRoot.querySelector(\".data\")?.clientWidth + 46;\n if (rowSize) {\n this.listSize =\n rowSize < DEVICE_SIZES.S ? \"xs\" : rowSize < DEVICE_SIZES.M ? \"m\" : \"xl\";\n }\n }\n\n private renderCellContent = (cell: \"label\" | \"value\") => {\n const isValue = cell === \"value\";\n return (\n <div class={cell}>\n {isSlotUsed(this.el, cell) ? (\n <slot name={cell}></slot>\n ) : (\n <ic-typography\n variant={\n isValue\n ? \"body\"\n : this.listSize === \"xs\"\n ? \"label\"\n : \"subtitle-large\"\n }\n >\n {isValue ? this.value : this.label}\n </ic-typography>\n )}\n </div>\n );\n };\n\n private labelEndComponent(): void {\n this.el.shadowRoot\n .querySelectorAll(\"slot[name=end-component]\")\n .forEach((child) =>\n child.setAttribute(\"aria-label\", `for ${this.label} row`)\n );\n }\n\n render() {\n const {\n el,\n listSize,\n hasEndComponent,\n label,\n renderCellContent,\n size,\n theme,\n value,\n } = this;\n\n return (\n <Host\n class={{\n [\"ic-data-row-small\"]: size === \"small\",\n [\"breakpoint-medium\"]: listSize === \"m\",\n [\"breakpoint-xs\"]: listSize === \"xs\",\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n role=\"listitem\"\n >\n <div class=\"data\">\n <div class=\"text-cells\">\n {(isSlotUsed(el, \"label\") || label) && renderCellContent(\"label\")}\n {(isSlotUsed(el, \"value\") || value) && renderCellContent(\"value\")}\n </div>\n {hasEndComponent && (\n <div class=\"end-component\">\n <slot name=\"end-component\"></slot>\n </div>\n )}\n </div>\n <div class=\"divider\" />\n </Host>\n );\n }\n}\n"],"mappings":"yHAAA,MAAMA,EAAe,4mH,MCoBRC,EAAO,M,yBACVC,KAAAC,gBAA2B,MAC3BD,KAAAE,eAAiC,KA0CjCF,KAAAG,kBAAoB,KAC1BH,KAAKE,eAAiB,IAAIE,gBAAe,KACvCJ,KAAKK,iBAAiB,IAGxBL,KAAKE,eAAeI,QAAQN,KAAKO,GAAG,EAW9BP,KAAAQ,kBAAqBC,IAC3B,MAAMC,EAAUD,IAAS,QACzB,OACEE,EAAA,OAAKC,MAAOH,GACTI,EAAWb,KAAKO,GAAIE,GACnBE,EAAA,QAAMG,KAAML,IAEZE,EAAA,iBACEI,QACEL,EACI,OACAV,KAAKgB,WAAa,KAClB,QACA,kBAGLN,EAAUV,KAAKiB,MAAQjB,KAAKkB,OAG7B,E,gBAzEoBC,EAAaC,G,uDAWX,S,WAKF,U,qBAO9B,oBAAAC,G,OACEC,EAAAtB,KAAKE,kBAAc,MAAAoB,SAAA,SAAAA,EAAEC,Y,CAGvB,iBAAAC,GACExB,KAAKyB,WAAaC,IAClB1B,KAAKC,gBAAkB0B,EAAe3B,KAAKO,GAAI,iBAC/CP,KAAKK,iB,CAGP,gBAAAuB,GACEC,EAAoB7B,KAAKG,mBACzB,GAAIH,KAAKC,gBAAiBD,KAAK8B,mB,CAWzB,eAAAzB,G,MACN,MAAM0B,IAAUT,EAAAtB,KAAKO,GAAGyB,WAAWC,cAAc,YAAQ,MAAAX,SAAA,SAAAA,EAAEY,aAAc,GACzE,GAAIH,EAAS,CACX/B,KAAKgB,SACHe,EAAUZ,EAAagB,EAAI,KAAOJ,EAAUZ,EAAaiB,EAAI,IAAM,I,EA2BjE,iBAAAN,GACN9B,KAAKO,GAAGyB,WACLK,iBAAiB,4BACjBC,SAASC,GACRA,EAAMC,aAAa,aAAc,OAAOxC,KAAKkB,c,CAInD,MAAAuB,GACE,MAAMlC,GACJA,EAAES,SACFA,EAAQf,gBACRA,EAAeiB,MACfA,EAAKV,kBACLA,EAAiBkC,KACjBA,EAAIC,MACJA,EAAK1B,MACLA,GACEjB,KAEJ,OACEW,EAACiC,EAAI,CACHhC,MAAO,CACL,CAAC,qBAAsB8B,IAAS,QAChC,CAAC,qBAAsB1B,IAAa,IACpC,CAAC,iBAAkBA,IAAa,KAChC,CAAC,YAAY2B,KAAUA,IAAU,WAEnCE,KAAK,YAELlC,EAAA,OAAKC,MAAM,QACTD,EAAA,OAAKC,MAAM,eACPC,EAAWN,EAAI,UAAYW,IAAUV,EAAkB,UACvDK,EAAWN,EAAI,UAAYU,IAAUT,EAAkB,UAE1DP,GACCU,EAAA,OAAKC,MAAM,iBACTD,EAAA,QAAMG,KAAK,oBAIjBH,EAAA,OAAKC,MAAM,Y"}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as t,c as i,h as s,H as e,g as o}from"./p-6b5e91e2.js";import{c as a}from"./p-f074ef5b.js";import{i as n,V as r,b as c,O as d,d as l}from"./p-cda4aca9.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)}.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)}.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-light)}.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=1e3;const u=70;const p=140;const b=class{constructor(s){t(this,s);this.icDismiss=i(this,"icDismiss",7);this.interactiveElements=[];this.dismissAction=()=>{this.icDismiss.emit()};this.handleProgressChange=()=>{this.timerProgress-=m/this.autoDismissTimeout*100};this.onFocus=()=>{if(this.focusInteractiveElement){this.isManual=true}};this.onBlur=()=>{this.handleTimer({type:"mouseleave"})};this.isManual=undefined;this.timerProgress=100;this.visible=false;this.autoDismissTimeout=5e3;this.dismissButtonAriaLabel="dismiss";this.dismissMode="manual";this.heading=undefined;this.message=undefined;this.neutralIconAriaLabel=undefined;this.variant=undefined}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,((t=this.message)===null||t===void 0?void 0:t.length)>p);if(this.autoDismissTimeout<5e3)this.autoDismissTimeout=5e3;if(n(this.el,"action"))this.dismissMode="manual";this.isManual=this.dismissMode==="manual";if(n(this.el,"neutral-icon"))this.variant="neutral";if(this.variant==="neutral"){this.neutralVariantLabel=(i=this.neutralIconAriaLabel)!==null&&i!==void 0?i:r[this.variant].ariaLabel}if(this.isManual){const t=l(this.message)?`. ${this.message}`:"";this.el.setAttribute("aria-label",this.variant?this.neutralVariantLabel||r[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(){if(this.focusInteractiveElement&&this.isManual){this.resetAutoDismissTimer();const t=d(this.el,"action");const i=this.el.shadowRoot.querySelector("ic-button");if(t)this.interactiveElements.push(t);if(i)this.interactiveElements.push(i);this.focusInteractiveElement=false;this.findNextInteractiveElement(this.shiftKeyPressed).setFocus();this.shiftKeyPressed=false}}watchVisibleHandler(){if(this.visible){const t=d(this.el,"action");const i=this.el.shadowRoot.querySelector("ic-button");if(t)this.interactiveElements.push(t);if(i)this.interactiveElements.push(i)}else{this.interactiveElements=[]}}handleDismiss(){this.visible=false;this.resetAutoDismissTimer()}handleKeyboard(t){if(this.visible){if(this.isManual){switch(t.key){case"Tab":t.preventDefault();this.findNextInteractiveElement(t.shiftKey).setFocus();break;case"Escape":!t.repeat&&this.dismissAction();t.stopImmediatePropagation();break}}else{if(t.key==="Tab"){this.shiftKeyPressed=t.shiftKey;this.focusInteractiveElement=true}}}}handleTimer(t){switch(t.type){case"mouseenter":if(!this.isManual){this.resetAutoDismissTimer()}this.isManual=true;break;case"mouseleave":if(this.dismissMode==="automatic"){this.isManual=false;this.interactiveElements=[];if(this.visible){this.dismissTimeout=window.setTimeout(this.dismissAction,this.autoDismissTimeout);this.timerRefreshInterval=window.setInterval(this.handleProgressChange,m)}}break}}async setVisible(){if(!this.visible)this.visible=true;if(!this.isManual){this.dismissTimeout=window.setTimeout(this.dismissAction,this.autoDismissTimeout);this.timerRefreshInterval=window.setInterval(this.handleProgressChange,m);return null}else{window.setTimeout((()=>this.interactiveElements[0].setFocus()),200);return document.activeElement}}handleLongText(t,i){if(i||t){console.error(`Too many characters in toast ${t?"heading":""}${t&&i?" and ":""}${i?"message":""}. Refer to character limits specified in the prop description`)}}findNextInteractiveElement(t){const i=this.interactiveElements[0];const s=this.interactiveElements[this.interactiveElements.length-1];if(this.isActive(t?i:s))return t?s:i;let e;return this.interactiveElements.some(((t,i)=>{if(!this.isActive(t))return false;e=i;return true}))?this.interactiveElements[e+(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:o,visible:c,isManual:d,dismissButtonAriaLabel:l}=this;return s(e,{class:{["ic-toast-hidden"]:!c},tabindex:"0",onFocus:this.onFocus,onBlur:this.onBlur,role:d?"dialog":"alert","aria-live":d?null:"polite"},s("div",{class:"container"},t&&c&&s("div",{class:"toast-icon-container"},s("div",{class:{["divider"]:true,[`divider-${t}`]:true}}),t==="neutral"?s("slot",{name:"neutral-icon"}):s("span",{class:"toast-icon",innerHTML:r[t].icon})),s("div",{class:{["toast-content"]:true,["no-icon"]:t==="neutral"&&!n(this.el,"neutral-icon")}},s("div",{class:"toast-text"},s("ic-typography",{variant:"subtitle-large",class:"toast-heading"},c&&(d?s("h5",null,i):s("p",null,i))),o&&s("ic-typography",{variant:"body",class:"toast-message"},c&&s("p",null,o))),n(this.el,"action")&&s("div",{class:"toast-action-container"},s("slot",{name:"action"}))),!d?s("ic-loading-indicator",{class:"toast-dismiss-timer",theme:"dark",monochrome:true,size:"icon",progress:this.timerProgress,description:"Dismiss timer"}):s("ic-button",{id:"dismiss-button",innerHTML:a,onClick:this.dismissAction,variant:"icon","aria-label":l})))}get el(){return o(this)}static get watchers(){return{dismissMode:["dismissModeChangeHandler"],visible:["watchVisibleHandler"]}}};b.style=h;export{b as ic_toast};
|
2
|
-
//# sourceMappingURL=p-e6dc3cd1.entry.js.map
|