@ukic/web-components 2.1.0-beta.14 → 2.1.0-beta.16
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/cjs/core.cjs.js +10 -3
- package/dist/cjs/core.cjs.js.map +1 -1
- package/dist/cjs/{helpers-2021e212.js → helpers-eb53c416.js} +25 -25
- package/dist/cjs/helpers-eb53c416.js.map +1 -0
- package/dist/cjs/ic-alert.cjs.entry.js +2 -2
- package/dist/cjs/ic-back-to-top.cjs.entry.js +2 -2
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +15 -15
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-breadcrumb.cjs.entry.js +6 -5
- package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js +33 -36
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-card.cjs.entry.js +4 -3
- package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox-group.cjs.entry.js +5 -2
- package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox.cjs.entry.js +7 -5
- package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-chip.cjs.entry.js +5 -2
- package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-classification-banner.cjs.entry.js +1 -1
- package/dist/cjs/ic-data-entity.cjs.entry.js +1 -1
- package/dist/cjs/ic-data-row.cjs.entry.js +2 -2
- package/dist/cjs/ic-dialog.cjs.entry.js +296 -0
- package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-divider.cjs.entry.js +2 -2
- package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -2
- package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
- package/dist/cjs/ic-footer.cjs.entry.js +4 -4
- package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-hero.cjs.entry.js +2 -2
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +2 -2
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +69 -27
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-label_2.cjs.entry.js +3 -3
- package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-link.cjs.entry.js +2 -2
- package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-menu-item.cjs.entry.js +6 -4
- package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-button.cjs.entry.js +2 -2
- package/dist/cjs/ic-navigation-group.cjs.entry.js +50 -21
- package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +3 -3
- package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-menu.cjs.entry.js +2 -8
- package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-page-header.cjs.entry.js +12 -15
- package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination-item.cjs.entry.js +6 -1
- package/dist/cjs/ic-pagination-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination.cjs.entry.js +14 -2
- package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-popover-menu.cjs.entry.js +7 -6
- package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js +16 -5
- package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js +5 -11
- package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +6 -3
- package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-section-container.cjs.entry.js +1 -1
- package/dist/cjs/ic-select.cjs.entry.js +35 -34
- package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-side-navigation.cjs.entry.js +70 -57
- package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/ic-status-tag.cjs.entry.js +3 -3
- package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-step.cjs.entry.js +3 -3
- package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-stepper.cjs.entry.js +2 -2
- package/dist/cjs/ic-switch.cjs.entry.js +4 -3
- package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-context.cjs.entry.js +8 -6
- package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
- package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-panel.cjs.entry.js +4 -2
- package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab.cjs.entry.js +8 -2
- package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-text-field.cjs.entry.js +9 -18
- package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-theme.cjs.entry.js +2 -2
- package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
- package/dist/cjs/ic-toast.cjs.entry.js +2 -2
- package/dist/cjs/ic-top-navigation.cjs.entry.js +2 -2
- package/dist/cjs/ic-typography.cjs.entry.js +96 -4
- package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
- package/dist/cjs/{index-a62312a7.js → index-014e3058.js} +222 -43
- package/dist/cjs/index-014e3058.js.map +1 -0
- package/dist/cjs/loader.cjs.js +4 -3
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/collection/collection-manifest.json +13 -12
- package/dist/collection/components/ic-alert/ic-alert.e2e.js +16 -0
- package/dist/collection/components/ic-alert/ic-alert.e2e.js.map +1 -0
- package/dist/collection/components/ic-alert/ic-alert.spec.js +182 -0
- package/dist/collection/components/ic-alert/ic-alert.spec.js.map +1 -0
- package/dist/collection/components/ic-back-to-top/ic-back-to-top.e2e.js +68 -0
- package/dist/collection/components/ic-back-to-top/ic-back-to-top.e2e.js.map +1 -0
- package/dist/collection/components/ic-back-to-top/ic-back-to-top.spec.js +123 -0
- package/dist/collection/components/ic-back-to-top/ic-back-to-top.spec.js.map +1 -0
- package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +4 -3
- package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
- package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.spec.js +118 -0
- package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.spec.js.map +1 -0
- package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.e2e.js +41 -0
- package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.e2e.js.map +1 -0
- package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +13 -13
- package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map +1 -1
- package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.spec.js +181 -0
- package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.spec.js.map +1 -0
- package/dist/collection/components/ic-button/ic-button.e2e.js +173 -0
- package/dist/collection/components/ic-button/ic-button.e2e.js.map +1 -0
- package/dist/collection/components/ic-button/ic-button.js +4 -6
- package/dist/collection/components/ic-button/ic-button.js.map +1 -1
- package/dist/collection/components/ic-button/ic-button.spec.js +230 -0
- package/dist/collection/components/ic-button/ic-button.spec.js.map +1 -0
- package/dist/collection/components/ic-card/ic-card.css +3 -2
- package/dist/collection/components/ic-card/ic-card.e2e.js +23 -0
- package/dist/collection/components/ic-card/ic-card.e2e.js.map +1 -0
- package/dist/collection/components/ic-card/ic-card.js +2 -1
- package/dist/collection/components/ic-card/ic-card.js.map +1 -1
- package/dist/collection/components/ic-card/ic-card.spec.js +152 -0
- package/dist/collection/components/ic-card/ic-card.spec.js.map +1 -0
- package/dist/collection/components/ic-checkbox/ic-checkbox.js +6 -4
- package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.e2e.js +201 -0
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.e2e.js.map +1 -0
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +4 -1
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.spec.js +175 -0
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.spec.js.map +1 -0
- package/dist/collection/components/ic-chip/ic-chip.js +4 -1
- package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
- package/dist/collection/components/ic-chip/ic-chip.spec.js +110 -0
- package/dist/collection/components/ic-chip/ic-chip.spec.js.map +1 -0
- package/dist/collection/components/ic-classification-banner/ic-classification-banner.spec.js +140 -0
- package/dist/collection/components/ic-classification-banner/ic-classification-banner.spec.js.map +1 -0
- package/dist/collection/components/ic-data-entity/ic-data-entity.spec.js +161 -0
- package/dist/collection/components/ic-data-entity/ic-data-entity.spec.js.map +1 -0
- package/dist/collection/components/ic-data-row/ic-data-row.spec.js +185 -0
- package/dist/collection/components/ic-data-row/ic-data-row.spec.js.map +1 -0
- package/dist/collection/components/ic-dialog/ic-dialog.css +595 -0
- package/dist/collection/components/ic-dialog/ic-dialog.e2e.js +204 -0
- package/dist/collection/components/ic-dialog/ic-dialog.e2e.js.map +1 -0
- package/dist/collection/components/ic-dialog/ic-dialog.js +641 -0
- package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -0
- package/dist/collection/components/ic-dialog/ic-dialog.spec.js +520 -0
- package/dist/collection/components/ic-dialog/ic-dialog.spec.js.map +1 -0
- package/dist/collection/components/ic-dialog/ic-dialog.test.a11y.js +28 -0
- package/dist/collection/components/ic-dialog/ic-dialog.test.a11y.js.map +1 -0
- package/dist/collection/components/ic-divider/ic-divider.spec.js +24 -0
- package/dist/collection/components/ic-divider/ic-divider.spec.js.map +1 -0
- package/dist/collection/components/ic-footer/ic-footer.css +2 -2
- package/dist/collection/components/ic-footer/ic-footer.e2e.js +50 -0
- package/dist/collection/components/ic-footer/ic-footer.e2e.js.map +1 -0
- package/dist/collection/components/ic-footer/ic-footer.js +1 -1
- package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
- package/dist/collection/components/ic-footer/ic-footer.spec.js +140 -0
- package/dist/collection/components/ic-footer/ic-footer.spec.js.map +1 -0
- package/dist/collection/components/ic-footer-link/ic-footer-link.spec.js +62 -0
- package/dist/collection/components/ic-footer-link/ic-footer-link.spec.js.map +1 -0
- package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.spec.js +98 -0
- package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.spec.js.map +1 -0
- package/dist/collection/components/ic-hero/ic-hero.spec.js +76 -0
- package/dist/collection/components/ic-hero/ic-hero.spec.js.map +1 -0
- package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.spec.js +180 -0
- package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.spec.js.map +1 -0
- package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +32 -4
- package/dist/collection/components/ic-input-component-container/ic-input-component-container.spec.js +117 -0
- package/dist/collection/components/ic-input-component-container/ic-input-component-container.spec.js.map +1 -0
- package/dist/collection/components/ic-input-container/ic-input-container.spec.js +38 -0
- package/dist/collection/components/ic-input-container/ic-input-container.spec.js.map +1 -0
- package/dist/collection/components/ic-input-label/ic-input-label.spec.js +98 -0
- package/dist/collection/components/ic-input-label/ic-input-label.spec.js.map +1 -0
- package/dist/collection/components/ic-input-validation/ic-input-validation.css +0 -8
- package/dist/collection/components/ic-input-validation/ic-input-validation.spec.js +89 -0
- package/dist/collection/components/ic-input-validation/ic-input-validation.spec.js.map +1 -0
- package/dist/collection/components/ic-link/ic-link.spec.js +203 -0
- package/dist/collection/components/ic-link/ic-link.spec.js.map +1 -0
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +1 -1
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.e2e.js +34 -0
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.e2e.js.map +1 -0
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.spec.js +141 -0
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.spec.js.map +1 -0
- package/dist/collection/components/ic-menu/ic-menu.css +9 -1
- package/dist/collection/components/ic-menu/ic-menu.js +89 -23
- package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
- package/dist/collection/components/ic-menu/ic-menu.spec.js +650 -0
- package/dist/collection/components/ic-menu/ic-menu.spec.js.map +1 -0
- package/dist/collection/components/ic-menu-group/ic-menu-group.spec.js +94 -0
- package/dist/collection/components/ic-menu-group/ic-menu-group.spec.js.map +1 -0
- package/dist/collection/components/ic-menu-item/ic-menu-item.css +2 -2
- package/dist/collection/components/ic-menu-item/ic-menu-item.js +4 -2
- package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
- package/dist/collection/components/ic-menu-item/ic-menu-item.spec.js +105 -0
- package/dist/collection/components/ic-menu-item/ic-menu-item.spec.js.map +1 -0
- package/dist/collection/components/ic-navigation-button/ic-navigation-button.spec.js +84 -0
- package/dist/collection/components/ic-navigation-button/ic-navigation-button.spec.js.map +1 -0
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +1 -1
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +47 -18
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.spec.js +309 -0
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.spec.js.map +1 -0
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +13 -7
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.spec.js +118 -0
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.spec.js.map +1 -0
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.e2e.js +29 -0
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.e2e.js.map +1 -0
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +0 -6
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.spec.js +176 -0
- package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.spec.js.map +1 -0
- package/dist/collection/components/ic-page-header/ic-page-header.css +1 -1
- package/dist/collection/components/ic-page-header/ic-page-header.e2e.js +177 -0
- package/dist/collection/components/ic-page-header/ic-page-header.e2e.js.map +1 -0
- package/dist/collection/components/ic-page-header/ic-page-header.js +9 -12
- package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
- package/dist/collection/components/ic-page-header/ic-page-header.spec.js +284 -0
- package/dist/collection/components/ic-page-header/ic-page-header.spec.js.map +1 -0
- package/dist/collection/components/ic-pagination/ic-pagination.e2e.js +128 -0
- package/dist/collection/components/ic-pagination/ic-pagination.e2e.js.map +1 -0
- package/dist/collection/components/ic-pagination/ic-pagination.js +55 -3
- package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
- package/dist/collection/components/ic-pagination/ic-pagination.spec.js +325 -0
- package/dist/collection/components/ic-pagination/ic-pagination.spec.js.map +1 -0
- package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +5 -1
- package/dist/collection/components/ic-pagination-item/ic-pagination-item.js.map +1 -1
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.css +1 -1
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.e2e.js +30 -0
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.e2e.js.map +1 -0
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +4 -3
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.spec.js +381 -0
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.spec.js.map +1 -0
- package/dist/collection/components/ic-radio-group/ic-radio-group.e2e.js +343 -0
- package/dist/collection/components/ic-radio-group/ic-radio-group.e2e.js.map +1 -0
- package/dist/collection/components/ic-radio-group/ic-radio-group.js +19 -8
- package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
- package/dist/collection/components/ic-radio-group/ic-radio-group.spec.js +303 -0
- package/dist/collection/components/ic-radio-group/ic-radio-group.spec.js.map +1 -0
- package/dist/collection/components/ic-radio-group/ic-radio-group.types.js +2 -0
- package/dist/collection/components/ic-radio-group/ic-radio-group.types.js.map +1 -0
- package/dist/collection/components/ic-radio-option/ic-radio-option.css +1 -1
- package/dist/collection/components/ic-radio-option/ic-radio-option.js +5 -14
- package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
- package/dist/collection/components/ic-search-bar/ic-search-bar.e2e.js +1054 -0
- package/dist/collection/components/ic-search-bar/ic-search-bar.e2e.js.map +1 -0
- package/dist/collection/components/ic-search-bar/ic-search-bar.js +12 -9
- package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
- package/dist/collection/components/ic-search-bar/ic-search-bar.spec.js +570 -0
- package/dist/collection/components/ic-search-bar/ic-search-bar.spec.js.map +1 -0
- package/dist/collection/components/ic-search-bar/ic-search-bar.types.js.map +1 -1
- package/dist/collection/components/ic-section-container/ic-section-container.spec.js +69 -0
- package/dist/collection/components/ic-section-container/ic-section-container.spec.js.map +1 -0
- package/dist/collection/components/ic-select/ic-select.e2e.js +1765 -0
- package/dist/collection/components/ic-select/ic-select.e2e.js.map +1 -0
- package/dist/collection/components/ic-select/ic-select.js +46 -45
- package/dist/collection/components/ic-select/ic-select.js.map +1 -1
- package/dist/collection/components/ic-select/ic-select.spec.js +1276 -0
- package/dist/collection/components/ic-select/ic-select.spec.js.map +1 -0
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +0 -7
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.e2e.js +412 -0
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.e2e.js.map +1 -0
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +67 -54
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.spec.js +470 -0
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.spec.js.map +1 -0
- package/dist/collection/components/ic-skeleton/ic-skeleton.spec.js +89 -0
- package/dist/collection/components/ic-skeleton/ic-skeleton.spec.js.map +1 -0
- package/dist/collection/components/ic-status-tag/ic-status-tag.css +2 -6
- package/dist/collection/components/ic-status-tag/ic-status-tag.spec.js +43 -0
- package/dist/collection/components/ic-status-tag/ic-status-tag.spec.js.map +1 -0
- package/dist/collection/components/ic-step/ic-step.css +5 -5
- package/dist/collection/components/ic-step/ic-step.js +1 -1
- package/dist/collection/components/ic-step/ic-step.js.map +1 -1
- package/dist/collection/components/ic-step/ic-step.spec.js +176 -0
- package/dist/collection/components/ic-step/ic-step.spec.js.map +1 -0
- package/dist/collection/components/ic-stepper/ic-stepper.e2e.js +49 -0
- package/dist/collection/components/ic-stepper/ic-stepper.e2e.js.map +1 -0
- package/dist/collection/components/ic-stepper/ic-stepper.spec.js +706 -0
- package/dist/collection/components/ic-stepper/ic-stepper.spec.js.map +1 -0
- package/dist/collection/components/ic-switch/ic-switch.css +1 -1
- package/dist/collection/components/ic-switch/ic-switch.js +2 -1
- package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
- package/dist/collection/components/ic-switch/ic-switch.spec.js +104 -0
- package/dist/collection/components/ic-switch/ic-switch.spec.js.map +1 -0
- package/dist/collection/components/ic-tab/ic-tab.e2e.js +32 -0
- package/dist/collection/components/ic-tab/ic-tab.e2e.js.map +1 -0
- package/dist/collection/components/ic-tab/ic-tab.js +7 -1
- package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
- package/dist/collection/components/ic-tab/ic-tab.spec.js +159 -0
- package/dist/collection/components/ic-tab/ic-tab.spec.js.map +1 -0
- package/dist/collection/components/ic-tab-context/ic-tab-context.e2e.js +317 -0
- package/dist/collection/components/ic-tab-context/ic-tab-context.e2e.js.map +1 -0
- package/dist/collection/components/ic-tab-context/ic-tab-context.js +7 -5
- package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
- package/dist/collection/components/ic-tab-context/ic-tab-context.spec.js +369 -0
- package/dist/collection/components/ic-tab-context/ic-tab-context.spec.js.map +1 -0
- package/dist/collection/components/ic-tab-group/ic-tab-group.css +2 -2
- package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +3 -1
- package/dist/collection/components/ic-tab-panel/ic-tab-panel.js.map +1 -1
- package/dist/collection/components/ic-tab-panel/ic-tab-panel.spec.js +65 -0
- package/dist/collection/components/ic-tab-panel/ic-tab-panel.spec.js.map +1 -0
- package/dist/collection/components/ic-text-field/ic-text-field.css +0 -4
- package/dist/collection/components/ic-text-field/ic-text-field.e2e.js +98 -0
- package/dist/collection/components/ic-text-field/ic-text-field.e2e.js.map +1 -0
- package/dist/collection/components/ic-text-field/ic-text-field.input.spec.js +236 -0
- package/dist/collection/components/ic-text-field/ic-text-field.input.spec.js.map +1 -0
- package/dist/collection/components/ic-text-field/ic-text-field.js +16 -25
- package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
- package/dist/collection/components/ic-text-field/ic-text-field.textarea.spec.js +310 -0
- package/dist/collection/components/ic-text-field/ic-text-field.textarea.spec.js.map +1 -0
- package/dist/collection/components/ic-theme/ic-theme.e2e.js +72 -0
- package/dist/collection/components/ic-theme/ic-theme.e2e.js.map +1 -0
- package/dist/collection/components/ic-theme/ic-theme.spec.js +77 -0
- package/dist/collection/components/ic-theme/ic-theme.spec.js.map +1 -0
- package/dist/collection/components/ic-toast/ic-toast.e2e.js +82 -0
- package/dist/collection/components/ic-toast/ic-toast.e2e.js.map +1 -0
- package/dist/collection/components/ic-toast/ic-toast.spec.js +278 -0
- package/dist/collection/components/ic-toast/ic-toast.spec.js.map +1 -0
- package/dist/collection/components/ic-toast-region/ic-toast-region.spec.js +62 -0
- package/dist/collection/components/ic-toast-region/ic-toast-region.spec.js.map +1 -0
- package/dist/collection/components/ic-tooltip/ic-tooltip.css +22 -8
- package/dist/collection/components/ic-tooltip/ic-tooltip.e2e.js +115 -0
- package/dist/collection/components/ic-tooltip/ic-tooltip.e2e.js.map +1 -0
- package/dist/collection/components/ic-tooltip/ic-tooltip.js +26 -27
- package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
- package/dist/collection/components/ic-tooltip/ic-tooltip.spec.js +128 -0
- package/dist/collection/components/ic-tooltip/ic-tooltip.spec.js.map +1 -0
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.e2e.js +42 -0
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.e2e.js.map +1 -0
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.mobile.e2e.js +242 -0
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.mobile.e2e.js.map +1 -0
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.spec.js +286 -0
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.spec.js.map +1 -0
- package/dist/collection/components/ic-typography/ic-typography.css +39 -0
- package/dist/collection/components/ic-typography/ic-typography.e2e.js +36 -0
- package/dist/collection/components/ic-typography/ic-typography.e2e.js.map +1 -0
- package/dist/collection/components/ic-typography/ic-typography.js +120 -2
- package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
- package/dist/collection/components/ic-typography/ic-typography.spec.js +296 -0
- package/dist/collection/components/ic-typography/ic-typography.spec.js.map +1 -0
- package/dist/collection/testspec.setup.js +11 -0
- package/dist/collection/testspec.setup.js.map +1 -1
- package/dist/collection/utils/helpers.js +23 -24
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/components/helpers.js +24 -25
- package/dist/components/helpers.js.map +1 -1
- package/dist/components/ic-alert.js +1 -113
- package/dist/components/ic-alert.js.map +1 -1
- package/dist/components/ic-alert2.js +117 -0
- package/dist/components/ic-alert2.js.map +1 -0
- package/dist/components/ic-back-to-top.js +2 -2
- package/dist/components/ic-breadcrumb-group.js +15 -15
- package/dist/components/ic-breadcrumb-group.js.map +1 -1
- package/dist/components/ic-breadcrumb2.js +5 -4
- package/dist/components/ic-breadcrumb2.js.map +1 -1
- package/dist/components/ic-button2.js +5 -7
- package/dist/components/ic-button2.js.map +1 -1
- package/dist/components/ic-card.js +4 -3
- package/dist/components/ic-card.js.map +1 -1
- package/dist/components/ic-checkbox-group.js +5 -2
- package/dist/components/ic-checkbox-group.js.map +1 -1
- package/dist/components/ic-checkbox.js +7 -5
- package/dist/components/ic-checkbox.js.map +1 -1
- package/dist/components/ic-chip.js +5 -2
- package/dist/components/ic-chip.js.map +1 -1
- package/dist/components/ic-classification-banner.js +1 -1
- package/dist/components/ic-data-entity.js +1 -1
- package/dist/components/ic-data-row.js +2 -2
- package/dist/components/ic-dialog.d.ts +11 -0
- package/dist/components/ic-dialog.js +357 -0
- package/dist/components/ic-dialog.js.map +1 -0
- package/dist/components/ic-divider2.js +2 -2
- package/dist/components/ic-footer-link-group.js +2 -2
- package/dist/components/ic-footer-link.js +2 -2
- package/dist/components/ic-footer.js +4 -4
- package/dist/components/ic-footer.js.map +1 -1
- package/dist/components/ic-hero.js +2 -2
- package/dist/components/ic-horizontal-scroll2.js +2 -2
- package/dist/components/ic-input-component-container2.js +3 -3
- package/dist/components/ic-input-component-container2.js.map +1 -1
- package/dist/components/ic-input-container2.js +1 -1
- package/dist/components/ic-input-label2.js +2 -2
- package/dist/components/ic-input-validation2.js +3 -3
- package/dist/components/ic-input-validation2.js.map +1 -1
- package/dist/components/ic-link2.js +2 -2
- package/dist/components/ic-loading-indicator2.js +2 -2
- package/dist/components/ic-loading-indicator2.js.map +1 -1
- package/dist/components/ic-menu-group.js +1 -1
- package/dist/components/ic-menu-item2.js +6 -4
- package/dist/components/ic-menu-item2.js.map +1 -1
- package/dist/components/ic-menu2.js +69 -27
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-navigation-button.js +2 -2
- package/dist/components/ic-navigation-group.js +50 -21
- package/dist/components/ic-navigation-group.js.map +1 -1
- package/dist/components/ic-navigation-item.js +3 -3
- package/dist/components/ic-navigation-item.js.map +1 -1
- package/dist/components/ic-navigation-menu2.js +2 -8
- package/dist/components/ic-navigation-menu2.js.map +1 -1
- package/dist/components/ic-page-header.js +12 -15
- package/dist/components/ic-page-header.js.map +1 -1
- package/dist/components/ic-pagination-item2.js +5 -1
- package/dist/components/ic-pagination-item2.js.map +1 -1
- package/dist/components/ic-pagination.js +17 -4
- package/dist/components/ic-pagination.js.map +1 -1
- package/dist/components/ic-popover-menu.js +7 -6
- package/dist/components/ic-popover-menu.js.map +1 -1
- package/dist/components/ic-radio-group.js +16 -5
- package/dist/components/ic-radio-group.js.map +1 -1
- package/dist/components/ic-radio-option.js +5 -11
- package/dist/components/ic-radio-option.js.map +1 -1
- package/dist/components/ic-search-bar.js +6 -3
- package/dist/components/ic-search-bar.js.map +1 -1
- package/dist/components/ic-section-container2.js +1 -1
- package/dist/components/ic-select.js +35 -34
- package/dist/components/ic-select.js.map +1 -1
- package/dist/components/ic-side-navigation.js +70 -57
- package/dist/components/ic-side-navigation.js.map +1 -1
- package/dist/components/ic-skeleton.js +1 -1
- package/dist/components/ic-status-tag.js +3 -3
- package/dist/components/ic-status-tag.js.map +1 -1
- package/dist/components/ic-step.js +3 -3
- package/dist/components/ic-step.js.map +1 -1
- package/dist/components/ic-stepper.js +2 -2
- package/dist/components/ic-switch.js +4 -3
- package/dist/components/ic-switch.js.map +1 -1
- package/dist/components/ic-tab-context.js +8 -6
- package/dist/components/ic-tab-context.js.map +1 -1
- package/dist/components/ic-tab-group.js +3 -3
- package/dist/components/ic-tab-group.js.map +1 -1
- package/dist/components/ic-tab-panel.js +4 -2
- package/dist/components/ic-tab-panel.js.map +1 -1
- package/dist/components/ic-tab.js +8 -2
- package/dist/components/ic-tab.js.map +1 -1
- package/dist/components/ic-text-field2.js +9 -18
- package/dist/components/ic-text-field2.js.map +1 -1
- package/dist/components/ic-theme.js +2 -2
- package/dist/components/ic-toast-region.js +1 -1
- package/dist/components/ic-toast.js +2 -2
- package/dist/components/ic-tooltip2.js +29 -30
- package/dist/components/ic-tooltip2.js.map +1 -1
- package/dist/components/ic-top-navigation.js +2 -2
- package/dist/components/ic-typography2.js +100 -5
- package/dist/components/ic-typography2.js.map +1 -1
- package/dist/components/index.d.ts +9 -60
- package/dist/components/index.js +1 -58
- package/dist/components/index.js.map +1 -1
- package/dist/core/core.css +41 -2
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/index.esm.js.map +1 -1
- package/dist/core/{p-de45134c.entry.js → p-04d626ee.entry.js} +2 -2
- package/dist/core/p-04d626ee.entry.js.map +1 -0
- package/dist/core/p-06321d19.js.map +1 -1
- package/dist/core/{p-0575a77f.entry.js → p-0d325b4c.entry.js} +2 -2
- package/dist/core/p-0d325b4c.entry.js.map +1 -0
- package/dist/core/{p-6a77992e.entry.js → p-249af8ab.entry.js} +2 -2
- package/dist/core/p-249af8ab.entry.js.map +1 -0
- package/dist/core/{p-d5d9923a.entry.js → p-29d9fea1.entry.js} +2 -2
- package/dist/core/p-29d9fea1.entry.js.map +1 -0
- package/dist/core/p-2e051e1e.entry.js +2 -0
- package/dist/core/p-2e051e1e.entry.js.map +1 -0
- package/dist/core/{p-3a67718c.entry.js → p-2ec49a7e.entry.js} +2 -2
- package/dist/core/p-2ec49a7e.entry.js.map +1 -0
- package/dist/core/{p-223a214f.entry.js → p-3114a4b3.entry.js} +2 -2
- package/dist/core/p-3114a4b3.entry.js.map +1 -0
- package/dist/core/p-311c38b3.entry.js +2 -0
- package/dist/core/p-311c38b3.entry.js.map +1 -0
- package/dist/core/p-31ccdd50.entry.js +2 -0
- package/dist/core/p-31ccdd50.entry.js.map +1 -0
- package/dist/core/p-31e80ccb.entry.js +2 -0
- package/dist/core/p-31e80ccb.entry.js.map +1 -0
- package/dist/core/p-323bce82.entry.js +2 -0
- package/dist/core/p-323bce82.entry.js.map +1 -0
- package/dist/core/{p-52fd3533.entry.js → p-3918c27a.entry.js} +2 -2
- package/dist/core/p-3918c27a.entry.js.map +1 -0
- package/dist/core/p-3ce0aa02.entry.js +2 -0
- package/dist/core/p-3ce0aa02.entry.js.map +1 -0
- package/dist/core/p-44512ebe.js.map +1 -1
- package/dist/core/p-4a385752.js +2 -0
- package/dist/core/p-4a385752.js.map +1 -0
- package/dist/core/{p-312c10b0.entry.js → p-4c4fa082.entry.js} +2 -2
- package/dist/core/p-4c4fa082.entry.js.map +1 -0
- package/dist/core/{p-fc7dce3d.entry.js → p-4f7b34ed.entry.js} +2 -2
- package/dist/core/p-4f7b34ed.entry.js.map +1 -0
- package/dist/core/p-524557bc.entry.js +2 -0
- package/dist/core/p-524557bc.entry.js.map +1 -0
- package/dist/core/p-551986d1.entry.js +2 -0
- package/dist/core/p-551986d1.entry.js.map +1 -0
- package/dist/core/p-57460fa3.entry.js +2 -0
- package/dist/core/p-57460fa3.entry.js.map +1 -0
- package/dist/core/p-5fcd965f.entry.js +2 -0
- package/dist/core/p-5fcd965f.entry.js.map +1 -0
- package/dist/core/{p-e41e701a.entry.js → p-617950f8.entry.js} +2 -2
- package/dist/core/p-617950f8.entry.js.map +1 -0
- package/dist/core/{p-e384aaee.entry.js → p-68308ecd.entry.js} +2 -2
- package/dist/core/p-68308ecd.entry.js.map +1 -0
- package/dist/core/p-6c76c6ba.entry.js +2 -0
- package/dist/core/p-6c76c6ba.entry.js.map +1 -0
- package/dist/core/p-6f57b13c.js.map +1 -1
- package/dist/core/p-79914e0c.entry.js +2 -0
- package/dist/core/p-79914e0c.entry.js.map +1 -0
- package/dist/core/p-820e4c17.entry.js +2 -0
- package/dist/core/p-820e4c17.entry.js.map +1 -0
- package/dist/core/{p-3fb307e6.entry.js → p-84c8c4c7.entry.js} +2 -2
- package/dist/core/p-84c8c4c7.entry.js.map +1 -0
- package/dist/core/p-8911656b.entry.js +2 -0
- package/dist/core/p-8911656b.entry.js.map +1 -0
- package/dist/core/p-8c7f4343.js.map +1 -1
- package/dist/core/p-8d4f7027.js.map +1 -1
- package/dist/core/p-97286148.entry.js +2 -0
- package/dist/core/p-97286148.entry.js.map +1 -0
- package/dist/core/{p-454b1ecd.entry.js → p-97fd0cc1.entry.js} +2 -2
- package/dist/core/p-97fd0cc1.entry.js.map +1 -0
- package/dist/core/p-a74b8476.entry.js +2 -0
- package/dist/core/p-a74b8476.entry.js.map +1 -0
- package/dist/core/{p-9413d639.entry.js → p-a9de9aba.entry.js} +2 -2
- package/dist/core/p-a9de9aba.entry.js.map +1 -0
- package/dist/core/p-ad6c4c02.entry.js +2 -0
- package/dist/core/p-ad6c4c02.entry.js.map +1 -0
- package/dist/core/{p-a0f4e641.entry.js → p-aeef3c9d.entry.js} +2 -2
- package/dist/core/p-aeef3c9d.entry.js.map +1 -0
- package/dist/core/p-b03bd9c6.entry.js +2 -0
- package/dist/core/p-b03bd9c6.entry.js.map +1 -0
- package/dist/core/p-b0685167.entry.js +2 -0
- package/dist/core/p-b0685167.entry.js.map +1 -0
- package/dist/core/p-b35a9909.entry.js +2 -0
- package/dist/core/p-b35a9909.entry.js.map +1 -0
- package/dist/core/p-bad10f6c.entry.js +2 -0
- package/dist/core/p-bad10f6c.entry.js.map +1 -0
- package/dist/core/{p-002a63e9.entry.js → p-bda4414e.entry.js} +2 -2
- package/dist/core/p-bda4414e.entry.js.map +1 -0
- package/dist/core/p-c0333310.entry.js +2 -0
- package/dist/core/p-c0333310.entry.js.map +1 -0
- package/dist/core/p-c3f9fb1d.entry.js +2 -0
- package/dist/core/p-c3f9fb1d.entry.js.map +1 -0
- package/dist/core/{p-5d077cf7.entry.js → p-ca6820dc.entry.js} +2 -2
- package/dist/core/p-ca6820dc.entry.js.map +1 -0
- package/dist/core/p-d6694b41.entry.js +2 -0
- package/dist/core/p-d6694b41.entry.js.map +1 -0
- package/dist/core/{p-1eb0992b.entry.js → p-da4c1409.entry.js} +2 -2
- package/dist/core/p-da4c1409.entry.js.map +1 -0
- package/dist/core/p-dbe06c3b.entry.js +2 -0
- package/dist/core/p-dbe06c3b.entry.js.map +1 -0
- package/dist/core/{p-28bc3bf0.entry.js → p-df67b151.entry.js} +2 -2
- package/dist/core/p-df67b151.entry.js.map +1 -0
- package/dist/core/{p-546b620e.entry.js → p-dfd31e28.entry.js} +2 -2
- package/dist/core/p-dfd31e28.entry.js.map +1 -0
- package/dist/core/{p-dc0b9e80.entry.js → p-e3e6308b.entry.js} +2 -2
- package/dist/core/p-e3e6308b.entry.js.map +1 -0
- package/dist/core/p-ea233813.entry.js +2 -0
- package/dist/core/p-ea233813.entry.js.map +1 -0
- package/dist/core/p-ec26fc38.js.map +1 -1
- package/dist/core/{p-f3e10149.entry.js → p-ecdcae46.entry.js} +2 -2
- package/dist/core/p-ecdcae46.entry.js.map +1 -0
- package/dist/core/p-ef91c17e.entry.js +2 -0
- package/dist/core/p-ef91c17e.entry.js.map +1 -0
- package/dist/core/{p-a33a04b2.entry.js → p-f0714432.entry.js} +2 -2
- package/dist/core/p-f0714432.entry.js.map +1 -0
- package/dist/core/p-f3053872.js +3 -0
- package/dist/core/p-f3053872.js.map +1 -0
- package/dist/core/{p-47b0ed42.entry.js → p-f381e93f.entry.js} +2 -2
- package/dist/core/p-f381e93f.entry.js.map +1 -0
- package/dist/core/p-fd482bd7.entry.js +2 -0
- package/dist/core/p-fd482bd7.entry.js.map +1 -0
- package/dist/core/p-fe2c4009.entry.js +2 -0
- package/dist/core/p-fe2c4009.entry.js.map +1 -0
- package/dist/esm/core.js +7 -3
- package/dist/esm/core.js.map +1 -1
- package/dist/esm/{helpers-b2b47a7d.js → helpers-8e57082b.js} +25 -26
- package/dist/esm/helpers-8e57082b.js.map +1 -0
- package/dist/esm/ic-alert.entry.js +2 -2
- package/dist/esm/ic-back-to-top.entry.js +2 -2
- package/dist/esm/ic-breadcrumb-group.entry.js +15 -15
- package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
- package/dist/esm/ic-breadcrumb.entry.js +6 -5
- package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
- package/dist/esm/ic-button_3.entry.js +33 -36
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-card.entry.js +4 -3
- package/dist/esm/ic-card.entry.js.map +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +5 -2
- package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
- package/dist/esm/ic-checkbox.entry.js +7 -5
- package/dist/esm/ic-checkbox.entry.js.map +1 -1
- package/dist/esm/ic-chip.entry.js +5 -2
- package/dist/esm/ic-chip.entry.js.map +1 -1
- package/dist/esm/ic-classification-banner.entry.js +1 -1
- package/dist/esm/ic-data-entity.entry.js +1 -1
- package/dist/esm/ic-data-row.entry.js +2 -2
- package/dist/esm/ic-dialog.entry.js +292 -0
- package/dist/esm/ic-dialog.entry.js.map +1 -0
- package/dist/esm/ic-divider.entry.js +2 -2
- package/dist/esm/ic-footer-link-group.entry.js +2 -2
- package/dist/esm/ic-footer-link.entry.js +2 -2
- package/dist/esm/ic-footer.entry.js +4 -4
- package/dist/esm/ic-footer.entry.js.map +1 -1
- package/dist/esm/ic-hero.entry.js +2 -2
- package/dist/esm/ic-horizontal-scroll.entry.js +2 -2
- package/dist/esm/ic-input-component-container_3.entry.js +69 -27
- package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
- package/dist/esm/ic-input-label_2.entry.js +3 -3
- package/dist/esm/ic-input-label_2.entry.js.map +1 -1
- package/dist/esm/ic-link.entry.js +2 -2
- package/dist/esm/ic-menu-group.entry.js +1 -1
- package/dist/esm/ic-menu-item.entry.js +6 -4
- package/dist/esm/ic-menu-item.entry.js.map +1 -1
- package/dist/esm/ic-navigation-button.entry.js +2 -2
- package/dist/esm/ic-navigation-group.entry.js +50 -21
- package/dist/esm/ic-navigation-group.entry.js.map +1 -1
- package/dist/esm/ic-navigation-item.entry.js +3 -3
- package/dist/esm/ic-navigation-item.entry.js.map +1 -1
- package/dist/esm/ic-navigation-menu.entry.js +2 -8
- package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
- package/dist/esm/ic-page-header.entry.js +12 -15
- package/dist/esm/ic-page-header.entry.js.map +1 -1
- package/dist/esm/ic-pagination-item.entry.js +6 -1
- package/dist/esm/ic-pagination-item.entry.js.map +1 -1
- package/dist/esm/ic-pagination.entry.js +14 -2
- package/dist/esm/ic-pagination.entry.js.map +1 -1
- package/dist/esm/ic-popover-menu.entry.js +7 -6
- package/dist/esm/ic-popover-menu.entry.js.map +1 -1
- package/dist/esm/ic-radio-group.entry.js +16 -5
- package/dist/esm/ic-radio-group.entry.js.map +1 -1
- package/dist/esm/ic-radio-option.entry.js +5 -11
- package/dist/esm/ic-radio-option.entry.js.map +1 -1
- package/dist/esm/ic-search-bar.entry.js +6 -3
- package/dist/esm/ic-search-bar.entry.js.map +1 -1
- package/dist/esm/ic-section-container.entry.js +1 -1
- package/dist/esm/ic-select.entry.js +35 -34
- package/dist/esm/ic-select.entry.js.map +1 -1
- package/dist/esm/ic-side-navigation.entry.js +70 -57
- package/dist/esm/ic-side-navigation.entry.js.map +1 -1
- package/dist/esm/ic-skeleton.entry.js +1 -1
- package/dist/esm/ic-status-tag.entry.js +3 -3
- package/dist/esm/ic-status-tag.entry.js.map +1 -1
- package/dist/esm/ic-step.entry.js +3 -3
- package/dist/esm/ic-step.entry.js.map +1 -1
- package/dist/esm/ic-stepper.entry.js +2 -2
- package/dist/esm/ic-switch.entry.js +4 -3
- package/dist/esm/ic-switch.entry.js.map +1 -1
- package/dist/esm/ic-tab-context.entry.js +8 -6
- package/dist/esm/ic-tab-context.entry.js.map +1 -1
- package/dist/esm/ic-tab-group.entry.js +3 -3
- package/dist/esm/ic-tab-group.entry.js.map +1 -1
- package/dist/esm/ic-tab-panel.entry.js +4 -2
- package/dist/esm/ic-tab-panel.entry.js.map +1 -1
- package/dist/esm/ic-tab.entry.js +8 -2
- package/dist/esm/ic-tab.entry.js.map +1 -1
- package/dist/esm/ic-text-field.entry.js +9 -18
- package/dist/esm/ic-text-field.entry.js.map +1 -1
- package/dist/esm/ic-theme.entry.js +2 -2
- package/dist/esm/ic-toast-region.entry.js +1 -1
- package/dist/esm/ic-toast.entry.js +2 -2
- package/dist/esm/ic-top-navigation.entry.js +2 -2
- package/dist/esm/ic-typography.entry.js +96 -4
- package/dist/esm/ic-typography.entry.js.map +1 -1
- package/dist/esm/{index-3b144b17.js → index-a77644e1.js} +222 -44
- package/dist/esm/index-a77644e1.js.map +1 -0
- package/dist/esm/loader.js +4 -3
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/polyfills/css-shim.js +1 -1
- package/dist/types/components/ic-breadcrumb/ic-breadcrumb.types.d.ts +1 -1
- package/dist/types/components/ic-breadcrumb-group/ic-breadcrumb-group.d.ts +3 -0
- package/dist/types/components/ic-button/ic-button.types.d.ts +4 -4
- package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +1 -0
- package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +1 -0
- package/dist/types/components/ic-chip/ic-chip.d.ts +1 -0
- package/dist/types/components/ic-chip/ic-chip.types.d.ts +2 -2
- package/dist/types/components/ic-classification-banner/ic-classification-banner.types.d.ts +1 -1
- package/dist/types/components/ic-dialog/ic-dialog.d.ts +123 -0
- package/dist/types/components/ic-dialog/ic-dialog.test.a11y.d.ts +1 -0
- package/dist/types/components/ic-footer/ic-footer.types.d.ts +1 -1
- package/dist/types/components/ic-footer-link/ic-footer-link.d.ts +1 -1
- package/dist/types/components/ic-hero/ic-hero.types.d.ts +1 -1
- package/dist/types/components/ic-input-validation/ic-input-validation.types.d.ts +1 -1
- package/dist/types/components/ic-loading-indicator/ic-loading-indicator.types.d.ts +2 -2
- package/dist/types/components/ic-menu/ic-menu.d.ts +7 -0
- package/dist/types/components/ic-menu-item/ic-menu-item.types.d.ts +1 -1
- package/dist/types/components/ic-navigation-button/ic-navigation-button.types.d.ts +1 -1
- package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +4 -1
- package/dist/types/components/ic-pagination/ic-pagination.d.ts +8 -1
- package/dist/types/components/ic-pagination/ic-pagination.types.d.ts +1 -1
- package/dist/types/components/ic-pagination-item/ic-pagination-item.d.ts +2 -1
- package/dist/types/components/ic-pagination-item/ic-pagination-item.types.d.ts +1 -1
- package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +1 -0
- package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +4 -3
- package/dist/types/components/ic-radio-group/ic-radio-group.types.d.ts +7 -0
- package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +1 -3
- package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +1 -1
- package/dist/types/components/ic-search-bar/ic-search-bar.types.d.ts +1 -1
- package/dist/types/components/ic-select/ic-select.d.ts +14 -14
- package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +1 -0
- package/dist/types/components/ic-skeleton/ic-skeleton.types.d.ts +1 -1
- package/dist/types/components/ic-status-tag/ic-status-tag.types.d.ts +2 -2
- package/dist/types/components/ic-step/ic-step.types.d.ts +3 -3
- package/dist/types/components/ic-stepper/ic-stepper.types.d.ts +1 -1
- package/dist/types/components/ic-tab/ic-tab.d.ts +1 -0
- package/dist/types/components/ic-text-field/ic-text-field.d.ts +1 -1
- package/dist/types/components/ic-text-field/ic-text-field.types.d.ts +3 -3
- package/dist/types/components/ic-toast/ic-toast.types.d.ts +1 -1
- package/dist/types/components/ic-tooltip/ic-tooltip.types.d.ts +1 -1
- package/dist/types/components/ic-typography/ic-typography.d.ts +27 -0
- package/dist/types/components.d.ts +222 -42
- package/dist/types/stencil-public-runtime.d.ts +72 -15
- package/dist/types/testspec.setup.d.ts +9 -0
- package/dist/types/utils/helpers.d.ts +1 -0
- package/dist/types/utils/types.d.ts +22 -22
- package/hydrate/index.d.ts +17 -16
- package/hydrate/index.js +920 -384
- package/loader/index.d.ts +9 -0
- package/package.json +5 -5
- package/dist/cjs/helpers-2021e212.js.map +0 -1
- package/dist/cjs/index-a62312a7.js.map +0 -1
- package/dist/core/p-002a63e9.entry.js.map +0 -1
- package/dist/core/p-0575a77f.entry.js.map +0 -1
- package/dist/core/p-0a41c3cb.entry.js +0 -2
- package/dist/core/p-0a41c3cb.entry.js.map +0 -1
- package/dist/core/p-100dbcec.entry.js +0 -2
- package/dist/core/p-100dbcec.entry.js.map +0 -1
- package/dist/core/p-14835d6f.entry.js +0 -2
- package/dist/core/p-14835d6f.entry.js.map +0 -1
- package/dist/core/p-1eb0992b.entry.js.map +0 -1
- package/dist/core/p-223a214f.entry.js.map +0 -1
- package/dist/core/p-276f7ecb.entry.js +0 -2
- package/dist/core/p-276f7ecb.entry.js.map +0 -1
- package/dist/core/p-28bc3bf0.entry.js.map +0 -1
- package/dist/core/p-2e949135.entry.js +0 -2
- package/dist/core/p-2e949135.entry.js.map +0 -1
- package/dist/core/p-312c10b0.entry.js.map +0 -1
- package/dist/core/p-3845b769.entry.js +0 -2
- package/dist/core/p-3845b769.entry.js.map +0 -1
- package/dist/core/p-3a67718c.entry.js.map +0 -1
- package/dist/core/p-3c23f963.entry.js +0 -2
- package/dist/core/p-3c23f963.entry.js.map +0 -1
- package/dist/core/p-3dc2ff7b.entry.js +0 -2
- package/dist/core/p-3dc2ff7b.entry.js.map +0 -1
- package/dist/core/p-3dea2867.js +0 -2
- package/dist/core/p-3dea2867.js.map +0 -1
- package/dist/core/p-3e5eb873.entry.js +0 -2
- package/dist/core/p-3e5eb873.entry.js.map +0 -1
- package/dist/core/p-3fb307e6.entry.js.map +0 -1
- package/dist/core/p-454b1ecd.entry.js.map +0 -1
- package/dist/core/p-4595f48f.entry.js +0 -2
- package/dist/core/p-4595f48f.entry.js.map +0 -1
- package/dist/core/p-47b0ed42.entry.js.map +0 -1
- package/dist/core/p-4b87445b.entry.js +0 -2
- package/dist/core/p-4b87445b.entry.js.map +0 -1
- package/dist/core/p-4c8fcfe6.entry.js +0 -2
- package/dist/core/p-4c8fcfe6.entry.js.map +0 -1
- package/dist/core/p-52fd3533.entry.js.map +0 -1
- package/dist/core/p-546b620e.entry.js.map +0 -1
- package/dist/core/p-56fe91ad.entry.js +0 -2
- package/dist/core/p-56fe91ad.entry.js.map +0 -1
- package/dist/core/p-589f6dd3.js +0 -3
- package/dist/core/p-589f6dd3.js.map +0 -1
- package/dist/core/p-5d077cf7.entry.js.map +0 -1
- package/dist/core/p-6a77992e.entry.js.map +0 -1
- package/dist/core/p-6b39f8b4.entry.js +0 -2
- package/dist/core/p-6b39f8b4.entry.js.map +0 -1
- package/dist/core/p-80eff050.entry.js +0 -2
- package/dist/core/p-80eff050.entry.js.map +0 -1
- package/dist/core/p-8780890e.entry.js +0 -2
- package/dist/core/p-8780890e.entry.js.map +0 -1
- package/dist/core/p-895bda21.entry.js +0 -2
- package/dist/core/p-895bda21.entry.js.map +0 -1
- package/dist/core/p-92c4fa7f.entry.js +0 -2
- package/dist/core/p-92c4fa7f.entry.js.map +0 -1
- package/dist/core/p-9413d639.entry.js.map +0 -1
- package/dist/core/p-a0f4e641.entry.js.map +0 -1
- package/dist/core/p-a33a04b2.entry.js.map +0 -1
- package/dist/core/p-a5bee11f.entry.js +0 -2
- package/dist/core/p-a5bee11f.entry.js.map +0 -1
- package/dist/core/p-a7fdb9a8.entry.js +0 -2
- package/dist/core/p-a7fdb9a8.entry.js.map +0 -1
- package/dist/core/p-b61e76e2.entry.js +0 -2
- package/dist/core/p-b61e76e2.entry.js.map +0 -1
- package/dist/core/p-c0813424.entry.js +0 -2
- package/dist/core/p-c0813424.entry.js.map +0 -1
- package/dist/core/p-cb437317.entry.js +0 -2
- package/dist/core/p-cb437317.entry.js.map +0 -1
- package/dist/core/p-d5d9923a.entry.js.map +0 -1
- package/dist/core/p-dc0b9e80.entry.js.map +0 -1
- package/dist/core/p-de45134c.entry.js.map +0 -1
- package/dist/core/p-de891d3d.entry.js +0 -2
- package/dist/core/p-de891d3d.entry.js.map +0 -1
- package/dist/core/p-e0f24ccd.entry.js +0 -2
- package/dist/core/p-e0f24ccd.entry.js.map +0 -1
- package/dist/core/p-e384aaee.entry.js.map +0 -1
- package/dist/core/p-e41e701a.entry.js.map +0 -1
- package/dist/core/p-e839e5dc.entry.js +0 -2
- package/dist/core/p-e839e5dc.entry.js.map +0 -1
- package/dist/core/p-ea526b54.entry.js +0 -2
- package/dist/core/p-ea526b54.entry.js.map +0 -1
- package/dist/core/p-ec8b228c.entry.js +0 -2
- package/dist/core/p-ec8b228c.entry.js.map +0 -1
- package/dist/core/p-f3e10149.entry.js.map +0 -1
- package/dist/core/p-fc7dce3d.entry.js.map +0 -1
- package/dist/esm/helpers-b2b47a7d.js.map +0 -1
- package/dist/esm/index-3b144b17.js.map +0 -1
@@ -0,0 +1,230 @@
|
|
1
|
+
import { Button } from "./ic-button";
|
2
|
+
import { newSpecPage } from "@stencil/core/testing";
|
3
|
+
import * as helpers from "../../utils/helpers";
|
4
|
+
beforeAll(() => {
|
5
|
+
jest.spyOn(console, "warn").mockImplementation(jest.fn());
|
6
|
+
});
|
7
|
+
//mocked as getThemeFromContext is always default when run in test context
|
8
|
+
const mockGetThemeFromContext = () => {
|
9
|
+
const func = jest.fn(() => {
|
10
|
+
return "light";
|
11
|
+
});
|
12
|
+
Object.defineProperty(helpers, "getThemeFromContext", {
|
13
|
+
value: func,
|
14
|
+
});
|
15
|
+
};
|
16
|
+
describe("button component", () => {
|
17
|
+
it("should correctly render with text", async () => {
|
18
|
+
const page = await newSpecPage({
|
19
|
+
components: [Button],
|
20
|
+
html: "<ic-button>Button</ic-button>",
|
21
|
+
supportsShadowDom: true,
|
22
|
+
});
|
23
|
+
expect(page.root).toMatchSnapshot();
|
24
|
+
});
|
25
|
+
it("should correctly render with custom text", async () => {
|
26
|
+
const page = await newSpecPage({
|
27
|
+
components: [Button],
|
28
|
+
html: "<ic-button>Click Me</ic-button>",
|
29
|
+
});
|
30
|
+
expect(page.root).toMatchSnapshot();
|
31
|
+
});
|
32
|
+
it("should render correct HTML for secondary variant", async () => {
|
33
|
+
const page = await newSpecPage({
|
34
|
+
components: [Button],
|
35
|
+
html: "<ic-button variant='secondary'>Button</ic-button>",
|
36
|
+
});
|
37
|
+
expect(page.root).toMatchSnapshot();
|
38
|
+
});
|
39
|
+
it("should render correct HTML for tertiary variant", async () => {
|
40
|
+
const page = await newSpecPage({
|
41
|
+
components: [Button],
|
42
|
+
html: "<ic-button variant='tertiary'>Button</ic-button>",
|
43
|
+
});
|
44
|
+
expect(page.root).toMatchSnapshot();
|
45
|
+
});
|
46
|
+
it("should render correct HTML for destructive variant", async () => {
|
47
|
+
const page = await newSpecPage({
|
48
|
+
components: [Button],
|
49
|
+
html: "<ic-button variant='destructive'>Button</ic-button>",
|
50
|
+
});
|
51
|
+
expect(page.root).toMatchSnapshot();
|
52
|
+
});
|
53
|
+
it("should render correct HTML with Icon", async () => {
|
54
|
+
const page = await newSpecPage({
|
55
|
+
components: [Button],
|
56
|
+
html: `
|
57
|
+
<ic-button>
|
58
|
+
<svg slot='icon' xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000">
|
59
|
+
<path d="M0 0h24v24H0V0z" fill="none"/>
|
60
|
+
<path d="M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z"/>
|
61
|
+
</svg>
|
62
|
+
Button
|
63
|
+
</ic-button>
|
64
|
+
`,
|
65
|
+
});
|
66
|
+
expect(page.root).toMatchSnapshot();
|
67
|
+
});
|
68
|
+
it("should render correct HTML when loading", async () => {
|
69
|
+
const page = await newSpecPage({
|
70
|
+
components: [Button],
|
71
|
+
html: `
|
72
|
+
<ic-button loading>Button</ic-button>
|
73
|
+
`,
|
74
|
+
});
|
75
|
+
expect(page.root).toMatchSnapshot();
|
76
|
+
});
|
77
|
+
it("should render correct HTML when loading - secondary", async () => {
|
78
|
+
const page = await newSpecPage({
|
79
|
+
components: [Button],
|
80
|
+
html: `
|
81
|
+
<ic-button loading variant="secondary">Button</ic-button>
|
82
|
+
`,
|
83
|
+
});
|
84
|
+
expect(page.root).toMatchSnapshot();
|
85
|
+
});
|
86
|
+
it("should render correct HTML when loading - tertiary", async () => {
|
87
|
+
const page = await newSpecPage({
|
88
|
+
components: [Button],
|
89
|
+
html: `
|
90
|
+
<ic-button loading variant="tertiary">Button</ic-button>
|
91
|
+
`,
|
92
|
+
});
|
93
|
+
expect(page.root).toMatchSnapshot();
|
94
|
+
});
|
95
|
+
it("should render correct HTML when loading - destructive", async () => {
|
96
|
+
const page = await newSpecPage({
|
97
|
+
components: [Button],
|
98
|
+
html: `
|
99
|
+
<ic-button loading variant="destructive">Button</ic-button>
|
100
|
+
`,
|
101
|
+
});
|
102
|
+
expect(page.root).toMatchSnapshot();
|
103
|
+
});
|
104
|
+
it("should render correct HTML when loading - appearance light", async () => {
|
105
|
+
const page = await newSpecPage({
|
106
|
+
components: [Button],
|
107
|
+
html: `
|
108
|
+
<ic-button loading appearance="light">Button</ic-button>
|
109
|
+
`,
|
110
|
+
});
|
111
|
+
expect(page.root).toMatchSnapshot();
|
112
|
+
});
|
113
|
+
it("render with correct button type when defined", async () => {
|
114
|
+
const page = await newSpecPage({
|
115
|
+
components: [Button],
|
116
|
+
html: `
|
117
|
+
<ic-button type='reset'>Button</ic-button>
|
118
|
+
`,
|
119
|
+
});
|
120
|
+
expect(page.root).toMatchSnapshot();
|
121
|
+
});
|
122
|
+
it('should render with "a" tag when href is passed', async () => {
|
123
|
+
const page = await newSpecPage({
|
124
|
+
components: [Button],
|
125
|
+
html: `
|
126
|
+
<ic-button href = '#'>Button</ic-button>
|
127
|
+
`,
|
128
|
+
});
|
129
|
+
expect(page.root).toMatchSnapshot();
|
130
|
+
});
|
131
|
+
it('should render with defined "a" tag props', async () => {
|
132
|
+
const page = await newSpecPage({
|
133
|
+
components: [Button],
|
134
|
+
html: `
|
135
|
+
<ic-button href = '#' download rel="nofollow" target="_blank">Button</ic-button>
|
136
|
+
`,
|
137
|
+
});
|
138
|
+
expect(page.root).toMatchSnapshot();
|
139
|
+
});
|
140
|
+
it("should render icon variant with a tooltip", async () => {
|
141
|
+
const page = await newSpecPage({
|
142
|
+
components: [Button],
|
143
|
+
html: "<ic-button variant='icon' id='test-button'>Button</ic-button>",
|
144
|
+
});
|
145
|
+
expect(page.root).toMatchSnapshot();
|
146
|
+
});
|
147
|
+
it("should render icon variant with a tooltip based on title", async () => {
|
148
|
+
const page = await newSpecPage({
|
149
|
+
components: [Button],
|
150
|
+
html: "<ic-button variant='icon' id='test-button' title='Tooltip text'>Button</ic-button>",
|
151
|
+
});
|
152
|
+
expect(page.root).toMatchSnapshot();
|
153
|
+
});
|
154
|
+
it("should render icon variant with a tooltip based on aria-label", async () => {
|
155
|
+
const page = await newSpecPage({
|
156
|
+
components: [Button],
|
157
|
+
html: "<ic-button variant='icon' id='test-button' aria-label='Tooltip text' tooltip-placement='top'>Button</ic-button>",
|
158
|
+
});
|
159
|
+
expect(page.root).toMatchSnapshot();
|
160
|
+
});
|
161
|
+
it("should disable tooltip when prop set", async () => {
|
162
|
+
const page = await newSpecPage({
|
163
|
+
components: [Button],
|
164
|
+
html: "<ic-button variant='icon' aria-label='Tooltip text' id='test-button' disable-tooltip>Button</ic-button>",
|
165
|
+
});
|
166
|
+
expect(page.root).toMatchSnapshot();
|
167
|
+
});
|
168
|
+
it("should update when method called", async () => {
|
169
|
+
const page = await newSpecPage({
|
170
|
+
components: [Button],
|
171
|
+
html: "<ic-button variant='icon' aria-label='Tooltip text' id='test-button'>Button</ic-button>",
|
172
|
+
});
|
173
|
+
expect(page.root).toMatchSnapshot();
|
174
|
+
await page.root.updateAriaLabel("New tooltip text");
|
175
|
+
await page.waitForChanges();
|
176
|
+
expect(page.root).toMatchSnapshot();
|
177
|
+
});
|
178
|
+
it("should stop immediate propagation of a click event when disabled", async () => {
|
179
|
+
const page = await newSpecPage({
|
180
|
+
components: [Button],
|
181
|
+
html: "<ic-button id='test-button' disabled=true onclick='alert('test')'>Button</ic-button>",
|
182
|
+
});
|
183
|
+
jest.spyOn(window, "alert").mockImplementation();
|
184
|
+
const element = document.getElementById("test-button");
|
185
|
+
element.click();
|
186
|
+
await page.waitForChanges();
|
187
|
+
expect(window.alert).not.toHaveBeenCalled;
|
188
|
+
});
|
189
|
+
it("should call 'setFocus' when button is focussed", async () => {
|
190
|
+
const page = await newSpecPage({
|
191
|
+
components: [Button],
|
192
|
+
html: "<ic-button id='ic-button'>Button</ic-button>",
|
193
|
+
});
|
194
|
+
//Can't expect anything in this test - this is to increase code coverage only
|
195
|
+
await page.rootInstance.setFocus().toHaveBeenCalled;
|
196
|
+
});
|
197
|
+
it("should test theme change", async () => {
|
198
|
+
mockGetThemeFromContext();
|
199
|
+
const page = await newSpecPage({
|
200
|
+
components: [Button],
|
201
|
+
html: `<ic-button id='ic-button'>Button</ic-button>`,
|
202
|
+
});
|
203
|
+
await page.rootInstance.themeChangeHandler({
|
204
|
+
detail: { mode: "light" },
|
205
|
+
});
|
206
|
+
await page.waitForChanges();
|
207
|
+
expect(page.rootInstance.appearance).toEqual("light");
|
208
|
+
});
|
209
|
+
it("should test button as submit button on form", async () => {
|
210
|
+
const page = await newSpecPage({
|
211
|
+
components: [Button],
|
212
|
+
html: `<form id="new-form"><form><ic-button id='ic-button' type="submit" form="new-form">Button</ic-button>`,
|
213
|
+
});
|
214
|
+
const btn = document.getElementById("ic-button");
|
215
|
+
btn.click();
|
216
|
+
expect(page.root).toMatchSnapshot();
|
217
|
+
});
|
218
|
+
it("should test blur handler", async () => {
|
219
|
+
const page = await newSpecPage({
|
220
|
+
components: [Button],
|
221
|
+
html: `<ic-button id='ic-button'>Button</ic-button>`,
|
222
|
+
});
|
223
|
+
const eventSpy = jest.fn();
|
224
|
+
page.win.addEventListener("icBlur", eventSpy);
|
225
|
+
await page.rootInstance.onBlur();
|
226
|
+
await page.waitForChanges();
|
227
|
+
expect(eventSpy).toHaveBeenCalled();
|
228
|
+
});
|
229
|
+
});
|
230
|
+
//# sourceMappingURL=ic-button.spec.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ic-button.spec.js","sourceRoot":"","sources":["../../../src/components/ic-button/ic-button.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { Button } from \"./ic-button\";\nimport { newSpecPage } from \"@stencil/core/testing\";\nimport * as helpers from \"../../utils/helpers\";\n\nbeforeAll(() => {\n jest.spyOn(console, \"warn\").mockImplementation(jest.fn());\n});\n\n//mocked as getThemeFromContext is always default when run in test context\nconst mockGetThemeFromContext = () => {\n const func = jest.fn(() => {\n return \"light\";\n });\n\n Object.defineProperty(helpers, \"getThemeFromContext\", {\n value: func,\n });\n};\n\ndescribe(\"button component\", () => {\n it(\"should correctly render with text\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button>Button</ic-button>\",\n supportsShadowDom: true,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should correctly render with custom text\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button>Click Me</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML for secondary variant\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='secondary'>Button</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML for tertiary variant\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='tertiary'>Button</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML for destructive variant\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='destructive'>Button</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML with Icon\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button>\n <svg slot='icon' xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n <path d=\"M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z\"/>\n </svg>\n Button\n </ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML when loading\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button loading>Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML when loading - secondary\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button loading variant=\"secondary\">Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML when loading - tertiary\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button loading variant=\"tertiary\">Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML when loading - destructive\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button loading variant=\"destructive\">Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render correct HTML when loading - appearance light\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button loading appearance=\"light\">Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"render with correct button type when defined\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button type='reset'>Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it('should render with \"a\" tag when href is passed', async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button href = '#'>Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it('should render with defined \"a\" tag props', async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `\n <ic-button href = '#' download rel=\"nofollow\" target=\"_blank\">Button</ic-button>\n `,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render icon variant with a tooltip\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='icon' id='test-button'>Button</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render icon variant with a tooltip based on title\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='icon' id='test-button' title='Tooltip text'>Button</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render icon variant with a tooltip based on aria-label\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='icon' id='test-button' aria-label='Tooltip text' tooltip-placement='top'>Button</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should disable tooltip when prop set\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='icon' aria-label='Tooltip text' id='test-button' disable-tooltip>Button</ic-button>\",\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should update when method called\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button variant='icon' aria-label='Tooltip text' id='test-button'>Button</ic-button>\",\n });\n\n expect(page.root).toMatchSnapshot();\n\n await page.root.updateAriaLabel(\"New tooltip text\");\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should stop immediate propagation of a click event when disabled\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button id='test-button' disabled=true onclick='alert('test')'>Button</ic-button>\",\n });\n\n jest.spyOn(window, \"alert\").mockImplementation();\n\n const element = document.getElementById(\"test-button\");\n\n element.click();\n\n await page.waitForChanges();\n\n expect(window.alert).not.toHaveBeenCalled;\n });\n\n it(\"should call 'setFocus' when button is focussed\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: \"<ic-button id='ic-button'>Button</ic-button>\",\n });\n\n //Can't expect anything in this test - this is to increase code coverage only\n await page.rootInstance.setFocus().toHaveBeenCalled;\n });\n\n it(\"should test theme change\", async () => {\n mockGetThemeFromContext();\n\n const page = await newSpecPage({\n components: [Button],\n html: `<ic-button id='ic-button'>Button</ic-button>`,\n });\n\n await page.rootInstance.themeChangeHandler({\n detail: { mode: \"light\" },\n });\n await page.waitForChanges();\n\n expect(page.rootInstance.appearance).toEqual(\"light\");\n });\n\n it(\"should test button as submit button on form\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `<form id=\"new-form\"><form><ic-button id='ic-button' type=\"submit\" form=\"new-form\">Button</ic-button>`,\n });\n\n const btn = document.getElementById(\"ic-button\");\n btn.click();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should test blur handler\", async () => {\n const page = await newSpecPage({\n components: [Button],\n html: `<ic-button id='ic-button'>Button</ic-button>`,\n });\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icBlur\", eventSpy);\n\n await page.rootInstance.onBlur();\n await page.waitForChanges();\n expect(eventSpy).toHaveBeenCalled();\n });\n});\n"]}
|
@@ -460,7 +460,7 @@ button {
|
|
460
460
|
.card.clickable {
|
461
461
|
display: flex;
|
462
462
|
flex-direction: column;
|
463
|
-
border: var(--ic-
|
463
|
+
border: var(--ic-border-default);
|
464
464
|
border-radius: var(--ic-border-radius);
|
465
465
|
box-sizing: border-box;
|
466
466
|
padding: var(--ic-space-md);
|
@@ -476,7 +476,7 @@ button {
|
|
476
476
|
|
477
477
|
.card.clickable:hover {
|
478
478
|
background-color: var(--ic-action-default-bg-hover);
|
479
|
-
border
|
479
|
+
border: var(--ic-border-hover);
|
480
480
|
cursor: pointer;
|
481
481
|
}
|
482
482
|
|
@@ -485,6 +485,7 @@ button {
|
|
485
485
|
background-color: var(--ic-action-default-bg-hover);
|
486
486
|
box-shadow: var(--ic-border-focus);
|
487
487
|
outline: var(--ic-hc-focus-outline);
|
488
|
+
border: var(--ic-border-pressed);
|
488
489
|
}
|
489
490
|
|
490
491
|
.card.clickable:active {
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import { newE2EPage } from "@stencil/core/testing";
|
2
|
+
describe("ic-card", () => {
|
3
|
+
it("renders", async () => {
|
4
|
+
const page = await newE2EPage();
|
5
|
+
await page.setContent(`<a href="/"><ic-card heading="Card" message="This is a static card"></ic-card></a>`);
|
6
|
+
await page.waitForChanges();
|
7
|
+
const element = await page.find("ic-card");
|
8
|
+
expect(element).toHaveClass("hydrated");
|
9
|
+
const link = await page.find("a");
|
10
|
+
expect(link).toHaveClass("ic-card-wrapper-link");
|
11
|
+
});
|
12
|
+
it("should get focussed class applied when parent link focussed", async () => {
|
13
|
+
const page = await newE2EPage();
|
14
|
+
await page.setContent(`<a href="/"><ic-card heading="Card" message="This is a static card"></ic-card></a>`);
|
15
|
+
await page.waitForChanges();
|
16
|
+
const link = await page.find("a");
|
17
|
+
link.focus();
|
18
|
+
await page.waitForChanges();
|
19
|
+
const element = await page.find("ic-card >>> div.focussed");
|
20
|
+
expect(element).not.toBeNull;
|
21
|
+
});
|
22
|
+
});
|
23
|
+
//# sourceMappingURL=ic-card.e2e.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ic-card.e2e.js","sourceRoot":"","sources":["../../../src/components/ic-card/ic-card.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;EACvB,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;IACvB,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;IAChC,MAAM,IAAI,CAAC,UAAU,CACnB,oFAAoF,CACrF,CAAC;IACF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3C,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAExC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;EACnD,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;IAC3E,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;IAChC,MAAM,IAAI,CAAC,UAAU,CACnB,oFAAoF,CACrF,CAAC;IACF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK,EAAE,CAAC;IAEb,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC5D,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;EAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { newE2EPage } from \"@stencil/core/testing\";\n\ndescribe(\"ic-card\", () => {\n it(\"renders\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `<a href=\"/\"><ic-card heading=\"Card\" message=\"This is a static card\"></ic-card></a>`\n );\n await page.waitForChanges();\n\n const element = await page.find(\"ic-card\");\n expect(element).toHaveClass(\"hydrated\");\n\n const link = await page.find(\"a\");\n expect(link).toHaveClass(\"ic-card-wrapper-link\");\n });\n\n it(\"should get focussed class applied when parent link focussed\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `<a href=\"/\"><ic-card heading=\"Card\" message=\"This is a static card\"></ic-card></a>`\n );\n await page.waitForChanges();\n\n const link = await page.find(\"a\");\n link.focus();\n\n await page.waitForChanges();\n\n const element = await page.find(\"ic-card >>> div.focussed\");\n expect(element).not.toBeNull;\n });\n});\n"]}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { h, } from "@stencil/core";
|
2
|
-
import { onComponentRequiredPropUndefined, isSlotUsed, getThemeFromContext, } from "../../utils/helpers";
|
2
|
+
import { onComponentRequiredPropUndefined, isSlotUsed, getThemeFromContext, removeDisabledFalse, } from "../../utils/helpers";
|
3
3
|
import { IcThemeForegroundEnum, } from "../../utils/types";
|
4
4
|
import chevronIcon from "../../assets/chevron-icon.svg";
|
5
5
|
/**
|
@@ -78,6 +78,7 @@ export class Card {
|
|
78
78
|
this.parentEl.addEventListener("focus", this.parentFocussed);
|
79
79
|
this.parentEl.addEventListener("blur", this.parentBlurred);
|
80
80
|
}
|
81
|
+
removeDisabledFalse(this.disabled, this.el);
|
81
82
|
}
|
82
83
|
disconnectedCallback() {
|
83
84
|
if (this.parentIsAnchorTag) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ic-card.js","sourceRoot":"","sources":["../../../src/components/ic-card/ic-card.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Listen,\n Prop,\n State,\n h,\n Method,\n} from \"@stencil/core\";\nimport {\n onComponentRequiredPropUndefined,\n isSlotUsed,\n getThemeFromContext,\n} from \"../../utils/helpers\";\nimport {\n IcTheme,\n IcThemeForeground,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\n\n/**\n * @slot heading - Content will be placed at the top of the card to the right of the icon.\n * @slot message - Content will be placed in the main body of the card.\n * @slot subheading - Content will be placed below the card heading.\n * @slot adornment - Content will be placed below the card subheading.\n * @slot image-top - Content will be placed at the top of the card above all other content.\n * @slot image-mid - Content will be placed below the card heading section.\n * @slot icon - Content will be placed to the left of the card heading.\n * @slot interaction-button - Content will be placed in the top right corner of the heading section.\n * @slot interaction-controls - Content will be placed below the card message.\n * @slot expanded-content - Content will be placed below the interaction controls but will not initially be rendered.\n */\n@Component({\n tag: \"ic-card\",\n styleUrl: \"ic-card.css\",\n shadow: true,\n})\nexport class Card {\n @Element() el: HTMLIcCardElement;\n\n /**\n * If `true`, the card will be a clickable variant, instead of static.\n */\n @Prop({ mutable: true }) clickable?: boolean = false;\n /**\n * The URL that the clickable card link points to. If set, the clickable card will render as an \"a\" tag, otherwise it will render as a button.\n */\n @Prop() href?: string | undefined;\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string = \"\";\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\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 * The heading for the card.\n */\n @Prop() heading!: string;\n /**\n * The subheading for the card.\n */\n @Prop() subheading?: string;\n /**\n * The main body message of the card.\n */\n @Prop() message?: string = \"\";\n /**\n * If `true`, the card will be disabled if it is clickable.\n */\n @Prop() disabled?: boolean = false;\n /**\n * If `true`, the card will fill the width of the container.\n */\n @Prop() fullWidth?: boolean = false;\n /**\n * If `true`, the card will have an expandable area and expansion toggle button.\n */\n @Prop() expandable?: boolean = false;\n\n @State() parentIsAnchorTag: boolean = false;\n\n @State() isFocussed: boolean = false;\n\n @State() parentEl: HTMLElement | null = null;\n\n @State() appearance?: IcThemeForeground = \"default\";\n\n @State() areaExpanded: boolean = false;\n\n /**\n * Sets focus on the card.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el.shadowRoot.querySelector(\"a\")) {\n this.el.shadowRoot.querySelector(\"a\").focus();\n } else if (this.el.shadowRoot.querySelector(\"button\")) {\n this.el.shadowRoot.querySelector(\"button\").focus();\n }\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(event: Event): void {\n if (this.disabled) {\n event.stopImmediatePropagation();\n }\n }\n\n @Listen(\"themeChange\", { target: \"document\" })\n themeChangeHandler(ev: CustomEvent): void {\n const theme: IcTheme = ev.detail;\n this.updateTheme(theme.mode);\n }\n\n private parentFocussed = (): void => {\n this.isFocussed = true;\n };\n\n private parentBlurred = (): void => {\n this.isFocussed = false;\n };\n\n private updateTheme(newTheme: IcThemeForeground = null): void {\n const foregroundColor = getThemeFromContext(this.el, newTheme || null);\n\n if (foregroundColor !== IcThemeForegroundEnum.Default) {\n this.appearance = foregroundColor;\n }\n }\n\n private toggleExpanded = (): void => {\n this.areaExpanded = !this.areaExpanded;\n };\n\n componentWillLoad(): void {\n this.parentEl = this.el.parentElement;\n\n if (this.parentEl.tagName === \"A\") {\n this.clickable = true;\n this.parentIsAnchorTag = true;\n this.parentEl.classList.add(\"ic-card-wrapper-link\");\n this.parentEl.addEventListener(\"focus\", this.parentFocussed);\n this.parentEl.addEventListener(\"blur\", this.parentBlurred);\n }\n }\n\n disconnectedCallback(): void {\n if (this.parentIsAnchorTag) {\n this.parentEl.removeEventListener(\"focus\", this.parentFocussed);\n this.parentEl.removeEventListener(\"blur\", this.parentBlurred);\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Card\"\n );\n this.updateTheme();\n }\n\n render() {\n const {\n clickable,\n disabled,\n expandable,\n heading,\n message,\n href,\n hreflang,\n referrerpolicy,\n rel,\n subheading,\n target,\n fullWidth,\n parentIsAnchorTag,\n isFocussed,\n } = this;\n\n const Component = parentIsAnchorTag\n ? \"div\"\n : clickable\n ? this.href === undefined\n ? \"button\"\n : \"a\"\n : \"div\";\n\n const attrs = Component == \"a\" && {\n href: href,\n hrefLang: hreflang,\n referrerPolicy: referrerpolicy,\n rel: rel,\n target: target,\n };\n\n return (\n <Component\n class={{\n [\"card\"]: true,\n [\"clickable\"]: clickable && !disabled,\n [\"disabled\"]: disabled,\n [\"fullwidth\"]: fullWidth,\n [\"focussed\"]: isFocussed,\n [\"dark\"]: this.appearance === IcThemeForegroundEnum.Dark,\n }}\n tabindex={clickable && !parentIsAnchorTag ? 0 : null}\n aria-disabled={disabled ? \"true\" : null}\n disabled={disabled ? true : null}\n {...attrs}\n >\n {isSlotUsed(this.el, \"image-top\") && (\n <div class=\"image-top\">\n <slot name=\"image-top\"></slot>\n </div>\n )}\n <div class=\"card-header\">\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon\">\n <slot name=\"icon\" />\n </div>\n )}\n <div class=\"card-title\">\n <slot name=\"heading\">\n <ic-typography variant=\"h4\">\n <p>{heading}</p>\n </ic-typography>\n </slot>\n </div>\n {isSlotUsed(this.el, \"interaction-button\") && (\n <div class=\"interaction-button\">\n <slot name=\"interaction-button\"></slot>\n </div>\n )}\n </div>\n {(subheading || isSlotUsed(this.el, \"subheading\")) && (\n <div class=\"subheading\">\n <slot name=\"subheading\">\n <ic-typography variant=\"subtitle-small\">\n {subheading}\n </ic-typography>\n </slot>\n </div>\n )}\n {isSlotUsed(this.el, \"adornment\") && (\n <div class=\"adornment\">\n <slot name=\"adornment\"></slot>\n </div>\n )}\n {isSlotUsed(this.el, \"image-mid\") && (\n <div class=\"image-mid\">\n <slot name=\"image-mid\"></slot>\n </div>\n )}\n {(message || isSlotUsed(this.el, \"message\")) && (\n <div\n class={{\n [\"card-message\"]: true,\n }}\n >\n <slot name=\"message\">\n <ic-typography variant=\"body\">{message}</ic-typography>\n </slot>\n </div>\n )}\n {(isSlotUsed(this.el, \"interaction-controls\") || expandable) && (\n <div class=\"interaction-area\">\n <div class=\"interaction-controls\">\n <slot name=\"interaction-controls\"></slot>\n </div>\n {expandable && (\n <ic-button\n class={{\n [\"toggle-button\"]: true,\n [\"toggle-button-closed\"]: !this.areaExpanded,\n [\"toggle-button-expanded\"]: this.areaExpanded,\n }}\n variant=\"icon\"\n size=\"large\"\n disableTooltip\n aria-label=\"Toggle expandable area\"\n aria-expanded={this.areaExpanded}\n aria-controls=\"expanded-content-area\"\n onClick={this.toggleExpanded}\n innerHTML={chevronIcon}\n ></ic-button>\n )}\n </div>\n )}\n {isSlotUsed(this.el, \"expanded-content\") && this.areaExpanded && (\n <div class=\"expanded-content\" id=\"expanded-content-area\">\n <slot name=\"expanded-content\"></slot>\n </div>\n )}\n </Component>\n );\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"ic-card.js","sourceRoot":"","sources":["../../../src/components/ic-card/ic-card.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Listen,\n Prop,\n State,\n h,\n Method,\n} from \"@stencil/core\";\nimport {\n onComponentRequiredPropUndefined,\n isSlotUsed,\n getThemeFromContext,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\nimport {\n IcTheme,\n IcThemeForeground,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\n\n/**\n * @slot heading - Content will be placed at the top of the card to the right of the icon.\n * @slot message - Content will be placed in the main body of the card.\n * @slot subheading - Content will be placed below the card heading.\n * @slot adornment - Content will be placed below the card subheading.\n * @slot image-top - Content will be placed at the top of the card above all other content.\n * @slot image-mid - Content will be placed below the card heading section.\n * @slot icon - Content will be placed to the left of the card heading.\n * @slot interaction-button - Content will be placed in the top right corner of the heading section.\n * @slot interaction-controls - Content will be placed below the card message.\n * @slot expanded-content - Content will be placed below the interaction controls but will not initially be rendered.\n */\n@Component({\n tag: \"ic-card\",\n styleUrl: \"ic-card.css\",\n shadow: true,\n})\nexport class Card {\n @Element() el: HTMLIcCardElement;\n\n /**\n * If `true`, the card will be a clickable variant, instead of static.\n */\n @Prop({ mutable: true }) clickable?: boolean = false;\n /**\n * The URL that the clickable card link points to. If set, the clickable card will render as an \"a\" tag, otherwise it will render as a button.\n */\n @Prop() href?: string | undefined;\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string = \"\";\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\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 * The heading for the card.\n */\n @Prop() heading!: string;\n /**\n * The subheading for the card.\n */\n @Prop() subheading?: string;\n /**\n * The main body message of the card.\n */\n @Prop() message?: string = \"\";\n /**\n * If `true`, the card will be disabled if it is clickable.\n */\n @Prop() disabled?: boolean = false;\n /**\n * If `true`, the card will fill the width of the container.\n */\n @Prop() fullWidth?: boolean = false;\n /**\n * If `true`, the card will have an expandable area and expansion toggle button.\n */\n @Prop() expandable?: boolean = false;\n\n @State() parentIsAnchorTag: boolean = false;\n\n @State() isFocussed: boolean = false;\n\n @State() parentEl: HTMLElement | null = null;\n\n @State() appearance?: IcThemeForeground = \"default\";\n\n @State() areaExpanded: boolean = false;\n\n /**\n * Sets focus on the card.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el.shadowRoot.querySelector(\"a\")) {\n this.el.shadowRoot.querySelector(\"a\").focus();\n } else if (this.el.shadowRoot.querySelector(\"button\")) {\n this.el.shadowRoot.querySelector(\"button\").focus();\n }\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(event: Event): void {\n if (this.disabled) {\n event.stopImmediatePropagation();\n }\n }\n\n @Listen(\"themeChange\", { target: \"document\" })\n themeChangeHandler(ev: CustomEvent): void {\n const theme: IcTheme = ev.detail;\n this.updateTheme(theme.mode);\n }\n\n private parentFocussed = (): void => {\n this.isFocussed = true;\n };\n\n private parentBlurred = (): void => {\n this.isFocussed = false;\n };\n\n private updateTheme(newTheme: IcThemeForeground = null): void {\n const foregroundColor = getThemeFromContext(this.el, newTheme || null);\n\n if (foregroundColor !== IcThemeForegroundEnum.Default) {\n this.appearance = foregroundColor;\n }\n }\n\n private toggleExpanded = (): void => {\n this.areaExpanded = !this.areaExpanded;\n };\n\n componentWillLoad(): void {\n this.parentEl = this.el.parentElement;\n\n if (this.parentEl.tagName === \"A\") {\n this.clickable = true;\n this.parentIsAnchorTag = true;\n this.parentEl.classList.add(\"ic-card-wrapper-link\");\n this.parentEl.addEventListener(\"focus\", this.parentFocussed);\n this.parentEl.addEventListener(\"blur\", this.parentBlurred);\n }\n\n removeDisabledFalse(this.disabled, this.el);\n }\n\n disconnectedCallback(): void {\n if (this.parentIsAnchorTag) {\n this.parentEl.removeEventListener(\"focus\", this.parentFocussed);\n this.parentEl.removeEventListener(\"blur\", this.parentBlurred);\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Card\"\n );\n this.updateTheme();\n }\n\n render() {\n const {\n clickable,\n disabled,\n expandable,\n heading,\n message,\n href,\n hreflang,\n referrerpolicy,\n rel,\n subheading,\n target,\n fullWidth,\n parentIsAnchorTag,\n isFocussed,\n } = this;\n\n const Component = parentIsAnchorTag\n ? \"div\"\n : clickable\n ? this.href === undefined\n ? \"button\"\n : \"a\"\n : \"div\";\n\n const attrs = Component == \"a\" && {\n href: href,\n hrefLang: hreflang,\n referrerPolicy: referrerpolicy,\n rel: rel,\n target: target,\n };\n\n return (\n <Component\n class={{\n [\"card\"]: true,\n [\"clickable\"]: clickable && !disabled,\n [\"disabled\"]: disabled,\n [\"fullwidth\"]: fullWidth,\n [\"focussed\"]: isFocussed,\n [\"dark\"]: this.appearance === IcThemeForegroundEnum.Dark,\n }}\n tabindex={clickable && !parentIsAnchorTag ? 0 : null}\n aria-disabled={disabled ? \"true\" : null}\n disabled={disabled ? true : null}\n {...attrs}\n >\n {isSlotUsed(this.el, \"image-top\") && (\n <div class=\"image-top\">\n <slot name=\"image-top\"></slot>\n </div>\n )}\n <div class=\"card-header\">\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon\">\n <slot name=\"icon\" />\n </div>\n )}\n <div class=\"card-title\">\n <slot name=\"heading\">\n <ic-typography variant=\"h4\">\n <p>{heading}</p>\n </ic-typography>\n </slot>\n </div>\n {isSlotUsed(this.el, \"interaction-button\") && (\n <div class=\"interaction-button\">\n <slot name=\"interaction-button\"></slot>\n </div>\n )}\n </div>\n {(subheading || isSlotUsed(this.el, \"subheading\")) && (\n <div class=\"subheading\">\n <slot name=\"subheading\">\n <ic-typography variant=\"subtitle-small\">\n {subheading}\n </ic-typography>\n </slot>\n </div>\n )}\n {isSlotUsed(this.el, \"adornment\") && (\n <div class=\"adornment\">\n <slot name=\"adornment\"></slot>\n </div>\n )}\n {isSlotUsed(this.el, \"image-mid\") && (\n <div class=\"image-mid\">\n <slot name=\"image-mid\"></slot>\n </div>\n )}\n {(message || isSlotUsed(this.el, \"message\")) && (\n <div\n class={{\n [\"card-message\"]: true,\n }}\n >\n <slot name=\"message\">\n <ic-typography variant=\"body\">{message}</ic-typography>\n </slot>\n </div>\n )}\n {(isSlotUsed(this.el, \"interaction-controls\") || expandable) && (\n <div class=\"interaction-area\">\n <div class=\"interaction-controls\">\n <slot name=\"interaction-controls\"></slot>\n </div>\n {expandable && (\n <ic-button\n class={{\n [\"toggle-button\"]: true,\n [\"toggle-button-closed\"]: !this.areaExpanded,\n [\"toggle-button-expanded\"]: this.areaExpanded,\n }}\n variant=\"icon\"\n size=\"large\"\n disableTooltip\n aria-label=\"Toggle expandable area\"\n aria-expanded={this.areaExpanded}\n aria-controls=\"expanded-content-area\"\n onClick={this.toggleExpanded}\n innerHTML={chevronIcon}\n ></ic-button>\n )}\n </div>\n )}\n {isSlotUsed(this.el, \"expanded-content\") && this.areaExpanded && (\n <div class=\"expanded-content\" id=\"expanded-content-area\">\n <slot name=\"expanded-content\"></slot>\n </div>\n )}\n </Component>\n );\n }\n}\n"]}
|
@@ -0,0 +1,152 @@
|
|
1
|
+
import { newSpecPage } from "@stencil/core/testing";
|
2
|
+
import { Card } from "./ic-card";
|
3
|
+
describe("ic-card", () => {
|
4
|
+
it("should render", async () => {
|
5
|
+
const page = await newSpecPage({
|
6
|
+
components: [Card],
|
7
|
+
html: `<ic-card heading="Card" message="This is a static card"></ic-card>`,
|
8
|
+
});
|
9
|
+
expect(page.root).toMatchSnapshot();
|
10
|
+
});
|
11
|
+
it("should render as a button", async () => {
|
12
|
+
const page = await newSpecPage({
|
13
|
+
components: [Card],
|
14
|
+
html: `<ic-card heading="Card" message="This is a clickable card rendered as a button" clickable=true></ic-card>`,
|
15
|
+
});
|
16
|
+
expect(page.root).toMatchSnapshot();
|
17
|
+
});
|
18
|
+
it("should render as a link", async () => {
|
19
|
+
const page = await newSpecPage({
|
20
|
+
components: [Card],
|
21
|
+
html: `<ic-card heading="Card" message="This is a clickable card rendered as a button" clickable=true href="/"></ic-card>`,
|
22
|
+
});
|
23
|
+
expect(page.root).toMatchSnapshot();
|
24
|
+
});
|
25
|
+
it("should render full width variant", async () => {
|
26
|
+
const page = await newSpecPage({
|
27
|
+
components: [Card],
|
28
|
+
html: `<ic-card heading="Card" full-width=true message="This is a full width card" clickable=true></ic-card>`,
|
29
|
+
});
|
30
|
+
expect(page.root).toMatchSnapshot();
|
31
|
+
});
|
32
|
+
it("should render with a link parent", async () => {
|
33
|
+
const page = await newSpecPage({
|
34
|
+
components: [Card],
|
35
|
+
html: `<a href="/"><ic-card heading="Card" message="This is a clickable card" clickable=true></ic-card></a>`,
|
36
|
+
});
|
37
|
+
expect(page.root).toMatchSnapshot();
|
38
|
+
});
|
39
|
+
it("should apply 'focussed' style when parent is focussed", async () => {
|
40
|
+
const page = await newSpecPage({
|
41
|
+
components: [Card],
|
42
|
+
html: `<a href="/"><ic-card id="test-id" heading="Card" message="This is a clickable card" clickable=true></ic-card></a>`,
|
43
|
+
});
|
44
|
+
expect(page.root).not.toBeNull;
|
45
|
+
const element = await document.getElementById("test-id");
|
46
|
+
await expect(element.classList.contains("focussed")).toBeFalsy;
|
47
|
+
await element.focus();
|
48
|
+
await expect(element.classList.contains("focussed")).toBeTruthy;
|
49
|
+
});
|
50
|
+
it("should lose 'focussed' style when parent loses focus", async () => {
|
51
|
+
const page = await newSpecPage({
|
52
|
+
components: [Card],
|
53
|
+
html: `<a href="/"><ic-card id="test-card" heading="Card" message="This is a clickable card" clickable=true></ic-card></a>`,
|
54
|
+
});
|
55
|
+
expect(page.root).not.toBeNull;
|
56
|
+
const element = await document.getElementById("test-card");
|
57
|
+
await element.focus();
|
58
|
+
await expect(element.classList.contains("focussed")).toBeTruthy;
|
59
|
+
await element.blur();
|
60
|
+
await expect(element.classList.contains("focussed")).toBeFalsy;
|
61
|
+
await page.rootInstance.disconnectedCallback();
|
62
|
+
});
|
63
|
+
it("should stop immediate propagation of a click event when disabled", async () => {
|
64
|
+
const page = await newSpecPage({
|
65
|
+
components: [Card],
|
66
|
+
html: `<ic-card id="test-card" heading="Card" message="This is a clickable card" clickable=true disabled=true onclick="alert('test')"></ic-card>`,
|
67
|
+
});
|
68
|
+
jest.spyOn(window, "alert").mockImplementation();
|
69
|
+
const element = await document.getElementById("test-card");
|
70
|
+
element.click();
|
71
|
+
await page.waitForChanges();
|
72
|
+
await expect(window.alert).not.toHaveBeenCalled;
|
73
|
+
});
|
74
|
+
it("should render with a subheading", async () => {
|
75
|
+
const page = await newSpecPage({
|
76
|
+
components: [Card],
|
77
|
+
html: `<ic-card id="test-card" heading="Card" subheading="Card subheading" message="This is a card"></ic-card>`,
|
78
|
+
});
|
79
|
+
expect(page.root).toMatchSnapshot();
|
80
|
+
});
|
81
|
+
it("should render with an interaction button", async () => {
|
82
|
+
const page = await newSpecPage({
|
83
|
+
components: [Card],
|
84
|
+
html: `<ic-card id="test-card" heading="Card" subheading="Card subheading" message="This is a card"><ic-button variant="primary" slot="interaction-button">Click here</ic-button></ic-card>`,
|
85
|
+
});
|
86
|
+
expect(page.root).toMatchSnapshot();
|
87
|
+
});
|
88
|
+
it("should render with a top image", async () => {
|
89
|
+
const page = await newSpecPage({
|
90
|
+
components: [Card],
|
91
|
+
html: `<ic-card id="test-card" heading="Card" subheading="Card subheading" message="This is a card"><div slot="image-top">Image placeholder</div></ic-card>`,
|
92
|
+
});
|
93
|
+
expect(page.root).toMatchSnapshot();
|
94
|
+
});
|
95
|
+
it("should render with a middle image", async () => {
|
96
|
+
const page = await newSpecPage({
|
97
|
+
components: [Card],
|
98
|
+
html: `<ic-card id="test-card" heading="Card" subheading="Card subheading" message="This is a card"><div slot="image-mid">Image placeholder</div></ic-card>`,
|
99
|
+
});
|
100
|
+
expect(page.root).toMatchSnapshot();
|
101
|
+
});
|
102
|
+
it("should render with interaction controls", async () => {
|
103
|
+
const page = await newSpecPage({
|
104
|
+
components: [Card],
|
105
|
+
html: `<ic-card id="test-card" heading="Card" subheading="Card subheading" message="This is a card"><ic-button slot="interaction-controls">Click here</ic-button></ic-card>`,
|
106
|
+
});
|
107
|
+
expect(page.root).toMatchSnapshot();
|
108
|
+
});
|
109
|
+
it("should render as expandable", async () => {
|
110
|
+
const page = await newSpecPage({
|
111
|
+
components: [Card],
|
112
|
+
html: `<ic-card id="test-card" heading="Card" subheading="Card subheading" message="This is a card" expandable></ic-card>`,
|
113
|
+
});
|
114
|
+
expect(page.root).toMatchSnapshot();
|
115
|
+
});
|
116
|
+
it("should render content in expanded area", async () => {
|
117
|
+
const page = await newSpecPage({
|
118
|
+
components: [Card],
|
119
|
+
html: `<ic-card id="test-card" heading="Card" subheading="Card subheading" message="This is a card" expandable><ic-typography slot="expanded-content">Extra content</ic-typography></ic-card>`,
|
120
|
+
});
|
121
|
+
page.rootInstance.areaExpanded = true;
|
122
|
+
await page.waitForChanges();
|
123
|
+
expect(page.root).toMatchSnapshot();
|
124
|
+
});
|
125
|
+
it("should toggle expanded content when expansion toggle is clicked", async () => {
|
126
|
+
const page = await newSpecPage({
|
127
|
+
components: [Card],
|
128
|
+
html: `<ic-card id="test-card" heading="Card" message="This is a clickable card" expandable><ic-typography slot="expanded-content">Expanded</ic-typography></ic-card>`,
|
129
|
+
});
|
130
|
+
expect(page.root).toMatchSnapshot();
|
131
|
+
page.rootInstance.toggleExpanded();
|
132
|
+
await page.waitForChanges();
|
133
|
+
expect(page.root).toMatchSnapshot();
|
134
|
+
});
|
135
|
+
it("should call 'setFocus' when card as a button is focused", async () => {
|
136
|
+
const page = await newSpecPage({
|
137
|
+
components: [Card],
|
138
|
+
html: `<ic-card heading="Card" message="This is a clickable card rendered as a button" clickable=true></ic-card>`,
|
139
|
+
});
|
140
|
+
//Can't expect anything in this test - this is to increase code coverage only
|
141
|
+
await page.rootInstance.setFocus().toHaveBeenCalled;
|
142
|
+
});
|
143
|
+
it("should call 'setFocus' when card as a link is focused", async () => {
|
144
|
+
const page = await newSpecPage({
|
145
|
+
components: [Card],
|
146
|
+
html: `<ic-card heading="Card" message="This is a clickable card rendered as a button" clickable=true href="/"></ic-card>`,
|
147
|
+
});
|
148
|
+
//Can't expect anything in this test - this is to increase code coverage only
|
149
|
+
await page.rootInstance.setFocus().toHaveBeenCalled;
|
150
|
+
});
|
151
|
+
});
|
152
|
+
//# sourceMappingURL=ic-card.spec.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ic-card.spec.js","sourceRoot":"","sources":["../../../src/components/ic-card/ic-card.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { Card } from \"./ic-card\";\n\ndescribe(\"ic-card\", () => {\n it(\"should render\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card heading=\"Card\" message=\"This is a static card\"></ic-card>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render as a button\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card heading=\"Card\" message=\"This is a clickable card rendered as a button\" clickable=true></ic-card>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render as a link\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card heading=\"Card\" message=\"This is a clickable card rendered as a button\" clickable=true href=\"/\"></ic-card>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render full width variant\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card heading=\"Card\" full-width=true message=\"This is a full width card\" clickable=true></ic-card>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a link parent\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<a href=\"/\"><ic-card heading=\"Card\" message=\"This is a clickable card\" clickable=true></ic-card></a>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should apply 'focussed' style when parent is focussed\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<a href=\"/\"><ic-card id=\"test-id\" heading=\"Card\" message=\"This is a clickable card\" clickable=true></ic-card></a>`,\n });\n\n expect(page.root).not.toBeNull;\n\n const element = await document.getElementById(\"test-id\");\n\n await expect(element.classList.contains(\"focussed\")).toBeFalsy;\n\n await element.focus();\n\n await expect(element.classList.contains(\"focussed\")).toBeTruthy;\n });\n\n it(\"should lose 'focussed' style when parent loses focus\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<a href=\"/\"><ic-card id=\"test-card\" heading=\"Card\" message=\"This is a clickable card\" clickable=true></ic-card></a>`,\n });\n\n expect(page.root).not.toBeNull;\n\n const element = await document.getElementById(\"test-card\");\n\n await element.focus();\n\n await expect(element.classList.contains(\"focussed\")).toBeTruthy;\n\n await element.blur();\n\n await expect(element.classList.contains(\"focussed\")).toBeFalsy;\n\n await page.rootInstance.disconnectedCallback();\n });\n\n it(\"should stop immediate propagation of a click event when disabled\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card id=\"test-card\" heading=\"Card\" message=\"This is a clickable card\" clickable=true disabled=true onclick=\"alert('test')\"></ic-card>`,\n });\n\n jest.spyOn(window, \"alert\").mockImplementation();\n\n const element = await document.getElementById(\"test-card\");\n\n element.click();\n\n await page.waitForChanges();\n\n await expect(window.alert).not.toHaveBeenCalled;\n });\n\n it(\"should render with a subheading\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card id=\"test-card\" heading=\"Card\" subheading=\"Card subheading\" message=\"This is a card\"></ic-card>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with an interaction button\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card id=\"test-card\" heading=\"Card\" subheading=\"Card subheading\" message=\"This is a card\"><ic-button variant=\"primary\" slot=\"interaction-button\">Click here</ic-button></ic-card>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a top image\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card id=\"test-card\" heading=\"Card\" subheading=\"Card subheading\" message=\"This is a card\"><div slot=\"image-top\">Image placeholder</div></ic-card>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a middle image\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card id=\"test-card\" heading=\"Card\" subheading=\"Card subheading\" message=\"This is a card\"><div slot=\"image-mid\">Image placeholder</div></ic-card>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with interaction controls\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card id=\"test-card\" heading=\"Card\" subheading=\"Card subheading\" message=\"This is a card\"><ic-button slot=\"interaction-controls\">Click here</ic-button></ic-card>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render as expandable\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card id=\"test-card\" heading=\"Card\" subheading=\"Card subheading\" message=\"This is a card\" expandable></ic-card>`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render content in expanded area\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card id=\"test-card\" heading=\"Card\" subheading=\"Card subheading\" message=\"This is a card\" expandable><ic-typography slot=\"expanded-content\">Extra content</ic-typography></ic-card>`,\n });\n\n page.rootInstance.areaExpanded = true;\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should toggle expanded content when expansion toggle is clicked\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card id=\"test-card\" heading=\"Card\" message=\"This is a clickable card\" expandable><ic-typography slot=\"expanded-content\">Expanded</ic-typography></ic-card>`,\n });\n\n expect(page.root).toMatchSnapshot();\n\n page.rootInstance.toggleExpanded();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should call 'setFocus' when card as a button is focused\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card heading=\"Card\" message=\"This is a clickable card rendered as a button\" clickable=true></ic-card>`,\n });\n\n //Can't expect anything in this test - this is to increase code coverage only\n await page.rootInstance.setFocus().toHaveBeenCalled;\n });\n\n it(\"should call 'setFocus' when card as a link is focused\", async () => {\n const page = await newSpecPage({\n components: [Card],\n html: `<ic-card heading=\"Card\" message=\"This is a clickable card rendered as a button\" clickable=true href=\"/\"></ic-card>`,\n });\n\n //Can't expect anything in this test - this is to increase code coverage only\n await page.rootInstance.setFocus().toHaveBeenCalled;\n });\n});\n"]}
|