@ukic/web-components 3.17.0 → 3.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/core.cjs.js +1 -1
- package/dist/cjs/ic-alert.cjs.entry.js +6 -2
- package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js +28 -16
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox-group.cjs.entry.js +23 -2
- package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-chip.cjs.entry.js +12 -5
- package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-list.cjs.entry.js +4 -3
- package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-row.cjs.entry.js +3 -3
- package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
- package/dist/cjs/ic-empty-state.cjs.entry.js +2 -2
- package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
- package/dist/cjs/ic-hero.cjs.entry.js +4 -4
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +5 -5
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +9 -9
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-label_2.cjs.entry.js +5 -6
- package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-layout-grid-item.cjs.entry.js +2 -2
- package/dist/cjs/ic-layout-grid.cjs.entry.js +2 -2
- package/dist/cjs/ic-link.cjs.entry.js +1 -1
- package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-menu.cjs.entry.js +4 -4
- package/dist/cjs/ic-page-header.cjs.entry.js +6 -6
- package/dist/cjs/ic-pagination-item.cjs.entry.js +1 -1
- package/dist/cjs/ic-pagination.cjs.entry.js +29 -4
- package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-popover-menu.cjs.entry.js +4 -4
- package/dist/cjs/ic-radio-group.cjs.entry.js +4 -4
- package/dist/cjs/ic-radio-option.cjs.entry.js +4 -4
- package/dist/cjs/ic-search-bar.cjs.entry.js +9 -9
- package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
- package/dist/cjs/ic-select.cjs.entry.js +6 -6
- package/dist/cjs/ic-side-navigation.cjs.entry.js +4 -4
- package/dist/cjs/ic-skeleton.cjs.entry.js +20 -5
- package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
- package/dist/cjs/ic-status-tag.cjs.entry.js +2 -2
- package/dist/cjs/ic-step.cjs.entry.js +16 -14
- package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-stepper.cjs.entry.js +24 -4
- package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-switch.cjs.entry.js +4 -4
- package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
- package/dist/cjs/ic-tab-group.cjs.entry.js +2 -2
- package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
- package/dist/cjs/ic-text-field.cjs.entry.js +5 -5
- package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-theme.cjs.entry.js +1 -1
- package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
- package/dist/cjs/ic-toast.cjs.entry.js +5 -5
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js +2 -2
- package/dist/cjs/ic-toggle-button.cjs.entry.js +2 -2
- package/dist/cjs/ic-top-navigation.cjs.entry.js +5 -2
- package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/ic-alert/ic-alert.js +26 -2
- package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
- package/dist/collection/components/ic-alert/ic-alert.stories.js +15 -0
- package/dist/collection/components/ic-button/ic-button.css +12 -0
- package/dist/collection/components/ic-button/ic-button.js +3 -3
- package/dist/collection/components/ic-button/ic-button.js.map +1 -1
- package/dist/collection/components/ic-button/ic-button.stories.js +251 -0
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +25 -2
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +17 -9
- package/dist/collection/components/ic-chip/ic-chip.css +12 -0
- package/dist/collection/components/ic-chip/ic-chip.js +31 -4
- package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
- package/dist/collection/components/ic-chip/ic-chip.stories.js +15 -0
- package/dist/collection/components/ic-data-list/ic-data-list.css +4 -0
- package/dist/collection/components/ic-data-list/ic-data-list.js +3 -2
- package/dist/collection/components/ic-data-list/ic-data-list.js.map +1 -1
- package/dist/collection/components/ic-data-list/ic-data-list.stories.js +6 -0
- package/dist/collection/components/ic-data-row/ic-data-row.css +1 -1
- package/dist/collection/components/ic-data-row/ic-data-row.js +2 -2
- package/dist/collection/components/ic-dialog/ic-dialog.js +1 -1
- package/dist/collection/components/ic-empty-state/ic-empty-state.js +2 -2
- package/dist/collection/components/ic-footer-link/ic-footer-link.js +2 -2
- package/dist/collection/components/ic-hero/ic-hero.js +4 -4
- package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +5 -5
- package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +3 -3
- package/dist/collection/components/ic-input-container/ic-input-container.js +2 -2
- package/dist/collection/components/ic-input-label/ic-input-label.js +2 -2
- package/dist/collection/components/ic-input-validation/ic-input-validation.js +8 -8
- package/dist/collection/components/ic-input-validation/ic-input-validation.js.map +1 -1
- package/dist/collection/components/ic-layout-grid/ic-layout-grid.js +2 -2
- package/dist/collection/components/ic-layout-grid-item/ic-layout-grid-item.js +2 -2
- package/dist/collection/components/ic-link/ic-link.js +1 -1
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +29 -14
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
- package/dist/collection/components/ic-menu/ic-menu.css +1 -1
- package/dist/collection/components/ic-menu/ic-menu.js +3 -3
- package/dist/collection/components/ic-menu-group/ic-menu-group.js +1 -1
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +1 -1
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -4
- package/dist/collection/components/ic-page-header/ic-page-header.js +6 -6
- package/dist/collection/components/ic-pagination/ic-pagination.js +35 -4
- package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
- package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +1 -1
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +4 -4
- package/dist/collection/components/ic-radio-group/ic-radio-group.js +4 -4
- package/dist/collection/components/ic-radio-option/ic-radio-option.js +4 -4
- package/dist/collection/components/ic-search-bar/ic-search-bar.js +9 -9
- package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
- package/dist/collection/components/ic-select/ic-select.js +6 -6
- package/dist/collection/components/ic-select/ic-select_(multi).stories.js +2 -2
- package/dist/collection/components/ic-select/ic-select_(searchable).stories.js +1 -1
- package/dist/collection/components/ic-select/ic-select_(single).stories.js +3 -3
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +4 -4
- package/dist/collection/components/ic-skeleton/ic-skeleton.js +58 -5
- package/dist/collection/components/ic-skeleton/ic-skeleton.js.map +1 -1
- package/dist/collection/components/ic-skeleton/ic-skeleton.stories.js +4 -3
- package/dist/collection/components/ic-skip-link/ic-skip-link.js +2 -2
- package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
- package/dist/collection/components/ic-step/ic-step.css +16 -7
- package/dist/collection/components/ic-step/ic-step.js +19 -14
- package/dist/collection/components/ic-step/ic-step.js.map +1 -1
- package/dist/collection/components/ic-stepper/ic-stepper.js +24 -4
- package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
- package/dist/collection/components/ic-stepper/ic-stepper.stories.js +12 -0
- package/dist/collection/components/ic-switch/ic-switch.js +4 -4
- package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -1
- package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
- package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
- package/dist/collection/components/ic-text-field/ic-text-field.js +6 -5
- package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
- package/dist/collection/components/ic-text-field/ic-text-field.stories.js +12 -1
- package/dist/collection/components/ic-theme/ic-theme.js +1 -1
- package/dist/collection/components/ic-toast/ic-toast.js +5 -5
- package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
- package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +2 -2
- package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +2 -2
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +5 -2
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
- package/dist/components/ic-alert.js +7 -2
- package/dist/components/ic-alert.js.map +1 -1
- package/dist/components/ic-button2.js +4 -4
- package/dist/components/ic-button2.js.map +1 -1
- package/dist/components/ic-checkbox-group.js +24 -2
- package/dist/components/ic-checkbox-group.js.map +1 -1
- package/dist/components/ic-chip.js +13 -5
- package/dist/components/ic-chip.js.map +1 -1
- package/dist/components/ic-data-list.js +4 -3
- package/dist/components/ic-data-list.js.map +1 -1
- package/dist/components/ic-data-row.js +3 -3
- package/dist/components/ic-data-row.js.map +1 -1
- package/dist/components/ic-dialog.js +1 -1
- package/dist/components/ic-empty-state.js +2 -2
- package/dist/components/ic-footer-link.js +2 -2
- package/dist/components/ic-hero.js +4 -4
- package/dist/components/ic-horizontal-scroll2.js +5 -5
- package/dist/components/ic-input-component-container2.js +3 -3
- package/dist/components/ic-input-container2.js +2 -2
- package/dist/components/ic-input-label2.js +2 -2
- package/dist/components/ic-input-validation2.js +4 -5
- package/dist/components/ic-input-validation2.js.map +1 -1
- package/dist/components/ic-layout-grid-item.js +2 -2
- package/dist/components/ic-layout-grid.js +2 -2
- package/dist/components/ic-link2.js +1 -1
- package/dist/components/ic-loading-indicator2.js +27 -13
- package/dist/components/ic-loading-indicator2.js.map +1 -1
- package/dist/components/ic-menu-group.js +1 -1
- package/dist/components/ic-menu2.js +4 -4
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-navigation-group.js +1 -1
- package/dist/components/ic-navigation-menu2.js +4 -4
- package/dist/components/ic-page-header.js +6 -6
- package/dist/components/ic-page-header.js.map +1 -1
- package/dist/components/ic-pagination-item2.js +1 -1
- package/dist/components/ic-pagination.js +30 -5
- package/dist/components/ic-pagination.js.map +1 -1
- package/dist/components/ic-popover-menu.js +4 -4
- package/dist/components/ic-popover-menu.js.map +1 -1
- package/dist/components/ic-radio-group.js +4 -4
- package/dist/components/ic-radio-group.js.map +1 -1
- package/dist/components/ic-radio-option.js +4 -4
- package/dist/components/ic-search-bar.js +9 -9
- package/dist/components/ic-section-container2.js +2 -2
- package/dist/components/ic-select.js +6 -6
- package/dist/components/ic-side-navigation.js +4 -4
- package/dist/components/ic-side-navigation.js.map +1 -1
- package/dist/components/ic-skeleton.js +23 -6
- package/dist/components/ic-skeleton.js.map +1 -1
- package/dist/components/ic-skip-link.js +2 -2
- package/dist/components/ic-status-tag.js +2 -2
- package/dist/components/ic-step.js +17 -15
- package/dist/components/ic-step.js.map +1 -1
- package/dist/components/ic-stepper.js +24 -4
- package/dist/components/ic-stepper.js.map +1 -1
- package/dist/components/ic-switch.js +4 -4
- package/dist/components/ic-tab-context.js +1 -1
- package/dist/components/ic-tab-group.js +2 -2
- package/dist/components/ic-tab-panel.js +2 -2
- package/dist/components/ic-text-field.js +5 -5
- package/dist/components/ic-text-field.js.map +1 -1
- package/dist/components/ic-theme.js +1 -1
- package/dist/components/ic-toast-region.js +1 -1
- package/dist/components/ic-toast.js +5 -5
- package/dist/components/ic-toggle-button-group.js +2 -2
- package/dist/components/ic-toggle-button.js +2 -2
- package/dist/components/ic-top-navigation.js +5 -2
- package/dist/components/ic-top-navigation.js.map +1 -1
- package/dist/core/core.css +1 -1
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/{p-b83a736d.entry.js → p-012e058a.entry.js} +3 -3
- package/dist/core/p-012e058a.entry.js.map +1 -0
- package/dist/core/{p-6329ddcb.entry.js → p-0257d59e.entry.js} +2 -2
- package/dist/core/{p-d3223b89.entry.js → p-06b3ae40.entry.js} +2 -2
- package/dist/core/{p-f6bb691a.entry.js → p-091a7fbf.entry.js} +2 -2
- package/dist/core/{p-b4a2f6fa.entry.js → p-0eafbaa1.entry.js} +2 -2
- package/dist/core/p-0eafbaa1.entry.js.map +1 -0
- package/dist/core/{p-1ca4a5ed.entry.js → p-128e2cbb.entry.js} +2 -2
- package/dist/core/{p-afbba548.entry.js → p-21efc36e.entry.js} +2 -2
- package/dist/core/{p-04cb17d7.entry.js → p-287e5c17.entry.js} +2 -2
- package/dist/core/{p-4d3b219c.entry.js → p-28c9a6e4.entry.js} +2 -2
- package/dist/core/{p-f57729b8.entry.js → p-296a41ce.entry.js} +2 -2
- package/dist/core/p-34cc376c.entry.js +2 -0
- package/dist/core/p-34cc376c.entry.js.map +1 -0
- package/dist/core/{p-eca43f7d.entry.js → p-3b13d191.entry.js} +2 -2
- package/dist/core/{p-adde6c66.entry.js → p-43356493.entry.js} +2 -2
- package/dist/core/{p-3636be4f.entry.js → p-44aaf454.entry.js} +2 -2
- package/dist/core/{p-f4e3bb5b.entry.js → p-44fbe8c2.entry.js} +2 -2
- package/dist/core/{p-a7583faf.entry.js → p-4637c326.entry.js} +2 -2
- package/dist/core/{p-30312243.entry.js → p-49444c33.entry.js} +2 -2
- package/dist/core/p-49444c33.entry.js.map +1 -0
- package/dist/core/p-4fa7fbc4.entry.js +2 -0
- package/dist/core/p-4fa7fbc4.entry.js.map +1 -0
- package/dist/core/{p-2026f4fa.entry.js → p-52fa3eec.entry.js} +2 -2
- package/dist/core/{p-2026f4fa.entry.js.map → p-52fa3eec.entry.js.map} +1 -1
- package/dist/core/{p-9c52ee48.entry.js → p-539b975f.entry.js} +2 -2
- package/dist/core/{p-319e3d5b.entry.js → p-5cf704e3.entry.js} +2 -2
- package/dist/core/p-5e1a77aa.entry.js +2 -0
- package/dist/core/p-5e1a77aa.entry.js.map +1 -0
- package/dist/core/{p-601d4e3f.entry.js → p-614953c5.entry.js} +2 -2
- package/dist/core/{p-3d23ce54.entry.js → p-6b6c1491.entry.js} +2 -2
- package/dist/core/{p-5254a078.entry.js → p-6e8ef73c.entry.js} +2 -2
- package/dist/core/{p-ae11583f.entry.js → p-6fb29846.entry.js} +2 -2
- package/dist/core/p-70e1dd4d.entry.js +2 -0
- package/dist/core/p-70e1dd4d.entry.js.map +1 -0
- package/dist/core/{p-52c66bfe.entry.js → p-72ac8bb9.entry.js} +2 -2
- package/dist/core/{p-ffd0d9d1.entry.js → p-7552c8a1.entry.js} +2 -2
- package/dist/core/{p-a8e4258f.entry.js → p-8798cc6b.entry.js} +2 -2
- package/dist/core/p-8798cc6b.entry.js.map +1 -0
- package/dist/core/{p-ca82850f.entry.js → p-9452b9ac.entry.js} +2 -2
- package/dist/core/p-9452b9ac.entry.js.map +1 -0
- package/dist/core/p-a5295f66.entry.js +2 -0
- package/dist/core/p-a5295f66.entry.js.map +1 -0
- package/dist/core/p-a7645717.entry.js +2 -0
- package/dist/core/p-a7645717.entry.js.map +1 -0
- package/dist/core/p-a86785dd.entry.js +2 -0
- package/dist/core/p-a86785dd.entry.js.map +1 -0
- package/dist/core/{p-703f3de1.entry.js → p-a8dc3162.entry.js} +2 -2
- package/dist/core/{p-f7105cf9.entry.js → p-ad6632a9.entry.js} +2 -2
- package/dist/core/p-ae861bb8.entry.js +2 -0
- package/dist/core/{p-7d0d85c4.entry.js → p-af02add9.entry.js} +2 -2
- package/dist/core/{p-9674b63f.entry.js → p-b00efb15.entry.js} +2 -2
- package/dist/core/{p-3238389a.entry.js → p-bb3a5130.entry.js} +2 -2
- package/dist/core/{p-53740194.entry.js → p-bfd03fb4.entry.js} +2 -2
- package/dist/core/p-bfd03fb4.entry.js.map +1 -0
- package/dist/core/{p-67c3985d.entry.js → p-d8200098.entry.js} +2 -2
- package/dist/core/{p-6ed48c46.entry.js → p-dfc2a0b1.entry.js} +2 -2
- package/dist/core/{p-12c30491.entry.js → p-f4e2e41f.entry.js} +2 -2
- package/dist/core/{p-9ca147f3.entry.js → p-fb43abd6.entry.js} +2 -2
- package/dist/esm/core.js +1 -1
- package/dist/esm/ic-alert.entry.js +6 -2
- package/dist/esm/ic-alert.entry.js.map +1 -1
- package/dist/esm/ic-button_3.entry.js +28 -16
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +23 -2
- package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
- package/dist/esm/ic-chip.entry.js +12 -5
- package/dist/esm/ic-chip.entry.js.map +1 -1
- package/dist/esm/ic-data-list.entry.js +4 -3
- package/dist/esm/ic-data-list.entry.js.map +1 -1
- package/dist/esm/ic-data-row.entry.js +3 -3
- package/dist/esm/ic-data-row.entry.js.map +1 -1
- package/dist/esm/ic-dialog.entry.js +1 -1
- package/dist/esm/ic-empty-state.entry.js +2 -2
- package/dist/esm/ic-footer-link.entry.js +2 -2
- package/dist/esm/ic-hero.entry.js +4 -4
- package/dist/esm/ic-horizontal-scroll.entry.js +5 -5
- package/dist/esm/ic-input-component-container_3.entry.js +9 -9
- package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
- package/dist/esm/ic-input-label_2.entry.js +6 -7
- package/dist/esm/ic-input-label_2.entry.js.map +1 -1
- package/dist/esm/ic-layout-grid-item.entry.js +2 -2
- package/dist/esm/ic-layout-grid.entry.js +2 -2
- package/dist/esm/ic-link.entry.js +1 -1
- package/dist/esm/ic-menu-group.entry.js +1 -1
- package/dist/esm/ic-navigation-group.entry.js +1 -1
- package/dist/esm/ic-navigation-menu.entry.js +4 -4
- package/dist/esm/ic-page-header.entry.js +6 -6
- package/dist/esm/ic-pagination-item.entry.js +1 -1
- package/dist/esm/ic-pagination.entry.js +29 -4
- package/dist/esm/ic-pagination.entry.js.map +1 -1
- package/dist/esm/ic-popover-menu.entry.js +4 -4
- package/dist/esm/ic-radio-group.entry.js +4 -4
- package/dist/esm/ic-radio-option.entry.js +4 -4
- package/dist/esm/ic-search-bar.entry.js +9 -9
- package/dist/esm/ic-section-container.entry.js +2 -2
- package/dist/esm/ic-select.entry.js +6 -6
- package/dist/esm/ic-side-navigation.entry.js +4 -4
- package/dist/esm/ic-skeleton.entry.js +20 -5
- package/dist/esm/ic-skeleton.entry.js.map +1 -1
- package/dist/esm/ic-skip-link.entry.js +2 -2
- package/dist/esm/ic-status-tag.entry.js +2 -2
- package/dist/esm/ic-step.entry.js +17 -15
- package/dist/esm/ic-step.entry.js.map +1 -1
- package/dist/esm/ic-stepper.entry.js +24 -4
- package/dist/esm/ic-stepper.entry.js.map +1 -1
- package/dist/esm/ic-switch.entry.js +4 -4
- package/dist/esm/ic-tab-context.entry.js +1 -1
- package/dist/esm/ic-tab-group.entry.js +2 -2
- package/dist/esm/ic-tab-panel.entry.js +2 -2
- package/dist/esm/ic-text-field.entry.js +5 -5
- package/dist/esm/ic-text-field.entry.js.map +1 -1
- package/dist/esm/ic-theme.entry.js +1 -1
- package/dist/esm/ic-toast-region.entry.js +1 -1
- package/dist/esm/ic-toast.entry.js +5 -5
- package/dist/esm/ic-toggle-button-group.entry.js +2 -2
- package/dist/esm/ic-toggle-button.entry.js +2 -2
- package/dist/esm/ic-top-navigation.entry.js +5 -2
- package/dist/esm/ic-top-navigation.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-alert/ic-alert.d.ts +4 -0
- package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +3 -0
- package/dist/types/components/ic-chip/ic-chip.d.ts +5 -0
- package/dist/types/components/ic-input-validation/ic-input-validation.d.ts +2 -1
- package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +4 -1
- package/dist/types/components/ic-pagination/ic-pagination.d.ts +7 -0
- package/dist/types/components/ic-skeleton/ic-skeleton.d.ts +8 -0
- package/dist/types/components/ic-step/ic-step.d.ts +3 -0
- package/dist/types/components/ic-stepper/ic-stepper.d.ts +1 -0
- package/dist/types/components/ic-text-field/ic-text-field.d.ts +1 -0
- package/dist/types/components.d.ts +36 -4
- package/hydrate/index.js +291 -172
- package/hydrate/index.mjs +291 -172
- package/package.json +17 -23
- package/vscode-data.json +17 -1
- package/dist/core/p-199c5ff6.entry.js +0 -2
- package/dist/core/p-199c5ff6.entry.js.map +0 -1
- package/dist/core/p-1f41818b.entry.js +0 -2
- package/dist/core/p-1f41818b.entry.js.map +0 -1
- package/dist/core/p-30312243.entry.js.map +0 -1
- package/dist/core/p-33e35173.entry.js +0 -2
- package/dist/core/p-33e35173.entry.js.map +0 -1
- package/dist/core/p-34407b13.entry.js +0 -2
- package/dist/core/p-34407b13.entry.js.map +0 -1
- package/dist/core/p-42d35fc4.entry.js +0 -2
- package/dist/core/p-42d35fc4.entry.js.map +0 -1
- package/dist/core/p-53740194.entry.js.map +0 -1
- package/dist/core/p-a8e4258f.entry.js.map +0 -1
- package/dist/core/p-b4a2f6fa.entry.js.map +0 -1
- package/dist/core/p-b59504f1.entry.js +0 -2
- package/dist/core/p-b59504f1.entry.js.map +0 -1
- package/dist/core/p-b83a736d.entry.js.map +0 -1
- package/dist/core/p-ca82850f.entry.js.map +0 -1
- package/dist/core/p-cce398e1.entry.js +0 -2
- package/dist/core/p-cce398e1.entry.js.map +0 -1
- package/dist/core/p-f51c609d.entry.js +0 -2
- /package/dist/core/{p-6329ddcb.entry.js.map → p-0257d59e.entry.js.map} +0 -0
- /package/dist/core/{p-d3223b89.entry.js.map → p-06b3ae40.entry.js.map} +0 -0
- /package/dist/core/{p-f6bb691a.entry.js.map → p-091a7fbf.entry.js.map} +0 -0
- /package/dist/core/{p-1ca4a5ed.entry.js.map → p-128e2cbb.entry.js.map} +0 -0
- /package/dist/core/{p-afbba548.entry.js.map → p-21efc36e.entry.js.map} +0 -0
- /package/dist/core/{p-04cb17d7.entry.js.map → p-287e5c17.entry.js.map} +0 -0
- /package/dist/core/{p-4d3b219c.entry.js.map → p-28c9a6e4.entry.js.map} +0 -0
- /package/dist/core/{p-f57729b8.entry.js.map → p-296a41ce.entry.js.map} +0 -0
- /package/dist/core/{p-eca43f7d.entry.js.map → p-3b13d191.entry.js.map} +0 -0
- /package/dist/core/{p-adde6c66.entry.js.map → p-43356493.entry.js.map} +0 -0
- /package/dist/core/{p-3636be4f.entry.js.map → p-44aaf454.entry.js.map} +0 -0
- /package/dist/core/{p-f4e3bb5b.entry.js.map → p-44fbe8c2.entry.js.map} +0 -0
- /package/dist/core/{p-a7583faf.entry.js.map → p-4637c326.entry.js.map} +0 -0
- /package/dist/core/{p-9c52ee48.entry.js.map → p-539b975f.entry.js.map} +0 -0
- /package/dist/core/{p-319e3d5b.entry.js.map → p-5cf704e3.entry.js.map} +0 -0
- /package/dist/core/{p-601d4e3f.entry.js.map → p-614953c5.entry.js.map} +0 -0
- /package/dist/core/{p-3d23ce54.entry.js.map → p-6b6c1491.entry.js.map} +0 -0
- /package/dist/core/{p-5254a078.entry.js.map → p-6e8ef73c.entry.js.map} +0 -0
- /package/dist/core/{p-ae11583f.entry.js.map → p-6fb29846.entry.js.map} +0 -0
- /package/dist/core/{p-52c66bfe.entry.js.map → p-72ac8bb9.entry.js.map} +0 -0
- /package/dist/core/{p-ffd0d9d1.entry.js.map → p-7552c8a1.entry.js.map} +0 -0
- /package/dist/core/{p-703f3de1.entry.js.map → p-a8dc3162.entry.js.map} +0 -0
- /package/dist/core/{p-f7105cf9.entry.js.map → p-ad6632a9.entry.js.map} +0 -0
- /package/dist/core/{p-f51c609d.entry.js.map → p-ae861bb8.entry.js.map} +0 -0
- /package/dist/core/{p-7d0d85c4.entry.js.map → p-af02add9.entry.js.map} +0 -0
- /package/dist/core/{p-9674b63f.entry.js.map → p-b00efb15.entry.js.map} +0 -0
- /package/dist/core/{p-3238389a.entry.js.map → p-bb3a5130.entry.js.map} +0 -0
- /package/dist/core/{p-67c3985d.entry.js.map → p-d8200098.entry.js.map} +0 -0
- /package/dist/core/{p-6ed48c46.entry.js.map → p-dfc2a0b1.entry.js.map} +0 -0
- /package/dist/core/{p-12c30491.entry.js.map → p-f4e2e41f.entry.js.map} +0 -0
- /package/dist/core/{p-9ca147f3.entry.js.map → p-fb43abd6.entry.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["icButtonCss","IcButtonStyle0","buttonIds","Button","constructor","hostRef","this","buttonIdNum","hasTooltip","inheritedAttributes","describedbyEl","mutationObserver","hostMutationObserver","ariaLabel","title","accept","disabled","disableTooltip","download","dropdown","dropdownExpanded","fileUpload","fileInputName","fullWidth","loading","monochrome","multiple","size","theme","tooltipFixedPositioning","tooltipPlacement","transparentBackground","type","variant","getSlottedIcon","position","el","querySelector","handleClick","hasRouterSlot","form","closest","document","handleHiddenFormButtonClick","handleKeyDown","ev","key","closeButtonTooltip","onFocus","icFocus","emit","onBlur","icBlur","updateAriaDescribedbyClone","describedbyNode","wrapper","_a","shadowRoot","_b","appendChild","Object","assign","createElement","id","className","firstChild","remove","mutationCallback","cloneNode","hostMutationCallback","mutationList","forceComponentUpdate","forEach","attributeName","attribute","getAttribute","IC_INHERITED_ARIA","includes","forceUpdate","setHasTooltip","isIconVariant","startsWith","arrangeRouterItem","setStyles","element","styles","entries","value","style","setProperty","routerSlot","icTypography","gap","icon","iconSlot","iconWrapper","fill","display","marginPlacement","append","badge","label","textContent","trim","watchDescribedbyNodeHandler","watchDisabledHandler","removeDisabledFalse","watchVariantHandler","newVariant","disconnectedCallback","disconnect","componentWillUpdate","getBoundingClientRect","width","componentWillLoad","inheritAttributes","restInheritedAttributes","__rest","setAttribute","describedById","componentDidLoad","updateTheme","MutationObserver","observe","characterData","childList","subtree","attributes","componentWillRender","iconEl","handleHostClick","event","renderFileHiddenInput","icFileSelection","selectedFiles","stopImmediatePropagation","brandChangeHandler","detail","mode","setFocus","buttonEl","focus","tooltip","isTooltipVisible","displayTooltip","preventDefault","foregroundColor","getBrandFromContext","IcBrandForegroundEnum","Default","Light","Dark","render","ariaControlsId","ariaOwnsId","formaction","formenctype","formmethod","formnovalidate","formtarget","href","hreflang","referrerpolicy","rel","target","TagType","buttonAttrs","buttonId","undefined","describedby","hasLeftIcon","hasRightIcon","ButtonContent","h","name","class","tabindex","ref","part","Fragment","innerHTML","arrowDropdown","Host","background","isSlotUsed","onClick","onKeyDown","placement","fixedPositioning","silent","icLoadingIndicatorCss","IcLoadingIndicatorStyle0","LOADING_INDICATOR_WIDTHS","large","medium","small","LoadingIndicator","labelList","circularDiameter","circularLineWidth","circularDimensions","x","y","r","clipInnerElement","description","labelDuration","max","min","getLabel","labelIndex","Promise","interval","setInterval","length","indicatorLabel","getLabelVariant","calculateWidth","outerElement","offsetWidth","window","getComputedStyle","match","parseFloat","parentWidth","_c","parentElement","calculateProportion","progress","minProgress","Math","setLinearDeterminateWidth","innerElement","proportion","classList","add","updateLabel","setCircleDimensions","nextRadius","dashArray","PI","dashOffset","watchPropHandler","handleProgressChange","setIndicatorDimensions","diameter","clearInterval","innerLabel","role","viewBox","cx","cy","icTooltipCss","IcTooltipStyle0","Tooltip","delayedHideEvents","instantHideEvents","mouseOverTool","persistTooltip","showEvents","disableHover","disableClick","popperProps","show","toolTip","dialogContentArea","popperInstance","createPopper","strategy","modifiers","options","offset","arrow","scroll","resize","boundary","padding","console","warn","hide","removeAttribute","destroy","checkCloseTooltip","setTimeout","mouseEnterTooltip","mouseLeaveTooltip","manageEventListeners","action","method","updateTooltipEvents","watchDisableClickHandler","watchDisableHoverHandler","watchLabelHandler","hasAttribute","update","setExternalPopperProps","props","dialog","getRootNode","host","onComponentRequiredPropUndefined","prop","propName","componentDidRender","typographyEl","maxLines","resolve","isSafari"],"sources":["src/components/ic-button/ic-button.css?tag=ic-button&encapsulation=shadow","src/components/ic-button/ic-button.tsx","src/components/ic-loading-indicator/ic-loading-indicator.css?tag=ic-loading-indicator&encapsulation=shadow","src/components/ic-loading-indicator/ic-loading-indicator.tsx","src/components/ic-tooltip/ic-tooltip.css?tag=ic-tooltip&encapsulation=shadow","src/components/ic-tooltip/ic-tooltip.tsx"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n/**\n* @prop --min-width: Minimum width of the button.\n* @prop --height: The height of the button.\n*/\n\n:host {\n display: inline-block;\n position: relative;\n\n --icon-width: 100%;\n --icon-height: 100%;\n}\n\n.button,\n::slotted(a) {\n font-family: var(--ic-font-body-family);\n text-decoration: none;\n font-weight: 600;\n font-size: 0.875rem;\n transition: var(--ic-easing-transition-fast);\n border-radius: var(--ic-border-radius);\n min-width: var(--min-width, 6.25rem);\n display: inline-flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n background: none;\n border: none;\n box-sizing: border-box;\n white-space: nowrap;\n vertical-align: middle;\n}\n\n:host(.with-badge) .button {\n border-radius: 0.2188rem;\n}\n\n.button:hover,\n::slotted(a:hover) {\n cursor: pointer;\n}\n\n.button:focus,\n::slotted(a:focus) {\n box-shadow: var(--ic-border-focus);\n}\n\n.button:focus-visible,\n::slotted(a:focus-visible) {\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(.ic-button-disabled),\n:host(.ic-button-disabled) .button,\n:host(.ic-button-disabled) ::slotted(a),\n:host(.ic-button-loading),\n:host(.ic-button-loading) .button {\n pointer-events: none;\n}\n\n:host(.top-icon) .button {\n flex-direction: column;\n\n --height: fit-content;\n}\n\n:host(.top-icon) .button .icon-container {\n margin-right: 0;\n}\n\n/* Variants */\n\n/* Primary */\n\n:host(.ic-button-variant-primary) .button,\n:host(.ic-button-variant-icon-primary) .button {\n color: var(--ic-button-primary-text);\n background-color: var(--ic-button-primary-background);\n}\n\n:host(.ic-button-variant-primary:not(.ic-button-disabled)) ::slotted(svg) {\n color: var(--ic-button-primary-icon);\n}\n\n:host(.ic-button-variant-primary) ::slotted(a),\n:host(.ic-button-variant-icon-primary) ::slotted(a) {\n --ic-typography-color: var(--ic-button-primary-text);\n\n color: var(--ic-button-primary-text);\n background-color: var(--ic-button-primary-background) !important;\n}\n\n:host(.ic-button-variant-primary) .button:hover,\n:host(.ic-button-variant-icon-primary) .button:hover {\n background-color: var(--ic-button-primary-background-hover);\n}\n\n:host(.ic-button-variant-primary) ::slotted(a:hover),\n:host(.ic-button-variant-icon-primary) ::slotted(a:hover) {\n background-color: var(--ic-button-primary-background-hover) !important;\n}\n\n:host(.ic-button-variant-primary.ic-button-loading) .button,\n:host(.ic-button-variant-primary) .button:active,\n:host(.ic-button-variant-icon-primary.ic-button-loading) .button,\n:host(.ic-button-variant-icon-primary) .button:active {\n background-color: var(--ic-button-primary-background-pressed);\n\n --button-loading-inner-color: var(--ic-button-primary-text);\n --button-loading-outer-color: var(--ic-button-primary-background-pressed);\n}\n\n:host(.ic-button-variant-primary) ::slotted(a:active),\n:host(.ic-button-variant-icon-primary) ::slotted(a:active) {\n background-color: var(--ic-button-primary-background-pressed) !important;\n}\n\n:host(.ic-button-variant-primary.ic-button-disabled) .button,\n:host(.ic-button-variant-icon-primary.ic-button-disabled) .button {\n background: var(--ic-button-primary-background-disabled);\n color: var(--ic-button-primary-text-disabled);\n}\n\n:host(.ic-button-variant-primary.ic-button-disabled) ::slotted(a),\n:host(.ic-button-variant-icon-primary.ic-button-disabled) ::slotted(a) {\n background: var(--ic-button-primary-background-disabled) !important;\n\n --ic-typography-color: var(--ic-button-primary-text-disabled) !important;\n\n color: var(--ic-button-primary-text-disabled) !important;\n}\n\n/* Primary - monochrome */\n\n:host(.ic-button-variant-primary.monochrome) .button,\n:host(.ic-button-variant-icon-primary.monochrome) .button {\n color: var(--ic-button-primary-text-monochrome);\n background-color: var(--ic-button-primary-background-monochrome);\n}\n\n:host(.ic-button-variant-primary.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-primary.monochrome) ::slotted(a) {\n background-color: var(--ic-button-primary-background-monochrome) !important;\n}\n\n:host(.ic-button-variant-primary.monochrome) .button:hover,\n:host(.ic-button-variant-icon-primary.monochrome) .button:hover {\n background-color: var(--ic-button-primary-background-hover-monochrome);\n}\n\n:host(.ic-button-variant-primary.monochrome) ::slotted(a:hover),\n:host(.ic-button-variant-icon-primary.monochrome) ::slotted(a:hover) {\n background-color: var(\n --ic-button-primary-background-hover-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-primary.ic-button-loading.monochrome) .button,\n:host(.ic-button-variant-primary.monochrome) .button:active,\n:host(.ic-button-variant-icon-primary.ic-button-loading.monochrome) .button,\n:host(.ic-button-variant-icon-primary.monochrome) .button:active {\n background-color: var(--ic-button-primary-background-pressed-monochrome);\n\n --button-loading-inner-color: var(--ic-button-primary-text-monochrome);\n --button-loading-outer-color: var(--ic-button-primary-background-monochrome);\n}\n\n:host(.ic-button-variant-primary.monochrome) ::slotted(a:active),\n:host(.ic-button-variant-icon-primary.monochrome) ::slotted(a:active) {\n background-color: var(\n --ic-button-primary-background-pressed-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-primary.ic-button-disabled.monochrome) .button,\n:host(.ic-button-variant-icon-primary.ic-button-disabled.monochrome) .button {\n background-color: var(--ic-button-primary-background-disabled-monochrome);\n color: var(--ic-button-primary-text-disabled-monochrome);\n}\n\n:host(.ic-button-variant-primary.ic-button-disabled.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-primary.ic-button-disabled.monochrome)\n ::slotted(a) {\n background-color: var(\n --ic-button-primary-background-disabled-monochrome\n ) !important;\n}\n\n/* Secondary */\n\n:host(.ic-button-variant-secondary) .button,\n:host(.ic-button-variant-icon-secondary) .button {\n border: var(--ic-border-width) solid var(--ic-button-secondary-border);\n color: var(--ic-button-secondary-text);\n}\n\n:host(.ic-button-variant-secondary) ::slotted(a),\n:host(.ic-button-variant-icon-secondary) ::slotted(a) {\n border: var(--ic-border-width) solid var(--ic-button-secondary-border) !important;\n color: var(--ic-button-secondary-text) !important;\n\n --ic-typography-color: var(--ic-button-secondary-text) !important;\n}\n\n:host(.ic-button-variant-secondary) .button:hover,\n:host(.ic-button-variant-icon-secondary) .button:hover {\n background-color: var(--ic-button-secondary-background-hover-active);\n border-color: var(--ic-button-secondary-border-hover);\n color: var(--ic-button-secondary-text-hover-active);\n}\n\n:host(.ic-button-variant-secondary) ::slotted(a:hover),\n:host(.ic-button-variant-icon-secondary) ::slotted(a:hover) {\n background-color: var(\n --ic-button-secondary-background-hover-active\n ) !important;\n}\n\n:host(.ic-button-variant-secondary) .button:active,\n:host(.ic-button-variant-icon-secondary) .button:active {\n border-color: var(--ic-button-secondary-border-pressed);\n background-color: var(--ic-button-secondary-background-pressed-active);\n color: var(--ic-button-secondary-text-pressed-active);\n}\n\n:host(.ic-button-variant-secondary) ::slotted(a:active),\n:host(.ic-button-variant-icon-secondary) ::slotted(a:active) {\n background-color: var(\n --ic-button-secondary-background-pressed-active\n ) !important;\n}\n\n:host(.ic-button-variant-secondary.ic-button-loading) .button,\n:host(.ic-button-variant-icon-secondary.ic-button-loading) .button {\n border-color: var(--ic-button-secondary-border-pressed);\n background-color: var(\n --loading-button-background,\n var(--ic-button-secondary-background-pressed-active)\n ) !important;\n color: var(--ic-button-secondary-text-pressed-active);\n\n --button-loading-inner-color: var(--ic-button-secondary-border-pressed);\n --button-loading-outer-color: var(\n --ic-button-secondary-background-pressed-active\n );\n}\n\n:host(.ic-button-variant-secondary.ic-button-disabled) .button,\n:host(.ic-button-variant-icon-secondary.ic-button-disabled) .button {\n border-color: var(--ic-button-secondary-border-disabled);\n color: var(--ic-button-secondary-text-disabled);\n background: none;\n}\n\n:host(.ic-button-variant-secondary.ic-button-disabled) ::slotted(a),\n:host(.ic-button-variant-icon-secondary.ic-button-disabled) ::slotted(a) {\n background: none !important;\n}\n\n/* Secondary - non-transparent background */\n\n:host(.ic-button-variant-secondary.background) .button,\n:host(.ic-button-variant-icon-secondary.background) .button {\n background-color: var(--ic-button-secondary-background);\n}\n\n:host(.ic-button-variant-secondary.background) ::slotted(a),\n:host(.ic-button-variant-icon-secondary.background) ::slotted(a) {\n background-color: var(--ic-button-secondary-background) !important;\n}\n\n:host(.ic-button-variant-secondary.background) .button:hover,\n:host(.ic-button-variant-icon-secondary.background) .button:hover {\n background-image: var(--ic-button-secondary-background-non-transparent-hover);\n}\n\n:host(.ic-button-variant-secondary.background) ::slotted(a:hover),\n:host(.ic-button-variant-icon-secondary.background) ::slotted(a:hover) {\n background-image: var(\n --ic-button-secondary-background-non-transparent-hover\n ) !important;\n}\n\n:host(.ic-button-variant-secondary.background) .button:active,\n:host(.ic-button-variant-icon-secondary.background) .button:active {\n background-image: var(\n --ic-button-secondary-background-non-transparent-active\n );\n}\n\n:host(.ic-button-variant-secondary.background) ::slotted(a:active),\n:host(.ic-button-variant-icon-secondary.background) ::slotted(a:active) {\n background-image: var(\n --ic-button-secondary-background-non-transparent-active\n ) !important;\n}\n\n/* Secondary - monochrome */\n\n:host(.ic-button-variant-secondary.monochrome) .button,\n:host(.ic-button-variant-icon-secondary.monochrome) .button {\n background-color: none;\n border: var(--ic-border-width) solid\n var(--ic-button-secondary-border-monochrome);\n color: var(--ic-button-secondary-text-monochrome);\n}\n\n:host(.ic-button-variant-secondary.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-secondary.monochrome) ::slotted(a) {\n background-color: none !important;\n}\n\n:host(.ic-button-variant-secondary.monochrome) .button:hover,\n:host(.ic-button-variant-icon-secondary.monochrome) .button:hover {\n background-color: var(--ic-button-secondary-background-hover-monochrome);\n border-color: var(--ic-button-secondary-border-hover-monochrome);\n color: var(--ic-button-secondary-text-hover-monochrome);\n}\n\n:host(.ic-button-variant-secondary.monochrome) ::slotted(a:hover),\n:host(.ic-button-variant-icon-secondary.monochrome) ::slotted(a:hover) {\n background-color: var(\n --ic-button-secondary-background-hover-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-secondary.monochrome) .button:active,\n:host(.ic-button-variant-icon-secondary.monochrome) .button:active {\n background-color: var(--ic-button-secondary-background-pressed-monochrome);\n border-color: var(--ic-button-secondary-border-pressed-monochrome);\n color: var(--ic-button-secondary-text-pressed-monochrome);\n}\n\n:host(.ic-button-variant-secondary.monochrome) ::slotted(a:active),\n:host(.ic-button-variant-icon-secondary.monochrome) ::slotted(a:active) {\n background-color: var(\n --ic-button-secondary-background-pressed-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-secondary.ic-button-loading.monochrome) .button,\n:host(.ic-button-variant-icon-secondary.ic-button-loading.monochrome) .button {\n background-color: var(\n --ic-button-secondary-background-pressed-monochrome\n ) !important;\n border-color: var(--ic-button-secondary-border-pressed-monochrome);\n color: var(--ic-button-secondary-text-pressed-monochrome);\n\n --button-loading-inner-color: var(\n --ic-button-secondary-text-pressed-monochrome\n );\n --button-loading-outer-color: var(\n --ic-button-secondary-background-pressed-monochrome\n );\n}\n\n:host(.ic-button-variant-secondary.ic-button-disabled.monochrome) .button,\n:host(.ic-button-variant-icon-secondary.ic-button-disabled.monochrome) .button {\n background: none;\n border-color: var(--ic-button-secondary-border-disabled-monochrome);\n color: var(--ic-button-secondary-text-disabled-monochrome);\n}\n\n:host(.ic-button-variant-secondary.ic-button-disabled.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-secondary.ic-button-disabled.monochrome)\n ::slotted(a) {\n background: none !important;\n}\n\n/* Secondary - non-transparent background - monochrome */\n\n:host(.ic-button-variant-secondary.background.monochrome) .button,\n:host(.ic-button-variant-icon-secondary.background.monochrome) .button {\n background-color: var(--ic-button-secondary-background-monochrome);\n}\n\n:host(.ic-button-variant-secondary.background.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-secondary.background.monochrome) ::slotted(a) {\n background-color: var(--ic-button-secondary-background-monochrome) !important;\n}\n\n:host(.ic-button-variant-secondary.background.monochrome) .button:hover,\n:host(.ic-button-variant-icon-secondary.background.monochrome) .button:hover {\n background-image: var(\n --ic-button-secondary-background-non-transparent-monochrome-hover\n );\n}\n\n:host(.ic-button-variant-secondary.background.monochrome) ::slotted(a:hover),\n:host(.ic-button-variant-icon-secondary.background.monochrome)\n ::slotted(a:hover) {\n background-image: var(\n --ic-button-secondary-background-non-transparent-monochrome-hover\n ) !important;\n}\n\n:host(.ic-button-variant-secondary.background.monochrome) .button:active,\n:host(.ic-button-variant-icon-secondary.background.monochrome) .button:active {\n background-image: var(\n --ic-button-secondary-background-non-transparent-monochrome-active\n );\n}\n\n:host(.ic-button-variant-secondary.background.monochrome) ::slotted(a:active),\n:host(.ic-button-variant-icon-secondary.background.monochrome)\n ::slotted(a:active) {\n background-image: var(\n --ic-button-secondary-background-non-transparent-monochrome-active\n ) !important;\n}\n\n/* Tertiary */\n\n:host(.ic-button-variant-tertiary) .button,\n:host(.ic-button-variant-icon-tertiary) .button,\n:host(.ic-button-variant-tertiary) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary) ::slotted(a) {\n color: var(--ic-button-tertiary-text-active);\n\n --ic-typography-color: var(--ic-button-tertiary-text-active);\n}\n\n:host(.ic-button-variant-tertiary) .button:hover,\n:host(.ic-button-variant-icon-tertiary) .button:hover {\n background-color: var(--ic-button-tertiary-background-hover-active);\n color: var(--ic-button-tertiary-text-hover-active);\n}\n\n:host(.ic-button-variant-tertiary) ::slotted(a:hover),\n:host(.ic-button-variant-icon-tertiary) ::slotted(a:hover) {\n background-color: var(\n --ic-button-tertiary-background-hover-active\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary) .button:active,\n:host(.ic-button-variant-tertiary.ic-button-loading) .button,\n:host(.ic-button-variant-icon-tertiary) .button:active,\n:host(.ic-button-variant-icon-tertiary.ic-button-loading) .button {\n background-color: var(--ic-button-tertiary-background-pressed-active);\n color: var(--ic-button-tertiary-text-pressed-active);\n\n --button-loading-inner-color: var(--ic-button-tertiary-text-pressed-active);\n --button-loading-outer-color: var(--ic-button-tertiary-background-pressed);\n}\n\n:host(.ic-button-variant-tertiary) ::slotted(a:active),\n:host(.ic-button-variant-icon-tertiary) ::slotted(a:active) {\n background-color: var(\n --ic-button-tertiary-background-pressed-active\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary.ic-button-disabled) .button,\n:host(.ic-button-variant-icon-tertiary.ic-button-disabled) .button {\n color: var(--ic-button-tertiary-text-disabled);\n background: none;\n}\n\n:host(.ic-button-variant-tertiary.ic-button-disabled) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary.ic-button-disabled) ::slotted(a) {\n background: none !important;\n}\n\n/* Tertiary - non-transparent background */\n\n:host(.ic-button-variant-tertiary.background) .button,\n:host(.ic-button-variant-icon-tertiary.background) .button {\n background-color: var(--ic-button-tertiary-background);\n}\n\n:host(.ic-button-variant-tertiary.background) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary.background) ::slotted(a) {\n background-color: var(--ic-button-tertiary-background) !important;\n}\n\n:host(.ic-button-variant-tertiary.background) .button:hover,\n:host(.ic-button-variant-icon-tertiary.background) .button:hover {\n background-image: var(--ic-button-tertiary-background-non-transparent-hover);\n}\n\n:host(.ic-button-variant-tertiary.background) ::slotted(a:hover),\n:host(.ic-button-variant-icon-tertiary.background) ::slotted(a:hover) {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-hover\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary.background) .button:active,\n:host(.ic-button-variant-icon-tertiary.background) .button:active {\n background-image: var(--ic-button-tertiary-background-non-transparent-active);\n}\n\n:host(.ic-button-variant-tertiary.background) ::slotted(a:active),\n:host(.ic-button-variant-icon-tertiary.background) ::slotted(a:active) {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-active\n ) !important;\n}\n\n/* Tertiary - monochrome */\n\n:host(.ic-button-variant-tertiary.monochrome) .button,\n:host(.ic-button-variant-tertiary.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary.monochrome) .button,\n:host(.ic-button-variant-icon-tertiary.monochrome) ::slotted(a) {\n color: var(--ic-button-tertiary-text-monochrome);\n\n --ic-typography-color: var(--ic-button-tertiary-text-monochrome);\n}\n\n:host(.ic-button-variant-tertiary.monochrome) .button:hover,\n:host(.ic-button-variant-icon-tertiary.monochrome) .button:hover {\n background-color: var(--ic-button-tertiary-background-hover-monochrome);\n color: var(--ic-button-tertiary-text-hover-monochrome);\n}\n\n:host(.ic-button-variant-tertiary.monochrome) ::slotted(a:hover),\n:host(.ic-button-variant-icon-tertiary.monochrome) ::slotted(a:hover) {\n background-color: var(\n --ic-button-tertiary-background-hover-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary.monochrome) .button:active,\n:host(.ic-button-variant-tertiary.ic-button-loading.monochrome) .button,\n:host(.ic-button-variant-icon-tertiary.monochrome) .button:active,\n:host(.ic-button-variant-icon-tertiary.ic-button-loading.monochrome) .button {\n background-color: var(--ic-button-tertiary-background-pressed-monochrome);\n color: var(--ic-button-tertiary-text-pressed-monochrome);\n\n --button-loading-inner-color: var(\n --ic-button-tertiary-text-pressed-monochrome\n );\n --button-loading-outer-color: var(\n --ic-button-tertiary-background-pressed-monochrome\n );\n}\n\n:host(.ic-button-variant-tertiary.monochrome) ::slotted(a:active),\n:host(.ic-button-variant-icon-tertiary.monochrome) ::slotted(a:active) {\n background-color: var(\n --ic-button-tertiary-background-pressed-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary.ic-button-disabled.monochrome) .button,\n:host(.ic-button-variant-icon-tertiary.ic-button-disabled.monochrome) .button {\n color: var(--ic-button-tertiary-text-disabled-monochrome);\n background: none;\n}\n\n:host(.ic-button-variant-tertiary.ic-button-disabled.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary.ic-button-disabled.monochrome)\n ::slotted(a) {\n background: none !important;\n}\n\n/* Tertiary - non-transparent background - monochrome */\n\n:host(.ic-button-variant-tertiary.background.monochrome) .button,\n:host(.ic-button-variant-icon-tertiary.background.monochrome) .button {\n background-color: var(--ic-button-tertiary-background-monochrome);\n}\n\n:host(.ic-button-variant-tertiary.background.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary.background.monochrome) ::slotted(a) {\n background-color: var(--ic-button-tertiary-background-monochrome) !important;\n}\n\n:host(.ic-button-variant-tertiary.background.monochrome) .button:hover,\n:host(.ic-button-variant-icon-tertiary.background.monochrome) .button:hover {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-monochrome-hover\n );\n}\n\n:host(.ic-button-variant-tertiary.background.monochrome) ::slotted(a:hover),\n:host(.ic-button-variant-icon-tertiary.background.monochrome)\n ::slotted(a:hover) {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-monochrome-hover\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary.background.monochrome) .button:active,\n:host(.ic-button-variant-icon-tertiary.background.monochrome) .button:active {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-monochrome-active\n );\n}\n\n:host(.ic-button-variant-tertiary.background.monochrome) ::slotted(a:active),\n:host(.ic-button-variant-icon-tertiary.background.monochrome)\n ::slotted(a:active) {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-monochrome-active\n ) !important;\n}\n\n/* Destructive */\n\n:host(.ic-button-variant-destructive) .button,\n:host(.ic-button-variant-icon-destructive) .button {\n color: var(--ic-button-destructive-text);\n background-color: var(--ic-button-destructive-background);\n text-transform: uppercase;\n}\n\n:host(.ic-button-variant-destructive) ::slotted(a),\n:host(.ic-button-variant-icon-destructive) ::slotted(a) {\n color: var(--ic-button-destructive-text) !important;\n\n --ic-typography-color: var(--ic-button-destructive-text) !important;\n\n background-color: var(--ic-button-destructive-background) !important;\n text-transform: uppercase !important;\n}\n\n:host(.ic-button-variant-destructive) .button:hover,\n:host(.ic-button-variant-icon-destructive) .button:hover {\n background-color: var(--ic-button-destructive-background-hover);\n}\n\n:host(.ic-button-variant-destructive) ::slotted(a:hover),\n:host(.ic-button-variant-icon-destructive) ::slotted(a:hover) {\n background-color: var(--ic-button-destructive-background-hover) !important;\n}\n\n:host(.ic-button-variant-destructive) .button:active,\n:host(.ic-button-variant-destructive.ic-button-loading) .button,\n:host(.ic-button-variant-icon-destructive.ic-button-loading) .button {\n color: var(--ic-button-primary-text);\n background-color: var(--ic-button-destructive-background-pressed);\n\n --button-loading-inner-color: var(--ic-button-primary-text);\n --button-loading-outer-color: var(--ic-button-destructive-background-pressed);\n}\n\n:host(.ic-button-variant-destructive) ::slotted(a:active),\n:host(.ic-button-variant-icon-destructive) ::slotted(a:active) {\n background-color: var(--ic-button-destructive-background-pressed) !important;\n}\n\n:host(.ic-button-variant-destructive.ic-button-disabled) .button,\n:host(.ic-button-variant-icon-destructive.ic-button-disabled) .button {\n background-color: var(--ic-button-destructive-background-disabled);\n color: var(--ic-button-destructive-text-disabled);\n}\n\n:host(.ic-button-variant-destructive.ic-button-disabled) ::slotted(a),\n:host(.ic-button-variant-icon-destructive.ic-button-disabled) ::slotted(a) {\n background-color: var(--ic-button-destructive-background-disabled) !important;\n}\n\n/***********************\n Icon Variants\n ***********************/\n\n/* Icon */\n\n:host(.ic-button-variant-icon) .button {\n color: var(--ic-button-icon-color);\n background-color: var(--ic-button-icon-color-background);\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.ic-button-variant-icon) ::slotted(a) {\n color: var(--ic-button-icon-color);\n background-color: var(--ic-button-icon-color-background) !important;\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.ic-button-variant-icon) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n}\n\n:host(.ic-button-variant-icon) .button:hover {\n color: var(--ic-button-icon-color-hover);\n background-color: var(--ic-button-icon-color-background-hover);\n}\n\n:host(.ic-button-variant-icon) ::slotted(a:hover) {\n color: var(--ic-button-icon-color-hover);\n background-color: var(--ic-button-icon-color-background-hover) !important;\n}\n\n:host(.ic-button-variant-icon) .button:active:not(:focus),\n:host(.ic-button-variant-icon.ic-button-loading) .button {\n color: var(--ic-button-icon-color-active);\n background-color: var(--ic-button-icon-color-background-active);\n}\n\n:host(.ic-button-variant-icon) ::slotted(a:active:not(:focus)) {\n color: var(--ic-button-icon-color-active);\n background-color: var(--ic-button-icon-color-background-active) !important;\n}\n\n:host(.ic-button-variant-icon.ic-button-disabled) .button {\n color: var(--ic-color-icon-disabled-mid);\n background: none;\n}\n\n:host(.ic-button-variant-icon.ic-button-disabled) ::slotted(a) {\n color: var(--ic-color-icon-disabled-mid);\n background: none !important;\n}\n\n/* Icon-primary */\n\n:host(.ic-button-variant-icon-primary) .button,\n:host(.ic-button-variant-icon-primary) ::slotted(a) {\n min-width: 0;\n gap: var(--ic-space-xs);\n color: var(--ic-button-primary-icon);\n}\n\n:host(.ic-button-variant-icon-primary.monochrome) .button,\n:host(.ic-button-variant-primary.monochrome:not(.ic-button-disabled))\n ::slotted(svg) {\n color: var(--ic-button-primary-icon-monochrome);\n}\n\n:host(.ic-button-variant-icon-primary) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n margin: 0;\n pointer-events: none;\n}\n\n:host(.ic-button-variant-icon.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon.monochrome) ::slotted(svg) {\n color: var(--ic-button-icon-monochrome);\n}\n\n/* Icon-secondary */\n\n:host(.ic-button-variant-icon-secondary) .button,\n:host(.ic-button-variant-icon-secondary) ::slotted(a) {\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.ic-button-variant-icon-secondary) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n margin: 0;\n pointer-events: none;\n}\n\n/* Icon-tertiary */\n\n:host(.ic-button-variant-icon-tertiary) .button,\n:host(.ic-button-variant-icon-tertiary) ::slotted(a) {\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.ic-button-variant-icon-tertiary) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n margin: 0;\n pointer-events: none;\n}\n\n/* Icon-destructive */\n\n:host(.ic-button-variant-icon-destructive) .button,\n:host(.ic-button-variant-icon-destructive) ::slotted(a) {\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.ic-button-variant-icon-destructive) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n margin: 0;\n pointer-events: none;\n}\n\n/* Sizing */\n\n:host(.ic-button-size-medium) .button {\n height: var(--height, 2.5rem);\n padding: var(--ic-space-xs) var(--ic-space-md);\n}\n\n:host(.ic-button-size-medium) ::slotted(a) {\n height: var(--height, 2.5rem) !important;\n padding: var(--ic-space-xs) var(--ic-space-md) !important;\n}\n\n:host(.ic-button-size-small) .button {\n height: var(--height, var(--ic-space-xl));\n padding: var(--ic-space-xxs) var(--ic-space-md);\n}\n\n:host(.ic-button-size-small) ::slotted(a) {\n height: var(--height, var(--ic-space-xl)) !important;\n padding: var(--ic-space-xxs) var(--ic-space-md) !important;\n}\n\n:host(.ic-button-size-large) .button {\n height: var(--height, var(--ic-space-xxl));\n padding: var(--ic-space-sm) var(--ic-space-md);\n}\n\n:host(.ic-button-size-large) ::slotted(a) {\n height: var(--height, var(--ic-space-xxl)) !important;\n padding: var(--ic-space-sm) var(--ic-space-md) !important;\n}\n\n:host(.ic-button-size-medium.ic-button-variant-icon) .button,\n:host(.ic-button-size-medium.ic-button-variant-icon-primary) .button,\n:host(.ic-button-size-medium.ic-button-variant-icon-secondary) .button,\n:host(.ic-button-size-medium.ic-button-variant-icon-tertiary) .button,\n:host(.ic-button-size-medium.ic-button-variant-icon-destructive) .button {\n height: var(--height, var(--ic-space-xl));\n width: var(--ic-space-xl);\n padding: 0.375rem;\n}\n\n:host(.ic-button-size-medium.ic-button-variant-icon-primary) ::slotted(a),\n:host(.ic-button-size-medium.ic-button-variant-icon-secondary) ::slotted(a),\n:host(.ic-button-size-medium.ic-button-variant-icon-tertiary) ::slotted(a),\n:host(.ic-button-size-medium.ic-button-variant-icon-destructive) ::slotted(a) {\n height: var(--height, var(--ic-space-xl)) !important;\n width: var(--ic-space-xl) !important;\n padding: 0.375rem !important;\n}\n\n:host(.ic-button-size-small.ic-button-variant-icon) .button,\n:host(.ic-button-size-small.ic-button-variant-icon-primary) .button,\n:host(.ic-button-size-small.ic-button-variant-icon-secondary) .button,\n:host(.ic-button-size-small.ic-button-variant-icon-tertiary) .button,\n:host(.ic-button-size-small.ic-button-variant-icon-destructive) .button {\n height: var(--height, var(--ic-space-lg));\n width: var(--ic-space-lg);\n padding: var(--ic-space-xxs);\n}\n\n:host(.ic-button-size-small.ic-button-variant-icon-primary) ::slotted(a),\n:host(.ic-button-size-small.ic-button-variant-icon-secondary) ::slotted(a),\n:host(.ic-button-size-small.ic-button-variant-icon-tertiary) ::slotted(a),\n:host(.ic-button-size-small.ic-button-variant-icon-destructive) ::slotted(a),\n:host(.ic-button-size-small.ic-button-variant-icon) ::slotted(a) {\n height: var(--height, var(--ic-space-lg)) !important;\n width: var(--ic-space-lg) !important;\n padding: var(--ic-space-xxs) !important;\n}\n\n:host(.ic-button-size-large.ic-button-variant-icon) .button,\n:host(.ic-button-size-large.ic-button-variant-icon-primary) .button,\n:host(.ic-button-size-large.ic-button-variant-icon-secondary) .button,\n:host(.ic-button-size-large.ic-button-variant-icon-tertiary) .button,\n:host(.ic-button-size-large.ic-button-variant-icon-destructive) .button {\n height: var(--height, 2.5rem);\n width: 2.5rem;\n padding: var(--ic-space-xs);\n}\n\n:host(.ic-button-size-large.ic-button-variant-icon-destructive) .button,\n:host(.ic-button-size-large.ic-button-variant-icon-primary) ::slotted(a),\n:host(.ic-button-size-large.ic-button-variant-icon-secondary) ::slotted(a),\n:host(.ic-button-size-large.ic-button-variant-icon-tertiary) ::slotted(a),\n:host(.ic-button-size-large.ic-button-variant-icon-destructive) ::slotted(a),\n:host(.ic-button-size-large.ic-button-variant-icon) ::slotted(a) {\n height: var(--height, 2.5rem) !important;\n width: 2.5rem !important;\n padding: var(--ic-space-xs) !important;\n}\n\n/* Width */\n:host(.ic-button-full-width),\n:host(.ic-button-full-width) .button {\n width: 100%;\n}\n\n:host(.ic-button-full-width) ::slotted(a) {\n width: 100% !important;\n}\n\n/* Loading */\n\ndiv.loading-container {\n position: relative;\n align-items: center;\n width: 100%;\n}\n\nic-loading-indicator {\n --inner-color: var(--button-loading-inner-color);\n --outer-color: var(--button-loading-outer-color), transparent;\n}\n\n@keyframes loading-animation {\n 0% {\n width: 0%;\n left: 0%;\n }\n\n 25% {\n width: 0%;\n left: 0%;\n opacity: 0;\n }\n\n 50% {\n width: 100%;\n left: 0%;\n opacity: 1;\n }\n\n 75% {\n width: 0%;\n left: 100%;\n }\n\n 100% {\n width: 0%;\n left: 100%;\n opacity: 0;\n }\n}\n\n/* Icons */\n\ndiv.icon-container {\n box-sizing: border-box;\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: var(--ic-space-xs);\n}\n\ndiv.right-icon {\n margin-right: auto;\n margin-left: var(--ic-space-xs);\n}\n\n:host(.ic-button-full-width) .right-icon {\n margin-right: var(--ic-space-xs);\n}\n\n::slotted(:not(ic-badge)) {\n width: var(--icon-width) !important;\n height: var(--icon-height) !important;\n fill: currentcolor !important;\n pointer-events: none;\n}\n\n:host(.ic-button-variant-icon) .button .icon-container {\n margin: 0;\n pointer-events: none;\n}\n\n/** SEARCH **/\n\n:host(.search-submit-button) ::slotted(svg) {\n --icon-height: 1.25rem;\n --icon-width: 1.25rem;\n\n color: var(--ic-atoms-input-search-button);\n}\n\n:host(.search-submit-button-small) ::slotted(svg) {\n --icon-height: 1rem;\n --icon-width: 1rem;\n\n color: var(--ic-atoms-input-search-button);\n}\n\n:host(.search-submit-button) .button:focus {\n box-shadow: none;\n}\n\n:host(.search-submit-button) .button:not(:active):focus {\n box-shadow: none;\n background-color: var(--ic-action-default-bg-hover);\n}\n\n:host(.search-submit-button) .button:not(:active):focus ::slotted(svg) {\n color: var(--ic-button-primary-text);\n}\n\n:host(.search-submit-button) {\n display: flex;\n align-items: center;\n margin: 0 var(--ic-space-xxs);\n}\n\n/** CLEAR & DISMISS **/\n\n:host(.ic-button-variant-icon) .button,\n:host(.ic-button-variant-icon) ::slotted(a) {\n background-color: inherit;\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.button-variant-icon) .button,\n:host(.button-variant-icon) ::slotted(a) {\n color: var(--button-default);\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.button-variant-icon) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n}\n\n:host(.button-variant-icon) .button:hover,\n:host(.button-variant-icon) ::slotted(a:hover) {\n background-color: var(--button-default-background-hover);\n color: var(--button-default-hover);\n}\n\n:host(.button-variant-icon) .button:active:not(:focus),\n:host(.button-variant-icon) ::slotted(a:active:not(:focus)),\n:host(.button-variant-icon.loading) .button {\n background-color: var(--button-default-background-active);\n color: var(--button-default-active);\n}\n\n:host(.button-variant-icon.disabled) .button,\n:host(.button-variant-icon.disabled) ::slotted(a) {\n color: var(--ic-color-icon-disabled-mid);\n background: none;\n}\n\n:host(.clear-button) {\n color: var(--ic-atoms-input-clear-button);\n margin: 0 var(--ic-space-xxs);\n}\n\n:host(.clear-button) .button:focus,\n:host(.calendar-button) .button:focus,\n:host(.clock-button) .button:focus {\n box-shadow: none;\n}\n\n:host(.clear-button) .button,\n:host(.clear-button) ::slotted(a) {\n background-color: inherit;\n color: var(--ic-atoms-input-clear-button);\n}\n\n:host(.clear-button) .button:hover,\n:host(.clear-button) ::slotted(a:hover) {\n color: var(--ic-atoms-input-clear-button);\n}\n\n:host(.clear-button) .button:not(:active):focus ::slotted(svg) {\n background-color: var(--ic-atoms-input-clear-button-focus-inner);\n color: var(--ic-button-primary-text);\n\n /* border: var(--ic-atoms-input-clear-button-focus-outer); */\n}\n\n:host(.menu-close-button) ::slotted(svg) {\n --icon-height: 0.875rem;\n --icon-width: 0.875rem;\n\n color: var(--ic-top-navigation-icon-active);\n}\n\n:host(.popout-menu-button) .button {\n height: var(--height);\n justify-content: left;\n border-radius: 0;\n white-space: pre-line;\n text-align: start;\n}\n\n:host(.popout-menu-button) div.icon-container {\n flex: none;\n}\n\n:host(.popout-menu-button) .button:focus {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n}\n\n.ic-button-describedby {\n display: none;\n}\n\n:host .ic-tooltip {\n display: block;\n}\n\n/** Dropdown **/\n\n:host .arrow-dropdown {\n margin-top: auto;\n}\n\n:host .dropdown-expanded {\n transform: rotate(180deg);\n margin-bottom: var(--ic-space-xxxs);\n}\n\n:host(.dropdown-no-icon) .button {\n padding-right: var(--ic-space-xs);\n}\n\n/** Slotted router item **/\n\nslot[name=\"router-item\"]::slotted(a) {\n pointer-events: all;\n}\n\n::slotted(a) {\n font-size: 0.875rem !important;\n border: none !important;\n vertical-align: middle !important;\n}\n\n/** menu button on top navigation\\side navigation \n * uses secondary monochrome tokens which are duplicated here to avoid multiple copies in each component\n */\n\n:host(#menu-button.ic-theme-dark) {\n --ic-button-secondary-background-hover-monochrome: var(\n --ic-action-dark-bg-hover\n );\n --ic-button-secondary-background-pressed-monochrome: var(\n --ic-action-dark-bg-pressed\n );\n --ic-button-secondary-text-hover-monochrome: var(\n --ic-action-monochrome-hover-dark\n );\n --ic-button-secondary-text-pressed-monochrome: var(\n --ic-action-monochrome-pressed-dark\n );\n --ic-button-secondary-border-hover-monochrome: var(\n --ic-color-border-neutral-hover-dark\n );\n --ic-button-secondary-border-pressed-monochrome: var(\n --ic-color-border-neutral-pressed-dark\n );\n}\n\n:host(#menu-button.ic-theme-light) {\n --ic-button-secondary-background-hover-monochrome: var(\n --ic-action-light-bg-hover\n );\n --ic-button-secondary-background-pressed-monochrome: var(\n --ic-action-light-bg-pressed\n );\n --ic-button-secondary-text-hover-monochrome: var(\n --ic-action-monochrome-hover\n );\n --ic-button-secondary-text-pressed-monochrome: var(\n --ic-action-monochrome-pressed\n );\n --ic-button-secondary-border-hover-monochrome: var(\n --ic-color-border-neutral-hover-light\n );\n --ic-button-secondary-border-pressed-monochrome: var(\n --ic-color-border-neutral-default\n );\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n .button,\n ::slotted(a) {\n border: 0.125rem solid transparent !important;\n }\n\n .search-submit-button ::slotted(a),\n .ic-button-variant-icon ::slotted(a),\n .clear-button ::slotted(a),\n .search-submit-button ::slotted(svg),\n .ic-button-variant-icon ::slotted(svg),\n .clear-button ::slotted(svg) {\n color: HighlightText;\n }\n\n :host(.ic-button-variant-icon.monochrome) ::slotted(a),\n :host(.ic-button-variant-icon.monochrome) ::slotted(svg) {\n color: white;\n }\n\n :host(.clear-button) .button:not(:active):focus ::slotted(svg) {\n color: white !important;\n background-color: inherit;\n }\n\n :host(.ic-button-variant-primary:not(.ic-button-disabled)) ::slotted(svg) {\n color: currentcolor !important;\n }\n}\n\n/** Pagination **/\n\n:host(.flip) ::slotted(svg) {\n transform: scaleX(-1);\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Listen,\n Method,\n Prop,\n State,\n forceUpdate,\n h,\n Watch,\n Fragment,\n} from \"@stencil/core\";\n\nimport {\n getBrandFromContext,\n handleHiddenFormButtonClick,\n inheritAttributes,\n isSlotUsed,\n removeDisabledFalse,\n renderFileHiddenInput,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport { IcButtonTypes, IcButtonVariants } from \"./ic-button.types\";\nimport {\n IcSizes,\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundEnum,\n IcThemeMode,\n IcButtonTooltipPlacement,\n IcIconPlacementOptions,\n} from \"../../utils/types\";\nimport arrowDropdown from \"../../assets/arrow-dropdown.svg\";\n\nlet buttonIds = 0;\n\n/**\n * @slot left-icon - Content will be placed to the left of the button label.\n * @slot right-icon - Content will be placed to the right of the button label.\n * @slot top-icon - Content will be placed above the button label.\n * @slot badge - Badge component overlaying the top right of the button.\n * @slot router-item - Handle routing by nesting your routes in this slot. Setting loading to true will have no impact on this slot.\n */\n@Component({\n tag: \"ic-button\",\n styleUrl: \"ic-button.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Button {\n private buttonEl?: HTMLElement;\n private buttonIdNum = buttonIds++;\n private hasTooltip = false;\n private id: string | null;\n private inheritedAttributes: { [k: string]: string } = {};\n private describedbyEl: HTMLElement | null = null;\n private describedById?: string;\n private mutationObserver: MutationObserver | null = null;\n private hostMutationObserver: MutationObserver | null = null;\n private routerSlot: HTMLElement | null;\n\n @Element() el: HTMLIcButtonElement;\n\n @State() ariaLabel = \"\";\n @State() describedbyNode: Node | null;\n @Watch(\"describedbyNode\")\n watchDescribedbyNodeHandler(): void {\n this.updateAriaDescribedbyClone();\n }\n @State() title = \"\";\n\n /**\n * If `fileUpload` is set to `true`, this is the accepted list of file types.\n */\n @Prop() accept = \"*\";\n\n /**\n * @internal Used to identify any related child component\n */\n @Prop() ariaControlsId?: string | boolean;\n\n /**\n * @internal Used to identify any related child component\n */\n @Prop() ariaOwnsId?: string | boolean;\n\n /**\n * If `true`, the button will be in disabled state.\n */\n @Prop() disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the ic-tooltip which is shown for icon variant will be disabled. Title or aria-label must be set if this prop is not applied.\n */\n @Prop() disableTooltip = false;\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n @Prop() download: string | boolean = false;\n\n /**\n * If `true`, the button will show a dropdown icon.\n */\n @Prop() dropdown = false;\n\n /**\n * If `true`, the aria-expanded value will be set to true. This is only applied if the dropdown prop is also true.\n */\n @Prop({ mutable: true, reflect: true }) dropdownExpanded = false;\n\n /**\n * If `true`, when the button is clicked the native file explorer will be launched.\n */\n @Prop() fileUpload = false;\n\n /**\n * The name of the control for the file input, which is submitted with the form data.\n */\n @Prop() fileInputName = `ic-button-file-upload-input-${buttonIds++}`;\n\n /**\n * The <form> element to associate the button with.\n */\n @Prop() form?: string;\n\n /**\n * The URL that processes the information submitted by the button. It overrides the action attribute of the button's form owner. Does nothing if there is no form owner.\n */\n @Prop() formaction?: string;\n\n /**\n * The way the submitted form data is encoded.\n */\n @Prop() formenctype?: string;\n\n /**\n * The HTTP method used to submit the form.\n */\n @Prop() formmethod?: string;\n\n /**\n * If `true`, the form will not be validated when submitted.\n */\n @Prop() formnovalidate?: boolean;\n\n /**\n * The place to display the response from submitting the form. It overrides the target attribute of the button's form owner.\n */\n @Prop() formtarget?: string;\n\n /**\n * If `true`, the button will fill the width of the container.\n */\n @Prop() fullWidth = false;\n\n /**\n * The URL that the link points to. This will render the button as an \"a\" tag.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * If `true`, the button will be in loading state.\n */\n @Prop() loading = false;\n\n /**\n * If `true`, the button will display as monochromatic in either `light` or `dark` theme.\n */\n @Prop({ mutable: true }) monochrome = false;\n\n /**\n * If `fileUpload` is set to `true`, this boolean determines whether multiple files are accepted.\n */\n @Prop() multiple = false;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The list of the files that have been selected by a user.\n */\n @Prop() selectedFiles?: FileList;\n\n /**\n * The size of the button to be displayed.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop({ mutable: true }) theme: IcThemeMode = \"inherit\";\n\n /**\n * Setting to `true` can help in situations where tooltip content is clipped by a parent element.\n */\n @Prop() tooltipFixedPositioning: boolean = false;\n\n /**\n * The position of the tooltip in relation to the button.\n */\n @Prop() tooltipPlacement: IcButtonTooltipPlacement = \"bottom\";\n\n /**\n * If `true`, the secondary & tertiary variants of button will have a transparent background when not hovered, pressed or loading.\n */\n @Prop() transparentBackground = true;\n\n /**\n * The type of the button.\n */\n @Prop() type: IcButtonTypes = \"button\";\n\n /**\n * The variant of the button to be displayed.\n */\n @Prop({ mutable: true }) variant: IcButtonVariants = \"primary\";\n @Watch(\"variant\")\n watchVariantHandler(newVariant: IcButtonVariants): void {\n if (newVariant === \"icon\") this.variant = \"icon-tertiary\";\n }\n\n /**\n * Emitted when button has blur\n */\n @Event() icBlur!: EventEmitter<void>;\n\n /**\n * If `fileUpload` is set to `true`, this will be emitted when a file is selected in the native explorer.\n */\n @Event() icFileSelection!: EventEmitter<FileList>;\n\n /**\n * Emitted when button has focus\n */\n @Event() icFocus!: EventEmitter<void>;\n\n disconnectedCallback(): void {\n this.mutationObserver?.disconnect();\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillUpdate(): void {\n if (this.loading) {\n this.el.style.setProperty(\n \"--min-width\",\n `${this.el.getBoundingClientRect().width}px`\n );\n }\n this.setHasTooltip();\n }\n\n componentWillLoad(): void {\n const {\n title,\n \"aria-label\": ariaLabel,\n ...restInheritedAttributes\n } = inheritAttributes(this.el, [...IC_INHERITED_ARIA, \"title\"]);\n\n this.title = title;\n this.ariaLabel = ariaLabel;\n this.inheritedAttributes = restInheritedAttributes;\n\n removeDisabledFalse(this.disabled, this.el);\n\n this.el.setAttribute(\"exportparts\", \"button\");\n\n this.id = this.el.id || null;\n this.setHasTooltip();\n\n if (!this.hasTooltip) {\n const describedById = this.inheritedAttributes[\"aria-describedby\"];\n if (describedById) {\n this.describedById = describedById;\n const el = document.querySelector<HTMLElement>(`#${describedById}`);\n if (el) {\n this.describedbyEl = el;\n this.describedbyNode = el.cloneNode(true);\n }\n }\n }\n\n if (this.variant === \"icon\") {\n this.variant = \"icon-tertiary\";\n }\n }\n\n componentDidLoad(): void {\n this.updateTheme();\n\n if (typeof MutationObserver !== \"undefined\") {\n if (this.describedbyEl && this.describedById) {\n this.mutationObserver = new MutationObserver(this.mutationCallback);\n this.mutationObserver.observe(this.describedbyEl, {\n characterData: true,\n childList: true,\n subtree: true,\n });\n }\n\n this.hostMutationObserver = new MutationObserver(\n this.hostMutationCallback\n );\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n });\n\n if (this.hasRouterSlot()) this.arrangeRouterItem();\n }\n\n this.updateAriaDescribedbyClone();\n }\n\n componentWillRender(): void {\n const iconEl = this.getSlottedIcon(\"left\") || this.getSlottedIcon(\"right\");\n iconEl?.setAttribute(\"viewBox\", \"0 0 24 24\");\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(event: Event): void {\n if (!this.hasRouterSlot()) {\n if (this.fileUpload) {\n renderFileHiddenInput(\n this.icFileSelection,\n this.el,\n !!this.multiple,\n !!this.disabled,\n this.accept,\n this.fileInputName,\n this.selectedFiles\n );\n }\n if (this.disabled || this.loading) {\n event.stopImmediatePropagation();\n }\n if (this.dropdown) {\n this.dropdownExpanded = !this.dropdownExpanded;\n }\n }\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler({ detail }: CustomEvent<IcBrand>): void {\n this.updateTheme(detail.mode);\n }\n\n /**\n * Sets focus on the native `button`.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.buttonEl?.focus();\n }\n\n private async closeButtonTooltip(ev: KeyboardEvent) {\n const tooltip = this.el.shadowRoot?.querySelector(\"ic-tooltip\");\n if (tooltip && (await tooltip.isTooltipVisible())) {\n tooltip.displayTooltip(false);\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n }\n\n private getSlottedIcon = (position: IcIconPlacementOptions) =>\n this.el.querySelector(`[slot=\"${position}-icon\"]`);\n\n private hasRouterSlot() {\n this.routerSlot = this.el.querySelector('[slot=\"router-item\"]');\n if (this.routerSlot) {\n this.routerSlot.ariaLabel = this.routerSlot.textContent;\n }\n return !!this.routerSlot;\n }\n\n private handleClick = () => {\n if (\n (this.el.type === \"submit\" || this.el.type === \"reset\") &&\n !this.hasRouterSlot() &&\n (this.form || !!this.el.closest(\"FORM\"))\n ) {\n const form = this.form\n ? document.querySelector<HTMLFormElement>(`form[id=${this.form}]`)\n : this.el.closest<HTMLFormElement>(\"FORM\");\n\n handleHiddenFormButtonClick(form, this.el);\n }\n };\n\n private handleKeyDown = (ev: KeyboardEvent) => {\n if (ev.key === \"Escape\" && this.hasTooltip) {\n this.closeButtonTooltip(ev);\n }\n };\n\n private onFocus = () => {\n this.icFocus.emit();\n };\n\n private onBlur = () => {\n this.icBlur.emit();\n };\n\n private updateTheme(mode: IcBrandForeground | null = null) {\n const foregroundColor = getBrandFromContext(this.el, mode);\n if (foregroundColor !== IcBrandForegroundEnum.Default) {\n this.theme =\n foregroundColor === IcBrandForegroundEnum.Light\n ? IcBrandForegroundEnum.Dark\n : IcBrandForegroundEnum.Light;\n this.monochrome = true;\n }\n }\n\n /**\n * Creates/updates clone of aria-describedby element node tree in shadow dom\n * Required due to ids being scoped to the shadow dom\n */\n private updateAriaDescribedbyClone = () => {\n if (this.describedbyNode) {\n const wrapper = this.el.shadowRoot?.querySelector(\"#describedby-wrapper\");\n if (!wrapper) {\n this.el.shadowRoot?.appendChild(\n Object.assign(document.createElement(\"div\"), {\n id: \"describedby-wrapper\",\n className: \"ic-button-describedby\",\n })\n );\n }\n\n while (wrapper?.firstChild) wrapper.firstChild.remove();\n wrapper?.appendChild(this.describedbyNode);\n }\n };\n\n /**\n * Triggered when light dom aria-describedby element updates\n */\n private mutationCallback = () => {\n if (this.describedbyEl)\n this.describedbyNode = this.describedbyEl?.cloneNode(true);\n };\n\n /**\n * Triggered when attributes of host element change\n * @param mutationList the list of changes made to the host element\n */\n private hostMutationCallback = (mutationList: MutationRecord[]) => {\n let forceComponentUpdate = false;\n mutationList.forEach(({ attributeName }) => {\n if (attributeName) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute) {\n if (attributeName === \"title\") this.title = attribute;\n else if (attributeName === \"aria-label\") this.ariaLabel = attribute;\n\n if (IC_INHERITED_ARIA.includes(attributeName)) {\n this.inheritedAttributes[attributeName] = attribute;\n forceComponentUpdate = true;\n }\n }\n }\n });\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n private setHasTooltip = () => {\n this.hasTooltip =\n !this.disableTooltip && (!!this.title || !!this.isIconVariant());\n };\n\n private isIconVariant = () => this.variant.startsWith(\"icon\");\n\n private arrangeRouterItem = () => {\n const setStyles = (\n element: HTMLElement | SVGElement,\n styles: { [key: string]: string }\n ) => {\n Object.entries(styles).forEach(([key, value]) => {\n element.style.setProperty(key, value);\n });\n };\n\n if (this.routerSlot) {\n const icTypography = document.createElement(\"ic-typography\");\n\n setStyles(icTypography, {\n \"font-family\": \"var(--ic-font-body-family)\",\n \"font-size\": \"0.875rem\",\n \"font-weight\": \"600\",\n });\n setStyles(this.routerSlot, {\n gap: \"0\",\n });\n\n const icon = this.routerSlot.querySelector(\"svg\");\n const iconSlot = icon?.getAttribute(\"slot\");\n const iconWrapper = document.createElement(\"div\");\n\n if (icon) {\n setStyles(icon, {\n fill: \"currentcolor\",\n });\n\n if (iconSlot === \"top-icon\") {\n setStyles(this.routerSlot, {\n display: \"flex\",\n \"flex-direction\": \"column\",\n \"--height\": \"fit-content\",\n });\n } else if (iconSlot) {\n const marginPlacement = iconSlot === \"left-icon\" ? \"right\" : \"left\";\n setStyles(iconWrapper, {\n [`margin-${marginPlacement}`]: \"var(--ic-space-xs)\",\n });\n }\n\n iconWrapper.append(icon);\n }\n\n const badge = this.routerSlot.querySelector(\"ic-badge\");\n const label = this.routerSlot.textContent?.trim();\n\n if (badge) iconWrapper.append(badge);\n if (label) icTypography.textContent = label;\n\n this.routerSlot.textContent = \"\";\n\n if (iconSlot === \"right-icon\") {\n this.routerSlot.append(icTypography);\n this.routerSlot.append(iconWrapper);\n } else {\n this.routerSlot.append(iconWrapper);\n this.routerSlot.append(icTypography);\n }\n }\n };\n\n render() {\n const {\n ariaControlsId,\n ariaLabel,\n ariaOwnsId,\n buttonIdNum,\n describedById,\n disabled,\n download,\n dropdown,\n dropdownExpanded,\n form,\n formaction,\n formenctype,\n formmethod,\n formnovalidate,\n formtarget,\n fullWidth,\n handleClick,\n handleKeyDown,\n hasTooltip,\n href,\n hreflang,\n id,\n inheritedAttributes,\n isIconVariant,\n loading,\n monochrome,\n onBlur,\n onFocus,\n referrerpolicy,\n rel,\n size,\n target,\n theme,\n title,\n tooltipFixedPositioning,\n tooltipPlacement,\n transparentBackground,\n type,\n variant,\n } = this;\n\n const TagType = href ? \"a\" : \"button\";\n const buttonAttrs =\n TagType === \"button\"\n ? {\n type,\n disabled,\n form,\n formaction,\n formenctype,\n formmethod,\n formnovalidate,\n formtarget,\n }\n : {\n download: download !== false ? download : null,\n href,\n rel,\n target,\n referrerpolicy,\n hreflang,\n };\n\n const buttonId = hasTooltip\n ? `ic-button-with-tooltip-${id || buttonIdNum}`\n : undefined;\n\n const describedby = !hasTooltip ? describedById : `ic-tooltip-${buttonId}`;\n\n const hasLeftIcon = !!this.getSlottedIcon(\"left\");\n const hasRightIcon = !!this.getSlottedIcon(\"right\");\n\n const ButtonContent = () =>\n this.hasRouterSlot() ? (\n <slot name=\"router-item\"></slot>\n ) : (\n <TagType\n class=\"button\"\n tabindex={0}\n aria-disabled={loading || disabled ? \"true\" : null}\n aria-label={loading ? \"Loading\" : ariaLabel}\n aria-expanded={dropdown && `${dropdownExpanded}`}\n {...buttonAttrs}\n {...inheritedAttributes}\n onFocus={onFocus}\n onBlur={onBlur}\n ref={(el) => (this.buttonEl = el)}\n aria-describedby={describedby}\n part=\"button\"\n >\n {loading ? (\n <div class=\"loading-container\">\n <ic-loading-indicator\n type=\"linear\"\n monochrome={monochrome}\n theme={theme}\n ></ic-loading-indicator>\n </div>\n ) : (\n <Fragment>\n {(hasLeftIcon ||\n (!!this.getSlottedIcon(\"top\") && !hasRightIcon)) && (\n <div class=\"icon-container\">\n <slot name={`${hasLeftIcon ? \"left\" : \"top\"}-icon`} />\n </div>\n )}\n <slot />\n {!dropdown\n ? hasRightIcon && (\n <div class={{ \"icon-container\": true, \"right-icon\": true }}>\n <slot name=\"right-icon\" />\n </div>\n )\n : variant !== \"icon\" &&\n variant !== \"destructive\" && (\n <span\n class={\n dropdownExpanded\n ? \"dropdown-expanded\"\n : \"arrow-dropdown\"\n }\n innerHTML={arrowDropdown}\n />\n )}\n </Fragment>\n )}\n </TagType>\n );\n\n return (\n <Host\n class={{\n \"ic-button-disabled\": disabled && !loading,\n \"ic-button-full-width\": fullWidth,\n \"ic-button-loading\": loading,\n [`ic-button-size-${size}`]: true,\n [`ic-button-variant-${variant}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n background:\n (variant === \"secondary\" || variant === \"tertiary\") &&\n !transparentBackground &&\n !disabled,\n \"dropdown-no-icon\":\n dropdown &&\n !isSlotUsed(this.el, \"icon\") &&\n !isSlotUsed(this.el, \"left-icon\"),\n monochrome,\n \"top-icon\": isSlotUsed(this.el, \"top-icon\"),\n \"with-badge\": isSlotUsed(this.el, \"badge\"),\n }}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n aria-owns={ariaOwnsId}\n aria-controls={ariaControlsId}\n aria-expanded={dropdown && `${dropdownExpanded}`}\n >\n {hasTooltip && (\n <ic-tooltip\n id={describedby}\n label={title || ariaLabel}\n target={buttonId}\n placement={tooltipPlacement}\n fixedPositioning={tooltipFixedPositioning}\n silent={isIconVariant() && !!ariaLabel}\n >\n <ButtonContent />\n </ic-tooltip>\n )}\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n {!hasTooltip && <ButtonContent />}\n </Host>\n );\n }\n}\n","@import \"../../global/normalize.css\";\n\n:host {\n /**\n * @prop --circular-diameter: Diameter of the circular-indicator in px, rem or %\n */\n\n display: block;\n\n --linear-border-radius: 0.25rem;\n --inner-color: var(--ic-loading-indicator-inner-color);\n --outer-color: var(--ic-loading-indicator-outer-color);\n --label-color: var(--ic-loading-indicator-label-color);\n --margin: none;\n --linear-line-height: var(--ic-space-xs);\n}\n\n:host(.ic-loading-indicator-monochrome) {\n --inner-color: var(--ic-loading-indicator-inner-color-monochrome);\n --outer-color: var(--ic-loading-indicator-outer-color-monochrome);\n --label-color: var(--ic-loading-indicator-label-color-monochrome);\n}\n\n.ic-loading-container {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n\n:host(.ic-loading-indicator-size-small) {\n --circular-diameter: 2.5rem;\n --linear-line-height: var(--ic-space-xxs);\n}\n\n:host(.ic-loading-indicator-size-medium) {\n --circular-diameter: 5rem;\n}\n\n:host(.ic-loading-indicator-size-large) {\n --circular-diameter: 7.5rem;\n}\n\n:host(.ic-loading-indicator-size-icon) {\n display: inline-block;\n\n --margin: var(--ic-space-xxxs);\n --circular-diameter: 1.25rem;\n}\n\n:host(.ic-loading-indicator-label) {\n --margin: 0 0 var(--ic-space-xs) 0;\n}\n\n.ic-loading-label {\n --ic-typography-color: var(--label-color);\n\n margin-left: var(--label-margin-left);\n}\n\n.ic-loading-circular-outer {\n height: var(--circular-diameter);\n width: var(--circular-diameter);\n}\n\n.ic-loading-circular-outer.indeterminate {\n animation: circular-animation 1s linear;\n animation-iteration-count: infinite;\n}\n\n@keyframes circular-animation {\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.ic-loading-circular-outer,\n.ic-loading-linear-outer {\n margin: var(--margin);\n}\n\n.ic-loading-linear-outer {\n background-color: var(--outer-color);\n height: var(--linear-line-height);\n width: 100%;\n border-radius: var(--linear-border-radius);\n overflow: hidden;\n}\n\n.ic-loading-circular-outer[aria-valuenow=\"0\"] .ic-loading-circular-inner,\n.ic-loading-linear-outer[aria-valuenow=\"0\"] .ic-loading-linear-inner {\n --inner-color: var(--outer-color);\n}\n\n.ic-loading-linear-inner {\n position: relative;\n height: 100%;\n background-color: var(--inner-color);\n border-radius: var(--linear-border-radius);\n}\n\n.indeterminate > .ic-loading-linear-inner {\n animation: linear-animation 2s infinite;\n}\n\n.determinate > .ic-loading-linear-inner {\n transition: width 0.5s;\n width: var(--linear-width);\n}\n\n:host(.ic-loading-indicator-full-width) {\n --linear-border-radius: none;\n}\n\n@keyframes linear-animation {\n 0% {\n width: 0%;\n left: -1%;\n }\n\n 25% {\n width: 0%;\n left: -1%;\n }\n\n 50% {\n width: 101%;\n left: -1%;\n }\n\n 75% {\n width: 0%;\n left: 101%;\n }\n\n 100% {\n width: 0%;\n left: 101%;\n }\n}\n\n.ic-loading-circular-svg {\n position: relative;\n width: 100%;\n height: 100%;\n transform: rotate(-90deg);\n}\n\n.ic-loading-circular-svg circle {\n width: 100%;\n height: 100%;\n fill: none;\n stroke: var(--compact-step-outer-color, var(--outer-color));\n stroke-width: var(--circular-line-width);\n stroke-linecap: round;\n}\n\n/* --stroke-dash-array calculated via dashArray method */\n.ic-loading-circular-svg circle:nth-child(2) {\n --circular-indeterminate: calc(\n (0.25 * var(--stroke-dasharray)) - var(--stroke-dasharray)\n );\n\n stroke-dasharray: var(--stroke-dasharray), var(--stroke-dasharray);\n stroke-dashoffset: var(--stroke-dashoffset, var(--circular-indeterminate));\n stroke: var(--compact-step-inner-color, var(--inner-color));\n}\n\n.inner-label {\n height: 100%;\n display: grid;\n}\n\n.inner-label .ic-loading-circular-svg,\n.inner-text {\n grid-column: 1;\n grid-row: 1;\n}\n\n/** ic-stepper **/\n:host(.not-required.compact-step-progress-indicator)\n .ic-loading-circular-svg\n circle:nth-child(2) {\n stroke: var(--ic-architectural-300);\n}\n\n.inner-text {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--ic-space-lg);\n height: inherit;\n overflow: hidden;\n margin: auto;\n\n --ic-typography-color: var(\n --ic-step-indicator-text-current,\n var(--ic-status-info-default)\n );\n}\n\n:host(.not-required.compact-step-progress-indicator) .inner-text {\n --ic-typography-color: var(--ic-step-indicator-text-disabled);\n}\n\n:host(.ic-loading-indicator-light.not-required.compact-step-progress-indicator)\n .inner-text {\n --ic-typography-color: var(--ic-architectural-400);\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n .indeterminate > .ic-loading-circular-inner {\n forced-color-adjust: none;\n }\n\n .ic-loading-linear-outer {\n border: var(--ic-border-hc);\n }\n\n .ic-loading-linear-inner {\n background-color: canvastext;\n }\n\n .ic-loading-circular-svg circle {\n stroke: Background;\n }\n\n .ic-loading-circular-svg circle:nth-child(2) {\n stroke: canvastext;\n }\n\n :host(.not-required.compact-step-progress-indicator)\n .ic-loading-circular-svg\n circle:nth-child(2) {\n stroke: GrayText;\n }\n}\n","import { Component, Element, h, Host, Prop, State, Watch } from \"@stencil/core\";\nimport {\n IcLoadingCircleXYR,\n IcLoadingSizes,\n IcLoadingTypes,\n} from \"./ic-loading-indicator.types\";\nimport { IcThemeMode } from \"../../utils/types\";\n\nconst LOADING_INDICATOR_WIDTHS = {\n large: 120,\n medium: 80,\n small: 40,\n icon: 20,\n};\n\n@Component({\n tag: \"ic-loading-indicator\",\n styleUrl: \"ic-loading-indicator.css\",\n shadow: true,\n})\nexport class LoadingIndicator {\n private innerElement?: HTMLDivElement;\n private interval: ReturnType<typeof setInterval>;\n private labelList: string[] = [];\n private outerElement?: HTMLDivElement;\n\n @Element() el: HTMLIcLoadingIndicatorElement;\n\n @State() circularDiameter = 0;\n @State() circularLineWidth = 0;\n @State() circularDimensions: IcLoadingCircleXYR = {\n x: 0,\n y: 0,\n r: 0,\n };\n @State() indicatorLabel?: string;\n @State() clipInnerElement = false;\n\n /**\n * The description that will be set as the aria-label of the loading indicator when not using a visible label.\n */\n @Prop() description = \"Loading\";\n\n /**\n * If `true`, when linear, the full-width variant (i.e. without a border radius) will be displayed.\n */\n @Prop({ reflect: true }) fullWidth = false;\n\n /**\n * @internal The step number of a compact step, managed by ic-step.\n */\n @Prop() innerLabel?: number;\n\n /**\n * The label to be displayed beneath the loading indicator.\n * Display a changing label by supplying an array of messages.\n */\n @Prop() label?: string | string[];\n @Watch(\"label\")\n watchPropHandler(): void {\n this.updateLabel();\n }\n\n /**\n * The time in milliseconds before the label changes.\n */\n @Prop() labelDuration = 8000;\n\n /**\n * The maximum value that the progress value can take.\n * Used to calculate the proportional width of the progress bar.\n */\n @Prop() max = 100;\n\n /**\n * The minimum value that the progress value can take.\n * Used to calculate the proportional width of the progress bar.\n */\n @Prop() min = 0;\n\n /**\n * If `true`, the element will display as black and white.\n */\n @Prop() monochrome = false;\n\n /**\n * The current amount of progress made.\n * If not provided, component acts as an indeterminate loading indicator.\n */\n @Prop() progress?: number;\n @Watch(\"max\")\n @Watch(\"min\")\n @Watch(\"progress\")\n handleProgressChange(): void {\n if (this.type === \"linear\") {\n this.setLinearDeterminateWidth();\n } else {\n this.setCircleDimensions();\n }\n }\n\n /**\n * The size of the loading indicator.\n */\n @Prop({ reflect: true }) size: IcLoadingSizes = \"medium\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n\n /**\n * The type of indicator, either linear or circular.\n */\n @Prop({ reflect: true }) type: IcLoadingTypes = \"circular\";\n @Watch(\"type\")\n setIndicatorDimensions(): void {\n if (this.type === \"circular\") {\n // Sets the circular indicator line width - accounting for the circle size being altered using the CSS custom property\n const diameter = this.calculateWidth();\n if (this.outerElement && diameter !== this.circularDiameter) {\n this.circularLineWidth = diameter * 0.1;\n this.circularDiameter = diameter;\n this.outerElement.style.setProperty(\n \"--circular-line-width\",\n `${this.circularLineWidth}px`\n );\n }\n this.setCircleDimensions();\n } else {\n this.setLinearDeterminateWidth();\n }\n }\n\n disconnectedCallback(): void {\n clearInterval(this.interval);\n }\n\n componentWillLoad(): void {\n this.updateLabel();\n this.el.setAttribute(\"exportparts\", \"ic-loading-container\");\n }\n\n componentDidLoad(): void {\n this.setIndicatorDimensions();\n }\n\n private getLabel = (labelIndex: number) =>\n new Promise(() => {\n this.interval = setInterval(() => {\n if (labelIndex < this.labelList.length - 1) {\n labelIndex++;\n } else {\n labelIndex = 0;\n }\n this.indicatorLabel = this.labelList[labelIndex];\n }, this.labelDuration);\n });\n\n private getLabelVariant = () => {\n const width = this.type === \"circular\" ? this.calculateWidth() : 0;\n\n if (this.size === \"small\" || (width && width < 60)) {\n return \"label\";\n } else if (this.size === \"large\" || width >= 120) {\n return \"h2\";\n }\n return \"h4\";\n };\n\n private calculateWidth = () => {\n if (this.outerElement?.offsetWidth) return this.outerElement.offsetWidth;\n\n if (this.outerElement) {\n const { width } = window.getComputedStyle(this.outerElement);\n\n if (width) {\n // Regex to check the units of the css string\n if (width.match(/\\D+$/)?.[0] !== \"%\") return parseFloat(width);\n\n const parentWidth = this.outerElement.parentElement?.offsetWidth;\n if (parentWidth) return parentWidth * (parseFloat(width) / 100);\n }\n }\n\n return LOADING_INDICATOR_WIDTHS[this.size];\n };\n\n private calculateProportion = (progress: number) => {\n const minProgress = Math.min(this.max, Math.max(this.min, progress));\n return (minProgress - this.min) / (this.max - this.min);\n };\n\n private setLinearDeterminateWidth = () => {\n // Ensure progress cannot be out of bounds\n if (!this.innerElement || !this.progress) return;\n\n const proportion = this.calculateProportion(this.progress);\n this.clipInnerElement = proportion > 0.5;\n if (this.clipInnerElement) {\n this.innerElement.classList.remove(\"clip\");\n } else {\n this.innerElement.classList.add(\"clip\");\n }\n this.innerElement.style.setProperty(\n \"--linear-width\",\n `${proportion * 100}%`\n );\n };\n\n private updateLabel = () => {\n if (!this.label) return;\n\n if (typeof this.label === \"string\") {\n this.indicatorLabel = this.label;\n } else {\n this.labelList = this.label;\n this.indicatorLabel = this.labelList[0];\n if (this.labelList.length > 1) {\n this.getLabel(0);\n }\n }\n };\n\n private setCircleDimensions = () => {\n if (this.circularDiameter <= 0) return;\n\n const r = this.circularDiameter / 2;\n const nextRadius = r - this.circularLineWidth / 2;\n const dashArray = 2 * Math.PI * nextRadius;\n\n this.circularDimensions = {\n x: r,\n y: r,\n r: nextRadius,\n dashArray: `${dashArray}px`,\n dashOffset: this.progress\n ? `${(-1 - this.calculateProportion(this.progress)) * dashArray}px`\n : undefined,\n };\n };\n\n render() {\n const {\n circularDiameter,\n circularDimensions: { x, y, r, dashArray, dashOffset },\n description,\n fullWidth,\n indicatorLabel,\n innerLabel,\n label,\n max,\n min,\n monochrome,\n progress,\n size,\n theme,\n type,\n } = this;\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n \"ic-loading-indicator-full-width\": fullWidth,\n \"ic-loading-indicator-label\": !!label,\n \"ic-loading-indicator-monochrome\": monochrome,\n [`ic-loading-indicator-size-${size}`]: true,\n }}\n >\n <div class=\"ic-loading-container\" part=\"ic-loading-container\">\n <div\n ref={(el) => (this.outerElement = el)}\n class={{\n [`ic-loading-${type}-outer`]: true,\n [progress === undefined ? \"indeterminate\" : \"determinate\"]: true,\n }}\n role=\"progressbar\"\n aria-labelledby={label && size !== \"icon\" && \"ic-loading-label\"}\n aria-label={description}\n aria-valuenow={progress}\n aria-valuemin={min}\n aria-valuemax={max}\n >\n <div\n ref={(el) => (this.innerElement = el)}\n class={{\n [`ic-loading-${type}-inner`]: true,\n \"inner-label\": !!innerLabel,\n }}\n >\n {innerLabel && size === \"small\" && (\n <ic-typography variant=\"subtitle-small\" class=\"inner-text\">\n {innerLabel}\n </ic-typography>\n )}\n {type === \"circular\" && (\n <svg\n class=\"ic-loading-circular-svg\"\n viewBox={`0 0 ${circularDiameter} ${circularDiameter}`}\n >\n <circle cx={x} cy={y} r={r}></circle>\n <circle\n style={{\n \"--circular-steps-max\": progress ? `${max}` : undefined,\n \"--progress-value\":\n progress !== undefined ? `${progress}` : undefined,\n \"--stroke-dasharray\": dashArray,\n \"--stroke-dashoffset\": dashOffset,\n }}\n cx={x}\n cy={y}\n r={r}\n ></circle>\n </svg>\n )}\n </div>\n </div>\n {label && size !== \"icon\" && (\n <ic-typography\n id=\"ic-loading-label\"\n class=\"ic-loading-label\"\n role=\"alert\"\n variant={this.getLabelVariant()}\n >\n <p>{indicatorLabel}</p>\n </ic-typography>\n )}\n </div>\n </Host>\n );\n }\n}\n","@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-tooltip: z-index of tooltip\n */\n\n:host(.ic-tooltip) {\n width: max-content;\n height: max-content;\n\n --ic-tooltip-background: var(--ic-color-background-primary-dark);\n --ic-tooltip-text: var(--ic-color-text-primary-dark);\n --ic-tooltip-border: var(--ic-color-border-neutral-grey-light);\n}\n\n:host(.ic-tooltip) .ic-tooltip-container {\n background-color: var(--ic-tooltip-background);\n text-align: center;\n padding: var(--ic-space-xxxs) var(--ic-space-xs);\n border-radius: var(--ic-border-radius);\n border: var(--ic-border-width) solid var(--ic-tooltip-border);\n position: absolute;\n max-width: 20rem;\n display: none;\n z-index: var(--ic-z-index-tooltip);\n box-shadow: var(--ic-elevation-overlay);\n width: max-content;\n}\n\n:host(.ic-tooltip) ic-typography {\n --ic-typography-color: var(--ic-tooltip-text);\n}\n\n:host(.tooltip-navigation-item:not(.tooltip-navigation-item-side-nav-collapsed))\n .ic-tooltip-container,\n:host(.tooltip-disabled) .ic-tooltip-container {\n display: none !important;\n}\n\n:host(.tooltip-long-label-navigation-item-side-nav-expanded)\n .ic-tooltip-container[data-show] {\n display: block !important;\n}\n\n:host(.ic-tooltip) .ic-tooltip-arrow,\n:host(.ic-tooltip) .ic-tooltip-arrow::before {\n position: absolute;\n background: inherit;\n}\n\n:host(.ic-tooltip) .ic-tooltip-arrow {\n visibility: hidden;\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n}\n\n:host(.ic-tooltip) .ic-tooltip-arrow::before {\n visibility: visible;\n content: \"\";\n border: var(--ic-border-width) solid var(--ic-tooltip-border);\n width: 100%;\n height: 100%;\n}\n\n:host(.ic-tooltip) .ic-tooltip-container[data-show] {\n display: block;\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"top\"]\n > .ic-tooltip-arrow {\n height: var(--ic-space-xxxs);\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"top\"]\n > .ic-tooltip-arrow::before {\n border-radius: 0 0 var(--ic-border-radius) var(--ic-border-radius);\n left: 0;\n top: var(--ic-space-xxxs);\n border-top: 0;\n transform: translateX(var(--tooltip-arrow-translate));\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"bottom\"]\n > .ic-tooltip-arrow {\n top: calc(-1 * var(--ic-space-xxs));\n height: var(--ic-space-xxxs);\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"bottom\"]\n > .ic-tooltip-arrow::before {\n border-radius: var(--ic-border-radius) var(--ic-border-radius) 0 0;\n left: 0;\n top: var(--ic-space-1px);\n border-bottom: 0;\n transform: translateX(var(--tooltip-arrow-translate));\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"left\"]\n > .ic-tooltip-arrow {\n width: var(--ic-space-xxxs);\n right: calc(-1 * var(--ic-space-1px));\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"left\"]\n > .ic-tooltip-arrow::before {\n border-radius: 0 var(--ic-border-radius) var(--ic-border-radius) 0;\n border-left: 0;\n top: calc(-1 * var(--ic-space-1px));\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"right\"]\n > .ic-tooltip-arrow {\n width: var(--ic-space-xxxs);\n left: calc(-1 * var(--ic-space-xxs));\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"right\"]\n > .ic-tooltip-arrow::before {\n border-radius: var(--ic-border-radius) 0 0 var(--ic-border-radius);\n border-right: 0;\n top: calc(-1 * var(--ic-space-1px));\n}\n\n:host(.ic-tooltip-on-dialog) {\n display: inline-block;\n}\n\n@media screen and (max-width: 576px) {\n :host(.ic-tooltip) .ic-tooltip-container {\n max-width: 18.875rem;\n }\n}\n\n@media (forced-colors: active) {\n :host(.ic-tooltip) .ic-tooltip-container,\n :host(.ic-tooltip) .ic-tooltip-arrow::before {\n border: var(--ic-border-hc);\n }\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n h,\n Method,\n State,\n Watch,\n} from \"@stencil/core\";\nimport { Instance, Options, createPopper } from \"@popperjs/core\";\nimport { IcTooltipPlacements } from \"./ic-tooltip.types\";\nimport {\n isSafari,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport { IcThemeMode } from \"../../utils/types\";\n\n@Component({\n tag: \"ic-tooltip\",\n styleUrl: \"ic-tooltip.css\",\n shadow: true,\n})\nexport class Tooltip {\n private arrow: HTMLDivElement;\n private delayedHideEvents = [\"mouseleave\"];\n private dialogContentArea: HTMLDivElement | null;\n private instantHideEvents = [\"focusout\"];\n private mouseOverTool: boolean = false;\n private persistTooltip = false;\n private popperInstance: Instance;\n private showEvents = [\n !this.disableHover && \"mouseenter\",\n !this.disableHover && \"focusin\",\n !this.disableClick && \"click\",\n ];\n private toolTip: HTMLDivElement;\n\n @Element() el: HTMLIcTooltipElement;\n\n /**\n * If `true`, the tooltip will not be displayed on click, it will require hover or using the display method.\n */\n @Prop() disableClick?: boolean = false;\n\n @Watch(\"disableClick\")\n watchDisableClickHandler(): void {\n if (this.disableClick) {\n this.hide();\n }\n this.updateTooltipEvents();\n }\n\n /**\n * If `true`, the tooltip will not be displayed on hover, it will require a click.\n */\n @Prop() disableHover?: boolean = false;\n\n @Watch(\"disableHover\")\n watchDisableHoverHandler(): void {\n if (this.disableHover) {\n this.hide();\n }\n this.updateTooltipEvents();\n }\n\n /**\n * Setting to `true` can help in situations where tooltip content is clipped by a parent element.\n */\n @Prop() fixedPositioning: boolean = false;\n\n /**\n * The number of lines to display before truncating the text.\n */\n @Prop() maxLines?: number;\n\n /**\n * The position of the tooltip in relation to the parent element.\n */\n @Prop() placement?: IcTooltipPlacements = \"bottom\";\n\n /**\n * @internal Sets the tooltip to aria-hidden, when used as part of components that are already announced.\n */\n @Prop() silent?: boolean = false;\n\n /**\n * The ID of the element the tooltip is describing - for when aria-labelledby or aria-describedby is used.\n */\n @Prop({ reflect: true }) target?: string;\n\n /**\n * Sets the tooltip to the dark or light theme colors. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The text to display on the tooltip.\n */\n @Prop() label!: string;\n @Watch(\"label\")\n watchLabelHandler(): void {\n if (this.toolTip?.hasAttribute(\"data-show\") && this.popperInstance) {\n this.popperInstance.update();\n }\n }\n\n @State() popperProps: Partial<Options> = {};\n\n /**\n * @internal This method allows props to be added to the PopperJS createPopper instance outside of tooltip\n * @param props object - createPopper props set externally\n */\n @Method()\n async setExternalPopperProps<T extends Partial<Options>>(props: T) {\n this.popperProps = props;\n }\n\n disconnectedCallback(): void {\n this.manageEventListeners(\"remove\");\n if (this.popperInstance !== undefined) {\n this.popperInstance.destroy();\n }\n }\n\n componentDidLoad(): void {\n this.manageEventListeners(\"add\");\n\n let dialog: HTMLIcDialogElement | null;\n if ((this.el.getRootNode() as ShadowRoot).host) {\n dialog = (this.el.getRootNode() as ShadowRoot).host.closest(\"ic-dialog\");\n } else {\n dialog = this.el.closest(\"ic-dialog\");\n }\n this.dialogContentArea =\n dialog?.shadowRoot?.querySelector(\".content-area\") ?? null;\n\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Tooltip\"\n );\n }\n\n componentDidRender(): void {\n const typographyEl = this.el.shadowRoot?.querySelector(\n \".ic-tooltip-container > ic-typography\"\n );\n this.maxLines &&\n this.maxLines > 0 &&\n typographyEl?.setAttribute(\n \"style\",\n `--truncation-max-lines: ${this.maxLines}`\n );\n }\n /**\n * Method to programmatically show/hide the tooltip without needing to interact with an anchor element\n * @param show Whether to show or hide the tooltip\n * @param persistTooltip Whether the tooltip should stay on the screen when actions are performed that would previously dismiss the tooltip, such as on hover\n */\n @Method()\n async displayTooltip(show: boolean, persistTooltip?: boolean): Promise<void> {\n this.persistTooltip = !!persistTooltip;\n show ? this.show() : this.hide();\n }\n\n /**\n * @internal Method to return if tooltip is currently visible.\n */\n @Method()\n async isTooltipVisible(): Promise<boolean> {\n return Promise.resolve(this.toolTip.hasAttribute(\"data-show\"));\n }\n\n private show = () => {\n if (this.label) {\n this.toolTip.setAttribute(\"data-show\", \"\");\n\n if (this.dialogContentArea) {\n this.el.classList.add(\"ic-tooltip-on-dialog\");\n }\n\n this.popperInstance = createPopper(this.el, this.toolTip, {\n strategy: this.fixedPositioning ? \"fixed\" : \"absolute\",\n placement: this.placement,\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 10],\n },\n },\n {\n name: \"arrow\",\n options: {\n element: this.arrow,\n },\n },\n {\n name: \"eventListeners\",\n options: { scroll: false, resize: false },\n },\n ...(this.dialogContentArea\n ? [\n {\n name: \"preventOverflow\",\n options: {\n boundary: this.dialogContentArea,\n padding: 8,\n },\n },\n {\n name: \"flip\",\n options: {\n boundary: this.dialogContentArea,\n },\n },\n ]\n : []),\n ],\n ...this.popperProps,\n });\n } else {\n console.warn(`Tooltip can't display without prop 'label' set`);\n }\n };\n\n private hide = () => {\n if (this.toolTip !== undefined) {\n this.toolTip.removeAttribute(\"data-show\");\n this.persistTooltip = false;\n }\n if (this.popperInstance !== undefined) {\n this.popperInstance.destroy();\n }\n };\n\n private checkCloseTooltip = () => {\n setTimeout(() => {\n if (!this.mouseOverTool && !this.persistTooltip) {\n this.hide();\n }\n }, 100);\n };\n\n private mouseEnterTooltip = () => {\n this.mouseOverTool = true;\n };\n\n private mouseLeaveTooltip = () => {\n this.mouseOverTool = false;\n this.checkCloseTooltip();\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\" && !this.persistTooltip) {\n this.hide();\n }\n };\n\n private manageEventListeners = (action: \"add\" | \"remove\") => {\n const method =\n action === \"add\" ? \"addEventListener\" : \"removeEventListener\";\n\n this.showEvents.forEach((event) => {\n if (event) {\n this.el[method](event, this.show);\n if (this.toolTip !== undefined) {\n this.toolTip[method](event, this.mouseEnterTooltip);\n }\n }\n });\n\n if (!this.persistTooltip) {\n this.instantHideEvents.forEach((event) => {\n this.el[method](event, this.hide);\n });\n }\n\n this.delayedHideEvents.forEach((event) => {\n this.el[method](event, this.checkCloseTooltip);\n if (this.toolTip !== undefined) {\n this.toolTip[method](event, this.mouseLeaveTooltip);\n }\n });\n\n document[method](\"keydown\", this.handleKeyDown as EventListener);\n };\n\n private updateTooltipEvents = () => {\n this.manageEventListeners(\"remove\");\n this.showEvents = [\n !this.disableHover && \"mouseenter\",\n !this.disableHover && \"focusin\",\n !this.disableClick && \"click\",\n ];\n this.manageEventListeners(\"add\");\n };\n\n render() {\n const { label, maxLines, silent, theme } = this;\n return (\n <Host\n class={{\n \"ic-tooltip\": true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n aria-label={isSafari && label} // accessible name needs to be in light dom to be announced by VoiceOver. Replace in v4 as aria-label on element with no role is not well-supported\n >\n <div\n ref={(el) => (this.toolTip = el as HTMLDivElement)}\n role=\"tooltip\"\n class=\"ic-tooltip-container\"\n aria-hidden={`${silent}`}\n >\n <ic-typography maxLines={maxLines} variant=\"caption\">\n {label}\n </ic-typography>\n <div\n ref={(el) => (this.arrow = el as HTMLDivElement)}\n class=\"ic-tooltip-arrow\"\n ></div>\n </div>\n <slot></slot>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e,h as t,H as c,g as a}from"./p-8e4e97b4.js";import{C as i}from"./p-c2e091d7.js";import{e as s}from"./p-a5658054.js";import"./p-bddf799a.js";const r=`<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M7.99935 4.32666L13.0193 13H2.97935L7.99935 4.32666ZM7.99935 1.66666L0.666016 14.3333H15.3327L7.99935 1.66666ZM8.66602 11H7.33268V12.3333H8.66602V11ZM8.66602 6.99999H7.33268V9.66666H8.66602V6.99999Z" fill="currentColor"/>\n</svg>`;const n=":host{display:flex;flex:auto;--ic-typography-color:currentcolor}.step{display:flex;flex:1 1 0}.step-icon{display:flex;justify-content:center}.heading,.subheading,.step-status,.next-step{white-space:pre-line}.next-step{color:var(--ic-stepper-compact-step-next-text)}.visually-hidden{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}.visually-hidden:dir(rtl){right:-9999px}:host(.ic-step-compact){-moz-column-gap:var(--ic-space-sm);column-gap:var(--ic-space-sm);--compact-step-inner-color:var(--ic-step-indicator-status-current);--compact-step-outer-color:var(--ic-step-indicator-status-remaining);--compact-step-circular-line-width:var(--ic-space-xxs)}:host(.ic-step-compact) .step{-moz-column-gap:var(--ic-space-sm);column-gap:var(--ic-space-sm)}:host(.ic-step-compact) .step:not(.current){display:none;opacity:0;visibility:hidden}.compact-step-progress-indicator{margin:var(--ic-space-xs) 0 0}:host ic-loading-indicator::part(ic-loading-container){border-radius:50%}:host() ic-loading-indicator::part(ic-loading-container){background-color:var(--ic-step-indicator-background)}:host(.ic-step-compact) .heading-area{display:flex;flex-direction:column;width:14.25rem}:host(.ic-step-compact) .heading{color:var(--ic-stepper-compact-step-title)}:host(.ic-step-compact) .disabled .heading{color:var(--ic-stepper-compact-step-title-disabled)}.info-line{display:flex;-moz-column-gap:var(--ic-space-xs);column-gap:var(--ic-space-xs)}.step-status{display:flex;color:var(--ic-stepper-compact-step-requirement-text);-moz-column-gap:var(--ic-space-xxxs);column-gap:var(--ic-space-xxxs)}.compact-step-completed .step-status{color:var(--ic-stepper-compact-step-completed-text)}.compact-step-disabled :is(.heading,.step-status){color:var(--ic-stepper-compact-step-requirement-text-disabled)}.step-num{color:var(--ic-stepper-compact-step-stage-text);white-space:nowrap}:host(.ic-step-compact) .step-icon{margin:var(--ic-space-xxxs)}:host(.ic-step-compact) .step-icon svg{width:var(--ic-space-md);height:var(--ic-space-md)}:host(.ic-step-default) .step{flex-direction:column}:host(.ic-step-default.last-step){flex-grow:initial}.step-top{display:flex;width:100%;align-items:center;align-self:flex-start;height:2.5rem}:host(.ic-step-default) .step-icon{border-radius:50%;background-color:var(--ic-step-number-inactive)}.step-icon-inner{width:var(--ic-space-xl);height:var(--ic-space-xl);display:flex;justify-content:center;align-items:center;border-radius:50%;color:var(--ic-step-number-text-inactive)}:host(.ic-step-default) .current{color:var(--ic-status-info-default)}:host(.ic-step-default) .heading-area{margin:var(--ic-space-xs) 0;padding-right:var(--ic-space-xs);width:100%}:host(.ic-step-default) .heading,.subheading{width:-moz-fit-content;width:fit-content}.heading{color:var(--ic-step-title)}.current .heading{color:var(--ic-step-title-current)}.completed .heading{color:var(--ic-step-title-success)}.disabled .heading{color:var(--ic-step-title-disabled)}.subheading{color:var(--ic-step-title-status-text-inactive)}.current .subheading{color:var(--ic-step-title-status-text-current)}.disabled .subheading{color:var(--ic-step-title-status-text-disabled)}:host(.ic-step-default) .completed{color:var(--ic-status-success-default)}.active .step-icon-inner{box-shadow:inset var(--ic-step-number-inactive-outline) 0 0 0 0.125rem}.current .step-icon-inner{background-color:var(--ic-step-number-background-active);color:var(--ic-step-number-text-current)}.disabled{color:var(--ic-color-text-disabled-mid)}.disabled .step-icon-inner{border:var(--ic-border-width) dashed var(--ic-step-number-disabled);width:calc(var(--ic-space-xl) - var(--ic-space-xxxs));height:calc(var(--ic-space-xl) - var(--ic-space-xxxs));color:var(--ic-step-number-text-disabled)}.disabled .step-icon{background-color:transparent !important}.completed .step-icon-inner{background:var(--ic-step-number-background-success);box-shadow:inset var(--ic-step-number-background-success) 0 0 0\n var(--ic-space-xxxs);border-radius:100%}:host(.ic-step-default) .current .step-icon{border:var(--ic-space-xxxs) solid var(--ic-step-number-current-outline);padding:var(--ic-space-xxxs);margin:0 calc(-1 * var(--ic-space-xxxs));background-color:var(--ic-step-number-current-outer-fill);}.step-connect{height:var(--ic-space-xxxs);background-color:var(--ic-stepper-connector-remaining-status);margin:0 var(--ic-space-xs);border-radius:var(--ic-space-xxs);width:100%}.aligned-full-width.step-connect{min-width:6.25rem;width:100%}.disabled .step-connect{height:0;background-color:rgb(0 0 0 / 0%);border-top:0.125rem dashed var(--ic-stepper-connector-disabled);border-radius:0}.completed .step-connect{background-color:var(--ic-stepper-connector-success)}.step-connect-inner{width:70%;display:flex;flex:auto;height:var(--ic-space-xxxs);border-radius:var(--ic-space-xxs);background-color:var(--ic-stepper-connector-current-status)}.step-icon-inner .check-icon{padding-top:var(--ic-space-xxs)}.step-icon-inner .check-icon svg{width:var(--ic-space-md);height:auto}.step-icon-inner .check-icon>svg>path{fill:var(--ic-step-number-icon-success)}@media (forced-colors: active){.compact-step-disabled :is(.heading,.step-status){color:GrayText}.step-connect:not(.disabled .step-connect){border:var(--ic-border-hc)}.active .step-icon-inner,.completed .step-icon-inner,.current .step-icon-inner{forced-color-adjust:none;box-shadow:inset canvastext 0 0 0 0.125rem;background-color:transparent;color:canvastext}:host(.ic-step-default) .current .step-icon{padding:0;border:none}.disabled,.disabled .heading-area,.disabled .step-icon-inner,.disabled .heading{color:GrayText}.step-connect-inner,.completed .step-connect{background-color:canvastext}.step-icon-inner .check-icon>svg>path{fill:canvastext}}";const o=n;const d=class{constructor(t){e(this,t);this.current=false;this.icI18n={next:"Next",step:"Step",steps:"Steps",of:"of",lastStep:"Last step",completed:"Completed",notRequired:"Not required",required:"Required",optional:"Optional"};this.theme="inherit";this.type="active"}typeChangeHandler(){if(this.variant==="compact"&&this.type==="current"){this.current=true}else{this.current=false}}render(){var e,a;const{compactStepStyling:n,current:o,heading:d,icI18n:p,lastStep:l,lastStepNum:u,nextStepHeading:b,progress:h,status:f,stepNum:v,subheading:m,theme:g,type:x,variant:y}=this;let k="";if(x==="completed"){k=`. ${p.completed}`}else if(x==="disabled"){k=`. ${p.notRequired}`}else if(f==="required"){k=`. ${p.required}`}else if(f==="optional"){k=`. ${p.optional}`}let w;if(f&&s(f)){w=f[0].toUpperCase()+f.slice(1)}let $;if(x==="disabled"||n==="disabled"){$=p.notRequired}else if(n==="completed"){$=p.completed}let H;if(x==="completed"||n==="completed"){H=t("span",{key:"864d4561a571389ff3128b00ffb529010930b4b5",class:"check-icon step-icon","aria-hidden":"true",innerHTML:i})}else if(x==="disabled"||n==="disabled"){H=t("span",{key:"7bf14abf049e8e5d3fc870c574393adb49e68b8c",class:"warning-icon step-icon","aria-hidden":"true",innerHTML:r})}const q=t("div",{key:"4f3ac82fbcc83d16b72393415b08bb383b3844e1",class:{["step"]:true,["current"]:!!o,[`compact-step-${n}`]:!!n,["disabled"]:x==="disabled"||n==="disabled"}},t("ic-loading-indicator",{key:"53ebcdba2a35459adeb1ac198e7a48620eb5ed8f",class:{"compact-step-progress-indicator":true,"not-required":x==="disabled"||n==="disabled"},"aria-hidden":"true",size:"small","inner-label":v,progress:h}),t("div",{key:"1206ec1c72eafac85fa94f936db215fd6d66a9da",class:"heading-area"},t("ic-typography",{key:"ecd033d92e805fc2538f92253f43a667594d30da",variant:"h4",class:"heading"},d),t("div",{key:"98f5a4369ed8e41271c9e5121d6ef4e68191e766",class:"info-line"},t("ic-typography",{key:"5b58bcbe7124d039d41e6cddd1c737a82e689f46",variant:"caption",class:"step-num"},`${v} ${p.of} ${u}`,t("span",{key:"86b332b0596baaa8f14e6232ca4742fca349b401",class:"visually-hidden"},` ${p.steps}`)),(this.subheading||x==="completed"||x==="disabled"||this.variant==="compact"&&!!n&&n!=="active"||!!f)&&t("div",{key:"e7348cf5cb486de2bd35047429b8baedb64e7945",class:"step-status"},H!==undefined&&H,(m||$)&&t("ic-typography",{key:"1e636d26071c9274b29b3e9fbd5edcff666bf650",variant:"caption"},m!==null&&s(m)?m:x==="disabled"||y==="compact"&&n==="disabled"||x==="completed"||y==="compact"&&n==="completed"?$:f&&w))),l?t("ic-typography",{variant:"subtitle-small",class:"next-step"},p.lastStep):s(b)&&t("ic-typography",{variant:"subtitle-small",class:"next-step"},p.next,t("span",{class:"visually-hidden"}," ",p.step),":"," ",this.nextStepHeading)));let L;if(x!=="completed"){L=t("ic-typography",{key:"11944edb6340175b2619cd7bf1a92a077c2581e7",variant:"subtitle-small"},t("span",{key:"5636bdbab2cbae08c7122adae7376b380d2c0e6b",class:"step-icon-inner","aria-hidden":"true"},this.stepNum))}else{L=t("div",{key:"b479680a69976f4a1fecff4944fe49d6ad7a1803",class:"step-icon-inner","aria-hidden":"true"},t("span",{key:"f147fc626a8a1ee01f7a00e642353f0393f2a9bf",class:"check-icon",innerHTML:i}))}const S=x==="current"&&t("div",{key:"38562e1d3953a8e3fad8a666be017c6eb8b023d8",class:"step-connect-inner"});const j=!l&&t("div",{key:"92355de2de8a20e3efd244e90181ed4728908396",class:{["step-connect"]:true,["aligned-full-width"]:!!(((e=this.el.parentElement)===null||e===void 0?void 0:e.classList.contains("ic-stepper-default"))&&!this.el.parentElement.classList.contains("ic-stepper-aligned-left"))}},S);const M=t("div",{key:"26938dd799f54d8440d45c9d9615a4831f7cab98",class:{["step"]:true,[`${x}`]:true}},t("div",{key:"34aca5fbe4025940b5226476d1da17725831a7db",class:"step-top"},t("div",{key:"e59c7c95a9b32b9e897a6dc6d37000cd45294caf",class:"step-icon"},L),j),(d||m||f)&&t("div",{key:"568405e10345dfe382fd78d096391cc870914f6a",class:"heading-area"},d&&t("ic-typography",{key:"6dcac8ec5550fe94c80e75c65ecec33dee7b4157",variant:"subtitle-large",class:"heading"},d),d&&(m||f)&&t("ic-typography",{key:"efe9c1f647e25a84eded6c390ff1b487e0ea5a0d",variant:"caption",class:"subheading"},m!==null&&s(m)?m:w)));return t(c,{key:"359b602ab02607c5ec02673283f99172c3b4a924",role:"listitem","aria-label":`${p.step} ${v}${k}`,"aria-current":(o||x==="current")&&"step",class:{["aligned-full-width"]:!!(((a=this.el.parentElement)===null||a===void 0?void 0:a.classList.contains("ic-stepper-default"))&&!this.el.parentElement.classList.contains("ic-stepper-aligned-left")),[`ic-step-${y}`]:true,[`ic-theme-${g}`]:this.theme!=="inherit"}},y==="compact"?q:M)}get el(){return a(this)}static get watchers(){return{type:["typeChangeHandler"]}}};d.style=o;export{d as ic_step};
|
|
2
|
-
//# sourceMappingURL=p-42d35fc4.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["icStepCss","IcStepStyle0","Step","constructor","hostRef","this","current","icI18n","next","step","steps","of","lastStep","completed","notRequired","required","optional","theme","type","typeChangeHandler","variant","render","compactStepStyling","heading","lastStepNum","nextStepHeading","progress","status","stepNum","subheading","ariaLabel","stepStatus","isPropDefined","toUpperCase","slice","stepType","statusIcon","h","key","class","innerHTML","checkIcon","warningIcon","compactStep","size","undefined","icon","partialBar","finalStep","_a","el","parentElement","classList","contains","defaultStep","Host","role","_b"],"sources":["src/components/ic-step/ic-step.css?tag=ic-step&encapsulation=shadow","src/components/ic-step/ic-step.tsx"],"sourcesContent":["/* SHARED STYLING */\n:host {\n display: flex;\n flex: auto;\n\n --ic-typography-color: currentcolor;\n}\n\n.step {\n display: flex;\n flex: 1 1 0;\n}\n\n.step-icon {\n display: flex;\n justify-content: center;\n}\n\n.heading,\n.subheading,\n.step-status,\n.next-step {\n white-space: pre-line;\n}\n\n.next-step {\n color: var(--ic-stepper-compact-step-next-text);\n}\n\n.visually-hidden {\n position: absolute;\n left: -9999px;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n}\n\n.visually-hidden:dir(rtl) {\n right: -9999px;\n}\n\n/* COMPACT STEP STYLING */\n:host(.ic-step-compact) {\n column-gap: var(--ic-space-sm);\n\n --compact-step-inner-color: var(--ic-step-indicator-status-current);\n --compact-step-outer-color: var(--ic-step-indicator-status-remaining);\n --compact-step-circular-line-width: var(--ic-space-xxs);\n}\n\n:host(.ic-step-compact) .step {\n column-gap: var(--ic-space-sm);\n}\n\n:host(.ic-step-compact) .step:not(.current) {\n display: none;\n opacity: 0;\n visibility: hidden;\n}\n\n.compact-step-progress-indicator {\n margin: var(--ic-space-xs) 0 0;\n}\n\n:host ic-loading-indicator::part(ic-loading-container) {\n border-radius: 50%;\n}\n\n:host() ic-loading-indicator::part(ic-loading-container) {\n background-color: var(--ic-step-indicator-background);\n}\n\n:host(.ic-step-compact) .heading-area {\n display: flex;\n flex-direction: column;\n width: 14.25rem;\n}\n\n:host(.ic-step-compact) .heading {\n color: var(--ic-stepper-compact-step-title);\n}\n\n:host(.ic-step-compact) .disabled .heading {\n color: var(--ic-stepper-compact-step-title-disabled);\n}\n\n.info-line {\n display: flex;\n column-gap: var(--ic-space-xs);\n}\n\n.step-status {\n display: flex;\n color: var(--ic-stepper-compact-step-requirement-text);\n column-gap: var(--ic-space-xxxs);\n}\n\n.compact-step-completed .step-status {\n color: var(--ic-stepper-compact-step-completed-text);\n}\n\n.compact-step-disabled :is(.heading, .step-status) {\n color: var(--ic-stepper-compact-step-requirement-text-disabled);\n}\n\n.step-num {\n color: var(--ic-stepper-compact-step-stage-text);\n white-space: nowrap;\n}\n\n:host(.ic-step-compact) .step-icon {\n margin: var(--ic-space-xxxs);\n}\n\n:host(.ic-step-compact) .step-icon svg {\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n}\n\n/* DEFAULT STEP STYLING */\n:host(.ic-step-default) .step {\n flex-direction: column;\n}\n\n:host(.ic-step-default.last-step) {\n flex-grow: initial;\n}\n\n.step-top {\n display: flex;\n width: 100%;\n align-items: center;\n align-self: flex-start;\n height: 2.5rem;\n}\n\n:host(.ic-step-default) .step-icon {\n border-radius: 50%;\n background-color: var(--ic-step-number-inactive);\n}\n\n.step-icon-inner {\n width: var(--ic-space-xl);\n height: var(--ic-space-xl);\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 50%;\n color: var(--ic-step-number-text-inactive);\n}\n\n:host(.ic-step-default) .current {\n color: var(--ic-status-info-default);\n}\n\n:host(.ic-step-default) .heading-area {\n margin: var(--ic-space-xs) 0;\n padding-right: var(--ic-space-xs);\n width: 100%;\n}\n\n:host(.ic-step-default) .heading,\n.subheading {\n width: fit-content;\n}\n\n.heading {\n color: var(--ic-step-title);\n}\n\n.current .heading {\n color: var(--ic-step-title-current);\n}\n\n.completed .heading {\n color: var(--ic-step-title-success);\n}\n\n.disabled .heading {\n color: var(--ic-step-title-disabled);\n}\n\n.subheading {\n color: var(--ic-step-title-status-text-inactive);\n}\n\n.current .subheading {\n color: var(--ic-step-title-status-text-current);\n}\n\n.disabled .subheading {\n color: var(--ic-step-title-status-text-disabled);\n}\n\n:host(.ic-step-default) .completed {\n color: var(--ic-status-success-default);\n}\n\n.active .step-icon-inner {\n box-shadow: inset var(--ic-step-number-inactive-outline) 0 0 0 0.125rem;\n}\n\n.current .step-icon-inner {\n background-color: var(--ic-step-number-background-active);\n color: var(--ic-step-number-text-current);\n}\n\n.disabled {\n color: var(--ic-color-text-disabled-mid);\n}\n\n.disabled .step-icon-inner {\n border: var(--ic-border-width) dashed var(--ic-step-number-disabled);\n width: calc(var(--ic-space-xl) - var(--ic-space-xxxs));\n height: calc(var(--ic-space-xl) - var(--ic-space-xxxs));\n color: var(--ic-step-number-text-disabled);\n}\n\n.disabled .step-icon {\n background-color: transparent !important;\n}\n\n.completed .step-icon-inner {\n background: var(--ic-step-number-background-success);\n box-shadow: inset var(--ic-step-number-background-success) 0 0 0\n var(--ic-space-xxxs);\n border-radius: 100%;\n}\n\n:host(.ic-step-default) .current .step-icon {\n border: var(--ic-space-xxxs) solid var(--ic-step-number-current-outline);\n padding: var(--ic-space-xxxs);\n margin: 0 calc(-1 * var(--ic-space-xxxs));\n background-color: var(--ic-step-number-current-outer-fill);\n\n /* compensating for the circle being bigger than other steps */\n}\n\n.step-connect {\n height: var(--ic-space-xxxs);\n background-color: var(--ic-stepper-connector-remaining-status);\n margin: 0 var(--ic-space-xs);\n border-radius: var(--ic-space-xxs);\n width: 100%;\n}\n\n.aligned-full-width.step-connect {\n min-width: 6.25rem;\n width: 100%;\n}\n\n.disabled .step-connect {\n height: 0;\n background-color: rgb(0 0 0 / 0%);\n border-top: 0.125rem dashed var(--ic-stepper-connector-disabled);\n border-radius: 0;\n}\n\n.completed .step-connect {\n background-color: var(--ic-stepper-connector-success);\n}\n\n.step-connect-inner {\n width: 70%;\n display: flex;\n flex: auto;\n height: var(--ic-space-xxxs);\n border-radius: var(--ic-space-xxs);\n background-color: var(--ic-stepper-connector-current-status);\n}\n\n.step-icon-inner .check-icon {\n padding-top: var(--ic-space-xxs);\n}\n\n.step-icon-inner .check-icon svg {\n width: var(--ic-space-md);\n height: auto;\n}\n\n.step-icon-inner .check-icon > svg > path {\n fill: var(--ic-step-number-icon-success);\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n /* COMPACT STEP */\n .compact-step-disabled :is(.heading, .step-status) {\n color: GrayText;\n }\n\n /* DEFAULT STEP */\n .step-connect:not(.disabled .step-connect) {\n border: var(--ic-border-hc);\n }\n\n .active .step-icon-inner,\n .completed .step-icon-inner,\n .current .step-icon-inner {\n forced-color-adjust: none;\n box-shadow: inset canvastext 0 0 0 0.125rem;\n background-color: transparent;\n color: canvastext;\n }\n\n :host(.ic-step-default) .current .step-icon {\n padding: 0;\n border: none;\n }\n\n .disabled,\n .disabled .heading-area,\n .disabled .step-icon-inner,\n .disabled .heading {\n color: GrayText;\n }\n\n .step-connect-inner,\n .completed .step-connect {\n background-color: canvastext;\n }\n\n .step-icon-inner .check-icon > svg > path {\n fill: canvastext;\n }\n}\n","import { Component, Host, h, Prop, Element, Watch } from \"@stencil/core\";\nimport checkIcon from \"../../assets/check-icon.svg\";\nimport warningIcon from \"../../assets/warning-icon-outline.svg\";\nimport {\n IcStepVariants,\n IcStepStatuses,\n IcStepTypes,\n IcStepI18n,\n} from \"./ic-step.types\";\nimport { isPropDefined } from \"../../utils/helpers\";\nimport { IcThemeMode } from \"../../utils/types\";\n\n@Component({\n tag: \"ic-step\",\n styleUrl: \"ic-step.css\",\n shadow: true,\n})\nexport class Step {\n @Element() el: HTMLIcStepElement;\n\n /**\n * @internal If a compact stepper is being used, this sets the styling of the step.\n */\n @Prop() compactStepStyling?: IcStepTypes;\n\n /**\n * @internal If `true`, and a compact stepper is being used, the current step will be the only step in view.\n */\n @Prop({ mutable: true }) current?: boolean = false;\n\n /**\n * Words within the component that can be replaced to translate the component into a different language\n */\n @Prop() icI18n: IcStepI18n = {\n next: \"Next\",\n step: \"Step\",\n steps: \"Steps\",\n of: \"of\",\n lastStep: \"Last step\",\n completed: \"Completed\",\n notRequired: \"Not required\",\n required: \"Required\",\n optional: \"Optional\",\n };\n\n /**\n * @internal If `true`, the step will be marked as being the last one in the series. This is managed by ic-stepper.\n */\n @Prop() lastStep!: boolean;\n\n /**\n * @internal The step number of the final step. This is managed by ic-stepper.\n */\n @Prop() lastStepNum?: number;\n\n /**\n * @internal The name of the next step. This is managed by ic-stepper.\n */\n @Prop() nextStepHeading?: string;\n\n /**\n * @internal The progress of the next step, calculated by dividing the current step number by the total number of steps. This is managed by ic-stepper.\n */\n @Prop() progress?: number;\n\n /**\n * @internal The step number, managed by ic-stepper.\n */\n @Prop() stepNum?: number;\n\n /**\n * The status of the step. Use this prop to display a status message on the step if it is required or optional.\n */\n @Prop() status?: IcStepStatuses;\n\n /**\n * Additional information about the step. Use this prop to override the default step status messaging displayed when selecting a step type or step status.\n */\n @Prop() subheading?: string;\n\n /**\n * The title of the step within the stepper.\n */\n @Prop() heading?: string;\n\n /**\n * @internal Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * @internal The variant of the step. This is managed by ic-stepper.\n */\n @Prop() variant!: IcStepVariants;\n\n /**\n * The state of the step within the stepper.\n */\n @Prop() type?: IcStepTypes = \"active\";\n\n @Watch(\"type\")\n typeChangeHandler(): void {\n if (this.variant === \"compact\" && this.type === \"current\") {\n this.current = true;\n } else {\n this.current = false;\n }\n }\n\n render() {\n const {\n compactStepStyling,\n current,\n heading,\n icI18n,\n lastStep,\n lastStepNum,\n nextStepHeading,\n progress,\n status,\n stepNum,\n subheading,\n theme,\n type,\n variant,\n } = this;\n\n // ARIA LABEL\n let ariaLabel = \"\";\n\n if (type === \"completed\") {\n ariaLabel = `. ${icI18n.completed}`;\n } else if (type === \"disabled\") {\n ariaLabel = `. ${icI18n.notRequired}`;\n } else if (status === \"required\") {\n ariaLabel = `. ${icI18n.required}`;\n } else if (status === \"optional\") {\n ariaLabel = `. ${icI18n.optional}`;\n }\n\n // STEP STATUS\n let stepStatus;\n if (status && isPropDefined(status)) {\n stepStatus = status[0].toUpperCase() + status.slice(1);\n }\n\n // STEP TYPE\n let stepType;\n if (type === \"disabled\" || compactStepStyling === \"disabled\") {\n stepType = icI18n.notRequired;\n } else if (compactStepStyling === \"completed\") {\n stepType = icI18n.completed;\n }\n\n // STATUS ICON FOR COMPACT STEP\n let statusIcon;\n if (type === \"completed\" || compactStepStyling === \"completed\") {\n statusIcon = (\n <span\n class=\"check-icon step-icon\"\n aria-hidden=\"true\"\n innerHTML={checkIcon}\n ></span>\n );\n } else if (type === \"disabled\" || compactStepStyling === \"disabled\") {\n statusIcon = (\n <span\n class=\"warning-icon step-icon\"\n aria-hidden=\"true\"\n innerHTML={warningIcon}\n ></span>\n );\n }\n\n // COMPACT STEP COMPONENT\n const compactStep = (\n <div\n class={{\n [\"step\"]: true,\n [\"current\"]: !!current,\n [`compact-step-${compactStepStyling}`]: !!compactStepStyling,\n [\"disabled\"]:\n type === \"disabled\" || compactStepStyling === \"disabled\",\n }}\n >\n <ic-loading-indicator\n class={{\n \"compact-step-progress-indicator\": true,\n \"not-required\":\n type === \"disabled\" || compactStepStyling === \"disabled\",\n }}\n aria-hidden=\"true\"\n size=\"small\"\n inner-label={stepNum}\n progress={progress}\n ></ic-loading-indicator>\n <div class=\"heading-area\">\n <ic-typography variant=\"h4\" class=\"heading\">\n {heading}\n </ic-typography>\n <div class=\"info-line\">\n <ic-typography variant=\"caption\" class=\"step-num\">\n {`${stepNum} ${icI18n.of} ${lastStepNum}`}\n <span class=\"visually-hidden\">{` ${icI18n.steps}`}</span>\n </ic-typography>\n {(this.subheading ||\n type === \"completed\" ||\n type === \"disabled\" ||\n (this.variant === \"compact\" &&\n !!compactStepStyling &&\n compactStepStyling !== \"active\") ||\n !!status) && (\n <div class=\"step-status\">\n {statusIcon !== undefined && statusIcon}\n {(subheading || stepType) && (\n <ic-typography variant=\"caption\">\n {subheading !== null && isPropDefined(subheading)\n ? subheading\n : type === \"disabled\" ||\n (variant === \"compact\" &&\n compactStepStyling === \"disabled\") ||\n type === \"completed\" ||\n (variant === \"compact\" &&\n compactStepStyling === \"completed\")\n ? stepType\n : status && stepStatus}\n </ic-typography>\n )}\n </div>\n )}\n </div>\n {lastStep ? (\n <ic-typography variant=\"subtitle-small\" class=\"next-step\">\n {icI18n.lastStep}\n </ic-typography>\n ) : (\n isPropDefined(nextStepHeading) && (\n <ic-typography variant=\"subtitle-small\" class=\"next-step\">\n {icI18n.next}\n <span class=\"visually-hidden\"> {icI18n.step}</span>:{\" \"}\n {this.nextStepHeading}\n </ic-typography>\n )\n )}\n </div>\n </div>\n );\n\n // ICON FOR DEFAULT STEP\n let icon;\n if (type !== \"completed\") {\n icon = (\n <ic-typography variant=\"subtitle-small\">\n <span class=\"step-icon-inner\" aria-hidden=\"true\">\n {this.stepNum}\n </span>\n </ic-typography>\n );\n } else {\n icon = (\n <div class=\"step-icon-inner\" aria-hidden=\"true\">\n <span class=\"check-icon\" innerHTML={checkIcon}></span>\n </div>\n );\n }\n\n // STEP CONNECT FOR DEFAULT STEP\n const partialBar = type === \"current\" && (\n <div class=\"step-connect-inner\"></div>\n );\n\n const finalStep = !lastStep && (\n <div\n class={{\n [\"step-connect\"]: true,\n [\"aligned-full-width\"]: !!(\n this.el.parentElement?.classList.contains(\"ic-stepper-default\") &&\n !this.el.parentElement.classList.contains(\"ic-stepper-aligned-left\")\n ),\n }}\n >\n {partialBar}\n </div>\n );\n\n // DEFAULT STEP COMPONENT\n const defaultStep = (\n <div\n class={{\n [\"step\"]: true,\n [`${type}`]: true,\n }}\n >\n <div class=\"step-top\">\n <div class=\"step-icon\">{icon}</div>\n {finalStep}\n </div>\n {(heading || subheading || status) && (\n <div class=\"heading-area\">\n {heading && (\n <ic-typography variant=\"subtitle-large\" class=\"heading\">\n {heading}\n </ic-typography>\n )}\n {heading && (subheading || status) && (\n <ic-typography variant=\"caption\" class=\"subheading\">\n {subheading !== null && isPropDefined(subheading)\n ? subheading\n : stepStatus}\n </ic-typography>\n )}\n </div>\n )}\n </div>\n );\n\n return (\n <Host\n role=\"listitem\"\n aria-label={`${icI18n.step} ${stepNum}${ariaLabel}`}\n aria-current={(current || type === \"current\") && \"step\"}\n class={{\n [\"aligned-full-width\"]: !!(\n this.el.parentElement?.classList.contains(\"ic-stepper-default\") &&\n !this.el.parentElement.classList.contains(\"ic-stepper-aligned-left\")\n ),\n [`ic-step-${variant}`]: true,\n [`ic-theme-${theme}`]: this.theme !== \"inherit\",\n }}\n >\n {variant === \"compact\" ? compactStep : defaultStep}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["icSkeletonCss","IcSkeletonStyle0","DEFAULT_HEIGHTS","text","circle","rectangle","Skeleton","constructor","hostRef","this","theme","variant","render","el","style","firstElementChild","height","width","undefined","h","Host","key","class","skeleton"],"sources":["src/components/ic-skeleton/ic-skeleton.css?tag=ic-skeleton&encapsulation=shadow","src/components/ic-skeleton/ic-skeleton.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n@keyframes loading {\n 0% {\n background-color: var(--ic-skeleton-background);\n }\n\n 50% {\n background-color: var(--ic-skeleton-background-secondary);\n }\n\n 100% {\n background-color: var(--ic-skeleton-background);\n }\n}\n\n:host(.skeleton) {\n background-color: var(--ic-skeleton-background);\n border-radius: var(--ic-border-radius);\n animation: loading 1200ms infinite;\n display: inline-block;\n}\n\n:host(.skeleton) > * {\n opacity: 0;\n visibility: hidden;\n}\n\n:host(.ic-skeleton-circle) {\n border-radius: 50%;\n}\n\n@media (forced-colors: active) {\n :host(.skeleton) {\n -ms-high-contrast-adjust: none;\n forced-color-adjust: none;\n background: currentcolor;\n }\n}\n","import { Component, Element, Host, Prop, h } from \"@stencil/core\";\nimport { IcSkeletonVariants } from \"./ic-skeleton.types\";\nimport { IcThemeMode } from \"../../utils/types\";\n\nconst DEFAULT_HEIGHTS = {\n text: \"1em\",\n circle: \"25px\",\n rectangle: \"93px\",\n};\n\n@Component({\n tag: \"ic-skeleton\",\n styleUrl: \"ic-skeleton.css\",\n shadow: true,\n})\nexport class Skeleton {\n @Element() el: HTMLIcSkeletonElement;\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 variant of the skeleton that will be displayed.\n */\n @Prop() variant?: IcSkeletonVariants = \"rectangle\";\n\n render() {\n const { variant, theme, el } = this;\n\n const style = !el.firstElementChild\n ? {\n height: el.style.height || DEFAULT_HEIGHTS[variant!],\n width: el.style.width || (variant === \"circle\" ? \"25px\" : \"260px\"),\n }\n : undefined;\n\n return (\n <Host\n class={{\n skeleton: true,\n \"ic-skeleton-circle\": variant === \"circle\",\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n style={style}\n aria-disabled=\"true\"\n >\n <slot />\n </Host>\n );\n }\n}\n"],"mappings":"yDAAA,MAAMA,EAAgB,o5FACtB,MAAAC,EAAeD,ECGf,MAAME,EAAkB,CACtBC,KAAM,MACNC,OAAQ,OACRC,UAAW,Q,MAQAC,EAAQ,MALrB,WAAAC,CAAAC,G,UAWUC,KAAAC,MAAsB,UAKtBD,KAAAE,QAA+B,W,CAEvC,MAAAC,GACE,MAAMD,QAAEA,EAAOD,MAAEA,EAAKG,GAAEA,GAAOJ,KAE/B,MAAMK,GAASD,EAAGE,kBACd,CACEC,OAAQH,EAAGC,MAAME,QAAUd,EAAgBS,GAC3CM,MAAOJ,EAAGC,MAAMG,QAAUN,IAAY,SAAW,OAAS,UAE5DO,UAEJ,OACEC,EAACC,EAAI,CAAAC,IAAA,2CACHC,MAAO,CACLC,SAAU,KACV,qBAAsBZ,IAAY,SAClC,CAAC,YAAYD,KAAUA,IAAU,WAEnCI,MAAOA,EAAK,gBACE,QAEdK,EAAA,QAAAE,IAAA,6C","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["icTextFieldCss","IcTextFieldStyle0","inputIds","MUTABLE_ATTRIBUTES","IC_INHERITED_ARIA","TextField","constructor","hostRef","this","inheritedAttributes","hostMutationObserver","numChars","maxCharactersReached","maxCharactersWarning","minCharactersUnattained","maxValueExceeded","minValueUnattained","isFocussed","autocapitalize","autocomplete","autocorrect","autofocus","disabled","fullWidth","helperText","hideCharCount","hideLabel","hiddenInput","inputId","inputmode","maxCharacters","maxCharactersMessage","maxMessage","max","minCharacters","minCharactersMessage","minMessage","min","name","placeholder","readonly","required","resize","rows","size","spellcheck","theme","truncateValue","type","validationAriaLive","validationInline","validationInlineInternal","validationStatus","validationText","debounce","value","initialValue","checkChildHydration","_b","_a","el","shadowRoot","querySelector","classList","contains","setFocus","clearInterval","interval","getNumberOfCharacters","undefined","length","getMaxValueExceeded","Number","getMaxCharactersReached","onInput","ev","target","icInput","emit","onBlur","removeEventListener","onWheel","icBlur","onFocus","addEventListener","icFocus","onTextAreaScroll","icScroll","blur","setTimeout","focus","hasStatus","status","handleFormReset","showValidationMargin","maxNumChars","emptyString","isEmptyString","valueOutsideRange","charsOutsideRange","hostMutationCallback","mutationList","forceComponentUpdate","forEach","attributeName","addedNodes","removedNodes","includes","attribute","getAttribute","checkSlotInChildMutations","forceUpdate","watchDisabledHandler","removeDisabledFalse","debounceChanged","icChange","debounceEvent","watchValueHandler","newValue","substring","inputEl","connectedCallback","disconnectedCallback","removeFormResetListener","disconnect","componentWillLoad","inheritAttributes","addFormResetListener","componentDidLoad","onComponentRequiredPropUndefined","prop","label","propName","getValidationText","MutationObserver","observe","attributes","childList","setInterval","handleKeyDown","icKeydown","event","cursorPosition","selectionStart","selectionEnd","ctrlKey","IGNORED_KEYBOARD_CHARACTERS","key","render","ariaActiveDescendant","ariaExpanded","ariaOwns","role","disabledMode","currentStatus","IcInformationStatus","Warning","Error","currentValidationText","messageAriaLive","showStatusText","Success","multiline","hiddenCharCountDescId","charsRemaining","remainingCharCountDescId","remainingCharCountDesc","describedBy","getInputDescribedByText","trim","disabledText","showLeftIcon","invalid","renderHiddenInput","removeHiddenInput","h","Host","class","for","slot","multiLine","Object","assign","id","ref","maxlength","minlength","onScroll","isSlotUsed","message","ariaLiveMode","variant","hidden"],"sources":["src/components/ic-text-field/ic-text-field.css?tag=ic-text-field&encapsulation=shadow","src/components/ic-text-field/ic-text-field.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n /**\n * @prop --input-width: Width of the input field\n */\n display: block;\n\n --ic-input-label-helpertext-padding: var(--ic-space-xs);\n --border-color: var(--ic-text-field-border-neutral);\n --border-color-hover: var(--ic-text-field-border-neutral-hover);\n --border-color-pressed: var(--ic-text-field-border-neutral-pressed);\n --border-color-disabled: var(--ic-text-field-border-disabled);\n --border-color-error: var(--ic-text-field-border-error);\n --border-color-error-hover: var(--ic-text-field-border-error-hover);\n --border-color-error-pressed: var(--ic-text-field-border-error-pressed);\n --border-color-success: var(--ic-text-field-border-success);\n --border-color-success-hover: var(--ic-text-field-border-success-hover);\n --border-color-success-pressed: var(--ic-text-field-border-success-pressed);\n --border-color-warning: var(--ic-text-field-border-warning);\n --border-color-warning-hover: var(--ic-text-field-border-warning-hover);\n --border-color-warning-pressed: var(--ic-text-field-border-warning-pressed);\n --ic-input-label-text-color: var(--ic-text-field-label);\n --ic-input-label-helper-text-color: var(--ic-text-field-subtitle);\n --ic-input-validation-status-text-color: var(--ic-text-field-state-text);\n --ic-input-validation-error: var(--ic-text-field-state-icon-error);\n --ic-input-validation-warning-icon-color: var(\n --ic-text-field-state-icon-warning\n );\n --ic-input-validation-success-icon-color: var(\n --ic-text-field-state-icon-success\n );\n --ic-input-component-container-success-icon-inline-color: var(\n --ic-text-field-state-icon-success\n );\n}\n\n:host(.ic-text-field-disabled) {\n --ic-input-label-text-color: var(--ic-text-field-label-disabled);\n --ic-input-label-helper-text-color: var(--ic-text-field-subtitle-disabled);\n --text-field-placeholder-color: var(\n --ic-text-field-text-area-placeholder-text-disabled\n );\n}\n\n:host(.ic-text-field-full-width) {\n width: 100%;\n}\n\n::placeholder {\n color: var(\n --text-field-placeholder-color,\n var(--ic-text-field-placeholder-text)\n );\n opacity: 1;\n}\n\ninput,\ntextarea {\n border: 0;\n border-radius: var(--ic-border-radius);\n color: var(--text-field-text-color, var(--ic-text-field-text));\n background-color: var(--input-bg-color, var(--ic-text-field-background));\n line-height: 1.5rem;\n letter-spacing: 0.005rem;\n width: 100%;\n padding-right: var(--ic-space-xs);\n padding-left: var(--ic-space-xs);\n caret-color: var(\n --text-field-typing-cursor,\n var(--ic-text-field-typing-cursor)\n );\n}\n\ntextarea {\n min-height: var(--ic-space-lg);\n resize: vertical;\n padding-top: 0.375rem;\n}\n\ninput:focus,\ntextarea:focus {\n border: 0;\n outline: 0;\n}\n\ninput:disabled,\ntextarea:disabled {\n color: var(\n --text-field-disabled-text-color,\n var(--ic-text-field-text-disabled)\n );\n}\n\ninput.readonly,\ntextarea.readonly {\n color: var(--ic-text-field-read-only-input-text-internal);\n background: transparent;\n}\n\n/* Chrome, Safari, Edge */\ninput::-webkit-outer-spin-button,\ninput::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\n/* Firefox */\ninput[type=\"number\"] {\n -moz-appearance: textfield;\n}\n\ntextarea.no-resize {\n resize: none;\n}\n\n.char-count-text {\n --ic-typography-color: var(--ic-text-field-character-limit);\n\n padding-right: var(--ic-space-xxxs);\n}\n\n:host(.ic-text-field-disabled) .char-count-text {\n --ic-typography-color: var(--ic-text-field-character-limit-disabled);\n}\n\n.no-left-pad {\n padding-left: 0;\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-text-field-text-disabled);\n}\n\n.has-value ::slotted([slot=\"icon\"]) {\n fill: var(--ic-text-field-input-internal-icon);\n}\n\n.char-count {\n margin-right: calc(-1 * var(--ic-space-xxxs));\n}\n\n.remaining-char-count-desc {\n position: absolute;\n left: -9999px;\n}\n\n.show-validation {\n margin-top: var(--ic-space-xs);\n}\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-results-button,\ninput[type=\"search\"]::-webkit-search-results-decoration {\n display: none;\n}\n\ninput[type=\"search\"].truncate-value {\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n@media (forced-colors: active) {\n input.readonly,\n textarea.readonly {\n color: canvastext;\n }\n\n .has-value ::slotted([slot=\"icon\"]) {\n fill: currentcolor;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n Method,\n h,\n forceUpdate,\n} from \"@stencil/core\";\nimport {\n IcInformationStatus,\n IcAutocompleteTypes,\n IcAutocorrectStates,\n IcInformationStatusOrEmpty,\n IcValueEventDetail,\n IcSizesNoLarge,\n IcThemeMode,\n IcValidationAriaLive,\n} from \"../../utils/types\";\nimport {\n inheritAttributes,\n debounceEvent,\n getInputDescribedByText,\n renderHiddenInput,\n isEmptyString,\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n isSlotUsed,\n removeDisabledFalse,\n checkSlotInChildMutations,\n removeHiddenInput,\n} from \"../../utils/helpers\";\nimport {\n IC_INHERITED_ARIA,\n IGNORED_KEYBOARD_CHARACTERS,\n} from \"../../utils/constants\";\nimport {\n IcAriaAutocompleteTypes,\n IcTextFieldInputModes,\n IcTextFieldKeydownEventDetail,\n IcTextFieldTypes,\n} from \"./ic-text-field.types\";\n\nlet inputIds = 0;\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"title\"];\n\n/**\n * @slot helper-text - Content is set as the helper text for the text field.\n * @slot icon - Content will be placed to the left of the text input.\n */\n@Component({\n tag: \"ic-text-field\",\n styleUrl: \"ic-text-field.css\",\n shadow: true,\n})\nexport class TextField {\n private inheritedAttributes: { [k: string]: string } = {};\n private inputEl: HTMLInputElement | HTMLTextAreaElement;\n private hostMutationObserver: MutationObserver | null = null;\n private interval: ReturnType<typeof setInterval>;\n\n @Element() el: HTMLIcTextFieldElement;\n\n @State() numChars: number = 0;\n @State() maxCharactersReached: boolean = false;\n @State() maxCharactersWarning: boolean = false;\n @State() minCharactersUnattained: boolean = false;\n @State() maxValueExceeded: boolean = false;\n @State() minValueUnattained: boolean = false;\n @State() isFocussed: boolean = false;\n\n /**\n * @slot clear-button - an ic-button clear component will render as an end adornment to the input.\n * @slot search-submit-button - an ic-button search submit component will render as an end adornment to the input.\n * @slot menu - an ic-menu component will appear below the input.\n */\n\n /**\n * @internal The active element when focus is on the ic-menu items.\n */\n @Prop() ariaActiveDescendant?: string;\n\n /**\n * @internal Used to identify whether inputting any text triggers more predictions\n */\n @Prop() ariaAutocomplete?: IcAriaAutocompleteTypes;\n\n /**\n * @internal Used to identify if the slotted menu is rendered\n */\n @Prop() ariaExpanded: string | null;\n\n /**\n * @internal Used to identify any related child component\n */\n @Prop() ariaOwns?: string;\n\n /**\n * The automatic capitalisation of the text value as it is entered/edited by the user.\n * Available options: \"off\", \"none\", \"on\", \"sentences\", \"words\", \"characters\".\n */\n @Prop() autocapitalize = \"off\";\n\n /**\n * The state of autocompletion the browser can apply on the text value.\n */\n @Prop() autocomplete?: IcAutocompleteTypes = \"off\";\n\n /**\n * The state of autocorrection the browser can apply when the user is entering/editing the text value.\n */\n @Prop() autocorrect?: IcAutocorrectStates = \"off\";\n\n /**\n * If `true`, the form control will have input focus when the page loads.\n */\n @Prop() autofocus = false;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el as HTMLElement);\n }\n\n /**\n * Specify whether the text field fills the full width of the container.\n * If `true`, this overrides the --input-width CSS variable.\n */\n @Prop() fullWidth = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText = \"\";\n\n /**\n * If `true`, the character count which is displayed when `maxCharacters` is set will be visually hidden.\n */\n @Prop() hideCharCount = false;\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel = false;\n\n /**\n * @internal If `true`, the hidden form input will stop rendering for form submission.\n */\n @Prop() hiddenInput = true;\n\n /**\n * The ID for the input.\n */\n @Prop() inputId = `ic-text-field-input-${inputIds++}`;\n\n /**\n * A hint to the browser for which keyboard to display.\n * Possible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n * `\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.\n */\n @Prop() inputmode: IcTextFieldInputModes = \"text\";\n\n /**\n * The label for the input.\n */\n @Prop() label!: string;\n\n /**\n * The maximum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of max value in `helperText` or `label`)\n */\n @Prop() max?: string | number;\n\n /**\n * The count of characters in the field. Will display a warning if the bound is reached. (NOTE: If the value of the text field has been set using the `value` prop, it will be truncated to this number of characters)\n */\n @Prop() maxCharacters = 0;\n\n /**\n * The text to display as the warning message when the maximum number of characters (the `maxCharacters` prop value) is reached.\n */\n // prettier-ignore\n @Prop() maxCharactersMessage = `Maximum input is ${this.maxCharacters} characters`;\n\n /**\n * The text to display as the error message when the maximum value (the `max` prop value) has been exceeded.\n */\n @Prop() maxMessage = `Maximum value of ${this.max} exceeded`;\n\n /**\n * The minimum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of min value in `helperText` or `label`)\n */\n @Prop() min?: string | number;\n\n /**\n * The minimum number of characters that can be entered in the field.\n */\n @Prop() minCharacters = 0;\n\n /**\n * The text to display as the error message when the minimum number of characters (the `minCharacters` prop value) has not been met.\n */\n // prettier-ignore\n @Prop() minCharactersMessage = `Minimum input is ${this.minCharacters} characters`;\n\n /**\n * The text to display as the error message when the minimum value (the `min` prop value) has not been met.\n */\n @Prop() minMessage = `Minimum value of ${this.min} not met`;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name = this.inputId;\n\n /**\n * The placeholder value to be displayed.\n */\n @Prop() placeholder = \"\";\n\n /**\n * If `true`, the read only state will be set.\n */\n @Prop({ reflect: true }) readonly = false;\n\n /**\n * If `true`, the input will require a value.\n */\n @Prop() required = false;\n\n /**\n * If `true`, the multiline text area will be resizeable.\n */\n @Prop() resize = false;\n\n /**\n * @internal Used to set the role if not default textbox;\n */\n @Prop() role: string | null;\n\n /**\n * The number of rows to transform the text field into a text area with a specific height.\n */\n @Prop() rows = 1;\n\n /**\n * The size of the text field component.\n */\n @Prop() size: IcSizesNoLarge = \"medium\";\n\n /**\n * If `true`, the value of the text field will have its spelling and grammar checked.\n */\n @Prop() spellcheck = false;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n\n /**\n * @internal If `true`, an ellipsis will be displayed at the end of the value if the value is longer than the container.\n */\n @Prop() truncateValue = false;\n\n /**\n * The type of control to display. The default type is text.\n */\n @Prop() type: IcTextFieldTypes = \"text\";\n\n /**\n * The value of the `aria-live` attribute on the validation message. When set to \"default\", the `aria-live` value will be handled automatically, e.g. \"assertive\" for `validation-status=\"error\"`.\n */\n @Prop() validationAriaLive: IcValidationAriaLive = \"default\";\n\n /**\n * If `true`, the icon in input control will be displayed - only applies when validationStatus ='success'.\n */\n @Prop() validationInline = false;\n\n /**\n * @internal If `true`, the validation will display inline.\n */\n @Prop() validationInlineInternal = false;\n\n /**\n * The validation state - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message.\n */\n @Prop() validationText: string = \"\";\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icChange` event after each keystroke.\n */\n @Prop() debounce = 0;\n @Watch(\"debounce\")\n private debounceChanged() {\n this.icChange = debounceEvent(this.icChange, this.debounce);\n }\n\n /**\n * The value of the text field.\n */\n @Prop({ reflect: true, mutable: true }) value = \"\";\n @State() initialValue = this.value;\n @Watch(\"value\")\n private watchValueHandler(newValue: string): void {\n let value;\n\n if (this.maxCharacters > 0) {\n value = newValue.substring(0, this.maxCharacters);\n if (value.length < newValue.length) {\n this.maxCharactersWarning = true;\n }\n this.value = value;\n } else {\n value = newValue;\n }\n\n if (this.inputEl && this.inputEl.value !== value) {\n this.inputEl.value = value;\n }\n\n this.getMaxValueExceeded(value);\n\n this.getMaxCharactersReached(value);\n\n this.icChange.emit({ value });\n }\n\n /**\n * @internal Emitted when the validationInlineInternal is `true`\n */\n @Event() getValidationText: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when input loses focus.\n */\n @Event() icBlur: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when input gains focus.\n */\n @Event() icFocus: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() icInput: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keydown event occurred.\n */\n @Event() icKeydown: EventEmitter<IcTextFieldKeydownEventDetail>;\n\n /**\n * Emitted when the textarea variant is scrolled.\n */\n @Event() icScroll: EventEmitter;\n\n connectedCallback(): void {\n this.debounceChanged();\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el as HTMLElement, this.handleFormReset);\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n if (this.value !== this.initialValue) {\n this.watchValueHandler(this.value);\n } else if (this.maxCharacters > 0) {\n this.value = this.value.substring(0, this.maxCharacters);\n }\n\n this.getMaxValueExceeded(this.value);\n this.getMaxCharactersReached(this.value);\n\n this.inheritedAttributes = inheritAttributes(\n this.el as HTMLElement,\n MUTABLE_ATTRIBUTES\n );\n\n if (this.readonly) {\n this.maxValueExceeded = false;\n this.minValueUnattained = false;\n }\n\n addFormResetListener(this.el as HTMLElement, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el as HTMLElement);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Text Field\"\n );\n if (this.validationInlineInternal) {\n this.getValidationText.emit({ value: this.validationText });\n }\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n });\n\n if (this.autofocus && !this.disabled && !this.readonly) {\n this.interval = setInterval(this.checkChildHydration, 50);\n }\n }\n\n private checkChildHydration = () => {\n if (\n this.hideLabel ||\n this.el.shadowRoot\n ?.querySelector(\"ic-typography\")\n ?.classList.contains(\"hydrated\")\n ) {\n this.setFocus();\n clearInterval(this.interval);\n }\n };\n\n @Listen(\"keydown\", {})\n handleKeyDown(ev: KeyboardEvent): void {\n this.icKeydown.emit({\n event: ev,\n cursorPosition: this.inputEl.selectionStart ?? 0,\n selectionEnd: this.inputEl.selectionEnd ?? 0,\n });\n\n if (!ev.ctrlKey && !IGNORED_KEYBOARD_CHARACTERS.includes(ev.key)) {\n this.maxCharactersWarning = this.maxCharactersReached;\n }\n }\n\n /**\n * Sets focus on the native `input`.\n */\n\n @Method()\n async setFocus(): Promise<void> {\n this.inputEl?.focus();\n }\n\n private getNumberOfCharacters = (value: string) =>\n value !== null && value !== undefined ? value.length : 0;\n\n private getMaxValueExceeded = (value: string) => {\n this.numChars = this.getNumberOfCharacters(value);\n\n if (this.type === \"number\") {\n this.minValueUnattained = !!value && Number(value) < Number(this.min);\n this.maxValueExceeded = Number(value) > Number(this.max);\n }\n };\n\n private getMaxCharactersReached = (value: string) => {\n this.numChars = this.getNumberOfCharacters(value);\n\n this.maxCharactersReached =\n this.maxCharacters > 0 && this.numChars >= this.maxCharacters;\n\n if (this.maxCharactersWarning && !this.maxCharactersReached) {\n this.maxCharactersWarning = false;\n }\n };\n\n private onInput = (ev: Event) => {\n this.value = (ev.target as HTMLInputElement).value;\n this.icInput.emit({ value: this.value });\n };\n\n private onBlur = (ev: Event) => {\n const target = ev.target as HTMLInputElement;\n target.removeEventListener(\"wheel\", this.onWheel);\n const { value } = target;\n this.numChars = value.length;\n this.minCharactersUnattained =\n this.minCharacters > 0 && this.numChars < this.minCharacters;\n this.icBlur.emit({ value });\n this.isFocussed = false;\n };\n\n private onFocus = (ev: Event) => {\n const target = ev.target as HTMLInputElement;\n target.addEventListener(\"wheel\", this.onWheel);\n this.icFocus.emit({ value: target.value });\n this.isFocussed = true;\n };\n\n private onTextAreaScroll = () => {\n this.icScroll.emit();\n };\n\n private onWheel = (ev: WheelEvent) => {\n const target = ev.target as HTMLInputElement;\n if (target.type === \"number\") {\n target.blur();\n setTimeout(() => {\n target.focus();\n }, 0);\n }\n };\n\n private hasStatus = (status: IcInformationStatusOrEmpty) =>\n status !== \"\" && !this.disabled;\n\n private handleFormReset = (): void => {\n this.value = this.initialValue;\n };\n\n private showValidationMargin = (): boolean => {\n const maxNumChars = this.readonly ? 0 : this.maxCharacters;\n const emptyString =\n isEmptyString(this.validationStatus) ||\n isEmptyString(this.validationText);\n const valueOutsideRange = this.minValueUnattained || this.maxValueExceeded;\n const charsOutsideRange = maxNumChars > 0 || this.minCharactersUnattained;\n return (\n (!emptyString || valueOutsideRange || charsOutsideRange) &&\n !this.validationInlineInternal\n );\n };\n\n // triggered when attributes of host element change\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n let forceComponentUpdate = false;\n mutationList.forEach(\n ({ attributeName, type, addedNodes, removedNodes }) => {\n if (attributeName && MUTABLE_ATTRIBUTES.includes(attributeName)) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute) {\n this.inheritedAttributes[attributeName] = attribute;\n }\n forceComponentUpdate = true;\n } else if (type === \"childList\") {\n forceComponentUpdate = checkSlotInChildMutations(\n addedNodes,\n removedNodes,\n \"icon\"\n );\n }\n }\n );\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n render() {\n const {\n inputId,\n name,\n label,\n required,\n size,\n placeholder,\n helperText,\n hideCharCount,\n rows,\n resize,\n disabled,\n value,\n min,\n max,\n numChars,\n readonly,\n maxCharacters,\n maxCharactersMessage,\n maxCharactersWarning,\n maxCharactersReached,\n maxMessage,\n minCharacters,\n minCharactersMessage,\n minCharactersUnattained,\n minMessage,\n minValueUnattained,\n maxValueExceeded,\n validationAriaLive,\n validationStatus,\n validationText,\n validationInline,\n validationInlineInternal,\n spellcheck,\n inputmode,\n fullWidth,\n truncateValue,\n hiddenInput,\n theme,\n hideLabel,\n type,\n autocapitalize,\n ariaActiveDescendant,\n inheritedAttributes,\n ariaExpanded,\n ariaOwns,\n autocomplete,\n role,\n isFocussed,\n } = this;\n\n const el = this.el as HTMLElement;\n\n const disabledMode = readonly || disabled;\n\n const currentStatus =\n maxValueExceeded ||\n minValueUnattained ||\n minCharactersUnattained ||\n maxCharactersWarning\n ? maxCharactersWarning\n ? IcInformationStatus.Warning\n : IcInformationStatus.Error\n : validationStatus;\n\n const currentValidationText = maxCharactersWarning\n ? maxCharactersMessage\n : maxValueExceeded\n ? maxMessage\n : minValueUnattained\n ? minMessage\n : minCharactersUnattained\n ? minCharactersMessage\n : validationText;\n\n const maxNumChars = readonly ? 0 : maxCharacters;\n const messageAriaLive =\n validationAriaLive === \"default\"\n ? maxCharactersWarning ||\n maxValueExceeded ||\n minValueUnattained ||\n currentStatus === IcInformationStatus.Error\n ? \"assertive\"\n : \"polite\"\n : validationAriaLive;\n\n const showStatusText =\n this.hasStatus(currentStatus) &&\n !(currentStatus == IcInformationStatus.Success && validationInline) &&\n !validationInlineInternal;\n\n const multiline = rows > 1;\n\n const hiddenCharCountDescId =\n maxCharacters > 0 ? `${inputId}-char-count-desc` : \"\";\n\n const charsRemaining = maxNumChars - numChars;\n const remainingCharCountDescId =\n maxCharacters > 0 ? `${inputId}-remaining-char-count-desc` : \"\";\n const remainingCharCountDesc = `${charsRemaining} character${\n charsRemaining === 1 ? \"\" : \"s\"\n } remaining.`;\n\n const describedBy = `${getInputDescribedByText(\n this.el,\n inputId,\n helperText !== \"\",\n showStatusText\n )} ${hiddenCharCountDescId} ${\n numChars > 0 ? remainingCharCountDescId : \"\"\n }`.trim();\n\n const disabledText = disabledMode && !readonly;\n const showLeftIcon =\n !!this.el.querySelector(`[slot=\"icon\"]`) && !disabledText;\n\n const invalid = `${currentStatus === IcInformationStatus.Error}`;\n\n hiddenInput\n ? renderHiddenInput(this.el as HTMLElement, value, name, disabledMode)\n : removeHiddenInput(this.el as HTMLElement);\n\n return (\n <Host\n class={{\n \"ic-text-field-full-width\": fullWidth,\n \"ic-text-field-disabled\": disabledMode,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <ic-input-container readonly={readonly} disabled={disabledMode}>\n {!hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabledText}\n readonly={readonly}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\n </ic-input-label>\n )}\n\n <ic-input-component-container\n size={size}\n validationStatus={currentStatus}\n multiLine={multiline}\n disabled={disabledMode}\n readonly={readonly}\n validationInline={validationInline}\n fullWidth={fullWidth}\n >\n {showLeftIcon && (\n <span\n class={{\n readonly,\n \"has-value\": this.getNumberOfCharacters(value) > 0,\n }}\n slot=\"left-icon\"\n >\n <slot name=\"icon\" />\n </span>\n )}\n\n {!multiline ? (\n <input\n id={inputId}\n name={name}\n ref={(el) => (this.inputEl = el as HTMLInputElement)}\n type={type}\n min={min}\n max={max}\n value={value}\n class={{\n \"no-left-pad\": !showLeftIcon && readonly,\n readonly,\n \"truncate-value\": truncateValue,\n }}\n placeholder={placeholder ? placeholder : \"\"}\n required={required}\n disabled={disabledMode}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n aria-activedescendant={ariaActiveDescendant}\n aria-expanded={ariaExpanded}\n aria-owns={ariaOwns}\n autocomplete={autocomplete}\n autocapitalize={autocapitalize}\n spellcheck={spellcheck}\n inputmode={inputmode}\n role={role || undefined}\n maxlength={maxCharactersReached ? maxCharacters : undefined}\n minlength={minCharactersUnattained ? minCharacters : undefined}\n {...inheritedAttributes}\n ></input>\n ) : (\n <textarea\n id={inputId}\n class={{\n \"no-resize\": resize === false || !!readonly,\n \"no-left-pad\": !showLeftIcon && !!readonly,\n readonly: !!readonly,\n }}\n name={name}\n ref={(el) => (this.inputEl = el as HTMLTextAreaElement)}\n value={value}\n rows={rows}\n required={required}\n disabled={disabledMode}\n placeholder={placeholder}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onScroll={this.onTextAreaScroll}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n autocomplete={autocomplete}\n autocapitalize={autocapitalize}\n spellcheck={spellcheck}\n inputmode={inputmode}\n maxlength={maxCharactersReached ? maxCharacters : undefined}\n minlength={minCharactersUnattained ? minCharacters : undefined}\n {...inheritedAttributes}\n ></textarea>\n )}\n {isSlotUsed(el, \"clear-button\") && (\n <slot name=\"clear-button\"></slot>\n )}\n {isSlotUsed(el, \"search-submit-button\") && (\n <slot name=\"search-submit-button\"></slot>\n )}\n </ic-input-component-container>\n {isSlotUsed(el, \"menu\") && <slot name=\"menu\"></slot>}\n <ic-input-validation\n class={{ \"show-validation\": this.showValidationMargin() }}\n status={\n this.hasStatus(currentStatus) === false ||\n (currentStatus === IcInformationStatus.Success &&\n validationInline) ||\n validationInlineInternal\n ? \"\"\n : currentStatus\n }\n message={showStatusText ? currentValidationText : \"\"}\n ariaLiveMode={messageAriaLive}\n for={inputId}\n fullWidth={fullWidth}\n >\n {!readonly && maxNumChars > 0 && (\n <div slot=\"validation-message-adornment\">\n {!hideCharCount && (\n <ic-typography variant=\"caption\" class=\"char-count-text\">\n <span class=\"char-count\">\n {numChars}/{maxNumChars}\n </span>\n </ic-typography>\n )}\n <span\n class=\"remaining-char-count-desc\"\n aria-live=\"polite\"\n hidden={!isFocussed}\n id={remainingCharCountDescId}\n >\n {remainingCharCountDesc}\n </span>\n <span hidden={true} id={hiddenCharCountDescId}>\n Field can contain a maximum of {maxNumChars} characters.\n </span>\n </div>\n )}\n </ic-input-validation>\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["icDataListCss","IcDataListStyle0","DataList","constructor","hostRef","this","size","theme","render","el","heading","Array","from","children","forEach","child","setAttribute","h","Host","key","class","id","name","variant"],"sources":["src/components/ic-data-list/ic-data-list.css?tag=ic-data-list&encapsulation=shadow","src/components/ic-data-list/ic-data-list.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --data-row-label-width: Width of the label column in the data list.\n */\n\n:host {\n display: block;\n}\n\n.heading {\n --ic-typography-color: var(--ic-data-list-text-heading);\n\n color: var(--ic-data-list-text-heading);\n}\n\n.rows {\n display: flex;\n flex-direction: column;\n gap: var(--ic-space-md);\n}\n\n:host(.ic-data-list-small) .rows {\n gap: var(--ic-space-xs);\n}\n\n.divider {\n margin-top: var(--ic-space-lg);\n margin-bottom: var(--ic-space-md);\n height: var(--ic-border-width);\n background-color: var(--ic-data-list-keyline-heading);\n}\n\n:host(.ic-data-list-small) .divider {\n margin-top: var(--ic-space-sm);\n margin-bottom: var(--ic-space-xs);\n}\n\n@media (forced-colors: active) {\n .divider {\n background-color: canvastext;\n }\n}\n","import { Component, Element, Host, h, Prop } from \"@stencil/core\";\nimport { IcSizesNoLarge, IcThemeMode } from \"../../utils/types\";\n\n/**\n * @slot heading - Content will be placed at the top of the data list.\n */\n@Component({\n tag: \"ic-data-list\",\n styleUrl: \"ic-data-list.css\",\n shadow: true,\n})\nexport class DataList {\n @Element() el: HTMLIcDataListElement;\n\n /**\n * The title for the data list.\n */\n @Prop() heading?: string;\n\n /**\n * The size of the data list 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 render() {\n const { el, heading, size, theme } = this;\n\n if (size === \"small\") {\n Array.from(el.children).forEach((child) =>\n child.setAttribute(\"size\", \"small\")\n );\n }\n\n return (\n <Host\n class={{\n \"ic-data-list-small\": size === \"small\",\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div class=\"heading\" id=\"data-list-heading\">\n <slot name=\"heading\">\n <ic-typography variant=\"h3\">{heading}</ic-typography>\n </slot>\n </div>\n <div class=\"divider\" />\n <ul aria-labelledby=\"data-list-heading\" class=\"rows\">\n <slot></slot>\n </ul>\n </Host>\n );\n }\n}\n"],"mappings":"yDAAA,MAAMA,EAAgB,05FACtB,MAAAC,EAAeD,E,MCUFE,EAAQ,MALrB,WAAAC,CAAAC,G,UAgBUC,KAAAC,KAAwB,SAKxBD,KAAAE,MAAsB,S,CAE9B,MAAAC,GACE,MAAMC,GAAEA,EAAEC,QAAEA,EAAOJ,KAAEA,EAAIC,MAAEA,GAAUF,KAErC,GAAIC,IAAS,QAAS,CACpBK,MAAMC,KAAKH,EAAGI,UAAUC,SAASC,GAC/BA,EAAMC,aAAa,OAAQ,U,CAI/B,OACEC,EAACC,EAAI,CAAAC,IAAA,2CACHC,MAAO,CACL,qBAAsBd,IAAS,QAC/B,CAAC,YAAYC,KAAUA,IAAU,YAGnCU,EAAA,OAAAE,IAAA,2CAAKC,MAAM,UAAUC,GAAG,qBACtBJ,EAAA,QAAAE,IAAA,2CAAMG,KAAK,WACTL,EAAA,iBAAAE,IAAA,2CAAeI,QAAQ,MAAMb,KAGjCO,EAAA,OAAAE,IAAA,2CAAKC,MAAM,YACXH,EAAA,MAAAE,IAAA,6DAAoB,oBAAoBC,MAAM,QAC5CH,EAAA,QAAAE,IAAA,8C","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,h as a,H as i,g as e}from"./p-8e4e97b4.js";import{o as l,S as r,T as o,K as n}from"./p-a5658054.js";import{w as s,g as c,s as p}from"./p-bddf799a.js";const d="ic-input-label{margin-bottom:var(--ic-space-xs);--ic-typography-color:var(\n --ic-input-label-text-color,\n var(--ic-color-text-primary)\n )}ic-input-label.with-helper{margin-bottom:0}ic-input-label.ic-input-label-readonly{--ic-typography-color:var(--ic-input-label-readonly-typography-color)}ic-input-label .helpertext,ic-input-label .helpertext ::slotted(*){margin-top:var(--ic-space-xxxs);padding-bottom:var(--ic-input-label-helpertext-padding, 0);--ic-typography-color:var(\n --ic-input-label-helper-text-color,\n var(--ic-color-text-secondary)\n )}ic-input-label .helpertext-normal{--ic-typography-color:var(\n --ic-input-label-helper-text-color,\n var(--ic-color-text-secondary)\n )}ic-input-label .helpertext-readonly{--ic-typography-color:var(--ic-input-label-readonly-helpertext-color)}ic-input-label .readonly-label{--ic-typography-color:var(--ic-input-label-readonly-label-color)}ic-input-label .error-label{--ic-typography-color:var(--ic-input-label-error-label-color)}";const u=d;const h=class{constructor(a){t(this,a);this.disabled=false;this.helperText="";this.hideLabel=false;this.readonly=false;this.required=false;this.status="";this.useLabelTag=true;this.isHelperTextSlotUsed=t=>{const a=t===null||t===void 0?void 0:t.assignedElements();if(a&&a.length){for(const t of a){if(t.tagName==="SLOT"){if(this.isHelperTextSlotUsed(t)){return true}}else{return true}}}return false}}componentDidLoad(){l([{prop:this.label,propName:"label"}],"Input Label")}render(){const{disabled:t,readonly:e,label:l,required:o,helperText:n,status:s,hideLabel:c,useLabelTag:p}=this;const d=o?l+" *":l;const u=this.for&&r(this.for);const h={helpertext:true,"helpertext-normal":!t&&!e,"helpertext-readonly":e};const b=this.el.querySelector("slot[name='helper-text']");return a(i,{key:"da58fe3cac026661d1c624c69c56c6e64ff3c07a",class:{"ic-input-label-disabled":!!t,"ic-input-label-readonly":e,"with-helper":this.isHelperTextSlotUsed(b)||n!==""}},!c&&a("ic-typography",{key:"bb221e5f51681a0caa721c66f03fd475e4e08749",variant:"label",class:{"readonly-label":e,"error-label":s==="error"&&!(e||t)}},e||!p?`${d}`:a("label",{htmlFor:this.for},d)),this.isHelperTextSlotUsed(b)?a("span",{id:u,class:h},a("slot",{name:"helper-text"})):n!==""&&a("ic-typography",{variant:"caption",class:h},a("span",{id:u},n)))}get el(){return e(this)}};h.style=u;const b="ic-input-validation{max-width:var(--input-width, 20rem);display:flex}ic-input-validation.ic-input-validation-with-status{margin-top:var(--ic-space-xs)}ic-input-validation.ic-input-validation-full-width{width:100%;max-width:none}ic-input-validation span.status-icon{padding-right:var(--ic-space-xxs)}ic-input-validation span.status-icon>svg{height:1.25rem;width:1.25rem}ic-input-validation span.icon-success>svg{fill:var(--ic-input-validation-success-icon-color)}ic-input-validation span.icon-error>svg{fill:var(--ic-input-validation-error, var(--ic-atoms-status-icon-error))}ic-input-validation span.icon-warning>svg{fill:var(--ic-input-validation-warning-icon-color)}ic-input-validation .statustext{flex-grow:1;color:var(\n --ic-input-validation-status-text-color,\n var(--ic-color-text-primary)\n );--ic-typography-color:var(\n --ic-input-validation-status-text-color,\n var(--ic-color-text-primary)\n )}ic-input-validation .sr-only{position:absolute;left:-9999px}";const v=b;const y={[n.Warning]:s,[n.Error]:c,[n.Success]:p};const f="";const g=class{constructor(a){t(this,a);this.ariaLiveMode="polite";this.fullWidth=false;this.status=""}watchMessageHandler(t){this.messageEl.textContent=f;setTimeout((()=>{this.messageEl.textContent=t}),200)}componentDidLoad(){l([{prop:this.message,propName:"message"}],"Input Validation");this.messageEl.textContent=f}render(){const{ariaLiveMode:t,fullWidth:e,status:l,message:r}=this;const n=l!==""?y[l]:"";return a(i,{key:"0513b4d21426f48a3751fbb4f16786d8cdde6f30",class:{[`ic-input-validation-${l}`]:l!=="","ic-input-validation-full-width":!!e,"ic-input-validation-with-status":l!==""}},n!==""&&a("span",{key:"3e6de247d788f9836f338e109d7be5914fa2f320",class:{"status-icon":true,[`icon-${l}`]:true},innerHTML:n}),a("ic-typography",{key:"5ee4e673c1f2934d74eafbc08241cdfae1aa5f9f",variant:"caption",class:"statustext"},a("span",{key:"850149ffb8c4cdab21ab0c05a8787747e399ca41",id:this.for&&o(this.for)},r),a("span",{key:"a26f5aa58e81cf3e9d982d86b75b3ab7e14897ad",ref:t=>this.messageEl=t,class:"sr-only","aria-live":t})),a("slot",{key:"4dba13235c6ec27d634b0dd38523963798676b36",name:"validation-message-adornment"}))}get el(){return e(this)}static get watchers(){return{message:["watchMessageHandler"]}}};g.style=v;export{h as ic_input_label,g as ic_input_validation};
|
|
2
|
-
//# sourceMappingURL=p-b59504f1.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["icInputLabelCss","IcInputLabelStyle0","InputLabel","constructor","hostRef","this","disabled","helperText","hideLabel","readonly","required","status","useLabelTag","isHelperTextSlotUsed","slot","assignedEls","assignedElements","length","el","tagName","componentDidLoad","onComponentRequiredPropUndefined","prop","label","propName","render","labelText","helperTextId","for","getInputHelperTextID","helperTextClass","helpertext","helperTextSlot","querySelector","h","Host","key","class","variant","htmlFor","id","name","icInputValidationCss","IcInputValidationStyle0","ICON","IcInformationStatus","Warning","warningIcon","Error","errorIcon","Success","successIcon","INVISIBLE_CHAR","InputValidation","ariaLiveMode","fullWidth","watchMessageHandler","newValue","messageEl","textContent","setTimeout","message","displayIcon","innerHTML","getInputValidationTextID","ref"],"sources":["src/components/ic-input-label/ic-input-label.css?tag=ic-input-label","src/components/ic-input-label/ic-input-label.tsx","src/components/ic-input-validation/ic-input-validation.css?tag=ic-input-validation","src/components/ic-input-validation/ic-input-validation.tsx"],"sourcesContent":["ic-input-label {\n margin-bottom: var(--ic-space-xs);\n\n --ic-typography-color: var(\n --ic-input-label-text-color,\n var(--ic-color-text-primary)\n );\n}\n\nic-input-label.with-helper {\n margin-bottom: 0;\n}\n\nic-input-label.ic-input-label-readonly {\n --ic-typography-color: var(--ic-input-label-readonly-typography-color);\n}\n\nic-input-label .helpertext,\nic-input-label .helpertext ::slotted(*) {\n margin-top: var(--ic-space-xxxs);\n padding-bottom: var(--ic-input-label-helpertext-padding, 0);\n\n --ic-typography-color: var(\n --ic-input-label-helper-text-color,\n var(--ic-color-text-secondary)\n );\n}\n\nic-input-label .helpertext-normal {\n --ic-typography-color: var(\n --ic-input-label-helper-text-color,\n var(--ic-color-text-secondary)\n );\n}\n\nic-input-label .helpertext-readonly {\n --ic-typography-color: var(--ic-input-label-readonly-helpertext-color);\n}\n\nic-input-label .readonly-label {\n --ic-typography-color: var(--ic-input-label-readonly-label-color);\n}\n\nic-input-label .error-label {\n --ic-typography-color: var(--ic-input-label-error-label-color);\n}\n","import { Component, Element, Host, Prop, h } from \"@stencil/core\";\n\nimport {\n getInputHelperTextID,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\n\n@Component({\n tag: \"ic-input-label\",\n styleUrl: \"./ic-input-label.css\",\n})\nexport class InputLabel {\n @Element() el: HTMLIcInputLabelElement;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * The ID of the form element the label is bound to.\n */\n @Prop() for?: string;\n\n /**\n * The helper text that will be displayed.\n */\n @Prop() helperText: string = \"\";\n\n /**\n * The label will be visually hidden.\n */\n @Prop() hideLabel: boolean = false;\n\n /**\n * The text content of the label.\n */\n @Prop() label!: string;\n\n /**\n * If `true`, the readonly state will be set.\n */\n @Prop() readonly: boolean = false;\n\n /**\n * If `true`, the input label will require a value.\n */\n @Prop() required: boolean = false;\n\n /**\n * The status of the label - e.g. 'error'.\n */\n @Prop() status: \"error\" | \"\" = \"\";\n\n /**\n * @internal If `true`, wraps label text in label tag\n */\n @Prop() useLabelTag: boolean = true;\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Input Label\"\n );\n }\n\n private isHelperTextSlotUsed = (slot: Element | null): boolean => {\n const assignedEls = (slot as HTMLSlotElement)?.assignedElements();\n if (assignedEls && assignedEls.length) {\n for (const el of assignedEls) {\n if (el.tagName === \"SLOT\") {\n // Recursion needed for when slot is forwarded multiple times - through child components\n // (e.g. in date picker)\n if (this.isHelperTextSlotUsed(el as HTMLSlotElement)) {\n return true;\n }\n } else {\n // Found an assigned element which is not a nested <slot>\n return true;\n }\n }\n }\n return false;\n };\n\n render() {\n const {\n disabled,\n readonly,\n label,\n required,\n helperText,\n status,\n hideLabel,\n useLabelTag,\n } = this;\n const labelText = required ? label + \" *\" : label;\n const helperTextId = this.for && getInputHelperTextID(this.for);\n const helperTextClass = {\n helpertext: true,\n \"helpertext-normal\": !disabled && !readonly,\n \"helpertext-readonly\": readonly,\n };\n\n const helperTextSlot = this.el.querySelector(\"slot[name='helper-text']\");\n\n return (\n <Host\n class={{\n \"ic-input-label-disabled\": !!disabled,\n \"ic-input-label-readonly\": readonly,\n \"with-helper\":\n this.isHelperTextSlotUsed(helperTextSlot) || helperText !== \"\",\n }}\n >\n {!hideLabel && (\n <ic-typography\n variant=\"label\"\n class={{\n \"readonly-label\": readonly,\n \"error-label\": status === \"error\" && !(readonly || disabled),\n }}\n >\n {readonly || !useLabelTag ? (\n `${labelText}`\n ) : (\n <label htmlFor={this.for}>{labelText}</label>\n )}\n </ic-typography>\n )}\n {this.isHelperTextSlotUsed(helperTextSlot) ? (\n <span id={helperTextId} class={helperTextClass}>\n <slot name=\"helper-text\"></slot>\n </span>\n ) : (\n helperText !== \"\" && (\n <ic-typography variant=\"caption\" class={helperTextClass}>\n <span id={helperTextId}>{helperText}</span>\n </ic-typography>\n )\n )}\n </Host>\n );\n }\n}\n","ic-input-validation {\n max-width: var(--input-width, 20rem);\n display: flex;\n}\n\nic-input-validation.ic-input-validation-with-status {\n margin-top: var(--ic-space-xs);\n}\n\nic-input-validation.ic-input-validation-full-width {\n width: 100%;\n max-width: none;\n}\n\nic-input-validation span.status-icon {\n padding-right: var(--ic-space-xxs);\n}\n\nic-input-validation span.status-icon > svg {\n height: 1.25rem;\n width: 1.25rem;\n}\n\nic-input-validation span.icon-success > svg {\n fill: var(--ic-input-validation-success-icon-color);\n}\n\nic-input-validation span.icon-error > svg {\n fill: var(--ic-input-validation-error, var(--ic-atoms-status-icon-error));\n}\n\nic-input-validation span.icon-warning > svg {\n fill: var(--ic-input-validation-warning-icon-color);\n}\n\nic-input-validation .statustext {\n flex-grow: 1;\n color: var(\n --ic-input-validation-status-text-color,\n var(--ic-color-text-primary)\n );\n\n --ic-typography-color: var(\n --ic-input-validation-status-text-color,\n var(--ic-color-text-primary)\n );\n}\n\nic-input-validation .sr-only {\n position: absolute;\n left: -9999px;\n}\n","import { Element, Component, Host, Prop, h, Watch } from \"@stencil/core\";\n\nimport {\n IcAriaLive,\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n} from \"../../utils/types\";\nimport errorIcon from \"../../assets/error-icon.svg\";\nimport successIcon from \"../../assets/success-icon.svg\";\nimport warningIcon from \"../../assets/warning-icon.svg\";\n\nimport {\n getInputValidationTextID,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\n\nconst ICON = {\n [IcInformationStatus.Warning]: warningIcon,\n [IcInformationStatus.Error]: errorIcon,\n [IcInformationStatus.Success]: successIcon,\n};\nconst INVISIBLE_CHAR = \"\\u200B\";\n\n/**\n * @slot validation-message-adornment - Content will be placed to the right of the validation message.\n */\n@Component({\n tag: \"ic-input-validation\",\n styleUrl: \"ic-input-validation.css\",\n})\nexport class InputValidation {\n private messageEl!: HTMLSpanElement;\n\n @Element() el: HTMLIcInputValidationElement;\n\n /**\n * The ARIA live mode to apply to the message.\n */\n @Prop() ariaLiveMode?: IcAriaLive = \"polite\";\n\n /**\n * The ID of the form element the validation is bound to.\n */\n @Prop() for?: string;\n\n /**\n * If `true`, the input validation will fill the width of the container.\n */\n @Prop() fullWidth?: boolean = false;\n\n /**\n * The validation message to display.\n */\n @Prop() message!: string;\n @Watch(\"message\")\n watchMessageHandler(newValue: string) {\n // Force detectable DOM changes\n // Invisible character used as screen readers can ignore whitespace changes e.g. \"\" and \" \"\n this.messageEl.textContent = INVISIBLE_CHAR;\n setTimeout(() => {\n this.messageEl.textContent = newValue;\n }, 200); // Delay to help ensure screen readers detect change\n }\n\n /**\n * The status of the validation - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() status?: IcInformationStatusOrEmpty = \"\";\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.message, propName: \"message\" }],\n \"Input Validation\"\n );\n this.messageEl.textContent = INVISIBLE_CHAR;\n }\n\n render() {\n const { ariaLiveMode, fullWidth, status, message } = this;\n const displayIcon = status !== \"\" ? ICON[status!] : \"\";\n return (\n <Host\n class={{\n [`ic-input-validation-${status}`]: status !== \"\",\n \"ic-input-validation-full-width\": !!fullWidth,\n \"ic-input-validation-with-status\": status !== \"\",\n }}\n >\n {displayIcon !== \"\" && (\n <span\n class={{\n \"status-icon\": true,\n [`icon-${status}`]: true,\n }}\n innerHTML={displayIcon}\n />\n )}\n <ic-typography variant=\"caption\" class=\"statustext\">\n <span id={this.for && getInputValidationTextID(this.for)}>\n {message}\n </span>\n {/* Separate aria-live region to avoid flashing due to textContent delay */}\n <span\n ref={(el) => (this.messageEl = el as HTMLSpanElement)}\n class=\"sr-only\"\n aria-live={ariaLiveMode}\n ></span>\n </ic-typography>\n <slot name=\"validation-message-adornment\"></slot>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|